Salah satu alasan komputer begitu berguna adalah kemampuannya mengerjakan hal yang sama berulang kali tanpa lelah. Orang yang menghitung nilai rapor 36 siswa bisa mulai salah hitung di siswa ke-20. Komputer mengerjakan siswa ke-36 dengan ketelitian yang sama seperti siswa pertama.
Namun, kemampuan itu tidak muncul dengan sendirinya. Kalau instruksinya ditulis satu per satu, program penghitung nilai tadi butuh 36 baris rumus yang isinya sama persis. Setiap kali jumlah siswa berubah, kodenya pun harus diubah. Di sinilah looping berperan: looping adalah cara menulis instruksi sekali saja, lalu meminta komputer mengulanginya sebanyak yang dibutuhkan.
Artikel ini membahas apa itu looping, kegunaannya dalam coding, dan bagian yang membuatnya bisa berhenti. Setelah itu kita lihat jenis-jenisnya beserta contoh kode, hingga kesalahan yang paling sering membuat program macet.
Looping Adalah Perulangan Blok Kode Selama Syaratnya Masih Benar
Looping adalah struktur dalam pemrograman yang menjalankan satu blok instruksi berulang kali selama sebuah syarat masih bernilai benar. Setiap kali blok itu selesai dijalankan disebut satu iterasi (satu putaran). Begitu syaratnya berubah menjadi salah, perulangan berhenti dan program melanjutkan ke baris sesudahnya.
Secara bahasa, loop dalam bahasa Inggris berarti lingkaran atau putaran. Jadi, arti looping secara harfiah adalah berputar kembali ke titik awal. Dalam pemrograman pun looping artinya sama, yaitu kembali ke awal blok kode. Dalam materi pelajaran berbahasa Indonesia, padanannya adalah perulangan, pengulangan, atau iterasi. Buku panduan guru Informatika SMA kelas X terbitan Kemendikbudristek (2021) menyebutnya struktur kontrol perulangan.
Lalu, apa bedanya dengan loop? Loop adalah nama untuk bangunan kodenya, sedangkan looping merujuk pada kegiatan mengulangnya. Dalam percakapan sehari-hari para programmer, kedua istilah ini dipakai bergantian.
Perhatikan kata "selama" pada definisi di atas. Perulangan for dan while terus berjalan selama syaratnya benar, lalu berhenti saat syarat itu salah. Karena itu, rumusan "looping berjalan hingga syarat terpenuhi" terbalik untuk sebagian besar bahasa. Rumusan "hingga" hanya cocok untuk bentuk seperti repeat ... until di Pascal, yang memang berhenti ketika syaratnya menjadi benar.
Perlu dicatat juga, looping bukan bahasa pemrograman. Looping adalah fasilitas yang tersedia di hampir semua bahasa, dari Python, JavaScript, dan PHP sampai C, dengan cara penulisan yang sedikit berbeda.
Fungsi Looping dalam Pemrograman
Looping digunakan untuk tugas yang polanya sama dan harus dikerjakan pada banyak data atau berkali-kali. Dalam program sehari-hari, fungsinya bisa dikelompokkan menjadi empat:
- Mengolah banyak data dengan satu blok kode: menghitung nilai 36 siswa, mengubah ukuran 200 foto, atau mengirim email ke seluruh daftar pelanggan.
- Menelusuri isi kumpulan data: membaca setiap baris berkas log, setiap barang di keranjang belanja, atau setiap elemen array.
- Mengulang sampai sesuatu terjadi: menunggu masukan pengguna yang valid, atau mencoba ulang sambungan yang gagal.
- Menjaga program tetap hidup: web server dan game berputar terus untuk menanggapi permintaan atau menggambar ulang layar.
Keuntungannya paling terasa saat jumlah data berubah. Program yang memakai loop tidak perlu diubah ketika siswa bertambah dari 36 menjadi 40. Kodenya juga tetap pendek, sehingga satu perbaikan di badan loop langsung berlaku untuk semua putaran.
Tiga Bagian yang Membuat Looping Bisa Berhenti
Setiap perulangan yang sehat punya tiga bagian. Memahami ketiganya jauh lebih berguna daripada menghafal sintaks, karena hampir semua kesalahan looping berasal dari salah satu bagian ini.
- Nilai awal: keadaan sebelum putaran pertama dimulai, misalnya penghitung
idiisi 0. - Syarat: pertanyaan ya/tidak yang menentukan apakah putaran berikutnya boleh dijalankan, misalnya "apakah
imasih kurang dari 36?". - Perubahan: langkah di setiap putaran yang menggeser keadaan, misalnya menambah
idengan 1.
Bagian ketiga yang paling sering terlupa. Prinsipnya sederhana: setiap putaran harus membawa perulangan sedikit lebih dekat ke titik berhenti. Kalau i tidak pernah bertambah, syarat "i kurang dari 36" akan benar selamanya dan program berputar tanpa akhir.
Alurnya paling mudah dipahami bila digambar sebagai flowchart. Satu simbol keputusan memeriksa syarat, lalu panah dari akhir badan loop kembali lagi ke simbol itu. Panah balik inilah yang membedakan perulangan dari percabangan biasa.

