Python & AI Tutorials Logo
Pemrograman Python

10. Menggunakan Ekspresi Kondisional (Ekspresi if-else)

Di Bab 8, kita belajar cara membuat keputusan di program kita menggunakan statement if. Statement ini memungkinkan kita mengeksekusi blok kode yang berbeda berdasarkan kondisi. Namun, kadang kita perlu memilih antara dua nilai alih-alih dua blok kode. Python menyediakan sintaks khusus untuk situasi umum ini: ekspresi kondisional.

Ekspresi kondisional (juga disebut ekspresi ternary atau operator ternary di bahasa lain) memungkinkan kita menulis kode pengambilan keputusan yang ringkas ketika kita hanya perlu memilih satu nilai atau nilai lain berdasarkan sebuah kondisi. Ini sangat berguna untuk assignment dan saat membangun ekspresi yang lebih besar.

10.1) Apa Itu Ekspresi Kondisional

Sebuah ekspresi kondisional adalah satu ekspresi yang mengevaluasi menjadi salah satu dari dua nilai berdasarkan sebuah kondisi. Berbeda dengan statement if, yang mengontrol blok kode mana yang dieksekusi, ekspresi kondisional menghasilkan sebuah nilai yang bisa langsung digunakan.

Mari lihat skenario yang umum. Misalnya kita sedang menulis program untuk mengategorikan siswa berdasarkan usia:

python
# Menggunakan statement if (yang sudah kita ketahui)
age = 16
if age >= 18:
    category = "adult"
else:
    category = "minor"
print(f"Category: {category}")  # Output: Category: minor

Ini bekerja dengan sempurna, tetapi perhatikan bahwa kita sebenarnya hanya memilih antara dua nilai string. Strukturnya agak bertele-tele untuk keputusan sesederhana ini. Berikut logika yang sama menggunakan ekspresi kondisional:

python
# Menggunakan ekspresi kondisional
age = 16
category = "adult" if age >= 18 else "minor"
print(f"Category: {category}")  # Output: Category: minor

Kedua versi menghasilkan output yang identik, tetapi ekspresi kondisional lebih ringkas. Ia langsung meng-assign salah satu dari dua nilai ke category berdasarkan kondisinya.

Memahami Perbedaan Mendasarnya

Perbedaan kuncinya adalah bahwa ekspresi kondisional adalah ekspresi, bukan statement:

  • Sebuah ekspresi adalah sesuatu yang mengevaluasi menjadi sebuah nilai. Kamu bisa menggunakannya di mana pun sebuah nilai diharapkan: dalam assignment, sebagai argumen fungsi, di dalam ekspresi lain, dan sebagainya.
  • Sebuah statement adalah instruksi lengkap yang melakukan sebuah aksi tetapi tidak menghasilkan nilai.
python
# Ini adalah ekspresi - menghasilkan sebuah nilai
result = 10 if True else 20
 
# Ini adalah statement - melakukan aksi tetapi bukan nilai itu sendiri
if True:
    result = 10
else:
    result = 20

Karena ekspresi kondisional menghasilkan nilai, ia lebih fleksibel dalam situasi tertentu. Namun, ini tidak berarti ia selalu lebih baik—kita akan membahas kapan menggunakan masing-masing pendekatan nanti di bab ini.

10.2) Sintaks Ekspresi if–else

Sintaks dari ekspresi kondisional mengikuti pola ini:

value_if_true if condition else value_if_false

Mari kita uraikan setiap komponennya:

  1. value_if_true: Ekspresi yang dievaluasi dan dikembalikan jika kondisinya True
  2. if: Keyword yang memperkenalkan kondisi
  3. condition: Ekspresi boolean yang menentukan nilai mana yang dikembalikan
  4. else: Keyword yang memperkenalkan nilai alternatif
  5. value_if_false: Ekspresi yang dievaluasi dan dikembalikan jika kondisinya False

