#6: Membuat Jalan Tol (Routing) – Menghubungkan URL dengan Halaman
Halo, Insinyur Jalan Tol! 🛣️
Di tutorial sebelumnya, kita sudah membuat tabel categories di database. Tapi bagaimana cara agar pengunjung bisa melihat halaman kategori melalui website? Di sinilah routing berperan. Routing adalah "jalan tol" yang menghubungkan alamat URL (misalnya http://localhost:8000/kategori) dengan halaman yang akan ditampilkan. Tanpa routing, Laravel tidak tahu harus menampilkan apa saat seseorang mengunjungi suatu alamat.
- Memahami apa itu routing dan bagaimana cara kerjanya di Laravel.
- Membuat rute sederhana yang menampilkan teks "Halo Dunia".
- Membuat rute yang menampilkan file view (halaman HTML).
- Mengenal file
routes/web.phpsebagai pusat kendali jalan tol.
Analogi: Routing Seperti Papan Petunjuk Jalan
Bayangkan website kita adalah sebuah kota. Setiap alamat URL (seperti /kategori, /berita, /login) adalah nama jalan. Routing adalah papan petunjuk yang memberi tahu: "Jika kamu datang ke jalan ini, maka kamu akan sampai ke gedung ini (halaman) dan akan disambut oleh orang ini (controller)".
Di Laravel, papan petunjuk ini ditulis di file routes/web.php. Kita bisa membuat aturan: URL tertentu → tampilkan view tertentu, atau URL tertentu → panggil method tertentu di controller.
Langkah 1: Membuka File routes/web.php
Buka folder proyek situs-berita dengan editor teks (VS Code, Sublime, atau Notepad). Cari file routes/web.php. Buka file tersebut. Di dalamnya, kamu akan melihat kode seperti ini:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Ini adalah rute pertama yang sudah disediakan Laravel. Rute ini mengatakan: jika seseorang mengunjungi halaman utama (/), maka tampilkan file view yang bernama welcome.blade.php (ada di resources/views/welcome.blade.php).
Langkah 2: Membuat Rute Sederhana
Mari kita buat rute baru untuk belajar. Kita akan membuat alamat /halo yang menampilkan teks sederhana.
Di file routes/web.php, tambahkan kode berikut di bawah rute yang sudah ada (jangan hapus yang sudah ada):
Route::get('/halo', function () {
return 'Halo, ini halaman pertama saya!';
});
Simpan file. Sekarang buka browser dan akses http://localhost:8000/halo. Jika server Laravel sedang berjalan (php artisan serve), kamu akan melihat tulisan: "Halo, ini halaman pertama saya!".
Route::get() berarti rute ini menangani permintaan GET (yaitu saat seseorang mengetik URL di browser). Parameter pertama adalah URL, parameter kedua adalah fungsi yang akan dijalankan. Fungsi itu mengembalikan teks yang akan ditampilkan.Langkah 3: Membuat Rute yang Menampilkan View (Halaman HTML)
Menampilkan teks biasa itu mudah, tapi website kita butuh halaman HTML yang keren. Laravel memisahkan tampilan ke dalam folder resources/views. Mari kita buat halaman sederhana untuk kategori.
- Buka folder
resources/views. - Buat file baru dengan nama
kategori.blade.php. - Isi file tersebut dengan HTML sederhana:
<!DOCTYPE html> <html> <head> <title>Halaman Kategori</title> </head> <body> <h1>Daftar Kategori Berita</h1> <p>Ini adalah halaman untuk mengelola kategori. Nanti kita akan buat CRUD di sini.</p> </body> </html> - Simpan file.
Sekarang kita buat rute yang mengarah ke view ini. Di routes/web.php, tambahkan:
Route::get('/kategori', function () {
return view('kategori');
});
Akses http://localhost:8000/kategori di browser. Kamu akan melihat halaman HTML yang baru dibuat. Selamat! 🎉
Langkah 4: Mengenal Route dengan Parameter
Kadang kita butuh URL dinamis, misalnya /kategori/1 untuk menampilkan kategori dengan ID 1. Laravel mendukung parameter di rute.
Tambahkan rute berikut di web.php:
Route::get('/kategori/{id}', function ($id) {
return "Menampilkan kategori dengan ID: " . $id;
});
Coba akses http://localhost:8000/kategori/5. Maka akan tampil "Menampilkan kategori dengan ID: 5".
{id} akan ditangkap dan diteruskan ke fungsi. Nanti kita akan gunakan ini untuk menampilkan detail berita atau kategori tertentu.Langkah 5: Mengelompokkan Rute dengan Prefix (Opsional)
Karena nanti kita akan punya banyak rute untuk admin (seperti /admin/kategori, /admin/berita), kita bisa mengelompokkannya dengan prefix.
Route::prefix('admin')->group(function () {
Route::get('/kategori', function () {
return view('kategori');
});
Route::get('/berita', function () {
return "Halaman admin berita";
});
});
Sekarang rute /admin/kategori dan /admin/berita akan aktif. Ini memudahkan kita mengatur rute yang memiliki kesamaan awal.
Ringkasan: Hal-Hal Penting tentang Routing
- Semua rute untuk website ditulis di
routes/web.php. Route::get()untuk menangani permintaan GET (biasanya untuk menampilkan halaman).- Kita bisa mengembalikan teks langsung, atau mengembalikan view menggunakan
view('nama_view'). - Parameter dinamis menggunakan kurung kurawal:
{id}. - Kita bisa mengelompokkan rute dengan
prefixuntuk menjaga kerapian.
Apa Selanjutnya?
Routing adalah fondasi untuk menghubungkan URL ke halaman. Di tutorial berikutnya, kita akan membuat controller – yaitu "kapten" yang akan mengatur aliran data antara database dan tampilan. Kita akan mulai membuat CategoryController untuk menangani operasi CRUD kategori (tambah, lihat, edit, hapus). Jadi, kita tidak akan menulis logika di file web.php lagi, melainkan memanggil controller dari rute.
/profil yang menampilkan profilmu. Latihan kecil akan membuatmu semakin paham.
📝 Seri Tutorial Laravel 13 Pemula – Proyek Web Berita
✨ Selanjutnya: #7: Membuat Rumah untuk Kategori (Controller) – CategoryController