Laravel + Livewire 14 Hari

Menguasai Laravel + Livewire dalam 14 Hari

Panduan belajar terstruktur dari nol โ€” mulai dari memasang tools, memahami dasar Laravel, membangun aplikasi interaktif dengan Livewire, sampai men-deploy ke server production lewat GitHub. Dibuat khusus untuk tim IT yang ingin cepat produktif.

๐ŸŽฏ 14 Hari Terstruktur ๐Ÿ’ป Contoh Kode Nyata ๐ŸŽฅ Referensi Video ๐Ÿš€ Sampai Deployment

Selamat Datang ๐Ÿ‘‹

Knowledge base ini dirancang sebagai peta jalan (roadmap) belajar. Anggap saja seperti resep masakan: setiap hari punya bahan (materi) dan langkah (praktik) yang jelas. Kalau diikuti berurutan, dalam 14 hari Anda sudah bisa membuat aplikasi web interaktif sendiri dan menaikkannya ke internet.

๐Ÿ’ก Cara pakai panduan ini Setiap hari butuh sekitar 2โ€“4 jam. Jangan cuma dibaca โ€” ketik ulang setiap contoh kode dan jalankan. Otot ngoding terbentuk dari praktik, bukan dari nonton. Kalau mentok, catat pertanyaannya lalu lanjut; sering kali jawabannya muncul di hari berikutnya.

Apa itu Laravel & Livewire? (analogi dulu)

Laravel itu seperti dapur restoran lengkap: sudah ada kompor, kulkas, alat masak, semua tertata. Anda tinggal masak (bikin fitur) tanpa harus membangun dapur dari nol. Ia adalah framework PHP paling populer untuk membuat aplikasi web.

Livewire itu seperti pelayan ajaib yang membuat halaman web Anda interaktif tanpa perlu menulis JavaScript rumit. Biasanya, kalau mau tombol "like" bertambah tanpa reload halaman, Anda harus belajar JavaScript/React. Dengan Livewire, Anda cukup menulis PHP โ€” Livewire yang mengurus komunikasi diam-diam ke server. Cocok banget buat programmer yang sudah nyaman dengan PHP tapi ingin UI modern.

โœ… Kombinasi TALL Stack Anda akan sering dengar istilah TALL Stack: Tailwind CSS (styling), Alpine.js (interaksi kecil di browser), Laravel (backend), Livewire (jembatan interaktif). Empat ini bersaudara dan dibuat untuk saling melengkapi.

Versi & Ekosistem (Divalidasi Agustus 2026)

Sebelum mulai, penting tahu versi yang dipakai supaya tidak bingung saat mengikuti tutorial. Berikut versi terbaru yang sudah kami verifikasi langsung dari sumber resmi (Packagist) per 20 Agustus 2026:

TeknologiVersi StabilCatatan
Laravel12.x (13.x sudah rilis)Butuh PHP 8.2+. Untuk belajar, Laravel 12 paling banyak referensinya.
Livewire3.7+ (4.x baru rilis)Mayoritas tutorial masih Livewire 3 โ€” kita pakai ini sebagai dasar. Livewire 4 pendatang baru.
PHP8.2 โ€“ 8.4Minimum 8.2 untuk Laravel 12. Pakai versi terbaru yang stabil.
Tailwind CSS4.xSudah terpasang default di project Laravel baru.
Alpine.js3.xSudah dibundel otomatis oleh Livewire, tidak perlu install manual.
Flux UI2.17UI kit resmi Livewire. Ada versi gratis & Pro.
โš ๏ธ Livewire 3 vs 4 Livewire 4 sudah rilis, tapi untuk pemula kami sarankan mulai dari Livewire 3 dulu. Alasannya: 95% video tutorial, artikel, dan Stack Overflow masih Livewire 3. Setelah paham konsepnya, pindah ke 4 gampang karena idenya sama. Panduan ini pakai Livewire 3 sebagai baseline dan menandai apa yang berubah di 4.

