16. if / elif / else
Sejauh ini, program selalu berjalan dengan cara yang sama setiap
kali. Bab ini menambahkan sebuah kondisi: sebuah
pertanyaan yang dijawab True atau False.
Jawaban itu menentukan blok kode mana yang dijalankan.
Membandingkan nilai
Kondisi dibangun dari operator perbandingan. Setiap operator membandingkan dua nilai dan mengembalikan sebuah boolean.
| Operator | Arti |
|---|---|
== |
sama dengan |
!= |
tidak sama dengan |
< |
kurang dari |
> |
lebih dari |
<= |
kurang dari atau sama dengan |
>= |
lebih dari atau sama dengan |
print(7 == 7) # True
print(7 == 8) # False
print("a" == "A") # False (case matters)
print(7 != 8) # True
print(3 < 5) # True
print(3 >= 3) # TrueOperator kesamaan adalah == (dua tanda sama). Satu
= adalah penugasan — ia mengubah sebuah
variable. Jadi if x = 7 adalah kesalahan sintaksis; Python
menolak untuk menjalankannya.
Pernyataan if
if menjalankan sebuah blok kode hanya ketika kondisinya
benar.
age = 16
if age >= 18:
print("You can vote.")Baca dari kiri ke kanan: jika umur minimal 18, cetak
pesannya. Titik dua di akhir baris if wajib ada. Isi
blok harus diindentasi — empat spasi adalah standarnya.
Python menggunakan indentasi itu sendiri untuk mengetahui di mana blok
berakhir. Tidak ada kata kunci end.
else untuk kasus
lainnya
else berjalan ketika kondisinya salah. Bersama
if, ia mencakup kedua kemungkinan tepat satu kali:
age = 16
if age >= 18:
print("You can vote.")
else:
print("Not old enough to vote yet.")Tepat satu baris print yang berjalan, tidak pernah
keduanya.
elif untuk rantai
kondisi
Untuk lebih dari dua kasus, sambungkan dengan elif
(singkatan dari "else if"). Python mencoba setiap kondisi secara
berurutan dan berhenti pada yang pertama bernilai benar:
score = 73
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
elif score >= 60:
print("Grade: D")
else:
print("Grade: F")Urutan sangat penting: Python mengambil kecocokan pertama.
Dengan score >= 60 di atas, setiap nilai lulus akan
mendapat D — tidak ada yang akan melihat A, B, atau C.
Buka exercises/16/01-grade.py. Ubah nilai
score dan jalankan. Coba nilai tepat di batas (60, 70, 80,
90) untuk memastikan >= menyertakannya.
Menggabungkan kondisi
dengan and, or, not
Terkadang satu perbandingan saja tidak cukup. Python memiliki tiga operator logika yang menggabungkan boolean:
| Operator | Arti |
|---|---|
and |
benar jika kedua sisi benar |
or |
benar jika salah satu sisi benar |
not |
membalik benar menjadi salah dan salah menjadi benar |
level = 12
has_key = True
if level >= 10 and has_key:
print("You can enter the dungeon.")
if level < 10 or not has_key:
print("You are blocked.")Tuliskan sebagai kata-kata. Python tidak menggunakan
&&, ||, atau !.
Truthy dan falsy
Kondisi di atas semuanya menghasilkan boolean nyata, tetapi
if menerima nilai apa pun. Aturan Python:
None,False,0,0.0,"", dan koleksi kosong adalah falsy —ifmelewati blok tersebut.- Semua yang lain adalah truthy.
Dalam Python, 0 dan ""
adalah falsy. Memeriksa apakah sebuah variable memiliki
nilai:
name = input()
if name:
print("Hello, " + name)
else:
print("No name was entered.")Buka exercises/16/02-truthy.py dan jalankan. Bandingkan
outputnya dengan apa yang kamu harapkan. Dalam Python, 0
dan "" adalah falsy — ingat itu.
Pekerjaan Rumah
Soal 1 — Genap atau ganjil
Buka exercises/16/homework/01-even-or-odd.py. Minta
pengguna memasukkan sebuah angka. Cetak even atau
odd berdasarkan apakah n % 2 bernilai
0.
Soal 2 — Gerbang level Roblox
Buka exercises/16/homework/02-level-gate.py. Dua
variable ada di bagian atas: level (sebuah angka) dan
has_key (sebuah boolean). Cetak
You can enter the dungeon. hanya ketika pemain minimal
level 10 dan memiliki kunci. Jika tidak, cetak salah
satu dari:
Level too low.(jika level saja yang menjadi masalah),Missing the key.(jika level sudah cukup tapi kunci tidak ada),Level too low and missing the key.(jika keduanya salah).
Soal 3 — Huruf nilai
Buka exercises/16/homework/03-grade-letter.py. Minta
pengguna memasukkan nilai (0 sampai 100). Cetak huruf nilai A, B, C, D,
atau F menggunakan batas yang sama seperti contoh di bab ini.
Tantangan — Terbesar dari tiga
Buka exercises/16/homework/04-largest-of-three.py. Tiga
variable menyimpan tiga angka. Cetak yang terbesar, menggunakan
if dan operator perbandingan — tanpa loop, tanpa list,
tanpa max(). Tantangannya: tangani seri dengan bersih (jika
dua angka seri sebagai yang terbesar, cetak salah satu dari
keduanya).
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.