Perhatikan bahwa urutannya mungkin terasa tidak biasa jika kamu terbiasa dengan bahasa pemrograman lain. Di Python, nilai untuk kondisi "true" muncul lebih dulu, lalu kondisinya, lalu nilai untuk kondisi "false". Urutan ini terbaca agak seperti bahasa Inggris natural: "Berikan saya X jika kondisinya benar, kalau tidak berikan saya Y."

Ya

Tidak

Mulai: Evaluasi Kondisi

Kondisi True?

Evaluasi dan Kembalikan
value_if_true

Evaluasi dan Kembalikan
value_if_false

Hasil Tersedia

Mari lihat beberapa contoh dengan tipe nilai yang berbeda:

python
# Contoh 1: Memilih antara angka
temperature = 25
comfort_level = "warm" if temperature > 20 else "cool"
print(comfort_level)  # Output: warm
 
# Contoh 2: Memilih antara perhitungan
score = 85
bonus = 10 if score >= 90 else 5
print(f"Bonus points: {bonus}")  # Output: Bonus points: 5
 
# Contoh 3: Memilih antara nilai boolean
has_permission = True
access = "granted" if has_permission else "denied"
print(f"Access: {access}")  # Output: Access: granted
 
# Contoh 4: Kondisinya bisa berupa ekspresi boolean apa pun
username = "admin"
role = "administrator" if username == "admin" else "regular user"
print(f"Role: {role}")  # Output: Role: administrator

Catatan Sintaks Penting

Bagian else bersifat wajib dalam ekspresi kondisional. Berbeda dengan statement if di mana else bersifat opsional, kamu harus menyediakan kedua alternatif:

python
# Ini TIDAK VALID - else hilang
# result = "yes" if True  # SyntaxError
 
# Ini VALID - kedua cabang disediakan
result = "yes" if True else "no"

Syarat ini masuk akal karena sebuah ekspresi harus selalu menghasilkan nilai. Jika kondisinya False dan tidak ada klausa else, nilai apa yang seharusnya dihasilkan oleh ekspresi? Python mengharuskan kamu eksplisit terhadap kedua kemungkinan.

10.3) Cara Ekspresi Kondisional Dievaluasi

Memahami bagaimana Python mengevaluasi ekspresi kondisional membantu kamu menulis kode yang benar dan memprediksi apa yang akan dilakukan programmu. Proses evaluasinya mengikuti urutan tertentu yang jelas dan dapat diprediksi.

Proses Evaluasi

Python mengevaluasi ekspresi kondisional dalam urutan berikut:

  1. Evaluasi kondisi (ekspresi boolean setelah if)
  2. Berdasarkan hasilnya:
    • Jika kondisinya True, evaluasi dan kembalikan value_if_true
    • Jika kondisinya False, evaluasi dan kembalikan value_if_false

Yang penting, Python hanya mengevaluasi satu dari dua ekspresi nilai, bukan keduanya. Ini disebut evaluasi short-circuit dan mirip dengan cara operator and dan or bekerja (yang kita pelajari di Bab 9).

python
# Hanya cabang yang relevan yang dievaluasi
x = 10
result = x * 2 if x > 5 else x / 2
# Karena x > 5 adalah True, Python mengevaluasi x * 2 (hasilnya 20)
# dan tidak pernah mengevaluasi x / 2
print(result)  # Output: 20

Mengapa Evaluasi Short-Circuit Itu Penting

Evaluasi short-circuit bisa mencegah error dan meningkatkan efisiensi:

python
# Contoh 1: Menghindari pembagian dengan nol
denominator = 0
result = "undefined" if denominator == 0 else 100 / denominator
print(result)  # Output: undefined
# Pembagian 100 / denominator tidak pernah dicoba karena
# kondisinya True, jadi kita menghindari ZeroDivisionError
python
# Contoh 2: Menghindari operasi pada None
data = None
length = 0 if data is None else len(data)
print(length)  # Output: 0
# len(data) tidak pernah dipanggil karena data adalah None,
# sehingga menghindari TypeError

Truthiness dalam Ekspresi Kondisional

