Pendamping Bab 8: Percabangan dengan if, elif, dan else. Gunakan nomor contoh dan latihan yang sama dengan buku.
Tujuan Belajar
- Menentukan cabang berdasarkan kondisi.
- Menggabungkan perbandingan dengan and, or, dan not.
- Memeriksa batas nilai pada aturan keputusan.
Persiapan
Kamu sudah memahami variabel, boolean, dan string. Contoh inti memakai nilai yang ditulis langsung; input dan try/except dibahas pada Bab 10 dan Bab 15.
Program dengan tombol Coba di IDE dapat dijalankan di browser. Untuk program lokal, unduh sumber, ekstrak ZIP, lalu ikuti README.txt.
Pembahasan
08-01 – Struktur Dasar if
Code if memeriksa apakah suatu kondisi benar (True). Jika ya, program menjalankan blok code di bawahnya.
Coba di IDE Unduh Sumberumur = 18
if umur >= 17:
print("Budi sudah bisa membuat KTP!")
Hasil yang diharapkan:
Budi sudah bisa membuat KTP!Coba ubah: Ubah umur dari 18 menjadi 19, lalu prediksi hasilnya.
08-02 – Menambahkan else
else menangani kasus ketika kondisi if salah (False). Ini seperti mengatakan, "Jika kondisi A tidak terpenuhi, maka lakukan B.".
Coba di IDE Unduh Sumberumur = 15
if umur >= 17:
print("Budi sudah bisa buat KTP")
else:
print("Budi belum bisa buat KTP")
Hasil yang diharapkan:
Budi belum bisa buat KTPCoba ubah: Ubah umur dari 15 menjadi 16, lalu prediksi hasilnya.
08-03 – Menggunakan elif (else if)
Instruksi dijalankan dari atas ke bawah; print menampilkan nilai saat instruksi itu dijalankan.
Coba di IDE Unduh Sumbernilai = 85
if nilai >= 90:
print("Grade A")
elif nilai >= 75:
print("Grade B")
elif nilai >= 60:
print("Grade C")
else:
print("Grade D")
Hasil yang diharapkan:
Grade BCoba ubah: Ubah nilai dari 85 menjadi 86, lalu prediksi hasilnya.
08-04 – Operator Perbandingan
Instruksi dijalankan dari atas ke bawah; print menampilkan nilai saat instruksi itu dijalankan.
Coba di IDE Unduh Sumberangka_saya = 7
if angka_saya < 10:
print("Angka saya kurang dari 10")
Hasil yang diharapkan:
Angka saya kurang dari 10Coba ubah: Ubah angka_saya dari 7 menjadi 8, lalu prediksi hasilnya.
08-05 – Operator Logika
Instruksi dijalankan dari atas ke bawah; print menampilkan nilai saat instruksi itu dijalankan.
Coba di IDE Unduh Sumberumur = 20
sudah_lulus_sma = True
if umur >= 18 and sudah_lulus_sma:
# Keduanya True, jadi ini dijalankan
print("Budi bisa daftar kuliah!")
else:
print("Budi belum memenuhi syarat.")
Hasil yang diharapkan:
Budi bisa daftar kuliah!Coba ubah: Ubah umur dari 20 menjadi 21, lalu prediksi hasilnya.
08-06 – if Bersarang (Nested If)
Kamu bisa menempatkan if di dalam if (atau elif/else) untuk logika yang lebih kompleks atau bertingkat. Ini seperti membuat keputusan di dalam keputusan.
Coba di IDE Unduh Sumberumur = 25
warga_negara_indonesia = True
punya_ktp = True
if warga_negara_indonesia:
print("Status: WNI.")
if umur >= 17:
print("Usia memenuhi syarat untuk KTP.")
if punya_ktp:
print("Sudah punya KTP, bisa memilih di pemilu!")
else:
print("Belum punya KTP, segera urus!")
else:
print("Usia belum memenuhi syarat untuk KTP.")
else:
print("Status: Bukan WNI, tidak bisa memilih")
print("di pemilu Indonesia.")
Hasil yang diharapkan:
Status: WNI.
Usia memenuhi syarat untuk KTP.
Sudah punya KTP, bisa memilih di pemilu!Coba ubah: Ubah umur dari 25 menjadi 26, lalu prediksi hasilnya.
08-07 – Operator Ternary (Inline if)
Coba Sekarang: Jalankan code di atas. Pertama, masukkan namamu. Kedua, jalankan lagi dan tekan Enter tanpa mengetik apa pun.
Coba di IDE Unduh Sumbernilai = 80
status = "Lulus" if nilai >= 75 else "Gagal"
# Dibaca: status adalah "Lulus" JIKA nilai >= 75, JIKA TIDAK "Gagal"
print(f"Nilai kamu {nilai}, status: {status}")
Hasil yang diharapkan:
Nilai kamu 80, status: LulusCoba ubah: Ubah nilai dari 80 menjadi 81, lalu prediksi hasilnya.
Studi Kasus
08-08 – Menentukan diskon belanja
Cabang pertama memeriksa dua syarat. Cabang berikutnya menangani pembeli nonanggota yang memenuhi batas belanja. Nilai contoh dipilih agar potongan merupakan rupiah bulat.
Coba di IDE Unduh Sumbertotal_belanja = 150000
anggota = True
if total_belanja >= 100000 and anggota:
persen_diskon = 10
elif total_belanja >= 100000:
persen_diskon = 5
else:
persen_diskon = 0
potongan = total_belanja * persen_diskon // 100
print(f"Diskon: Rp {potongan}")
print(f"Bayar: Rp {total_belanja - potongan}")
Hasil yang diharapkan:
Diskon: Rp 15000
Bayar: Rp 135000Coba ubah: Ganti anggota menjadi False, lalu periksa belanja tepat 100000 dan 99999.
Rangkuman
if memeriksa kondisi; elif menyediakan kondisi berikutnya; else menangani keadaan lainnya. Urutan cabang dan batas perbandingan menentukan hasil. Periksa nilai tepat di batas aturan.
Cek Pemahaman
Lima pertanyaan ini sama dengan pertanyaan di buku. Periksa jawaban di kuis untuk melihat skor dan pembahasan.
- Kapan blok if dijalankan?
- Dalam satu rangkaian if-elif-else, berapa cabang yang dijalankan?
- Kapan a and b bernilai True jika a dan b boolean?
- Operator untuk membandingkan kesamaan adalah …
- Untuk aturan nilai >= 75, nilai 75 masuk …
Latihan Mandiri
Latihan 08-L01 – Genap atau ganjil
Dasar. Tentukan apakah angka 14 genap atau ganjil. Cetak Genap atau Ganjil.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Genap
Lihat Petunjuk
Bilangan genap mempunyai sisa pembagian dua sama dengan nol.
Lihat Solusi
angka = 14
if angka % 2 == 0:
print("Genap")
else:
print("Ganjil")
Operator % menghasilkan sisa pembagian.
Coba Solusi di IDEUnduh SolusiLatihan 08-L02 – Kategori nilai
Penerapan. Untuk nilai 82, cetak A jika minimal 90, B jika minimal 75, dan C untuk nilai lain.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
B
Lihat Petunjuk
Periksa batas tertinggi dahulu.
Lihat Solusi
nilai = 82
if nilai >= 90:
print("A")
elif nilai >= 75:
print("B")
else:
print("C")
Urutan kondisi mencegah nilai tinggi masuk kategori yang terlalu rendah.
Coba Solusi di IDEUnduh SolusiLatihan 08-L03 – Syarat potongan
Pengembangan. Cetak Dapat diskon hanya jika belanja minimal 100000 dan pelanggan anggota. Gunakan belanja 120000 dan anggota True.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Dapat diskon
Lihat Petunjuk
Kedua syarat harus terpenuhi.
Lihat Solusi
belanja = 120000
anggota = True
if belanja >= 100000 and anggota:
print("Dapat diskon")
else:
print("Harga biasa")
Uji juga belanja 100000, 99999, dan anggota False.
Coba Solusi di IDEUnduh SolusiPengembangan
Pengembangan: Diskon Belanja
Prasyarat: kerjakan setelah Bab 15.
Mari buat program yang menghitung diskon belanja di toko online berdasarkan total pembelian dan status keanggotaan:
total_belanja = int(input("Masukkan total belanja (Rp): "))
#### .lower() untuk standarisasi, .strip() untuk hapus spasi
prompt_member = "Apakah kamu member? (ya/tidak): "
member_input = input(prompt_member).lower().strip()
diskon = 0 # Inisialisasi diskon awal
#### Logika diskon berdasarkan total belanja
if total_belanja >= 500000:
diskon = 20
#### Hanya dicek jika total_belanja < 500000
elif total_belanja >= 200000:
diskon = 10
#### Tidak perlu else karena diskon sudah diinisialisasi = 0
#### Diskon tambahan untuk member
if member_input == "ya":
diskon_tambahan = 5
# Tambahkan ke diskon yang sudah ada
diskon = diskon + diskon_tambahan
print(f"kamu mendapatkan diskon tambahan {diskon_tambahan}% "
f"sebagai member.")
elif member_input == "tidak":
print("kamu tidak mendapatkan diskon tambahan member.")
else:
print("Input status member tidak valid, "
"diskon tambahan member tidak diberikan.")
#### Hitung total akhir
#### Gunakan // untuk pembagian integer agar hasilnya bulat
#### atau biarkan float jika ingin presisi desimal
potongan = total_belanja * diskon / 100
harga_setelah_diskon = total_belanja - potongan
#### Format dengan pemisah ribuan
print(f"Total belanja awal: Rp {total_belanja:,.0f}")
print(f"Total diskon yang didapat: {diskon}%")
print(f"Total yang harus dibayar: Rp {harga_setelah_diskon:,.0f}")
Contoh Output:
Masukkan total belanja (Rp): 300000
Apakah kamu member? (ya/tidak): ya
kamu mendapatkan diskon tambahan 5% sebagai member.
Total belanja awal: Rp 300.000
Total diskon yang didapat: 15%
Total yang harus dibayar: Rp 255.000
Penjelasan:
- Program meminta input total belanja.
- Menentukan diskon berdasarkan kondisi.
- Menghitung total akhir setelah diskon.
- Menggunakan f-string untuk output rapi.
Coba Sekarang: Jalankan dengan
total_belanja = 600000 dan status member
tidak. Lalu coba dengan total_belanja = 100000
dan status member ya. Amati perbedaannya!
Pikirkan Ini: Selain contoh di atas, di mana lagi
kamu melihat penggunaan logika if-else dalam kehidupan
sehari-hari atau aplikasi yang sering kamu gunakan? Misalnya, saat login
ke media sosial, aplikasi mengecek apakah username dan passwordmu benar.
Atau saat filter email, email masuk ke folder “Utama” atau “Spam”
berdasarkan aturan tertentu.
Kegiatan Tambahan
Coba latihan berikut untuk melatih logikamu:
- Klasifikasi Suhu Simulasi:
- Minta input suhu pada simulasi dalam Celcius.
- Tampilkan:
- “Sangat rendah” (di bawah 35 derajat C)
- “Normal” (35 derajat C – 37.5 derajat C)
- “Tinggi” (di atas 37.5 derajat C – 39 derajat C)
- “Sangat tinggi” (di atas 39 derajat C)
- Cek Angka Positif, Negatif, atau Nol:
- Minta input sebuah angka.
- Tampilkan apakah angka itu positif, negatif, atau nol.
- Kategori SIM:
- Minta input usia seseorang.
- Tampilkan kategori SIM yang bisa dibuat:
- Belum boleh punya SIM (di bawah 17)
- Boleh SIM C (motor) (usia 17 tahun ke atas)
- Boleh SIM A (mobil pribadi) (usia 17 tahun ke atas, bisa juga punya SIM C)
- Boleh SIM B1 (mobil penumpang/barang perseorangan >3.5 ton) (usia 20 tahun ke atas) (Sederhanakan: jika usia >= 20, bisa semua SIM di atas. Jika 17-19, bisa A & C)
- Kalkulator Sederhana:
- Minta input dua angka dan satu operator (
+,-,*,/). - Lakukan perhitungan berdasarkan operator yang dipilih dan tampilkan hasilnya.
- Tambahkan penanganan jika pengguna memasukkan operator yang tidak valid atau mencoba pembagian dengan nol.
- Minta input dua angka dan satu operator (
Petunjuk dan Solusi Pengembangan
Klik untuk melihat contoh solusi Latihan 1
“`python suhu_str = input(“Masukkan suhu tubuh kamu (Celcius):”) try: # Konversi ke float untuk menerima desimal suhu = float(suhu_str)
if suhu < 35:
print(f"Suhu {suhu} derajat C: Sangat rendah.")
# Bisa juga ditulis: 35 <= suhu <= 37.5
elif suhu >= 35 and suhu <= 37.5:
print(f"Suhu {suhu} derajat C: Normal.")
# Bisa juga ditulis: 37.5 < suhu <= 39
elif suhu > 37.5 and suhu <= 39:
print(f"Suhu {suhu} derajat C: Tinggi.")
elif suhu > 39: # Di atas 39
print(f"Suhu {suhu} derajat C: Sangat tinggi.")
# Untuk kasus yang mungkin tidak tercover
# jika logika batas salah
else:
print(f"Suhu {suhu} derajat C: "
"Kategori tidak terdefinisi")
print("dengan jelas, mohon periksa input atau batas.")
except ValueError:
print("Input tidak valid. Harap masukkan angka untuk suhu.")
```
**Penjelasan Solusi:**
- Program meminta input suhu dan mencoba mengubahnya menjadi angka desimal (`float`).
- Menggunakan `try-except ValueError` untuk menangani jika pengguna memasukkan teks, bukan angka.
- Rangkaian `if-elif-else` digunakan untuk menentukan kategori suhu.
- Perhatikan penggunaan `and` untuk rentang nilai. Python juga mengizinkan penulisan rentang yang lebih ringkas seperti `35 <= suhu <= 37.5`.
- f-string digunakan untuk menampilkan output yang informatif.
- Ditambahkan `elif suhu > 39` dan `else` untuk kejelasan dan menangani kasus batas.
</details>
Klik untuk melihat contoh solusi Latihan 2
python # Gunakan float untuk menerima desimal angka = float(input("Masukkan sebuah angka: ")) if angka > 0: print("Angka tersebut positif.") elif angka < 0: print("Angka tersebut negatif.") else: print("Angka tersebut adalah nol.")
Penjelasan Solusi: – Program meminta input angka dan
mengubahnya menjadi angka desimal (float). – Menggunakan
rangkaian if-elif-else untuk mengecek apakah angka tersebut
lebih besar dari 0, kurang dari 0, atau sama dengan 0. – Menampilkan
hasil klasifikasi angka.
Klik untuk melihat contoh solusi Latihan 3
“`python usia = int(input(“Masukkan usia kamu:”))
if usia < 17: print(“Belum boleh punya SIM.”) elif usia >= 17 and usia < 20: print(“Boleh SIM C (motor) dan SIM A (mobil pribadi).”) else: # Usia 20 ke atas print(“Boleh semua jenis SIM: A, B1, dan C.”) “**Penjelasan Solusi:** - Program meminta input usia dan mengubahnya menjadi integer. - Menggunakan rangkaianif-elif-else`
untuk menentukan kategori SIM yang bisa dibuat berdasarkan usia. –
Menampilkan hasil kategori SIM.
Klik untuk melihat contoh solusi Latihan 4
“`python angka1 = float(input(“Masukkan angka pertama:”)) angka2 = float(input(“Masukkan angka kedua:”)) operator = input(“Masukkan operator (+, -, *, /): “)
if operator == “+”: hasil = angka1 + angka2 print(f”Hasil: {angka1} + {angka2} = {hasil}“) elif operator ==”-“: hasil = angka1 – angka2 print(f”Hasil: {angka1} – {angka2} = {hasil}“) elif operator ==”“: hasil = angka1 * angka2 print(f”Hasil: {angka1} {angka2} = {hasil}“) elif operator ==”/“: # Cek pembagi tidak nol if angka2 != 0: hasil = angka1 / angka2 print(f”Hasil: {angka1} / {angka2} = {hasil}“) else: print(”Error: Pembagian dengan nol tidak terdefinisi.”) else: print(“Error: Operator tidak valid.” “Gunakan salah satu dari +, -, *, atau /.”) “**Penjelasan Solusi:** - Program meminta input dua angka dan satu operator. - Menggunakan rangkaianif-elif`
untuk menentukan operasi yang akan dilakukan berdasarkan operator. –
Menampilkan hasil perhitungan. – Menangani kemungkinan kesalahan seperti
pembagian dengan nol dan operator yang tidak valid.
Referensi dan Materi Pendamping
- if else di Python: Sintaks dan Contoh Percabangan
- Operator di Python: Aritmatika, Perbandingan, Logika
- Percabangan
Langkah Selanjutnya
Bab 9 membahas Perulangan dengan for dan while. Sebelum melanjutkan, pastikan kamu dapat menjelaskan tujuan belajar dan menyelesaikan tiga latihan inti bab ini.
Edisi September 2026. Nomor contoh, pertanyaan, dan latihan digunakan bersama pada buku dan halaman ini.
