Skip to content

02. Mengenal Laravel ​

Pada materi sebelumnya, Anda telah mempelajari dasar kerja PHP Native serta bagaimana script di sisi server memproses data dan menghasilkan dokumen HTML. Sekarang, kita akan melangkah ke tahap berikutnya: mengenal Laravel, framework modern yang akan kita gunakan untuk membangun Aplikasi Sistem Informasi Perpustakaan.


A. Pengantar ​

Ketika Anda membuat halaman web sederhana yang hanya menampilkan beberapa data buku, PHP Native terasa sangat cepat dan mudah digunakan. Namun, bayangkan jika aplikasi perpustakaan Anda terus berkembang:

  • Anda harus mengelola data ratusan buku dan kategori.
  • Anda perlu mencatat ribuan transaksi peminjaman dan pengembalian.
  • Anda harus membatasi hak akses antara Administrator dan Anggota biasa.
  • Anda harus mengamankan formulir dari serangan berbahaya seperti SQL Injection dan Cross-Site Scripting (XSS).

Jika seluruh kebutuhan tersebut dibangun menggunakan PHP Native dari nol, Anda akan menghabiskan sebagian besar waktu hanya untuk menulis ulang kode dasar yang sama (reinventing the wheel). Kode program juga berisiko menjadi berantakan (spaghetti code) dan sulit dirawat.

Di sinilah framework hadir sebagai solusi. Dan di ekosistem bahasa pemrograman PHP modern, Laravel adalah framework paling populer dan menjadi standar industri saat ini.


B. Apa Itu Laravel? ​

Laravel adalah sebuah framework aplikasi web berbasis PHP yang bersifat open-source, diciptakan oleh Taylor Otwell pada tahun 2011. Laravel dirancang dengan filosofi mengutamakan kenyamanan pengembang (developer experience).

Konsep Framework ​

Secara sederhana, framework adalah sebuah kerangka kerja yang telah menyediakan struktur dasar, kumpulan pustaka fungsi (libraries), dan pola baku (design patterns) untuk mempermudah pembuatan aplikasi web.

Ibarat membangun sebuah rumah:

  • Jika menggunakan PHP Native, Anda seperti harus mencetak batu bata sendiri, memotong kayu dari hutan, dan merakit engsel pintu dari nol.
  • Jika menggunakan Framework, Anda sudah mendapatkan pondasi kokoh, tiang penyangga berstandar aman, dan sistem kelistrikan yang siap pakai. Anda tinggal fokus merancang denah kamar dan interior sesuai kebutuhan aplikasi Anda.

Mengapa Laravel Sangat Populer? ​

Laravel banyak dipilih oleh jutaan pengembang di seluruh dunia karena beberapa alasan utama:

  1. Sintaks yang Ekspresif dan Elegan: Kode Laravel ditulis dengan gaya yang mudah dibaca seperti kalimat bahasa Inggris, sehingga alur logika program mudah dipahami oleh pemula sekalipun.
  2. Dokumentasi yang Sangat Lengkap: Setiap fitur Laravel dijelaskan secara terperinci melalui dokumentasi resmi yang terus diperbarui.
  3. Ekosistem yang Matang: Tersedia berbagai fitur siap pakai untuk menangani perutean (routing), basis data, keamanan, hingga pengiriman email.
  4. Komunitas yang Sangat Besar: Jika Anda mengalami kendala saat proses belajar, solusi atas masalah tersebut biasanya sudah tersedia di forum komunitas dan internet.

Prasyarat Lingkungan Laravel 13

Pada tutorial ini, kita menggunakan standar Laravel 13.x yang mensyaratkan versi runtime PHP minimal 8.3. Versi ini membawa peningkatan performa eksekusi, keamanan modern, serta arsitektur berkas yang lebih efisien.


C. Mengapa Menggunakan Framework? ​

Penting untuk dicatat: PHP Native sama sekali bukan hal yang buruk. PHP Native adalah pondasi hebat yang wajib dipahami. Namun, saat membangun aplikasi berstandar produksi, menggunakan framework memberikan banyak keuntungan praktis:

  1. Pengelolaan Struktur Project yang Standar: Laravel menyediakan struktur folder yang terorganisir rapi. Setiap berkas memiliki tempat dan fungsi spesifik, memudahkan kolaborasi antar pengembang.

  2. Pengelolaan Routing yang Rapi: Pada PHP Native, URL biasanya terikat pada nama berkas fisik di server (misalnya detail_buku.php?id=5). Pada Laravel, seluruh rute dikelola terpusat pada satu berkas, menghasilkan URL bersih dan ramah pengguna (misalnya /buku/5).

  3. Pengolahan Basis Data yang Aman: Framework menyediakan alat bantu untuk berinteraksi dengan database tanpa perlu menulis kueri SQL mentah secara manual di setiap halaman, sekaligus mencegah celah keamanan SQL Injection secara otomatis.

  4. Validasi Input yang Praktis: Memeriksa apakah email valid, password memiliki panjang minimum, atau judul buku wajib diisi dapat dilakukan hanya dengan beberapa baris aturan deklaratif.

  5. Pengelolaan Autentikasi dan Sesi Teruji: Sistem penanganan login, hashing password yang aman, dan pengelolaan session pengguna telah disediakan dengan standar industri.

  6. Keamanan Bawaan (Security by Default): Proteksi terhadap celah umum seperti CSRF (Cross-Site Request Forgery), XSS (Cross-Site Scripting), dan SQL Injection sudah aktif secara otomatis.