Sebelum masuk ke kode, ketiga bagian ini juga bisa dirancang lebih dulu dengan pseudocode. Cara ini membantu Anda memastikan titik berhentinya jelas sebelum satu baris pun ditulis.
Dari Lompatan GOTO ke Perulangan Terstruktur
Bahasa pemrograman generasi awal tidak selalu punya perintah khusus untuk mengulang. Programmer membuat perulangan dengan perintah goto, yaitu perintah melompat ke baris bernomor tertentu. Cara ini bekerja, tetapi program yang penuh lompatan sulit dibaca dan sulit ditelusuri kesalahannya.
Pada 1966, Corrado Böhm dan Giuseppe Jacopini menerbitkan makalah di jurnal Communications of the ACM yang kemudian menjadi dasar teorema pemrograman terstruktur. Intinya, setiap program bisa disusun hanya dari tiga bentuk: urutan, percabangan, dan perulangan. Dua tahun kemudian, Edsger Dijkstra menulis surat berjudul "Go To Statement Considered Harmful" di jurnal yang sama. Gagasan ini mendorong bahasa-bahasa berikutnya menyediakan perintah seperti for dan while yang kita kenal sekarang.
Tiga bentuk itulah yang sampai kini diajarkan sebagai struktur dasar algoritma. Jadi, algoritma yang menjalankan beberapa langkah tertentu secara looping adalah algoritma perulangan. Dengan kata lain, perulangan dalam pemrograman bukan fitur tambahan, melainkan satu dari tiga pilar yang membentuk hampir semua program.
Jenis Looping dalam Pemrograman
Secara umum ada tiga jenis looping yang ditemukan di hampir semua bahasa. Perbedaan utamanya terletak pada kapan syarat diperiksa dan apa yang menjadi alasan berhenti.

