Memahami Percabangan (if, elif, else) di Python

Post image

Percabangan atau conditional statements adalah salah satu konsep fundamental dalam pemrograman. Dengan percabangan, program dapat membuat keputusan berdasarkan kondisi tertentu dan mengeksekusi kode yang berbeda tergantung pada kondisi tersebut.

Dalam kehidupan sehari-hari, kita sering membuat keputusan berdasarkan kondisi. Misalnya, “Jika hujan, maka saya akan membawa payung.” Konsep ini diterapkan dalam pemrograman sebagai percabangan.

Dalam Python, percabangan diimplementasikan dengan pernyataan if, elif, dan else. Mari kita pelajari masing-masing dengan detail dan contoh praktisnya.

Pernyataan if

Pernyataan if adalah bentuk percabangan paling dasar. Struktur dasarnya adalah:

if kondisi:
    # kode yang dijalankan jika kondisi bernilai True

Perhatikan bahwa setelah kondisi, terdapat titik dua (:) dan kode yang akan dijalankan jika kondisi terpenuhi harus diindentasi (biasanya 4 spasi atau 1 tab).

Contoh sederhana:

umur = 18

if umur >= 17:
    print("Anda sudah bisa membuat SIM")
Anda sudah bisa membuat SIM

Pada contoh di atas, kondisi umur >= 17 bernilai True karena 18 lebih besar dari 17, sehingga pesan “Anda sudah bisa membuat SIM” ditampilkan.

Mari kita lihat contoh lain:

nilai = 75

if nilai >= 60:
    print("Selamat, Anda lulus!")
    print("Silakan lanjutkan ke modul berikutnya.")
Selamat, Anda lulus!
Silakan lanjutkan ke modul berikutnya.

Pada contoh di atas, kedua baris kode yang diindentasi akan dijalankan karena kondisi nilai >= 60 bernilai True.

Jika kondisi bernilai False, maka kode yang diindentasi tidak akan dijalankan:

nilai = 45

if nilai >= 60:
    print("Selamat, Anda lulus!")
    print("Silakan lanjutkan ke modul berikutnya.")

print("Program selesai")
Program selesai

Pada contoh di atas, karena nilai 45 tidak lebih besar atau sama dengan 60, pesan kelulusan tidak ditampilkan. Namun, “Program selesai” tetap ditampilkan karena berada di luar blok if.

Pernyataan if-else

Bagaimana jika kita ingin menjalankan kode alternatif jika kondisi tidak terpenuhi? Inilah mengapa kita membutuhkan pernyataan if-else:

if kondisi:
    # kode yang dijalankan jika kondisi bernilai True
else:
    # kode yang dijalankan jika kondisi bernilai False

Mari kita modifikasi contoh sebelumnya:

nilai = 45

if nilai >= 60:
    print("Selamat, Anda lulus!")
    print("Silakan lanjutkan ke modul berikutnya.")
else:
    print("Maaf, Anda belum lulus.")
    print("Silakan coba lagi.")

print("Program selesai")
Maaf, Anda belum lulus.
Silakan coba lagi.
Program selesai

Pada contoh di atas, karena kondisi nilai >= 60 bernilai False, kode dalam blok else dijalankan.

Contoh lain dengan menggunakan input dari pengguna:

# Menggunakan input dari pengguna (dikonversi ke integer)
umur = int(input("Masukkan umur Anda: "))

if umur >= 17:
    print("Anda sudah cukup umur untuk membuat SIM")
else:
    print("Anda belum cukup umur untuk membuat SIM")
    print(f"Anda harus menunggu {17 - umur} tahun lagi")

Pada contoh di atas, kita menggunakan fungsi input() untuk mendapatkan umur dari pengguna, lalu menggunakan fungsi int() untuk mengubah input (yang awalnya string) menjadi integer. Jika umur kurang dari 17, maka kita tampilkan pesan berapa tahun lagi harus menunggu.

Pernyataan if-elif-else

Bagaimana jika kita memiliki lebih dari dua kemungkinan kondisi? Inilah mengapa kita membutuhkan pernyataan if-elif-else. elif adalah singkatan dari “else if”.