D. Mengenal Komponen Utama Laravel ​

Laravel dibangun di atas beberapa komponen inti yang saling bekerja sama secara harmonis:

  1. Routing: Pintu gerbang yang menerima setiap permintaan HTTP dari browser pengunjung dan menentukan controller atau fungsi mana yang akan merespons permintaan tersebut. Contoh sederhana: Mengarahkan URL /buku untuk menampilkan daftar koleksi buku.

  2. Controller: Pusat kendali yang mengelola logika aplikasi. Controller bertugas menerima data dari request, meminta data ke Model, dan memutuskan tampilan mana yang akan ditampilkan ke pengguna.

  3. Model: Komponen yang bertugas merepresentasikan entitas data aplikasi (misalnya data Buku, Anggota, atau Peminjaman) dan menangani aturan bisnis data tersebut.

  4. Eloquent ORM: Fitur unggulan Laravel yang menghubungkan tabel basis data ke dalam bentuk objek PHP (Object-Relational Mapping). Anda dapat mengambil atau menyimpan data database menggunakan sintaks objek yang bersih tanpa menulis kueri SQL panjang. Contoh sederhana: Book::all(); untuk mengambil seluruh data buku.

  5. Migration: Sistem pencatat versi (version control) untuk struktur basis data. Melalui migration, Anda mendefinisikan skema tabel menggunakan kode PHP, sehingga perubahan struktur database dapat dilacak dan dibagikan ke anggota tim lain dengan mudah.

  6. Middleware: Lapisan penyaring yang memeriksa permintaan HTTP sebelum mencapai controller. Contoh sederhana: Memeriksa apakah pengunjung sudah login sebelum diizinkan membuka halaman manajemen buku.

  7. Validation: Mekanisme untuk memastikan data yang dikirimkan oleh pengguna melalui formulir sesuai dengan kriteria yang ditentukan sebelum disimpan ke basis data.

  8. Blade Template Engine: Mesin pembuat tampilan antarmuka bawaan Laravel yang memungkinkan pemisahan layout induk (master layout), penggunaan komponen tampilan, serta penyajian data secara aman dan efisien.


E. Mengenal Arsitektur MVC ​

Laravel mengadopsi pola arsitektur MVC (Model-View-Controller). Pola ini memisahkan aplikasi menjadi tiga lapisan tanggung jawab utama agar kode program tidak menumpuk dalam satu tempat:

  1. Model: Bertanggung jawab atas pengelolaan data dan logika basis data.
  2. View: Bertanggung jawab atas tampilan visual antarmuka yang dilihat pengguna (berkas template Blade HTML).
  3. Controller: Bertindak sebagai perantara yang menghubungkan Model dan View.

Diagram Alur Kerja MVC ​

Berikut adalah alur visual dan diagram interaksi saat pengguna meminta halaman web pada aplikasi Laravel:

Ilustrasi Diagram Arsitektur Laravel MVC

[Pengguna di Browser]
        │
        ▼ 1. Meminta URL (misal: GET /buku)
   [ Routing ]
        │
        ▼ 2. Meneruskan request
  [ Controller ] ◄────── 3. Mengambil data
        │                     │
        ▼                     ▼
   [   View   ]          [   Model   ]
(Template Blade)       (Eloquent / Database)
        │
        ▼ 4. Mengembalikan HTML yang sudah jadi
[Pengguna di Browser]

Penjelasan Langkah demi Langkah: ​

  1. Langkah 1: Pengguna membuka alamat URL /buku di browser.
  2. Langkah 2: Sistem Routing membaca URL tersebut lalu memanggil method yang sesuai di Controller (misalnya BookController@index).
  3. Langkah 3: Controller menghubungi Model (Book) untuk mengambil data koleksi buku dari database MySQL.
  4. Langkah 4: Model mengembalikan data buku ke Controller. Controller kemudian meneruskan data tersebut ke View (books.blade.php).
  5. Langkah 5: View menggabungkan data buku ke dalam kerangka HTML, lalu mengirimkan halaman akhir yang rapi kembali ke browser pengguna.

Dengan pemisahan ini, perancang tampilan (desainer frontend) dapat fokus mengedit berkas View tanpa khawatir merusak logika database di Model.


F. Mengenal Struktur Project Laravel ​

