Routing Dasar Laravel: Mengatur Alur Permintaan HTTP
Routing merupakan komponen fundamental dalam Laravel yang bertugas mengatur arah permintaan HTTP menuju logika yang tepat. Pada pengembangan aplikasi web, sistem routing menentukan bagaimana pengguna berinteraksi dengan resource melalui URL. Laravel menyediakan mekanisme routing yang sederhana, eksplisit, dan fleksibel.
Pada artikel ini akan dijelaskan konsep routing dasar, jenis-jenis route, penanganan parameter, serta contoh implementasi praktis.
Apa Itu Routing dalam Laravel?
Routing adalah proses mengarahkan request yang masuk (GET, POST, PUT, DELETE, dsb.) ke fungsi atau controller yang sesuai. Dengan routing, developer dapat mendefinisikan URL dan menentukan respons yang diberikan kepada pengguna.
Laravel menggunakan file konfigurasi routing yang terdapat pada:
routes/web.php → untuk routing web (membutuhkan session & CSRF) routes/api.php → untuk routing API (stateless)
Routing Simple Menggunakan Closure
Contoh routing paling sederhana menggunakan closure:
// routes/web.php
Route::get('/hello', function () {
return 'Hello, Laravel!';
});
Jika pengguna membuka http://localhost:8000/hello, maka browser akan menampilkan teks "Hello, Laravel!".
Jenis-jenis HTTP Method pada Routing
Laravel mendukung berbagai HTTP method:
MethodKeteranganGETMengambil dataPOSTMengirim data baruPUTMemperbarui data penuhPATCHMemperbarui data sebagianDELETEMenghapus data
Contoh implementasi:
Route::post('/submit', function () {
return 'Data Submitted';
});
Route::put('/update', function () {
return 'Data Updated';
});
Route::delete('/remove', function () {
return 'Data Removed';
});
Routing ke Controller
Selain closure, routing dapat diarahkan ke controller:
use AppHttpControllersUserController;
Route::get('/users', [UserController::class, 'index']);
Struktur controller:
class UserController extends Controller
{
public function index()
{
return view('users.index');
}
}
Pendekatan ini lebih rapi pada proyek yang kompleks.
Route Parameters (Parameter pada URL)
Laravel mendukung parameter dinamis pada URL.
a. Parameter Wajib
Route::get('/user/{id}', function ($id) {
return "User ID: $id";
});
Mengakses:
/user/10 → Output: User ID: 10
b. Parameter Opsional
Route::get('/profile/{name?}', function ($name = 'Guest') {
return "Hello, $name";
});
Mengakses:
/profile → Output: Hello, Guest
Named Route (Memberi Nama Route)
Named route berguna untuk redirect atau membuat URL.
Route::get('/dashboard', function () {
return 'Dashboard';
})->name('dashboard');
Pemanggilan pada Blade:
route('dashboard')
Redirect menggunakan named route:
return redirect()->route('dashboard');
Named route meningkatkan maintainability terutama saat URL berubah.
Grouping Route
Laravel memungkinkan grouping untuk tujuan:
- Prefix URL
- Prefix nama
- Middleware
Contoh prefix URL:
Route::prefix('admin')->group(function () {
Route::get('/dashboard', function () {
return 'Admin Dashboard';
});
Route::get('/users', function () {
return 'Admin Users';
});
});
Akses URL menjadi:
/admin/dashboard /admin/users
Route Middleware
Middleware dapat diterapkan pada route untuk proses filtering (misal: autentikasi).
Route::middleware(['auth'])->group(function () {
Route::get('/settings', function () {
return 'User Settings';
});
});
Jika middleware auth tidak terpenuhi, pengguna akan ditolak.
Routing API
File routes/api.php digunakan untuk endpoint API:
Route::get('/products', function () {
return ['Product 1', 'Product 2'];
});
Perbedaan utama:
- Stateless (tanpa session)
- Tidak memerlukan CSRF
- Konvensi akses menggunakan prefix
/api
Kesimpulan
Routing adalah sistem inti yang menghubungkan permintaan HTTP dengan logika aplikasi dalam Laravel. Dengan kemampuan mengatur HTTP method, parameter URL, named route, hingga grouping dan middleware, Laravel menyediakan fondasi yang kuat untuk pengembangan aplikasi web yang terstruktur dan mudah dipelihara.
Memahami routing dasar merupakan langkah penting sebelum masuk ke pembahasan lebih lanjut seperti:
- Controller
- Model Eloquent
- Middleware
- REST API
- Filament Admin Panel
Yuk lanjut ke Pembahasa Berikutnya: Controller Dasar Laravel