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.

flowchart TD
    A[Start] --> B{Am I hungry?}
    B -- True --> C{Is food exist?}
    C -- True --> D[Eat]
    B -- False --> E[Skip eating]
    C -- False --> F[Go shopping]
    F --> G{Have enough money?}
    G -- True --> H[Buy food]
    H --> D
    G -- False --> I[Can't buy food]
    I --> E
    E --> J[Done]
    D --> J

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.

flowchart TD
    A[Start] --> B{Have enough money to buy the bread?}
    B -- True --> C[Pay for the bread]
    C --> D[Print 'I bought the bread...']
    D --> E[Done]
    B -- False --> F[Print 'I coudn't buy the bread ...']
    F --> E

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.

flowchart TD
    A[Start] --> B{Have enough money to buy the bread?}
    B -- True --> C[Pay for the bread]
    B -- False --> G[Do nothing]
    C --> D[Print 'I bought the bread...']
    D --> E[Print 'I will buy the jam as well.']
    G --> E
    E --> F[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.'
flowchart TD
    A[Start] --> B{Have enough money to buy the bread?}
    B -- True --> C[Pay for the bread]
    C --> D[Print 'I bought the bread...']
    D --> E{Have money left?}
    E -- True --> F[Print 'I will give the changes...']
    E -- False --> G[Print 'I have no money left.']
    F --> H[Done]
    G --> H[Done]
    B -- False --> I[Print 'I couldn't buy the bread ...']
    I --> H

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.'