belajar framework laravel

Download Belajar Framework Laravel

If you can't read please download the document

Upload: dindin-nugraha

Post on 27-Dec-2015

182 views

Category:

Documents


0 download

DESCRIPTION

Belajar Framework Laravel

TRANSCRIPT

Berkenalan dengan Laravelby SleepingKomodo January 28, 2014Alasan menggunakan laravelBagi teman-teman yang sudah tidak asing lagi dengan PHP pasti sudah tahu dengan yang namanya PHP Framework. Nah, kali ini saya akan membahas mengenai Laravel, salah satu framework yang lumayan baru. Mungkin di antara teman-teman ada yang berpikir, kenapa sih harus ada framework baru? kenapa gak pake yang sudah ada aja semisal CodeIgniter atau Yii?, kenapa harus Re-invent The Wheel? Berikut beberapa alasannya menurut Taylor Otwell (Core Developer Laravel) :Expressif. Laravel adalah sebuah framework PHP yang expressif, artinya ketika melihat suatu syntax Laravel, seorang programmer diharapkan akan langsung tahu kegunaan dari syntax tersebut meskipun belum pernah mempelajarinya apalagi menggunakannya.

Simple. Salah satu yang membuat Laravel begitu simple adalah adanya Eloquent ORM. Misalkan, kita ingin mengambil semua data yang ada pada tabel users. Maka yang kita perlukan, hanya membuat sebuah class model bernama User :
Kemudian kita tinggal memasukan semua data dari tabel users tersebut dengan cara sebagai berikut :$all_user = User::all();Dengan begitu, semua data dari tabel users, akan dengan mudah diakses dengan melakukan looping terhadap variabel $all_user. Saya akan bahas dengan lebih jelas lain kali.

Accesible. Bagi teman-teman yang sudah terbiasa dengan PHP Framework, saya yakin sudah tidak asing lagi dengan yang namanya CodeIgniter. Ya CodeIgniter merupakan salah satu PHP Framework yang paling populer, meskipun sebenarnya ada suatu framework yang bisa dibilang lebih superior jika dibandingkan dengan CodeIgniter. Misalnya, saja Kohana. Kohana bisa dibilang memiliki fitur yang lebih bagus jika dibanding CodeIgniter. Namun demikian, CodeIgniter memiliki dokumentasi yang sangat lengkap sehingga framework ini menjadi lebih mudah digunakan. Nah, begitu pula dengan Laravel, Laravel-pun dibuat dengan dokumentasi yang selengkap mungkin. Core Developer dari laravel sendiri ber-komitmen, untuk selalu menyertakan dokumentasi yang lengkap setiap kali melakukan rilis versi terbaru-nya.

Cara install laravelBagi yang belum tahu cara meng-install Laravel pada server lokal, berikut saya akan jelaskan langkah-langkahnya:Pertama-tama, silahkan instal composer pada komputer teman-teman. Composer bisa anda download di http://getcomposer.org.

Selanjutnya, teman-teman bisa langsung download Laravel melalui repository-nya di sini.

Download laravelDownload laravel

Setelah itu, extract file laravel-master.zip yang telah di-download dan letakan pada root direktori. Bagi yang menggunakan xampp dan windows 8, maka root direktori yang dimaksud adalah C://xampp/htdocs.

laravel pada folder xamppLaravel pada folder xampp

Ubah nama direktori tersebut sesuai selera anda (optional). Dalam contoh kali ini saya akan ubah laravel-master menjadi lrv supaya lebih pendek.

Setelah itu, silahkan akses http://localhost/lrv/public. Pasti error kan?? :D. Jangan panik, mari ikuti langkah selanjutnya.

Buka command-prompt. Kemudian masuk ke dalam folder C://xampp/htdocs/lrv dengan cara mengetikan syntax berikut: cd c://xampp/htdocs/lrv

Lalu ketik composer install, kemudian tekan enter dan tunggu beberapa saat, composer akan men-download dependency yang dibutuhkan.

Setelah proses selesai silahkan refresh kembali browser anda. Maka akan akan muncul icon Laravel, sebagai tanda bahwa Laravel telah berhasil di-install.

Tampilan pertama laravelTampilan pertama laravel

Cara membuat virtualhost dengan menggunakan xampp.Sebelumnya, apabila kita ingin membuka halaman utama dari instalasi Laravel yang telah kita buat, maka kita harus mengetikan url seperti berikut pada web browser : http://localhost/lrv/public . Nah, kali ini kita akan mengubahnya menjadi lebih pendek menjadi sebagai berikut: http://lrv.dev . Berikut langkah-langkahnya:Pertama-tama buka direktori C:\Windows\System32\Drivers\etc. Pada direktori tersebut terdapat sebuah file bernama hosts. Buka file tersebut dan tambahkan text sebagai berikut di bagian paling bawah: 127.0.0.1 lrv.dev