Perulangan for: Jumlah Putaran Sudah Jelas
for dipakai ketika jumlah putaran sudah diketahui sebelum loop dimulai, atau ketika kita ingin memproses setiap isi sebuah kumpulan data. Di Python, for berjalan langsung di atas isi kumpulan data, bukan di atas angka penghitung seperti di bahasa C. Pola ini adalah cara paling umum menelusuri isi sebuah array.
Contoh berikut menghitung rata-rata dari daftar nilai siswa:
nilai = [82, 75, 90, 68, 88]
total = 0
for n in nilai:
total = total + n
print(total / len(nilai))Hasilnya 80.6. Kode ini tetap benar tanpa diubah sedikit pun, baik daftarnya berisi lima nilai maupun 500 nilai.
Di C, C++, Java, JavaScript, dan PHP, for juga punya bentuk berpenghitung. Ketiga bagian loop ditulis sekaligus dalam satu baris, dipisahkan titik koma:
for (int i = 0; i < 36; i++) {
hitung_nilai(i);
}Urutannya persis nilai awal, syarat, lalu perubahan. Untuk menelusuri isi kumpulan data, tiap bahasa punya bentuk ringkasnya sendiri:
| Bahasa | Bentuk for untuk isi data |
|---|---|
| Python | for n in nilai: |
| JavaScript | for (const n of nilai) |
| PHP | foreach ($nilai as $n) |
| Java | for (int n : nilai) |
| C++ | for (int n : nilai) |
Perulangan while: Berhenti karena Keadaan Berubah
while dipakai ketika jumlah putaran tidak bisa diketahui di awal. Syaratnya diperiksa sebelum setiap putaran, sehingga kalau syarat sudah salah sejak awal, badan loop tidak dijalankan sama sekali.
Contohnya program yang mencoba tersambung ke server paling banyak tiga kali:
percobaan = 0
tersambung = False
while not tersambung and percobaan < 3:
percobaan += 1
tersambung = coba_sambung()Fungsi coba_sambung() di sini hanya ilustrasi. Yang penting adalah syaratnya: loop berhenti begitu sambungan berhasil atau jatah tiga percobaan habis, mana yang lebih dulu terjadi. Kita tidak tahu di awal apakah loop akan berputar sekali, dua kali, atau tiga kali.
Perulangan do-while: Badan Loop Jalan Minimal Sekali
do-while memeriksa syarat di akhir putaran, bukan di awal. Akibatnya, badan loop dijalankan paling tidak satu kali, apa pun nilai syaratnya. Dokumentasi resmi PHP dan MDN sama-sama menegaskan jaminan putaran pertama ini.
Bentuk ini cocok untuk kegiatan yang harus dilakukan dulu sebelum hasilnya bisa diperiksa, misalnya melempar dadu sampai keluar angka 6. Dadu harus dilempar lebih dulu sebelum kita tahu angkanya:
let dadu;
do {
dadu = Math.floor(Math.random() * 6) + 1;
console.log("Keluar angka", dadu);
} while (dadu !== 6);Python tidak punya perintah do-while. Polanya ditiru dengan while True lalu break ketika syarat berhenti tercapai, seperti yang dibahas di bagian FAQ.
Memilih Jenis Loop dengan Satu Pertanyaan
Pemula sering bingung memilih jenis loop karena ketiganya bisa saling menggantikan. Secara teknis, hampir semua for bisa ditulis ulang sebagai while, dan sebaliknya. Namun, pilihan yang tepat membuat maksud kode terbaca sekilas oleh siapa pun yang membacanya.
Cukup tanyakan satu hal: apa yang membuat perulangan ini berhenti?
| Alasan berhenti | Pilihan | Contoh |
|---|---|---|
| Jumlah putaran jelas | for | 36 nilai siswa |
| Keadaan berubah | while | Sambungan server |
| Dicek sesudah langkah pertama | do-while | Lempar dadu |
Satu jebakan khusus JavaScript perlu diwaspadai. for...in mengambil nama kunci, sedangkan for...of mengambil nilainya. Menurut MDN, for...in pada array [3, 5, 7] menghasilkan "0", "1", dan "2", bukan 3, 5, dan 7. Untuk menelusuri isi array, pakai for...of.
Mengatur Jalannya Putaran: break, continue, dan else
Kadang perulangan perlu dihentikan lebih awal, atau satu putaran perlu dilewati. Untuk itu hampir semua bahasa menyediakan dua perintah:
break: menghentikan loop saat itu juga, walaupun syaratnya masih benar.continue: melewati sisa putaran saat ini dan langsung lanjut ke putaran berikutnya.
Contoh berikut mencari siswa pertama yang nilainya di bawah batas tuntas 75. Nilai yang belum diisi (None) dilewati:
nilai = {"Ani": 88, "Budi": None, "Citra": 70}
for nama, n in nilai.items():
if n is None:
continue
if n < 75:
print(nama, "perlu remedial")
break
else:
print("Semua siswa tuntas")Baris terakhir memperlihatkan fitur Python yang jarang dikenal pemula, yaitu else pada loop. Blok ini hanya dijalankan jika loop selesai tanpa pernah terkena break. Pada contoh di atas, program mencetak Citra perlu remedial dan blok else dilewati. Kalau semua nilai minimal 75, barulah pesan "Semua siswa tuntas" muncul.
Perulangan Bersarang (Nested Loop) dan Biayanya
Loop bisa ditaruh di dalam loop lain. Bentuk ini disebut nested loop atau perulangan bersarang. Pemakaiannya wajar untuk data berbentuk tabel, misalnya menyusun jadwal 6 kelas yang masing-masing punya 8 jam pelajaran. Loop luar berputar 6 kali, loop dalam 8 kali, sehingga totalnya 48 putaran.

