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
.
Kode
# ===== IF - ELIF - ELSE ===== # # menginput nilai a a = int(input("Masukkan nilai A : ")) # ===== IF STATEMENT ===== # # jika True -> jalankan blok IF if a > 0: print("nilai a =", a) print(a, "lebih besar dari 10") print("----------------------") # ===== 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") print("----------------------") # ===== IF - ELIF - ELSE STATEMENT ===== # # cek kondisi sampai terpenuhi pada if atau elif # jika tidak 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 nilai a = 5 5 lebih besar dari 10 ---------------------- 5 adalah bilangan ganjil ---------------------- 5 dibagi 4, sisa 1
Memberi nilai 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
.
Kode
# 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 ditambahkan blok case _
yang bertindak sebagai blok default.
Kode
# =========== MATCH CASE =========== # pokemon = "Kucing" match pokemon: 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 loop)
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.
Kode
# ========== FOR LOOP ========== # # mencetak "Pikachu" sebanyak 5x for _ in range(5): print("Pikachu") print("-------------------------") # 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}") print("-------------------------") # iterasi pada list skills = ["Python", "R", "Julia", "Scala"] for skill in skills: print(f"Anda menguasai {skill}") print("-------------------------") # iterasi pada list dengan menyertakan indeks (key) for idx, skill in enumerate(skills): print(f"Skill ke-{idx+1} : {skill}")
Pikachu Pikachu Pikachu Pikachu Pikachu ------------------------- 1^2 adalah 1 3^2 adalah 9 5^2 adalah 25 7^2 adalah 49 9^2 adalah 81 ------------------------- Anda menguasai Python Anda menguasai R Anda menguasai Julia Anda menguasai Scala ------------------------- Skill ke-1 : Python Skill ke-2 : R Skill ke-3 : Julia Skill ke-4 : Scala
Perulangan (while loop)
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 ...
else, break dan continue
Pada proses iterasi menggunakan for loop
maupun while loop
dapat ditambahkan beberapa sintaks lainnya yang dapat merubah 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