Laravel 13 Pemula #6: Membuat Jalan Tol (Routing) – Menghubungkan URL dengan Halaman

Tutorial Laravel 13 Pemula • Proyek Web Berita

#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.

🎯 Tujuan Kita:
  1. Memahami apa itu routing dan bagaimana cara kerjanya di Laravel.
  2. Membuat rute sederhana yang menampilkan teks "Halo Dunia".
  3. Membuat rute yang menampilkan file view (halaman HTML).
  4. Mengenal file routes/web.php sebagai 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

📍 Menemukan Papan Petunjuk

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.

✨ Menambahkan Rute Pertama Kita

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!".

💡 Penjelasan: 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.

📄 Membuat File View Baru
  1. Buka folder resources/views.
  2. Buat file baru dengan nama kategori.blade.php.
  3. 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>
  4. 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.

🔢 Rute Dinamis dengan Parameter

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".

📌 Catatan: Parameter {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.

📦 Group Routing
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 prefix untuk 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.

🌟 Semangat! Kamu sekarang sudah bisa membuat halaman sendiri di Laravel. Coba eksperimen dengan membuat rute baru, misalnya /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

Lebih baru Lebih lama

نموذج الاتصال