Anda di halaman 1dari 7

Latihan Laravel [5] - Simple CRUD

Pada tutorial dengan format latihan kali ini untuk pertama kalinya kita berhubungan dengan
database. Database yang digunakan pada tutorial ini adalah MySQL. Membuat database secara
'best practice' pada Laravel adalah menggunakan artisan migration. Tetapi untuk tutorial ini kita
tidak akan bermain-main dengan command line sehingga kita tidak memerlukan hal tersebut.

#1. Membuat Database


Database untuk tutorial ini dinamakan dengan tut_laravel dan tambahkan sebuah tabel dengan
nama nilai;
CREATE TABLE nilai (
id INT(11) NOT NULL AUTO_INCREMENT,
nama VARCHAR(50) NOT NULL,
nilai INT(4),
PRIMARY KEY (id)
);

#2. Konfigurasi Database


Buka file /app/config/databases.php, sesuaikan baris berikut;
'mysql' => array(
'driver'

=> 'mysql',

'host'

=> 'localhost',

'database'

=> 'tut_laravel',

'username'

=> 'root',

'password'

=> 'password',

'charset'

=> 'utf8',

'collation' => 'utf8_unicode_ci',


'prefix'

=> '',

),

#3. Routes
Berikut adalah routes yang kita butuhkan;
Route::get('crud/form_add','BelajarController@formAdd'); //menampilkan form add
Route::post('crud/form_add_post','BelajarController@formAddPost'); //insert kedala
m database
Route::get('crud/read','BelajarController@read'); //menampilkan grid data
Route::get('crud/form_edit/{id}','BelajarController@formEdit'); //menampilkan form
edit
Route::post('crud/form_edit_post','BelajarController@formEditPost'); //update data
pada database
Route::get('crud/delete/{id}','BelajarController@delete'); //menghapus data

#4. Controller

#4.1. Method formAdd dan View form_add.blade.php


Berikut adalah method formAdd pada file BelajarController.php;
public function formAdd() {
return View::make('crud.form_add');

Berikut adalah kode pada file /app/view/crud/form_add.blade.php seperti berikut;


{{ Form::open(array('url'=>'/crud/form_add_post')) }}
<div>
Nama: {{ Form::text('nama') }}
</div>
<div>
Nilai: {{ Form::text('nilai') }}
</div>
<div>
{{ Form::submit('Kirim') }}
</div>
{{ Form::close() }}

Jika URL dieksekusi, maka akan terlihat seperti gamber berikut;

Dan jika form tersebut diisi dan ditekan tombol kirim, maka kita akan menemukan pesan error
karena route yang dipanggil
adalah Route::post('crud/form_add_post','BelajarController@formAddPost'). Route
tersebut memanggil method formAddPost pada controller BelajarController sehingga kita
harus membuat method tersebut agar post bisa dijalankan.

#4.2. Method formAddPost


Berikut adalah method formAddPost pada file BelajarController.php;

public function formAddPost() {


//semua parameter
$nama = Input::get('nama');
$nilai = Input::get('nilai');
$data = array(
'nama' => $nama,
'nilai' => $nilai
);
//insert kedalam database
DB::table('nilai')->insert($data);
return Redirect::to('/crud/read');
}

Tentunya muncul pertanyaan, apakah DB::table('nilai')->insert($data) itu?


Itu adalah Eloquent Query yang merupakan salah satu fitur unggulan Laravel. Dengan Eloquent
Query kita tidak perlu repot-repot menuliskan query yang panjang dan dengan fitur tersebut lebih
aman terhadap sql injection. Untuk lebih lanjut, silahkan mempelajarinya lebih lanjut pada
website Laravel.
Pada kode, terakhir kita melihat return Redirect::to('/crud/read') yang artinya setelah kode di
eksekusi, kita akan di-redirect ke halaman http://tut_laravel/crud/read. OK, artinya kita akan
membuat Controller dan Method berikutnya.

#4.3. Method read dan read.blade.php


Pada bagian #routes diatas, kita telah
mendefinisikan Route::get('crud/read','BelajarController@read'). Untuk membuat
http://tut_laravel/crud/read bekerja dengan baik, berikut adalah kode method read pada
fileBelajarController.php;
public function read() {
$datas = DB::table('nilai')->get();
return View::make('crud.read')

->with('datas',$datas);
}

Cukup simple bukan? :)


Berikut buat view /view/crud/read.blade.php

Jika mengeksekusi URL http://tut_laravel/crud/read akan terlihat seperti berikut;

Silahkan tambahkan beberapa data lagi agar kita dengan mudah dapat mengeditnya.
Sekarang kita akan membuat kode edit agar anchor edit berfungsi dengan baik.

#4.4. Method formEdit dan form_edit.blade.php


Berikut adalah method formEdit pada file BelajarController.php;
public function formEdit($id) {
$data = DB::table('nilai')->where('id','=',$id)->first(); //untuk mengambil da
ta berdasarkan id
return View::make('crud.form_edit')
->with('data',$data);
}

Berikut buat view /view/crud/form_edit.blade.php

Jika salah satu anchor edit pada http://tut_laravel/read di klik, maka akan terlihat form seperti
gambar berikut;

Untuk dapat menyimpan hasil edit diatas, maka route yang akan kita panggil
adalah /crud/form_edit_post dan berikut kita akan buatkan method untuk menyimpannya
pada BelajarController.php

#4.5. Method formEditPost


Berikut adalah method formEditPost pada file BelajarController.php
public function formEditPost() {
$data = Input::all();
DB::table('nilai')
->where('id','=',Input::get('id'))
->update($data);
return Redirect::to('/crud/read');
}

Pada kode diatas, kita tidak perlu menangkap semua parameter dengan menuliskannya satu per
satu karena Laravel telah menyediakan method Input::all().
Jika kode diatas di eksekusi, maka kita akan di-redirect ke
halaman http://tut_laravel/crud/read yang telah kita buat.
Terakhir, kita akan membuat method untuk menghapus data.

#4.6. Method delete


Dengan meng-klik anchor hapus pada halaman read, maka kita perlu sebuah method delete
pada fileBelajarController.php;
public function delete($id) {
DB::table('nilai')->where('id','=',$id)->delete();
return Redirect::to('/crud/read');
}

Anda mungkin juga menyukai