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 dictmemberi key, bukan value. - Memakai
foruntuk loop tak terbatas — gunakanwhilebila jumlahnya belum pasti. - Lupa titik dua
:setelahfor ....
Ringkasan
formenelusuri setiap item dalam sebuah urutanrange(n)menghasilkan angka 0 sampai n-1, bisa diatur mulai dan langkahnyaforbisa dipakai pada string, list, dan dictionaryenumerate()memberi nomor urut,zip()menggabungkan dua urutan- Pakai
forsaat 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.
