edubun
Bahasa Indonesia

Perulangan: for dan while

Menjumlahkan bilangan bulat dari 1 sampai 100 dengan tangan butuh waktu lama. Perulangan for tiga baris menyelesaikannya seketika dan mencetak 5050.

Melakukan hal yang sama berkali-kali

Mencetak angka 1 sampai 5 dengan lima baris console.log masih wajar. Mencetak 1 sampai 1000 dengan cara itu tidak. Perulangan (loop) menjalankan blok kode yang sama lagi dan lagi, dengan sedikit perubahan setiap kali, sampai sebuah kondisi menyuruhnya berhenti. Di perulanganlah komputer benar-benar berguna: komputer tidak pernah bosan dan tidak pernah salah hitung.

Perulangan for

for (let i = 1; i <= 5; i++) {
  console.log(i);
}
// mencetak 1, 2, 3, 4, 5 di baris terpisah

Tanda kurung setelah for memuat tiga bagian yang dipisahkan titik koma. Bagian pertama, let i = 1, dijalankan sekali sebelum perulangan dimulai dan membuat variabel penghitung. Bagian kedua, i <= 5, adalah kondisi yang diperiksa sebelum setiap putaran; begitu bernilai false, perulangan berakhir. Bagian ketiga, i++, dijalankan setelah setiap putaran dan memajukan penghitung. Satu kali lewat di dalam blok disebut iterasi. Telusuri: i bernilai 1, kondisinya true, 1 dicetak, i menjadi 2, dan seterusnya sampai i menjadi 6, kondisinya false, dan program melanjutkan setelah kurung kurawal penutup.

Penghitung biasanya dinamai i, tradisi dari matematika, tetapi nama apa pun bisa dipakai. Kamu juga bisa menghitung dengan langkah lain: for (let i = 10; i >= 0; i -= 2) menghitung mundur 10, 8, 6, 4, 2, 0.

Mengumpulkan total

Pola perulangan yang paling umum adalah akumulator. Buat variabel sebelum perulangan, perbarui di dalamnya, dan pakai sesudahnya. Inilah jumlah dari pembuka tadi:

let sum = 0;
for (let i = 1; i <= 100; i++) {
  sum += i;
}
console.log(sum);   // 5050

Perhatikan letak setiap baris. Kalau let sum = 0 berada di dalam perulangan, sum akan diulang dari nol pada setiap iterasi. Kalau console.log berada di dalam, program akan mencetak 100 total sementara alih-alih satu jawaban. Bagian sebelum dan sesudah perulangan sama pentingnya dengan perulangan itu sendiri.

Perulangan while

Perulangan while hanya punya kondisi. Ia terus menjalankan bloknya selama kondisinya true. Pakai saat kamu tidak tahu sebelumnya berapa putaran yang diperlukan, misalnya menggandakan sebuah angka sampai melewati 1000.

let n = 1;
let steps = 0;
while (n <= 1000) {
  n *= 2;
  steps++;
}
console.log(n, steps);   // 1024 10

Sesuatu di dalam perulangan while pada akhirnya harus membuat kondisinya false. Kalau kamu lupa baris yang mengubah n, kondisinya tetap true selamanya. Inilah perulangan tak berujung (infinite loop), dan halamannya membeku. Kalau itu terjadi di kotak latihan, muat ulang halaman lalu perbaiki kodenya. Pada perulangan for, langkah pembaruannya ditulis di kepala perulangan, sehingga kesalahan ini lebih jarang terjadi.

break dan continue

Dua kata kunci mengubah alur di dalam perulangan. break langsung keluar dari perulangan. continue melewati sisa iterasi saat ini dan melompat ke iterasi berikutnya. Misalnya, perulangan dari 1 sampai 10 dengan if (i % 3 === 0) continue; di bagian atas mencetak setiap angka kecuali 3, 6, dan 9.

Contoh soal. Berapa banyak bilangan dari 1 sampai 50 yang merupakan kelipatan 7? Mulai dengan let count = 0, ulangi i dari 1 sampai 50, dan di dalamnya tulis if (i % 7 === 0) count++;. Setelah perulangan, count bernilai 7: bilangannya 7, 14, 21, 28, 35, 42, dan 49.

for (awal; kondisi; pembaruan) { isi } for (let i = 1; i <= 5; i++)

perulangan (loop)Kode yang menjalankan blok lagi dan lagi
iterasiSatu kali lewat di dalam isi perulangan
penghitungVariabel yang menghitung putaran, sering kali i
akumulatorVariabel yang dikumpulkan di dalam perulangan, seperti sum
whileMengulang selama kondisinya true
perulangan tak berujungPerulangan yang kondisinya tidak pernah menjadi false
breakKeluar dari perulangan sekarang
continueLompat ke iterasi berikutnya
  1. Berapa baris yang dicetak kode ini?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  2. Angka terakhir apa yang dicetak?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  3. Apa yang dicetak kode ini?
    let total = 0;
    for (let i = 1; i <= 4; i++) {
      total += i;
    }
    console.log(total);
  4. Apa yang dicetak kode ini?
    let p = 1;
    for (let i = 1; i <= 5; i++) {
      p *= 2;
    }
    console.log(p);
  5. Apa yang dicetak kode ini?
    let n = 10;
    while (n > 3) {
      n -= 3;
    }
    console.log(n);
  6. Berapa baris yang dicetak kode ini?
    for (let i = 10; i >= 0; i -= 2) {
      console.log(i);
    }
  7. Apa yang dicetak kode ini?
    for (let i = 1; i <= 10; i++) {
      if (i === 4) break;
      console.log(i);
    }
    • 1 2 3 on separate lines
    • 1 to 10 except 4
    • 1 2 3 4 on separate lines
  8. Berapa baris yang dicetak kode ini?
    for (let i = 1; i <= 10; i++) {
      if (i % 2 === 0) continue;
      console.log(i);
    }
  9. Apa yang salah dengan perulangan ini?
    let i = 0;
    while (i < 5) {
      console.log(i);
    }
    • Tidak ada
    • i tidak pernah berubah, jadi perulangan tidak pernah berhenti
    • Tidak mencetak apa pun
  10. Apa yang dicetak kode ini?
    let count = 0;
    for (let i = 1; i <= 50; i++) {
      if (i % 7 === 0) count++;
    }
    console.log(count);
Poin penting
  • for (awal; kondisi; pembaruan) { ... } mengulang selama kondisinya true.
  • Buat akumulator sebelum perulangan, perbarui di dalamnya, pakai sesudahnya.
  • while (kondisi) { ... } cocok untuk perulangan yang jumlah putarannya tidak diketahui.
  • Sesuatu harus membuat kondisinya false, kalau tidak perulangan tidak pernah berakhir.
  • break keluar dari perulangan; continue melompat ke putaran berikutnya.
Sumber kursus ini (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Diperiksa: 2026-10-17