Kontrol Alur¶
Kontrol alur memungkinkan program untuk membuat keputusan dan mengulang tindakan. Mari pelajari struktur kontrol utama dalam Python.
Percabangan (Conditional)¶
if Statement¶
umur = 18
if umur >= 17:
print("Anda boleh memiliki SIM")
if-else Statement¶
nilai = 75
if nilai >= 60:
print("Lulus")
else:
print("Tidak Lulus")
if-elif-else Statement¶
nilai = 85
if nilai >= 90:
grade = "A"
elif nilai >= 80:
grade = "B"
elif nilai >= 70:
grade = "C"
elif nilai >= 60:
grade = "D"
else:
grade = "E"
print(f"Grade Anda: {grade}") # Grade Anda: B
Nested if¶
umur = 20
punya_sim = True
if umur >= 17:
if punya_sim:
print("Boleh mengemudi")
else:
print("Belum punya SIM")
else:
print("Belum cukup umur")
Conditional Expression (Ternary Operator)¶
umur = 20
status = "Dewasa" if umur >= 18 else "Anak-anak"
print(status) # Dewasa
Perulangan (Loop)¶
for Loop¶
Digunakan untuk mengiterasi sequence (list, tuple, string, range, dll):
# Iterasi list
buah = ["apel", "jeruk", "mangga"]
for b in buah:
print(b)
# Output:
# apel
# jeruk
# mangga
range()¶
Fungsi untuk menghasilkan urutan angka:
# range(stop)
for i in range(5):
print(i, end=" ") # 0 1 2 3 4
print()
# range(start, stop)
for i in range(2, 6):
print(i, end=" ") # 2 3 4 5
print()
# range(start, stop, step)
for i in range(0, 10, 2):
print(i, end=" ") # 0 2 4 6 8
enumerate()¶
Mendapatkan indeks dan nilai sekaligus:
buah = ["apel", "jeruk", "mangga"]
for i, b in enumerate(buah):
print(f"{i}: {b}")
# Output:
# 0: apel
# 1: jeruk
# 2: mangga
zip()¶
Menggabungkan beberapa iterables:
nama = ["Ahmad", "Budi", "Citra"]
nilai = [85, 90, 78]
for n, v in zip(nama, nilai):
print(f"{n}: {v}")
# Output:
# Ahmad: 85
# Budi: 90
# Citra: 78
while Loop¶
Mengulang selama kondisi bernilai True:
counter = 0
while counter < 5:
print(counter)
counter += 1
# Output:
# 0
# 1
# 2
# 3
# 4
Infinite Loop¶
Hati-hati dengan loop tak terbatas:
# Contoh infinite loop (jangan dijalankan tanpa cara keluar)
# while True:
# print("Loop selamanya!")
# Infinite loop dengan kondisi keluar
while True:
jawaban = input("Ketik 'keluar' untuk berhenti: ")
if jawaban == "keluar":
break
Kontrol Loop¶
break¶
Menghentikan loop sepenuhnya:
for i in range(10):
if i == 5:
break
print(i)
# Output:
# 0
# 1
# 2
# 3
# 4
continue¶
Melewati iterasi saat ini dan lanjut ke iterasi berikutnya:
for i in range(10):
if i % 2 == 0:
continue
print(i)
# Output (hanya bilangan ganjil):
# 1
# 3
# 5
# 7
# 9
else pada Loop¶
Blok else dieksekusi jika loop selesai tanpa break:
# Mencari bilangan prima
n = 17
for i in range(2, n):
if n % i == 0:
print(f"{n} bukan bilangan prima")
break
else:
print(f"{n} adalah bilangan prima")
# Output: 17 adalah bilangan prima
Nested Loop¶
Loop di dalam loop:
# Tabel perkalian
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} x {j} = {i * j}")
print() # Baris kosong
# Output:
# 1 x 1 = 1
# 1 x 2 = 2
# 1 x 3 = 3
#
# 2 x 1 = 2
# 2 x 2 = 4
# 2 x 3 = 6
#
# 3 x 1 = 3
# 3 x 2 = 6
# 3 x 3 = 9
Match-Case (Python 3.10+)¶
Pattern matching yang mirip switch-case:
status_code = 404
match status_code:
case 200:
print("OK")
case 404:
print("Not Found")
case 500:
print("Internal Server Error")
case _:
print("Unknown Status")
# Output: Not Found
Pattern Matching dengan Struktur Data¶
point = (0, 5)
match point:
case (0, 0):
print("Origin")
case (0, y):
print(f"Pada sumbu Y, y={y}")
case (x, 0):
print(f"Pada sumbu X, x={x}")
case (x, y):
print(f"Titik ({x}, {y})")
# Output: Pada sumbu Y, y=5
Contoh Aplikasi¶
Menghitung Faktorial¶
n = 5
faktorial = 1
for i in range(1, n + 1):
faktorial *= i
print(f"{n}! = {faktorial}") # 5! = 120
Menampilkan Deret Fibonacci¶
n = 10
a, b = 0, 1
print("Deret Fibonacci:")
for _ in range(n):
print(a, end=" ")
a, b = b, a + b
# Output: 0 1 1 2 3 5 8 13 21 34
Validasi Input¶
while True:
try:
umur = int(input("Masukkan umur Anda: "))
if umur < 0:
print("Umur tidak boleh negatif!")
continue
break
except ValueError:
print("Masukkan angka yang valid!")
print(f"Umur Anda: {umur}")
Latihan¶
Buat program untuk menentukan apakah suatu bilangan ganjil atau genap
Buat program untuk mencetak bilangan 1-100 yang habis dibagi 3 dan 5
Buat program untuk mencari bilangan prima dari 1 sampai 50
Buat program tebak angka (komputer memilih angka random, user menebak)