Laravel

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.

Asyiknya, Belajar Dasar Routing Framework Laravel (laravel – 2)

Posted on Updated on

Pada tutorial laravel tahap kedua ini kita akan membahas routing di framework laravel. Dari judul artikel atau tutorial ini ” Asyiknya,  Belajar Dasar Routing Framework Laravel”, mengapa saya menyebutkan asyik belajar routing. Dengan routing secara sederhananya kita dapat menuliskan atau mensetting nama url website yang akan kita bangun. contohnya saja http://www.belajarlaravel.com/{uri maupun parameter yang kita inginkan}.
Dalam routing kita akan mengenal yaitu GET dan POST, pastinya sudah tidak asing lagi bagi yang terbiasa belajar atau membuat website. Secara gamblang kita bisa melihat perbedaannya, GET data dan parameter akan terlihat di url sedangkan POST tidak terlihat di url. Tapi framework laravel bagian routing GET dan POST ini mempunyai cara kerja yang berbeda dan yang dimaksud bukan $_GET maupun $_POST kalau dilaravel $_GET dan $_POST ini bisa kita pelajari di bagian basic input di laravel.com contohnya Input::get(‘name’); . Tapi ditutorial ini atau didalam routing laravel GET disini digunakan untuk menampilkan, parsing atau mengirimkan data. Sedangkan POST digunakan untuk menangani sebuah form untuk menerima hasil inputan data.

Di laravel maupun di dunia programming kita pasti mengenal istilah RESTful. RESTful mempunyai beberapa method selain $_GET dan $_POST yaitu PUT/PATCH dan DELETE. Apa itu RESTful, RESTful merupakan sebuah teknik di arsitektur software untuk sistem terdistribusi seperti World Web Wide. Contoh nyata penggunaan Restful itu sendiri seperti kita berkunjung di sebuah web comtohnya saja 4.shared lalu kita bisa login dengan akun facebook.Tapi ditutorial ini kita tidak akan membahas lebih dalam mengenai RESTful.

Di tutorial ini saya tidak akan membahas mengenai method POST, karena method ini akan saya bahas di tutorial form laravel. Sedangkan RESTful akan saya bahas di tutorial membuat crud. Pada Tahap ini kita hanya akan membahas penggunaan GET.

Catatan :  routing dapat didefinisikan atau dituliskan di foder app lalu file routes.php.
GET , method ini dalam laravel biasanya digunakan untuk menampilkan view maupun data. Buka Project yang telah di install, Jika belum install laravel silahkan ikuti tutorial install “Belajar Install Framework Laravel Dengan Composer Maupun Tanpa Composer”. Jika sudah silahkan dibuka projectnya cari file routes.php berada dalam folder app.

 

BELAJAR  BASIC ROUTE

Secara dasar penggunaan dasar route sebagai berikut, silahkan buka file routes.php anda akan menemukan code seperti dibawah ini.

1
2
3
4
Route::get('/', function()
{
            return View::make('hello');
 });

Code diatas silahkan dihapus dan diganti menjadi seperti dibawah ini.

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

Route::get adalah method digunakan untuk route dengan method get seperti yang dijelaskan diatas.

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

return’Ini Contoh Halaman Home’; menunjukan mengembalikan suatu nilai yang berisi “Ini Contoh Halaman Home”.

Untuk cara menjalankan hasil route diatas silahkan ketik url :

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

Hasilnya menampilkan

laravel1

 

BELAJAR  ROUTE  PARAMETERS

Fungsi route parameters ini adalah mengirimkan sebuah nilai atau parameter ke route atau ke controller. Di route parameters kita dibagi menjadi beberapa bagian :

  1. Basic Route Parameters (Dasar Route Berparameter)
  2. Route Parameters (Route Berparameter Lebih dari Satu)
  3. Optional Route Parameters (Opsional Route Parameter)
  4. Optional Route Parameters With Defaults (Opsional Route Parameter dengan Nilai Default)

 

1. Basic Route Parameters (Dasar Route Berparameter)

