Tujuan Belajar
Setelah pelajaran ini, kamu akan bisa:
- Menggunakan
forloop untuk mengulang sejumlah kali tertentu - Menggunakan
whileloop untuk mengulang berdasarkan kondisi - Menggunakan
for...ofuntuk iterasi array - Menghindari infinite loop
Materi Singkat
Bayangkan kamu harus mencetak "Halo!" sebanyak 100 kali. Tanpa loop, kamu harus menulis console.log("Halo!") sebanyak 100 baris. Dengan loop, cukup:
for (let i = 0; i < 100; i++) {
console.log("Halo!");
}Loop (perulangan) adalah cara menjalankan kode yang sama berkali-kali.
For Loop
Paling umum dipakai saat tahu berapa kali perulangan:
// Sintaks: for (inisialisasi; kondisi; update)
for (let i = 0; i < 5; i++) {
console.log(`Perulangan ke-${i + 1}`);
}
// Output: Perulangan ke-1, ke-2, ke-3, ke-4, ke-5Penjelasan komponen:
let i = 0— mulai dari 0 (inisialisasi, dijalankan sekali)i < 5— terus ulang selama kondisi truei++— tambah 1 setiap kali (update)
Menghitung mundur:
for (let i = 5; i >= 1; i--) {
console.log(i);
}
// Output: 5, 4, 3, 2, 1While Loop
Digunakan saat tidak tahu pasti berapa kali perulangan:
let angka = 1;
while (angka <= 5) {
console.log(angka);
angka++; // PENTING: jangan lupa ini, kalau tidak → infinite loop!
}Hati-hati infinite loop! Jika kondisi while tidak pernah menjadi false, program akan berjalan selamanya dan browser akan freeze:
// JANGAN LAKUKAN INI:
while (true) {
console.log("Loop ini tidak akan berhenti!");
// Tidak ada yang mengubah kondisi!
}For...Of Loop
Cara paling bersih untuk iterasi array (kita pelajari array lebih detail nanti):
const buah = ["Apel", "Mangga", "Pisang", "Jeruk"];
for (const item of buah) {
console.log(item);
}
// Output: Apel, Mangga, Pisang, JerukBreak dan Continue
// break — keluar dari loop lebih awal
for (let i = 0; i < 10; i++) {
if (i === 5) break; // berhenti saat i mencapai 5
console.log(i);
}
// Output: 0, 1, 2, 3, 4
// continue — lewati iterasi saat ini, lanjut ke berikutnya
for (let i = 0; i < 6; i++) {
if (i % 2 === 0) continue; // lewati bilangan genap
console.log(i);
}
// Output: 1, 3, 5Contoh Kode
// Tabel perkalian dengan nested loop
console.log("=== Tabel Perkalian 1-5 ===");
for (let i = 1; i <= 5; i++) {
let baris = "";
for (let j = 1; j <= 5; j++) {
const hasil = (i * j).toString().padStart(4, " ");
baris += hasil;
}
console.log(baris);
}
// Mencari angka prima
console.log("\n=== Angka Prima 2-30 ===");
for (let angka = 2; angka <= 30; angka++) {
let prima = true;
for (let pembagi = 2; pembagi < angka; pembagi++) {
if (angka % pembagi === 0) {
prima = false;
break; // tidak perlu cek lebih lanjut
}
}
if (prima) console.log(angka);
}
// Daftar nama siswa
const siswa = ["Andi", "Budi", "Citra", "Dian", "Eko"];
console.log("\n=== Daftar Siswa ===");
for (let i = 0; i < siswa.length; i++) {
console.log(`${i + 1}. ${siswa[i]}`);
}
// Sama tapi lebih bersih dengan for...of
console.log("\n=== Daftar Siswa (for...of) ===");
let nomor = 1;
for (const nama of siswa) {
console.log(`${nomor}. ${nama}`);
nomor++;
}Tugas Kecil
- Cetak semua bilangan dari 1 sampai 20
- Cetak hanya bilangan genap dari 1 sampai 20 (gunakan
continueatau kondisiif) - Hitung jumlah semua bilangan dari 1 sampai 100 (hasilnya harus 5050)
- Buat daftar
const nilai = [88, 72, 95, 65, 80, 91, 55, 78]— hitung nilai rata-ratanya menggunakan loop - Dari daftar nilai tersebut, cetak hanya nilai yang lebih dari 75 dengan format "Nilai [angka] → Lulus"