Laravel untuk Pemula: Fondasi dan Jalur Belajar Laravel 13.x
18 September 2026 · 5 menit baca
Artikel ini dibuat secara otomatis dengan bantuan AI dan telah ditinjau oleh Arya Anjar Ginantara.

Laravel untuk Pemula: Fondasi dan Jalur Belajar Laravel 13.x
Jika baru mulai, jangan berusaha mempelajari semua fitur Laravel sekaligus. Bangun fondasi secara berurutan: kuasai dasar PHP dan web, siapkan lingkungan kerja, pahami peta aplikasi, buat satu route, pindahkan logikanya ke controller, validasi input, lalu mulai mengenal autentikasi dan testing. Urutan ini merupakan saran belajar untuk membantu Anda mulai, bukan kurikulum resmi Laravel.
Laravel adalah framework aplikasi web PHP. Dalam praktik belajar, framework membantu kita bekerja dengan pola dan komponen yang sudah disediakan—misalnya routing, controller, validasi, autentikasi, dan testing—sehingga perhatian tidak hanya tertuju pada sintaks PHP mentah. Namun Laravel tidak menggantikan pemahaman tentang HTTP, HTML, database, dan cara kerja aplikasi web.
Apa yang perlu dipelajari sebelum Laravel?
Sebagai bekal belajar, Anda sebaiknya cukup nyaman dengan:
- sintaks PHP: variabel, kondisi, perulangan, fungsi, array, dan exception;
- konsep OOP dasar: class, object, method, property, dan namespace;
- HTML dan formulir sederhana;
- HTTP dasar: request, response, URL, method GET/POST, status code, dan cookie/session;
- SQL dan konsep database dasar;
- Composer sebagai pengelola dependensi PHP;
- terminal serta Git pada tingkat dasar.
Anda tidak harus menguasai seluruh ekosistem PHP terlebih dahulu. Tujuannya adalah dapat membaca contoh Laravel dan memahami bagian yang bukan “sihir” framework. Jika belum nyaman dengan class atau request/response, luangkan waktu memperkuat topik itu sambil membuat latihan kecil.
Prasyarat teknis Laravel 13.x
Fakta dari dokumentasi: catatan rilis Laravel 13.x menyatakan Laravel 13.x memerlukan minimal PHP 8.3 dan mencantumkan PHP 8.3–8.5 sebagai versi yang didukung pada saat riset, 18 September 2026. Angka dan dukungan versi bersifat dapat berubah.
Dokumentasi instalasi Laravel 13.x mencantumkan PHP, Composer, dan Laravel installer sebagai prasyarat pembuatan aplikasi. Dokumentasi yang sama meminta Node dan NPM atau Bun untuk kompilasi aset frontend. Kebutuhan ini perlu dibedakan dari fokus belajar: pemula yang berlatih backend/API dapat menunda pekerjaan aset frontend, tetapi itu bukan pernyataan bahwa prasyarat resmi atau semua alur aplikasi berubah.
Contoh alur pembuatan aplikasi berikut mengikuti perintah yang tercantum pada dokumentasi Laravel 13.x. Jalankan hanya setelah prasyarat dan pilihan installer Anda sesuai:
# Jika PHP dan Composer sudah tersedia
composer global require laravel/installer
laravel new belajar-laravel
Fakta dari dokumentasi: installer dapat dipasang melalui Composer dan aplikasi baru dibuat dengan laravel new (Installation, Starter Kits). Prompt installer dan default yang dihasilkan dapat berubah; jangan menganggap pilihan aplikasi baru sebagai keputusan universal.
Dua fokus setelah aplikasi dibuat
Frontend/full-stack. Untuk mengikuti alur pengembangan lokal yang didokumentasikan, masuk ke direktori aplikasi, pasang dependensi frontend, buat build aset, lalu jalankan skrip pengembangan:
cd belajar-laravel
npm install && npm run build
composer run dev
Dokumentasi menjelaskan bahwa composer run dev menjalankan server pengembangan Laravel, queue worker, dan Vite development server; aplikasi kemudian dapat diakses melalui http://localhost:8000 (Installation, local development). Ini adalah jalur untuk aplikasi yang memakai aset frontend, bukan syarat bahwa setiap latihan pertama harus langsung menjadi aplikasi full-stack.
Backend/API. Jika tujuan latihan Anda hanya memahami request, controller, response, atau API, prioritaskan route dan logika backend, lalu tunda npm install dan build aset sampai proyek memang membutuhkan frontend. Untuk menambahkan dukungan API stateless pada aplikasi, dokumentasi routing menyediakan php artisan install:api, yang memasang Sanctum dan membuat routes/api.php (Routing, API routes). Perintah ini berbeda dari latihan web pada routes/web.php; pilih alur sesuai tujuan proyek.
Artikel ini tidak mengklaim telah menjalankan perintah-perintah di atas pada mesin pembaca atau pada aplikasi Laravel 13.x bersih. php artisan serve tidak dipakai sebagai jalur utama karena tidak diverifikasi dalam lingkungan review; gunakan alur lokal yang didokumentasikan dan cocok dengan pilihan proyek Anda.
Peta sederhana struktur aplikasi
Setelah aplikasi Laravel 13.x baru dengan konfigurasi default dibuat, jangan buru-buru membuka setiap folder. Mulai dari beberapa lokasi yang paling membantu menjawab pertanyaan “permintaan ini diproses di mana?” Struktur aplikasi yang sudah dikustomisasi atau memakai starter kit dapat berbeda; gunakan daftar ini sebagai orientasi awal, bukan kontrak struktur semua proyek.
routes/web.php: pada aplikasi baru dan konfigurasi terdokumentasi, file ini berisi route antarmuka web dan memakai middleware groupweb, yang mencakup dukungan seperti session state dan perlindungan CSRF (Routing). File route dimuat sesuai konfigurasibootstrap/app.php, sehingga proyek yang dikustomisasi dapat berbeda.app/Http/Controllers: lokasi default controller pada aplikasi baru. Controller mengelompokkan logika penanganan request yang berkaitan (Controllers).resources/views: lokasi yang lazim dipakai aplikasi baru untuk template tampilan ketika aplikasi mengembalikan halaman HTML; starter kit atau stack frontend dapat menambah atau mengubah struktur ini.database/migrations: lokasi default definisi perubahan struktur database yang dikelola melalui migration.config: lokasi konfigurasi aplikasi dan layanan pada struktur aplikasi baru; konfigurasi pemuatan route tetap dapat diubah melalui bootstrap..env: nilai lingkungan lokal yang tidak seharusnya diperlakukan sebagai kode aplikasi atau dibagikan sembarangan.tests/Featuredantests/Unit: direktori pengujian pada aplikasi Laravel baru menurut Testing; proyek yang dikustomisasi dapat memiliki susunan berbeda.
Pembagian di atas adalah peta belajar, bukan daftar seluruh folder dan bukan aturan bahwa setiap aplikasi harus memiliki isi yang sama. Sebagai salah satu cara belajar saat menambah fitur, catat alur sederhananya: route menerima request → controller atau handler menjalankan logika → model/layanan mengakses data bila diperlukan → view atau response dikirim kembali.
Langkah pertama: route sederhana
Route dapat menjadi titik masuk yang mudah diamati. Buka routes/web.php dan tambahkan contoh kecil:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/sapa', function () {
return 'Halo, Laravel 13.x!';
});
Buka /sapa pada server lokal. Fakta dari dokumentasi: route dasar dapat terdiri dari URI dan closure, dan route antarmuka web didefinisikan di routes/web.php (Routing). Contoh /sapa di atas adalah contoh penulis, bukan hasil eksekusi pada aplikasi bersih.
Closure cocok untuk memahami hubungan URL dan response. Setelah alurnya jelas, Anda dapat memindahkan logika ke controller. Untuk latihan yang sangat kecil, closure sudah memadai. Begitu route memiliki logika yang perlu diuji, dipakai ulang, atau dikelompokkan dengan request terkait, controller akan membuatnya lebih mudah dikelola. Ini bukan larangan terhadap closure, melainkan cara menjaga latihan tetap bertahap.
Buat controller dengan Artisan:
php artisan make:controller GreetingController
Lalu isi controller, misalnya:
<?php
namespace App\Http\Controllers;
class GreetingController extends Controller
{
public function show()
{
return 'Halo dari controller Laravel 13.x!';
}
}
Hubungkan route ke method controller:
use App\Http\Controllers\GreetingController;
use Illuminate\Support\Facades\Route;
Route::get('/sapa-controller', [GreetingController::class, 'show']);
Fakta dari dokumentasi: controller dapat dibuat dengan php artisan make:controller ... dan secara default berada di app/Http/Controllers (Controllers). Nama class, method, dan isi response pada contoh ini adalah contoh pengajaran, bukan kode wajib Laravel. Contoh ini belum dijalankan pada aplikasi Laravel 13.x bersih.
Tambahkan formulir dan validasi sebelum CRUD besar
Validasi adalah jembatan penting antara route sederhana dan aplikasi yang menerima input pengguna. Mulai dengan satu formulir kecil, misalnya formulir kontak atau pencatatan tugas. Alur belajarnya:
- tampilkan formulir;
- terima request POST;
- validasi field yang dibutuhkan;
- tampilkan kembali pesan error yang bisa dipahami;
- hanya setelah itu simpan atau proses data yang lolos validasi.
Untuk latihan ini, Anda dapat memulai dengan dua atau tiga field agar lebih mudah memahami alurnya, bukan menyalin CRUD besar tanpa tahu apa yang terjadi.
Contoh fragmen controller dengan validasi request berikut secara sengaja non-runnable: ia membutuhkan file controller lengkap, import, route POST, form/request yang mengirim name dan email, serta konfigurasi aplikasi yang mengelilinginya. Fragmen ini hanya menunjukkan bentuk alur; tidak ada hasil runtime yang diklaim.
use Illuminate\Http\Request;
public function store(Request $request)
{
$validated = $request->validate([
'name' => ['required', 'string', 'max:100'],
'email' => ['required', 'email'],
]);
// Gunakan $validated setelah aturan di atas terpenuhi.
return response()->json($validated);
}
Menurut Validation Laravel 13.x, validate tersedia pada incoming request. Jika aturan lolos, eksekusi berlanjut; jika gagal, Laravel melempar ValidationException dan mengirim respons sesuai konteks request—redirect untuk request HTTP tradisional atau JSON untuk request XHR. Fragmen di atas tidak memperlihatkan route/controller lengkap, form, tampilan pesan error, atau cabang kegagalan tersebut, sehingga jangan menyalinnya sebagai tutorial yang langsung berjalan. Ia juga belum mengatur model, database, otorisasi, atau keputusan keamanan aplikasi. Sesuaikan aturan dengan domain data Anda dan uji alur sukses serta gagal dalam proyek nyata.
Orientasi autentikasi: pelajari konsepnya, jangan menganggap starter kit sebagai sihir
Autentikasi menjawab “siapa pengguna ini?” Laravel mendokumentasikan konsep guard sebagai cara menentukan bagaimana pengguna diautentikasi untuk setiap request, dan provider sebagai cara mengambil pengguna dari penyimpanan yang sesuai.
Fakta dari dokumentasi: starter kit Laravel dapat membantu membuat kerangka sistem autentikasi. Dokumentasi Authentication Laravel 13.x juga menyarankan starter kit sebagai sesuatu yang dapat diperiksa untuk mempelajari implementasi autentikasi Laravel.
Sebagai pilihan belajar sebelum menambah login ke proyek latihan, Anda dapat mengikuti urutan ini:
- pahami route dan request/response;
- pahami middleware dan session;
- pahami perbedaan autentikasi dan otorisasi;
- pelajari cara password disimpan dan diverifikasi secara aman;
- pilih starter kit yang cocok dengan stack dan kebutuhan aplikasi;
- baca route, controller, middleware, dan view yang dibuat kit tersebut.
Jangan menyalin route atau tampilan login dari artikel lama tanpa memeriksa dokumentasi Laravel 13.x dan dokumentasi starter kit yang dipilih. Pilihan kit, UI, dan route yang dihasilkan dapat berubah. Artikel ini memberi orientasi, bukan tutorial konfigurasi autentikasi lengkap.
Orientasi testing: uji alur yang benar-benar dipakai pengguna
Testing tidak perlu ditunda sampai aplikasi besar. Fakta dari dokumentasi: aplikasi Laravel baru memiliki dukungan Pest dan PHPUnit, konfigurasi phpunit.xml, serta direktori tests/Feature dan tests/Unit (Testing). Dokumentasi juga mencantumkan beberapa cara menjalankan test, termasuk:
php artisan test
Alternatif yang didokumentasikan adalah vendor/bin/pest dan vendor/bin/phpunit. Perintah tersebut hanya menjalankan test sesuai dependensi dan konfigurasi lokal; artikel ini tidak mengklaim test pada mesin Anda akan lulus.
Sebagai latihan berikutnya, buat tests/Feature/SapaTest.php dengan php artisan make:test SapaTest, tambahkan satu assertion HTTP untuk route /sapa (misalnya status 200), lalu jalankan php artisan test seperti pada Testing Laravel 13.x. Ini adalah latihan yang disarankan, bukan hasil test yang telah dijalankan atau jaminan akan lulus pada lingkungan Anda. Setelah itu, tambahkan test validasi formulir. Gunakan Unit test untuk logika kecil yang memang dapat diuji terpisah. Pertanyaan yang perlu dijawab oleh setiap test adalah: perilaku apa yang ingin dilindungi dari perubahan tidak sengaja?
Jalur belajar Laravel 13.x yang realistis
Gunakan urutan berikut sebagai backlog belajar, bukan janji bahwa semua orang harus menempuhnya dengan kecepatan yang sama:
- PHP dan web dasar: tipe data, fungsi, class, Composer, HTML form, HTTP, dan SQL dasar.
- Aplikasi pertama: instal prasyarat yang relevan dan buat aplikasi Laravel 13.x.
- Peta aplikasi: telusuri route, controller, view, konfigurasi/environment, migration, dan test.
- Routing ke controller: buat satu route kecil, lalu pindahkan logika yang mulai tumbuh ke controller.
- Input dan validasi: buat formulir kecil dan pahami error sebelum belajar CRUD database.
- Database dan migration: tambahkan penyimpanan setelah alur request dan validasi masuk akal.
- Autentikasi: pelajari guard, provider, middleware, session, password, lalu inspeksi starter kit.
- Testing: lindungi satu alur Feature dan beberapa bagian logika terisolasi; jalankan
php artisan test. - Proyek kecil: gabungkan konsep dalam aplikasi yang ruang lingkupnya jelas, tanpa mengklaim proyek itu otomatis siap produksi.
Jika bingung memilih langkah berikutnya, pilih tugas yang menghasilkan umpan balik cepat: satu route, satu input tervalidasi, atau satu test yang gagal lalu diperbaiki. Sebagai bekal belajar, Anda dapat mencatat “apa yang saya pahami, apa yang belum, dan sumber dokumentasinya” supaya proses belajar tidak berhenti pada menyalin kode.
Kesimpulan
Untuk pemula, Laravel 13.x paling masuk akal dipelajari sebagai rangkaian konsep kecil: dasar PHP dan web, peta aplikasi, route, controller, validasi, database, autentikasi, lalu testing. Mulailah dengan aplikasi yang cukup kecil untuk dipahami seluruh alurnya. Dokumentasi resmi membantu memastikan detail versi tetap akurat; jalur di atas adalah rekomendasi editorial untuk membuat prosesnya lebih terarah, bukan jaminan pekerjaan, performa, trafik, ranking, atau kesiapan produksi.