Kelas ini mengajak kamu belajar PHP dari benar-benar nol, mulai dari instalasi tools hingga membuat aplikasi sederhana yang terhubung ke database MySQL. Cocok untuk pemula tanpa pengalaman coding sama sekali, dengan penjelasan konsep memakai analogi sederhana dan latihan kode praktis di tiap modul.
PHP itu bahasa pemrograman yang kodenya dijalankan di server, bukan langsung dibaca browser seperti HTML. Server adalah komputer (atau program) yang tugasnya "mengolah" kode lalu mengirim hasilnya ke browser. Karena itu, sebelum bisa mencoba kode PHP, kamu butuh 3 hal: (1) server lokal untuk menjalankan PHP di komputermu sendiri, (2) text editor untuk menulis kode, dan (3) browser untuk melihat hasilnya.
Bayangkan kamu mau masak: butuh dapur (server), resep ditulis di kertas (text editor), dan piring untuk menyajikan (browser). Ketiganya wajib ada sebelum "masak" kode PHP pertamamu.
XAMPP adalah paket aplikasi gratis yang isinya server Apache, PHP, dan MySQL sekaligus, jadi kamu tidak perlu install satu-satu secara manual.
apachefriends.org sesuai sistem operasimu (Windows/Mac/Linux).Cek server berhasil jalan dengan membuka browser lalu ketik localhost di address bar. Kalau muncul halaman selamat datang XAMPP, berarti sukses.
Semua file PHP yang mau dijalankan lewat localhost harus disimpan di folder khusus:
C:\xampp\htdocs\/Applications/XAMPP/htdocs/Buat folder baru di dalam htdocs untuk proyek belajarmu, misalnya beri nama belajar-php.
Text editor adalah aplikasi untuk menulis kode (bukan Notepad biasa atau Microsoft Word, karena keduanya tidak dirancang untuk membaca struktur kode).
Rekomendasi untuk pemula: Visual Studio Code (VS Code), gratis dan ringan. Download di code.visualstudio.com, install seperti biasa.
Setelah terinstall, buka VS Code lalu buka folder belajar-php yang tadi kamu buat di htdocs (menu File > Open Folder). Dari sini kamu bisa membuat file-file PHP langsung di dalam VS Code.
Sekarang saatnya membuktikan semua sudah terhubung dengan benar. Buat file baru di folder belajar-php, beri nama index.php, lalu tulis kode berikut:
<?php
echo "Halo, server lokal saya sudah jalan!";
?>
Simpan file, lalu buka browser dan akses:
http://localhost/belajar-php/index.php
Kalau muncul tulisan "Halo, server lokal saya sudah jalan!" di browser, artinya XAMPP, folder, dan file PHP-mu sudah terhubung dengan benar. Selamat, lingkungan belajarmu siap!
.php, atau diakses tanpa lewat localhost (misal dibuka langsung dari File Explorer).Kerjakan langkah-langkah berikut sebagai bukti setup-mu berhasil:
latihan1.php di folder belajar-php.echo "Nama saya Budi, sedang belajar PHP Dasar";http://localhost/belajar-php/latihan1.phpDi modul sebelumnya kamu sudah install XAMPP dan berhasil menjalankan server lokal. Tapi sebelum kita mulai menulis kode, penting untuk paham dulu apa itu PHP dan kenapa website butuh "bahasa" seperti ini. Kalau konsepnya sudah nyantol, nulis kodenya bakal jauh lebih masuk akal.
Bayangkan kamu punya dua jenis toko:
Website statis adalah website yang isinya tetap sama untuk semua pengunjung, dibuat hanya dengan HTML dan CSS. Website statis itu seperti katalog cetak — file HTML sudah jadi, browser tinggal menampilkan apa adanya, tidak ada "logika" atau perhitungan yang jalan di baliknya.
Website dinamis adalah website yang isinya bisa berubah-ubah tergantung kondisi, seperti data dari database atau input pengguna. Ini seperti toko dengan pelayan — ada "otak" yang memproses sesuatu sebelum menampilkan hasil ke pengunjung. Contoh: halaman profil Instagram kamu beda dengan punya orang lain, padahal strukturnya (layout) sama. Yang bikin beda adalah data yang diproses di belakang layar.
Nah, PHP adalah salah satu bahasa yang berperan sebagai "otak" atau "pelayan" itu.
PHP (PHP: Hypertext Preprocessor) adalah bahasa pemrograman yang dijalankan di server untuk menghasilkan konten HTML secara dinamis sebelum dikirim ke browser pengunjung.
Kata kuncinya di sini: dijalankan di server. Ini beda dengan JavaScript (di browser) yang jalan di komputer pengunjung. PHP jalan duluan di server, baru hasilnya (berupa HTML biasa) dikirim ke browser. Pengunjung website tidak pernah melihat kode PHP-mu — mereka cuma menerima "hasil olahannya".
Supaya lebih jelas, ini yang terjadi setiap kali seseorang membuka halaman web yang pakai PHP:
tokobaju.com/produk.php, lalu browser mengirim permintaan (request) ke server..php, jadi harus diproses dulu, bukan langsung dikirim.Ini sebabnya, waktu kamu klik "View Page Source" di browser pada halaman PHP, kamu tidak akan pernah melihat kode PHP-nya — yang kelihatan cuma HTML hasil olahan.
Ingat di modul 1 kita install XAMPP? Sekarang harusnya lebih jelas alasannya: karena PHP butuh server untuk dieksekusi, tidak bisa dibuka langsung dengan cara klik dua kali file seperti file HTML biasa. XAMPP menyediakan Apache (software server) di komputer kamu sendiri, jadi kamu bisa simulasikan proses "request-proses-response" tadi tanpa perlu sewa hosting dulu.
Kalau kamu coba buka file .php langsung dari File Explorer (double click), yang muncul di browser cuma kode mentahnya, bukan hasil olahannya — karena tidak ada server yang memprosesnya. Makanya file PHP harus diakses lewat alamat localhost/..., bukan dibuka langsung dari folder.
Sekarang saatnya membuktikan sendiri konsep "diproses di server" tadi. Ikuti langkah berikut:
htdocs di instalasi XAMPP kamu (biasanya di C:\xampp\htdocs).coba.php, lalu isi dengan kode berikut (tidak usah paham dulu sintaksnya, itu bahasan modul selanjutnya):<!DOCTYPE html>
<html>
<body>
<h1>Sekarang jam segini:</h1>
<p><?php echo date("H:i:s"); ?></p>
</body>
</html>
http://localhost/coba.php di browser.coba.php, bukan lewat localhost). Perhatikan apa yang terjadi — apakah tampilannya sama atau malah aneh?Pertanyaan renungan: kenapa jamnya bisa berubah-ubah tiap refresh padahal file-nya tidak pernah kamu edit? Dan kenapa hasilnya beda saat dibuka langsung vs lewat localhost? Coba jawab dengan bahasamu sendiri berdasarkan penjelasan "cara kerja" di atas — ini akan jadi dasar penting sebelum kamu masuk ke sintaks PHP di modul berikutnya.
Di modul sebelumnya kamu sudah paham konsep PHP dan cara kerja website dinamis. Sekarang saatnya kotor-kotoran tangan: nulis kode PHP beneran. Modul ini fokus ke "aturan main" dasar nulis PHP — anggap saja ini tata bahasa yang wajib kamu ikuti supaya PHP mengerti maksudmu.
Setiap kode PHP harus diapit tag khusus supaya server tahu "ini area kode PHP, bukan HTML biasa":
<?php
// kode PHP kamu di sini
?>
Kalau file kamu isinya PHP murni (tanpa campuran HTML), tag penutup ?> boleh dihilangkan. Ini malah jadi kebiasaan baik untuk menghindari error "output tak terduga" yang sering muncul karena ada spasi/enter nyasar setelah tag penutup.
Statement adalah satu instruksi/perintah lengkap dalam kode. Di PHP, setiap statement harus diakhiri titik koma ; — mirip titik di akhir kalimat.
<?php
echo "Halo dunia";
echo "Ini statement kedua";
?>
Lupa titik koma adalah penyebab error paling umum buat pemula. Kalau muncul error aneh, cek dulu titik komanya!
echo adalah perintah untuk menampilkan teks/data ke layar browser. Ini yang paling sering kamu pakai:
<?php
echo "Selamat belajar PHP!";
echo "Baris kedua", " ", "digabung koma";
?>
echo bisa menerima banyak nilai sekaligus dipisah koma. Ada juga print yang fungsinya mirip, bedanya print cuma bisa satu nilai dan sedikit lebih lambat (perbedaannya sangat kecil, jarang berpengaruh). Untuk pemula, pakai echo saja sudah cukup.
Komentar adalah teks dalam kode yang tidak dieksekusi, biasa dipakai untuk memberi catatan atau menonaktifkan sementara suatu baris kode.
<?php
// Ini komentar satu baris
# Ini juga komentar satu baris (gaya lain)
/*
Ini komentar
banyak baris
*/
echo "Kode tetap jalan";
?>
PHP itu case-sensitive untuk nama variabel — artinya $nama dan $Nama dianggap dua hal berbeda. Tapi nama fungsi/keyword seperti echo, ECHO, atau Echo semuanya dianggap sama. Supaya konsisten dan gampang dibaca, biasakan tulis keyword dengan huruf kecil.
PHP tidak peduli berapa banyak spasi, tab, atau baris baru yang kamu pakai antar statement. Ini artinya kamu bebas mengatur format kode supaya rapi dan enak dibaca, tanpa mempengaruhi hasil program.
<?php
echo "Sama saja hasilnya";
echo "Meski" , "spasinya" , "berantakan";
?>
Salah satu kekuatan PHP adalah bisa "meloncat" keluar-masuk dari mode HTML ke mode PHP dalam satu file:
<!DOCTYPE html>
<html>
<body>
<h1>Website Pertamaku</h1>
<p>
<?php echo "Halaman ini dibuat pakai PHP!"; ?>
</p>
</body>
</html>
Bagian di luar tag <?php ?> akan dianggap teks/HTML biasa dan langsung dikirim ke browser apa adanya.
<?php dan ?>;echo untuk menampilkan output//, #, atau /* ... */Buat file baru di folder htdocs (atau folder server lokal kamu) bernama latihan3.php, lalu:
<h1> dengan teks "Profil Saya".echo untuk menampilkan nama lengkapmu dalam tag <p>.echo lagi untuk menampilkan hobi kamu, tapi sengaja hilangkan titik koma di akhirnya — jalankan di browser, lihat error apa yang muncul.echo yang menjelaskan baris itu untuk apa.Jalankan file lewat browser (misalnya http://localhost/latihan3.php) dan pastikan tidak ada error tersisa sebelum lanjut ke modul berikutnya.
Variabel adalah tempat menyimpan nilai di dalam program yang bisa dipanggil ulang menggunakan sebuah nama. Bayangkan variabel seperti kotak berlabel — kamu simpan sesuatu di dalamnya, lalu bisa ambil atau ganti isinya kapan saja cukup dengan menyebut labelnya.
Di PHP, semua variabel diawali tanda dolar ($) diikuti nama variabel. Contoh:
<?php
$nama = "Budi";
$umur = 25;
echo "Nama saya $nama, umur $umur tahun";
?>
Perhatikan, di dalam string yang pakai tanda kutip ganda ("..."), variabel seperti $nama akan otomatis diganti dengan isinya. Ini disebut string interpolation — teknik menyisipkan nilai variabel langsung ke dalam teks. Kalau kamu pakai tanda kutip tunggal ('...'), interpolasi ini tidak berlaku, variabel akan dianggap teks biasa.
_), tidak boleh angka. Contoh salah: $1nama.$nama_lengkap, bukan $nama lengkap.$Nama dan $nama dianggap dua variabel berbeda.$hargaBarang daripada $x.Variabel di PHP juga bersifat dinamis, artinya kamu tidak perlu menentukan tipe datanya di awal — tipe data akan otomatis mengikuti nilai yang disimpan, dan bisa berubah kalau nilainya diganti.
<?php
$data = "Halo"; // sekarang bertipe string
$data = 100; // sekarang berubah jadi integer
?>
Tipe data adalah kategori yang menentukan jenis nilai apa yang bisa disimpan sebuah variabel dan operasi apa saja yang bisa dilakukan padanya. Berikut tipe data dasar yang paling sering dipakai:
String adalah tipe data untuk teks, ditulis di antara tanda kutip tunggal atau ganda.
$kota = "Jakarta";
$pesan = 'Selamat datang';
Integer adalah tipe data untuk bilangan bulat, tanpa desimal, bisa positif atau negatif.
$umur = 25;
$suhu = -5;
Float adalah tipe data untuk bilangan pecahan/desimal.
$harga = 15000.50;
$pi = 3.14;
Boolean adalah tipe data yang hanya punya dua nilai: true (benar) atau false (salah), biasa dipakai untuk pengambilan keputusan dalam program.
$sudahLogin = true;
$isError = false;
Array adalah tipe data yang bisa menyimpan banyak nilai sekaligus dalam satu variabel. Topik ini akan dibahas lebih dalam di modul khusus, tapi contoh sederhananya:
$buah = ["Apel", "Jeruk", "Mangga"];
NULL adalah tipe data khusus yang menandakan variabel tidak memiliki nilai sama sekali.
$data = null;
Kamu bisa mengecek tipe data sebuah variabel dengan fungsi var_dump(), yang menampilkan nilai sekaligus tipe datanya:
<?php
$angka = 10;
var_dump($angka); // output: int(10)
?>
Konstanta adalah tempat penyimpanan nilai yang sekali didefinisikan, nilainya tidak bisa diubah lagi sepanjang program berjalan. Berguna untuk nilai tetap seperti nama aplikasi atau tarif pajak. Konstanta didefinisikan dengan fungsi define() dan penamaannya konvensinya huruf kapital semua:
<?php
define("NAMA_APLIKASI", "Toko Online");
echo NAMA_APLIKASI; // tidak pakai tanda $
?>
Buat file baru bernama biodata.php, lalu:
$nama, $umur, $tinggiBadan (pakai angka desimal), dan $sudahMenikah (pakai boolean), isi dengan data dirimu sendiri.echo dan string interpolation, contoh: "Nama saya Budi, umur 25 tahun, tinggi 170.5 cm, status menikah: belum".NAMA_APLIKASI dengan nilai bebas, lalu tampilkan di baris terpisah menggunakan echo.var_dump($tinggiBadan) di akhir kode, jalankan di browser, lalu amati tipe data apa yang muncul.Coba juga ubah nilai $sudahMenikah jadi angka 1 atau string "true", lalu lihat apa yang berubah dari hasil var_dump()-nya. Ini akan membantumu memahami bagaimana PHP menentukan tipe data secara otomatis.
Di modul sebelumnya kamu sudah belajar menyimpan data ke dalam variabel. Sekarang saatnya membuat data itu "bekerja" — dihitung, dibandingkan, atau digabungkan. Alat untuk melakukan itu namanya operator, yaitu simbol khusus yang memerintahkan PHP untuk melakukan operasi tertentu pada satu atau lebih nilai. Gabungan antara nilai dan operator disebut ekspresi — misalnya 5 + 3 adalah ekspresi yang hasilnya 8.
Ini operator untuk perhitungan matematika biasa.
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13 (penjumlahan)
echo $a - $b; // 7 (pengurangan)
echo $a * $b; // 30 (perkalian)
echo $a / $b; // 3.333... (pembagian)
echo $a % $b; // 1 (modulus/sisa bagi)
echo $a ** $b; // 1000 (pangkat, 10 pangkat 3)
?>
Modulus (%) sering bikin bingung pemula. Cara mudah mengingatnya: ini menghasilkan sisa dari pembagian. Contoh: 10 dibagi 3 = 3 sisa 1, maka 10 % 3 hasilnya 1. Operator ini sangat berguna nanti untuk mengecek angka genap/ganjil.
Selain = biasa, PHP punya versi singkat untuk "ubah nilai lalu simpan lagi ke variabel yang sama".
<?php
$skor = 10;
$skor += 5; // sama dengan: $skor = $skor + 5; → 15
$skor -= 3; // sama dengan: $skor = $skor - 3; → 12
$skor *= 2; // sama dengan: $skor = $skor * 2; → 24
$skor /= 4; // sama dengan: $skor = $skor / 4; → 6
$nama = "Budi";
$nama .= " Santoso"; // gabung string, hasil: "Budi Santoso"
?>
Bentuk singkat ini sering dipakai, misalnya untuk menambah skor game atau menghitung total belanja sedikit demi sedikit.
Operator ini membandingkan dua nilai dan hasilnya selalu berupa boolean (true atau false).
== — sama nilainya (tipe data diabaikan)=== — sama nilai dan sama tipe datanya!= atau <> — tidak sama nilainya!== — tidak sama nilai atau tidak sama tipe>, < — lebih besar / lebih kecil>=, <= — lebih besar sama dengan / lebih kecil sama denganPerbedaan == dan === ini penting banget dan sering jadi sumber bug bagi pemula:
<?php
var_dump(5 == "5"); // true → nilai sama, tipe diabaikan
var_dump(5 === "5"); // false → nilai sama, tapi tipe beda (int vs string)
?>
Aturan praktis: biasakan pakai === supaya kode kamu lebih ketat dan mengurangi bug yang tidak terduga, kecuali kamu punya alasan khusus untuk membiarkan PHP mengabaikan perbedaan tipe.
Dipakai untuk menggabungkan beberapa kondisi perbandingan sekaligus.
&& (and) — true jika kedua kondisi benar|| (or) — true jika salah satu kondisi benar! (not) — membalik nilai boolean<?php
$umur = 20;
$punya_ktp = true;
var_dump($umur >= 17 && $punya_ktp); // true, karena keduanya benar
var_dump($umur < 17 || $punya_ktp); // true, karena minimal satu benar
var_dump(!$punya_ktp); // false, karena membalik true jadi false
?>
Kamu akan sering memakai operator logika ini bersama percabangan if di modul berikutnya, misalnya untuk mengecek "apakah user boleh login" (username benar DAN password benar).
Sama seperti matematika biasa, perkalian dan pembagian dikerjakan lebih dulu daripada penjumlahan dan pengurangan. Kalau ragu, gunakan tanda kurung () supaya urutannya jelas dan kode lebih mudah dibaca.
<?php
echo 2 + 3 * 4; // 14, bukan 20 (perkalian didahulukan)
echo (2 + 3) * 4; // 20, karena kurung dikerjakan dulu
?>
Buat file baru latihan-operator.php, lalu kerjakan langkah-langkah berikut secara berurutan:
$harga = 25000; dan $jumlah = 4;. Hitung $total = $harga * $jumlah; lalu tampilkan dengan echo.$dapat_diskon = $total > 90000; lalu cetak hasilnya dengan var_dump().$uang_dibayar = 100000;. Hitung kembaliannya dengan $kembalian = $uang_dibayar - $total;, lalu tampilkan.% untuk mengecek apakah $jumlah barang yang dibeli habis dibagi 2 (genap) atau tidak. Simpan hasilnya di variabel $genap dan cetak dengan var_dump().Jalankan file ini lewat browser (pastikan server lokal via XAMPP sudah aktif, seperti yang dipelajari di modul 1) dan periksa apakah hasil perhitungannya sesuai dugaanmu.
Di modul sebelumnya kamu sudah bisa menyimpan data dan melakukan perhitungan/perbandingan dengan operator. Sekarang saatnya bikin program yang bisa "mikir" — bisa ambil keputusan berbeda tergantung kondisinya. Inilah fungsi struktur kontrol: bagian kode yang menentukan jalur mana yang dieksekusi berdasarkan kondisi tertentu.
Bayangkan kamu bikin aturan: "kalau hujan, bawa payung". Itu persis cara kerja if dalam PHP. Kode di dalam kurung kurawal { } cuma dijalankan kalau kondisinya bernilai true.
<?php
$nilai = 80;
if ($nilai >= 75) {
echo "Lulus!";
}
?>
Kalau $nilai kurang dari 75, baris echo di dalam blok itu tidak akan dijalankan sama sekali — program langsung lanjut ke baris setelah blok if.
else adalah "jalur cadangan" yang dijalankan kalau kondisi di if ternyata salah.
<?php
$nilai = 60;
if ($nilai >= 75) {
echo "Lulus!";
} else {
echo "Belum lulus, coba lagi.";
}
?>
Karena 60 tidak memenuhi syarat >= 75, yang tercetak adalah "Belum lulus, coba lagi."
Kalau kondisinya lebih dari dua pilihan, kamu bisa pakai elseif (atau else if) untuk menambah jalur pengecekan lain. PHP akan mengecek dari atas ke bawah, dan begitu satu kondisi terpenuhi, blok lain di bawahnya langsung diabaikan.
<?php
$nilai = 85;
if ($nilai >= 90) {
echo "Nilai: A";
} elseif ($nilai >= 80) {
echo "Nilai: B";
} elseif ($nilai >= 70) {
echo "Nilai: C";
} else {
echo "Nilai: D";
}
?>
Dengan $nilai = 85, PHP cek >= 90 dulu (salah), lalu >= 80 (benar) → cetak "Nilai: B", dan berhenti di situ tanpa mengecek kondisi di bawahnya lagi.
Kamu juga bisa menggabungkan beberapa syarat sekaligus pakai operator logika && (dan) dan || (atau) yang sudah dibahas di modul operator.
<?php
$umur = 20;
$punyaKTP = true;
if ($umur >= 17 && $punyaKTP) {
echo "Boleh membuat SIM.";
} else {
echo "Belum memenuhi syarat.";
}
?>
switch adalah bentuk lain dari percabangan, cocok dipakai kalau kamu membandingkan satu variabel dengan beberapa nilai pasti (bukan rentang angka). Strukturnya lebih rapi dibanding banyak elseif bertumpuk.
<?php
$hari = "Selasa";
switch ($hari) {
case "Senin":
echo "Hari pertama kerja.";
break;
case "Selasa":
echo "Semangat, masih awal minggu.";
break;
case "Jumat":
echo "Yeay, besok weekend!";
break;
default:
echo "Hari biasa.";
}
?>
Beberapa hal penting soal switch:
case adalah salah satu kemungkinan nilai yang dibandingkan dengan variabel di switch.break wajib ditulis di akhir tiap case agar PHP berhenti di situ. Kalau lupa, PHP akan "jatuh" (fallthrough) dan tetap menjalankan case di bawahnya meski tidak cocok.default adalah jalur yang dijalankan kalau tidak ada case yang cocok — mirip fungsi else pada if.Pakai if-elseif untuk kondisi berupa rentang angka atau logika gabungan (misal >=, &&). Pakai switch kalau kamu membandingkan satu variabel dengan beberapa nilai spesifik, karena lebih mudah dibaca.
Buat file PHP baru, lalu kerjakan dua tugas berikut:
$usia dengan nilai bebas (misalnya 15). Gunakan if-elseif-else untuk menentukan kategori tiket bioskop berdasarkan aturan berikut, lalu cetak hasilnya dengan echo:
$metodeBayar berisi salah satu dari: "tunai", "debit", "ewallet". Gunakan switch untuk mencetak pesan berbeda sesuai metode pembayaran tersebut (misalnya untuk "ewallet" cetak "Pembayaran via e-wallet, cek saldo dulu ya!"), dan sediakan default untuk metode yang tidak dikenali.Coba ubah-ubah nilai $usia dan $metodeBayar, lalu jalankan ulang di server lokalmu untuk memastikan setiap kemungkinan jalur kode sudah benar hasilnya.
Bayangkan kamu disuruh mencetak tulisan "Halo" sebanyak 100 kali. Pakai echo satu-satu? Capek dan kodenya jadi panjang banget. Di sinilah perulangan (loop) berguna — yaitu struktur kode yang menjalankan sekumpulan instruksi berulang kali secara otomatis selama kondisi tertentu masih terpenuhi.
Di PHP, ada tiga jenis perulangan yang paling sering dipakai: for, while, dan foreach. Masing-masing punya kegunaan yang paling pas tergantung situasinya.
forfor dipakai kalau kamu sudah tahu persis berapa kali perulangan harus jalan. Strukturnya punya 3 bagian: nilai awal, syarat berhenti, dan perubahan nilai di tiap putaran.
for ($i = 1; $i <= 5; $i++) {
echo "Perulangan ke-$i <br>";
}
Cara bacanya:
$i = 1 → nilai awal, dijalankan sekali di awal.$i <= 5 → syarat (kondisi). Selama ini bernilai true, loop terus jalan.$i++ → perubahan nilai, dijalankan setiap akhir putaran (di sini artinya $i ditambah 1).Output kode di atas akan mencetak "Perulangan ke-1" sampai "Perulangan ke-5". Begitu $i jadi 6, kondisi $i <= 5 bernilai false, loop berhenti.
whilewhile dipakai kalau kamu belum tahu pasti berapa kali loop harus jalan — yang penting selama kondisinya true, loop terus berjalan.
$saldo = 1000;
while ($saldo > 0) {
echo "Saldo tersisa: $saldo <br>";
$saldo -= 300;
}
Di sini loop akan terus berjalan sampai $saldo tidak lagi lebih dari 0. Hati-hati: kalau kamu lupa mengubah nilai variabel di dalam loop (misalnya lupa $saldo -= 300), loop akan jalan selamanya. Ini disebut infinite loop, salah satu bug paling umum buat pemula — biasanya ditandai browser atau terminal yang "hang" tidak merespons.
Ada juga do-while, yang menjalankan kode dulu minimal sekali, baru mengecek kondisinya belakangan.
$angka = 10;
do {
echo "Angka: $angka <br>";
$angka++;
} while ($angka < 5);
Meski $angka < 5 sudah false dari awal (karena $angka = 10), blok kode tetap jalan satu kali karena pengecekan baru dilakukan setelah eksekusi pertama.
foreachforeach dipakai khusus untuk menelusuri array (kumpulan data dalam satu variabel) — kamu akan belajar array lebih detail di modul berikutnya, tapi sekilas, array itu seperti satu kotak yang berisi banyak nilai sekaligus.
$buah = ["Apel", "Jeruk", "Mangga"];
foreach ($buah as $item) {
echo "Saya suka $item <br>";
}
foreach otomatis mengambil tiap elemen dari $buah satu per satu dan menyimpannya sementara ke variabel $item, tanpa kamu perlu repot mengatur index atau kondisi berhenti seperti di for.
Dua kata kunci penting yang sering dipakai di dalam loop:
break — menghentikan loop secara paksa, langsung keluar sepenuhnya.continue — melompati sisa kode di putaran saat itu, lanjut ke putaran berikutnya.for ($i = 1; $i <= 10; $i++) {
if ($i == 5) {
break; // loop berhenti total saat $i == 5
}
echo "$i <br>";
}
for ($i = 1; $i <= 5; $i++) {
if ($i == 3) {
continue; // lewati angka 3, lanjut ke $i berikutnya
}
echo "$i <br>";
}
for.while.foreach.Kerjakan langsung di file PHP kamu, jalankan lewat server lokal yang sudah kamu setup di modul 1:
for yang mencetak angka 1 sampai 20.% yang sudah kamu pelajari di modul 5, dikombinasikan dengan if).while loop yang mensimulasikan hitung mundur dari 10 ke 1, lalu mencetak "Meluncur!" setelah hitungan selesai.foreach untuk mencetak kalimat "Halo, [nama]!" untuk tiap nama.for dengan break untuk mencetak angka 1 sampai 100, tapi loop harus berhenti otomatis begitu angkanya habis dibagi 7 (misalnya berhenti di angka 7).Coba kerjakan semuanya sebelum lanjut ke modul berikutnya — perulangan adalah salah satu fondasi paling penting sebelum kamu masuk ke topik Function dan Array!
Bayangkan kamu sudah belajar perulangan di modul sebelumnya untuk mengecek apakah sebuah angka genap atau ganjil. Sekarang bayangkan kode pengecekan itu kamu butuhkan di 10 tempat berbeda dalam program. Masa harus copy-paste kode yang sama 10 kali? Kalau ada bug, kamu harus perbaiki di 10 tempat juga.
Function adalah blok kode yang diberi nama, bisa dipanggil berkali-kali tanpa perlu menulis ulang isinya. Anggap function seperti "mesin" — kamu masukkan bahan (input), mesin memprosesnya, lalu keluar hasil (output). Kamu tidak perlu tahu persis apa yang terjadi di dalam mesin setiap kali pakai, cukup tahu cara memasukkan bahan dan mengambil hasilnya.
Gunakan keyword function, lalu beri nama, kurung, dan isi kode di dalam kurung kurawal:
<?php
function sapa() {
echo "Halo, selamat datang!";
}
sapa(); // memanggil function
sapa(); // bisa dipanggil berkali-kali
?>
Baris sapa(); disebut memanggil (calling) function — artinya menyuruh PHP menjalankan kode di dalam function tersebut.
Parameter adalah variabel yang menampung data yang dikirim saat function dipanggil, ditulis di dalam kurung saat membuat function.
<?php
function sapa($nama) {
echo "Halo, $nama!";
}
sapa("Budi"); // Output: Halo, Budi!
sapa("Ani"); // Output: Halo, Ani!
?>
Data yang kamu kirim saat memanggil function (misalnya "Budi") disebut argumen. Istilah parameter dan argumen sering dipakai bergantian, tapi bedanya: parameter itu "wadah"-nya, argumen itu "isinya".
Function bisa punya lebih dari satu parameter:
<?php
function tampilkanBiodata($nama, $umur) {
echo "$nama berumur $umur tahun.";
}
tampilkanBiodata("Siti", 25);
?>
Kamu bisa memberi nilai bawaan kalau argumen tidak dikirim:
<?php
function sapa($nama = "Teman") {
echo "Halo, $nama!";
}
sapa(); // Output: Halo, Teman!
sapa("Rudi"); // Output: Halo, Rudi!
?>
echo di dalam function hanya menampilkan teks ke layar, tapi hasilnya tidak bisa diolah lagi. Untuk mengembalikan nilai yang bisa dipakai di luar function, gunakan return.
<?php
function tambah($a, $b) {
return $a + $b;
}
$hasil = tambah(5, 3);
echo $hasil; // Output: 8
echo tambah(10, 20) * 2; // Output: 60, hasil return bisa langsung dioperasikan
?>
Penting: begitu return dijalankan, function langsung berhenti. Kode setelah return di dalam function tidak akan dieksekusi.
<?php
function cekAngka($n) {
if ($n % 2 == 0) {
return "Genap";
}
return "Ganjil"; // hanya jalan kalau return di atas tidak dieksekusi
}
echo cekAngka(4); // Output: Genap
?>
Scope adalah batas area di mana sebuah variabel bisa diakses. Variabel yang dibuat di dalam function bersifat lokal — tidak bisa diakses dari luar function, dan sebaliknya.
<?php
function tes() {
$angka = 10;
echo $angka; // bisa diakses, Output: 10
}
tes();
echo $angka; // ERROR, $angka tidak dikenali di luar function
?>
Ini sebenarnya menguntungkan: kamu bisa pakai nama variabel yang sama di function berbeda tanpa saling bentrok/mempengaruhi.
Kamu bisa menentukan tipe data yang diharapkan untuk parameter dan return, supaya kode lebih jelas dan error lebih mudah dideteksi:
<?php
function tambah(int $a, int $b): int {
return $a + $b;
}
echo tambah(5, 3); // Output: 8
?>
Kalau kamu kirim tipe data yang salah (misalnya teks yang bukan angka), PHP akan memberi error — ini membantu menangkap kesalahan lebih awal daripada program berjalan dengan hasil yang aneh.
Buat file PHP baru, lalu kerjakan langkah berikut secara berurutan:
hitungLuasPersegiPanjang($panjang, $lebar) yang me-return hasil perkalian panjang dan lebar.echo, contoh: echo "Luas: " . hitungLuasPersegiPanjang(5, 3);hitungLuasPersegiPanjang($panjang, $lebar = 10) — beri nilai default untuk $lebar, lalu coba panggil function hanya dengan 1 argumen.cekGanjilGenap($angka) yang me-return string "Ganjil" atau "Genap" tergantung inputnya. Lalu gabungkan dengan perulangan for dari modul sebelumnya untuk mencetak status ganjil/genap dari angka 1 sampai 20.Coba kerjakan sendiri dulu sebelum lihat jawaban di bawah ini:
<?php
function cekGanjilGenap($angka) {
if ($angka % 2 == 0) {
return "Genap";
}
return "Ganjil";
}
for ($i = 1; $i <= 20; $i++) {
echo "$i: " . cekGanjilGenap($i) . "<br>";
}
?>
Di modul berikutnya, kita akan belajar array — cara menyimpan banyak data sekaligus dalam satu variabel, yang nantinya sering dipakai bareng function untuk mengolah data dalam jumlah besar.
Modul baru ditambahkan secara berkala hingga kelas ini lengkap. Simpan halaman ini dan kembali lagi untuk lanjut belajar.