For Loop — Python

For Loop di Python For loop di Python digunakan untuk mengiterasi iterable — list, string, range, dict, dll. Iterasi Dasar # Iterasi list buah = ["apel"…

For loop mengulang satu blok kode untuk tiap isi sebuah deret, dari yang pertama sampai yang terakhir. Bayangin Pak Darto membaca kertas pesanan di Warung Kopi: baris pertama "kopi susu", dia bikin kopi susu. Baris kedua "teh manis", dia bikin teh manis. Begitu terus sampai baris terakhir, lalu berhenti sendiri. Kertas pesanan itu deretnya, jari Pak Darto yang menunjuk baris yang sedang dikerjakan itu variabel loop-nya.

🧪 Tebakan cepat: for i in range(1, 5): print(i) mencetak berapa baris, dan angka terakhirnya 5 atau 4? Tebak dulu, jawabannya ada di bagian "range(): deret angka".

Ulangi untuk tiap isi list

List adalah daftar nilai di antara kurung siku, dipisah koma. Pelajaran List nanti membahasnya lengkap, di sini cukup tahu bahwa for bisa membacanya satu per satu.

pesanan = ["kopi susu", "teh manis", "roti bakar"]
for item in pesanan:
    print("Bikin", item)
print("Semua pesanan siap")
Bikin kopi susu
Bikin teh manis
Bikin roti bakar
Semua pesanan siap

String juga deret: for huruf in "kopi": menjalankan badannya 4 kali, dengan huruf berisi k, o, p, lalu i.

Menjumlah dengan loop

Pola paling sering di kasir: siapkan penampung, lalu tambahkan isinya tiap putaran.

harga = [15000, 5000, 12000]
total = 0
for h in harga:
    total += h
print("Total:", total)   # Total: 32000
Putaran h total sebelum total sesudah
1 15000 0 15000
2 5000 15000 20000
3 12000 20000 32000

total += h adalah singkatan dari total = total + h. total = 0 ditulis sebelum loop. Kalau ditaruh di dalam loop, penampungnya kembali ke 0 tiap putaran.

range(): deret angka

Butuh angka berurutan, misalnya nomor antrean? Pakai range(). Polanya range(start, stop, step): mulai dari start, naik step tiap kali, dan berhenti sebelum stop. Angka stop sendiri gak pernah ikut, sama seperti slicing di pelajaran string.

Panggilan Angka yang dihasilkan Banyaknya
range(5) 0, 1, 2, 3, 4 5
range(1, 6) 1, 2, 3, 4, 5 5
range(0, 10, 2) 0, 2, 4, 6, 8 5
range(10, 0, -3) 10, 7, 4, 1 4
range(5, 1) (kosong) 0

Jadi range(1, 5) menghasilkan 1, 2, 3, 4: empat baris, dan angka terakhirnya 4. Itu jawaban tebakannya.

enumerate(): nomor dan isinya

Struk butuh nomor urut di depan tiap pesanan. enumerate() memberi pasangan nomor dan isi tiap putaran:

pesanan = ["kopi susu", "teh manis", "roti bakar"]
for no, item in enumerate(pesanan, start=1):
    print(f"{no}. {item}")
1. kopi susu
2. teh manis
3. roti bakar

Loop dan if: FizzBuzz

Di dalam badan loop boleh ada if, elif, dan else. Soal klasik FizzBuzz memakai angka 1 sampai n: kelipatan 3 dan 5 sekaligus jadi FizzBuzz, kelipatan 3 saja jadi Fizz, kelipatan 5 saja jadi Buzz, sisanya angkanya sendiri. "Kelipatan 3" artinya sisa baginya 0, jadi dicek dengan i % 3 == 0.

i i % 3 i % 5 Dicetak
1 1 1 1
3 0 3 Fizz
5 2 0 Buzz
9 0 4 Fizz
15 0 0 FizzBuzz

Urutan cek menentukan hasilnya. 15 lolos cek kelipatan 3 dan cek kelipatan 5. Kalau i % 3 == 0 dicek duluan, elif sisanya gak pernah dibaca, dan 15 cuma jadi Fizz. Jadi cek yang paling sempit dulu: i % 15 == 0, atau i % 3 == 0 and i % 5 == 0.

⚠️ Jebakan yang sering ketemu

TL;DR: for item in deret: menjalankan badan loop (baris yang menjorok) sekali untuk tiap isi deret, lalu berhenti sendiri. Deretnya bisa list, string, atau range(). range(start, stop, step) berhenti sebelum stop: range(5) itu 0 sampai 4, range(1, 6) itu 1 sampai 5, range(0, 10, 2) itu 0, 2, 4, 6, 8, dan step negatif menghitung mundur. enumerate(list, start=1) memberi nomor dan isinya sekaligus: for no, item in .... Untuk menjumlah, siapkan total = 0 sebelum loop lalu total += h di dalamnya. Di FizzBuzz, cek kelipatan 15 dulu, baru 3, lalu 5.

Yang akan kamu pelajari