Python : Percabangan dan Perulangan


[tutorial ini dibuat menggunakan python versi 3.11
]
PERCABANGAN (IF ELIF ELSE)
Aliran program dapat diatur sedemikian rupa menggunakan struktur percabangan dengan if
, elif
dan else
. Percabangan berfungsi untuk mengontrol aliran sehingga dapat mengeksekusi blok kode yang berbeda untuk setiap kondisi yang berbeda. Secara umum alur percabangan menggunakan if
, elif
dan else
adalah sebagai berikut:
- Cek kondisi pada cabang
if
, jika kondisi bernilaiTrue
maka hanya blokif
yang akan dieksekusi - Jika bernilai
False
maka akan dilanjutkan dengan mengecek blok-blokelif
secara berurutan, jika ada blokelif
yang bernilai True, maka blok tersebutlah yang akan dieksekusi - jika tidak ada satupun diantara if dan elif yang bernilai True maka blok
else
akan dieksekusi
Dalam percabangan if elif else
, blok elif
maupun else
merupakan blok opsional yang boleh ada ataupun tidak setelah blok if
. Kode berikut ini menunjukkan beberapa kondisi percabangan menggunakan blok if elif else
.
Sintaks if
Pada percabangan dengan blok if
saja, jika jika kondisi terpenuhi maka blok if
akan dieksekusi. Namun, jika tidak terpenuhi maka tidak ada tindakan apapun.
Contoh if
# Menginput nilai a a = int(input("Masukkan nilai A : ")) # ===== IF STATEMENT ===== # # jika True -> jalankan blok IF # jika False -> tidak dilakukan apapun if a > 0: print("nilai a =", a) print(a, "lebih besar dari 0")
# OUTPUT Masukkan nilai A : 5 nilai a = 5 5 lebih besar dari 0 -------------------- Masukkan nilai A : -5
Sintaks if ... else ...
Pada percabangan dengan blok if
dan else
, terdapat dua kemungkinan kondisi. Jika kondisi pada if
terpenuhi maka kode-kode pada blok tersebut akan dieksekusi. Sebaliknya jika tidak terpenuhi maka kode-kode pada blok else
yang akan dieksekusi.
Contoh if else
# Menginput nilai a a = int(input("Masukkan nilai A : ")) # ===== IF - ELSE STATEMENT ===== # # jika True -> jalankan blok if # jika False -> jalankan blok else if a % 2 == 0: print(f"{a} adalah bilangan genap") else: print(f"{a} adalah bilangan ganjil")
# OUTPUT Masukkan nilai A : 5 5 adalah bilangan ganjil ------------------------ Masukkan nilai A : 8 8 adalah bilangan genap
Sintaks if ... elif ... else ...
Pada percabangan dengan blok if
, elif
dan else
, pengecekan dilakukan secara berurutan. Jika kondisi pada if
terpenuhi maka kode-kode pada blok tersebut akan dieksekusi. Jika tidak, maka dilakukan pengecekan pada bagian elif
yang pertama dan seterusnya sampai kondisi terpenuhi. Namun, jika tidak satupun blok if
dan elif
yang terpenuhi maka kode-kode pada blok else
yang akan dieksekusi.
Contoh if elif else
# Menginput nilai a a = int(input("Masukkan nilai A : ")) # ===== IF - ELIF - ELSE STATEMENT ===== # # cek kondisi sampai terpenuhi pada if atau elif # jika tidak terpenuhi semua jalankan blok else if a % 4 == 1: print(f"{a} dibagi 4, sisa 1") elif a % 4 == 2: print(f"{a} dibagi 4, sisa 2") elif a % 4 == 3: print(f"{a} dibagi 4, sisa 3") else: print(f"{a} adalah kelipatan 4")
# OUTPUT Masukkan nilai A : 5 5 dibagi 4, sisa 1 -------------------- Masukkan nilai A : 7 7 dibagi 4, sisa 3
Variabel Kondisional dengan if else
Di dalam bahasa Python, statement if else
dapat berfungsi sebagai operator untuk menentukan nilai variabel secara langsung. Format pemberian nilainya yaitu nama_var = nilai_jika_benar if kondisi else nilai_jika_salah
. Penulisan dengan cara ini dapat menyederhanakan sintaks yang diperlukan. Namun cara terbatas untuk dua kondisi saja yaitu if
dan else
.
Contoh variabel condisional dengan if else
# Cara biasa nilai = 90 status = None if nilai >= 80: status = "LULUS" else: status = "GAGAL" print(f"Status : {status}") # if else langsung disimpan ke variabel nilai = 90 status = "LULUS" if nilai >= 80 else "GAGAL" print(f"Status : {status}")
# OUTPUT Status : LULUS Status : LULUS
PERCABANGAN (MATCH CASE)
Blok match ... case
merupakan kontrol percabangan baru yang tersedia mulai dari python 3.10
. Cara kerja match ... case
yaitu dengan mengecek apakah nilai variabel tertentu match (cocok) dengan salah satu dari daftar case
yang disediakan. Jika ada case
yang cocok, maka blok case
tersebut akan dieksekusi. Jika tidak ada yang cocok, maka tidak ada case
yang dijalankan kecuali jika terdapat blok case _
yang berfungsi sebagai blok default.
Contoh match case
# =========== MATCH CASE =========== # spesies = "Kucing" match spesies: case "Pikachu": print("Anda menangkap Pikachu") case "Charmender": print("Anda menangkap Charmender") case "Bulbasour": print("Anda menangkap bulbasaur") case _: print("Pokemon tidak diketahui") print("Maaf sepertinya tangkapan anda bukan pokemon :-)") # case _ : befungsi seperti else jika tidak ada case yang terpenuhi
# OUTPUT Pokemon tidak diketahui Maaf sepertinya tangkapan anda bukan pokemon :-)
PERULANGAN (FOR)
Iterasi merupakan proses eksekusi blok kode secara berulang sampai suatu kondisi tidak terpenuhi lagi atau ketika adanya sintaks yang menghentikannya dari dalam blok tersebut. Terdapat dua cara melakukan iterasi pada python yaitu menggunakan for loop
dan while loop
.
Pada for loop
, iterasi dilakukan sebanyak n
kali tergantung banyaknya elemen pada objek iterable
yang digunakan. Contoh objek iterable
pada python adalah range
, list
dan tuple.
Berikut ini adalah contoh objek iterable yang dapat digunakan dalam for loop
:
range(10)
: akan mengembalikaniterable
dengan elemen yaitu 0, 1, 2, 3, ..., 9
(banyaknya elemen adalah 10)range(1, 10, 2)
: akan mengembalikaniterable
dengan elemen yaitu1, 3, 5, 7, 9
(banyaknya elemen adalah 5)skills = ["Python", "R", "Julia", "Scala"]
(banyaknya elemen adalah 4)
note : Pembahasan tentang range
, list
dan iterable
akan dilakukan lebih detail pada tutorial bagian selanjutnya
Di dalam iterasi dengan for
, blok kode akan dijalankan berulang kali sebanyak jumlah elemen pada objek iterable
yang diberikan. Misalkan pada contoh objek skills
di atas, pada iterasi pertama maka elemen yang proses di dalam blok for
adalah "Python"
, pada iterasi kedua adalah "R"
dan seterusnya sampai semua elemen diproses.
Jika diperlukan, kita juga dapat menyertakan indeks dan nilai elemen sekaligus pada setiap iterasi. Cara yang dapat dilakukan adalah merubah objek iterable menjadi objek enumerate yang berisi pasangan indeks dan nilai dari setiap elemen.
Contoh 1
# ========== FOR LOOP ========== # # mencetak "Pikachu" sebanyak 5x for _ in range(5): print("Pikachu")
# OUTPUT Pikachu Pikachu Pikachu Pikachu Pikachu
Contoh 2
# ========== FOR LOOP ========== # # mencetak nilai kuadrat 1-10 dengan step=2 for val in range(1, 10, 2): val_kuadrat = val**2 print(f"{val}^2 adalah {val_kuadrat}")
# OUTPUT 1^2 adalah 1 3^2 adalah 9 5^2 adalah 25 7^2 adalah 49 9^2 adalah 81
Contoh 3
# ========== FOR LOOP ========== # # iterasi pada list skills = ["Python", "R", "Julia", "Scala"] for skill in skills: print(f"Anda menguasai {skill}")
# OUTPUT Anda menguasai Python Anda menguasai R Anda menguasai Julia Anda menguasai Scala
Contoh 4
# ========== FOR LOOP ========== # # iterasi pada list dengan menyertakan indeks (key) skills = ["Python", "R", "Julia", "Scala"] for idx, val in enumerate(skills): print(f"Skill ke-{idx+1} : {val}")
Skill ke-1 : Python Skill ke-2 : R Skill ke-3 : Julia Skill ke-4 : Scala
PERULANGAN (WHILE)
Blok lainnya yang dapat digunakan untuk melakukan iterasi adalah while
. Berbeda dengan for loop
, iterasi menggunakan while
memerlukan pengecekan kondisi bernilai True
agar dapat dieksekusi. Selama kondisi tersebut masih terpenuhi (bernilai True
) maka blok while
akan terus dieksekusi. Oleh karena itu, penting untuk memastikan terdapat kode untuk merubah kondisi pada while
menjadi False
, jika tidak maka iterasi akan berlangsung tanpa henti.
Kode
# ========== WIHLE LOOP =========== # a = 3 # blok while akan dieksekusi # selama a > 3 while a > 0: print("a =", a, "> 0") a = a - 1 print(" a sekarang :", a) print("--------------------------") # contoh INFINITE LOOP # !!!hentikan program secara manual!!! # nilai b = 1 dan 1 > 0 # karena nilai b tidak pernah berubah di dalam loop # maka kondisi akan selalu bernilai True b = 1 # b akan selalu bernilai 1 while b > 0: print("infinite loop")
# OUTPUT a = 3 > 0 a sekarang : 2 a = 2 > 0 a sekarang : 1 a = 1 > 0 a sekarang : 0 -------------------------- infinite loop infinite loop infinite loop ...
KONTROL ITERASI
Pada proses iterasi menggunakan for
maupun while
dapat ditambahkan beberapa sintaks lainnya yang dapat mengontrol aliran proses didalamnya yaitu continue
dan break
. Selain itu kita juga dapat menambahkan blok else
pada for loop
maupun while loop
.
continue
: keywordcontinue
akan menghentikan eksekusi sisa blok untuk iterasi yang sedang berjalan dan melanjutkan lagi proses untuk iterasi berikutnya.break
: keywordbreak
berfungsi untuk menghentikan total iterasi walaupun kondisi padawhile loop
masihTrue
atau elemen padafor loop
masih ada.else
: blok ini dapat ditambahkan padafor
maupunwhile
dan akan dieksekusi ketika kondisi padawhile loop
menjadiFalse
atau elemenlist
padafor loop
sudah habis.
Kode
# ============ WHILE DENGAN ELSE ============ # b = 1 while b < 5: print("b masih lebih kecil dari 5") b = b + 1 else: print("b sekarang sama dengan 5") # break : menghentikan iterasi total print("\n-------BREAK-----------") skill = ["Python", "R", "Julia", "Scala"] # data dalam bentuk list print("start loop") for val in skill: # jika val = "Julia" hentikan iterasi if val == "Julia": break print(" Bahasa", val) print("end loop") # continue ; menghentikan iterasi saat ini # dan langsung melanjutkan iterasi berikutnya print("\n------CONTINUE---------") print("start loop") a = 0 while a < 5: a = a + 1 # jika nilai a 2 atau 3 : continue if a == 2 or a == 3: continue print(" nilai a =", a) print("end loop")
# OUTPUT b masih lebih kecil dari 5 b masih lebih kecil dari 5 b masih lebih kecil dari 5 b masih lebih kecil dari 5 b sekarang sama dengan 5 -------BREAK----------- start loop Bahasa Python Bahasa R end loop -------CONTINUE-------- start loop nilai a = 1 nilai a = 4 nilai a = 5 end loop
Ringkasan
Pada bagian ini, kita telah membahas struktur percabangan dan perulangan dalam bahasa Python. Percabangan menggunakan if elif else
dan match case
memungkinkan kita untuk menjalankan blok kode tertentu jika suatu kondisi terpenuhi. Sedangkan perulangan menggunakan for loop
dan while loop
memungkinkan kita untuk mengeksekusi blok kode secara berulang berdasarkan kondisi atau jumlah iterasi tertentu. Selain itu terdapat pula beberapa keyword yang dapat meruubah aliran dalam proses iterasi yaiitu menggunakan statement else
, break
dan continue
.
Dasar-Dasar Pemrograman dengan Python
Selanjutnya : List dan Tuple