Laravel adalah framework PHP paling populer untuk membangun aplikasi web modern. Pada Course ini, kita akan mempelajari Laravel secara bertahap: mulai dari pemahaman arsitektur, routing, controller, dan view, dilanjutkan dengan database, Eloquent ORM, validasi, authentication, hingga testing dan deployment.
Seluruh contoh kode pada Course ini diuji menggunakan Laravel 13 dengan PHP 8.4 dan database SQLite. Apabila Anda menggunakan kombinasi versi yang berbeda, hasil eksekusi beberapa contoh dapat sedikit berbeda, terutama pada fitur terbaru yang belum tersedia di versi Laravel lama.
Bab 1 Versi dan Konvensi
Kenali versi Laravel yang dipakai Course ini, siklus rilis tahunan, dan kebijakan support resminya.
Buka → # Versi PHPPahami rentang versi PHP yang didukung Laravel 13 dan fitur PHP yang dipakai sepanjang Course.
Buka → # Kebutuhan Lingkungan KerjaLihat daftar lengkap perangkat yang dibutuhkan untuk mengikuti Course: PHP, Composer, Node.js, dan editor.
Buka → # Dukungan DatabaseKenali database yang didukung Laravel dan alasan Course ini memakai SQLite sebagai database bawaan.
Buka → # Konvensi Penulisan KodePahami gaya penulisan kode yang dipakai Course ini dan cara memakai Laravel Pint untuk menjaga konsistensi.
Buka →Bab 2 Pengenalan Laravel
Pahami definisi Laravel sebagai web framework, posisinya di ekosistem PHP, dan apa yang membedakannya dari PHP murni.
Buka → # Mengapa Menggunakan Laravel?Telusuri alasan teknis memilih Laravel: developer experience, fitur bawaan, dokumentasi, dan komunitas.
Buka → # Arsitektur LaravelBedah lapisan arsitektur Laravel: service container, service provider, facade, dan kontrak antar komponen.
Buka → # Mengenal MVCPahami pola Model-View-Controller dan bagaimana Laravel menerapkannya pada struktur direktori aplikasi.
Buka → # Lifecycle Request LaravelIkuti perjalanan satu HTTP request dari entry point public/index.php sampai response dikirim ke browser.
Buka → # Mengenal Ekosistem LaravelPetakan ekosistem first-party Laravel: Sanctum, Horizon, Telescope, Reverb, Pint, dan paket lainnya.
Buka → # Membuat Aplikasi Laravel PertamaPraktik membuat proyek Laravel baru, menjalankan development server, dan mengubah halaman utama.
Buka →Bab 3 Persiapan Lingkungan Kerja
Periksa dan pasang PHP dengan ekstensi yang dibutuhkan Laravel, lalu verifikasi instalasinya dari terminal.
Buka → # Instalasi ComposerPasang Composer dan pahami perannya sebagai dependency manager PHP dalam proyek Laravel.
Buka → # Instalasi LaravelBuat proyek Laravel baru dengan Laravel installer maupun Composer create-project, lalu kenali opsi pembuatannya.
Buka → # Konfigurasi DatabaseAtur koneksi database pada berkas .env dan config/database.php, dari SQLite hingga MySQL dan PostgreSQL.
Buka → # Konfigurasi EnvironmentPahami berkas .env, APP_KEY, APP_ENV, dan cara membaca environment variable di dalam aplikasi.
Buka → # Menjalankan Development ServerJalankan development server dengan artisan serve dan composer run dev, lalu pahami perbedaan keduanya.
Buka → # Mengenal ArtisanGunakan Artisan sebagai pusat kendali proyek: membuat berkas, menjalankan migrasi, hingga mengeksekusi perintah kustom.
Buka → # Struktur Direktori LaravelPetakan direktori app, bootstrap, config, database, resources, routes, storage, dan tests pada proyek Laravel.
Buka →Bab 4 Fondasi PHP untuk Laravel
Segarkan konsep variabel dan tipe data PHP yang menjadi bahan bacaan setiap berkas Laravel.
Buka → # Operator dan EkspresiPelajari operator perbandingan, logika, null coalescing, dan spaceship yang banyak dipakai di kode Laravel.
Buka → # Percabangan dan PerulanganKuasai if, match, for, foreach, dan while sebagai tulang punggung logika view maupun controller.
Buka → # FungsiPahami parameter bertipe, default value, return type, dan arrow function dalam gaya penulisan Laravel.
Buka → # ArrayKuasai array berindeks dan fungsi array_* yang dipakai di hampir semua bagian framework.
Buka → # StringOlah string dengan interpolasi, fungsi bawaan, dan koleksi Str yang disediakan Laravel.
Buka → # Associative ArrayPahami associative array sebagai format data mentah untuk config, validasi, dan response Laravel.
Buka → # Anonymous Functions dan ClosuresBaca pola closure yang dipakai di route, middleware, validasi, dan service container Laravel.
Buka → # Object-Oriented ProgrammingPahami class, object, inheritance, interface, dan trait yang menjadi fondasi seluruh komponen Laravel.
Buka → # Namespace dan AutoloadingPahami namespace PSR-4 dan autoloading Composer yang membuat use App\Models\Post bekerja.
Buka → # Exception HandlingPelajari try, catch, finally, dan class Exception yang ditangani global handler Laravel.
Buka → # Composer dan DependenciesPahami composer.json, versi paket, autoloading, dan skrip Composer dalam proyek Laravel.
Buka →Bab 5 Routing dan Request
Pahami peran router Laravel: mencocokkan URL dan HTTP method dengan kode yang menanganinya.
Buka → # Route DasarDefinisikan route GET, POST, PUT, PATCH, dan DELETE, lalu route fallback dan redirect sederhana.
Buka → # Route ParametersTangkap segmen URL sebagai parameter wajib maupun opsional, termasuk parameter bernilai default.
Buka → # Named RoutesBeri nama pada route dan pakai nama tersebut untuk menghasilkan URL maupun redirect.
Buka → # Route GroupsKelompokkan route yang berbagi middleware, prefix URL, atau namespace controller.
Buka → # Route ConstraintsBatasi nilai parameter dengan regular expression dan constraint bawaan whereNumber dan whereUuid.
Buka → # Route Model BindingIkat parameter route langsung ke record Eloquent, termasuk custom key dan binding eksplisit.
Buka → # Request ObjectGunakan object Request untuk membaca input, path, method, dan data authenticated user.
Buka → # Query ParametersBaca query string seperti ?halaman=2&urutkan=nama dengan method input dan query pada Request.
Buka → # Form DataTerima data dari form HTML: input POST, upload file, dan penggunaan old input saat validasi gagal.
Buka → # Request HeadersBaca dan periksa request header: Content-Type, Accept, Authorization, dan header kustom.
Buka → # route:list dan Debugging RouteBaca keluaran php artisan route:list, memfilter route, dan men-debug route yang tidak cocok.
Buka →Bab 6 Controller
Pahami tugas controller dalam MVC dan batas tugasnya agar logika tidak menumpuk di satu tempat.
Buka → # Membuat ControllerBuat controller dengan artisan make:controller, lengkap dengan method __invoke dan method biasa.
Buka → # Resource ControllerBangun CRUD lengkap dengan make:controller --resource dan Route::resource dalam satu baris.
Buka → # Single Action ControllerGunakan controller __invoke untuk satu tugas spesifik seperti halaman ringkasan atau endpoint webhook.
Buka → # Dependency Injection di ControllerSuntikkan dependency ke method controller lewat type hint dan pahami cara container mengisinya.
Buka → # Request dan Response di ControllerTerima Request sebagai parameter method dan kembalikan response berupa view, teks, maupun header kustom.
Buka → # Redirect dan ResponseArahkan pengguna dengan redirect, flash message, dan redirect ke named route atau action.
Buka → # Response JSONKembalikan response JSON untuk AJAX dan API, lengkap dengan status code dan header.
Buka → # Organisasi ControllerKelompokkan controller per domain dengan sub-namespace dan direktori di dalam app/Http/Controllers.
Buka → # Separation of Concerns di ControllerPisahkan validasi, logika bisnis, dan response dari controller dengan form request dan service class.
Buka →Bab 7 View dan Blade
Pahami konsep view dalam MVC dan cara controller mengirim data ke berkas Blade.
Buka → # Blade TemplateKenali sintaks dasar Blade: {{ }} untuk echo, directive @, dan kompilasi menjadi kode PHP biasa.
Buka → # Menampilkan DataTampilkan data scalar, array, dan object di Blade dengan echo, {{ $x }}, dan directive khusus.
Buka → # Blade DirectivesGunakan directive umum seperti @if, @foreach, @auth, @once, dan @production dalam template.
Buka → # Conditional RenderingSusun tampilan bersyarat dengan @if, @unless, @isset, dan @empty beserta alternatifnya.
Buka → # Looping di BladeTampilkan koleksi dengan @foreach, $loop variable, @forelse, dan @while.
Buka → # Template InheritanceTurunkan layout dasar dengan @extends, @section, dan @yield untuk halaman yang konsisten.
Buka → # Layouts dan SectionsSusun layout utama dan bagian @section yang bisa diisi maupun diberi default oleh halaman anak.
Buka → # ComponentsBangun komponen x-button, x-alert, dan component berbasis class dengan logic mandiri.
Buka → # Slots dan AttributesKirim konten turunan lewat $slot dan attribute tambahan lewat $attributes pada component.
Buka → # Forms dan Old InputBangun form dengan @csrf, isi ulang nilai input dengan old(), dan tampilkan validasi error.
Buka → # CSRF ProtectionPahami serangan CSRF dan cara Blade directive @csrf melindungi form aplikasi Anda.
Buka → # Blade StacksKumpulkan CSS dan JavaScript dari partial ke @stack agar tetap rapi di layout utama.
Buka → # UI yang ReusableRancang antarmuka reusable: partial, component dengan variant, dan pola composing UI.
Buka →Bab 8 Database dan Migrations
Atur koneksi database di config/database.php dan .env, dari SQLite default hingga MySQL dan PostgreSQL.
Buka → # Database ConnectionsPahami koneksi default, koneksi ganda read/write, dan memilih koneksi tertentu saat query.
Buka → # Konsep MigrationPahami masalah perubahan skema manual dan bagaimana migration menjawabnya dengan version control.
Buka → # Membuat MigrationBuat migration dengan artisan make:migration, tulis method up dan down, lalu jalankan migrate.
Buka → # Mengubah Struktur TabelTambah kolom, ubah tipe, dan rename kolom pada tabel yang sudah ada dengan aman.
Buka → # Migration RollbackBatalkan perubahan dengan migrate:rollback, reset, dan refresh, serta memahami batch migration.
Buka → # Column TypesKenali tipe kolom schema builder: string, text, integer, decimal, boolean, date, dan json.
Buka → # Indexes dan ConstraintsTambahkan index, unique, dan composite index agar query tabel besar tetap cepat.
Buka → # Foreign KeysHubungkan tabel dengan foreign key, onDelete cascade, dan constraint restrict agar data tetap konsisten.
Buka → # Database SeedingIsi tabel dengan data awal lewat database seeder yang dijalankan dengan db:seed.
Buka → # Model FactoriesBuat data uji berulang dengan factory definition, state, dan count yang fleksibel.
Buka → # Database TransactionsJalankan beberapa query atomik dengan DB::transaction dan tangani kegagalan dengan rollback.
Buka →Bab 9 Eloquent ORM
Pahami konsep Object-Relational Mapping dan bagaimana Eloquent memetakan tabel ke model.
Buka → # Membuat ModelBuat model Eloquent, atur $table dan $primaryKey, dan pahami konvensi nama yang berlaku.
Buka → # Mass AssignmentIsi banyak kolom sekaligus dengan create() dan fillable, plus lindungi diri dari kerentanan mass assignment.
Buka → # Membaca DataQuery data dengan all, find, where, orderBy, dan method retrieval lainnya di Eloquent.
Buka → # Membuat DataSimpan record baru dengan create, fill-save, firstOrCreate, dan updateOrCreate.
Buka → # Memperbarui DataUbah record dengan update massal maupun per attribute, dan pahami dirty attributes.
Buka → # Menghapus DataHapus record dengan delete dan destroy, lalu hitung data tersisa dengan count dan exists.
Buka → # Query ScopesBungkus query berulang menjadi local scope dan dynamic scope yang bisa diberi parameter.
Buka → # Accessors dan MutatorsUbah nilai saat dibaca atau disimpan dengan accessor dan mutator modern berbasis Attribute class.
Buka → # Casts dan Attribute CastingKonversi otomatis tipe data dengan $casts: boolean, datetime, encrypted, dan custom cast.
Buka → # PaginationBagi hasil query ke beberapa halaman dengan paginate, simplePaginate, dan cursorPaginate.
Buka → # Soft DeletesSembunyikan data tanpa menghapus fisik dengan SoftDeletes dan query withTrashed.
Buka → # Model EventsReaksi terhadap siklus hidup model: creating, updated, deleting, dan restored.
Buka → # ObserversKumpulkan listener event model ke satu class Observer agar logika pendamping tetap rapi.
Buka → # Query OptimizationBaca SQL yang dihasilkan Eloquent dengan toSql, DB::listen, dan eager loading sebagai kunci optimasi.
Buka →Bab 10 Eloquent Relationships
Pahami relasi database dan bagaimana Eloquent memodelkannya sebagai method pada model.
Buka → # One to OneDefinisikan hasOne dan belongsTo untuk relasi satu-ke-satu seperti User dan Phone.
Buka → # One to ManyDefinisikan hasMany untuk relasi satu-ke-banyak seperti Post dan Comment.
Buka → # Many to ManyDefinisikan belongsToMany lewat tabel perantara seperti Role dan Permission.
Buka → # Polymorphic RelationshipsSatu model berelasi ke banyak tipe model dengan morphMany, misalnya Comment pada Post dan Video.
Buka → # Inverse RelationshipsTelusuri relasi dua arah dengan belongsTo dan morphTo sebagai jalan kembali.
Buka → # Eager LoadingMuat relasi di awal dengan with() untuk menghemat query dan mempercepat halaman.
Buka → # Lazy LoadingPahami lazy loading default Eloquent, kapan memakainya, dan cara melarangnya di development.
Buka → # Relationship QueriesQuery relasi langsung lewat relasi dinamis dan whereHas dengan kondisi relasi.
Buka → # Pivot TableKelola tabel perantara: kolom tambahan, withPivot, dan pivot class kustom.
Buka → # Relationship OperationsSimpan data lewat relasi dengan save, create, attach, detach, sync, dan associate.
Buka → # Mencegah N+1 QueryDeteksi pola N+1 dengan query log dan Model::preventLazyLoading lalu perbaiki dengan eager loading.
Buka →Bab 11 Validasi dan Form
Pahami tujuan validasi server-side dan alur kerja validasi Laravel dari request sampai error response.
Buka → # Validation RulesGunakan rules bawaan required, string, email, min, max, confirmed, dan kombinasinya.
Buka → # Form Request ClassesPindahkan validasi ke class FormRequest terpisah yang reusable dan mudah diuji.
Buka → # Custom Validation MessagesUbah pesan error bawaan per rule, per attribute, dan per bahasa lewat file bahasa.
Buka → # Conditional ValidationValidasi bersyarat dengan sometimes, required_if, validasi array, dan exclude_unless.
Buka → # Validasi File UploadValidasi berkas upload: mimes, max size, image, dimensions, dan aturan file ganda.
Buka → # Validasi unique dan existsValidasi data terhadap isi database dengan rule unique, exists, dan Rule::unique untuk ignore record.
Buka → # Error Messages di BladeTampilkan pesan error per field dengan @error, $errors, dan pola tampilan form yang ramah pengguna.
Buka → # Old Input dan Form StatePertahankan isian form saat validasi gagal dengan old() untuk semua jenis input.
Buka → # Validasi Data KompleksValidasi array bersarang, data JSON dari API, dan input dinamis dengan wildcard asterisk.
Buka →Bab 12 Authentication
Pahami mekanisme authentication berbasis session dan konsep guard di Laravel.
Buka → # Authentication vs AuthorizationBedakan siapa penggunanya (authentication) dari apa yang boleh dilakukannya (authorization).
Buka → # Konfigurasi AuthenticationKenali config/auth.php: guard, provider, dan bagaimana Laravel menentukan kredensial diperiksa.
Buka → # Registrasi PenggunaBangun alur registrasi: validasi data, Hash::make, Auth::attempt, dan redirect setelah sukses.
Buka → # Login dan LogoutImplementasikan login dan logout dengan Auth facade dan bentuk OOP Auth::login serta logout().
Buka → # Password HashingPahami algoritma bcrypt, Hash::make, Hash::check, dan kebijakan rehash pada password.
Buka → # Password ResetBangun alur lupa password: token reset, kirim email, dan validasi password baru.
Buka → # Email VerificationWajibkan verifikasi email setelah registrasi dengan middleware verified dan notifikasi bawaan.
Buka → # Remember MeSimpan sesi login jangka panjang dengan remember token yang aman dari session expiry.
Buka → # Session ManagementPahami session berbasis auth, invalidate device lain, dan mengelola sesi aktif pengguna.
Buka → # Authentication MiddlewareLindungi route dengan middleware auth dan guest serta redirect yang tepat untuk keduanya.
Buka → # Authentication TestingUji alur auth dengan actingAs, assertAuthenticated, dan assertGuest pada feature test.
Buka →Bab 13 Authorization
Pahami model authorization Laravel: gate, policy, dan keduanya sebagai pembungkus callback.
Buka → # GatesDefinisikan Gate::define untuk otorisasi sederhana dan pakai di controller, Blade, maupun middleware.
Buka → # PoliciesBuat policy per model dengan artisan make:policy lalu pakai method policy di controller.
Buka → # Role dan PermissionRancang tabel role, permission, dan relasinya lalu periksa hak akses lewat gate dan policy.
Buka → # Authorization di ControllerPakai $this->authorize, Gate::allows, dan middleware can di dalam controller.
Buka → # Authorization di BladeSembunyikan elemen tampilan dengan @can, @cannot, dan @role sesuai hak pengguna.
Buka → # Authorization APITerapkan otorisasi pada endpoint API dengan token abilities dan pemeriksaan scope.
Buka → # Resource OwnershipPastikan pengguna hanya boleh menyentuh data miliknya lewat policy dan route model binding.
Buka → # Pengujian AuthorizationUji gate dan policy dengan feature test untuk berbagai peran pengguna.
Buka →Bab 14 Middleware
Pahami posisi middleware dalam lifecycle request dan konsep onion layer.
Buka → # Membuat MiddlewareBuat middleware dengan artisan make:middleware dan tulis logika before serta after.
Buka → # Middleware RegistrationDaftarkan middleware di bootstrap/app.php: alias, group, dan urutan prioritasnya.
Buka → # Global dan Route MiddlewareBedakan middleware global, group web/api, dan middleware yang menempel pada route tertentu.
Buka → # Middleware ParametersKirim parameter ke middleware dari route seperti role:admin agar middleware lebih fleksibel.
Buka → # Middleware untuk AutentikasiBedah implementasi middleware auth, guest, dan authenticated dari sisi pembuatnya.
Buka → # Request ProcessingUbah, tambah, dan tolak request di middleware sebelum diteruskan ke controller.
Buka → # Custom Request FiltersBangun filter kustom: IP whitelist, JSON enforcement, dan request logging sederhana.
Buka →Bab 15 File Storage
Kenali config/filesystems.php dan konsep disk tempat berkas disimpan di Laravel.
Buka → # Storage DisksPahami disk local, public, s3, dan cara memilih disk saat operasi penyimpanan.
Buka → # Upload FileTerima berkas dari form, validasi ekstensinya, dan simpan dengan Storage::putFile.
Buka → # Verifikasi File UploadPeriksa ukuran, MIME sebenarnya, dan nama aman sebelum berkas disimpan ke disk.
Buka → # Menyimpan FileSimpan berkas dengan path rapi: store, storeAs, dan penamaan hash otomatis.
Buka → # Menampilkan FileSajikan berkas publik lewat storage link dan helper asset untuk path yang benar.
Buka → # File Privat dan PublikBedakan berkas publik yang bisa diakses langsung dari berkas privat yang butuh otorisasi.
Buka → # File DownloadSajikan unduhan dengan response()->download() dan Storage::download beserta header kustom.
Buka → # Temporary URLsBagikan berkas privat lewat URL sementara yang kedaluwarsa otomatis.
Buka → # File CleanupHapus berkas lama secara berkala dengan Storage::delete dan scheduler.
Buka →Bab 16 Session dan Cache
Pahami cara HTTP yang stateless diberi memori lewat cookie session ID dan data di server.
Buka → # Session DriversBandingkan session driver file, database, redis, dan cara memilihnya per kebutuhan.
Buka → # Session DataBaca dan tulis data session dengan helper session() dan Request berbasis OOP.
Buka → # Flash MessagesTampilkan pesan sekali pakai dengan flash data setelah aksi form sukses.
Buka → # Session SecurityAmankan session: regenerate id, absolute timeout, dan melarang fixation.
Buka → # Konsep CachePahami cache sebagai memori hasil komputasi dan kapan cache memberi keuntungan nyata.
Buka → # Cache DriversKenali driver cache file, database, redis, dan pertimbangan memilihnya.
Buka → # Cache OperationsSimpan, baca, dan hapus cache dengan Cache facade, helper, dan pola remember.
Buka → # Cache ExpirationAtur TTL cache per operasi dan pahami perbedaan put dengan add serta forever.
Buka → # Cache TagsKelompokkan cache dengan tags agar bisa dihapus massal pada driver yang mendukung.
Buka → # Cache InvalidationSegarkan cache saat data berubah: invalidasi manual, event, dan pola write-through.
Buka →Bab 17 Email dan Notifikasi
Atur mailer SMTP di .env dan config/mail.php, plus mailer log untuk pengembangan lokal.
Buka → # Mengirim EmailKirim email pertama dengan Mail facade, raw message, dan Mail::raw.
Buka → # MailablesBangun class Mailable dengan envelope, content, dan attachments yang rapi.
Buka → # Email TemplatesSusun template email dengan Blade khusus dan layout text/plain yang rapi.
Buka → # Email AttachmentsLampirkan berkas dari path, dari disk storage, dan dari data mentah.
Buka → # Notification ChannelsPahami class Notification dan konsep channel database, mail, dan broadcast.
Buka → # Database NotificationsSimpan notifikasi di tabel notifications dan tampilkan daftarnya di antarmuka.
Buka → # Mail NotificationsKirim notifikasi lewat channel mail dengan template toMail yang fleksibel.
Buka → # Queued NotificationsKirim notifikasi lewat antrean dengan ShouldQueue agar response tetap cepat.
Buka → # Pengujian EmailUji pengiriman email dengan Mail::fake dan Notification::fake tanpa server SMTP.
Buka →Bab 18 API Development
Pahami prinsip REST: resource, HTTP method, status code, dan statelessness.
Buka → # API RoutingBangun route API dengan prefix /api, middleware group api, dan versioning lewat path.
Buka → # JSON ResponsesKembalikan JSON konsisten dengan response()->json dan struktur error yang seragam.
Buka → # API Resource ControllersGunakan make:controller --api untuk endpoint CRUD tanpa create dan edit.
Buka → # API Resource ClassesBentuk output JSON dengan JsonResource, conditional field, dan nested relation.
Buka → # API ValidationValidasi JSON request dan kembalikan error 422 dengan format yang ramah konsumer.
Buka → # API AuthenticationPilih strategi autentikasi API: token, Sanctum, dan perbedaannya dengan session.
Buka → # Token AuthenticationTerapkan autentikasi bearer token manual untuk memahami mekanismenya sebelum pakai Sanctum.
Buka → # API AuthorizationTerapkan gate, policy, dan token abilities pada endpoint API.
Buka → # Pagination dan FilteringSajikan koleksi besar dengan paginate JSON dan filter lewat query parameter.
Buka → # API VersioningKelola perubahan API dengan version prefix dan strategi deprecation yang jujur.
Buka → # Rate LimitingBatasi frekuensi request dengan RateLimiter dan header 429 Too Many Requests.
Buka → # API Error HandlingStandarkan error JSON untuk 404, 422, 500 dengan exception handler kustom.
Buka → # API DocumentationDokumentasikan endpoint secara ringkas dan otomatis dengan OpenAPI.
Buka →Bab 19 Laravel Sanctum
Pahami dua mode kerja Sanctum: personal access token untuk API dan SPA cookie untuk frontend.
Buka → # Instalasi dan KonfigurasiInstal laravel/sanctum, publikasi migrasi, dan atur sanctum.php dasar.
Buka → # Personal Access TokensBuat token dengan createToken, simpan plaintext sekali tampilkan, dan autentikasi request bearer.
Buka → # Token AbilitiesBatasi hak token dengan abilities dan periksa dengan tokenCan serta middleware.
Buka → # Authenticating SPAAutentikasi SPA modern dengan cookie Sanctum /sanctum/csrf-cookie dan stateful domain.
Buka → # API Token ManagementBangun halaman kelola token: daftar, buat, dan nama yang bermakna untuk pengguna.
Buka → # Revoking TokensCabut token tertentu, semua token perangkat, dan token yang sudah kedaluwarsa.
Buka → # Pengujian SanctumUji endpoint Sanctum dengan actingAs, token abilities, dan Sanctum::actingAs.
Buka →Bab 20 Error Handling dan Logging
Pahami cara Laravel menangkap exception global dan mengubahnya menjadi response yang sesuai.
Buka → # Exception ReportingLaporkan exception ke log dan layanan eksternal dengan report dan dontReport.
Buka → # Custom Error PagesUbah halaman 404, 500, dan 503 dengan view khusus per kode status.
Buka → # Logging ConfigurationKenali config/logging.php dan konsep channel single, daily, dan emergency.
Buka → # Log ChannelsBandingkan channel stack, single, daily, syslog, dan papertrail untuk kebutuhan berbeda.
Buka → # Contextual LoggingPerkaya log dengan Log::withContext dan informasi request yang mempermudah investigasi.
Buka → # Debugging LaravelGunakan APP_DEBUG, laravel.log, dan teknik umum menelusuri bug di aplikasi Laravel.
Buka → # Environment-Specific ErrorsBedakan detail error di local dan halaman sederhana di production.
Buka → # Monitoring Application ErrorsPantau error produksi dengan pemeriksaan log rutin dan integrasi pelaporan sederhana.
Buka →Bab 21 Queues dan Background Jobs
Pahami antrian tugas dan alasan response tetap cepat walau pekerjaan berat dieksekusi.
Buka → # Queue ConfigurationAtur queue driver database dan redis beserta nama antrean di config/queue.php.
Buka → # Membuat JobBuat job dengan make:job, tulis constructor, handle, dan dependency injection di dalamnya.
Buka → # Dispatching JobsKirim job ke antrean dengan dispatch, delay, onQueue, dan sync driver.
Buka → # Queue WorkersJalankan queue:work, pahami lifecycle worker, dan kelola restart dengan queue:restart.
Buka → # Job RetriesAtur percobaan ulang job dengan tries, backoff, dan timeout yang aman.
Buka → # Failed JobsTangani job gagal: tabel failed_jobs, retry manual, dan prunable.
Buka → # Job BatchingKelompokkan job paralel dengan Bus::batch dan pantau progresnya.
Buka → # Job ChainsJalankan job berurutan dengan Bus::chain dan pendingBatch.
Buka → # Rate Limited JobsBatasi laju eksekusi job dengan RateLimiter middleware job.
Buka → # Pengujian QueueUji job dengan Queue::fake, assertPushed, dan fake sequence.
Buka →Bab 22 Task Scheduling
Pahami masalah cron tersebar dan solusi scheduler terpusat di satu tempat.
Buka → # Mendefinisikan Scheduled TasksTulis jadwal di routes/console.php dengan Schedule facade, closure, dan command.
Buka → # Schedule FrequencyAtur frekuensi everyMinute hingga quarterly beserta constraint hari dan jam.
Buka → # Preventing OverlappingCegah eksekusi tumpang tindih dengan withoutOverlapping dan lock timer.
Buka → # Background ExecutionJalankan tugas di latar belakang dengan runInBackground agar scheduler tidak tersendat.
Buka → # Schedule MonitoringPantau jadwal berjalan dengan schedule:list dan strategi alerting.
Buka → # Pengujian Scheduled TasksUji logika tugas terjadwal secara terpisah dari cron itu sendiri.
Buka →Bab 23 Events dan Listeners
Pahami pola event sebagai cara memisahkan aksi utama dari efek ikutannya.
Buka → # Membuat EventsBuat event class dengan artisan make:event dan isi property yang dibawa.
Buka → # Membuat ListenersBuat listener dengan make:listener, inject event di handle, dan daftarkan manual.
Buka → # Event DiscoveryManfaatkan auto-discovery listener berdasarkan type hint tanpa registrasi manual.
Buka → # Queued ListenersJalankan listener lambat di queue dengan ShouldQueue dan afterCommit.
Buka → # Event SubscribersKelompokkan banyak listener dalam satu subscriber class.
Buka → # Mendengarkan Model EventsTangkap event model Eloquent lewat listener dan closure di boot.
Buka → # Pengujian EventsUji event dengan Event::fake dan assertDispatched.
Buka →Bab 24 HTTP Client dan Integrasi
Kenali HTTP Client berbasis Guzzle yang dibungkus facade Http dengan API yang ekspresif.
Buka → # Mengirim HTTP RequestKirim GET, POST, PUT, DELETE dengan query, body JSON, dan form params.
Buka → # Authentication dan HeadersKirim header kustom, bearer token, dan basic auth pada request keluar.
Buka → # Timeout dan RetriesAtur timeout dan retry dengan backoff agar panggilan API gagal tidak menggantung.
Buka → # Response HandlingBaca status, header, JSON body, dan tangani error response dengan throw.
Buka → # Mengakses REST APIKonsumsi REST API publik: pagination, filter, dan map data ke model aplikasi.
Buka → # Mengintegrasikan Layanan EksternalBungkus layanan pihak ketiga dalam service class dan tangani kegagalannya dengan baik.
Buka → # Mocking HTTP RequestsUji integrasi tanpa jaringan dengan Http::fake dan Http::assertSent.
Buka →Bab 25 Testing Laravel
Pahami piramida test, perbedaan unit dan feature test, dan keuntungan test-first mindset.
Buka → # Konfigurasi TestingKenali phpunit.xml, TestCase bawaan, dan environment khusus pengujian.
Buka → # Unit TestsTulis unit test untuk class murni dengan PHPUnit assertion dan data provider.
Buka → # Feature TestsUji alur lengkap lewat feature test dari route sampai response tanpa browser.
Buka → # HTTP TestsUji endpoint dengan get, post, assertStatus, assertJson, dan assertSee.
Buka → # Database TestingReset database antar test dengan RefreshDatabase dan transaksi in-memory.
Buka → # Factories dan Seeders di TestingSiapkan data uji dengan factory state dan seeder di dalam test case.
Buka → # Authentication TestingUji halaman terlindungi dengan actingAs dan assertGuest tanpa login sungguhan.
Buka → # Authorization TestingUji gate, policy, dan middleware otorisasi dengan pengguna berbagai peran.
Buka → # API TestingUji endpoint API: JSON assertion, header, token, dan validasi 422.
Buka → # File Upload TestingUji upload dengan UploadedFile::fake dan assert storage menyimpan berkas.
Buka → # Queue dan Event TestingUji job dan event dengan Queue::fake dan Event::fake beserta assertionnya.
Buka → # Mocking dan FakesGanti dependency eksternal dengan mock, spy, dan fake facade bawaan Laravel.
Buka → # Test CoverageUkur cakupan test dengan PHPUnit coverage dan baca laporannya secara kritis.
Buka →Bab 26 Keamanan Aplikasi
Pahami serangan CSRF dan mekanisme token Laravel yang menangkalnya.
Buka → # SQL Injection PreventionPahami serangan SQL injection dan alasan binding parameter Eloquent dan Query Builder aman.
Buka → # Cross-Site Scripting (XSS)Kenali XSS, perlindungan escape Blade, dan bahaya {!! !!} serta paket sanitasi HTML.
Buka → # Mass Assignment ProtectionPahami kerentanan mass assignment dan peran fillable serta guarded.
Buka → # Password SecurityTerapkan hashing bcrypt, kebijakan kompleksitas, dan rate limit percobaan login.
Buka → # Secure File UploadsTutup celah upload berbahaya: ekstensi ganda, MIME palsu, dan penyimpanan di luar root.
Buka → # Authentication SecurityAmankan sesi login: rate limit, session regeneration, dan email enumeration.
Buka → # Authorization SecurityHindari kebocoran data lintas pengguna lewat policy dan ownership check yang disiplin.
Buka → # Rate LimitingBatasi abuse dengan RateLimiter per route, per user, dan per IP.
Buka → # Secret ManagementKelola kredensial: jangan commit .env, rotasi APP_KEY, dan environment variable.
Buka → # Secure ConfigurationMatikan debug di produksi, atur cookie flag, dan header keamanan dasar.
Buka → # Security AuditingJalankan audit berkala: dependency scan, review kode, dan checklist keamanan.
Buka →Bab 27 Frontend Laravel
Pahami masalah aset statis dan evolusi dari public/js menuju bundler modern.
Buka → # Vite IntegrationSambungkan Vite ke Blade dengan @vite directive dan jalankan mode dev maupun build.
Buka → # CSS dan JavaScriptSusun struktur css dan js di resources, impor modul ES6, dan prosesnya lewat Vite.
Buka → # Tailwind CSS IntegrationPasang Tailwind CSS di Laravel dan pakai utility class untuk tampilan konsisten.
Buka → # Blade Components untuk UIBangun UI kit: button, card, dan modal sebagai component dengan variant.
Buka → # Frontend Form ValidationTambah validasi ringan di sisi klien sebagai pemanis di atas validasi server.
Buka → # Alpine.js IntegrationBuat interaktivitas ringan dengan Alpine.js tanpa build step rumit.
Buka → # Pengenalan Laravel LivewireKenali Livewire sebagai pendekatan komponen reaktif di atas Blade.
Buka → # Memilih Pendekatan FrontendBandingkan Blade murni, Livewire, dan SPA berdasarkan kebutuhan tim dan produk.
Buka →Bab 28 Arsitektur dan Best Practices
Pisahkan tanggung jawab antar layer aplikasi agar perubahan tidak menjalar ke mana-mana.
Buka → # Service ContainerPahami service container sebagai pusat resolusi dependency dan binding di dalamnya.
Buka → # Service ProvidersDaftarkan service, binding, dan middleware lewat provider sebagai titik bootstrap.
Buka → # Dependency InjectionSuntik dependency lewat constructor dan method di seluruh bagian aplikasi.
Buka → # Service ClassesPindahkan logika bisnis ke service class yang bisa dipakai ulang dan diuji.
Buka → # Repository PatternBungkus akses data dalam repository beserta pro dan kontranya di aplikasi Laravel.
Buka → # Action ClassesTulis satu aksi bisnis per class agar alur kerja terlihat dan mudah diuji.
Buka → # Domain OrganizationKelompokkan kode per domain fitur sebagai alternatif struktur default Laravel.
Buka → # Configuration ManagementKelola config dan environment antar stage dengan disiplin konfigurasi terpusat.
Buka → # Avoiding Fat ControllersKenali tanda controller gemuk dan refactor bertahap menuju controller ramping.
Buka → # Maintainable Laravel ApplicationsRangkum praktik menjaga aplikasi Laravel tetap mudah dirawat seiring usia.
Buka →Bab 29 Performa dan Optimasi
Ukur dan perbaiki query lambat dengan DB::listen, explain, dan strategi umum.
Buka → # Optimasi dengan Eager LoadingGunakan with untuk memangkas puluhan query aksesori menjadi beberapa.
Buka → # Query IndexingTambahkan index yang tepat pada kolom where dan order by agar tabel besar tetap gesit.
Buka → # Application CachingSimpan hasil komputasi mahal dengan Cache::remember dan invalidasi disiplin.
Buka → # Route CacheBekukan definisi route dengan route:cache untuk permintaan per request lebih ringan.
Buka → # Config CacheGabungkan seluruh config ke satu berkas dengan config:cache beserta risiko env() di kode.
Buka → # View CachePrakompilasi template Blade dengan view:clear dan view:cache di produksi.
Buka → # Asset OptimizationPerkecil aset dengan build Vite produksi, minifikasi, dan strategi cache browser.
Buka → # Profiling LaravelTemukan titik lambat dengan profiler sederhana sebelum mengoptimasi secara membabi buta.
Buka → # Performance TestingUkur waktu response dengan test sederhana dan benchmark sebelum-sesudah perubahan.
Buka →Bab 30 Deployment dan Production
Siapkan prasyarat server produksi: PHP-FPM, ekstensi, dan composer install --no-dev.
Buka → # Environment ConfigurationAtur APP_ENV=production, APP_DEBUG=false, dan kelola .env antar server.
Buka → # Web Server ConfigurationArahkan document root ke public/ dan konfigurasi Nginx dasar untuk Laravel.
Buka → # Database Migration di ProductionJalankan migrasi dengan aman di server: backup, migrate --force, dan strategi kolom baru.
Buka → # Storage PermissionsAtur kepemilikan dan izin direktori storage serta bootstrap/cache.
Buka → # Queue Worker di ProductionJalankan queue:work sebagai daemon dengan supervisor dan strategi restart.
Buka → # Scheduled Tasks di ProductionPasang satu cron schedule:run untuk seluruh jadwal aplikasi.
Buka → # Caching di ProductionAktifkan route, config, dan view cache saat deployment beserta urutan penerapannya.
Buka → # Logging dan Monitoring di ProductionRotasi log, alert error, dan pemeriksaan kesehatan uptime sederhana.
Buka → # Deployment WorkflowSusun alur rilis dari git pull, dependency, migrasi, cache, hingga smoke test.
Buka → # Rollback dan RecoveryKembali ke versi aman dengan cepat saat rilis bermasalah.
Buka → # Production Security ChecklistPeriksa daftar keamanan terakhir sebelum membuka aplikasi ke publik.
Buka →Bab 31 Advanced Laravel
Buat perintah artisan sendiri dengan signature, argument, option, dan output yang rapi.
Buka → # Custom Validation RulesTulis rule validasi sendiri dari closure hingga class invokable.
Buka → # Custom CastsKonversi tipe data eksotis dengan class Castable dan implements CastsAttributes.
Buka → # Custom Eloquent BuildersPindahkan query domain ke custom builder dan macro query yang rapi.
Buka → # MacrosTambah method ke class framework lewat macro dengan bijak.
Buka → # Pola Middleware LanjutanTulis middleware terminable, atur prioritas, dan pola filter reusable.
Buka → # Package DevelopmentBangun paket Laravel sendiri: struktur, service provider, dan publish config.
Buka → # Package DiscoveryPahami package auto-discovery dan extra.laravel di composer.json.
Buka → # Pengenalan Multi-TenancyKenali konsep aplikasi multi-tenant dan pilihan arsitekturnya.
Buka → # Extensible Application DesignRancang titik ekstensi agar aplikasi tumbuh tanpa membongkar fondasi.
Buka →Bab 32 Proyek
Bangun aplikasi blog lengkap: artikel, kategori, tag, autentikasi penulis, hingga pengujian.
Lihat proyek → # Proyek: Sistem Manajemen InventarisBangun sistem inventaris: produk, stok, transaksi masuk-keluar, pencarian, dan laporan.
Lihat proyek → # Proyek: REST API Manajemen TugasBangun REST API tugas dengan autentikasi Sanctum, validasi, filtering, dan pengujian.
Lihat proyek → # Proyek: Aplikasi Pengelolaan KeuanganBangun pencatat keuangan: transaksi, kategori, laporan, dan visualisasi sederhana.
Lihat proyek → # Proyek: Aplikasi PemesananBangun aplikasi pemesanan: produk, keranjang, checkout, dan status pesanan.
Lihat proyek → # Proyek: Dashboard Analisis DataBangun dashboard analitik: agregasi, grafik, filter, dan pagination.
Lihat proyek →Bab 33 Sumber Belajar
Kenali struktur dokumentasi resmi Laravel dan cara menavigasinya secara efektif.
Buka → # Referensi ArtisanKumpulan perintah artisan yang paling sering dipakai beserta opsi pentingnya.
Buka → # Referensi EloquentRingkasan method Eloquent sehari-hari dari retrieval hingga relationship.
Buka → # Referensi BladeKartu contekan directive Blade beserta contoh pemakaian singkat.
Buka → # Referensi RoutingRingkasan method route, parameter, dan opsi grouping.
Buka → # Referensi TestingKumpulan assertion dan helper testing yang paling sering dibutuhkan.
Buka → # Referensi KeamananChecklist keamanan Laravel dan tautan resmi terkait hardening aplikasi.
Buka → # Panduan DebuggingLangkah baku menelusuri masalah umum: error 500, halaman putih, hingga query aneh.
Buka → # Panduan DeploymentRangkuman langkah deployment aman dari persiapan hingga smoke test.
Buka → # Roadmap BelajarUrutan belajar yang disarankan untuk Course ini dan langkah lanjutan setelahnya.
Buka →