โ† Semua pembelajaran / Python Dasar
Fase 3 ยท Perulangan

Perulangan for

for di Python berbeda dari for di kebanyakan bahasa lain: ia tidak menghitung, ia berjalan menyusuri kumpulan data.

Sumber asli docs.python.org Resmi Rangkuman ~5 menit baca

Intisari

  • Polanya: for item in kumpulan: lalu isi blok menjorok ke dalam.
  • Nama item bebas kamu pilih dan otomatis berganti isi tiap putaran.
  • Bisa menyusuri apa saja yang punya banyak isi: teks, list, dictionary, atau range().
  • Tidak ada for (i = 0; i < n; i++) di Python. Kalau butuh nomor urut, pakai range() atau enumerate().
  • Blok kosong tidak boleh โ€” kalau memang belum ada isinya, tulis pass.

Masalah yang diselesaikan

# Tanpa perulangan โ€” melelahkan dan tidak bisa dipakai ulang
print("Halo Ani")
print("Halo Budi")
print("Halo Cici")

# Dengan perulangan
nama_list = ["Ani", "Budi", "Cici"]

for nama in nama_list:
    print(f"Halo {nama}")

Baca barisnya apa adanya: โ€œuntuk setiap nama di dalam nama_list, lakukan ini.โ€ Python mengambil item pertama, menaruhnya di variabel nama, menjalankan blok di bawahnya, lalu mengulang untuk item berikutnya sampai habis.

Anatomi

for  nama  in  nama_list :
 โ”‚     โ”‚    โ”‚      โ”‚      โ””โ”€โ”€ titik dua, wajib
 โ”‚     โ”‚    โ”‚      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ kumpulan yang disusuri
 โ”‚     โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ kata kunci
 โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ variabel penampung, namanya bebas
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ kata kunci

Nama variabelnya terserah kamu, tapi pilih yang menjelaskan isinya:

for huruf in "Python":
    print(huruf)              # P, y, t, h, o, n โ€” satu per baris

for harga in [10000, 25000, 5000]:
    print(harga * 2)

Mengulang sejumlah kali dengan range()

Kalau yang kamu butuhkan bukan data, melainkan pengulangan sekian kali:

for i in range(3):
    print("Halo")             # tercetak 3 kali

for i in range(1, 6):
    print(f"Baris ke-{i}")    # Baris ke-1 sampai Baris ke-5

Kebiasaan penamaan: kalau angka putarannya sendiri tidak kamu pakai, banyak programmer menulis for _ in range(3):. Garis bawah itu variabel biasa โ€” ia hanya isyarat bagi pembaca bahwa isinya sengaja diabaikan.

Mengumpulkan hasil

Pola paling sering: siapkan wadah sebelum perulangan, isi di dalamnya, pakai setelahnya.

nilai = [80, 95, 67, 88]

total = 0
for n in nilai:
    total += n                # total = total + n

print("Jumlah:", total)                 # 330
print("Rata-rata:", total / len(nilai)) # 82.5
harga = [10000, 25000, 5000]
harga_diskon = []                       # wadah kosong

for h in harga:
    harga_diskon.append(h * 0.9)        # tambahkan ke wadah

print(harga_diskon)                     # [9000.0, 22500.0, 4500.0]

total = 0 harus di LUAR perulangan. Kalau ditaruh di dalam, nilainya dikembalikan ke nol tiap putaran dan hasil akhirnya cuma item terakhir. Salah tempat satu tingkat indentasi sudah cukup untuk mengubah arti kode sepenuhnya.

for dengan if di dalamnya

nilai = [80, 45, 95, 67, 88]
lulus = []

for n in nilai:
    if n >= 70:
        lulus.append(n)

print(f"{len(lulus)} dari {len(nilai)} siswa lulus")   # 3 dari 5 siswa lulus

Perulangan bersarang

for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i} x {j} = {i * j}")
    print("---")

Perulangan dalam berjalan penuh untuk setiap putaran perulangan luar. Contoh di atas mencetak 9 baris, dipisah garis tiap tiga baris.

Kesalahan yang umum

GejalaPenyebab
Hasil akhir cuma item terakhirVariabel penampung dibuat ulang di dalam perulangan
TypeError: 'int' object is not iterableMenulis for i in 5: โ€” angka tidak bisa disusuri, pakai range(5)
IndentationErrorBaris setelah for ...: tidak menjorok ke dalam
Kode setelah perulangan ikut mengulangIndentasinya kelebihan โ€” kembalikan ke tepi kiri

Latihan: cetak tabel perkalian 1โ€“10 untuk satu angka yang diminta dari pengguna. Lalu buat versi kedua: dari sebuah list nilai ujian, cetak berapa yang lulus, berapa yang tidak, dan berapa nilai tertingginya โ€” semuanya dihitung dengan perulangan, bukan dengan max().

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.