🚧 Program Tahan Banting

Sabuk Pengaman Error (Try & Except)

Tantangan Coding: Keamanan Program

💥 Masalah Besar: Aplikasi Crash!

Di pelajaran Kasir sebelumnya, kita menggunakan int(input()) untuk meminta angka dari pembeli.

Tapi, bagaimana jika pembeli iseng mengetik huruf "Sepuluh" (teks) padahal program meminta angka?

BUM! Program akan CRASH! Muncul peringatan merah besar ValueError dan aplikasi langsung tertutup paksa. Kita tidak boleh membiarkan ini terjadi pada aplikasi buatan kita!

🛡️ Airbag Penyelamat: Try & Except

Di Python, kita bisa menangkap *error* sebelum ia menghancurkan program menggunakan try...except.

try:
    # Zona Berbahaya (Kode yang bisa error)
    angka = int(input("Ketik angka: "))
except ValueError:
    # Airbag mengembang! (Menangkap error salah ketik)
    print("Hei! Kamu harus mengetik ANGKA!")

🧩 Latihan 1: Memasang Sabuk Pengaman

Misi: Lindungi program dari pembeli yang iseng mengetik huruf saat diminta memasukkan uang pembayaran!

print("=== KASIR AMAN ===")

# Mulai blok perlindungan
____:
    uang = int(input("Masukkan uang (Rp): "))
    print("Uang diterima:", uang)

# Tangkap error jika inputnya bukan angka
____ ValueError:
    print("TRANSAKSI GAGAL!")
    print("Tolong ketik angka, jangan huruf!")

Petunjuk: Isi dengan dua kata ajaib pelindung error.

🧩 Latihan 2: Memaksa Sampai Benar

Misi: Jika pembeli salah ketik, program tidak boleh berhenti. Gunakan `while True` agar program terus bertanya sampai pembeli memasukkan angka yang benar (lalu gunakan `break`!).

while ____:
    try:
        umur = ____(input("Berapa umurmu? "))
        
        # Jika baris di atas BERHASIL (tidak error), 
        # maka hancurkan loop ini!
        print("Umur tersimpan!")
        ____ 
        
    except ____:
        # Jika error, loop akan berputar ulang dari atas!
        print("Error: Wajib menggunakan ANGKA!")

🚀 CODE CHALLENGE: Kalkulator Pembagian Aman

Kalian sudah belajar segalanya! Sekarang, buka Editormu dan selesaikan tantangan ini (tanpa contekan penuh):

Misi Kalkulator Anti-Error:

  1. Gunakan while True untuk perulangan.
  2. Minta input Angka Pertama dan Angka Kedua (ubah ke int).
  3. Hitung pembagian: hasil = Angka Pertama / Angka Kedua, lalu di-print.
  4. Gunakan Try Except! Tangkap ValueError (jika diisi huruf).
  5. (Tantangan Ekstra) Tangkap ZeroDivisionError (jika Angka Kedua adalah 0, karena angka tidak bisa dibagi nol!).

"Programmer sejati adalah mereka yang bersiap menghadapi kemungkinan terburuk dari user!"

1 / 6
```eof **Evaluasi Materi "Try Except" Ini:** 1. **Analogi:** Saya menggunakan analogi "Sabuk Pengaman/Airbag" yang sangat mudah dicerna untuk murid pemula, menjelaskan bahwa `try` melindungi dari "kecelakaan/crash" aplikasi. 2. **Kombinasi Materi Lama:** Di Slide 5, saya langsung menggabungkannya dengan materi `while True` dan `break`. Ini menunjukkan bagaimana cara "memaksa" user input ulang jika mereka *error/typo*. 3. **Code Challenge (Final Boss):** Di Slide 6, alih-alih memberikan jawaban penuh, saya memberikan **misi instruksi**. Tantangan tambahannya adalah mencari tahu cara menangkap *error* tipe baru, yaitu `ZeroDivisionError` (karena Python akan *crash* jika membagi dengan angka 0). Ini sangat memancing rasa penasaran dan melatih *problem solving* mereka secara mandiri!