Percabangan dan Perulangan di Python untuk Pemula
Program yang bisa mengambil keputusan dan mengulang pekerjaan. Dua konsep ini yang mengubah daftar perintah menjadi program yang benar-benar berguna.
Oleh Afa Hernandes5 menit baca
Daftar isi
Sejauh ini program kita berjalan lurus dari atas ke bawah. Program sungguhan perlu dua kemampuan lagi:
- Percabangan: melakukan hal berbeda tergantung kondisinya. Kalau nilainya 75 ke atas, tulis “lulus”. Kalau tidak, tulis “remedial”.
- Perulangan: mengulang pekerjaan tanpa menulis kode yang sama berkali-kali. Untuk setiap barang di keranjang, tambahkan harganya ke total.
Dengan dua konsep ini, ditambah variabel dan tipe data, kamu sudah bisa membuat program kecil yang benar-benar berguna. Semua contoh diuji dengan Python 3.13.
Membandingkan nilai
Percabangan bergantung pada kondisi yang hasilnya True atau False. Kondisi dibuat dengan operator perbandingan:
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
== |
sama dengan | 5 == 5 |
True |
!= |
tidak sama dengan | 5 != 3 |
True |
> / < |
lebih besar / lebih kecil | 5 > 3 |
True |
>= / <= |
lebih besar atau sama / lebih kecil atau sama | 5 <= 5 |
True |
Beberapa kondisi bisa digabung dengan and (keduanya harus benar), or (salah satu cukup), dan not (membalik).
Perhatikan perbedaan = dan ==. Satu tanda sama dengan menyimpan nilai ke variabel, dua tanda sama dengan membandingkan.
if, elif, else
nilai = 82
if nilai >= 85: huruf = "A"elif nilai >= 75: huruf = "B"elif nilai >= 60: huruf = "C"else: huruf = "D"
print(f"Nilai {nilai} mendapat huruf {huruf}")Nilai 82 mendapat huruf BCara membacanya: Python memeriksa kondisi dari atas ke bawah, menjalankan blok pertama yang kondisinya benar, lalu melewati sisanya. 82 >= 85 salah, 82 >= 75 benar, jadi huruf menjadi "B", dan dua cabang terakhir tidak diperiksa lagi.
Indentasi bukan hiasan
Di Python, baris-baris yang masuk ke dalam sebuah blok harus menjorok ke dalam (biasanya 4 spasi). VS Code melakukannya otomatis setelah kamu mengetik tanda titik dua : dan menekan Enter. Indentasi menentukan baris mana yang termasuk dalam if dan mana yang tidak:
saldo = 50000harga = 75000
if harga > saldo: print("Saldo tidak cukup") print("Silakan isi ulang")print("Terima kasih")Saldo tidak cukupSilakan isi ulangTerima kasihDua baris pertama hanya dijalankan kalau kondisinya benar. Baris Terima kasih tidak menjorok, jadi selalu dijalankan.
Perulangan for
for mengulang sebuah blok untuk setiap item dalam sebuah kumpulan. Untuk mengulang sejumlah kali, pakai range():
for i in range(3): print("Putaran ke", i)
for angka in range(1, 6): print(angka, end=" ")print()Putaran ke 0Putaran ke 1Putaran ke 21 2 3 4 5Dua hal yang sering membingungkan pemula:
range(3)menghasilkan0, 1, 2. Mulai dari 0, dan angka 3 tidak termasuk.range(1, 6)menghasilkan1sampai5. Angka akhirnya tidak pernah ikut.
for juga bisa mengulang setiap huruf dalam teks, atau setiap item dalam daftar (list, yang dibahas lengkap di list dan dictionary):
harga_barang = [18000, 25000, 30000]total = 0
for harga in harga_barang: total = total + harga
print(f"Total: Rp{total:,}".replace(",", "."))
if total > 50000: diskon = total * 10 // 100 print(f"Dapat diskon 10%: Rp{diskon:,}".replace(",", ".")) print(f"Bayar: Rp{total - diskon:,}".replace(",", "."))Total: Rp73.000Dapat diskon 10%: Rp7.300Bayar: Rp65.700Pola “mulai dari total = 0, lalu tambahkan setiap item di dalam perulangan” (disebut akumulator) akan sangat sering kamu pakai.
Perulangan while
while mengulang selama kondisinya benar. Pakai while kalau kamu tidak tahu sejak awal berapa kali harus mengulang, misalnya sampai pengguna menebak dengan benar:
rahasia = 73percobaan = 0
while True: tebakan = int(input("Tebak angka 1-100: ")) percobaan += 1 if tebakan < rahasia: print("Terlalu kecil") elif tebakan > rahasia: print("Terlalu besar") else: print(f"Benar! Kamu menebak dalam {percobaan} percobaan.") breakDijalankan dengan tebakan 50, 80, lalu 73:
Tebak angka 1-100: Terlalu kecilTebak angka 1-100: Terlalu besarTebak angka 1-100: Benar! Kamu menebak dalam 3 percobaan.Hal-hal baru di sini:
while Truemengulang terus, danbreakmenghentikan perulangan saat tebakan benar.percobaan += 1adalah singkatan daripercobaan = percobaan + 1.- Ada juga
continue, yang melompati sisa putaran dan langsung lanjut ke putaran berikutnya.
Awas perulangan tanpa akhir
Kalau kondisi while tidak pernah menjadi salah dan tidak ada break, program akan berjalan selamanya. Kalau itu terjadi, tekan Ctrl + C di terminal untuk menghentikannya. Penyebab paling umum: lupa mengubah variabel yang diperiksa kondisi.
hitung = 3while hitung > 0: print(hitung) hitung -= 1 # tanpa baris ini, perulangan tidak pernah berhentiprint("Mulai!")321Mulai!for atau while?
| Situasi | Pakai |
|---|---|
| Mengulang untuk setiap item dalam daftar atau teks | for |
| Mengulang sejumlah kali yang sudah diketahui | for dengan range() |
| Mengulang sampai sesuatu terjadi (input benar, data habis) | while |
Kalau ragu, mulai dengan for. Lebih sulit membuat perulangan tanpa akhir dengan for.
Error yang sering muncul
IndentationError: expected an indented block after 'if' statement on line 3
Baris setelah if, for, atau while tidak menjorok. Tambahkan 4 spasi di awal baris itu.
SyntaxError: expected ':'
Lupa tanda titik dua di akhir baris if, elif, else, for, atau while.
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
Kamu menulis if nilai = 75:. Untuk membandingkan, pakai ==.
Cara membaca pesan error seperti ini secara umum dibahas di membaca pesan error Python.
Latihan
- Buat program yang menampilkan bilangan genap dari 1 sampai 20. (Petunjuk:
%.) - Ubah program tebak angka supaya pemain hanya punya 5 kesempatan. Kalau habis, tampilkan angka rahasianya.
Coba dulu sendiri sebelum bertanya ke AI.
Kesimpulan
Percabangan (if, elif, else) membuat program memilih jalan berdasarkan kondisi. Perulangan (for untuk setiap item atau sejumlah kali, while selama kondisi benar) membuat program mengulang tanpa menulis kode berulang. Jaga indentasi, bedakan = dan ==, dan pastikan setiap while punya jalan keluar.
Langkah berikutnya di jalur Mulai Ngoding dari Nol: membungkus kode menjadi bagian yang bisa dipakai ulang, dengan function.