Persiapan Tools (Hari ke-0)

Sebelum Day 1, pasang dulu semua "peralatan dapur". Lakukan sekali saja di awal.

Yang perlu dipasang

  • PHP 8.2+ โ€” bahasa pemrogramannya
  • Composer โ€” manajer paket PHP (seperti "app store" untuk library PHP)
  • Node.js + npm โ€” untuk membangun aset frontend (CSS/JS)
  • MySQL atau SQLite โ€” tempat menyimpan data
  • Git โ€” pencatat riwayat kode & jembatan ke GitHub
  • VS Code โ€” editor kode (gratis, paling populer)

Cara tercepat di Windows: Laravel Herd

Laravel Herd adalah aplikasi gratis yang memasang PHP, Composer, dan Nginx sekaligus dalam satu klik. Sangat direkomendasikan untuk pemula Windows/Mac supaya tidak pusing setup manual.

Download Herdherd.laravel.com โ€” gratis untuk Windows & macOS
PowerShell โ€” verifikasi instalasi
# Cek semua tool sudah terpasang
php --version        # harus 8.2+
composer --version
node --version
npm --version
git --version
โœ… Alternatif tanpa install: Laravel Sail / Docker Kalau nanti sudah mahir, bisa pakai Docker lewat Laravel Sail. Tapi untuk 14 hari pertama, Herd jauh lebih simpel.

Day1

Fondasi PHP & Struktur Laravel

โฑ๏ธ 3โ€“4 jam ยท Tema: memahami "peta" project

Tujuan: paham struktur folder Laravel dan bikin project pertama.

Sub-topik

  • Refresh PHP: variabel, array, function, class/OOP dasar
  • Membuat project Laravel baru
  • Mengenal folder penting: routes/, app/, resources/views/, public/, .env
  • Menjalankan server development
PowerShell โ€” bikin project pertama
# Cara resmi terbaru (butuh Laravel installer)
composer global require laravel/installer
laravel new belajar-app

# Atau langsung via composer
composer create-project laravel/laravel belajar-app

cd belajar-app
php artisan serve   # buka http://127.0.0.1:8000
๐Ÿ“ Analogi struktur folder routes/web.php = daftar alamat/menu. app/Http/Controllers = juru masak. resources/views = piring penyajian (HTML). .env = buku rahasia (password DB, dll โ€” jangan pernah di-upload ke GitHub!).
Web Programming UNPAS โ€” Laravel Dasaryoutube.com/@sandhikagalih ยท Bahasa Indonesia, paling recommended pemula
Day2

Routing & Controller

โฑ๏ธ 3 jam ยท Tema: mengatur alur permintaan

Tujuan: paham bagaimana URL diproses jadi respon.

Sub-topik

  • Route: GET, POST, parameter, named route
  • Controller: memisahkan logika dari route
  • Request & Response, redirect
routes/web.php
use App\Http\Controllers\SiswaController;

Route::get('/', fn() => view('welcome'));

// Route dengan parameter
Route::get('/siswa/{id}', [SiswaController::class, 'show']);

// Named route โ€” memudahkan bikin link
Route::get('/dashboard', [DashboardController::class, 'index'])
    ->name('dashboard');
Membuat controller via artisan
php artisan make:controller SiswaController
class SiswaController extends Controller {
    public function show($id) {
        return view('siswa.show', ['id' => $id]);
    }
}
Laravel Bootcamp (resmi)bootcamp.laravel.com ยท Praktik bikin app mini dari nol
Day3

Blade Templating

โฑ๏ธ 3 jam ยท Tema: menyusun tampilan HTML dinamis

Tujuan: bikin tampilan yang bisa menampilkan data & dipakai ulang.

Sub-topik

  • Sintaks Blade: {{ }}, @if, @foreach
  • Layout & @extends, @section, @yield
  • Components & @include
resources/views/siswa/index.blade.php
@extends('layouts.app')

