Day 1 · Fondasi

Day 1 — Fondasi PHP & Struktur Laravel

Hari ini Bu Andri akan memahami bahan dasar Laravel: sedikit PHP, cara sebuah halaman web bekerja, lalu mengenali “ruangan-ruangan” di dalam proyek Laravel.

⏱️ 3–4 jam🌱 Pemula total⌨️ Ada praktik🎯 Hasil: proyek pertama

Target Belajar Hari Ini

Selamat datang, Bu Andri! Tidak perlu menghafal semuanya. Target hari pertama hanya memahami gambaran besar dan berani mencoba. Anggap Laravel seperti tata usaha digital: setiap berkas punya tempat dan setiap permintaan punya alur.

  • Mengenali variabel, array, percabangan, perulangan, dan function di PHP.
  • Memahami class dan object dengan analogi data siswa.
  • Membuat serta menjalankan proyek Laravel pertama.
  • Tahu fungsi folder penting tanpa harus menghafal seluruh folder.
  • Menjalankan kode PHP langsung di playground halaman ini.
💡 Pola belajar 30–10Belajar 30 menit, lalu istirahat 10 menit. Setelah membaca satu contoh, ketik ulang dan ubah datanya. Kesalahan ketik adalah bagian normal dari belajar.

Sebelum PHP: Bagaimana Halaman Web Bekerja?

Saat Bu Andri membuka halaman daftar siswa, browser mengirim request (permintaan) ke server. Server menjalankan PHP/Laravel, mengambil data bila perlu, lalu mengirim response (jawaban) berupa HTML.

1. BrowserMinta /siswa
→
2. LaravelMemproses alamat
→
3. DatabaseMengambil data
→
4. ResponseDaftar tampil
✅ Ingat satu kalimatBrowser meminta, Laravel mengatur, database menyimpan, lalu browser menampilkan hasil.

1. Refresh PHP Dasar

Variabel: kotak yang diberi nama

Variabel menyimpan nilai sementara. Di PHP, nama variabel selalu diawali tanda dolar $, dan perintah biasanya diakhiri titik koma ;.

PHP — variabel dan teks
<?php
$nama = "Andri";
$jabatan = "Staf Tata Usaha";
$tahunMasuk = 2024;

// Titik (.) dipakai untuk menyambung teks
echo "Nama: " . $nama . PHP_EOL;
echo "Jabatan: " . $jabatan . PHP_EOL;
echo "Tahun masuk: " . $tahunMasuk;

Array: satu kotak berisi banyak data

Array cocok untuk daftar. Array asosiatif memakai label, sehingga nama lebih mudah dipahami daripada sekadar nomor urut.

PHP — array data siswa
<?php
$siswa = [
    ["nama" => "Alya", "kelas" => "7A", "aktif" => true],
    ["nama" => "Bima", "kelas" => "7B", "aktif" => false],
    ["nama" => "Citra", "kelas" => "7A", "aktif" => true],
];

echo $siswa[0]["nama"]; // Alya

Percabangan dan perulangan

if membantu program memilih tindakan. foreach mengerjakan tindakan yang sama untuk setiap data.

PHP — if + foreach
<?php
$nilai = 82;

if ($nilai >= 75) {
    echo "Status: Lulus" . PHP_EOL;
} else {
    echo "Status: Perlu remedial" . PHP_EOL;
}

$mapel = ["Matematika", "Bahasa Indonesia", "IPA"];
foreach ($mapel as $nomor => $namaMapel) {
    echo ($nomor + 1) . ". " . $namaMapel . PHP_EOL;
}
⚠️ Kesalahan yang sering terjadi= berarti mengisi nilai, sedangkan == atau === berarti membandingkan. Untuk kebiasaan aman, gunakan === saat tipe datanya harus sama.

2. Function, Class, dan Object

Function: prosedur yang bisa dipakai ulang

Bayangkan function sebagai formulir otomatis: masukkan nama dan nilai, lalu function mengembalikan kalimat hasil.

PHP — function sederhana
<?php
function buatStatus(string $nama, int $nilai): string
{
    $status = $nilai >= 75 ? "lulus" : "remedial";
    return "$nama dinyatakan $status (nilai: $nilai).";
}

echo buatStatus("Alya", 88);

Class = cetakan, object = hasil cetakan

📄 Class

Seperti format kosong kartu siswa: menentukan kolom dan kemampuan yang tersedia.

👩‍🎓 Object

Seperti satu kartu yang sudah diisi untuk seorang siswa tertentu.

PHP — OOP dasar
<?php
class Siswa
{
    public function __construct(
        public string $nama,
        public string $kelas
    ) {}

    public function perkenalan(): string
    {
        return "Saya {$this->nama} dari kelas {$this->kelas}.";
    }
}

$alya = new Siswa("Alya", "7A");
echo $alya->perkenalan();

