Python : Percabangan dan Perulangan

Python Tutorial 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 bernilai True maka hanya blok if yang akan dieksekusi
  • Jika bernilai False maka akan dilanjutkan dengan mengecek blok-blok elif secara berurutan, jika ada blok elif 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 mengembalikan iterable dengan elemen yaitu 0, 1, 2, 3, ..., 9 (banyaknya elemen adalah 10)
  • range(1, 10, 2) : akan mengembalikan iterable dengan elemen yaitu 1, 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 : keyword continue akan menghentikan eksekusi sisa blok untuk iterasi yang sedang berjalan dan melanjutkan lagi proses untuk iterasi berikutnya.
  • break : keyword break berfungsi untuk menghentikan total iterasi walaupun kondisi pada while loop masih True atau elemen pada for loop masih ada.
  • else : blok ini dapat ditambahkan pada for maupun while dan akan dieksekusi ketika kondisi pada while loop menjadi False atau elemen list pada for 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.

Selanjutnya : List dan Tuple

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Isi