Belajar Percabangan di Python
Percabangan
Beberapa contoh aplikasi dasar untuk pengenalan percabangan yang sering digunakan adalah:
- Genap atau Ganjil
- Positif atau Negatif
- Positif, Negatif, atau Nol
If
Seperti bahasa pemrograman lainnya, Python juga memiliki statemen percabangan IF. Di Python, expression diletakkan setelah if, dan keputusan ditentukan berdasarkan nilai kebenaran dari expression tersebut.
Tips: Python menganggap setiap nilai non-zero dan non-null sebagai True dan nilai zero/null sebagai False.
Jika expression dievaluasi sebagai True, maka blok statement di dalam if statement akan dieksekusi. Sesuai konvensi, blok ini memiliki indentasi masuk setelah tanda titik dua (:). Jika expression dievaluasi sebagai False, maka blok selanjutnya (setelah statement IF) yang akan dijalankan. Contoh:
var1 = 100
if var1:
print ("1 - Got a true expression value")
print (var1)
var2 = 0
if var2:
print ("2 - Got a true expression value")
print (var2)
Output:
1 – Got a true expression value
100
Anda dapat menyingkat penulisan statement yang akan dieksekusi jika ia terwakili dalam 1 baris. Misalnya:
if var3: do_something()
Else
Statement Else dapat dikombinasikan dengan IF Statement, sebagai jalan keluar saat kondisi / hasil evaluasi bernilai False. Else bersifat opsional dan tunggal.
amount = int(input("Enter amount: "))
if amount<1000:
discount = amount*0.05
print ("Discount",discount)
else:
discount = amount*0.10
print ("Discount",discount)
print ("Net payable:",amount-discount)
Output 1:
Enter amount: 600
Discount 30.0
Net payable: 570.0
Output 2:
Enter amount: 1200
Discount 120.0
Net payable: 1080.0
a = 8
if a % 2 == 0:
print('bilangan {} adalah genap'.format(a))
else:
print('bilangan {} adalah ganjil'.format(a))
Output:
bilangan 8 adalah genap
Elif – Alternatif untuk Switch/Case dan IF bertingkat di python
Elif adalah kependekan dari else if, dan merupakan alternatif untuk if bertingkat atau switch/case di beberapa bahasa pemrograman lain. Sebuah IF Statement dapat diikuti satu atau lebih statement elif (opsional & tidak dibatasi).
amount = int(input("Enter amount: "))
if amount<1000:
discount = amount*0.05
print ("Discount",discount)
elif amount<5000:
discount = amount*0.10
print ("Discount",discount)
else:
discount = amount*0.15
print ("Discount",discount)
print ("Net payable:",amount-discount)
Output 1:
Enter amount: 600
Discount 30.0
Net payable: 570.0
Output 2:
Enter amount: 3000
Discount 300.0
Net payable: 2700.0
Output 3:
Enter amount: 6000
Discount 900.0
Net payable: 5100.0
Catatan: Jika sudah memenuhi salah satu kondisi if/elif, maka program akan keluar dari blok IF Statement. Anda harus memastikan urutan secara logika, IF, Elif, dan Else dalam tingkatan yang tepat. Contoh yang perlu diperhatikan adalah sebagai berikut:
InputAmount | #Case 1 if amount<1000: discount = amount*0.05 print (“Discount”,discount) elif amount<5000: discount = amount*0.10 print (“Discount”,discount) else: discount = amount*0.15 |
#Case 2 if amount>0: discount = amount*0.05 print (“Discount”,discount) elif amount>1000: discount = amount*0.10 print (“Discount”,discount) else: discount = amount*0.15 |
---|---|---|
600 | Discount 30.0 Net payable: 570.0 |
Discount 30.0 Net payable: 570.0 |
3000 | Discount 300.0 Net payable: 2700.0 |
Discount 150.0 Net payable: 2850.0 |
6000 | Discount 900.0 Net payable: 5100.0 |
Discount 300.0 Net payable: 5700.0 |
Pada #Case 2, elif dan else tidak pernah dijalankan karena pembayaran berapapun (yang bernilai positif) akan selalu masuk pada IF (klausa pertama).
a = 0
if a > 0:
print('bilangan {} adalah positif'.format(a))
elif a < 0:
print('bilangan {} adalah negatif'.format(a))
else:
print('bilangan {} adalah nol'.format(a))
Output:
bilangan 0 adalah nol
Ternary Operators
Ternary operator lebih dikenal sebagai conditional expressions pada Python. Operator menentukan sesuatu berdasarkan kondisi True atau False. Jika statement atau klausa if Anda cukup sederhana, maka ternary Operators akan sangat membantu.
Perbandingan klausa IF dengan ternary Operators:
IF | Ternary |
---|---|
if (condition): condition_if_true else: condition_if_false |
condition_if_true if condition else condition_if_false |
is_nice = True if (is_nice): state = ”nice” else: state = “not nice” |
is_nice = True state = “nice” if is_nice else “not nice” |
Opsi lain dari ternary operators melibatkan tuples. Contoh kodenya berikut:
IF | Ternary |
---|---|
if (condition): condition_if_true else: condition_if_false |
(condition_if_false, condition_if_true)[condition] |
nice = True if (nice): personality=”nice” else: personality=“mean” |
nice = True personality = (“mean”, “nice”)[nice] |
Pada tuple ini, dimanfaatkan nilai [0] sebagai False dan [1] sebagai True.
Aplikasi kedua ini menurut beberapa aktivis kurang ‘pythonic’, salah satunya karena cukup membingungkan untuk meletakkan klausa saat True atau False. Selain itu, kedua nilai akan tetap dievaluasi walaupun hanya dibutuhkan salah satunya. Lihat contoh berikut:
condition = True
print(2 if condition else 1/0)
#Output is 2
print((1/0, 2)[condition])
#ZeroDivisionError is raised
Ternary-tuples sebaiknya dihindari, terutama untuk kode (dan klausa True/False) yang kompleks. Ternary dapat digunakan untuk menyingkat kode saat klausa True/False Anda cukup pendek – misalnya sebuah fungsi tanpa parameter.
ShortHand Ternary
Selain Ternary Operators, dikenal juga shorthand ternary tag yang mungkin membantu Anda untuk memeriksa kode/hasil dari sebuah fungsi dan memastikan outputnya tidak menyebabkan error (atau minimal memberikan informasi relevan saat error):
output = None
msg = output or "No data returned"
print(msg)
Output:
No data returned