Masalahnya, jumlah putaran dikalikan, bukan dijumlahkan. Loop luar 1.000 kali yang memuat loop dalam 1.000 kali menghasilkan 1.000.000 putaran. Kalau datanya bertambah sepuluh kali lipat, pekerjaannya bertambah seratus kali lipat. Dalam ilmu komputer, pola pertumbuhan ini ditulis O(n²).
| Jumlah data (n) | Loop tunggal | Loop bersarang |
|---|---|---|
| 100 | 100 | 10.000 |
| 1.000 | 1.000 | 1.000.000 |
| 10.000 | 10.000 | 100.000.000 |
Versi yang lebih tersembunyi sering terjadi di aplikasi web. Sebuah halaman menampilkan 50 artikel, lalu di dalam loop setiap artikel mengirim satu kueri ke database untuk mengambil nama penulisnya. Tidak ada loop kedua yang terlihat di kode, tetapi halaman itu mengirim 51 kueri, bukan 2.
Sebagai patokan praktis, curigai setiap loop yang di dalamnya memanggil database, API, atau berkas. Curigai juga setiap perulangan bersarang yang datanya bisa tumbuh melewati beberapa ribu baris.
Kelemahan Looping dan Kesalahan yang Paling Sering Terjadi
Looping memudahkan banyak hal, tetapi kesalahan kecil di dalamnya berdampak besar karena kesalahan itu ikut diulang di setiap putaran. Ada tiga yang paling sering muncul.

Infinite Loop: Perulangan yang Tidak Pernah Berhenti
Infinite loop terjadi saat syaratnya tidak pernah menjadi salah, biasanya karena bagian perubahan terlupa atau bergerak ke arah yang keliru. Loop yang berputar tanpa jeda akan memakai satu inti prosesor sampai penuh. Di sisi pengguna, gejalanya berupa aplikasi yang membeku atau halaman yang tidak selesai dimuat.
Di server, PHP punya pengaman bawaan. Pengaturan max_execution_time bernilai 30 detik secara bawaan, sehingga skrip web yang terjebak akan dihentikan dengan pesan Maximum execution time of 30 seconds exceeded. Namun, bila skrip yang sama dijalankan dari baris perintah, misalnya lewat cron, nilai bawaannya 0 alias tanpa batas. Skrip itu akan terus berjalan sampai prosesnya dimatikan.
Perlu dibedakan juga dengan infinite loop yang disengaja. Web server, game, dan aplikasi yang menunggu masukan memang dirancang berputar terus. Bedanya, program seperti itu selalu menyediakan jalan keluar yang jelas, seperti perintah berhenti atau sinyal dari sistem operasi.
Off-by-One: Meleset Satu Putaran
Kesalahan ini membuat loop berputar satu kali terlalu banyak atau terlalu sedikit. Contoh klasiknya masalah tiang pagar: pagar sepanjang 30 meter dengan tiang setiap 3 meter butuh 11 tiang, bukan 10. Di kode, penyebabnya biasanya tertukar antara < dan <=. Penyebab lainnya adalah lupa bahwa range(1, 10) di Python hanya menghasilkan 1 sampai 9, karena angka akhirnya tidak ikut.
Kesalahan ini jarang membuat program berhenti, sehingga baru ketahuan saat hasilnya diperiksa. Karena itulah off-by-one termasuk bug yang paling sulit dilacak.
Mengubah Data yang Sedang Diputar
Menghapus isi sebuah daftar di tengah loop yang sedang menelusuri daftar itu membuat sebagian data terlewat. Di Python, setiap penghapusan menggeser item berikutnya satu posisi ke depan, sehingga item itu tidak pernah diperiksa. Cara amannya adalah membuat daftar baru berisi data yang ingin disimpan, atau menelusuri salinan daftarnya.
Untuk kasus seperti ini, debugging dengan mencetak isi daftar di setiap putaran biasanya langsung memperlihatkan data mana yang terlewat.
Looping di Luar Pemrograman: Jaringan, Email, Video, dan Game
Kata looping juga dipakai di bidang lain dengan arti yang berbeda. Benang merahnya sama, yaitu sesuatu yang berputar kembali ke titik awal, tetapi konteksnya tidak berhubungan dengan menulis kode.

