Tutorial ini adalah tutorial series dimana semua artikel yang membahas Framework Laravel untuk pemula akan dibahas disini, tapi artikelnya saya akan pecah tergantung topik pembahasannya dan pembahasan yang pertama adalah tentang Routing, Controller dan View.

Laravel adalah salah satu framework php yang berbasis Model, View, dan Controller. Dimana untuk sebagian pemula yang baru terjun dalam dunia framework mungkin akan sedikit asing dengan istilah ini.

Tapi jika kalian sebelumnya pernah belajar OOP ( Object Oriented Programing ) sebelumnya saya yakin kalian tidak akan kesulitan untuk memahami konsep MVC ( Model View Controller ) ini.

Pada MCV dimana ada model yang bertugas untuk operasi yang melibatkan database, sementara view mengurusi tentang tampilan dan controller sebagai jembatan pertukaran data yang akan ditampilkan antara model dan view.

Nah bagi yang ingin tahu lebih lanjut tentang pattern MVC di Laravel atau sedang baru memulai belajar framework Laravel maka kalian sudah ada dijalur yang tepat :).

List Pembahasan

Pembahasan pada artikel ini meliputi :

  1. Persiapan bahan - bahan untuk instalasi Laravel.
  2. Routing.
  3. Controller.
  4. View.

Ok untuk pembahasan tentang model akan dibahas di part 2 artikel ini jadi untuk sementara harus bersabar dulu ya :v.

Dan bagi yang tidak sabaran begitu bisa langsung menuju dokumentasi Laravelnya langsung disana seluk beluk Laravel dibahas secara tuntas tapi harus sedikit mengerti bahasa inggris :).

Kita langsung kepersiapkan apa saja bahan yang dibutuhkan.
 

Persiapan

PHP

Untuk yang pertama sudah pasti harus ada PHP, tapi tidak sembarang versi PHP versi yang harus terinstall adalah versi 7.2 karena pada pembahasan akan menggunakan versi laravel yang terbaru memerlukan versi PHP paling tidak versi 7.1.3. 

Dan bagi yang tidak mau report bisa install XAMPP ini paket development lengkap sekarang sudah tersedia dengan PHP versi 7.3.

Composer

Bagi yang belum tahu composer adalah package manager untuk php, ini sama seperti npm dan yarn di NodeJs. Nah untuk instalasinya pastikan kalian sudah install XAMPP tadi dikomputer kalian lalu kunjungi website composer

pada halaman download kalian bisa install secara programmatically atau download manual dibagian paling bawah. Untuk yang menggunakan Windows saya sarankan untuk download manual dibagian bawah nah untuk Linux baru yang programmatically-nya.

Untuk mengecek apakah composer sudah terinstall atau belum bisa jalankan command :

composer

pada cmd/terminal. dan jika outputnya seperti ini :

maka composer sudah berhasil terinstall.

Install Laravel

ada 2 perintah yang dapat digunakan untuk menginstall Laravel yaitu dengan :

composer global require laravel/installer
laravel new blog

atau

composer create-project --prefer-dist laravel/laravel blog

blog disini adalah nama folder yang dipakai untuk file - file yang dibutuhkan oleh Laravel kalian bebas menentukan nama folder sesuka hati.

Tunggu beberapa menit sampai proses instalasi selesai dan jika sudah maka buka folder blog atau folder yang sudah kalian tentukan sebelumnya maka tampak root directory Laravel kurang lebih seperti ini :

 

Routing

Setelah semua persiapan sudah selesai maka kita bisa lanjut kepembahasan tentang routing. Nah routing ini bisa dibilang sebuah pintu gerbang bagi laravel, karena semua modelview dan controller harus melewati route terlebih dahulu.

Route di Laravel sendiri dibedakan menjadi 4 method yaitu : GET, POST, PUT/PATCH, DELETE, nah mungkin yang kalian tahu selama ini method hanya ada 2 GET dan POST ini dikarenakan untuk security bagi aplikasi itu sendiri dan juga merepresentasikan aksi tiap - tiap route.

Method GET digunakan untuk mengambil data, POST untuk memposting atau menambah data, PUT mengupdate data yang sudah ada dan DELETE menghapus data.

Ok itu penjelasan sedikit tentang routing selanjutnya kita akan membuat basic route dengan method GET. Pertama masuk kedalam folder instalasi laravel lalu buka folder routes > file web.php.

Nah pada web.php inilah semua route didaftarkan, dan sekarang kita coba mendaftarkan route baru.

Route::get('/helloworld', function () {
	return 'Hello world';
});

Untuk menjalankan, buka cmf/terminal lalu menuju root directory Laravel kemudian dengan command :

php artisan serve

command tersebut akan membuat development server sendiri untuk Laravel jadi tidak perlu repot dipindahkan ke htdocs hehe.