@section('content')
  <h1>Daftar Siswa</h1>
  @if($siswa->isEmpty())
    <p>Belum ada data.</p>
  @else
    <ul>
      @foreach($siswa as $s)
        <li>{{ $s->nama }}</li>
      @endforeach
    </ul>
  @endif
@endsection
โœ… Kenapa Blade? Blade mengubah kode template jadi PHP murni yang cepat, dan otomatis mengamankan output dari serangan XSS lewat {{ }}.
Day4

Database & Migration

โฑ๏ธ 3โ€“4 jam ยท Tema: menyiapkan tempat data

Tujuan: bikin & kelola struktur tabel lewat kode (bukan klik-klik di phpMyAdmin).

Sub-topik

  • Konfigurasi .env untuk database
  • Migration: bikin tabel via kode
  • Seeder & Factory: mengisi data contoh
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=belajar_app
DB_USERNAME=root
DB_PASSWORD=
Bikin migration + jalankan
php artisan make:migration create_siswa_table
php artisan migrate
database/migrations/xxxx_create_siswa_table.php
Schema::create('siswa', function (Blueprint $table) {
    $table->id();
    $table->string('nama');
    $table->string('nis')->unique();
    $table->string('kelas')->nullable();
    $table->timestamps();
});
๐Ÿ’ก Migration = Git untuk struktur database. Setiap perubahan tabel tercatat & bisa dijalankan ulang di komputer/server lain. Timmu tidak perlu saling kirim file .sql lagi.
Programmer Zaman Now โ€” Laravel Databaseyoutube.com/@ProgrammerZamanNow ยท Bahasa Indonesia, detail teknis
Day5

Eloquent ORM

โฑ๏ธ 3โ€“4 jam ยท Tema: bicara ke database pakai PHP

Tujuan: CRUD (Create, Read, Update, Delete) data tanpa nulis SQL mentah.

Sub-topik

  • Model & konsep ORM
  • Query dasar: all(), find(), where(), create()
  • Mass assignment & $fillable
Bikin model + migration sekaligus
php artisan make:model Siswa -m
app/Models/Siswa.php
class Siswa extends Model {
    protected $fillable = ['nama', 'nis', 'kelas'];
}
Contoh operasi CRUD
// Create
Siswa::create(['nama' => 'Budi', 'nis' => '2024001']);

// Read
$semua  = Siswa::all();
$satu   = Siswa::find(1);
$kelas7 = Siswa::where('kelas', '7')->get();

// Update
$satu->update(['kelas' => '8']);

// Delete
$satu->delete();
โš ๏ธ Pitfall pemula: lupa isi $fillable โ†’ muncul error "MassAssignmentException". Isi kolom apa saja yang boleh diisi massal di sini.
Day6

Relationships & Form Handling

โฑ๏ธ 3โ€“4 jam ยท Tema: menghubungkan tabel & memproses input

Tujuan: paham relasi antar tabel & menyimpan data dari form.

Sub-topik

  • Relasi: hasMany, belongsTo, belongsToMany
  • Form + CSRF protection
  • Validasi request dasar
Relasi: satu Kelas punya banyak Siswa
// app/Models/Kelas.php
public function siswa() {
    return $this->hasMany(Siswa::class);
}

// app/Models/Siswa.php
public function kelas() {
    return $this->belongsTo(Kelas::class);
}

// Pakai: ambil semua siswa dari kelas tertentu
$kelas->siswa;  // otomatis join
โœ… Eager loading โ€” hindari "N+1 problem": gunakan Kelas::with('siswa')->get() supaya query efisien saat menampilkan banyak data relasi.
Day7

Livewire: Konsep Dasar ๐ŸŽ‰

โฑ๏ธ 3 jam ยท Tema: halaman interaktif tanpa JavaScript

Tujuan: paham apa itu komponen Livewire & bikin yang pertama. Ini titik balik roadmap!

Sub-topik

  • Install Livewire 3
  • Anatomi komponen: class PHP + view Blade
  • Property publik & auto-render
