Python Basic
Control Flow

Control Flow in Python

Control flow adalah cara untuk mengatur alur eksekusi program berdasarkan kondisi tertentu.

1. If Statement

Digunakan untuk menjalankan kode jika kondisi tertentu terpenuhi.

# Basic if
if condition:
    # kode yang dijalankan jika condition True
 
# If-else
if condition:
    # kode jika True
else:
    # kode jika False
 
# If-elif-else
if condition1:
    # kode jika condition1 True
elif condition2:
    # kode jika condition2 True
else:
    # kode jika semua condition False
 
# Contoh praktis
nilai = 75
 
if nilai >= 90:
    print("Nilai A")
elif nilai >= 80:
    print("Nilai B")
elif nilai >= 70:
    print("Nilai C")
else:
    print("Nilai D")

2. Nested If

If statement di dalam if statement lain.

umur = 20
punya_sim = True
 
if umur >= 17:
    if punya_sim:
        print("Boleh mengemudi")
    else:
        print("Harus membuat SIM dulu")
else:
    print("Belum cukup umur")

3. Ternary Operator

Cara singkat menulis if-else dalam satu baris.

# Format: value_if_true if condition else value_if_false
umur = 20
status = "Dewasa" if umur >= 17 else "Anak-anak"
 
# Contoh lain
nilai = 75
hasil = "Lulus" if nilai >= 70 else "Tidak Lulus"

4. Match Statement (Python 3.10+)

Alternative untuk multiple if-elif yang lebih bersih.

hari = "Senin"
 
match hari:
    case "Senin":
        print("Hari kerja")
    case "Sabtu" | "Minggu":
        print("Hari libur")
    case _:
        print("Hari kerja")

5. Logical Operators

Operator untuk menggabungkan kondisi.

# and: kedua kondisi harus True
if umur >= 17 and punya_sim:
    print("Boleh mengemudi")
 
# or: salah satu kondisi True
if pembayaran == "cash" or pembayaran == "credit":
    print("Pembayaran valid")
 
# not: membalik kondisi
if not sedang_hujan:
    print("Boleh main keluar")

6. Comparison Operators

# Equal to (==)
if nilai == 100:
    print("Nilai sempurna")
 
# Not equal to (!=)
if warna != "merah":
    print("Bukan merah")
 
# Greater than (>)
if umur > 17:
    print("Boleh membuat SIM")
 
# Less than (<)
if suhu < 0:
    print("Di bawah titik beku")
 
# Greater than or equal to (>=)
if nilai >= 70:
    print("Lulus")
 
# Less than or equal to (<=)
if diskon <= 50:
    print("Diskon normal")

7. Multiple Conditions

# Multiple conditions dengan and
if umur >= 17 and punya_sim and tidak_mabuk:
    print("Boleh mengemudi")
 
# Multiple conditions dengan or
if pembayaran == "cash" or pembayaran == "credit" or pembayaran == "debit":
    print("Pembayaran diterima")
 
# Kombinasi and dan or
if (umur >= 17 and punya_sim) or ada_pendamping:
    print("Boleh mengemudi")

8. Checking Collections

# Mengecek keberadaan dalam list
buah = ["apel", "jeruk", "mangga"]
if "apel" in buah:
    print("Ada apel")
 
# Mengecek list kosong
if not buah:    # sama dengan if len(buah) == 0
    print("List kosong")
 
# Mengecek dictionary
user = {"nama": "John", "umur": 20}
if "nama" in user:
    print(f"Nama: {user['nama']}")

Best Practices

  1. Gunakan nama kondisi yang jelas
# Buruk
if x:
    pass
 
# Baik
if is_valid_user:
    pass
  1. Hindari nested if yang terlalu dalam
# Buruk
if condition1:
    if condition2:
        if condition3:
            do_something()
 
# Baik
if not (condition1 and condition2 and condition3):
    return
do_something()
  1. Gunakan guard clauses
# Buruk
def process_user(user):
    if user is not None:
        if user.is_active:
            # proses user
            return True
    return False
 
# Baik
def process_user(user):
    if user is None:
        return False
    if not user.is_active:
        return False
    # proses user
    return True

Tips:

  • Selalu pertimbangkan semua kemungkinan kondisi
  • Gunakan elif untuk multiple conditions yang saling eksklusif
  • Hindari kondisi yang terlalu kompleks
  • Gunakan guard clauses untuk mengurangi nesting
  • Perhatikan urutan evaluasi kondisi

Control flow adalah konsep fundamental yang memungkinkan program untuk membuat keputusan dan mengeksekusi kode yang berbeda berdasarkan kondisi yang ada. Pemahaman yang baik tentang control flow sangat penting untuk membuat program yang efektif dan efisien.