Langsung ke konten

Perulangan for di Python: Iterasi dengan range() dan Lainnya

Perulangan for dipakai untuk menelusuri setiap item di Python. Artikel ini membahas range(), iterasi list dan dictionary, serta enumerate() dan zip().

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas perulangan while. Sekarang kita pakai perulangan yang lebih ringkas untuk menelusuri kumpulan nilai.

Kalau while cocok saat jumlah pengulangan belum pasti, for cocok saat kamu punya sekumpulan nilai dan ingin menyentuh semuanya satu per satu.

Apa itu Perulangan for?

Perulangan for menjalankan blok kode untuk setiap item dalam sebuah urutan. Urutan itu bisa berupa string, range(), list, atau dictionary.

for huruf in "Halo":
    print(huruf)

Output:

H
a
l
o

Variabel huruf berganti isi setiap putaran, mengambil item berikutnya dari urutan. Setelah item terakhir, loop berhenti sendiri. Tidak ada kondisi yang perlu kamu tulis.

range()

range() menghasilkan deretan angka, dan paling sering dipakai bersama for:

for i in range(5):
    print(i)

Output:

0
1
2
3
4

Perhatikan bahwa range(5) menghasilkan angka 0 sampai 4, bukan 1 sampai 5. Angka terakhir tidak termasuk. Kebiasaan ini juga berlaku saat mengakses item dengan indeks nanti.

Kalau butuh mulai dari 1:

for i in range(1, 6):
    print(i)   # 1 sampai 5

range() juga menerima argumen ketiga untuk menentukan langkah:

for i in range(0, 10, 2):
    print(i)   # 0, 2, 4, 6, 8

Bisa juga mundur dengan langkah negatif:

for i in range(5, 0, -1):
    print(i)   # 5, 4, 3, 2, 1

Menelusuri List

List adalah kumpulan nilai berurutan. for menelusurinya dari item pertama sampai terakhir:

buah = ["apel", "jeruk", "mangga"]

for nama in buah:
    print(nama)

Output:

apel
jeruk
mangga

Kamu tidak perlu tahu berapa isinya. for menyesuaikan sendiri.

Menelusuri Dictionary

Dictionary menyimpan pasangan key dan value. Saat ditelusuri, for memberi key-nya:

harga = {"apel": 15000, "jeruk": 12000, "mangga": 20000}

for nama in harga:
    print(nama)

Output:

apel
jeruk
mangga

Untuk mengambil key dan value sekaligus, gunakan items():

for nama, harga_buah in harga.items():
    print(f"{nama}: {harga_buah}")

Output:

apel: 15000
jeruk: 12000
mangga: 20000

enumerate()

Saat menelusuri list, kadang kamu butuh nomor urutnya. Daripada membuat penghitung manual, gunakan enumerate():

buah = ["apel", "jeruk", "mangga"]

for nomor, nama in enumerate(buah, start=1):
    print(f"{nomor}. {nama}")

Output:

1. apel
2. jeruk
3. mangga

Tanpa start=1, penomoran dimulai dari 0.

zip()

zip() menggabungkan dua urutan dan menelusurinya berpasangan:

nama = ["Budi", "Sari", "Anton"]
nilai = [85, 92, 78]

for n, v in zip(nama, nilai):
    print(f"{n}: {v}")

Output:

Budi: 85
Sari: 92
Anton: 78

Kalau panjang kedua urutan berbeda, zip() berhenti mengikuti urutan yang paling pendek.

Contoh Program: Rata-rata Nilai

Mari hitung rata-rata dari beberapa nilai yang dimasukkan pengguna:

# rata_rata.py

jumlah = int(input("Berapa banyak nilai? "))
total = 0

for i in range(jumlah):
    nilai = float(input(f"Nilai ke-{i + 1}: "))
    total += nilai

rata_rata = total / jumlah
print(f"Rata-rata: {rata_rata:.2f}")

Kalau pengguna memasukkan 3 nilai, yaitu 80, 90, dan 100:

Berapa banyak nilai? 3
Nilai ke-1: 80
Nilai ke-2: 90
Nilai ke-3: 100
Rata-rata: 90.00

Loop berjalan sebanyak jumlah, dan total diakumulasi dengan +=. Pola menjumlahkan seperti ini sangat umum.

Kesalahan Umum Pemula

  • Mengira range(5) sampai 5 — angkanya 0 sampai 4.
  • Mengubah list saat sedang ditelusuri — hasilnya membingungkan; telusuri salinannya bila perlu.
  • Lupa items()for x in dict memberi key, bukan value.
  • Memakai for untuk loop tak terbatas — gunakan while bila jumlahnya belum pasti.
  • Lupa titik dua : setelah for ....

Ringkasan

  • for menelusuri setiap item dalam sebuah urutan
  • range(n) menghasilkan angka 0 sampai n-1, bisa diatur mulai dan langkahnya
  • for bisa dipakai pada string, list, dan dictionary
  • enumerate() memberi nomor urut, zip() menggabungkan dua urutan
  • Pakai for saat jumlah atau sumber itemnya sudah jelas

Langkah Selanjutnya

Sekarang kamu bisa mengulang kode dengan while maupun for. Tapi kadang kamu perlu keluar lebih awal, melewati satu putaran, atau menandai bagian yang belum selesai.

Artikel selanjutnya membahas break, continue, dan pass di Python, cara mengatur jalannya perulangan dari dalam.