Install Livewire 3
composer require livewire/livewire

# Bikin komponen pertama
php artisan make:livewire Counter

Perintah di atas membuat 2 file: app/Livewire/Counter.php (otak) dan resources/views/livewire/counter.blade.php (wajah).

app/Livewire/Counter.php
use Livewire\Component;

class Counter extends Component {
    public $count = 0;

    public function increment() { $this->count++; }
    public function decrement() { $this->count--; }

    public function render() {
        return view('livewire.counter');
    }
}
resources/views/livewire/counter.blade.php
<div style="text-align:center">
    <button wire:click="decrement">-</button>
    <h1>{{ $count }}</h1>
    <button wire:click="increment">+</button>
</div>
โœจ Keajaibannya: klik tombol โ†’ angka berubah tanpa reload halaman, dan Anda tidak menulis satu baris JavaScript pun. wire:click memanggil method PHP, Livewire mengurus sisanya.
Livewire 3 From Scratch (Laracasts)laracasts.com/series/livewire-3-from-scratch ยท Seri resmi oleh pembuat Livewire
Day8

Data Binding & Actions

โฑ๏ธ 3 jam ยท Tema: form hidup & interaksi real-time

Tujuan: menghubungkan input form ke property secara otomatis.

Sub-topik

  • wire:model โ€” two-way binding
  • wire:model.live vs .blur vs default (defer)
  • Actions dengan parameter
Pencarian real-time
// Component
public $search = '';

public function render() {
    return view('livewire.cari-siswa', [
        'hasil' => Siswa::where('nama', 'like', "%{$this->search}%")->get(),
    ]);
}
<input type="text" wire:model.live="search" placeholder="Cari nama...">
<ul>
  @foreach($hasil as $s)
    <li>{{ $s->nama }}</li>
  @endforeach
</ul>
โš ๏ธ Perubahan penting Livewire 2 โ†’ 3: di Livewire 2, wire:model update tiap ketikan (live). Di Livewire 3, default-nya "deferred" (update saat submit/aksi). Kalau mau live tiap ketik, wajib tulis wire:model.live. Ini pitfall yang paling sering bikin bingung!

Modifier binding

ModifierKapan update ke server
wire:modelSaat ada aksi (default, hemat request)
wire:model.liveSetiap ketikan (real-time)
wire:model.blurSaat keluar dari input
wire:model.live.debounce.500msReal-time tapi tunggu jeda 0.5 detik
Day9

Validasi & Lifecycle Hooks

โฑ๏ธ 3 jam ยท Tema: form aman & siklus hidup komponen

Tujuan: memvalidasi input & paham kapan kode dijalankan.

Sub-topik

  • Validasi dengan atribut #[Validate]
  • Menampilkan pesan error
  • Lifecycle hooks: mount(), updated(), hydrate()
Form dengan validasi (Livewire 3)
use Livewire\Attributes\Validate;

class TambahSiswa extends Component {
    #[Validate('required|min:3')]
    public $nama = '';

    #[Validate('required|unique:siswa,nis')]
    public $nis = '';

    public function simpan() {
        $this->validate();
        Siswa::create(['nama' => $this->nama, 'nis' => $this->nis]);
        session()->flash('sukses', 'Siswa tersimpan!');
        $this->reset();
    }
}
<form wire:submit="simpan">
    <input wire:model="nama">
    @error('nama') <span class="err">{{ $message }}</span> @enderror
    <button type="submit">Simpan</button>
</form>
๐Ÿ’ก mount() = constructor. Dipakai untuk menerima data awal saat komponen pertama dibuka. updated() jalan tiap property berubah โ€” cocok untuk reset halaman saat pencarian berubah.
Day10

Livewire Lanjutan

โฑ๏ธ 3โ€“4 jam ยท Tema: fitur yang bikin app terasa profesional

Tujuan: pagination, loading state, event antar komponen.