Seperti pada statement if (Bab 8), kondisi dalam ekspresi kondisional menggunakan aturan truthiness Python. Nilai apa pun bisa digunakan sebagai kondisi:

python
# String kosong bersifat falsy
name = ""
greeting = f"Hello, {name}" if name else "Hello, guest"
print(greeting)  # Output: Hello, guest
 
# String tidak kosong bersifat truthy
name = "Alice"
greeting = f"Hello, {name}" if name else "Hello, guest"
print(greeting)  # Output: Hello, Alice
 
# Nol bersifat falsy, bukan nol bersifat truthy
items = 0
message = "You have items" if items else "Your cart is empty"
print(message)  # Output: Your cart is empty
 
items = 3
message = "You have items" if items else "Your cart is empty"
print(message)  # Output: You have items

Evaluasi Bersarang

Nilai dalam ekspresi kondisional bisa berupa ekspresi juga, termasuk ekspresi kondisional lainnya. Python mengevaluasi ini dari bagian terdalam ke luar:

python
# value_if_true sendiri merupakan sebuah perhitungan
age = 25
price = age * 2 if age < 18 else age * 3
print(price)  # Output: 75
# Langkah: age < 18 → False → evaluasi age * 3 → 75
 
# Kondisinya adalah ekspresi yang kompleks
score = 85
grade = 90
status = "excellent" if score >= 80 and grade >= 85 else "good"
print(status)  # Output: excellent
# Langkah: score >= 80 → True, grade >= 85 → True
#        True and True → True → kembalikan "excellent"

10.4) Menggunakan Ekspresi Kondisional dalam Assignment

Salah satu penggunaan paling umum dari ekspresi kondisional adalah dalam assignment, ketika kita ingin mengatur sebuah variabel menjadi salah satu dari dua nilai berdasarkan sebuah kondisi. Pola ini sering muncul dalam kode dunia nyata.

Pola Assignment Sederhana

Mari lihat contoh praktis di mana ekspresi kondisional membuat assignment lebih bersih:

python
# Contoh 1: Menetapkan diskon berdasarkan keanggotaan
is_member = True
discount = 0.15 if is_member else 0.05
print(f"Discount: {discount * 100}%")  # Output: Discount: 15.0%
 
# Contoh 2: Menentukan biaya pengiriman
order_total = 45.00
shipping = 0 if order_total >= 50 else 5.99
print(f"Shipping: ${shipping:.2f}")  # Output: Shipping: $5.99
 
# Contoh 3: Menetapkan nilai default
user_input = ""  # Mensimulasikan input kosong
page_size = int(user_input) if user_input else 10
print(f"Items per page: {page_size}")  # Output: Items per page: 10

Membandingkan dengan Statement if

Mari lihat assignment yang sama ditulis dengan statement if untuk mengapresiasi perbedaannya:

python
# Menggunakan statement if (lebih bertele-tele)
is_member = True
if is_member:
    discount = 0.15
else:
    discount = 0.05
 
# Menggunakan ekspresi kondisional (lebih ringkas)
is_member = True
discount = 0.15 if is_member else 0.05

Kedua pendekatan bekerja dengan benar, tetapi ekspresi kondisional lebih singkat saat kamu hanya memilih antara dua nilai. Versi statement if membutuhkan empat baris dan mengulang nama variabel discount dua kali, sedangkan ekspresi kondisional melakukan hal yang sama dalam satu baris.

Beberapa Assignment dengan Logika yang Konsisten

Saat kamu perlu membuat beberapa assignment berdasarkan kondisi yang sama, kamu punya pilihan:

python
# Pendekatan 1: Beberapa ekspresi kondisional
is_premium = True
price = 99.99 if is_premium else 149.99
features = "all" if is_premium else "basic"
support = "priority" if is_premium else "standard"
 
# Pendekatan 2: Satu statement if untuk beberapa assignment
is_premium = True
if is_premium:
    price = 99.99
    features = "all"
    support = "priority"
else:
    price = 149.99
    features = "basic"
    support = "standard"

