Disclaimer!
Karena beberapa sumber menggunakan istilah yang berbeda. Hal yang mana sering disebut sebagai ‘debat terminologi’— di beberapa saat ketika saya bertanya kepada DeepSeek, hal itu tentunya membingungkan saya sebagai pemula. Jujur saja saya merasa frustasi dengan berbedanya istilah yang digunakan. Namun saya berusaha membuatnya sesederhana mungkin dengan: control flow → conditional statement.
📌 Topik Hari Ini
Hubungan dan analogi istilah
Konsep
Dalam Teori Ilmu Komputer:
- Control Flow (Alur Kendali): Konsep luas (universal) yang mencakup semua mekanisme untuk mengatur urutan eksekusi program.
- Termasuk:
- Sequence (alur linear eksekusi berurutan)
- Selection (conditional statements)
- Iteration/looping (
for
,while
) - Recursion
- Concurrency
- Conditional Statements: Subset dari control flow yang khusus menangani percabangan logika (
if-else
).
Dalam dokumentasi Python (resmi):sumber: Docs Python
if-elif-else
= Compound Statements (Pernyataan Majemuk).
for/while
= Looping Statements.
- Keduanya dikategorikan di bawah "Control Flow Tools".
- Contoh Dokumen Resmi:
# Dari Python Docs: if x < 0: print("Negatif") elif x == 0: print("Nol") else: print("Positif")
Analogi
Bayangkan seperti alur air:
if-else
= Percabangan sungai (air memilih jalur).
for
= Siklus air terjun (pengulangan terprediksi).
while
= Air pasang-surut (berulang sampai kondisi terpenuhi).
Conditional statement (if
, elif
, else
)
if
, elif
, else
)If Statement
If
Struktur paling dasar untuk mengeksekusi blok kod hanya jika kondisi bernilai
True
.Syntax dasar dari if adalah seperti ini:
if kondisi: # kode yang dijalankan jika kondisi bernilai benar
Contoh kode:
nilai = 85 if nilai >= 80: print("Lulus") # output: Lulus
Mekanisme di Balik Layar:
if
(nilai >= 80
).True
, blok kode di bawahnya dijalankan.False
, blok kode dilewati.Selain itu, penggunaan
if
juga bisa dilakukan untuk satu atau dua kondisi# Cara Tidak Efisien (4 pengecekan terpisah) nilai = 85 if nilai >= 90: print("A") if 80 <= nilai < 89: print("B") if 70 <= nilai < 80: print("C") if nilai < 70: print("D")
Pada syntax di atas fungsi
if
digunakan untuk memeriksa kondisi nilai yang di masukkan. Dalam hal ini, fungsi if
bekerja dengan:- Apakah nilai ≥ 90?
- Jika kondisi ini benar,
print(”A”)
akan dieksekusi dan huruf “A” akan dicetak. - Jika kondisi ini salah,
print(”A”)
tidak akan dieksekusi
- Apakah nilai lebih besar atau sama dengan dari 80 dan lebih kecil dari 90 di antara 80 dan 89?
- Jika kondisi ini benar,
print(”B”)
akan dieksekusi dan huruf “B” akan dicetak. - Jika kondisi ini salah,
print(”B”)
tidak akan dieksekusi
- Apakah nilai di antara 70 dan 79?
- Jika kondisi ini benar,
print(”C”)
akan dieksekusi dan huruf “C” akan dicetak. - Jika kondisi ini salah,
print(”C”)
tidak akan dieksekusi
- Apakah nilai kurang dari 70?
- Jika kondisi ini benar,
print(”D”)
akan dieksekusi dan huruf “D” akan dicetak. - Jika kondisi ini salah,
print(”D”)
tidak akan dieksekusi
Dengan melihatnya kita mungkin dapat langsung menjawab bahwa nilai berada di antara 80 hingga 89, atau akan mencetak “B”. Namun bukan itu masalahnya. Di sini if berdiri sendiri dan penulisan fungsi
if
yang berulang empat kali (atau sebanyak if
digunakan) akan mengecek setiap kondisi if
dari atas ke bawah, terlepas dari kondisi sebelumnya benar atau salah dan nilai sudah ditemukan di awal.Sekarang mungkin tidak ada masalah karena blok kode yang dijalankan terhitung sedikit, tetapi bagaimana jika baris nilai yang harus diperiksa adalah 200 atau lebih? Hal tersebut tentu saja merepotkan, bukan? Dan karena itu, fungsi
else
dan elif
memulai perkenalannya.Else Statement (Alternatif)
Menambahkan blok kode alternatif yang dijalankan jika kondisi
if
bernilai False
. else
tidak bisa berdiri sendiri, harus dipasangkan dengan if
dan tidak ada kondisi yang ditulis setelah else
.Syntax dasarnya:
if kondisi: # Kode jika kondisi True else: # Kode jika kondisi False
Contoh nyata:
umur = 15 if umur >= 18: print("Anda dewasa") else: print("Anda masih di bawah umur")
Pada titik ini, jika kita menggunakan contoh sebelumnya dengan mengganti beberapa blok kode
if
, hasilnya akan jauh lebih efisien. Tetapi, tetap saja ada if lain yang akan selalu diperiksa walaupun jawabannya sudah diketahui, kalaupun kita ingin mempertahankan empat kategori penilaian. Di sinilah, peran elif
dibutuhkan.Elif Statement
Singkatan dari "else if". Digunakan untuk menangani multiple kondisi secara berurutan.
Syntax dasar:
if kondisi1: # Kode jika kondisi1 True elif kondisi2: # Kode jika kondisi2 True else: # Kode jika semua kondisi False
Contoh nyatanya:
nilai = 85 if nilai >= 90: print("A") elif 80 <= nilai < 90: print("B") elif 70 <= nilai < 80: print("C") else: print("D")
Atau juga bisa ditulis dengan:
nilai = 85 if nilai >= 90: print("A") elif nilai >= 80: print("B") elif nilai >= 70: print("C") else: print("D")
keduanya pada dasarnya sama dan akan menghasilkan output yang juga sama. Bedanya ada di efisiensi penulisannya. Pada contoh pertama kondisi ditulis dengan menjabarkan nilai secara detail, lebih kecil dari apa dan lebih besar dari apa. Dalam hal itu, ketika kita menuliskannya dalam bentuk kedua, pada dasarnya kita menuliskan kode pertama tetapi hanya lebih singkat dan ringan dengan 1 operasi (≥) dari pada gabungan operasi (≥ dan <). Seperti ini, ketika pengecekan
nilai ≥ 90
sudah false, otomatis nilai < 90
. Jadi elif nilai ≥ 80
sama artinya dengan 80 ≤ nilai ≤ 90
.Level Teknis Lebih Dalam
- Short-Circuit Evaluation
Jika kondisi sudah bisa ditentukan dari bagian awal, Python tidak melanjutkan evaluasi.
if x > 0 and y > 0: # Jika x <= 0, y > 0 tidak dievaluasi print("Kedua positif")
- Nesting
if
(Bersarang)
if
bisa berada di dalam if
lain (tapi hindari lebih dari 3 level).if x > 0: if y > 0: print("Kedua positif") else: print("x positif, y tidak")
- Ternary Operator (Pernyataan 1 Baris) adalah Bentuk ringkas dari
if-else
.
status = "Lulus" if nilai >= 80 else "Gagal"
Iteration/Looping (for
, while
)
for
, while
)Adalah proses menjalankan blok kode secara berulang selama kondisi tertentu terpenuhi. Python menyediakan dua jenis perulangan utama, yaitu
for
loop dan while
loop.For
Looping
Adalah perulangan yang digunakan untuk mengulang suatu proses yang urutannya (koleksi data) sudah diketahui.
Struktur dasar
for item in iterable: # Kode yang akan dijalankan
- Iterable adalah objek yang bisa di-iterasi karena berisi kumpulan item. Python memeriksa apakah suatu objek iterable dengan metode
__iter__()
. - Sequence (Urutan Teratur)
- List:
[1, 2, 3]
- Tuple:
(1, 2, 3)
- String:
"abc"
(setiap karakter dianggap item) - Non-Sequence (Tanpa Urutan)
- Set:
{1, 2, 3}
- Dictionary:
{"a": 1, "b": 2}
(yang diiterasi adalah keysnya)
jenis-jenis iterable:
- Item adalah satu elemen individual dalam suatu kumpulan data (iterable) yang mewakili saat iterasi.
- Dalam list
["apel", "jeruk", "pisang"]
: "apel"
= item 1"jeruk"
= item 2"pisang"
= item 3
Contoh Nyata:
Analog Python:
for buah in ["apel", "jeruk", "pisang"]: print(buah) # 'buah' adalah variabel yang menyimpan item saat ini # output: apel, jeruk, pisang
Bayangkan Anda memiliki:
- Sebuah kotak kelereng (ini iterable)
- Setiap kelereng individual di dalamnya (ini item)
Saat Anda mengeluarkan kelereng satu per satu dari kotak, itulah yang disebut iterasi/looping.
ITERABLE (Kotak Kelereng) │ ├── ITEM 1 (Kelereng Merah) ├── ITEM 2 (Kelereng Biru) └── ITEM 3 (Kelereng Hijau)
Karakteristik Penting
for
:- Iterasi pasti: Berjalan untuk setiap item dalam urutan yang diketahui
- Iterasi otomatis: Pindah ke item berikutnya secara otomatis
- Tanpa penghitung manual: Tidak perlu mengelola indeks secara eksplisit
Iterasi dengan Range:
for i in range(5): # 0-4 print(i * 2) # output: 0, 2, 4, 6, 8
Iterasi Dictionary:
orang = {'nama': 'Budi', 'umur': 25} for kunci, nilai in orang.items(): print(f"{kunci}: {nilai}") # output: nama: budi umur: 25
While
Looping
Adalah perulangan yang terus berjalan selama kondisi bernilai
True
. Berbeda dengan for
loop yang beriterasi pada sequence, while
loop bergantung pada kondisi boolean.Syntax dasar:
while kondisi: # Blok kode yang diulang # Perlu memodifikasi variabel kondisi agar loop bisa berhenti
Contoh nyata:
counter = 0 while counter < 5: print(f"Loop ke-{counter}") counter += 1 # Increment counter # output: Loop ke-0 Loop ke-1 Loop ke-2 Loop ke-3 Loop ke-4
While loop akan terus berjalan selamanya jika kondisi tidak pernah menjadi
False
.Contoh Berbahaya:
# ❌ Jangan dicoba! while True: print("Ini tidak akan berhenti!")
Cara Menghentikannya adalah dengan menekan
Ctrl + C
di terminal atau restart kernel.- Validasi Input User
password = "" while password != "rahasia123": password = input("Masukkan password: ") print("Login berhasil!") # akan terus meminta input password sampai memasukkan password yang benar
- Menghitung Mundur
countdown = 5 while countdown > 0: print(countdown) countdown -= 1 print("Go!") # akan terus looping sampai countdown menjadi <= 0 # output: 5 4 3 2 1 Go!
- Pemrosesan Data
data = [10, 20, 30] while data: # Selama list tidak kosong print(data.pop()) # Hapus & print item terakhir # Output: 30, 20, 10
Kontrol Loop di Python
Digunakan untuk mengendalikan alur perulangan, Teknik ini mengatur eksekusi perulangan dengan presisi.
- Break: Menghentikan loop secara paksa
Fungsinya untuk menghentikan loop sepenuhnya meskipun kondisi masih
True
.
Contoh:
for i in range(10): if i == 5: break # Loop berhenti di sini print(i) # output: 0 1 2 3 4
Analogi: Seperti tombol darurat yang menghentikan mesin seketika.
- Continue: Melompati Iterasi
Fungsi adalah untuk Melewati iterasi saat ini dan lanjut ke iterasi berikutnya.
Contoh:
for i in range(5): if i == 2: continue # Jika sudah sampai di i == 2, maka lewati angka 2 dan lanjut ke angka berikutnya yaitu 3 print(i) # output; 0 1 3 # angka 2 dilewati dan langsung ke 3 4
Analog: Seperti melewatkan lagu yang tidak disukai dalam playlist.
- Else pada Loop
- Analogi Sederhana: Bayangkan Anda sedang mencari sebuah kunci di dalam tas:
- Jika menemukan kunci (
break
), Anda langsung berhenti mencari. - Jika sudah mencari semua kantong (
loop selesai
) tapi tidak menemukan, Anda melakukan aksi alternatif (else
).
Blok
else
pada loop akan dieksekusi hanya jika loop selesai secara normal (tidak dihentikan paksa oleh break
).Contoh:
for i in range(3): print(i) else: print("Loop selesai tanpa break") # output: 0 1 2 Loop selesai tanpa break
Contoh Nyata:
for item in cart: if item == "buku": print("Item ditemukan!") break else: print("Item tidak ada") # Jika tidak ditemukan
Contoh pada
while
Loopcount = 0 while count < 3: print(f"Count: {count}") count += 1 else: print("Loop selesai alami")
Terdapat Perbedaan Penting dalam penggunaan else pada looping:
Scenario | Perilaku else |
Loop selesai normal | else dijalankan |
Loop dihentikan break | else tidak dijalankan |
Loop error/exception | else tidak dijalankan |
Contoh lain, mengenai pencarian data:
names = ['Andi', 'Budi', 'Citra'] search = 'Dodi' for name in names: if name == search: print(f"Found {search}!") break else: print(f"{search} not found in list") # Akan dieksekusi
- Loop kosong:
else
tetap dijalankan
for i in []: print(i) else: print("Loop kosong tetap jalan else") # ouput: Loop kosong tetap jalan else
Ketika Anda mencoba iterable (koleksi data) yang diberikan ke loop
for
kosong, loop itu sendiri tidak akan pernah dieksekusi barang sekali pun. Artinya print(i)
tidak pernah dijalankan dan loop selesai secara normal (tidak ada elemen untuk iterasi dan tidak ada break untuk dipicu), jadi blok else
yang akan dieksekusi.else
hanya terkait dengan loop terdekatfor i in range(2): for j in range(2): if i == j == 1: break else: print(f"Inner loop {i} selesai") # output; inner loop 0 selesai
else
pada Loop (flag variabel)- Flag variable = Bendera kecil yang Anda angkat ketika menemukan harta karun
- Tanpa bendera, Anda tidak tahu apakah harta sudah ditemukan atau belum
Bayangkan Anda sedang bermain game treasure hunt:
Contoh Nyata Flag Variable, Pencarian Data Tanpa
else
:found = False # Inisialisasi flag sebagai False for item in ['apel', 'jeruk', 'pisang']: if item == 'jeruk': found = True # Set flag jadi True ketika ditemukan break if found: # Cek status flag print("Jeruk ditemukan!") else: print("Jeruk tidak ada")
Cara Kerja:
found = False
(belum ditemukan)found = True
found
Validasi Input User
valid = False # Flag untuk menandai input valid/tidak while not valid: age = input("Masukkan usia: ") if age.isdigit() and int(age) > 0: valid = True # Input valid, ubah flag else: print("Input salah!") print(f"Usia Anda: {age}")
- Pass: Placeholder Kosong
Fungsinya adalah sebagai null operation—tidak melakukan apa-apa, hanya berfungsi sebagai placeholder untuk menjaga sintaks Python tetap valid.
Kapan digunakan?
- Saat membutuhkan blok kode secara sintaksis tapi belum ingin menulis logika
- Sebagai penanda untuk implementasi yang akan ditambahkan later
Contoh:
for i in range(5): if i == 3: pass # Tidak lakukan apa-apa, lanjut ke iterasi berikutnya print(i) # output: 0 1 2 3 4
Bedakan:
continue
: Lompat ke iterasi berikutnya
pass
: Lanjut eksekusi seperti biasa
Perbedaan Utama:
pass
vs continue
Aspek | pass | continue |
Efek pada loop | Tidak melakukan apa-apa | Langsung ke iterasi berikutnya |
Gunakan ketika | Butuh placeholder sintaks | Ingin melewati iterasi tertentu |
Eksekusi kode | Kode setelah pass tetap jalan | Kode setelah continue dilewati |
Analog | Tempat duduk kosong | Lompati rintangan |
Contoh Praktis Perbedaan
- Kasus 1: Menggunakan
pass
for item in data: if item is None: pass # TODO: Handle None values later process(item) # Tetap diproses meski item None
- Kasus 2: Menggunakan
continue
for item in data: if item is None: continue # Lewati item None process(item) # Hanya diproses jika bukan None
📘 Ringkasan
- Perbandingan kontrol loop:
Statement | Pengaruh | Contoh Use Case |
break | Hentikan seluruh loop | Keluar saat kondisi khusus terpenuhi |
continue | Lewati 1 iterasi | Skip data yang tidak valid |
else | Eksekusi setelah loop normal | Handle case "not found" |
pass | Tidak lakukan apa-apa | Template fungsi belum siap |
🔧 Tools Digunakan
- Python
- Notion
- Chrome
📈 Progress
- Kode atau Proyek Mini: still editing
📎 Resource
- -