Sub-topik

  • Pagination bawaan Livewire (WithPagination)
  • Loading state: wire:loading
  • Events: dispatch() & listeners antar komponen
  • Flash message & konfirmasi hapus
Pagination + loading indicator
use Livewire\WithPagination;

class DaftarSiswa extends Component {
    use WithPagination;

    public function render() {
        return view('livewire.daftar', [
            'siswa' => Siswa::paginate(10),
        ]);
    }
}
<!-- Muncul otomatis saat request berjalan -->
<div wire:loading>Memuat...</div>

{{ $siswa->links() }}  <!-- tombol pagination -->
โœ… Event antar komponen: $this->dispatch('siswa-ditambah') di satu komponen, lalu #[On('siswa-ditambah')] di komponen lain untuk auto-refresh daftar. Ini cara komponen "ngobrol".
Day11

Form Object & File Upload

โฑ๏ธ 3 jam ยท Tema: form rapi & unggah file

Tujuan: merapikan form kompleks & menangani upload foto.

Sub-topik

  • Form Objects โ€” memisahkan logika form (fitur Livewire 3)
  • File upload dengan WithFileUploads
  • Preview & validasi file
Upload foto siswa
use Livewire\WithFileUploads;

class UploadFoto extends Component {
    use WithFileUploads;

    #[Validate('image|max:1024')] // max 1MB
    public $foto;

    public function simpan() {
        $path = $this->foto->store('foto-siswa', 'public');
        // simpan $path ke database
    }
}
โš ๏ธ Jangan lupa: jalankan php artisan storage:link supaya file yang di-upload bisa diakses publik dari browser.
Day12

Autentikasi & Starter Kit

โฑ๏ธ 3โ€“4 jam ยท Tema: login, register, proteksi halaman

Tujuan: menambahkan sistem login siap-pakai.

Sub-topik

  • Laravel Starter Kit (berbasis Livewire + Volt)
  • Middleware auth untuk proteksi route
  • Cek user login: auth()->user()
Install starter kit dengan autentikasi Livewire
# Saat bikin project baru, pilih starter kit Livewire
laravel new app-sekolah

# Pilih: Livewire starter kit โ†’ sudah termasuk
# login, register, profile, dashboard
npm install && npm run build
php artisan migrate
๐Ÿ’ก Starter Kit modern (2025+): Laravel kini menyediakan starter kit resmi berbasis Livewire (menggantikan Breeze/Jetstream lama). Sekali install, Anda langsung dapat halaman login, register, dan dashboard yang tinggal dikembangkan.
Proteksi route
Route::get('/dashboard', Dashboard::class)
    ->middleware('auth');
Day13

UI Library: FLUX & TallStackUI

โฑ๏ธ 3 jam ยท Tema: mempercantik tanpa capek styling

Tujuan: memakai komponen UI siap-pakai (tombol, modal, dropdown) supaya tampilan profesional cepat. Detail lengkap ada di section FLUX vs TallStackUI di bawah.

Install Flux UI (gratis)
composer require livewire/flux
<flux:button variant="primary" wire:click="simpan">Simpan</flux:button>
<flux:input wire:model="nama" label="Nama Siswa" />
<flux:badge color="green">Aktif</flux:badge>
โœ… Tugas hari ini: ambil form dari Day 9, ganti input HTML biasa dengan komponen Flux/TallStackUI. Rasakan bedanya โ€” kode lebih pendek, tampilan langsung rapi & konsisten.
Day14

Deployment ๐Ÿš€

โฑ๏ธ 4 jam ยท Tema: menaikkan aplikasi ke internet

Tujuan: app Anda bisa diakses siapa saja lewat domain. Detail langkah & GitHub ada di section GitHub & Deployment.

Ringkasan alur deployment

  1. Push kode ke GitHub (jangan sertakan .env!)
  2. Siapkan server (VPS: DigitalOcean, Contabo, atau layanan seperti Laravel Forge / Ploi)
  3. Clone repo di server
  4. Set environment production (.env, APP_ENV=production)
  5. Optimasi: cache config, route, view, build aset
  6. Set web server (Nginx) mengarah ke folder public/
