Perulangan (loop) menjalankan kode yang sama berkali-kali tanpa kamu menulisnya berulang. Mau mencetak angka 1 sampai 100, atau menjumlahkan semua harga di keranjang belanja? Itu kerjaan loop. Satu kali jalannya isi loop disebut satu putaran (iterasi).
🧪 Tebakan cepat:
for (let i = 0; i < 3; i++)jalan berapa putaran: 2, 3, atau 4? Tebak dulu, jawabannya ada di bagian "Loop for".
Loop for
for (let i = 1; i <= 3; i++) {
console.log("Iterasi " + i);
}
// Iterasi 1
// Iterasi 2
// Iterasi 3
Di dalam kurung for ada tiga bagian, dipisah titik koma:
let i = 1jalan sekali di awal: bikin penghitungiyang mulai dari 1.i <= 3adalah syaratnya, dicek sebelum tiap putaran. Selamatrue, isi{ }dijalankan. Begitufalse, loop berhenti.i++jalan di akhir tiap putaran: menambahidengan 1.
Isi { } adalah kode yang diulang. Di putaran keempat, i sudah 4, 4 <= 3 itu false, jadi loop berhenti.
Banyak loop mulai dari 0 dan pakai <: for (let i = 0; i < 3; i++) jalan untuk i = 0, 1, 2, jadi tiga putaran. Jawaban tebakan: 3. Pakai <= kalau angka terakhirnya mau ikut, < kalau gak.
Loop while
let i = 1;
while (i <= 3) {
console.log("Iterasi " + i);
i++;
}
Hasilnya sama persis. while cuma punya syarat, jadi penghitungnya dibuat sebelum loop dan ditambah di dalam loop. Kalau i++ lupa ditulis, syaratnya selalu true dan loop gak pernah berhenti, halamannya macet.
Mengumpulkan hasil loop
const hasil = [];
let total = 0;
for (let i = 1; i <= 4; i++) {
hasil.push(i * 10);
total += i;
}
console.log(hasil); // [10, 20, 30, 40]
console.log(total); // 10
[]adalah array kosong, daftar yang belum ada isinya.hasil.push(...)menambah satu isi ke akhir array itu.totalmulai dari 0.total += isama dengantotal = total + i: tiap putaran, angkanya ditambahkan ke total (0 + 1 + 2 + 3 + 4).console.logditulis sesudah}, jadi baru jalan setelah loop selesai.
Di dalam function, return juga ditaruh sesudah loop. return di dalam loop langsung menghentikan function di putaran pertama.
for...of: isi array satu per satu
const buah = ["apel", "jeruk", "mangga"];
for (const item of buah) {
console.log(item);
}
// apel
// jeruk
// mangga
for...of langsung memberi nilai tiap isi, tanpa penghitung. Ada juga for...in, tapi untuk array dia memberi index-nya sebagai teks ("0", "1", "2"), bukan nilainya.
break dan continue
for (let i = 1; i <= 5; i++) {
if (i === 2) continue;
if (i === 4) break;
console.log(i);
}
// 1
// 3
continuemelewati sisa putaran ini, lalu lanjut ke putaran berikutnya. Angka 2 gak tercetak.breakmenghentikan loop sepenuhnya. Angka 4 dan 5 gak pernah tercetak.
⚠️ Jebakan yang sering ketemu
constdi loopfor.for (const i = 0; i < 3; i++)error, karenai++mengubahi. Penghitung pakailet.- Total tanpa nilai awal.
let total;lalutotal += ihasilnyaNaN(bukan angka). Mulai darilet total = 0;. breakdiforEach.forEachadalah cara lain mengulang array,buah.forEach(item => ...), tapibreakgak bisa dipakai di dalamnya. Kalau perlu berhenti di tengah, pakaiforataufor...of.
TL;DR: for (let i = 1; i <= n; i++) { ... } mengulang dengan penghitung: mulai, syarat, lalu tambah satu. i < 3 dari 0 jalan 3 kali, <= ikut menghitung angka terakhir. while (syarat) mengulang selama syaratnya true, jadi jangan lupa ubah penghitungnya. Kumpulkan hasil di array kosong pakai push, atau di total yang mulai dari 0, lalu return sesudah loop. for...of memberi nilai tiap isi array. continue melewati satu putaran, break menghentikan loop.