Dalam kasus ini, pendekatan statement if (Pendekatan 2) sering lebih mudah dibaca karena mengelompokkan assignment yang saling terkait dan membuat hubungan di antaranya jelas. Pendekatan ekspresi kondisional (Pendekatan 1) bekerja, tetapi mengulang kondisi tiga kali, yang bisa lebih sulit dirawat jika kondisinya perlu berubah.

10.5) Menggunakan Ekspresi Kondisional di Dalam Ekspresi yang Lebih Besar

Karena ekspresi kondisional menghasilkan nilai, ia bisa disisipkan di dalam ekspresi yang lebih besar. Ini memungkinkan kode yang kuat dan ringkas, meskipun perlu kehati-hatian agar keterbacaan tetap terjaga.

Ekspresi Kondisional dalam Aritmetika

Kamu bisa menggunakan ekspresi kondisional sebagai operand dalam operasi aritmetika:

python
# Penjumlahan kondisional
base_score = 80
bonus_eligible = True
final_score = base_score + (10 if bonus_eligible else 0)
print(f"Final score: {final_score}")  # Output: Final score: 90

Ekspresi Kondisional dalam Pemformatan String

Ekspresi kondisional bekerja mulus dengan f-string dan operasi string lainnya:

python
# Contoh 1: Pluralisasi dalam pesan
item_count = 1
message = f"You have {item_count} {'item' if item_count == 1 else 'items'}"
print(message)  # Output: You have 1 item
 
item_count = 3
message = f"You have {item_count} {'item' if item_count == 1 else 'items'}"
print(message)  # Output: You have 3 items
 
# Contoh 2: Salam kondisional berdasarkan waktu
hour = 14
greeting = f"Good {'morning' if hour < 12 else 'afternoon'}, user!"
print(greeting)  # Output: Good afternoon, user!

Ekspresi Kondisional Bersarang

Kamu bisa membuat ekspresi kondisional bersarang untuk menangani beberapa kondisi, meski ini sebaiknya dilakukan secukupnya:

python
# Contoh 1: Klasifikasi tiga arah
score = 85
grade = "A" if score >= 90 else ("B" if score >= 80 else "C")
print(f"Grade: {grade}")  # Output: Grade: B
 
# Mari kita telusuri ini:
# score >= 90? Tidak (85 < 90)
# Jadi evaluasi bagian else: ("B" if score >= 80 else "C")
# score >= 80? Ya (85 >= 80)
# Kembalikan "B"
 
# Contoh 2: Klasifikasi suhu
temp = 15
category = "hot" if temp > 25 else ("warm" if temp > 15 else "cold")
print(f"Category: {category}")  # Output: Category: cold
 
# Contoh 3: Penentuan harga berdasarkan usia dengan beberapa tingkat
age = 65
price = 0 if age < 5 else (8 if age < 18 else (12 if age < 65 else 8))
print(f"Ticket price: ${price}")  # Output: Ticket price: $8

Catatan Penting tentang Nesting: Walaupun ekspresi kondisional bersarang itu mungkin, ia bisa dengan cepat menjadi sulit dibaca. Contoh ketiga di atas secara teknis benar, tetapi sulit dipahami. Kita akan membahas alternatif yang lebih baik di Bagian 10.7.

Ekspresi Kondisional dalam Perbandingan

Kamu bisa menggunakan ekspresi kondisional di dalam operasi perbandingan:

python
# Contoh 1: Membandingkan dengan nilai kondisional
base_value = 10
threshold = 15
is_large = True
result = base_value > (threshold if is_large else 5)
print(result)  # Output: False
# Dievaluasi: base_value > 15 → 10 > 15 → False
 
# Contoh 2: Pengecekan kesetaraan kondisional
user_role = "admin"
required_role = "admin" if True else "user"
has_access = user_role == required_role
print(has_access)  # Output: True

10.6) Ekspresi Kondisional vs Statement if (Ekspresi vs Statement)