Perintah wajib saat deploy production
composer install --optimize-autoloader --no-dev
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
npm ci && npm run build
โš ๏ธ Keamanan production: set APP_DEBUG=false di .env production. Kalau true, pesan error bisa membocorkan password database ke publik!
โœ… Selamat! ๐ŸŽ‰ Kalau sampai sini, Anda sudah menguasai siklus lengkap: dari laravel new sampai aplikasi live di internet. Sisanya tinggal jam terbang โ€” bikin project nyata sebanyak mungkin.

FLUX vs TallStackUI โ€” Pilih Mana?

Dua-duanya adalah kumpulan komponen UI siap-pakai (tombol, modal, tabel, dropdown, dll) untuk Livewire, supaya Anda tidak perlu styling dari nol. Berikut perbandingan yang sudah diverifikasi dari situs resmi (Agustus 2026):

AspekFlux UITallStackUI
PosisiUI kit resmi Livewire (dibuat Caleb Porzio, pencipta Livewire)Library komunitas, open-source penuh
HargaFree (komponen inti) + berbayar (lisensi sekali bayar)Gratis 100% โ€” semua komponen
Versi2.17 ยท butuh Livewire 3.7+ / 4, PHP 8.1+Butuh Livewire 3, Tailwind, Alpine.js
StylingTailwind CSS, desain sangat rapi & konsistenTailwind CSS, banyak varian & opsi
KelebihanIntegrasi paling mulus, kualitas premium, didukung tim Livewire resmiGratis penuh, komponen sangat lengkap (toast, dialog, table, dll)
KekuranganKomponen tercanggih ada di versi Pro (berbayar)Komunitas lebih kecil dari Flux
โœ… Rekomendasi untuk tim IT sekolah (pemula, hemat biaya) Mulai dengan TallStackUI atau Flux versi gratis. Keduanya cukup untuk 90% kebutuhan aplikasi internal (form, tabel, modal). Kalau nanti butuh komponen premium (chart, date-range picker canggih) dan ada budget, baru upgrade ke Flux Pro โ€” karena ia resmi & paling terjamin kompatibilitasnya jangka panjang.

Contoh perbandingan kode

Flux UI โ€” tombol & input
<flux:input wire:model="nama" label="Nama" placeholder="Masukkan nama" />
<flux:button variant="primary">Simpan</flux:button>
<flux:badge color="green">Lunas</flux:badge>
TallStackUI โ€” tombol & input
<x-input wire:model="nama" label="Nama" placeholder="Masukkan nama" />
<x-button color="primary">Simpan</x-button>
<x-badge text="Lunas" color="green" />
Dokumentasi resmiFlux: fluxui.dev ยท TallStackUI: tallstackui.com

GitHub & Proses Deployment (Detail)

Bagian ini menjelaskan cara menyimpan kode di GitHub dan menaikkannya ke server โ€” materi inti Day 14.

1. Menyiapkan Git & GitHub

Inisialisasi & push pertama
git init
git add .
git commit -m "Initial commit"

# Buat repo kosong di github.com dulu, lalu:
git remote add origin git@github.com:username/app-sekolah.git
git branch -M main
git push -u origin main
โš ๏ธ WAJIB: pastikan file .env ada di .gitignore (defaultnya sudah). File ini berisi password database & kunci rahasia โ€” jangan pernah ter-upload ke GitHub. Yang di-commit hanya .env.example (template kosong).

2. Branch Strategy (kerja tim)

  • main โ€” kode production (yang live), selalu stabil
  • development โ€” kode yang sedang dikembangkan
  • Fitur baru โ†’ bikin branch sendiri โ†’ Pull Request โ†’ review โ†’ merge

3. Auto-Deploy dengan GitHub Actions

GitHub Actions bisa otomatis men-deploy setiap kali Anda push ke main. Contoh workflow sederhana (deploy via SSH ke VPS):

