Loop di PHP — PHP

PHP mendukung beberapa jenis loop. for loop: for ($i = 1; $i "Budi", "umur" => 25]; foreach ($user as $key => $value) { echo "$key: $value\n"; } foreach…

Loop (perulangan) menjalankan blok kode yang sama berkali-kali, dengan sesuatu yang berubah di tiap putaran. Bayangin Bu Tini memanggil antrean di Warung Bu Tini: "Antrean nomor 1! Antrean nomor 2! Antrean nomor 3!" Kalimatnya sama, cuma nomornya yang naik, dan dia berhenti begitu antreannya habis. Di PHP kamu gak menulis echo tiga kali: kamu menulis satu echo di dalam loop.

🧪 Tebakan cepat: for ($i = 0; $i < 3; $i++) { echo $i; } mencetak apa? Tebak dulu, jawabannya ada di bagian "for: ulang sebanyak yang kamu tentukan".

for: ulang sebanyak yang kamu tentukan

<?php
for ($nomor = 1; $nomor <= 3; $nomor++) {
    echo "Antrean nomor $nomor\n";
}
Antrean nomor 1
Antrean nomor 2
Antrean nomor 3

Kurung for berisi tiga bagian, dipisah titik koma:

Putaran $nomor $nomor <= 3 Yang terjadi
1 1 true cetak Antrean nomor 1, lalu $nomor jadi 2
2 2 true cetak Antrean nomor 2, lalu $nomor jadi 3
3 3 true cetak Antrean nomor 3, lalu $nomor jadi 4
- 4 false loop berhenti

Syaratnya dicek 4 kali untuk 3 baris output: cek terakhir yang false itulah yang menghentikan loop. Di tebakan tadi, $i mulai dari 0 dan $i < 3 berhenti sebelum 3, dan gak ada spasi atau "\n", jadi yang tercetak 012. Itu jawaban tebakannya.

while: ulang selama syaratnya benar

<?php
$stok = 3;

while ($stok > 0) {
    echo "Sisa stok: $stok\n";
    $stok--;
}
echo "Nasi goreng habis!\n";
Sisa stok: 3
Sisa stok: 2
Sisa stok: 1
Nasi goreng habis!
Fatal error: Maximum execution time of 30 seconds exceeded in /app/warung.php on line 5

Pakai for kalau jumlah putarannya sudah jelas, while kalau kamu cuma tahu kapan harus berhenti.

foreach: telusuri isi array satu per satu

<?php
$menu = ["Nasi Goreng", "Mie Ayam", "Es Teh"];

foreach ($menu as $nama) {
    echo $nama . "\n";
}

foreach mengambil isi $menu satu per satu dari depan. Di tiap putaran, $nama berisi elemen yang sedang diproses: "Nasi Goreng", lalu "Mie Ayam", lalu "Es Teh". Loop berhenti sendiri saat elemennya habis, jadi gak ada syarat yang bisa salah tulis. Karena itu foreach paling sering dipakai untuk array.

Kalau key-nya juga dibutuhkan, tulis $key => $value:

<?php
$harga = ["Nasi Goreng" => 15000, "Mie Ayam" => 12000, "Es Teh" => 5000];

foreach ($harga as $nama => $h) {
    echo "$nama: Rp$h\n";
}
Nasi Goreng: Rp15000
Mie Ayam: Rp12000
Es Teh: Rp5000

Di array biasa (indexed), key-nya nomor urut 0, 1, 2.

break dan continue

<?php
$harga = ["Nasi Goreng" => 15000, "Mie Ayam" => 12000, "Es Teh" => 5000, "Kerupuk" => 2000];

foreach ($harga as $nama => $h) {
    if ($nama === "Mie Ayam") {
        continue; // Mie Ayam habis: lewati, lanjut ke putaran berikutnya
    }
    if ($h < 5000) {
        break; // berhenti total, sisa elemen gak diproses
    }
    echo "$nama: Rp$h\n";
}
Nasi Goreng: Rp15000
Es Teh: Rp5000

⚠️ Jebakan yang sering ketemu

TL;DR: for (awal; syarat; langkah) untuk jumlah putaran yang jelas: syaratnya dicek sebelum tiap putaran, dan cek terakhir yang false menghentikannya. while (syarat) untuk "selama", dan isinya harus mengubah sesuatu supaya syaratnya suatu saat false. foreach ($array as $nilai) atau foreach ($array as $key => $nilai) menelusuri array sampai habis. continue melompati satu putaran, break keluar dari loop. Cetak "\n" supaya tiap hasil punya barisnya sendiri.

Yang akan kamu pelajari