Selanjutnya, buka direktori C:\xampp\apache\conf\extra. Kemudian buka file httpd-vhosts.conf yang ada pada direktori tersebut dan tambahkan text sebagai berikut pada bagian paling bawah:

DocumentRoot "C:/xampp/htdocs/lrv/public"ServerName lrv.devServerAlias www.lrv.dev

Restart Apache melalui Xampp Control Panel, kemudian buka http://lrv.dev melalui browser teman-teman.

Virtual Host telah berhasil dibuat.

Membuat Hello World di Laravelby SleepingKomodo January 28, 2014Hal pertama yang biasa dipelajari ketika seseorang mempelajari sebuah bahasa pemrograman maupun sebuahframeworkadalah dengan membuat aplikasi hello world. Ada beberapa cara menampilkan hello world di laravel, yaitu melalui route, controller maupun view. Sebelumnya, pastikan teman-teman sudah melakukan instalasi Laravel seperti yang sudah dijelaskan pada posting sebelumnya.Melalui Route.

Untuk menampilkan text Hello World melalui route pertama-tama buka fileroute.php.Kemudian, tambahkanroutebaru sebagai berikut:Route::get('hello', function(){

return "Hello World";

});Kemudian, melalui browser ketikan URL: http://lrv.dev/hello dan tekan enter. Maka, tulisan Hello World akan tampil di browser teman-teman.Melalui Controller.

Untuk menampilkan tulisan Hello World melalui controller, pertama-tama buat sebuah route baru pada file route.php seperti berikut:Route::get('hello_controller', HelloController@index);kemudian, buat file baru padadirektori controller, misalnya dengan nama HelloController. Kemudian buatclass controllerdidalamfiletersebut seperti berikut ini:

Kemudian, melaluiweb browserbuka URL yang mengarah ke route tersebut, yaitu http://lrv.dev/hello_controller . Maka tulisan Hello World from Controller akan tampil di browser.

Melalui View

Untuk menampilkan tulisan Hello World from View melalui view ada dua cara. Yaitu, melalui view yang dipanggil melalui route dan view yang dipanggil melalui controller. Pada tulisan kali ini saya hanya akan membahas view yang dipanggil melalui route.Pertama-tama, tambahkan sebuah file baru pada folderview,misalnya namafile-nya adalahhelloView.php.Kemudian bukafiletersebut dengan notepad dan tambahkan tulisan Hello World from View. Kemudian simpan.Setelah itu tambahkanroutebaru sebagai berikut:Route::get('hello_view', function(){return View::make('helloView');});Setelah itu ketika URL yang mengarah keroutetersebut melaluibrowser.Yaitu sebagai berikut : http://lrv.dev/hello_view . Dengan begitu, tulisan Hello World from View akan tampil padabrowserteman-teman.

Cara menggunakan migration pada Laravelby SleepingKomodo January 28, 2014Pada tulisan kali ini, saya akan menjelaskan tentangmigration and seedingpada Laravel. Apa itumigration?Apa ituseeding?migrationatau migrasi adalah suatu cara membuat, memodifikasi dan menghapus suatu tabel dan relasi antar tabel melalui kode program. Ups, ada yang bingung dengan kata-kata saya? jangan khawatir, anda akan paham setelah mengikuti langkah-langkah berikut:Pertama-tama buat sebuahdatabase baru dengan nama yang anda inginkan. Pada contoh kali ini, saya akan membuatdatabasebernama lrv disesuaikan dengan nama aplikasi yang telah dibuat pada artikel sebelumnya.

Selanjutnya, atur koneksi database. Pengaturan dapat dilakukan padafile app/config/database.php. Padafiletersebut, anda bisa menentukan nama database,usernamedanpassword.

Kemudian bukacommand-linedan jalankan perintah php artisan migrate:make create_users_table. Dengan begitu, sebuahfilebaru akan ter-generatepada direktori /app/database/migrations. Beginilah kira-kira isi darifiletersebut:

Padamethodup, tambahkan definisi tabel sebagai berikut: Schema::create('users', function($table){$table->increments('id');$table->string('email')->unique();$table->string('name');$table->timestamps();});

Kemudian, padamethoddown, tambahkan fungsi untuk melakukanreverseapabila terjadirollbackpada database. public function down(){Schema::drop('users');}

Setelah itu, dengan menggunakancommand prompt,masuklah ke dalam direktori project anda. Lalu jalankan perintah php artisan migrate dan tunggu beberapa saat hingga proses selesai. Maka, padadatabaseyang telah anda buat akan muncul sebuah tabel baru bernama usersbeserta kolom-kolom yang sudah anda definisikan sebelumnya.

Apabila anda ingin melakukanrollback,anda bisa menjalankan perintah php artisan migrate:rollback.

Sekarang anda telah berhasil menggunakanmigrationuntuk membuat sebuah tabel.

