Lompat ke isi
Les Laravel DocsTutorial Les Privat · Laravel CRUD
Unduh Starter Pack
Sesi 1: Persiapan, Migration & ModelEstimasi: 20 menit (membaca dan menggambar saja)4 titik periksa

Bab 0 — Kenalan dengan Proyek: Aplikasi Data Siswa Les

0.1Apa yang akan kita bangun?

Kita membangun aplikasi pencatat siswa untuk tempat les bernama Cerdas Mandiri, memakai bahasa PHP dan framework Laravel. Aplikasi berjalan di browser. Pengelola les cukup membuka alamat web, lalu mencatat murid.

Permintaan dari kliennya, Bu Rina:

Baca ulang permintaan itu dengan teliti. Pekerjaan programmer yang sebenarnya adalah menerjemahkan kalimat orang biasa menjadi fitur. Coba tandai: kalimat mana yang menjadi fitur tambah, lihat, ubah, hapus, dan kalimat mana yang menjadi aturan validasi?

Pada akhir tutorial, aplikasimu bisa:

Fitur Yang bisa dilakukan
Daftar Melihat semua siswa, yang terbaru di baris atas. Kalau kosong, muncul tulisan "Belum ada data siswa."
Tambah Mengisi formulir nama, program les, dan nomor HP orang tua. Isian kosong ditolak, dan pesan sukses muncul setelah tersimpan.
Ubah Membuka data lama dalam formulir, mengubahnya, lalu menyimpan tanpa membuat siswa kembar.
Hapus Menghapus siswa setelah konfirmasi, hanya siswa yang dipilih.

0.2Mengapa proyek kecil ini bagus untuk belajar?

Hanya tiga kolom data, tetapi di dalamnya ada hampir semua dasar pemrograman web:

  • CRUD — Create, Read, Update, Delete, empat operasi dasar hampir semua aplikasi data.
  • MVC — pembagian tugas antara Route, Controller, Model, dan View.
  • Migration — tabel database dibuat lewat kode, bukan klik-klik.
  • Validasi — aturan data yang benar, dan yang terpenting: di mana aturan itu harus dijaga.
  • Seeder — mengisi data contoh yang aman diulang.
  • Pengujian otomatis — 35 test yang memeriksa pekerjaanmu sendiri.

0.3Peta teknologi

Peta teknologi: browser → Laravel → SQLite.Peta teknologi: browser → Laravel → SQLite.
Peta teknologi: browser → Laravel → SQLite.
Teknologi Fungsi singkat
Laravel Kerangka web PHP: menerima permintaan (request) dan mengirim jawaban (response).
Artisan Perintah php artisan ... yang membuatkan berkas dan menjalankan tugas.
Eloquent Cara menulis tabel database sebagai kelas PHP (disebut Model) tanpa SQL manual.
Blade Berkas HTML yang bisa disisipi data PHP ({{ $nama }}).
SQLite Database berupa satu berkas. Tidak perlu install server database.
Composer Pengelola paket PHP (seperti npm di dunia JavaScript).
PHPUnit Menjalankan test otomatis lewat php artisan test.

0.4Cara belajar: bangun dari nol, bab demi bab

Kamu mulai dari proyek Laravel kosong. Setiap bab menambah satu bagian, di akhir setiap bab aplikasi bisa dijalankan, dan ada test otomatis yang membuktikan bagianmu benar.

Teks
Bab 1  Persiapan alat & proyek kosong     Bab 6  Create: tambah + validasiBab 2  Migration & Model                  Bab 7  Update: ubah dataBab 3  Data awal (seeder)                 Bab 8  Delete: hapus dataBab 4  Route & kerangka controller        Bab 9  Uji merusak aplikasi (jebakan)Bab 5  Read: daftar siswa

Apa yang sudah disediakan pengajar? (Paket Starter)

Kita fokus belajar logika PHP di sisi server. Karena itu pengajar membagikan Paket Starter berisi:

Isi Paket Starter Keterangan
resources/views/ Semua tampilan Blade (layout, daftar, tambah, ubah). Kamu tidak mengetik HTML panjang. Kamu belajar mengirim data ke tampilan dan membaca tampilan itu.
tests/Feature/ 35 test otomatis, dipakai memeriksa pekerjaanmu di akhir tiap bab.

Semua kode PHP (migration, model, seeder, route, controller) kamu ketik sendiri.