if kondisi1:
    # kode yang dijalankan jika kondisi1 bernilai True
elif kondisi2:
    # kode yang dijalankan jika kondisi1 bernilai False dan kondisi2 bernilai True
else:
    # kode yang dijalankan jika semua kondisi bernilai False

Contoh:

nilai = 80

if nilai >= 85:
    print("Nilai Anda: A")
elif nilai >= 75:
    print("Nilai Anda: B")
elif nilai >= 60:
    print("Nilai Anda: C")
elif nilai >= 50:
    print("Nilai Anda: D")
else:
    print("Nilai Anda: E")
Nilai Anda: B

Pada contoh di atas, nilai 80 tidak memenuhi kondisi pertama (nilai >= 85), tetapi memenuhi kondisi kedua (nilai >= 75), sehingga “Nilai Anda: B” ditampilkan.

Penting untuk diingat bahwa Python akan memeriksa kondisi satu per satu dari atas ke bawah, dan berhenti segera setelah menemukan kondisi yang bernilai True. Oleh karena itu, urutan kondisi sangat penting.

Dalam contoh di atas, jika kita menukar urutan kondisi:

nilai = 80

if nilai >= 60:
    print("Nilai Anda: C")
elif nilai >= 75:
    print("Nilai Anda: B")
elif nilai >= 85:
    print("Nilai Anda: A")
elif nilai >= 50:
    print("Nilai Anda: D")
else:
    print("Nilai Anda: E")
Nilai Anda: C

Meski nilai 80 seharusnya mendapat grade B, program menampilkan grade C karena kondisi nilai >= 60 ditemukan terlebih dahulu dan bernilai True.

Kondisi Bersarang (Nested Conditions)

Kita juga bisa menempatkan pernyataan if di dalam blok if, elif, atau else lainnya. Ini disebut kondisi bersarang atau nested conditions.

umur = 20
memiliki_sim = True

if umur >= 17:
    print("Anda sudah cukup umur untuk mengemudi")
    if memiliki_sim:
        print("Anda boleh mengemudi")
    else:
        print("Tetapi Anda belum memiliki SIM")
else:
    print("Anda belum cukup umur untuk mengemudi")
Anda sudah cukup umur untuk mengemudi
Anda boleh mengemudi

Pada contoh di atas, setelah memeriksa apakah umur sudah mencukupi, kita memeriksa lagi apakah orang tersebut memiliki SIM atau tidak.

Operator Logika dalam Kondisi

Seringkali kita perlu memeriksa beberapa kondisi secara bersamaan. Python menyediakan operator logika and, or, dan not untuk tujuan ini:

  • and: Bernilai True jika kedua kondisi bernilai True
  • or: Bernilai True jika salah satu atau kedua kondisi bernilai True
  • not: Membalikkan nilai kondisi, True menjadi False dan sebaliknya
umur = 20
memiliki_sim = True

# Menggunakan operator AND
if umur >= 17 and memiliki_sim:
    print("Anda boleh mengemudi")
else:
    print("Anda tidak boleh mengemudi")
Anda boleh mengemudi
hujan = False
bawa_payung = False

# Menggunakan operator OR
if hujan or bawa_payung:
    print("Anda siap menghadapi hujan")
else:
    print("Anda tidak siap menghadapi hujan")
Anda tidak siap menghadapi hujan
sedang_libur = False

# Menggunakan operator NOT
if not sedang_libur:
    print("Waktunya bekerja")
else:
    print("Selamat menikmati liburan")
Waktunya bekerja

Kita juga bisa menggabungkan beberapa operator logika:

umur = 20
memiliki_sim = True
sedang_mabuk = False

if umur >= 17 and memiliki_sim and not sedang_mabuk:
    print("Anda boleh mengemudi")
else:
    print("Anda tidak boleh mengemudi")
Anda boleh mengemudi

Dalam contoh di atas, semua kondisi harus terpenuhi agar pesan “Anda boleh mengemudi” ditampilkan.

Ternary Operator

