Menerjemahkan Alur · Pelajaran 3 dari 8
Keputusan bertingkat jadi elif
8 menit baca · BelajarCode
Jika jalur Tidak dari sebuah keputusan langsung masuk ke keputusan lain, rantai itu diterjemahkan menjadi elif.
Contoh: tarif parkir
Tarif parkir motor: sampai 1 jam Rp2.000, lebih dari 1 sampai 3 jam Rp5.000, lebih dari 3 jam Rp5.000 ditambah Rp2.000 untuk setiap jam berikutnya.
- Langkah 1, Mulai: Mulai
- Langkah 2, Masukan: Baca lama parkir (jam)
- Langkah 3, Keputusan: lama ≤ 1?Yajika ya, tarif ← 2000Tidakjika tidak, periksa syarat berikutnya
- Langkah 4, Keputusan: lama ≤ 3?Yajika ya, tarif ← 5000Tidakjika tidak, tarif ← 5000 + (lama - 3) × 2000
- Langkah 5, Keluaran: Tampilkan tarif
- Langkah 6, Selesai: Selesai
1lama = int(input("Lama parkir (jam): "))2if lama <= 1:3 tarif = 20004elif lama <= 3:5 tarif = 50006else:7 tarif = 5000 + (lama - 3) * 20008print("Tarif parkir: Rp", tarif, sep="")Lama parkir (jam): 5 Tarif parkir: Rp9000
elif atau if bersarang?
Flowchart yang sama bisa diterjemahkan dengan if di dalam else. Hasilnya benar, tetapi lebih menjorok dan lebih sulit dibaca:
1lama = 52if lama <= 1:3 tarif = 20004else:5 if lama <= 3:6 tarif = 50007 else:8 tarif = 5000 + (lama - 3) * 20009print(tarif)9000
Pakai elif jika keputusan berikutnya berada di jalur Tidak. Pakai if bersarang jika keputusan berikutnya berada di jalur Ya, karena artinya syarat kedua hanya diperiksa setelah syarat pertama terpenuhi.
Urutan rantai penting
Python memeriksa if dan elif dari atas. Kalau lama <= 3 diperiksa lebih dulu, parkir setengah jam pun dikenai Rp5.000. Susun urutan kode persis seperti urutan keputusan di flowchart.
Cek pemahaman
Pada flowchart tarif parkir, berapa tarif untuk lama parkir 3 jam?
Latihan
Jenis segitiga
Tulis program yang membaca tiga panjang sisi segitiga, lalu menentukan jenisnya: sama sisi (ketiga sisi sama), sama kaki (tepat dua sisi sama), atau sembarang. Gambarkan dulu flowchart-nya.
Pembahasan
- Langkah 1, Mulai: Mulai
- Langkah 2, Masukan: Baca a, b, c
- Langkah 3, Keputusan: a = b DAN b = c?Yajika ya, jenis ← "sama sisi"Tidakjika tidak, periksa syarat berikutnya
- Langkah 4, Keputusan: a = b ATAU b = c ATAU a = c?Yajika ya, jenis ← "sama kaki"Tidakjika tidak, jenis ← "sembarang"
- Langkah 5, Keluaran: Tampilkan jenis
- Langkah 6, Selesai: Selesai
1a = int(input("Sisi a: "))2b = int(input("Sisi b: "))3c = int(input("Sisi c: "))4if a == b and b == c:5 jenis = "sama sisi"6elif a == b or b == c or a == c:7 jenis = "sama kaki"8else:9 jenis = "sembarang"10print("Segitiga", jenis)Sisi a: 5 Sisi b: 8 Sisi c: 5 Segitiga sama kaki
Syarat sama sisi diperiksa lebih dulu. Segitiga sama sisi juga memenuhi syarat sama kaki, jadi urutannya tidak boleh dibalik.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.