Jika kamu sudah memahami dasar PHP dan ingin membangun aplikasi web yang serius, Laravel adalah pilihan yang sangat ramah bagi pemula. Artikel ini memandumu membuat aplikasi kecil daftar catatan sambil memperkenalkan konsep-konsep intinya. Untuk gambaran besar framework ini, baca juga Mengenal Laravel untuk Pengembangan Aplikasi Web.
Sebelum mulai: cek bekalmu
- Dasar PHP: variable, array, function, dan sedikit OOP (class, method, namespace).
- Dasar HTML dan terminal.
- Terpasang: PHP 8.1+, Composer, dan MySQL (atau SQLite untuk yang lebih sederhana).
Periksa dengan php -v dan composer -V.
Langkah 1: Membuat proyek
composer create-project laravel/laravel catatan
cd catatan
php artisan serve
Buka http://localhost:8000. Jika halaman Laravel tampil, instalasimu berhasil.
Buka file .env dan atur database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=catatan
DB_USERNAME=root
DB_PASSWORD=
Buat database catatan terlebih dahulu di MySQL.
Langkah 2: Route pertama
Route menghubungkan URL ke kode. Buka routes/web.php:
Route::get('/halo', function () {
return 'Halo, Laravel!';
});
Kunjungi /halo. Selamat, itu halaman pertamamu. Route yang lebih rapi memakai controller:
Route::get('/catatan', [CatatanController::class, 'index']);
Langkah 3: Database dengan migration
php artisan make:model Catatan -mc
Edit migration yang terbentuk:
Schema::create('catatans', function (Blueprint $table) {
$table->id();
$table->string('judul');
$table->text('isi');
$table->timestamps();
});
php artisan migrate
Di model, izinkan pengisian kolom:
class Catatan extends Model
{
protected $fillable = ['judul', 'isi'];
}
Pelajari lebih dalam di Laravel Migration dan Database.
Langkah 4: Controller dan view
Controller app/Http/Controllers/CatatanController.php:
public function index()
{
$catatan = Catatan::latest()->get();
return view('catatan.index', ['catatan' => $catatan]);
}
public function store(Request $request)
{
$data = $request->validate([
'judul' => 'required|max:100',
'isi' => 'required',
]);
Catatan::create($data);
return redirect('/catatan')->with('sukses', 'Catatan disimpan!');
}
Route tambahan:
Route::post('/catatan', [CatatanController::class, 'store']);
View resources/views/catatan/index.blade.php:
<h1>Catatanku</h1>
@if (session('sukses'))
<p style="color:green">{{ session('sukses') }}</p>
@endif
<form method="POST" action="/catatan">
@csrf
<input name="judul" placeholder="Judul" value="{{ old('judul') }}">
@error('judul') <small>{{ $message }}</small> @enderror
<textarea name="isi" placeholder="Isi catatan">{{ old('isi') }}</textarea>
@error('isi') <small>{{ $message }}</small> @enderror
<button>Simpan</button>
</form>
@forelse ($catatan as $c)
<article>
<h3>{{ $c->judul }}</h3>
<p>{{ $c->isi }}</p>
</article>
@empty
<p>Belum ada catatan.</p>
@endforelse
Konsep penting yang baru saja kamu pakai
| Konsep | Peran |
|---|---|
| Route | Memetakan URL ke aksi |
| Controller | Menampung logika permintaan |
| Model (Eloquent) | Mewakili tabel; Catatan::create(...) menyimpan data |
| Migration | Mendefinisikan struktur tabel sebagai kode |
| Blade | Template HTML dengan {{ }}, @if, @foreach |
| Validasi | $request->validate() memeriksa input |
| CSRF | @csrf melindungi form dari pemalsuan permintaan |
Perintah Artisan yang wajib hafal
| Perintah | Fungsi |
|---|---|
php artisan serve | Menjalankan server pengembangan |
php artisan route:list | Melihat semua route |
php artisan make:model X -mcr | Model + migration + controller resource |
php artisan migrate | Menjalankan migration |
php artisan tinker | Konsol interaktif untuk mencoba kode |
php artisan cache:clear / config:clear / view:clear | Membersihkan cache saat perubahan tidak terbaca |
Kesalahan yang sering dialami pemula
- "Access denied for user": kredensial
.envsalah. Setelah mengubah.env, jalankanphp artisan config:clear. - Halaman 419: lupa
@csrf. - "Target class does not exist": namespace controller belum di-import di file route.
- Perubahan tidak muncul: cache view/config; bersihkan cache.
- Tabel tidak ditemukan: lupa
php artisan migrate. - Mengedit folder
vendor: jangan. Folder itu dikelola Composer.
Jalur belajar berikutnya
- Selesaikan CRUD lengkap: ubah dan hapus catatan (Cara Membuat CRUD Menggunakan Laravel).
- Pelajari layout Blade (
@extends,@section) dan komponen. - Pahami relasi Eloquent (Mengenal Eloquent Relationship).
- Tambahkan autentikasi (Membuat Authentication Laravel).
- Latih pembuatan API (Membuat REST API dengan Laravel).
- Terakhir, deploy ke server.
Konsep yang akan kamu temui setelah ini
Konfigurasi dan environment
File .env menyimpan nilai yang berbeda tiap lingkungan (lokal, staging, produksi): kredensial database, kunci API, mode debug. Jangan pernah meng-commit .env. Di kode, baca nilai lewat config('app.name'), bukan env() langsung, agar cache konfigurasi bekerja.
Tinker: laboratorium kecilmu
php artisan tinker
>>> Catatan::create(['judul' => 'Tes', 'isi' => 'Dari tinker']);
>>> Catatan::count();
>>> Catatan::latest()->first()->judul;
Sangat membantu untuk mencoba query Eloquent tanpa membuat halaman.
Seeder dan factory
Untuk mengisi data contoh agar tampilan tidak kosong saat pengembangan:
php artisan make:factory CatatanFactory
php artisan db:seed
Pesan error yang ramah
Saat APP_DEBUG=true (hanya di lokal!), Laravel menampilkan halaman error informatif berisi baris kode penyebab dan saran perbaikan. Biasakan membacanya dari atas: pesan utama dan baris kodemu sendiri biasanya cukup untuk menemukan masalah.
Peta belajar 6 minggu untuk pemula
| Minggu | Topik | Hasil |
|---|---|---|
| 1 | Instalasi, route, controller, Blade | Beberapa halaman statis dinamis |
| 2 | Migration, model, Eloquent dasar | Menyimpan dan menampilkan data |
| 3 | Form, validasi, CRUD lengkap | Aplikasi catatan yang bisa ubah/hapus |
| 4 | Layout, komponen, pagination, upload | Tampilan rapi dan reusable |
| 5 | Relasi Eloquent, autentikasi | Catatan milik masing-masing pengguna |
| 6 | Testing dasar dan deploy | Aplikasi tayang di internet |
Sumber belajar yang bisa dipercaya
- Dokumentasi resmi Laravel: lengkap, rapi, dan selalu terbaru.
- Laracasts: video pembelajaran bertahap.
- Komunitas lokal (grup Laravel Indonesia) untuk bertanya.
- Latihan proyek: ganti aplikasi catatan menjadi sesuatu yang kamu butuhkan, misalnya pencatat pengeluaran.
Tanda kamu siap naik level
Kamu bisa membuat CRUD tanpa melihat contoh, memahami alur permintaan dari route sampai view, menjelaskan perbedaan $post->comments dan $post->comments(), serta tahu cara membaca halaman error. Saat itu terpenuhi, lanjutkan ke topik seperti relasi, API, antrian, dan testing.
Kesimpulan
Laravel membuat tugas web yang rumit terasa ringan, tetapi tetap butuh latihan. Mulailah dari proyek kecil seperti aplikasi catatan ini, pahami alur route → controller → model → view, dan tambahkan fitur sedikit demi sedikit.
Komentar (0)
Masuk / Daftar