Memahami kapan harus memakai ekspresi kondisional versus statement if sangat penting untuk menulis kode yang jelas dan mudah dirawat. Perbedaannya bermuara pada perbedaan mendasar antara ekspresi dan statement di Python.

Ekspresi vs Statement: Perbedaan Inti

Mari kita perjelas istilah ini dengan tepat:

  • Sebuah ekspresi adalah kombinasi nilai, variabel, operator, dan pemanggilan fungsi yang dievaluasi Python untuk menghasilkan sebuah nilai. Contoh: 2 + 3, "hello".upper(), x if x > 0 else 0

  • Sebuah statement adalah instruksi lengkap yang melakukan sebuah aksi. Statement tidak menghasilkan nilai—statement melakukan sesuatu. Contoh: if x > 0: print("positive"), x = 5, for i in range(10): print(i)

python
# Ini adalah ekspresi - menghasilkan sebuah nilai (7)
result = 3 + 4
 
# Ini adalah statement - melakukan aksi (mencetak)
print("Hello")
 
# Ekspresi kondisional adalah sebuah ekspresi
value = "yes" if True else "no"  # Menghasilkan "yes"
 
# Statement if adalah sebuah statement
if True:
    value = "yes"
else:
    value = "no"
# Melakukan assignment, tetapi if itu sendiri tidak menghasilkan nilai

Kapan Menggunakan Ekspresi Kondisional

Ekspresi kondisional ideal ketika:

1. Kamu memilih antara dua nilai untuk sebuah assignment:

python
# Penggunaan yang baik dari ekspresi kondisional
age = 16
status = "adult" if age >= 18 else "minor"
 
# Kurang ringkas dengan statement if
age = 16
if age >= 18:
    status = "adult"
else:
    status = "minor"

2. Kamu butuh nilai secara inline dalam sebuah ekspresi yang lebih besar:

python
# Penggunaan yang baik - nilai diperlukan di f-string
items = 1
print(f"You have {items} {'item' if items == 1 else 'items'}")
# Output: You have 1 item
 
# Canggung dengan statement if - butuh pre-assignment
items = 1
if items == 1:
    word = "item"
else:
    word = "items"
print(f"You have {items} {word}")

3. Logikanya sederhana dan ekspresinya tetap mudah dibaca:

python
# Penggunaan yang baik - logika sederhana, jelas
discount = 0.15 if is_member else 0.05
max_value = a if a > b else b
sign = "positive" if x > 0 else "non-positive"

Kapan Menggunakan Statement if

Gunakan statement if ketika:

1. Kamu perlu mengeksekusi beberapa statement pada setiap cabang:

python
# Gunakan statement if - beberapa aksi per cabang
if score >= 90:
    grade = "A"
    message = "Excellent work!"
    bonus_points = 10
else:
    grade = "B"
    message = "Good job!"
    bonus_points = 5
 
# Ekspresi kondisional akan terasa canggung di sini:
# grade = "A" if score >= 90 else "B"
# message = "Excellent work!" if score >= 90 else "Good job!"
# bonus_points = 10 if score >= 90 else 5
# (Mengulang kondisi tanpa perlu)

2. Kamu punya lebih dari dua cabang (elif):

python
# Gunakan statement if - beberapa cabang
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "F"
 
# Ekspresi kondisional bersarang jadi sulit dibaca:
# grade = "A" if score >= 90 else ("B" if score >= 80 else ("C" if score >= 70 else "F"))

3. Salah satu cabang seharusnya tidak melakukan apa-apa:

python
# Gunakan statement if - cabang else tidak melakukan apa-apa
if error_occurred:
    print("An error occurred")
    log_error(error_message)
# Tidak perlu else
 
# Ekspresi kondisional mengharuskan kedua cabang:
# result = handle_error() if error_occurred else None  # Canggung

Perbandingan Berdampingan

Mari lihat logika yang sama diimplementasikan dengan dua cara:

python
# Skenario: Menetapkan biaya pengiriman
 
# Versi 1: Ekspresi kondisional (bagus untuk pilihan nilai yang sederhana)
order_total = 45.00
shipping = 0 if order_total >= 50 else 5.99
 
