Ditanyain LMS

Looping & Control Flow

Pernahkah Anda membayangkan harus menulis console.log("Saya tidak akan terlambat lagi") sebanyak 100 kali secara manual? Tentu sangat melelahkan dan rentan kesalahan. Di sinilah Looping (perulangan) menunjukkan kekuatannya. Looping memungkinkan kita menjalankan satu blok kode yang sama berulang kali selama kondisi tertentu masih terpenuhi. Ini adalah inti dari otomatisasi dalam pemrograman.

Konsep Perulangan: For Loop

for loop adalah jenis perulangan yang paling sering digunakan, terutama ketika kita sudah tahu persis berapa kali kita ingin mengulang sesuatu. Struktur for memiliki tiga bagian utama: Inisialisasi, Kondisi, dan Perubahan.

1// for (inisialisasi; kondisi; perubahan) 2for (let i = 1; i <= 5; i++) { 3 console.log("Perulangan ke-" + i); 4}

Alur Eksekusi Baris demi Baris:

  1. Inisialisasi: let i = 1 dijalankan sekali di awal. Kita membuat variabel penghitung bernama i.
  2. Kondisi: JavaScript mengecek apakah i <= 5. Karena 1 <= 5 adalah true, maka kode di dalam {} dijalankan.
  3. Eksekusi: Mencetak "Perulangan ke-1".
  4. Perubahan: i++ dijalankan (artinya i ditambah 1). Sekarang i menjadi 2.
  5. Proses berulang ke langkah 2 hingga i menjadi 6. Saat 6 <= 5 bernilai false, loop berhenti.

Perulangan dengan While & Do While

Jika for digunakan saat jumlah iterasi sudah pasti, while lebih cocok digunakan ketika kita tidak tahu pasti kapan harus berhenti, namun kita tahu syarat berhentinya.

1let energi = 3; 2 3while (energi > 0) { 4 console.log("Sedang berlari... Energi sisa: " + energi); 5 energi--; // Sangat penting: jika lupa, akan terjadi Infinite Loop! 6} 7console.log("Lari selesai, butuh istirahat.");

Bahaya Infinite Loop: Kesalahan umum pemula adalah lupa mengubah nilai variabel kondisi (dalam hal ini energi--). Jika energi tetap 3 selamanya, komputer akan terus mencetak pesan hingga aplikasi crash atau komputer melambat.

Ada juga variasi bernama do while. Perbedaannya, do while menjamin kode dijalankan minimal satu kali sebelum mengecek kondisi.

1let angka = 10; 2 3do { 4 console.log("Ini dijalankan setidaknya sekali."); 5} while (angka < 5); 6// Meskipun 10 tidak kurang dari 5, pesan di atas tetap muncul satu kali.

Break & Continue

Terkadang kita perlu keluar dari antrean perulangan lebih cepat atau melompati satu putaran saja.

  • break: Berhenti total dan langsung keluar dari loop.
  • continue: Lewati sisa kode di putaran saat ini dan langsung lanjut ke putaran berikutnya.
1for (let i = 1; i <= 10; i++) { 2 if (i === 5) { 3 continue; // Lewati angka 5 4 } 5 if (i === 8) { 6 break; // Berhenti total saat mencapai angka 8 7 } 8 console.log("Nomor: " + i); 9}

Prediksi Output: Kode di atas akan mencetak 1, 2, 3, 4. Saat i bernilai 5, ia dilewati. Lalu mencetak 6, 7. Saat i bernilai 8, loop mati total. Angka 8, 9, 10 tidak akan pernah muncul.

Loop Bersarang (Nested Loop)

Sama seperti if di dalam if, kita bisa memasukkan loop di dalam loop. Ini sering digunakan untuk membuat pola atau memproses data berbentuk tabel.

1for (let i = 1; i <= 3; i++) { 2 let baris = ""; 3 for (let j = 1; j <= 3; j++) { 4 baris += "* "; 5 } 6 console.log("Baris " + i + ": " + baris); 7}

Studi Kasus: Hitung Data Bayangkan Anda ingin menghitung jumlah total dari angka 1 sampai 10.

1let total = 0; 2for (let i = 1; i <= 10; i++) { 3 total += i; // Menambahkan nilai i ke variabel total 4} 5console.log("Hasil penjumlahan 1-10 adalah: " + total); // 55

Debugging Question: Apa yang salah dengan kode berikut? for (let i = 1; i > 0; i++) { console.log(i); } Jawabannya: Ini adalah Infinite Loop. Karena i dimulai dari 1 dan selalu bertambah, maka i akan selalu lebih besar dari 0. Kondisinya tidak akan pernah menjadi false.