Apa Itu Iterasi?
Dalam pemrograman, iterasi adalah pengulangan sekumpulan instruksi, biasanya dengan loop, sampai sebuah kondisi terpenuhi atau setiap item dalam sebuah koleksi sudah diproses. Setiap satu putaran instruksi yang diulang itu juga disebut iterasi.
Diperbarui 24 September 2026
Program yang mengirim email pengingat ke 10.000 pengguna tidak berisi 10.000 salinan kode pengirimnya. Kode itu ditulis sekali saja, di dalam sebuah loop, dan loop itu menjalankannya sekali untuk setiap pengguna. Setiap kali kode itu dijalankan adalah satu iterasi, dan loop secara keseluruhan adalah cara program melakukan iterasi atas para penggunanya.
Cara kerja iterasi, langkah demi langkah
Setiap loop mengikuti siklus yang sama:
- Periksa. Uji kondisi loop, yang berupa boolean: apakah masih ada item lain, atau apakah penghitungnya masih di bawah batas?
- Jalankan. Kalau jawabannya true, jalankan badan loop sekali.
- Perbarui. Pindah ke item berikutnya atau ubah penghitungnya.
- Ulangi. Kembali ke langkah 1. Saat pemeriksaan menghasilkan false, program lanjut ke kode setelah loop.
Di sini badan loop berjalan lima kali, dan setiap iterasi menambahkan angka berikutnya ke total yang terus berjalan:
iteration 1 total is now 1
iteration 2 total is now 3
iteration 3 total is now 6
iteration 4 total is now 10
iteration 5 total is now 15
Done: 15
Variabel total berada di luar loop, jadi nilainya tetap terbawa dari satu iterasi ke iterasi berikutnya. Pola itu, yaitu variabel yang diisi sebelum loop dan diperbarui di dalamnya, disebut accumulator, dan muncul di hampir setiap loop yang menghitung sesuatu.
Loop hitungan dan loop kondisi
Ada dua jenis iterasi. Iterasi definit berjalan dengan jumlah yang sudah diketahui: sekali untuk setiap item dalam list, atau sekali untuk setiap angka dari 1 sampai 5. Loop for di Python dibuat untuk ini, sering kali bersama range().
Iterasi tak definit diulang sampai sesuatu terjadi, dan jumlah putarannya tidak diketahui sebelumnya. Loop while cocok untuk kasus ini:
8 years, balance 214.36
Uang yang tumbuh 10% per tahun butuh 8 tahun untuk menjadi dua kali lipat. Program menemukannya dengan melakukan iterasi, bukan dengan menyelesaikan persamaan. Panduan for loop dan while loop membahas keduanya di Python.
Iterasi atas sebuah koleksi
Sebagian besar loop menelusuri sebuah koleksi: elemen-elemen sebuah array, karakter-karakter sebuah string, baris-baris sebuah file. Loop for di Python memberikan setiap elemen secara langsung, dan enumerate() menambahkan posisinya:
0 apple
1 banana
2 cherry
Di balik layar, for meminta iterator dari koleksi itu dengan iter(), lalu memanggil next() padanya sekali untuk setiap iterasi. Kamu bisa melakukan panggilan yang sama sendiri:
red
green
blue
no more items
Tanpa nilai default, next() yang keempat memunculkan StopIteration. Exception itulah sinyal yang dipakai loop for untuk tahu bahwa koleksinya sudah selesai.
Bahasa lain menuliskan ide yang sama dengan cara berbeda. C menghitung dengan index, sementara Java dan JavaScript juga punya loop yang memberikan setiap elemen secara langsung:
for (int i = 0; i < 3; i++) {
printf("%s\n", colors[i]);
}
for (String color : colors) {
System.out.println(color);
}
for (const color of colors) {
console.log(color);
}
Iterasi vs rekursi
Rekursi adalah cara lain untuk mengulang pekerjaan: sebuah fungsi memanggil dirinya sendiri pada versi masalah yang lebih kecil sampai mencapai kasus yang bisa dijawab secara langsung. Apa pun yang ditulis dengan salah satunya bisa ditulis dengan yang lain, tetapi perilaku keduanya berbeda:
| Iterasi | Rekursi | |
|---|---|---|
| Cara mengulang | Loop melompat kembali ke awalnya | Fungsi memanggil dirinya sendiri |
| Kapan berhenti | Kondisi loop menjadi false | Base case tercapai |
| Memori | Jumlahnya sama untuk berapa pun putarannya | Satu stack frame untuk setiap panggilan yang masih terbuka |
| Kegagalan yang umum | Infinite loop | Stack overflow (RecursionError di Python) |
| Cocok untuk | List, penghitung, mengulang sampai sebuah kondisi | Pohon, data bersarang, divide and conquer |
Baris memori itu penting dalam praktiknya. Secara default, Python mengizinkan sekitar 1.000 panggilan bersarang, jadi penjumlahan rekursif 5.000 angka gagal, sementara loop tidak bermasalah:
5050 5050
12502500
sum_recursive(5000) failed: RecursionError
Visualisasi rekursi menunjukkan tumpukan panggilan yang membesar dan mengecil langkah demi langkah.
Kesalahan yang umum
Infinite loop. Loop while yang kondisinya tidak pernah menjadi false akan berjalan sampai kamu menghentikan programnya. Penyebab yang biasa adalah lupa langkah pembaruan, misalnya tidak menulis count = count - 1.
Kelebihan atau kekurangan satu. range(1, 5) menghasilkan 1, 2, 3, dan 4, bukan 5, karena nilai akhirnya tidak disertakan. Loop yang berjalan satu kali terlalu banyak atau terlalu sedikit tetap berjalan tanpa error dan memberi jawaban yang salah, yaitu sebuah logic error.
Mengubah list sambil menelusurinya. Menghapus item dari list yang sedang kamu telusuri membuat loop melewatkan beberapa elemen:
[1, 2, 3]
Satu angka 2 tetap tersisa, karena menghapus 2 yang pertama menggeser 2 yang kedua ke posisi yang sudah dilewati loop. Buat list baru saja: numbers = [n for n in numbers if n != 2].
Lanjut ke mana
Loop menelusuri koleksi, jadi apa itu array adalah halaman pendamping yang wajar, dan apa itu boolean menjelaskan pemeriksaan true atau false yang menentukan kapan sebuah loop berhenti. Saat sebuah loop memberi hasil yang salah tanpa pesan error, baca apa itu logic error. Untuk berlatih menulis loop, mulai kursus Python atau coba contoh-contoh di atas di playground Python.
Pertanyaan yang sering diajukan
Apa contoh iterasi?
for yang mencetak setiap nama dalam daftar berisi 100 pengguna menjalankan 100 iterasi, satu per nama. Loop while yang terus meminta password sampai password yang benar diketik juga merupakan iterasi, meskipun jumlah putarannya tidak diketahui sebelumnya.Mana yang lebih baik, rekursi atau iterasi?
Secara umum, tidak ada yang lebih baik. Iterasi memakai jumlah memori yang tetap dan biasanya lebih cepat untuk pengulangan sederhana, seperti menjumlahkan list atau menghitung. Rekursi menghasilkan kode yang lebih pendek dan jelas untuk masalah yang pada dasarnya rekursif, seperti menelusuri pohon folder, tetapi setiap panggilan memakai memori stack, dan rekursi yang sangat dalam gagal di bahasa seperti Python.
Apakah iterasi sama dengan loop?
for atau while, dan iterasi adalah pengulangan yang dilakukannya. Satu putaran badan loop juga disebut satu iterasi, jadi loop yang berjalan 5 kali melakukan 5 iterasi.Apa bedanya sprint dan iterasi?
Dalam manajemen proyek software, iterasi adalah periode tetap, biasanya satu sampai empat minggu, di mana sebuah tim merencanakan, membangun, dan meninjau sebagian software yang berfungsi. Scrum menyebut periode itu sprint, jadi dalam praktiknya kedua kata itu artinya sama. Ini arti yang berbeda dari iterasi dalam kode.
Apa arti iterable?
for, seperti list, string, dictionary, file, atau range. Di Python, sebuah objek bersifat iterable kalau iter() bisa menghasilkan iterator darinya. Integer tidak iterable, itulah sebabnya for x in 5: memunculkan TypeError.