Halo, Selamat datang di seri tutorial Laravel Laravel 12. Sebagai fondasi setiap aplikasi web modern, Perutean (Routing) adalah konsep krusial yang harus dikuasai. Di Laravel, route bertindak sebagai “pemandu” yang mengarahkan permintaan HTTP (seperti mengakses URL) ke kode yang sesuai di aplikasi kamu. Memahami route dengan benar adalah langkah pertama kamu untuk menjadi developer Laravel yang andal.
Apa Itu Route (Perutean) di Laravel ?
Secara sederhana, route Laravel adalah cara untuk mendefinisikan URL aplikasi kamu dan tindakan apa yang harus dilakukan aplikasi ketika URL tersebut diakses. Setiap route terdiri dari:
- Metode HTTP: Menentukan jenis permintaan (misalnya, GET, POST, PUT, DELETE).
- URI (Uniform Resource Identifier): Bagian dari URL setelah nama domain (misalnya, /home, /user/1).
- Tindakan: Fungsi callback atau metode controller yang akan dieksekusi.
Inilah jantung dari Siklus Permintaan Laravel. Ketika pengguna mengakses suatu URL, Laravel akan mencocokkan URI dan Metode HTTP-nya dengan route yang telah kamu definisikan.
Tempat Mendefinisikan Route: Struktur File Wajib
Di Laravel 12, semua definisi route terletak di direktori routes/. Secara default, kamu akan menemukan dua file utama:
| File Route | Tujuan Utama | Middleware Grup Default | Prefix URI Default |
| routes/web.php | Mendefinisikan rute antarmuka web (halaman dengan session, CSRF, dll.). | web | (Kosong) |
| routes/api.php | Mendefinisikan rute API stateless (untuk layanan pihak ketiga, SPA, atau aplikasi mobile). | api | /api |
Kamu akan menghabiskan sebagian besar waktu di file routes/web.php.
Route Dasar dengan Callback
Cara termudah dan tercepat untuk membuat route adalah dengan menggunakan fungsi callback (Closure).
Contoh Route Sederhana (GET Request)
Kamu dapat mendefinisikan route di routes/web.php untuk menampilkan teks:
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return 'Halo, Selamat Datang di Tutorial Laravel!';
});
Route::get('/tentang', function () {
return view('about'); // Mengembalikan view Blade
});- Route::get(): Mendaftarkan route yang merespons permintaan HTTP GET.
- /: URI yang diakses (beranda).
- function () { … }: Fungsi yang dieksekusi ketika route ini dicocokkan.
Route dengan Parameter: Data Dinamis
Aplikasi nyata membutuhkan data dinamis. Kamu bisa mendefinisikan segmen URI yang berubah-ubah menggunakan parameter route.
1. Parameter Wajib (Required Parameters)
Route::get('/user/{id}', function (string $id) {
return 'ID Pengguna: ' . $id;
});- {id}: Mendefinisikan parameter yang harus ada di URI.
- Best Practice: Perhatikan bahwa nilai parameter (misalnya $id) secara otomatis di-inject ke fungsi callback. Kamu dapat menambahkan type-hint (misalnya string $id) untuk kejelasan kode.
2. Parameter Opsional (Optional Parameters)
Route::get('/nama/{name?}', function (string $name = 'Tamu') {
return 'Halo, ' . $name;
});- {name?}: Tanda tanya (?) menunjukkan bahwa parameter ini opsional.
- Kamu harus memberikan nilai default (misalnya ‘Tamu’) pada variabel di fungsi callback.
Route Bernama (Named Routes)
Saat aplikasi Anda tumbuh, Anda akan kesulitan mengelola URL yang di-hardcode. Route Bernama memungkinkan Anda memberikan nama unik pada route, yang memudahkan pembuatan URL, redirect, atau tautan.
Route::get('/profile', function () {
// ...
})->name('profil.pengguna');Cara Menggunakan:
Daripada menulis return redirect(‘/profile’);, Anda bisa menggunakan helper route():
return redirect()->route('profil.pengguna');Ini adalah best practice karena jika Anda mengubah URI dari /profile menjadi /pengaturan-profil, Anda hanya perlu mengubah definisi route di satu tempat, dan semua tautan yang menggunakan nama profil.pengguna akan diperbarui secara otomatis.
Menggunakan Controller: Pemisahan Logika (MVC)
Untuk aplikasi yang terstruktur, route tidak seharusnya memiliki logika yang panjang di callback-nya. Best practice Laravel adalah mengarahkan route ke metode di dalam Controller. Ini sejalan dengan arsitektur Model-View-Controller (MVC).
Buat Controller (di terminal):
php artisan make:controller UserControllerDefinisikan Route di routes/web.php:
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);- [UserController::class, ‘show’]: Ini menginstruksikan Laravel untuk memanggil metode show di dalam UserController.
Implementasi di Controller (app/Http/Controllers/UserController.php):
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function show(string $id)
{
// Logika untuk mengambil dan menampilkan data pengguna
return 'Menampilkan detail pengguna dengan ID: ' . $id;
}
}itulah tutorial perutean (route) yang ada di laravel, selanjutnya kita akan belajar menggunakan pengelompokan route di tutorial selanjutnya