Laravel banyak memakai class: Controller, Model, Middleware, dan lainnya. Belum perlu menguasai OOP hari ini—cukup kenali bahwa new Siswa(...) membuat object dari class Siswa.

3. Membuat Proyek Laravel Pertama

Pastikan alatnya tersedia

Buka Terminal (macOS/Linux) atau PowerShell (Windows), lalu jalankan satu per satu:

php --version
composer --version

Untuk Laravel modern, gunakan PHP 8.2 atau lebih baru. Jika perintah belum dikenali, pasang Laravel Herd agar PHP dan Composer tersedia dengan lebih mudah.

Buat dan jalankan proyek

Terminal / PowerShell
# Membuat project bernama sekolah-app
composer create-project laravel/laravel sekolah-app

# Masuk ke folder project
cd sekolah-app

# Jalankan server lokal
php artisan serve

Buka http://127.0.0.1:8000. Jika halaman Laravel muncul, proyek pertama Bu Andri sudah berhasil! Hentikan server dengan Ctrl + C.

🛠️ Apa itu Artisan?php artisan adalah asisten perintah Laravel. Coba php artisan list untuk melihat tugas yang bisa dibantu, misalnya membuat controller atau menjalankan database migration.
Jika port 8000 sedang dipakaiJalankan php artisan serve --port=8001, kemudian buka http://127.0.0.1:8001.

4. Peta Folder Laravel

Jangan menghafal semua folder. Untuk minggu pertama, fokus pada bagian berwarna merah berikut.

LokasiAnalogi sekolahContoh isi
routes/web.phpBuku daftar loketAlamat /siswa diarahkan ke mana
app/Http/ControllersPetugas tata usahaMenerima permintaan dan menyiapkan data
app/ModelsPetugas arsipMembaca/menulis data siswa
resources/viewsPapan pengumumanHTML/Blade yang dilihat pengguna
publicGerbang depanindex.php, gambar, file publik
.envLemari berkunciPassword database dan pengaturan server
🔒 Sangat pentingJangan pernah mengirim file .env ke GitHub atau grup chat. File itu dapat berisi kata sandi database dan kunci aplikasi. Laravel sudah memasukkannya ke .gitignore.

5. Praktik Mini: Route Pertama

Buka routes/web.php, lalu tambahkan route berikut. Route adalah aturan: “kalau alamat ini diminta, berikan jawaban itu.”

routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/halo', function () {
    return '<h1>Halo, Bu Andri!</h1><p>Route pertama berhasil.</p>';
});

Route::get('/siswa/{nama}', function (string $nama) {
    return "Data siswa: " . htmlspecialchars($nama);
});

Dengan server masih berjalan, buka http://127.0.0.1:8000/halo, lalu coba http://127.0.0.1:8000/siswa/Alya.

❓ Mengapa routes/web.php bukan tempat semua logika?

Route sebaiknya hanya menjadi penunjuk arah. Pada aplikasi nyata, logika dipindah ke Controller agar kode mudah dibaca, diuji, dan dirawat. Kita akan mempelajarinya pada Day 2.

❓ Mengapa contoh memakai htmlspecialchars()?

Agar teks dari URL tidak dianggap sebagai HTML berbahaya. Di Blade nanti, sintaks {{ $nama }} melakukan pengamanan ini secara otomatis.

Playground PHP — Coba Langsung

Playground ini menjalankan PHP sungguhan di browser memakai WebAssembly (php-wasm). Kode tetap berada di perangkat Bu Andri dan tidak dikirim ke server kami.

🐘 PHP PlaygroundMemuat mesin PHP…
Hasil
Mesin PHP sedang disiapkan…
Tip: tekan Ctrl + Enter untuk menjalankan. Proses pertama mungkin butuh beberapa detik.

Latihan Mandiri & Checklist Selesai

Latihan A — di playground

  1. Ubah nama pada contoh “Variabel” menjadi nama Bu Andri sendiri.
  2. Pilih contoh “Array & foreach”, lalu tambahkan satu nama siswa.
  3. Pilih contoh “Function nilai”, lalu ubah nilai agar hasil berubah menjadi remedial.
  4. Buat variabel $sekolah dan tampilkan dengan echo.

Latihan B — di proyek Laravel

  1. Buat proyek sekolah-app dan jalankan servernya.
  2. Buat route /profil-sekolah yang menampilkan nama sekolah.
  3. Buat route dinamis /kelas/{nama} yang menampilkan nama kelas.
  4. Cari folder app, resources/views, routes, dan file .env lewat VS Code.

🎉 Day 1 Selesai jika…

Proyek Laravel tampil di browser, route /halo berhasil, dan Bu Andri bisa menjelaskan fungsi routes, app, views, public, serta .env dengan kata-kata sendiri.