Python menyediakan cara singkat untuk menulis pernyataan if-else dalam satu baris yang disebut ternary operator:

nilai_jika_true if kondisi else nilai_jika_false

Contoh:

umur = 20

status = "dewasa" if umur >= 17 else "belum dewasa"
print(status)
dewasa

Ternary operator sangat berguna untuk tugas-tugas sederhana, tetapi jika kondisinya kompleks, lebih baik gunakan pernyataan if-else biasa untuk menjaga keterbacaan kode.

Truthy dan Falsy Values

Di Python, selain boolean (True dan False), objek lain juga dapat dievaluasi sebagai “truthy” atau “falsy” dalam konteks kondisional.

Berikut adalah objek yang dianggap “falsy” di Python:

  • False (boolean)
  • None
  • Angka nol: 0, 0.0, 0j
  • String kosong: ""
  • Container kosong: [], (), {}, set(), range(0)

Semua objek lainnya dianggap “truthy”.

# Contoh truthy dan falsy values
nilai_list = []

if nilai_list:
    print("List tidak kosong")
else:
    print("List kosong")
List kosong
nilai_string = "Hello"

if nilai_string:
    print("String tidak kosong")
else:
    print("String kosong")
String tidak kosong

Kemampuan ini sering digunakan untuk memeriksa apakah sebuah container (seperti list, tuple, atau dictionary) kosong atau tidak, atau apakah sebuah string kosong atau tidak.

Contoh Aplikasi Praktis

1. Kalkulator Sederhana

print("Kalkulator Sederhana")
print("Operasi yang tersedia: +, -, *, /")

angka1 = float(input("Masukkan angka pertama: "))
operasi = input("Masukkan operasi: ")
angka2 = float(input("Masukkan angka kedua: "))

if operasi == "+":
    hasil = angka1 + angka2
    print(f"{angka1} + {angka2} = {hasil}")
elif operasi == "-":
    hasil = angka1 - angka2
    print(f"{angka1} - {angka2} = {hasil}")
elif operasi == "*":
    hasil = angka1 * angka2
    print(f"{angka1} * {angka2} = {hasil}")
elif operasi == "/":
    if angka2 == 0:
        print("Error: Pembagian dengan nol tidak diperbolehkan")
    else:
        hasil = angka1 / angka2
        print(f"{angka1} / {angka2} = {hasil}")
else:
    print("Operasi tidak valid")

Dalam contoh di atas, kita meminta pengguna memasukkan dua angka dan operasi yang ingin dilakukan. Berdasarkan operasi tersebut, kita melakukan perhitungan yang sesuai. Perhatikan juga bahwa kita memeriksa apakah angka kedua adalah nol sebelum melakukan pembagian, untuk menghindari error.

2. Rekomendasi Film Berdasarkan Usia

nama = input("Masukkan nama Anda: ")
umur = int(input("Masukkan umur Anda: "))

print(f"\nHalo, {nama}!")

if umur < 13:
    print("Rekomendasi film: Film animasi atau film keluarga dengan rating G atau PG")
    print("Contoh: Toy Story, Finding Nemo, Frozen")
elif umur < 17:
    print("Rekomendasi film: Film petualangan atau sci-fi dengan rating PG-13")
    print("Contoh: Avengers, Star Wars, Harry Potter")
elif umur < 21:
    print("Rekomendasi film: Film aksi, thriller, atau drama dengan rating PG-13 atau R")
    print("Contoh: The Dark Knight, Inception, The Shawshank Redemption")
else:
    print("Rekomendasi film: Semua genre film dengan rating apa pun")
    print("Contoh: The Godfather, Pulp Fiction, The Silence of the Lambs")

Dalam contoh di atas, kita memberikan rekomendasi film yang berbeda berdasarkan umur pengguna.

3. Menentukan Kelayakan Pinjaman

print("Sistem Penentuan Kelayakan Pinjaman")
print("-----------------------------------")

gaji = float(input("Masukkan gaji bulanan (Rp): "))
lama_bekerja = int(input("Masukkan lama bekerja (tahun): "))
kredit_score = int(input("Masukkan credit score (300-850): "))
pinjaman_lain = input("Apakah memiliki pinjaman lain? (ya/tidak): ").lower()

