Lompat ke isi
Les Laravel DocsTutorial Les Privat · Laravel CRUD
Unduh Starter Pack
Sesi 1: Persiapan, Migration & ModelEstimasi: 40 menit5 titik periksa

Bab 1 — Persiapan Alat dan Proyek Kosong

1.1Konsep

Dua alat utama

  • Composer mengunduh Laravel dan semua paket pendukungnya. Perintahnya composer ....
  • Artisan adalah perintah bawaan Laravel yang membuatkan berkas dan menjalankan tugas. Perintahnya php artisan .... Kamu akan memakainya di hampir setiap bab.

Database: SQLite

Laravel versi baru memakai SQLite sebagai database bawaan. Seluruh database ada dalam satu berkas (database/database.sqlite), jadi tidak perlu menyalakan MySQL atau membuka phpMyAdmin.

1.2Periksa alat

Buka PowerShell (atau terminal di VS Code) dan jalankan:

PowerShell
php -vcomposer -V

Keduanya harus menampilkan nomor versi. Tulis nomor versi PHP di bukumu.

⚠️ Kalau salah satunya tidak dikenali, lihat Lampiran A.1. Kalau memakai Laragon, buka terminal dari dalam Laragon supaya PHP dan Composer otomatis dikenali.

1.3Buat proyek kosong

Pilih folder kerja (mis. C:\les), lalu:

PowerShell
composer create-project laravel/laravel app-lescd app-lesphp artisan --version

Proses pertama bisa 3–10 menit karena mengunduh banyak paket. Setelah selesai, tulis versi Laravel yang muncul di bukumu. Versi itu menentukan sedikit perbedaan tampilan pesan galat.

Jalankan server pengembangan:

PowerShell
php artisan serve

Buka http://127.0.0.1:8000. Halaman sambutan Laravel harus muncul. Hentikan server dengan Ctrl + C kapan pun perlu.

1.4Salin Paket Starter

Unduh Paket Starter (ZIP)

Paket Starter ada di folder paket-starter/ yang dibagikan pengajar. Salin isinya ke dalam proyek (ganti C:\...\paket-starter dengan lokasi sebenarnya):

PowerShell
Copy-Item -Recurse -Force C:\...\paket-starter\resources\* .\resources\Copy-Item -Recurse -Force C:\...\paket-starter\tests\* .\tests\

Atau salin manual lewat File Explorer: gabungkan folder resources dan tests. Setelah selesai, pastikan berkas-berkas ini ada:

Teks
resources/views/layouts/app.blade.phpresources/views/siswa/index.blade.phpresources/views/siswa/create.blade.phpresources/views/siswa/edit.blade.phptests/Feature/ModelSiswaTest.phptests/Feature/SeederSiswaTest.phptests/Feature/RuteSiswaTest.phptests/Feature/DaftarSiswaTest.phptests/Feature/TambahSiswaTest.phptests/Feature/UbahSiswaTest.phptests/Feature/HapusSiswaTest.phptests/Feature/TampilanGalatTest.php

1.5Rapikan test bawaan

Laravel membawa dua test contoh:

  • tests/Feature/ExampleTest.php membuka alamat / dan mengharapkan halaman sambutan (kode 200). Di Bab 4 alamat / akan dialihkan ke /siswa, sehingga test itu akan merah padahal tidak ada yang salah.
  • tests/Unit/ExampleTest.php hanya memeriksa bahwa true bernilai benar. Tidak menguji aplikasi kita, dan kalau dibiarkan, hitungan akhirmu menjadi 36, bukan 35.

Hapus keduanya sekarang:

PowerShell
Remove-Item tests\Feature\ExampleTest.phpRemove-Item tests\Unit\ExampleTest.php

1.6Pastikan test memakai database sementara

Buka phpunit.xml di folder utama. Cari dua baris ini (tanpa tanda <!-- di depannya):

XML
<env name="DB_CONNECTION" value="sqlite"/><env name="DB_DATABASE" value=":memory:"/>

:memory: artinya test memakai database sementara di memori, jadi data praktikmu tidak ikut terhapus saat test dijalankan. Kalau kedua baris itu tidak ada atau masih berupa komentar, hapus tanda komentarnya.

1.7Uji coba

PowerShell
php artisan test

Hasilnya: semua 35 test gagal (merah). Itu normal! Test sudah menunggu, tetapi model, seeder, route, dan controller belum kamu buat. Pesan galatnya bermacam-macam, dan semuanya menunjuk ke bagian yang belum ada:

Pesan galat Artinya Dibuat di
Class "App\Models\Siswa" not found Model belum ada Bab 2
Target class [Database\Seeders\SiswaSeeder] does not exist Seeder belum ada Bab 3
Route [siswa.…] not defined atau kode 404 Rute belum didaftarkan Bab 4

Mulai Bab 2, kamu akan menjalankan test per bab dengan:

PowerShell
php artisan test --filter=NamaTest

dan menyaksikan angka merah berubah menjadi hijau.


Titik periksa Bab 1

Centang setiap butir yang sudah kamu selesaikan.

  • php -v dan composer -V menampilkan versi. Versi PHP dan Laravel sudah kutulis di buku.
  • php artisan serve menampilkan halaman sambutan Laravel di http://127.0.0.1:8000.
  • Folder resources/views/siswa/ dan tests/Feature/ berisi berkas Paket Starter.
  • Kedua ExampleTest.php (di tests\Feature dan tests\Unit) sudah dihapus.
  • php artisan test berjalan dan menampilkan 35 test gagal dengan pesan seperti di tabel 1.7 (model, seeder, atau rute belum ada), bukan galat lain seperti ekstensi PHP yang hilang.

Pertanyaan pemahaman

  1. Apa beda Composer dan Artisan?
  2. Mengapa test memakai database :memory: dan bukan berkas database.sqlite yang kamu pakai belajar?
  3. Mengapa ExampleTest.php dihapus, padahal bukan kamu yang membuatnya? Kapan test lama boleh dihapus?

Tantangan

Buka .env, ubah APP_NAME menjadi Les Cerdas Mandiri, simpan, lalu cari tahu: apakah perubahan itu langsung terlihat di halaman sambutan? (Petunjuk: hentikan dan jalankan ulang php artisan serve.)

Kesalahan umum

Gejala Penyebab & solusi
php tidak dikenali PHP belum ada di PATH. Pakai terminal Laragon, atau lihat Lampiran A.1.
composer tidak dikenali Composer belum terpasang. Pasang dari getcomposer.org atau pakai terminal Laragon.
composer create-project lama dan seperti macet Pertama kali memang mengunduh banyak paket. Tunggu sampai kembali ke prompt.
Address already in use Port 8000 dipakai server lain. Tutup server lama atau jalankan php artisan serve --port=8001.
php artisan test meminta ekstensi PHP Aktifkan ekstensi sqlite3 dan pdo_sqlite di php.ini (Lampiran A.1).
Salinan Paket Starter bertumpuk (resources\resources) Folder tujuan salah. Isi resources harus langsung ada di bawah resources\views\.

➡️ Lanjut ke Bab 2 — Migration dan Model.

Tutorial Data Siswa Les — Laravel CRUD untuk les privat.

Kode boleh disalin, tapi coba ketik sendiri dulu: tangan yang mengetik lebih cepat paham.