Nah setelah dev server running kita bisa coba akses route yang tadi kita buat /helloworld maka kurang lebih akan seperti ini 

Route dengan Parameter

Seperti halnya fungsi kita juga bisa memberikan sebuah parameter dalam sebuat route

Route::get('getuser/{name}', function ($name) {
	return 'Selamat datang '.$name;
});

bisa dilihat dari route diatas memiliki parameter name dan laravel secara otomatis akan mengenali variable name menjadi sebuah parameter sehingga nilai dari name tergantung dari apa yang diakses user dari route tersebut.

sebagai contoh jika user mengakses getuser/aldo maka variable $name akan terisi dengan "aldo".

Memberikan Name pada Route

Seperti halnya variable route juga perlu diberi suatu name walau tidak wajib, ini berguna ketika ada perubahan pada struktur dari route itu sendiri maka kita tidak perlu repot - repot mengubahnya pada setiap halaman.

Route::get('/helloworld', function () {
	return 'Hello world';
})->name('helloworld');

untuk mendapatkan url berdasarkan name route bisa dengan fungsi ini

route('helloworld')

 

Controller

Jika kalian perhatikan koding route yang sudah kalian buat pasti terlihat tidak rapi, mungkin sekarang terlihat baik - baik saja karena kodingnya masih sedikit tapi bagaimana jika routenya sudah banyak? atau sudah membuat CRUD?

Nah disinilah peran dari Controller, seperti yang saya katakan diawal Controller bertugas menjadi penyambung antara view dan model. 

Jadi mulai dari sekarang dan seterusnya kita akan membuat logic di Controller tidak di route lagi.

Untuk membuat Controller bisa menggunakan command berikut :

php artisan make:controller HelloWorldController

kalian bisa cari Controller yang sudah digenerate pada directory app > Http > Controllers.

Nah pada Controller tersebut kita akan buat 2 fungsi yang tadinya berada di route sebagai anonymous funtion kita buatkan masing - masing fungsi untuk route tersebut.

public function helloWorld() {
    	return "Hello World";
}
    
public function getUser($name) {
	return "Selamat datang : ".$name;
}

 lalu modifikasi 2 route tadi menjadi seperti ini

Route::get('/helloworld', 'HelloWorldController@helloWorld');
Route::get('getuser/{name}', 'HelloWorldController@getUser');

disini kalian bisa lihat perbedaannya terlihat lebih rapi bukan?, untuk sekedar info simbol "@" diakhir nama Controller itu maksudnya fungsi mana yang akan dijalankan ketika route diakses.

 

View

Sejauh ini kita sudah membahas tentang Route dan Controller sekarang saatnya bagaimana agar route bisa menampilkan template/tampilan agar lebih menarik.

Untuk view kalian bisa buat sendiri pada directory resources > views, karena view merupakan code html jadi tidak ada command untuk menggerate view.

Blade Template

Ini yang menjadi salah satu keunggulan dari laravel sendiri, Laravel menawarkan template engine yang sangat powefull yaitu blade.

Jadi saat kalian membuat view tidak akan menggunakan extensi .php melainkan .blade.php ini adalah standar yang ditentukan Laravel.

Ok langsung saja kita mulai membuat template untuk masing - masing route yang sudah dibuat.

Yang pertama helloworld.blade.php.

<h1>Hello World</h1>

dan satu lagi user.blade.php.

<h1>
Selamat datang : {{ $user }}
</h1>

Jika diperhatikan pada user.blade.php terdapat tanda "{{ }}" itu sama seperti echo jika di PHP dan ada variabel $user disana nah darimana datangnya? sebelum kesana kita modifikasi dulu HelloWorldController.

Pada fungsi helloWorld kita hanya mengubah return valuenya saja

return view('helloworld')

dari yang tadinya hanya return text biasa sekarang kita return dengan memanggil fungsi view bawaan dari laravel dan akan otomatis merender helloworld.blade.php.

Hal yang sama juga kita lakukan pada fungsi getUser.

return view('user', ['user' => $name]);

Disini agak sedikit berbeda sebab kita akan mempassing variabel $name agar bisa diakses oleh view dengan cara memasukannya kedalam associative array dengan key user, dan pada view yang kita akses adalah key dari array.

Nah dari sinilah asal mula variabel $user dalam view user.blade.php tersebut.

 

Ok sekian pembahasan tentang dasar dari Route, Controller dan View. Untuk pembahasan tentang Model menyusul secepatnya dan akan ada pembahasan lanjutan dari pembahasan yang sekarang.

Jika ada yang ingin ditanyakan langsung dikolom komentar ya :)
Untuk kalian yg lagi cari monitor atau aksesoris seperti keyboard, mousepad dan mouse bisa lihat rekomendasi saya di tokopedia ya.