Laravel adalah framework PHP: sekumpulan bagian siap pakai plus aturan di mana tiap jenis kode ditaruh. Bayangin dapur restoran. Pelayan membaca pesanan dan mengantarnya ke meja yang tepat (itu route), koki memasak (itu controller), gudang menyimpan bahan (itu model, datanya), dan bagian penyajian menata piring sebelum keluar (itu view, tampilannya). Dengan PHP polos, kamu membangun dapur itu sendiri dari nol. Dengan Laravel, dapurnya sudah jadi, kamu tinggal masak.
🧪 Tebakan cepat: di project Laravel yang baru dibuat, berapa file yang harus kamu ubah supaya
http://127.0.0.1:8000/hellomenjawab JSON: satu, tiga (route, controller, view), atau lima? Tebak dulu, jawabannya ada di bagian "Route pertamamu".
Kenapa pakai framework
PHP polos bisa membuat web, tapi semua hal kecil kamu tulis sendiri: mencocokkan alamat ke kode, menyusun query SQL, mengecek input form, menyimpan password dengan aman, mengirim email. Laravel sudah membawa semuanya:
| Kebutuhan | Di Laravel | Dipelajari di |
|---|---|---|
| Alamat ke kode | Routing | Routing |
| Kode per fitur | Controller | Controller |
| Tampilan HTML | Blade | Blade Templating |
| Tabel database | Migration dan Eloquent | Migrasi, Eloquent |
| Cek input | Validation | Validasi |
| Tugas di belakang | Queue dan Job | Queue & Job |
Laravel ditulis dengan bahasa PHP, dibuat Taylor Otwell sejak 2011. Versi yang dipakai di sini Laravel 13, yang butuh PHP 8.3 atau lebih baru. Laravel juga membawa Artisan, alat command line untuk membuat file, menjalankan server, dan banyak lagi. Semua perintahnya diawali php artisan.
Bikin project dan jalankan
Sepanjang track ini kita membangun satu app: Perpustakaan, untuk mencatat buku dan peminjamannya. Buat project-nya dengan Composer, lalu jalankan server-nya:
composer create-project laravel/laravel perpustakaan
cd perpustakaan
php artisan serve
INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
composer create-project laravel/laravel perpustakaanmengunduh Laravel ke folder baruperpustakaan, memasang semua package-nya, membuat file.env, dan menyiapkan database SQLite.php artisan servemenyalakan server untuk belajar di komputermu, dihttp://127.0.0.1:8000. Selama terminal ini terbuka, app-nya bisa dibuka di browser.Ctrl+Cmematikannya.- Ada juga installer
laravel new perpustakaan, yang menanyakan beberapa pilihan dulu. Hasilnya project yang sama.
Buka http://127.0.0.1:8000 dan kamu melihat halaman welcome bawaan Laravel. Ubah kode, simpan, lalu refresh: perubahannya langsung terlihat, server-nya gak perlu dimatikan.
Peta folder
| Folder atau file | Isinya |
|---|---|
routes/web.php |
daftar alamat dan kode yang menjawabnya |
app/Http/Controllers/ |
controller, satu class per fitur |
app/Models/ |
model, satu class per tabel database |
resources/views/ |
template Blade, file .blade.php |
database/migrations/ |
resep membuat tabel |
public/index.php |
pintu masuk: semua request lewat sini |
.env |
pengaturan rahasia: kunci app, password database |
Perjalanan satu request
Ini pola MVC (Model, View, Controller): tiap bagian punya tugasnya sendiri. Begini perjalanan satu request di app Perpustakaan nanti, saat kamu membuka GET /books/1:
| Langkah | Di mana | Yang terjadi |
|---|---|---|
| 1 | public/index.php |
Laravel menyala dan membaca request-nya |
| 2 | routes/web.php |
route /books/{id} cocok, id = 1 |
| 3 | BookController@show |
controller dipanggil dengan $id = 1 |
| 4 | Model Book |
data buku nomor 1 diambil dari database |
| 5 | View books.show |
Blade menyusun HTML-nya |
| 6 | Response | browser menerima 200 OK dan halaman "Laskar Pelangi" |
Kalau gak ada route yang cocok, misalnya GET /tentang, langkah 3 sampai 5 gak pernah jalan: Laravel langsung menjawab 404 dengan halaman bertuliskan 404 | Not Found.
Route pertamamu
Route paling sederhana gak butuh controller atau view. Tambahkan ini di routes/web.php:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return response()->json(['message' => 'Halo dari Laravel!']);
});
use Illuminate\Support\Facades\Route;membuat namaRoutebisa dipakai di file ini.Route::get('/hello', ...)mendaftarkan alamat/hellountuk methodGET, yang dikirim browser waktu kamu membuka sebuah alamat.function () { ... }adalah kode yang menjawabnya.response()->json([...])mengubah array PHP jadi JSON dan menjawab dengan status200.
Buka http://127.0.0.1:8000/hello dan browser menampilkan {"message":"Halo dari Laravel!"}. Jadi cukup satu file, routes/web.php. Itu jawaban tebakannya. Controller dan view baru dibutuhkan saat kodenya mulai banyak.
Simulator latihan menjalankan route-mu lalu mencetak transkripnya: GET /hello → 200, lalu body JSON-nya di baris berikutnya.
⚠️ Jebakan yang sering ketemu
- Server gak jalan. Kalau terminal
php artisan serveditutup, browser cuma bilang127.0.0.1 refused to connect. Itu bukan error di kodemu. - Mengubah
routes/api.phpyang belum ada. Project Laravel baru cuma punyaroutes/web.php. File API dibuat denganphp artisan install:api, dan alamatnya otomatis diawali/api. .envikut di-commit. File ini menyimpan kunci app dan password. Dia sudah ada di.gitignore, biarkan begitu.- Kalimatnya diubah. Latihannya mencari teks
Halo dari Laravel!persis, huruf besar dan tanda serunya juga.
TL;DR: Laravel adalah framework PHP yang sudah membawa routing, controller, Blade, database (Eloquent), validasi, dan queue. Buat project dengan composer create-project laravel/laravel perpustakaan, jalankan dengan php artisan serve, lalu buka http://127.0.0.1:8000. Polanya MVC: route mencocokkan alamat, controller bekerja, model memegang data, view menyusun tampilan. Alamat tanpa route dijawab 404 | Not Found. Satu Route::get('/hello', ...) di routes/web.php yang mengembalikan response()->json([...]) sudah cukup untuk endpoint pertamamu.