- Looping jaringan: terjadi ketika kabel antar-switch membentuk lingkaran, misalnya satu kabel yang kedua ujungnya tercolok ke switch yang sama. Frame di lapisan 2 tidak punya penghitung umur seperti TTL (Time to Live) pada paket IP, sehingga frame broadcast berputar terus dan berlipat ganda. Kondisi ini disebut broadcast storm dan dapat melumpuhkan jaringan dengan cepat. Pencegahnya adalah Spanning Tree Protocol, algoritma rancangan Radia Perlman (1985) yang menonaktifkan jalur cadangan sampai dibutuhkan. Penjelasannya ada di artikel topologi jaringan.
- Looping email: terjadi saat dua server atau dua aturan penerusan saling melempar pesan yang sama. Standar SMTP (RFC 5321) menyarankan server yang menghitung header
Receivedmemakai ambang penolakan minimal 100. Balasan otomatis yang saling membalas juga bisa berputar, dan RFC 3834 mencegahnya lewat headerAuto-Submitted. - Video looping: video yang otomatis diputar ulang dari awal begitu selesai, seperti GIF atau video latar di halaman web. Di HTML cukup menambahkan atribut
looppada tag<video>, sedangkan YouTube versi desktop menyediakan opsi Loop saat video diklik kanan. - Looping dalam game: istilah ini populer di game horor kejar-kejaran seperti Dead by Daylight atau Violence District di Roblox. Di sana looping berarti berlari mengitari rintangan supaya pengejar tidak bisa mendekat.
- Looping dalam bahasa gaul: dipakai untuk sesuatu yang terulang terus, misalnya lagu yang diputar berulang seharian atau rutinitas yang terasa sama setiap hari. Dalam film, time loop berarti tokoh yang terjebak mengulang hari yang sama. Di dunia penerbangan dan wahana permainan, looping juga berarti gerakan memutar satu lingkaran penuh secara vertikal.
Pertanyaan Seputar Looping
Looping itu apa dalam satu kalimat?
Yang dimaksud dengan looping adalah perintah untuk menjalankan sekelompok instruksi berulang kali selama syarat tertentu masih benar, sehingga kodenya cukup ditulis sekali.
Algoritma yang menjalankan langkah secara looping disebut apa?
Algoritma yang melakukan langkah secara looping disebut algoritma perulangan, atau iterasi. Jawaban yang sama berlaku untuk pertanyaan algoritma apa yang digunakan untuk looping. Perulangan adalah satu dari tiga struktur dasar algoritma, bersama urutan dan percabangan.
Apa bedanya looping dan rekursi?
Looping mengulang dengan kembali ke awal blok kode, sedangkan rekursi mengulang dengan cara fungsi memanggil dirinya sendiri. Rekursi terasa lebih alami untuk data bercabang, seperti folder di dalam folder. Namun, setiap pemanggilan memakan memori tambahan, dan Python secara bawaan membatasi kedalamannya 1.000 tingkat. Untuk pengulangan yang lurus, looping biasanya lebih hemat.
Apakah Python punya do-while?
Tidak. Python hanya punya for dan while. Pola do-while ditiru dengan while True, lalu break ketika syarat berhentinya tercapai:
import random
while True:
dadu = random.randint(1, 6)
if dadu == 6:
breakApa arti "in the loop"?
Ungkapan bahasa Inggris in the loop tidak berhubungan dengan pemrograman. Artinya ikut dilibatkan atau terus diberi kabar tentang suatu urusan, misalnya "keep me in the loop" yang berarti "kabari saya perkembangannya". Lawannya adalah out of the loop, yaitu tertinggal informasi.
Apa arti "1 loop"?
Satu loop berarti satu putaran penuh. Dalam pemrograman, satu kali badan perulangan dijalankan disebut satu iterasi. Di luar pemrograman, "1 loop" bisa berarti satu kali putar ulang sebuah lagu atau video.
Kesimpulan
Looping adalah cara menulis instruksi sekali lalu menjalankannya berulang kali selama syaratnya benar. Kunci memahaminya ada pada tiga bagian: nilai awal, syarat, dan perubahan yang membawa loop mendekati titik berhenti. Pilih for bila jumlah putaran atau datanya sudah jelas, while bila berhentinya bergantung pada keadaan, dan do-while bila langkah pertama harus dijalankan dulu.
Dua kesalahan yang paling perlu diwaspadai adalah infinite loop dan meleset satu putaran. Keduanya bisa dicegah dengan memeriksa ulang ketiga bagian tadi sebelum kode dijalankan. Kalau Anda sedang belajar, tulis ulang setiap contoh di artikel ini, lalu ubah syaratnya untuk melihat apa yang terjadi.
Semoga artikel ini membantu.




