Mengenal Folder routes pada Laravel

  • author-image

    Kurnia Andi Nugroho

  • blog-tag tutorial laravel, install laravel, folder routes laravel, belajar laravel, laravel pemula
  • blog-comment 0 comment
  • dilihat 484 kali
  • 22 Jul, 2025
blog-thumbnail

Mengenal Folder routes pada Laravel

Halo, teman-teman developer!

Pada kesempatan kali ini, mari kita bahas salah satu folder yang terlihat “sepele” tapi punya peran sangat krusial dalam aplikasi Laravel, yaitu folder routes. Bagi yang baru belajar Laravel atau yang sudah lama berkutat tapi belum mendalami arsitektur Laravel secara utuh, bisa jadi bagian ini masih sering diabaikan. Padahal, folder inilah yang menjadi pengatur lalu lintas semua request yang masuk ke aplikasi kita.

Bayangkan Laravel seperti sebuah kota. Nah, folder routes ini adalah peta jalan yang mengarahkan kendaraan (request dari user) menuju tempat tujuan (controller atau closure function).


1. Letak dan Struktur Dasar Folder routes

Secara default, folder routes berada langsung di root direktori Laravel. Di dalamnya, Laravel menyediakan beberapa file utama:

  • web.php
  • api.php
  • console.php

Masing-masing file ini memiliki tanggung jawab tersendiri, sesuai dengan jenis rute (route) yang akan kita buat. Mari kita ulas satu per satu dengan santai, seperti kita lagi ngopi bareng di kelas sore.


2. web.php: Untuk Rute Web (Dengan Middleware Session dan CSRF)

File web.php ini adalah rumah bagi semua rute yang bersifat interaktif dengan browser. Jadi, kalau teman-teman membuat halaman dashboard, form login, atau tampilan produk, rute-rutenya biasanya ditulis di sini.

Laravel secara otomatis memberikan middleware web ke file ini, yang artinya setiap rute yang teman-teman daftarkan akan memiliki dukungan session, cookie, dan CSRF protection.

Contoh sederhana:

Route::get('/', function () {
    return view('welcome');
});

Kalau teman-teman pakai controller:

Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');

Jadi, bisa dibilang web.php adalah titik awal untuk aplikasi yang tampilannya ditujukan ke manusia (bukan API atau mesin).


3. api.php: Untuk Rute API (Stateless)

Berbeda dengan web.php, file api.php digunakan ketika kita ingin membuat layanan API, misalnya untuk dikonsumsi oleh aplikasi mobile atau frontend berbasis Vue/React.

Laravel memberikan middleware api, yang sifatnya stateless. Artinya, tidak ada session atau cookie yang disimpan di server. Komunikasi biasanya menggunakan token atau header tertentu.

Contoh:

Route::get('/users', [UserController::class, 'index']);

Secara default, semua rute di api.php akan memiliki prefix /api. Jadi kalau kita akses rute di atas, URL-nya akan menjadi:

http://localhost:8000/api/users

4. console.php: Untuk Rute Console (Artisan Command)

File ini mungkin agak jarang disentuh kecuali teman-teman membuat command kustom di Laravel. Isinya bukan rute HTTP, melainkan perintah console yang bisa teman-teman jalankan lewat terminal.

Misalnya, teman-teman ingin membuat command untuk menghapus file sementara, atau mengirim notifikasi otomatis tiap malam. teman-teman bisa definisikan di sini.

Contoh:

Artisan::command('salam', function () {
    $this->info('Halo semua, semangat ngoding!');
});

Kalau teman-teman jalankan:

php artisan salam

Maka akan muncul output Halo semua, semangat ngoding! di terminal.


5. Tips dan Best Practice Mengelola File Routes

Seiring bertambahnya fitur aplikasi, file web.php dan api.php bisa tumbuh liar seperti hutan tropis. Oleh karena itu, berikut beberapa tips ala dosen ngoding:

Gunakan Route Grouping

Gunakan prefixmiddleware, dan namespace untuk membuat rute lebih rapi:

Route::prefix('admin')->middleware(['auth', 'is_admin'])->group(function () {
    Route::get('/dashboard', [AdminDashboardController::class, 'index']);
});

Pisahkan Rute per Modul

Kalau sudah sangat kompleks, teman-teman bisa membagi rute ke dalam file terpisah, lalu daftarkan dari RouteServiceProvider.

Misalnya: routes/admin.phproutes/user.php, lalu daftarkan di boot():

Route::middleware('web')
    ->group(base_path('routes/admin.php'));

Beri Nama pada Rute (name)

Dengan memberi nama, teman-teman bisa memanggil rute dengan lebih aman dan fleksibel:

Route::get('/profile', [ProfileController::class, 'index'])->name('profile');

Kemudian bisa dipanggil dengan route('profile').


6. Kesimpulan

Folder routes pada Laravel adalah pusat pengaturan arah semua request dalam aplikasi. Dengan memahami cara kerja file-file seperti web.phpapi.phpconsole.php, dan channels.php, teman-teman akan lebih mudah membangun aplikasi yang rapi, scalable, dan enak dirawat.

Ingat, Laravel itu ibarat kereta cepat: cepat, powerful, tapi tetap butuh rel yang rapi. Dan relnya adalah route-route yang teman-teman buat dengan penuh pertimbangan.

Semoga artikel ini bisa membantu teman-teman lebih paham dan tidak lagi menganggap file routes/web.php sebagai tempat curhat semua rute hehehehe.

author_photo
Kurnia Andi Nugroho

Web & Mobile App Developer, Laravel, Inertia, Vue.Js, React.Js

Founder of Lagikoding.com Laravel Enthusiast & Web Developer