# Versi 2: Statement if (lebih bertele-tele tetapi lebih jelas untuk sebagian orang)
order_total = 45.00
if order_total >= 50:
    shipping = 0
else:
    shipping = 5.99
 
# Keduanya menghasilkan hasil yang sama
print(f"Shipping: ${shipping:.2f}")  # Output: Shipping: $5.99

Untuk kasus sederhana ini, ekspresi kondisional lebih ringkas dan sama jelasnya. Tetapi pertimbangkan skenario yang lebih kompleks:

python
# Skenario: Memproses pesanan dengan beberapa langkah
 
# Versi 1: Statement if (sesuai untuk beberapa aksi)
order_total = 45.00
if order_total >= 50:
    shipping = 0
    discount = 0.10
    message = "Free shipping applied!"
else:
    shipping = 5.99
    discount = 0
    message = "Add $5 more for free shipping"
 
# Versi 2: Ekspresi kondisional (canggung dan repetitif)
order_total = 45.00
shipping = 0 if order_total >= 50 else 5.99
discount = 0.10 if order_total >= 50 else 0
message = "Free shipping applied!" if order_total >= 50 else "Add $5 more for free shipping"

Versi statement if lebih jelas di sini karena mengelompokkan logika yang saling terkait dan tidak mengulang kondisi.

10.7) Kapan Ekspresi Kondisional Meningkatkan Keterbacaan (dan Kapan Tidak)

Ekspresi kondisional adalah alat yang kuat, tetapi seperti alat apa pun, ia bisa disalahgunakan. Tujuannya selalu menulis kode yang bukan hanya benar, tetapi juga jelas dan mudah dirawat. Mari kita bahas panduan untuk menggunakan ekspresi kondisional secara efektif.

Kapan Ekspresi Kondisional Meningkatkan Keterbacaan

1. Pilihan yang Sederhana dan Jelas Antara Dua Nilai

Ekspresi kondisional unggul ketika logikanya lurus:

python
# Penggunaan yang sangat baik - sangat jelas
discount = 0.20 if is_member else 0.10
 
# Penggunaan yang sangat baik - maknanya jelas
status = "active" if user_logged_in else "inactive"
 
# Penggunaan yang sangat baik - pilihan boolean sederhana
can_vote = True if age >= 18 else False
# Walau ini bisa lebih sederhana: can_vote = age >= 18

2. Pemilihan Nilai Inline dalam Ekspresi

Saat kamu butuh nilai secara inline dan memisahkannya akan terasa canggung:

python
# Penggunaan yang sangat baik - pluralisasi yang natural
print(f"Found {count} {'result' if count == 1 else 'results'}")
 
# Penggunaan yang sangat baik - penyesuaian perhitungan inline
total = base_price * (0.9 if is_sale else 1.0)
 
# Penggunaan yang sangat baik - pemformatan kondisional
output = f"Status: {status.upper() if is_error else status.lower()}"

3. Menetapkan Nilai Default

Ekspresi kondisional cocok untuk menyediakan nilai cadangan:

python
# Penggunaan yang sangat baik - pola nilai default
display_name = username if username else "Guest"
 
# Penggunaan yang sangat baik - konfigurasi dengan default
page_size = user_preference if user_preference else 25
 
# Penggunaan yang sangat baik - pembagian aman
result = total / count if count > 0 else 0

Kapan Ekspresi Kondisional Menurunkan Keterbacaan

1. Ekspresi Kondisional Bersarang

Nesting ekspresi kondisional membuat kode sulit dibaca:

python
# Keterbacaan buruk - ekspresi kondisional bersarang
grade = "A" if score >= 90 else ("B" if score >= 80 else ("C" if score >= 70 else "F"))
 
# Jauh lebih baik - gunakan statement if-elif-else
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "F"

Versi if-elif-else langsung bisa dipahami. Ekspresi kondisional bersarang membutuhkan penguraian yang teliti untuk memahami logikanya.