.github/workflows/deploy.yml
name: Deploy
on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1.0.0
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /var/www/app-sekolah
            git pull origin main
            composer install --no-dev --optimize-autoloader
            php artisan migrate --force
            php artisan config:cache
            php artisan route:cache
            php artisan view:cache
            npm ci && npm run build
๐Ÿ’ก Secrets: data sensitif (host, user, SSH key) disimpan di GitHub repo โ†’ Settings โ†’ Secrets. Jangan ditulis langsung di file workflow.

4. Cara termudah: Laravel Cloud / Forge / Ploi

Kalau tidak mau ribet setup server manual, gunakan layanan managed:

  • Laravel Cloud โ€” platform resmi Laravel, deploy langsung dari GitHub dengan beberapa klik
  • Laravel Forge โ€” provisioning server + auto-deploy dari GitHub
  • Ploi.io โ€” alternatif Forge, ada paket gratis
โœ… Saran praktis: untuk aplikasi sekolah internal, mulai dengan VPS murah (Contabo/DigitalOcean) + Ploi/Forge. Deploy jadi otomatis: push ke GitHub โ†’ aplikasi ter-update sendiri di server.
Deployment resmi Laravellaravel.com/docs/deployment ยท Panduan resmi lengkap

Kumpulan Video & Sumber Belajar

Semua link di bawah sudah diverifikasi aktif (Agustus 2026). Dahulukan yang berbahasa Indonesia jika baru mulai.

๐Ÿ‡ฎ๐Ÿ‡ฉ Bahasa Indonesia

Channel/SumberMateriLink
Web Programming UNPAS (Sandhika Galih)Laravel dasar sampai mahir, paling ramah pemula@sandhikagalih
Programmer Zaman Now (Eko Kurniawan)Laravel & PHP mendalam, teori kuat@ProgrammerZamanNow

๐ŸŒ Internasional (Bahasa Inggris)

SumberMateriLink
Laravel Bootcamp (resmi)Bikin app dari nol, gratisbootcamp.laravel.com
LaracastsVideo premium, kualitas terbaik (Livewire 3 From Scratch)laracasts.com
Laravel DailyTips praktis & studi kasus nyata@LaravelDaily

๐Ÿ“– Dokumentasi Resmi (WAJIB dibookmark)

๐Ÿ’ก Tips belajar dari dokumentasi: dokumentasi Laravel & Livewire terkenal sangat bagus & mudah dibaca. Biasakan buka docs saat mentok โ€” jauh lebih cepat daripada nyari di forum.

Cheat Sheet โ€” Perintah Artisan Sering Dipakai

Kumpulan perintah harian
# Project & server
laravel new nama-app
php artisan serve

# Generator
php artisan make:model Nama -mc      # model + migration + controller
php artisan make:livewire NamaKomponen
php artisan make:migration create_xxx_table

# Database
php artisan migrate                  # jalankan migration
php artisan migrate:fresh --seed     # reset + isi data contoh
php artisan db:seed

# Utilitas
php artisan storage:link             # link folder upload
php artisan tinker                   # REPL uji coba kode
php artisan route:list               # lihat semua route

# Production
php artisan config:cache
php artisan route:cache
php artisan optimize:clear           # bersihkan semua cache

Checklist Kemajuan Belajar

MilestoneBisa dianggap kuasai jika...
Minggu 1 (Day 1-7)Bisa bikin CRUD Laravel + komponen Livewire pertama jalan
Minggu 2 (Day 8-14)Bisa bikin form validasi, upload file, login, dan deploy ke server
Setelah 14 hariBikin 1 project nyata (misal: aplikasi data siswa/inventaris) end-to-end
๐ŸŽฏ Langkah setelah roadmap: praktik adalah kunci. Ambil satu kebutuhan nyata di sekolah (data guru, inventaris, presensi) dan bangun aplikasinya. Di situlah ilmunya benar-benar mengendap.