Anda di halaman 1dari 10

ROUTING

1.1 Kompetensi Utama

- Diharapkan mahasiswa dapat memahami Routing pada laravel.


1.2 Kompetensi Penunjang

- Mengenalkan kepada mahasiswa tentang routing


- Membuat routing pada laravel

1.3 Dasar Teori

1. Routing

Routing berperan sebagai penghubung antara user dengan keseluruhan framework. Dalam
Laravel, setiap alamat web yang diketik di url browser akan melewati route terlebih
dahulu. Route-lah yang menentukan ke mana proses akan dibawa, apakah ke Controller
atau ke View.

2. Routing default
Secara default, Laravel sudah menyertakan 1 route bawaan. Sebelum masuk ke kode
program, mari kita lihat hasil tampilan dari route ini. Jalankan server PHP dengan perintah
: php artisan serve di cmd
Kemudian buka web browser dan ketik alamat http://127.0.0.1:8000 atau
http://localhost:8000 . Hasil tampilan ini sebenarnya berasal dari sebuah proses route di
dalam Laravel.

Pada saat kita mengetik alamat http://localhost:8000 dan menekan tombol Enter,
maka sebuah kode program route Laravel akan dipanggil untuk memproses alamat
tersebut. Kode program ini berada di dalam file routes/web.php. Silahkan buka file
ini:
Pada baris kode terakhir 16-18 inilah kode program yang dipanggil untuk memproses
alamat http://127.0.0.1:8000 Secara sederhana, penulisan route Laravel mengikuti
format berikut:
Route::<jenis method>(<alamat URL>,<proses yang dijalankan>)

Pertama, kita harus menulis perintah 'Route::'. Di dalam konsep OOP PHP, tanda ::
merupakan perintah untuk mengakses sebuah static method (atau bisa juga static
property) kepunyaan sebuah class, yang dalam contoh ini adalah milik class Route.
Selanjutnya diikuti dengan penulisan <jenis method>. Jenis method adalah 'cara
sebuah URL diakses'. 'get' merupakan salah satu jenis method yang akan dijalankan
ketika alamat URL diakses secara normal.

Setelah itu dalam tanda kurung terdapat <alamat URL>. Ini merupakan alamat URL
yang akan di proses oleh route. Dalam contoh route bawaan Laravel, alamat URL ini
berisi 1 karakter saja, yakni: '/'. Tanda forward slash dipakai untuk merujuk ke alamat
home atau root, yakni alamat ketika web dipanggil tanpa menulis tambahan apapun
seperti http://localhost:8000.

Terakhir terdapat inputan untuk <proses yang dijalankan>. Pada bagian inilah kita
menulis kode program yang akan dijalankan oleh route, yakni apakah memanggil
view, memanggil controller, atau hal lain. Dalam contoh bawaan Laravel, proses ini
berbentuk anonymous function, atau kadang disebut sebagai closure atau callback
function

3. Membuat Routing

Untuk membuat route, cukup tulis pemanggilan static method Route baru ke dalam file
routes/web.php. Sebagai contoh, tulis kode program berikut di bawah route bawaan

Laravel:
Alamat URL di dalam route juga bisa terdiri dari beberapa segmen, seperti contoh berikut:

memberikan garis d bawah tulisan slamat datang udin

route akan "menampung" semua alamat yang diketik di web browser, lalu menampilkan
hasilnya. Dengan route, alamat sebuah URL tidak harus bersesuaian dengan file fisik yang
ada di server. Jadi dalam Laravel harus ada route yang bertugas untuk "menangkap" setiap
alamat. Apabila route tidak ditemukan, Laravel akan menampilkan halaman 404:
4. Route Parameter

Dalam situasi tertentu, kadang kita ingin mengambil nilai yang ada di dalam alamat URL.
Menggunakan PHP dasar, ini bisa dilakukan dengan query string. Sebagai contoh, jika
alamat URL ditulis sebagai http://localhost/mahasiswa.php?nama=admin. Maka nilai
admin ini bias diambil dari variabel $_GET['nama'] di halaman mahasiswa.php.

Dalam Laravel, caranya adalah sebagai berikut:

Di argument pertama method Route::get(), terdapat string 'mahasiswa/{nama}'.


Bagian segmen URL yang ditulis dalam kurung kurawal ini akan berfungsi sebagai route
parameter. Route parameter bisa 'ditangkap' oleh kode program dalam anonymous
function. Syarat lain, argument pertama dari anonymous function harus diisi dengan nama
variabel yang ditangkap, yakni function($nama). Dengan penulisan seperti ini, kita bisa
mengakses variabel $nama yang ditulis dalam URL :
Contoh lainnya kita bisa membuat 2 atau lebih route parameter.

5. Route dengan Optional Parameter

Kita bisa membuat salah satu atau kedua segmen ini menjadi opsional. Maksudnya jika
nama segmen tidak ditulis, pakai nilai default. Inilah yang disebut sebagai optional
parameters.

6. Route Parameter dengan Reguler Expression

Route parameter juga bisa dibatasi dengan regular expression. Ini dipakai jika kita ingin
penulisan alamat URL harus memenuhi pola tertentu. Sebagai bahan praktek, perhatikan
route berikut:
Perhatikan tambahan di baris 46, yakni perintah ->where('id', '[0-9]+'). Kode ini
artinya saya ingin agar parameter 'id' hanya bisa diakses jika memenuhi pola regular
expression ‘[0-9]+’ .

Pola ini berarti segmen 'id' hanya bisa diisi dengan angka 0 – 9 sebanyak 1 karakter atau
lebih. Selain itu, route tidak bisa diakses.

7. Route Redirect

Laravel juga menyediakan fitur untuk proses redirect antar route. Caranya, gunakan
method Route::redirect seperti contoh berikut:

Di sini terdapat 2 route. Route di baris 48 – 50 merupakan route normal untuk alamat
localhost:8000/buku-tamu. Di baris 51 terdapat kode untuk membuat redirect.
Sehingga ketika diakses alamat localhost:8000/guest-book, maka halaman langsung
dialihkan ke localhost:8000/buku-tamu.

8. Route Group

Jika kita memiliki beberapa route yang ingin di proses secara kelompok, bisa
menggunakan route group. Dengan menggunakan route group, beberapa route bisa di
proses sebagai satu kesatuan.
Misalnya ada 3 routing seperti berikut :

localhost:8000/login/mahasiswa
localhost:8000/login/dosen
localhost:8000/login/admin

Karena ke tiga routing menggunakan awalan segmen yang sama, yakni login, maka kita
bisa menggunakan method Route::prefix()

Ketiga route sekarang berada di


dalam anonymous function
Route::prefix('login')>group(function() { }). Method ini akan menambah
awalan (prefix) '/login' ke semua route yang ada di dalam group. Ini memudahkan kita
jika ingin mengubah '/login' menjadi prefix lain karena cukup mengedit di group
saja, tidak perlu mengubah route satu per satu.
9. Route Fallback

Laravel menyediakan route khusus yang akan dijalankan jika tidak ditemukan route untuk

sebuah alamat URL. Secara default, laravel akan menampilkan halaman 404 | Not
Found, namun kita bisa menimpanya menggunakan method Route::fallback().

Berikut contoh penulisannya:

10. Daftar Route

Ketika project yang kita buat sudah cukup besar, file routes/web.php akan berisi banyak
route. Selain itu nantinya juga terdapat beberapa perintah yang secara tidak langsung
menjalankan route tertentu

Maka Laravel menyediakan perintah php artisan untuk melihat semua route yang
tersedia. Artisan sendiri adalah perintah cmd bawaan Laravel yang bisa dipakai untuk
melakukan banyak hal.

Buka cmd kemudian ketikkan php artisan route:list


Atau buka terminal pada vscode

Setiap baris terdiri dari 3 bagian:


- Sisi paling kiri berisi route method yang dalam tampilan di atas berisi GET|HEAD
dan POST. Ini tidak lain merujuk ke HTTP method yang dikirim oleh web server.
Nantinya kita bisa menambah method lain seperti PUT atau DELETE
- Sisi tengah berisi alamat URL yang perlu di tulis di address bar web browser
- Sisi kanan berisi nama controller yang yang memproses route tersebut. Meskipun
idealnya route merujuk ke controller, tapi ini tidak harus.

Anda mungkin juga menyukai