Tambahkan code berikut ke file routes.php

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

profile/{nama} , digunakan untuk definisi / penamaan route / urlnya sedangkan untuk {nama} adalah variable yang dikirimkan atau parameternya.

function($nama) , digunakan untuk menangkap parameter

return’Profile Nama : ‘.$nama; , digunakan untuk Menampilkan kalimat Profile Nama : Sesuai Parameter.

Contoh cara menjalankan ketikan url seperti ini :

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

Maka yang dihasilkan akan seperti ini :

laravel2

2. Route Parameters (Route Berparameter Lebih dari Satu)

Untuk mengirim parameter lebih dari satu dari contoh dasar route berparameter kita hanya perlu menambahkan /{parameter-baru}. Lebih jelasnya lihat contoh dibawah ini dan bandingkan dengan contoh sebelumnya.

Tambahkan code berikut ini ke routes.php

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

profile/{id}/{nama} , digunakan untuk definisi / penamaan route / urlnya sedangkan untuk {id} adalah variable yang dikirimkan atau parameternya. {nama} adalah parameter kedua.

function($id, $nama) , digunakan untuk menangkap parameter

return’Profile ID / Nama : ‘.$id.’ / ‘.$nama; , digunakan untuk Menampilkan kalimat Profile Nama : Sesuai Parameter Pertama / Sesuai Parameter Kedua .

Coba jalankan dengan perintah / url seperti ini :

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

Maka hasilnya menjadi seperti ini

laravel3
3. Optional Route Parameters (Opsional Route Parameter)

Opsional Route Parameter adalah sebuah pilihan jika parameter tidak dicantumkan maka akan diganti dengan null dengan demikian program akan tetap jalan. Contohnya saja silahkan di contoh sebelumnya anda hilangkan parameter apa yang terjadi, program akan error. Sekarang mari kita lihat contoh dari opsional route parameter ini.

1
2
3
4
Route::get('profile/{nama?}', function($nama = null)
{
    return $nama;
});

profile/{nama?} , digunakan untuk define / penamaan route / urlnya, {nama?} artinya jika parameter tidak ditemukan akan diganti null dengan code berikut $nama = null.

return $nama; , mengembalikan nilai parameternya.

Coba jalankan dengan perintah / url seperti ini :

1
http://belajarlaravel.com/profile

maka hasilnya akan blank page / kosong, jika dijalankan seperti ini

1
http://belajarlaravel.com/profile/AgizYL

Maka menghasilkan “Profile Nama : AgizYL”.

4. Optional Route Parameters With Defaults (Opsional Route Parameter dengan Nilai Default)

Opsional Route Parameter dengan Nilai Default ini hampir sama dengan Opsional Route Parameter Cuma perbedaannya hanya kita bisa memberikan nilai default pada suatu parameter jika parameternya tidak ditemukan, contohnya :

1
2
3
4
Route::get('profile/{nama?}', function($nama = 'AgizYL')
{
    return $nama;
});

profile/{nama?} , digunakan untuk define / penamaan route / urlnya, {nama?} artinya jika parameter tidak ditemukan akan diganti null dengan code berikut $nama = ‘AgizYL’.

Coba jalankan dengan perintah / url seperti ini :

1
http://belajarlaravel.com/profile

maka yang ditampilkan “Profile Nama : AgizYL” karena defaultnya AgizYL, jika kita rubah umpama Rudi maka yang dihasilkan “Profile Nama : Rudi”.

 

Itulah dasar route yang perlu diketahui, dan masih banyak yang lain tentang route tapi kita akan pelajari dengan berjalan, maksudnya dengan belajar yang lain. Kalau kita pelajari langsung semua bagi pemula ataupun yang belum pernah tau apa itu route maka akan menjadi bingung.

Catatan : Untuk tes code diatas usaha kan code yang lain didalam routes.php dinonaktifkan dengan memberi komentar pada code terserbut agar tidak bentrok dan lebih tau fungsi yg mana yang sedang berjalan.