Latar Belakang
Sebagai lanjutan dari pembahasan mengenai pengenalan dan instalasi Laravel, tahap berikutnya adalah mempelajari routing dan controller. Setelah memahami struktur dasar proyek Laravel, penting untuk mengetahui bagaimana sebuah request dari pengguna dapat diproses hingga menghasilkan tampilan atau data yang sesuai. Routing dan controller merupakan dua komponen utama yang mengatur alur tersebut dalam arsitektur MVC.
Artikel ini dibuat dengan tujuan untuk mendokumentasikan hasil pembelajaran saya mengenai peran routing dan controller dalam Laravel. Dengan memahami kedua komponen ini, saya dapat mengetahui bagaimana URL terhubung dengan logika aplikasi serta bagaimana data diproses sebelum dikirimkan sebagai respons kepada pengguna.
Artikel ini dibuat dengan tujuan untuk mendokumentasikan hasil pembelajaran saya mengenai peran routing dan controller dalam Laravel. Dengan memahami kedua komponen ini, saya dapat mengetahui bagaimana URL terhubung dengan logika aplikasi serta bagaimana data diproses sebelum dikirimkan sebagai respons kepada pengguna.
Alat dan Bahan
Alat dan Bahan yang digunakan yaitu sebagai berikut:
A. Perangkat Lunak
- Web browser (Google Chrome)
- Code editor (Visual Studio Code)
- Terminal
- Web server
- Composer
- PHP
- Laravel
B. Perangkat Keras
- Laptop
Routing
Apa itu Routing?
Routing di Laravel adalah mekanisme yang menghubungkan antara URL yang diakses dengan logika pemrosesan yang akan dijalankan. Routing bertindak sebagai peta yang mengarahkan setiap request ke tujuan yang tepat. Ketika seorang pengguna mengakses aplikasi Laravel, framework akan membaca file routing untuk menentukan kode apa yang harus dieksekusi berdasarkan HTTP method dan URI yang diminta.Konsep Dasar Routes
Laravel menyediakan dua file utama untuk mendefinisikan route, yang terletak dalam direktori `routes`:routes/web.php
File ini diperuntukkan bagi route yang berkaitan dengan antarmuka web. Route yang didefinisikan di sini secara otomatis dilengkapi dengan middleware `web` yang menangani session, enkripsi cookie, dan perlindungan CSRF. Route ini biasanya mengembalikan tampilan (view) HTML atau melakukan redirect.routes/api.php
File ini dikhususkan untuk route API yang stateless. Middleware `api` yang diterapkan membatasi fitur seperti session, dan route di sini biasanya mengembalikan respons dalam format JSON. Perlu diperhatikan bahwa route API secara default memiliki prefix `/api` pada URL-nya.Struktur File Routes
Route::method('/uri', function() {return response();
});
Penjelasan:
- Route:: - Ini adalah facade yang menyediakan akses ke komponen routing Laravel
- method - Menentukan metode HTTP yang akan ditangani (GET, POST, PUT, DELETE, dll)
- '/uri' - Path URL yang akan dipetakan
- function() - Closure atau callback yang akan dieksekusi ketika route diakses
Contoh sederhana route:
Route::get('/welcome', function () {return view('welcome');
});
HTTP Method dalam Routing
GET - Membaca Data
Metode GET digunakan untuk mengambil atau membaca data dari database.Route::get('/produk', function () {
return "Halaman daftar produk";
});
POST - Membuat Data Baru
POST digunakan untuk mengirimkan data baru ke database.Route::post('/produk', function () {
return "Data produk baru disimpan";
});
PUT - Memperbarui Data
PUT digunakan untuk memperbarui data yang sudah ada.Route::put('/produk/{id}', function ($id) {
return "Produk dengan ID {$id} diperbarui";
});
DELETE - Menghapus Data
DELETE digunakan untuk menghapus data yang ada di database.Route::delete('/produk/{id}', function ($id) {
return "Produk dengan ID {$id} dihapus";
});
Route Parameter
Dalam aplikasi nyata, kita sering membutuhkan URL yang dinamis. Misalnya, menampilkan profil pengguna berdasarkan ID atau username. Laravel menyediakan mekanisme route parameter yang elegan untuk kebutuhan ini.Parameter Wajib
Parameter dinamis ditempatkan dalam kurung kurawal `{}` dan akan diteruskan sebagai argumen ke closure atau method controller.Route::get('/user/{id}', function ($id) {
return "Menampilkan user dengan ID: {$id}";
});
Parameter Opsional
Terkadang kita membutuhkan parameter yang bersifat opsional. Ini dapat dicapai dengan menambahkan tanda `?` pada parameter dan memberikan nilai default.Route::get('/user/{name?}', function ($name = 'Tamu') {
return "Halo, {$name}";
});
Mengakses Parameter di Controller
Ketika menggunakan controller, parameter akan diteruskan sebagai argumen method:// Dalam file routes/web.php
Route::get('/post/{slug}', [PostController::class, 'show']);
// Dalam file app/Http/Controllers/PostController.php
public function show($slug)
{
return "Menampilkan post dengan slug: {$slug}";
}
Controllers
Apa itu Controller?
Controller adalah ruang kerja dimana logika aplikasi dieksekusi. Dalam arsitektur MVC (Model-View-Controller), controller bertindak sebagai perantara antara model (data) dan view (tampilan).Cara Membuat Controllers
Controller bisa dibuat dengan command artisan dari Laravel, yaitu sebagai berikut:php artisan make:controller ProdukController
Resource Controllers
Pada umumnya ketika kita membuat sebuah model dan pada model tersebut ada proses CRUD maka kita harus membuat satu persatu mulai dari Routing sampai ke Controller dan fungsi yang ada di controller. Laravel mempermudah kita dalam membuat proses tersebut dengan Resource Controller yang sudah ada dari versi sebelumnya sampai sekarang, dengan menggunakan Resource Controller ini kita tidak perlu meng define satu persatu , melainkan hanya dengan menggunakan Artisan Command Laravel akan membuatkan Resource yang dibutuhkan.Berikut standart resource yang ada di Laravel :
Verb | URI | Route Name |
|---|---|---|
GET |
| photos.index |
GET |
| photos.create |
POST |
| photos.store |
GET |
| photos.show |
GET |
| photos.edit |
PUT/PATCH |
| photos.update |
DELETE |
| photos.destroy |
Membuat Resource Controller
Resource controller dapat dibuat dengan perintah Artisan:
php artisan make:controller ProdukController --resource
Perintah ini akan menghasilkan controller dengan ketujuh method di atas.Mendefinisikan Route Resource
Daripada mendefinisikan ketujuh route satu per satu, Laravel menyediakan method `resource`:Route::resource('produk', ProdukController::class);
Hasil Pembelajaran
Melalui pembelajaran ini, saya memahami bahwa routing berfungsi untuk mendefinisikan jalur akses aplikasi berdasarkan URL yang diakses pengguna. Setiap route yang dibuat akan mengarahkan request ke fungsi tertentu atau ke controller yang telah ditentukan. Dengan adanya routing, alur navigasi dalam aplikasi menjadi lebih terstruktur dan mudah dikelola.
Saya juga memahami bahwa controller bertugas menangani logika aplikasi. Controller menerima request dari route, kemudian memproses data sesuai kebutuhan, seperti mengambil data dari database atau mengatur tampilan yang akan ditampilkan. Dengan penggunaan controller, kode menjadi lebih terorganisir karena pemisahan antara logika dan tampilan dapat diterapkan dengan baik.
Saya juga memahami bahwa controller bertugas menangani logika aplikasi. Controller menerima request dari route, kemudian memproses data sesuai kebutuhan, seperti mengambil data dari database atau mengatur tampilan yang akan ditampilkan. Dengan penggunaan controller, kode menjadi lebih terorganisir karena pemisahan antara logika dan tampilan dapat diterapkan dengan baik.
Kesimpulan
Routing dan controller merupakan bagian penting dalam pengembangan aplikasi menggunakan Laravel. Routing mengatur arah request, sedangkan controller mengelola proses dan logika yang terjadi sebelum menghasilkan respons.
Dengan memahami kedua konsep ini sebagai lanjutan dari proses instalasi Laravel, saya memiliki dasar yang lebih kuat untuk mengembangkan fitur aplikasi secara lebih kompleks dan terstruktur sesuai dengan arsitektur MVC.
Dengan memahami kedua konsep ini sebagai lanjutan dari proses instalasi Laravel, saya memiliki dasar yang lebih kuat untuk mengembangkan fitur aplikasi secara lebih kompleks dan terstruktur sesuai dengan arsitektur MVC.