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
Next Post Previous Post
No Comment
Add Comment
comment url