Memahami Dasar Controller dan view di Framework Laravel (Laravel-3)

Posted on

Setelah belajar routing laravel di tutorial Belajar Dasar Routing Framework Laravel . Selanjutnya belajar memahami cara kerja controllers dan views di Framework Laravel. Bagaimana cara kerja antara routing, controller, view dan model.  Sebelumnya kita harus tau konsep MVC, M adalah Model , Model digunakan untuk query atau proses mengambil data dari databas. V adalah View, View digunakan untuk tampilan user berupa html, css, js dan data yang bersifat client. Sedangkan C adalah Controller yang digunakan untuk mangatur atau menjembatani antara model dan view atau bisa digunakan untuk mengatur alur program. Berikut ini gambar dari MVC.

Gambaran Tentang Konsep MVC

Di tutorial kali ini kita akan hanya membahas Controller dan View. Dari belajar routing sebelumnya kita akan menggabungkan dengan controller dan view. Jika belum silahkan lihat tutorial Asyiknya, Belajar Dasar Routing Framework Laravel. Untuk persiapan buka file routes.php anda dan didalam folder controllers buat file dengan nama ProfileController.php. Setelah itu ProfileController.php isi dengan code berikut :

1
2
3
4
5
6
< ?php
class ProfileController extends BaseController {
}
//Untuk spasi diantara tanda < dan ? silahkan dihapus

Basic Controllers ( Dasar Controller )

Dasar controller ini adalah bagaimana cara secara dasar kita dapat menjalankan controller tersebut dengan bantuan route. Apakah anda masih ingat code dibawah ini terletak dimana ?

1
2
3
4
Route::get('/',function()
{
    return'Ini Contoh Halaman Home';
});

Yapz.. , code ini terletak di file routes.php dan apa hubungannya, seperti yang kita jelaskan sebelumnya dimateri routing , routing digunakan untuk menentukan uri atau format url. Lah ketika kita belajar routing sebelumnya string Ini Contoh Halaman Home berada dirouting itu sendiri, bayangkan jika didalam method / fungsi Route::get(‘/’,function() Ini sampai puluhan atau sampai ratusan baris apa kita tidak pusing melihatnya belum lagi ditambah fungsi – fungsi yang lainnya. Maka dari itu controller ini berfungsi memecah code itu sendiri. Bagaimana caranya agar fungsi – fungsi puluhan bahkan ratusan itu kita pindah ke controller. Lihat code sederhana dibawah ini.

1
2
3
4
Route::get('/',function()
{
    return'Ini Contoh Halaman Home';
});

Code diatas silahkan di ganti dengan code dibawah ini.

1
Route::get('/', 'ProfileController@index');

Dan di ProfileController.php sebelumnya yang telah kita buat tambahkan code berikut ini.

1
2
3
4
public function index()
{
    return'Ini Contoh Halaman Home';
}

Hasilnya di ProfileController.php menjadi seperti ini

1
2
3
4
5
6
7
8
class ProfileController extends BaseController {
    
    public function index()
    {
    return'Ini Contoh Halaman Home';
    }
    
}

Sekarang penjelasan dari code didalam routes.php yang telah diganti sebelumnya

1
Route::get('/', 'ProfileController@index');

Route::get adalah method digunakan untuk digunakan untuk menampilkan view maupun data.

Tanda ‘/’, menunjukan route yang di definisikan atau dibuat untuk route utama atau halaman utama contoh seperti seputarpmrograman.com bukan seputarpmrograman.com/tutorial-laravel.

ProfileController , adalah nama file ataupun class controller.

index , adalah method atau fungsi yang berada di controller.

Untuk mencoba menajalankan program sama seperti sebelumnya ketikan url seperti ini

1
http://localhost/laravelmaster/   atau   http://belajarlaravel.com

Hasilnya pun sama seperti tutorial routing, Itu adalah Cara Dasar menggunakan Controller.

 

Controller Dengan Route Parameters

Tutorial diatas adalah cara menggunakan controller secara dasar, sekarang bagaimana jika kita parsing atau mengirim parameter di controller seperti yang dilakukan di routing.

Rubah code dibawah ini yang berada di routes.php

1
2
3
4
Route::get('profile/{nama}',function($nama)
{
    return'Profile Nama : '.$nama;
});

Menjadi

1
Route::get('profile/{nama}', 'ProfileController@profile');

Dan didalam controller file ProfileController.php tambah fungsi berikut ini dibawah fungsi index.

1
2
3
4
public function profile($nama)
{
    return'Profile Nama : '.$nama;
}

Keterangan code :

Route::get(‘profile/{nama}’, ‘ProfileController@profile’);

profile/{nama}, menunjukan route yang di definisikan. {nama} adalah parameter.

ProfileController , adalah nama file ataupun class controller.

profile , adalah method atau fungsi yang berada di controller.

public function profile($nama) . adalah sebuah fungsi bernama profile yang menangkap sebuah parameter dengan variabel nama.

return’Profile Nama : ‘.$nama; , mengembalikan nilai dari parameter nama.

Untuk menjalankannya juga masih sama seperti tutorial sebelumnya.

1
http://localhost/laravelmaster/profile/AgizYL  atau  http://belajarlaravel.com/profile/AgizYL

Hasilnya pun juga sama.

 

Kolaborasi antara view dan Controller

Setelah membahas cara kerja controller bagaimana kita menggabungkan view dengan controller. Sebelumnya di folder views buatlah sebuah file bernama profile.php isikan code berikut :

1
2
3
Profile ID / Nama : < ?php echo $id; ?> / < ?php echo $nama; ?>
//Untuk spasi diantara tanda < dan ? silahkan dihapus

Lalu di controller, ProfileController.php tambah fungsi berikut dibawah fungsi profileview.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function profileview($id,$nama)
    {
    
    $data =
    
    [
    
    'id' => $id, // Menyimpan nilai dari variable id ke dalam array
    
    'nama' => $nama // Menyimpan nilai dari variable nama ke dalam array
    
    ];
    
    return View::make('profile',$data); // Parsing data ke dalam view lalu ditampilkan.
    
}

Dan yang terakhir ganti code didalam routes.php ini

1
2
3
4
Route::get('profile/{id}/{nama}',function($id, $nama)
{
    return'Profile ID / Nama : '.$id.' / '.$nama;
});

Menjadi seperti ini

1
Route::get('profile/{id}/{nama}', 'ProfileController@profileview');

Keterangan code :

$data =

[

                            ‘id’ => $id, // Menyimpan nilai dari variable id ke dalam array

                            ‘nama’ => $nama // Menyimpan nilai dari variable nama ke dalam array

];

Code diatas adalah menyimpan nilai dari variabel id dan nama kedalam variabel data berbentuk array.

return View::make(‘profile’,$data); , digunakan untuk memanggil atau menampilkan file di folder views dan data. ‘profile’ disini adalah nama file yang berada didalam folder views. $data adalah data berbentuk array yang dikirim ke dalam view atau profile.php di folder views.

 

Catatan : tutorial diatas hanya dasar atau sebagian kecil dari materi controller dan view. Tapi tutorial diatas sudah lebih dari cukup untuk mengenal atau memahami laravel, setelah paham tutorial diatas anda dapat belajar lebih dalam lagi di laravel.com. Tujuan tutorial ini hanya untuk mengenalkan saja tidak semua dibahas disini. Untuk tentang model akan kita bahas di tutorial CRUD laravel.

Leave a comment