Conditionals

Conditionals adalah konsep pemrograman yang memberikan perintah kepada komputer untuk melakukan keputusan dan menjalankan suatu proses berdasarkan hasil dari logika perbandingan/boolean. Konsep ini dapat divisualisasikan ke dalam bentuk diagram flowchart. Diagram berikut mengilustrasikan contoh skenario untuk memutuskan apakah seseorang akan makan atau tidak.

True
True
False
False
True
False
Start
Am I hungry?
Is food exist?
Eat
Skip eating
Go shopping
Have enough money?
Buy food
Can't buy food
Done

Skenario pada contoh dapat diimplementasikan ke dalam kode dengan memanfaatkan sintaks Python. Yuk kita ikuti pembahasan lebih detailnya!

If else

Untuk mengimplementasikan skenario pemilihan keputusan pada Python, kita dapat menggunakan sintaks if else. Sintaks dasarnya adalah seperti berikut:

if condition:
    # Kode yang dijalankan apabila condition bernilai True
else:
    # Kode yang dijalankan apabila condition bernilai False

Untuk lebih jelasnya, perhatikan contoh kode di bawah ini:

# Contoh 1.a

money_on_wallet = 100
price_of_bread = 99

if money_on_wallet >= price_of_bread:
    money_on_wallet = money_on_wallet - price_of_bread
    print(f'I bought the bread. I have ${money_on_wallet} money left on my wallet.')
else:
    print(f'I couldn\'t buy the bread because I don\'t have enough money.')

# output: 'I bought the bread. I have 1 money left on my wallet.'

Apabila kode pada contoh 1.a dijalankan, komputer hanya akan melakukan operasi pengurangan pada variable money_on_wallet dan menjalankan fungsi print yang pertama karena money_on_wallet >= price_of_bread akan menghasilkan nilai True, sedangkan fungsi print yang kedua akan di-skip.

True
False
Start
Have enough money to buy the bread?
Pay for the bread
Print 'I bought the bread...'
Done
Print 'I coudn't buy the bread ...'

Ilustrasi flowchart untuk contoh 1.a

Apa yang akan terjadi jika kita mengganti nilai price_of_bread menjadi 101? Kondisi money_on_wallet >= price_of_bread akan menghasilkan nilai False sehingga hanya fungsi print yang kedua yang akan dieksekusi.

Perhatikan kembali contoh selanjutnya:

# Contoh 1.b

money_on_wallet = 100
price_of_bread = 99

if money_on_wallet >= price_of_bread:
    money_on_wallet = money_on_wallet - price_of_bread
    print(f'I bought the bread. I have ${money_on_wallet} money left on my wallet.')

print(f'I will buy the jam as well.')

# output:
# 'I bought the bread. I have 1 money left on my wallet.'
# 'I will buy the jam as well.'

Apabila kode baru pada contoh 1.b dijalankan, komputer hanya akan melakukan operasi pengurangan, menjalankan fungsi print yang pertama dan menjalankan fungsi print yang kedua. Hal ini disebabkan fungsi print yang kedua sudah tidak lagi di dalam blok kode else.

True
False
Start
Have enough money to buy the bread?
Pay for the bread
Do nothing
Print 'I bought the bread...'
Print 'I will buy the jam as well.'
Done

Ilustrasi flowchart untuk contoh 1.b

Apa yang akan terjadi jika kita mengganti nilai price_of_bread menjadi 101? Nilai money_on_wallet >= price_of_bread akan berubah menjadi False, namun perubahan ini tidak memengaruhi eksekusi dari fungsi print yang kedua (tetap dilakukan pemanggilan) karena baris tersebut tidak ada di dalam blok kode if maupun else.

Sintaks if else juga bisa digunakan secara nested apabila skenario yang ingin dibuat lebih kompleks seperti contoh berikut ini:

# Contoh 1.c

money_on_wallet = 100
price_of_bread = 99

if money_on_wallet >= price_of_bread:
    money_on_wallet = money_on_wallet - price_of_bread
    print('I bought the bread.')

    if money_on_wallet > 0:
        print('I will give the changes to the street singer.')
    else:
        print('I have no money left.')
else:
    print('I couldn\'t buy the bread.')

# Output:
# 'I bought the bread.'
# 'I will give the changes to the street singer.'
True
True
False
False
Start
Have enough money to buy the bread?
Pay for the bread
Print 'I bought the bread...'
Have money left?
Print 'I will give the changes...'
Print 'I have no money left.'
Done
Print 'I couldn't buy the bread ...'

Ilustrasi flowchart untuk contoh 1.c


Kita dapat menggunakan sintaks elif (else if) untuk membuat skenario yang menggabungkan beberapa kondisi sekaligus. Sintaks dasarnya adalah seperti berikut:

if condition_1:
    # Kode yang dijalankan apabila condition_1 bernilai True
elif condition_2:
    # Kode yang dijalankan apabila condition_2 bernilai True
elif condition_3:
    # Kode yang dijalankan apabila condition_3 bernilai True
else:
    # Kode yang dijalankan apabila tidak ada condition yang bernilai True

Terakhir, kita juga bisa membuat conditional dengan satu baris kode saja (ternary). Perhatikan contoh berikut ini:

money_on_wallet = 100
price_of_bread = 99

output = 'I bought the bread.' if money_on_wallet >= price_of_bread else 'I couldn\'t buy the bread.'

print(output)
# output: 'I bought the bread.'