Aturan main

  1. Ketik, jangan hanya salin-tempel. Mengetik membuatmu memperhatikan setiap baris.
  2. Baca penjelasan di bawah kode. Kode tanpa pemahaman tidak membantu saat ada galat.
  3. Jangan lompat bab. Bab berikutnya memakai hasil bab sebelumnya.
  4. Selalu jalankan "Uji coba" dan "Titik periksa" sebelum lanjut.
  5. Jika error: baca pesannya dari baris paling atas (Laravel menaruh penjelasan di atas), lalu lihat tabel "Kesalahan umum" di bab itu sebelum bertanya.
  6. Jawab "Pertanyaan pemahaman" di buku catatanmu. Pengajar sering menanyakannya langsung.
  7. Test merah itu informasi, bukan hukuman. Baca pesannya: ia menyebut apa yang diharapkan dan apa yang didapat.

Simbol yang dipakai

Simbol Arti
📄 Nama berkas yang harus dibuat/diubah
💡 Penjelasan konsep
⚠️ Hati-hati, bagian yang sering salah
💥 Galat yang sengaja kamu buat untuk belajar membaca pesannya
✅ Titik periksa: pastikan ini berhasil sebelum lanjut
🧠 Pertanyaan pemahaman
🚀 Tantangan tambahan (opsional)
🩹 Kesalahan umum dan cara memperbaikinya

0.5Bentuk akhir folder proyek

Tidak perlu dihafal. Bab-bab berikutnya membangunnya sedikit demi sedikit. Yang bertanda ★ adalah berkas yang kamu tulis sendiri.

Teks
app-les/├── .env                              ← pengaturan (dibuat Laravel)├── app/│   ├── Http/Controllers/│   │   └── SiswaController.php   ★   ← logika CRUD│   └── Models/│       └── Siswa.php             ★   ← model tabel siswas├── database/│   ├── database.sqlite               ← database (dibuat otomatis)│   ├── migrations/│   │   └── ..._create_siswas_table.php ★│   └── seeders/│       └── SiswaSeeder.php       ★├── resources/views/                  ← dari Paket Starter│   ├── layouts/app.blade.php│   └── siswa/ (index, create, edit)├── routes/│   └── web.php                   ★   ← daftar URL└── tests/Feature/                    ← dari Paket Starter (35 test)

Alur satu permintaan

Semua fitur memakai alur yang sama. Begitu paham satu, kamu paham semuanya:

Perjalanan satu permintaan (request) di Laravel.Perjalanan satu permintaan (request) di Laravel.
Perjalanan satu permintaan (request) di Laravel.

Analogi rumah makan: Route adalah resepsionis yang mengarahkan tamu. Controller adalah pelayan yang mengatur pesanan. Model adalah juru gudang yang mengambil bahan. Database adalah gudangnya. View adalah piring yang disajikan.

0.6Istilah yang akan sering muncul

Istilah Arti
Route Aturan yang menghubungkan URL dengan method controller.
Controller Kelas PHP berisi method yang melayani permintaan.
Model Kelas PHP yang mewakili satu tabel database.
View / Blade Berkas HTML yang berisi tempat kosong untuk diisi data.
Migration Berkas kode yang mendefinisikan bentuk tabel.
Seeder Berkas kode yang mengisi data contoh.
Validasi Pemeriksaan data masuk sebelum disimpan.
CSRF Serangan yang memaksa pengguna mengirim formulir tanpa sadar; dicegah dengan token rahasia (@csrf).
Idempotent Aman dijalankan berkali-kali, hasilnya tetap sama.

Titik periksa Bab 0

Centang setiap butir yang sudah kamu selesaikan.

  • Saya bisa menjelaskan dengan kalimat sendiri apa aplikasi yang akan dibangun dan siapa penggunanya.
  • Saya sudah menandai di permintaan Bu Rina: bagian tambah, lihat, ubah, hapus, dan satu aturan validasi.
  • Saya bisa menyebut urutan 6 langkah alur satu permintaan tanpa melihat catatan.
  • Saya tahu isi Paket Starter dan bagian mana yang saya ketik sendiri.

Pertanyaan pemahaman

  1. Di permintaan Bu Rina, kalimat mana yang menjadi aturan validasi? Menurutmu, bagaimana cara memastikan aturan itu selalu berlaku?
  2. Apa bedanya Model dan View?
  3. Gambar di kertas: alur permintaan dari browser sampai kembali ke browser, dengan kata-katamu sendiri.

➡️ Lanjut ke Bab 1 — Persiapan Alat dan Proyek Kosong.

Tutorial Data Siswa Les — Laravel CRUD untuk les privat.

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