Cara melakukan seeding pada Laravelby SleepingKomodo January 28, 2014Pada artikel sebelumnya, kita telah membahas tentang cara menggunakan migration pada Laravel. Kali ini saya akan menjelaskan cara melakukanseeding.Apa ituseeding?seeding adalah suatu cara memasukan data padadatabasemelalui kode program, kelebihan dariseedingjika dibandingkan dengan memasukan data secara manual adalah lebihflexibel.Untuk memasukan data padadatabaselain, anda tinggalcopyseed-nya saja, kemudian dieksekusi.Kali ini, kita akan melakukan seedingterhadap database yang telah kita buat sebelumnya.Langkah-langkah-nyayaitu sebagai berikut:Pertama-tama, pastikan di dalam direktori app/models terdapat sebuah model bernama User.

Kemudian, buka file app/database/seed/DatabaseSeeder.php. Ubah isi dari file tersebut menjadi seperti di bawah ini:

Kemudian, melaluicommand-line,jalankan perintah php artisan db:seed. Maka, sebuahrecordbaru akan masuk pada tabel yang anda buat sebelumnya melalui migrasi. Selain menggunakan perintah tersebut, anda juga bisa menggunakan perintah php artisan migrate --seed atau php artisan migrate:refresh -seed untuk melakukanseedingsecara bersamaan dengan migrasi.

Membuat CRUD Sederhana pada Laravel : part 1by SleepingKomodo January 28, 2014Pada tulisan sebelumnya saya telah membahas beberapa hal sebagai berikut:Laravel : A Framework for web Artisans

Membuat Hello World di Laravel.

Cara menggunakan migration pada Laravel

Cara melakukan seeding pada Laravel

Setelah anda membaca tentang apa itu Laravel, cara membuat Hello World,migrationdanseeding,Kali ini, kita akan membahas mengenai cara membuat aplikasi CRUD sederhana dengan menggunakan Laravel. Artikel kali ini dibuat sesederhana yang saya bisa, sehingga mudah dipelajari oleh pemula sekalipun.Twitter BootstrapUntuk membuatuser interface,kita akan menggunakan bantuan Twitter Bootstrap.Untuk itu, silahkan unduhterlebih dahulu disini. Kemudianextracthasil unduhan anda. Setelah di-extractakan menemukan tiga folder didalamnya yaitu foldercss, fonts danjs.Copyketiga folder tersebut ke dalamdirektori`public`-nya Laravel.Bootstrap di dalam direktori publik laravelBootstrap di dalam direktori publik laravelSetelahTwitter Bootstrapanda pindahkan ke direktoripublic,berarti sudah siap untuk digunakan pada aplikasi Laravel yang akan kita buat. Oleh karena itu, marilah kita lupakan sejenak mengenaiTwitter Bootstrapini dan memulai langkah selanjutnya.Database TabelSekarang, marilah kita membuat sebuah tabel baru untuk menampung data yang akan kita gunakan dalam tutorial kali ini. Misalnya, tabel tersebut akan menampung data-data buku yang akan dijual. Dengan menggunakancommand-line,jalankan perintah php artisan migrate:make create_books_table. Maka, secara otomatis akan tercipta sebuahfilebaru pada direktori app/database/migrations. Buat definisi tabel sebagai berikut padafilemigrasi tersebut:

Lalu jalankan perintah php artisan migrate melaluicommand-line. Maka secara otomatis akan tercipta sebuah tabel baru bernama `books`, anda bisa melihatnya melaluiphpmyadmin.CRUDCRUD merupakan singkatan dari Create, Read, Update dan Delete. Untuk itu mari kita bahas satu persatu mulai dari Create (memasukan data ke dalam database).CreateUntuk memasukan data ke dalam database kita akan menggunakan sebuahform.Pertama-tama, buat sebuahfilebaru pada direktori app/views/ dengan namalayout.blade.php.Kemudian, padafiletersebut, buatlayoutHTML sebagai berikut:

CRUD App

{{ HTML::style('css/bootstrap.min.css') }}

;

@yield('content')

{{ HTML::script('js/jquery.min.js') }}{{ HTML::script('js/bootstrap.js') }}

Perhatikan bahwa Laravel menggunakanBladesebagaitemplating engine.Apabila anda masih belum mengerti tentang Blade,tidak masalah.Bladeadalah sesuatu yang mudah, anda akan mengerti setelah menyelesaikan tutorial ini.Selanjutnya, masih pada folder app/views, buat sebuahfilebaru bernama newbook.blade.php:@extends('layout')

@section('content')Hello, Semua form akan ditempatkan disini!@stopFileinilah yang nantinya akan digunakan untuk menampilkanform yang akan kita buatpadabrowser.Padafiletersebut anda tidak perlu menulis lagitag `html`, `title` , `body` karena sudah di-extendsdarifile layout.blade.php dengan menggunakan @extends('layout'). Semua yang akan ditampilkan dibrowserbisa anda simpan diantara @section('content') dan @stop.Selanjutnya, tambahkan definisiformpadafiletersebut:@extends('layout')