Pada versi Laravel 13.x, struktur folder mengadopsi arsitektur modern yang dirancang sangat ramping, bersih, dan modular. Berkas konfigurasi perutean, middleware, dan exception kini terpusat secara elegan. Berikut adalah direktori dan berkas penting yang perlu Anda ketahui:

  • app/: Berisi kode logika inti aplikasi Anda.
  • app/Models/: Tempat menyimpan berkas Model Eloquent yang mewakili tabel database.
  • app/Http/Controllers/: Tempat menyimpan seluruh berkas Controller pengatur alur program.
  • bootstrap/app.php: Berkas konfigurasi arsitektur Laravel 13 yang bertugas mengonfigurasi routing, mendaftarkan middleware kustom, dan mengatur penanganan error (exceptions).
  • routes/web.php: Berkas utama tempat Anda mendaftarkan seluruh rute URL antarmuka web.
  • database/migrations/: Tempat berkas migration yang mendefinisikan skema tabel basis data MySQL.
  • resources/views/: Tempat menyimpan seluruh berkas tampilan antarmuka bertipe Blade (.blade.php).
  • public/: Titik masuk (entry point) aplikasi web di server tempat berkas index.php dan aset statis (gambar, CSS terkompilasi) berada.
  • .env: Berkas konfigurasi lingkungan kerja lokal yang menyimpan data sensitif seperti koneksi database MySQL di XAMPP dan kredensial aplikasi.

Catatan

Kita akan mempraktikkan instalasi project Laravel 13 menggunakan XAMPP (PHP 8.3+) dan Composer serta menjelajahi struktur berkas ini secara langsung pada Modul 01 mendatang.


G. Contoh Sederhana Penggunaan Laravel ​

Untuk melihat betapa sederhananya penulisan kode di Laravel, perhatikan contoh pendaftaran rute pada berkas routes/web.php:

php
use Illuminate\Support\Facades\Route;

// Mendefinisikan rute HTTP GET untuk alamat URL /halo
Route::get('/halo', function () {
    return 'Halo, Laravel!';
});

Penjelasan Kode: ​

  1. use Illuminate\Support\Facades\Route;: Mengimpor class pembantu (facade) Route bawaan framework Laravel.
  2. Route::get(...): Memberi tahu aplikasi bahwa rute ini merespons metode permintaan HTTP GET (metode standar saat seseorang membuka tautan melalui browser).
  3. '/halo': Alamat URL yang akan diakses pengunjung di browser (misalnya http://localhost:8000/halo).
  4. function () { ... }: Fungsi anonim (callback/closure) yang akan dieksekusi secara otomatis saat URL /halo diakses.
  5. return 'Halo, Laravel!';: Nilai kembalian berupa teks yang langsung dikirimkan oleh Laravel ke browser pengunjung.

Contoh Tambahan: Mengembalikan Tampilan View ​

Selain mengembalikan teks langsung, rute umumnya digunakan untuk merender berkas tampilan Blade:

php
Route::get('/tentang-perpus', function () {
    return view('tentang');
});

Fungsi pembantu view('tentang') akan secara otomatis mencari dan merender berkas tampilan di lokasi resources/views/tentang.blade.php. Sangat ringkas dan teratur.


H. Mengenal Ekosistem Laravel ​

Selain framework intinya, Laravel didukung oleh ekosistem perangkat pendukung yang sangat kuat:

  • Artisan CLI: Alat bantu baris perintah (command line interface) bawaan Laravel yang mempermudah pembuatan berkas model, controller, migrasi database, dan menjalankan server lokal hanya dengan satu perintah (contoh: php artisan serve).
  • Composer: Manajer paket dependensi resmi untuk bahasa PHP yang bertugas mengunduh dan menyinkronkan pustaka pihak ketiga di project Anda.
  • Eloquent ORM: Komponen manipulasi basis data bawaan yang intuitif dan aman.
  • Blade: Template engine yang ringan, cepat, dan terintegrasi penuh.
  • Laravel Migration & Seeder: Pengelolaan skema basis data dan pengisian data awal secara terprogram.
  • Laravel Middleware: Penjaga pintu keamanan lalu lintas HTTP request.

I. Kesimpulan ​

Laravel bukan sekadar kumpulan kode PHP, melainkan sebuah ekosistem utuh yang menyediakan pola kerja rapi, perlindungan keamanan teruji, dan efisiensi tinggi bagi pengembang web.

Melalui arsitektur MVC, Laravel memisahkan logika data (Model), tampilan antarmuka (View), dan pengendali alur (Controller) secara tegas. Hal ini menyelesaikan permasalahan utama yang sering terjadi pada penulisan PHP Native ketika aplikasi mulai berkembang besar.


J. Materi Selanjutnya ​

Sekarang Anda telah memahami apa itu Laravel, mengapa framework digunakan, serta bagaimana pola arsitektur MVC bekerja.

Pada bab berikutnya, kita akan membahas perbandingan langsung antara kedua pendekatan ini: 👉 03. Perbedaan PHP Native dan Laravel: Menelaah perbandingan penulisan kode nyata, struktur keamanan, dan efisiensi kerja antara PHP Native dan Laravel.


Referensi Dokumentasi ​