PENDAHULUAN
Laravel merupakan salah satu framework PHP yang sangat populer karena menyediakan berbagai fitur yang dapat mempercepat dan mempermudah pengembangan aplikasi web. Salah satu fitur penting yang sering digunakan adalah Route Model Binding. Dengan fitur ini, data dari database dapat dipanggil langsung melalui parameter URL tanpa harus menuliskan query manual. Hal ini menjadikan kode lebih sederhana, mudah dipahami, sekaligus meningkatkan keamanan aplikasi.
Salah satu praktik terbaik dalam pengembangan aplikasi web adalah membuat URL yang lebih ramah pengguna (user-friendly). Misalnya, dibandingkan menggunakan /posts/1, kita dapat menampilkan URL seperti /posts/belajar-laravel. Untuk mencapai hal ini, Laravel menyediakan method getRouteKeyName() pada model sehingga binding data dapat dilakukan berdasarkan slug daripada id.
PENJELASAN STEP BY STEP
Step 1 – Membuat Model dan Migration
Langkah awal kita buat model baru bernama Post beserta migration menggunakan perintah php artisan make:model Post -m. Migration berfungsi untuk mendefinisikan struktur tabel di database. Pada file migration ditambahkan beberapa kolom penting, yaitu title, slug, dan content. Setelah selesai, migration dijalankan dengan php artisan migrate sehingga tabel posts terbentuk di database.

2025_09_25_024928_create_posts_table.php


Step 2 – Mengedit Model Post
Selanjutnya, Di dalam file app/Models/Post.php, ditambahkan atribut $fillable agar kolom title, slug, dan content dapat diisi secara mass-assignment. Selain itu, ditambahkan method getRouteKeyName() yang mengembalikan slug. Dengan demikian, Laravel akan menggunakan slug sebagai acuan Route Model Binding, bukan id seperti default-nya. Hasilnya, URL menjadi lebih ramah pengguna, misalnya /posts/belajar-laravel.
Post.php

Step 3 – Menambahkan Data Dummy dengan Thinker
Untuk menguji model yang sudah dibuat, digunakan Laravel Tinker sebagai tool interaktif. Melalui Tinker, ditambahkan data dummy berupa postingan dengan judul Belajar Laravel. Dengan cara ini, kita bisa memastikan model dan struktur tabel sudah berjalan dengan baik sebelum membuat tampilan antarmuka.

Step 4 – Menambahkan Route
Tahap berikutnya adalah menambahkan route pada file routes/web.php dengan parameter {post}. Berkat Route Model Binding, Laravel otomatis akan mencocokkan parameter URL dengan data yang ada di database berdasarkan slug. Dengan begitu, kita tidak perlu lagi menulis query manual seperti Post::where('slug', ...).
web.php

Step 5 – Menjalankan Server dan Melihat Output
Untuk menguji project, server dijalankan menggunakan perintah php artisan serve. Perintah ini akan menampilkan alamat default yaitu http://127.0.0.1:8000 yang dapat diakses melalui browser. Ketika membuka URL http://127.0.0.1:8000/posts/belajar-laravel, Laravel otomatis mengambil data dari tabel posts berdasarkan slug belajar-laravel. Jika data ditemukan, maka hasilnya akan ditampilkan dalam bentuk JSON. Namun jika slug tidak sesuai atau tidak ada di database, Laravel akan menampilkan error 404 Not Found.

KESIMPULAN
Dari hasil percobaan yang dilakukan, dapat disimpulkan bahwa Route Model Binding di Laravel sangat memudahkan proses pengambilan data dari database. Dengan memanfaatkan method getRouteKeyName() pada model, kita dapat menggunakan slug sebagai parameter URL, sehingga lebih deskriptif, aman, dan ramah pengguna. Fitur ini juga membuat kode lebih ringkas karena tidak perlu lagi menuliskan query manual setiap kali mengambil data.
Sekian Terima Kasih,
Farhan Ahmad Rifqi
5E - Informatika
2310631170017