if gaji >= 5000000 and lama_bekerja >= 2:
    if kredit_score >= 650:
        if pinjaman_lain == "tidak":
            print("\nStatus: LAYAK")
            print("Anda memenuhi semua kriteria untuk pinjaman")
        else:
            print("\nStatus: PERTIMBANGAN")
            print("Gaji dan masa kerja memenuhi syarat, credit score baik")
            print("Namun perlu pertimbangan karena sudah memiliki pinjaman lain")
    elif kredit_score >= 500:
        print("\nStatus: PERTIMBANGAN")
        print("Gaji dan masa kerja memenuhi syarat")
        print("Namun credit score perlu ditingkatkan")
    else:
        print("\nStatus: TIDAK LAYAK")
        print("Credit score terlalu rendah")
elif gaji >= 5000000:
    print("\nStatus: PERTIMBANGAN")
    print("Gaji memenuhi syarat, namun masa kerja kurang dari 2 tahun")
else:
    print("\nStatus: TIDAK LAYAK")
    print("Gaji kurang dari syarat minimum (Rp 5.000.000)")

Dalam contoh di atas, kita menggunakan kondisi bersarang untuk menentukan kelayakan seseorang mendapatkan pinjaman berdasarkan beberapa kriteria seperti gaji, lama bekerja, credit score, dan keberadaan pinjaman lain.

Tips Penggunaan Percabangan

No Tip Deskripsi
1 Perhatikan indentasi Python menggunakan indentasi untuk menentukan blok kode. Indentasi yang salah dapat menyebabkan error atau logika yang tidak diinginkan
2 Gunakan kondisi yang jelas Buat kondisi yang mudah dibaca dan dipahami. Gunakan tanda kurung jika diperlukan untuk memperjelas urutan operasi
3 Hati-hati dengan urutan elif Dalam rangkaian if-elif-else, Python akan berhenti setelah menemukan kondisi pertama yang bernilai True
4 Pertimbangkan semua kemungkinan Pastikan semua kemungkinan kondisi sudah ditangani, termasuk kasus-kasus edge
5 Hindari nested if yang terlalu dalam Kondisi bersarang yang terlalu dalam membuat kode sulit dibaca. Pertimbangkan untuk menggabungkan kondisi menggunakan operator logika
6 Gunakan ternary operator untuk kasus sederhana Untuk kondisi sederhana, ternary operator dapat membuat kode lebih ringkas
7 Validasi input pengguna Selalu validasi input pengguna untuk menghindari error atau perilaku yang tidak diinginkan
8 Gunakan docstrings dan komentar Jelaskan logika kompleks dengan docstrings dan komentar untuk memudahkan pemahaman kode

Kesimpulan

Percabangan adalah komponen penting dalam pemrograman yang memungkinkan program untuk membuat keputusan berdasarkan kondisi tertentu. Dalam Python, percabangan diimplementasikan dengan pernyataan if, elif, dan else.

Dalam artikel ini, kita telah mempelajari:

  • Pernyataan if dasar untuk menjalankan kode jika kondisi terpenuhi
  • Pernyataan if-else untuk menjalankan kode alternatif jika kondisi tidak terpenuhi
  • Pernyataan if-elif-else untuk menangani multiple kondisi
  • Kondisi bersarang (nested conditions) untuk logika yang lebih kompleks
  • Operator logika (and, or, not) untuk menggabungkan kondisi
  • Ternary operator untuk pernyataan if-else dalam satu baris
  • Truthy dan falsy values di Python
  • Contoh aplikasi praktis percabangan dalam program nyata

Dengan memahami konsep percabangan dengan baik, Anda dapat membuat program Python yang lebih dinamis dan responsif terhadap berbagai kondisi input. Mulailah dengan kasus-kasus sederhana dan tingkatkan kompleksitasnya seiring Anda menjadi lebih terbiasa dengan konsep ini. Selamat mencoba dan happy coding!

comments powered by Disqus

You May Also Like