2. Kondisi yang Kompleks

Saat kondisi itu sendiri kompleks, ekspresi kondisional jadi sulit dibaca:

python
# Keterbacaan buruk - kondisi kompleks
result = "eligible" if age >= 18 and income > 30000 and credit_score > 650 and not has_bankruptcy else "not eligible"
 
# Lebih baik - gunakan statement if dengan struktur yang jelas
if age >= 18 and income > 30000 and credit_score > 650 and not has_bankruptcy:
    result = "eligible"
else:
    result = "not eligible"
 
# Bahkan lebih baik - pecah kondisinya
meets_age_requirement = age >= 18
meets_income_requirement = income > 30000
meets_credit_requirement = credit_score > 650
has_clean_record = not has_bankruptcy
 
if meets_age_requirement and meets_income_requirement and meets_credit_requirement and has_clean_record:
    result = "eligible"
else:
    result = "not eligible"

3. Beberapa Ekspresi Kondisional dalam Satu Baris

Menggabungkan beberapa ekspresi kondisional dalam satu baris:

python
# Keterbacaan buruk - terlalu banyak dalam satu baris
price = base * (0.9 if is_member else 1.0) * (0.85 if is_sale else 1.0) + (0 if free_shipping else 5.99)
 
# Lebih baik - pecah menjadi langkah-langkah
member_multiplier = 0.9 if is_member else 1.0
sale_multiplier = 0.85 if is_sale else 1.0
shipping_cost = 0 if free_shipping else 5.99
price = base * member_multiplier * sale_multiplier + shipping_cost
 
# Atau gunakan statement if jika logikanya kompleks
if is_member:
    price = base * 0.9
else:
    price = base
 
if is_sale:
    price = price * 0.85
 
if free_shipping:
    shipping_cost = 0
else:
    shipping_cost = 5.99
 
price = price + shipping_cost

Intinya

Gunakan ekspresi kondisional ketika itu membuat kode kamu lebih jelas dan lebih ringkas. Gunakan statement if ketika kamu membutuhkan:

  • Beberapa statement per cabang
  • Lebih dari dua cabang (elif)
  • Kondisi atau logika yang kompleks
  • Side effect atau aksi alih-alih pemilihan nilai

Jika ragu, utamakan kejelasan daripada “kepintaran”. Kode jauh lebih sering dibaca daripada ditulis, jadi optimalkan untuk pembaca.


Ekspresi kondisional adalah tambahan yang berharga untuk toolkit Python kamu. Ia memungkinkan kamu menulis kode yang ringkas dan elegan saat memilih antara dua nilai. Dengan memahami kapan ia meningkatkan keterbacaan dan kapan tidak, kamu bisa membuat keputusan yang tepat tentang kapan menggunakannya.

Prinsip kunci yang perlu diingat:

  1. Ekspresi kondisional menghasilkan nilai dan bisa digunakan di mana pun sebuah nilai dibutuhkan
  2. Sintaksnya adalah value_if_true if condition else value_if_false
  3. Python hanya mengevaluasi cabang yang relevan (evaluasi short-circuit)
  4. Ini ideal untuk pilihan nilai sederhana dalam assignment dan ekspresi
  5. Gunakan statement if untuk beberapa aksi, logika kompleks, atau lebih dari dua cabang
  6. Prioritaskan keterbacaan—jika ekspresi kondisional sulit dipahami, gunakan statement if saja

Saat kamu terus belajar Python, kamu akan mengembangkan intuisi kapan ekspresi kondisional memperkaya kode kamu. Berlatihlah menggunakannya pada kasus sederhana terlebih dulu, dan secara bertahap kamu akan mengenali pola-pola di mana ia benar-benar bersinar. Di bab berikutnya, kita akan mengeksplorasi loop while, yang memungkinkan kita mengulang aksi berdasarkan kondisi—membangun di atas keterampilan pengambilan keputusan yang sudah kita kembangkan di bagian buku ini.

© 2025. Primesoft Co., Ltd.
support@primesoft.ai