Memahami Routing pada Framework Laravel

Routing adalah salah satu konsep fundamental dalam pengembangan web Laravel. Routing memungkinkan kamu untuk menghubungkan URL dengan kode PHP yang akan dijalankan ketika pengguna mengunjungi URL tersebut. Pemahaman yang baik tentang routing sangat penting untuk membangun aplikasi web Laravel yang dinamis dan terstruktur.

Berikut ini adalah poin-poin penting yang akan dibahas dalam tutorial ini:

  1. Konsep Dasar Routing
  2. Membuat Route Dasar
  3. Menampilkan View dengan Route
  4. Route Parameter
  5. Controller Routing
  6. Route Prefix
  7. Route Group
  8. HTTP Methods
  9. Menavigasi Route
  10. Resource Route
  11. Middleware

1. Konsep Dasar Routing

Routing di Laravel bekerja dengan mencocokkan URL yang diakses pengguna dengan definisi route yang telah kamu buat. Ketika URL yang diakses cocok dengan definisi route, maka kode PHP yang terkait dengan route tersebut akan dijalankan.


2. Membuat Route Dasar

Untuk membuat route dasar di Laravel, kamu dapat menggunakan file routes/web.php. Dalam file ini, kamu dapat mendefinisikan route dengan menggunakan method Route::get(), Route::post(), Route::put(), Route::delete(), dan lain sebagainya.

Contoh:
Route::get('/', function () {
      return 'Selamat datang di Laravel!';
  });

Route di atas akan mencocokkan URL / dan menjalankan fungsi anonim yang mengembalikan string "Selamat datang di Laravel!".


3. Menampilkan View dengan Route

kamu dapat menggunakan route untuk menampilkan view Blade.

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

Route di atas akan mencocokkan URL /about dan menampilkan view resources/views/about.blade.php


4. Route Parameter

Route parameter memungkinkan kamu untuk menangkap nilai dari URL.

Contohnya:
Route::get('/artikel/{id}', function ($id) {
  $artikel = Artikel::find($id);
  return view('artikel', ['artikel' => $artikel]);
});

Route di atas akan mencocokkan URL seperti /artikel/1 dan menangkap nilai 1 ke dalam variabel $id. Kemudian, kode PHP akan mengambil data artikel dengan ID 1 dan menampilkannya ke view artikel.blade.php`.


5. Controller Routing

kamu dapat menggunakan controller untuk menampung kode PHP yang terkait dengan route.

Contohnya:
// app/Http/Controllers/ArtikelController.php

  class ArtikelController extends Controller
  {
      public function show($id)
      {
          $artikel = Artikel::find($id);
          return view('artikel', ['artikel' => $artikel]);
      }
  }
  
  // routes/web.php
  
  Route::get('/artikel/{id}', [ArtikelController::class, 'show']);

Pada contoh di atas, kita membuat controller ArtikelController dengan method show(). Method ini kemudian dihubungkan dengan route /artikel/{id} menggunakan array controller.


6. Route Prefix

Route prefix memungkinkan kamu untuk mengelompokkan route dengan awalan yang sama. Contohnya:

Route::prefix('admin')->group(function () {
  Route::get('/dashboard', function () {
      return view('admin.dashboard');
  });

  Route::get('/artikel', function () {
      return view('admin.artikel');
  });
});

Route di atas akan mengelompokkan route /admin/dashboard dan /admin/artikel dengan prefix admin.


7. Route Group

Route group memungkinkan kamu untuk mengelompokkan route dengan lebih fleksibel.

Contohnya:
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
  Route::get('/dashboard', function () {
      return view('admin.dashboard');
  });

  Route::get('/artikel', function () {
      return view('admin.artikel');
  });
});

Route di atas akan mengelompokkan route /admin/dashboard dan /admin/artikel dengan prefix admin dan menerapkan middleware auth.


8. HTTP Methods

kamu dapat menggunakan HTTP methods yang berbeda dalam route, seperti GET, POST, PUT, DELETE, dan lain sebagainya.

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

9. Menavigasi Route

kamu dapat menggunakan helper url() untuk menghasilkan URL dari nama route.

Contohnya:

  <a href="{{ url('artikel') }}">Artikel</a>

Kode di atas akan menghasilkan tautan <a> dengan URL /artikel.


10. Resource Route

Laravel menyediakan cara yang mudah untuk mendefinisikan route untuk operasi CRUD (Create, Read, Update, Delete) dengan menggunakan resource route.

Contohnya :
Route::resource('artikel');

Route di atas akan secara otomatis mendefinisikan route untuk:

  • /artikel (GET) - Menampilkan daftar artikel
  • /artikel/create (GET) - Menampilkan formulir penambahan artike
  • /artikel/store (POST) - Menyimpan data artikel baru
  • /artikel/{id} (GET) - Menampilkan detail artikel dengan ID tertentu
  • /artikel/{id}/edit (GET) - Menampilkan formulir edit artikel dengan ID tertentu
  • /artikel/{id}/update (PUT/PATCH) - Memperbarui data artikel dengan ID tertentu
  • /artikel/{id}/destroy (DELETE) - Menghapus artikel dengan ID tertentu

11. Middleware

Middleware adalah filter yang dapat kamu gunakan untuk menjalankan kode sebelum route dijalankan. Contohnya:


  Route::get('/admin/dashboard', function () {
  return view('admin.dashboard');
})->middleware('auth');

Route di atas akan menerapkan middleware auth sebelum route /admin/dashboard dijalankan. Middleware ini dapat digunakan untuk memeriksa apakah pengguna telah login sebelum mengakses dashboard admin.

Kesimpulan

Routing adalah konsep fundamental dalam Laravel yang memungkinkan kamu untuk membangun aplikasi web yang dinamis dan terstruktur. Dengan memahami konsep dasar routing dan menggunakan contoh-contoh yang telah dibahas dalam tutorial ini, kamu dapat mulai membangun aplikasi Laravel kamu sendiri.