@section('content')

Insert new book

{{ Form::open()}}

{{Form::label('title', 'Title') }}

{{Form::text('title', '', array('class' => 'form-control'))}}

{{Form::label('author', 'Author') }}

{{Form::text('author', '', array('class' => 'form-control'))}}

{{Form::label('description', 'Description') }}

{{Form::textarea('description', '', array('class' => 'form-control'))}}

{{Form::label('price', 'Price') }}

{{Form::text('price', '', array('class' => 'form-control'))}}

{{Form::submit('Submit', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

@stopLalu, buat sebuah route padafile app/routes.php :Route::get('newbook', function(){return View::make('newbook');});Aksesroutetersebut melaluibrowser,maka akan tampilformseperti berikut ini:insert formInsert formMemasukan data ke databaseSelanjutnya, mari kita buat ModeldanControlleruntuk memasukan data diinputkan ke dalam database. Buat sebuahfiledengan nama Book.php pada direktori app/models:

Harus diperhatikan bahwa namaclassperlu disesuaikan dengan nama tabelyang digunakan, karena pada contoh kali ini kita menggunakan tabel bernamabooks, maka namaclassyang dibuat haruslahBook. Seperti halnya padaModel User, karena nama tabelnya users. Sebenarnya, anda juga bisa menentukan nama Model sesuka hati. Namun, caranya tidak akan dibahas pada tulisan ini. Mungkin lain kali akan saya bahas.Ok, setelah Model anda buat, selanjutnya mari kita buat controller. Pada direktori app/controllers buatlah sebuah file baru dengan nama BookController.php:

Setelah itu, buat fungsi untuk memasukan data buku baru ke dalam database:

Bagian TerakhirOk, setelahModeldanControllerdibuat, langkah selanjutnya yang harus dilakukan adalah membuatroutebaru yang mengarah kepada fungsi yang kita buat di dalamController.Bukaroutes.php,tambahkanroutesebagai berikut:Route::post('book/insert', 'BookController@store');Kemudian pada file app/views/newbook.blade.php ubah {{ Form::open() }} menjadi{{ Form::open(array('action' => 'BookController@store')) }}. Dimana BookController@store disesuaikan dengan namaControllerdanActionyang kita tuju.Selesai. Anda sekarang bisa mencobanya dengan memasukan data padaformkemudiantekan tombol submit. Lalu, cek didatabaseapakah data yang diinputkan sudah masuk.KonklusiDiatas kita telah membahas mengenai membuat Create menggunakan Laravel. Yaitu dengan cara membuat Model, Kemudian membuat View yang bisa mengirim data melaluiform,data padaformtersebut kemudian dikirim kecontrolleruntuk disimpan ke dalamdatabasedengan menggunakanClassModelyang telah dibuat. Selanjutnya, padaPart 2kita akan membahas mengenai cara menampilkan data (Read).Lets Go

Membuat CRUD Sederhana pada Laravel : Part 2by SleepingKomodo January 29, 2014Sebelumnya kita telah membahas cara memasukan data ke dalam database dengan menggunakan Laravel (Create). Kali ini kita akan membahas tentang cara menampilkan data dari database. Ada tiga tahapan yang akan dilakukan yaitu:Membuat route.

Mengirim data ke view.

Membuat looping.

Pertama-tama marilah kita membuat sebuahroutebaru sebagai berikut:Route::get('booklist', function(){

});Setelah itu, kita akan mengambil semua data dari tabel books yang telah kita buat sebelumnya. Ingat, untuk mengakses tabel books kita akan menggunakan Model bernama Book. Untuk melakukannya tambahkan Book::all() pada route yang telah kita buat:Route::get('booklist', function(){

$books = Book::all();

});Setelah itu, kita akan memanggil sebuah view sekaligus mengirim variable $books ke view tersebut.Route::get('booklist', function(){

$books = Book::all();return View::make('listbook')->with('booksdata', $books);

});Jika, anda mengakses route tersebut, bisa dipastikan sebuah pesan error akan muncul. Itu karena view bernama listbook masih belum kita buat. Oleh karena itu, mari kita buat view tersebut. Buat sebuah file baru bernama listbook.blade.php Sebagai berikut:@extends('layout')

@section('content')

@stopPada route, kita telah mengirimkan sebuah variable bernama booksdata yang bisa diakses melalui view. Variable tersebut bersisi semua data dari tabel books yang bisa kita tampilkan dengan bantuan looping :@extends('layout')

@section('content')

TitleAuthorDescriptionPrice

@foreach($booksdata as $book)

{{ $book->title }}{{ $book->author }}{{ $book->description }}{{ $book->price }}

@endforeach

@stopJika anda perhatikan pada code diatas, kita menggunakan {{ $book->title }} untuk judul buku, {{ $book->author }} untuk pengarang dsb. Syntax yang digunakan yaitu blade, dimana {{ $book->title }} bisa disamakan dengan .Sekarang, anda bisa buka route booklist melalui browser, maka semua data yang berada pada table books akan ditampilkan dalam bentuk table. Cara akses route tersebut misal:http://lrv.dev/booklistAtau jika anda menggunakan domain localhost :http://localhost/booklistKita telah membahas mengenai Create dan Read. Pada bagian selanjutnya, kita akan membahas mengenai Update.Bersambung

Membuat CRUD sederhana pada Laravel : Part 3by SleepingKomodo February 10, 2014Pada Tulisan sebelumnya kita telah membahas tentang Create dan Read. Sekarang, mari kita melangkah ke tahap selanjutnya, yaitu Update. Pertama-tama, kita akan menampilkan link edit pada tabel yang telah kita buat sebelumnya ketika menampilkan data. Ubahfile listbook.blade.php menjadi sebagai berikut:@extends('layout')

@section('content')

TitleAuthorDescriptionPrice#

@foreach($booksdata as $book)

{{ $book->title }}{{ $book->author }}{{ $book->description }}{{ $book->price }}{{ link_to_action('BookController@edit', 'edit', array($book->id))}}

@endforeach

@stopPada kode diatas, kita menambahkan link_to_action yang merupakan helper untuk membuat HTML link. Dimana, link tersebut akan mengarah ke method edit pada controller bernama BookController. Jika anda jalankan di browser (dengan membuka route booklist), maka akan muncul error sebagai berikut:ErrorExceptionRoute [BookController@edit] not defined. (View: /var/www/laravel/app/views/listbook.blade.php)Error tersebut muncul karena kita belum membuat route yang mengarah ke method tersebut, disamping method itu sendiri belum kita buat. Untuk itu, tambahkan route sebagai berikut padafileroutes.php:Route::get('book/edit/{id}', 'BookController@edit');Kemudian, tambahkanactionedit pada BookController:public function edit($id){# code...}Jika, anda klik pada salah satulinkyang ditampilkan pada tabel, maka akan muncul halaman kosong padabrowser.Untuk mengubah halaman kosong tersebut menjadi halaman edit, ubah fungsiedit yang barusan kita tambahkanmenjadi sebagai berikut:public function edit($id){$book = Book::find($id);return View::make('editbook')->with('book', $book);}Jika, anda jalankan lagi maka kali ini bukan halaman kosong yang anda dapatkan, tetapi anda akan melihat error sebagai berikut:InvalidArgumentExceptionView [editbook] not found.Ini dikarenakan kita belum membuat view bernamaeditbook.Untuk itu, pada folder app/views buatlahfilebaru dengan nama editbook.blade.php :@extends('layout')

@section('content')

Edit book

{{ Form::open() }}

{{Form::hidden('id', $book->id)}}

{{Form::label('title', 'Title') }}

{{Form::text('title', $book->title , array('class' => 'form-control'))}}

{{Form::label('author', 'Author') }}

{{Form::text('author', $book->author , array('class' => 'form-control'))}}

{{Form::label('description', 'Description') }}

{{Form::textarea('description', $book->description , array('class' => 'form-control'))}}

{{Form::label('price', 'Price') }}

{{Form::text('price', $book->price , array('class' => 'form-control'))}}

{{Form::submit('Update', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

@stopReload halaman yang menampilkan error tersebut dan anda akan melihat form edit beserta nilaidari masing-masingfield.UpdateUntuk melakukan update, tambahkan fungsi update padaBookController:public function update(){$id = Input::get('id');$book = Book::find($id);

$book->title = Input::get('title');$book->author = Input::get('author');$book->description = Input::get('description');$book->price = Input::get('price');

$book->save();}Dan, jangan lupa untuk menambahkan route baru sebagai berikut:Route::post('book/update', 'BookController@update');Setelah itu, pada file editbook.blade.php, ubahlah {{ Form::open()) }}menjadi {{ Form::open(array('action' => 'BookController@update')) }}Sekarang, cobalah anda ubah judul dari buku tersebut, lalu klik tombol update. Maka, data judul buku tersebut akan berubah pula di database.

Membuat CRUD Sederhana pada Laravel : Part 4by SleepingKomodo February 11, 2014Pada kesempatan kali ini kita akan membuat fungsidelete.Fungsideletedigunakan untuk menghapus data yang telah kita masukan ke dalamdatabase.Pertama-tama, tambahkanlink deletedi sebelah link edit dengan cara mengubahfilelistbook.blade.php sebagai berikut:@extends('layout')

@section('content')

TitleAuthorDescriptionPrice#

@foreach($booksdata as $book)

{{ $book->title }}{{ $book->author }}{{ $book->description }}{{ $book->price }}{{ link_to_action('BookController@edit', 'edit', array($book->id))}} | {{ link_to_action('BookController@delete', 'delete', array($book->id))}}

@endforeach

@stopPerhatikan, pada kode diatas kita menambahkan {{ link_to_action('BookController@delete', 'delete', array($book->id))}} yang digunakan untuk menampilkan link delete. Apabila anda jalankan dibrowserdengan cara mengaksesroutebooklist, maka akan muncul error sebagai berikut:ErrorExceptionRoute [BookController@delete] not defined. (View: /var/www/laravel/app/views/listbook.blade.php)Hal, ini disebabkan kita belum menambahkanroutedanactionyang diperlukan. Oleh karena itu, tambahkanroutebaru sebagai berikut:Route::get('book/delete/{id}', 'BookController@delete');Jika, anda jalankan lagi padabrowsermaka tampilan akan berjalan normal dan sudah terdapat linkdeletedidalam tabel. Namun, apabila link tersebut anda klik, tetap akan terjadi error, karena methoddeletemasih belum dibuat, untuk itu padaBookController,tambahkan fungsideletesebagai berikut:public function delete($id){# code...}Execute DeleteSekarang, jika anda klik delete maka tidak akan muncul lagi pesan error. Namun, data tersebut masih belum terhapus dari dalamdatabasekarena kita belum menambahkan apa-apa pada methoddelete.Untuk itu, ubah fungsideletemenjadi sebagai berikut:public function delete($id){$book = Book::find($id);$book->delete();return Redirect::to('booklist');}Sekarang, jika anda klik link delete maka data buku yang bersangkutan akan dihapus. Perhatikan bahwa kode return Redirect::to('booklist'); digunakan untuk mengembalikan (redirect) anda ke halaman dengan route booklist.Selesai. Untuk mengunduhsource codedari tutorial ini, silahkan klik disini.

Membuat autentikasi pengguna dengan menggunakan Laravelby SleepingKomodo February 22, 2014Autentikasi merupakan hal yang sangat penting dalam sebuah website. Dengan menggunakan autentikasi kita bisa mencegah orang yang tidak berkepentingan untuk mengakses situs yang kita buat. Saya rasa anda sudah paham tentang apa itu autentikasi, jadi saya pikir cukup sudah untuk penjelasannya. Mari kita lanjutkan ke cara membuat autentikasi menggunakan Laravel. Sebelumnya, saya asumsikan anda telah melakukan instalasi Laravel pada localhost dan melakukan setting database.Pertama-tama yang harus kita buat adalah tabel user. Untuk membuat tabel user, buat migrasi dengan menjalankan perintah sebagai berikut:php artisan migrate:make create_user_tableBuka folder app/migration, anda akan melihat sebuah file berisi class yang bernama CreateUserTable. Pada class tersebut terdapat dua method bernama up dan down. Method up digunakan untuk membuat tabel, sedangkan method down digunakan untuk menghapus tabel. Tambahkan definisi tabel sebagai berikut pada method up:

Schema::create('users', function($table){ $table->increments('id'); $table->string('firstname', 20); $table->string('lastname', 20); $table->string('email', 100)->unique(); $table->string('password', 64); $table->timestamps(); });Kemudian pada method down tambahkan perintah sebagai berikut:Schema::drop('users');Selanjutnya, pada command line jalankan perintah:php artisan migrateDengan begitu, sebuah tabel bernama users akan dibuat pada database, lengkap beserta seluruh field-field yang dibutuhkan. Untuk membuat sistem autentikasi, diperlukan sebuah model, controller dan view. Model yang digunakan adalah model bernama User yang biasanya sudah ada secara default pada instalasi Laravel. Kemudian untuk controller kita akan membuat sebuah controller baru bernama UserController, untuk membuat UserController, jalankan perintah sebagai berikut menggunakan command line:php artisan controller:make UserControllerMaka, sebuah file baru bernama UserController.php akan tercipta pada folder app/controller.Membuat Halaman RegistrasiSetelah controller kita buat, sekarang kita akan menampilkan sebuah halaman registrasi. Pertama-tama, kita akan mengubah fungsi create pada UserController menjadi fungsi register:public function register() { return View::make('register'); }Pada fungsi register diatas, kita akan diarahkan pada sebuah view bernama register. Namun, view tersebut masih belum kita buat. Untuk itu pada folder app/views tambahkan sebuah file baru bernama register.blade.php:@extends('layout') @section('content') Register

@if(Session::has('pesan')){{ Session::get('pesan') }}@endif

{{Form::open(array('action' => 'UserController@store')) }} {{Form::label('firstname', 'First Name') }} {{Form::text('firstname', '', array('class' => 'form-control'))}} {{Form::label('lastname', 'Last Name') }} {{Form::text('lastname', '', array('class' => 'form-control'))}} {{Form::label('email', 'Email') }} {{Form::text('email', '', array('class' => 'form-control'))}} {{Form::label('password', 'Password') }} {{Form::password('password', array('class' => 'form-control'))}}
{{Form::submit('Registerin Dong!', array('class' => 'btn btn-primary')) }} {{ Form::close() }} @stopSetelah itu, buatlah route baru pada file routes.php seperti berikut ini:Route::get('register', 'UserController@register'); Route::post('store', 'UserController@store');Setelah route dibuat, sekarang anda bisa membuka halaman register yang barusan anda buat melalui browser dengan cara mengakses route register.Misal:http:/localhost/laravel/registerRegistrasi pengguna dengan LaravelRegistrasikan PenggunaSetelah halaman registrasi kita buat, kita akan memasukan data dari form yang barusan kita buat ke dalam database. Pada form tersebut terdapat kode sebagai berikut:{{Form::open(array('action' => 'UserController@store')) }}Itu berarti, ketika disubmit, data dari form tersebut akan di-handle Oleh method store pada UserController. Untuk itu silahkan buka UserController kemudian tambahkan perintah sebagai berikut ke dalam method store:$user = new User();

$user->firstname = Input::get('firstname');$user->lastname = Input::get('lastname');$user->email = Input::get('email');$user->password = Hash::make(Input::get('password'));

$user->save();

return Redirect::to('register')->with('pesan', 'Registrasi berhasil!');Sekarang, apabila anda isi form tersebut kemudian tekan tombol Registerin Dong! (seperti submit), maka data yang anda masukan akan tersimpan di database.Membuat Fitur LoginUntuk membuat halaman Login, pertama-tama buatlah dua buah fungsi baru yaitu login dan authenticate:public function login(){}

public function authenticate(){}Selain itu, buatlah dua buah route baru pada file routes.php sebagai berikut:Route::get('login', 'UserController@login');Route::post('authenticate', 'UserController@authenticate');Halaman LoginSekarang, kita akan membuat tampilan halaman login. Pada method login tambahkan baris perintah sebagai berikut:return View::make('login');Kemudian pada direktori app/views tambahkan sebuah view baru dengan nama file login.blade.php:@extends('layout')

@section('content')

Login

@if(Session::has('pesan_error')){{ Session::get('pesan_error') }}@endif

{{Form::open(array('action' => 'UserController@authenticate')) }}{{Form::label('email', 'Email') }}{{Form::text('email', '', array('class' => 'form-control'))}}{{Form::label('password', 'Password') }}{{Form::password('password', array('class' => 'form-control'))}}{{Form::submit('Login', array('class' => 'btn btn-primary')) }}{{Form::close() }}

@stopAutentikasiKetika tombol login di-klik, form akan diarahkan ke method authenticate pada UserController. Pada method inilah autentikasi dilakukan, untuk itu tambahkan baris perintah sebagai berikut pada method authenticate:if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))){echo "login berhasil";}else{return Redirect::to('login')->with('pesan_error', 'Login gagal, email atau password salah!');}Sekarang, jika anda tekan tombol login dan autentikasi berhasil maka akan tampil tulisan login berhasil. Namun, jika autentikasi gagal, maka sebuah pesan kesalahan akan ditampilkan pada halaman login.Login on LaravelMembuat Halaman DashboardSebelumnya, apabila kita sudah berhasil login kita hanya akan melihat tulisan login berhasil. Nah, kali ini kita akan membuat supaya pengguna diarahkan ke halaman dashboard apabila login berhasil. Buat sebuah controller baru bernama DashboardController:

Setelah itu, buatlah sebuah route baru pada routes.php sebagai berikut:Route::get('dashboard', 'DashboardController@index');Kemudian, jangan lupa untuk membuat sebuah view baru bernama dashboard.blade.php. Setelah itu, ubah autentikasi yang ada pada method authenticate menjadi sebagai berikut:function authenticate(){

if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))){return Redirect::to('dashboard');}

return Redirect::to('login')->with('pesan_error', 'Login gagal, email atau password salah!');}Sampai disini, apabila anda mencoba login kembali maka akan diarahkan ke halaman dashboard. Tentu halaman dashboard yang dimaksud adalah halaman kosong, mengingat kita baru membuat viewnya saja, tanpa ada isinya.Membuat fungsi logoutSekarang, saatnya kita membuat fungsi logout. Untuk itu, kita akan membuat view dashboard yang telah kita buat dari halaman kosong menjadi sebagai berikut:@extends('layout')

@section('content')

Toggle navigation

AuthApp

  • logout

Dashboard

@stophalaman dashboardSelanjutnya, perhatikan pada halaman dashboard diatas terdapat kode sebagai berikut:Pada atribut href, kita bisa melihat bahwa kita akan diarahkan pada route logout apabila link tersebut kita klik. Namun, route logout masih belum kita buat, oleh itu tambahkan route logout sebagai berikut pada file routes.php:Route::get('logout', 'UserController@logout');Kemudian, tambahkan sebuah method pada UserController sebagai berikut:public function logout(){Auth::logout();return Redirect::to('login')->with('pesan', 'berhasil logout');}Selanjutnya, untuk menampilkan pesan berhasil logout, tambahkan perintah sebagai berikut pada bagian atas form login:@if(Session::has('pesan')){{ Session::get('pesan') }}

@endifKesimpulanSejauh ini anda telah berhasil membuat halaman registrasi, login dan logout. Tentunya, masih ada beberapa kelemahan dalam aplikasi yang barusan kita buat. Misalnya, akan terjadi error apabila kita memasukan email yang sama saat registrasi. Kemudian, jika kita belum login dan mengakses http://localhost/dashboard seharusnya pengguna diarahkan ke halaman login. Dan masih ada beberapa hal lagi yang harus diperbaiki namun tidak akan saya bahas dalam tulisan ini berharap anda bisa mencobanya sendiri.Have a nice day!

Menggunakan pagination pada Laravelby SleepingKomodo April 16, 2014Sepertinya hampir setiap aplikasi berbasis web yang memiliki fungsi untuk mengatur data memerlukan pagination ketika menampilkan data yang cukup banyak.Pagination adalah solusi yang cukup baik untuk mengatasi kelebihan informasi. Saya pikir hampir semua orang tahu cara menggunakan pagination.
Namun, untuk membuat sistem pagination dari awal akan sangat memakan waktu dan juga membosankan. Ada banyak potongan program yang harus anda tulis hanya untuk menampilkan pagination sesuai dengan jumlah data dari database dan posisi anda melihat data saat ini, kemudian menampilkannya pada bagian bawah data.Untungnya, pagination merupakan salah satu dari sekian banyak fitur pada Laravel dimana kita bisa menggunakannya dengan lebih mudah tanpa harus membuat dari awal. Membuat pagination dari awal bisa menjadi mimpi buruk, sedangkan jika anda tidak menggunakan pagination tentu kasihan pengguna anda jika harus melihat terlalu banyak data dalam satu waktu.Apa itu PaginationPagination adalah suatu cara menampilkan data yang banyak ke dalam beberapa halaman. Ketika awal mula membuat sebuah aplikasi web, anda mungkin tidak memerlukan pagination. Namun, seiring berjalannya waktu dan semakin banyak data yang harus ditampilkan, maka pagination akan menjadi sangat penting. Jika anda menampilkan banyak data sekaligus dalam satu waktu, maka hal itu akan memperlambat proses pengambilan data dari database dan menyebabkan aplikasi menjadi lambat.Dengan menggunakan pagination, hanya beberapa set data saja yang akan diambil dari database dan ditampilkan langsung pada aplikasi. Pada database, jumlah data dihitung dan dibagi-bagi menjadi beberapa halaman tergantung dari berapa banyak yang ingin anda tampilkan per halamannya. Kemudian jumlah halaman diperkirakan dan dijadikan nomor halaman pada bagian bawah tampilan data. Semoga anda mengerti (sudah mengerti sebelumnya) tentang apa itu pagination.Menggunakan method paginate pada LaravelSeperti yang sudah saya jelaskan, Laravel bisa mempermudah pembuatan pagination. Pada Eloquent maupun pada query builder-nya Laravel, terdapat method paginate yang bisa menentukan berapa jumlah data yang ingin ditampilkan, dimana semuanya sudah di-handle oleh Laravel.Misal, dengan menggunakan Eloquent anda bisa mengambil data dari database dengan menggunakan method paginate sebagai berikut:$users = User::paginate(60);atau jika menggunakan query builder:$users = User::paginate(50);Kemudian, pada bagian bawah dari data yang ditampilkan (di bawah foreach), anda bisa menambahkan link pagination dengan cara sebagai berikut:{{ $users->links(); }}Contoh kode lengkap yang bisa anda gunakan untuk membuat pagination adalah sebagai berikut:routes.phpRoute::get('/', function(){$products = Product::paginate(50);return View::make('tampilkan')->with('products', $products);});views/tampilkan.blade.php@foreach($products as $product)

{{ $product->name }}{{ $product->price }}{{ $product->stock }}

{{ Link::edit('product/edit/'.$product->id) }} | {{ Link::delete('product/delete/'.$product->id) }}

@endforeach

{{ $products->links() }}Mudah bukan? dengan menggunakan Laravel pembuatan pagination bisa semudah itu. Namun, mungkin ada kalanya anda perlu untuk mengubah tampilan pagination tersebut supaya sesuai dengan keinginan anda, misalnya supaya sesuai dengan CSS yang telah anda buat. Anda bisa melakukannya dengan cara membuat custom pagination caranya akan saya jelaskan pada bagian dibawah ini.Membuat Custom Pagination Untuk membuat custom pagination pertama-tama anda buat sebuah folder baru, pada app/views. Misal, folder tersebut anda beri nama structure. Anda boleh memberi nama lain jika anda mau. Setelah itu, pada folder tersebut buat sebuah file baru bernama pagination.blade.php. Contoh isi file tersebut adalah sebagai berikut: