Tutorial Belajar Laravel Part 9: Cara Membuat Route di Laravel 8

Dalam tutorial sebelumnya kita telah berhasil menjalankan Laravel 8 dan mengaksesnya dari web browser. Kali ini akan mulai membahas cara kerja Laravel, yang dimulai dari Route.


Pengertian Route Laravel

Di tutorial Pengertian MVC (Model – View – Controller), kita telah membahas konsep MVC + Routing. Sebagai pengingat, berikut saya tampilkan kembali diagram alur kerja MVC di Laravel:

Diagram Arsitektur MCV

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

Khusus dalam tutorial ini, kita juga akan lihat bahwa di Laravel, route juga bisa dikembalikan langsung ke user (tanpa melewati view maupun controller).

Istilah Route, Router dan Routing kadang saling di pertukarkan. Ketiga istilah ini memiliki perbedaan dari cara penggunaannya dalam konteks bahasa inggris, yakni apakah merujuk ke kata benda atau kata kerja. Dalam pembahasan tutorial Laravel di duniailkom ini, kita anggap saja ketiganya merujuk ke hal yang sama.

Route Bawaan Laravel

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://localhost:8000. Hasil tampilan ini sebenarnya berasal dari sebuah proses route di dalam Laravel.

Jalankan php artisan serve 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:

File route web.php di Laravel

Secara bawaan, file routes/web.php sudah berisi beberapa baris kode program:

<?php

use Illuminate\Support\Facades\Route;

/*
|----------------------------------------------------------------------
| Web Routes
|----------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

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

Di baris 3 terdapat perintah untuk proses import Route facade. Secara sederhana, facade adalah istilah Laravel untuk menyebut class bantu. Route class terdiri dari berbagai method yang akan kita bahas secara bertahap. Dalam penggunaan normal, perintah di baris 3 ini tidak perlu kita utak-atik.

Berikutnya di baris 5 – 14 terdiri dari komentar yang menjelaskan isi file. Hampir setiap file bawaan Laravel berisi komentar tentang maksud dan cara menggunakan file. Kadang baris komentar malah lebih panjang daripada file kode program sebenarnya. Ini sangat memudahkan kita dalam mempelajari setiap perintah yang ada.

Kode program dari route.php ini terdapat di 3 baris terakhir, yakni:

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

Inilah kode program yang dipanggil untuk memproses alamat http://localhost: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.

Maksud “normal” di sini adalah dengan mengetik langsung alamat web di address bar web browser atau ketika kita men-klik sebuah link. Nantinya terdapat jenis method lain seperti post, put, dan delete.

Untuk saat ini bisa disimpulkan bahwa jika ingin membuat route untuk sebuah alamat web, method yang dipakai adalah get.

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:

function () {
  return view('welcome');
}

Anonymous function atau closure adalah sebuah function yang tidak memiliki nama. Umumnya closure dipakai ketika membuat function yang hanya perlu dijalankan 1 kali saja.

Perintah di atas akan menjalankan sebuah View yang bernama ‘welcome’. View ini pada dasarnya berbentuk file php yang akan kita bahas dalam tutorial setelah ini. Untuk sementara, boleh maksud dari perintah return view(‘welcome’).

Sebagai kesimpulan, tiga baris kode program yang ada di dalam route.php bisa dibaca: Jika halaman home diakses, jalankan view yang bernama welcome.

Nantinya, format penulisan route bisa lebih kompleks dari ini dan isi file route sendiri tidak hanya berbentuk anonymous function saja, tapi juga bisa nama view, nama controller, atau hal lain.


Cara Membuat Route di Laravel 8

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

Route::get('/hello', function () {
    return 'Hello World';
});

Di sini saya menulis ‘/hello‘ sebagai argument pertama method Route::get. Sebelumnya sudah kita pelajari bahwa argument pertama ini adalah tempat untuk <alamat URL>. Jika ditulis seperti ini, maka sebuah route dengan alamat http://localhost:8000/hello sudah bisa diakses. Berikut hasilnya:

Cara kerja route Laravel

Ketika alamat http://localhost:8000/hello diakses, maka perintah return ‘Hello World’ akan dijalankan. Hasilnya di web browser tampil teks ‘Hello World’.

Isi dari anonymous function ini juga bisa berbentuk kode PHP biasa, tidak harus perintah return. Sebagai contoh kedua, saya akan tambah route baru untuk alamat http://localhost:8000/belajar:

Route::get('/belajar', function () {
    echo '<h1>Hello World</h1>';
    echo '<p>Sedang belajar Laravel</p>';
});

Pembuatan Route di Laravel

Sekarang isi dari anonymous function terdiri dari 2 buah perintah echo. Keduanya berisi tag <h1> dan <p> yang akan di proses web browser sebagai tag HTML biasa.

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

Route::get('/mahasiswa/fasilkom/anto', function () {
    echo '<h2 style="text-align: center"><u>Welcome Anto</u></h2>';
});

Jika ditulis seperti ini, maka alamat URL-nya adalah http://localhost:8000/mahasiswa/ fasilkom/anto.

Route Multi Segmen Laravel

Sampai di sini semoga anda bisa memahami prinsip dasar cara kerja route Laravel. Intinya, 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.

Ketika mempelajari PHP dasar, kita biasa pahami bahwa jika ditulis alamat http://localhost/belajar.php, maka bisa di tebak itu akan mencari file belajar.php di folder htdocs.

Namun di Laravel, alamat URL ini hanyalah ‘alamat virtual’. Jika ditulis http://localhost:8000/mahasiswa/fasilkom/anto, maka belum tentu di server terdapat folder dengan nama mahasiswa/fasilkom/anto.php, karena alamat tersebut sebenarnya di proses oleh route.


Dalam tutorial belajar Laravel 8 di Duniailkom kali ini kita telah membahas pengertian route, melihat route bawaan Laravel, hingga membuat route yang ditulis sendiri. Akan tetapi isi dari route masih berbentuk perintah echo dari php biasa.

Berikutnya kita akan lihat cara membuat route yang akan mengakses View di Laravel.

Add Comment