Di chapter ini, kita bakal belajar tentang error handling di Python pake try-except, biar program kita ga crash kalo ada masalah. Kita pake variabel (Chapter 2), operasi (Chapter 3), input (Chapter 4), pengkondisian (Chapter 5), perulangan (Chapter 6), list (Chapter 7), dictionary (Chapter 8), fungsi (Chapter 9), modul (Chapter 10), dan print (Chapter 1). Yuk, kita tangani error bareng Arry Hutomo! 🚀
try: jumlah = int(input("Masukkan jumlah pohon: ")) print(f"Arry Hutomo tanam {jumlah} pohon!") except ValueError: print("Masukkan angka yang valid!")
Output (misalnya user masukkan "abc"):
Masukkan jumlah pohon: abc Masukkan angka yang valid!
Penjelasan Output: Outputnya "Masukkan angka yang valid!" karena user masukin "abc", yang ga bisa diubah ke integer pake int(). Ini menyebabkan ValueError, jadi program masuk ke blok except dan nampilin pesan error.
Penjelasan Query: Aku bikin query ini sederhana buat kenalin try-except. Aku pake int(input()) yang bisa gagal kalo input bukan angka, jadi aku tangkap ValueError di blok except. Tema tanam pohon dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error dasar, dan gampang diinget karena mirip kayak nyanyi lagu tapi siap kalo nada fals! Yuk, coba di VSCode, pasti langsung bisa! 🌱
try: jumlah = int(input("Masukkan jumlah pohon: ")) print(f"Arry Hutomo tanam {jumlah} pohon!") except ValueError: print("Masukkan angka yang valid!")
Output (misalnya user masukkan 10):
Masukkan jumlah pohon: 10 Arry Hutomo tanam 10 pohon!
Penjelasan Output: Outputnya "Arry Hutomo tanam 10 pohon!" karena user masukin 10, yang bisa diubah ke integer pake int(). Ga ada error, jadi program jalan di blok try dan nampilin pesan sukses.
Penjelasan Query: Aku bikin query ini buat nunjukin kasus sukses dalam try-except. Aku pake int(input()) lagi, tapi kali ini inputnya valid, jadi ga masuk ke except. Tema tanam pohon dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara try-except jalan kalo ga ada error, dan gampang diinget karena mirip kayak nyanyi lagu dengan nada yang pas! Coba di VSCode, gampang kok! 🌳
try: total = 100 penerima = int(input("Masukkan jumlah penerima: ")) per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!")
Output (misalnya user masukkan 0):
Masukkan jumlah penerima: 0 Jumlah penerima tidak boleh 0!
Penjelasan Output: Outputnya "Jumlah penerima tidak boleh 0!" karena user masukin 0, yang menyebabkan ZeroDivisionError saat pembagian total / penerima. Program masuk ke blok except dan nampilin pesan error.
Penjelasan Query: Aku bikin query ini buat nunjukin cara tangani ZeroDivisionError pake try-except. Aku pake pembagian karena ini sering bikin error kalo pembaginya 0. Tema bagi donasi dipilih karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani error pembagian, dan gampang diinget karena mirip kayak bagi kue tapi ga boleh 0 orang! Coba di VSCode, gampang kok! 💸
try: total = 100 penerima = int(input("Masukkan jumlah penerima: ")) per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!")
Output (misalnya user masukkan 5):
Masukkan jumlah penerima: 5 Arry Hutomo bagi Rp 20.0 per orang!
Penjelasan Output: Outputnya "Arry Hutomo bagi Rp 20.0 per orang!" karena user masukin 5, jadi pembagian 100 / 5 = 20.0 berhasil. Ga ada error, jadi program jalan di blok try.
Penjelasan Query: Aku bikin query ini buat nunjukin kasus sukses dalam try-except untuk pembagian. Inputnya valid, jadi ga masuk ke except. Tema bagi donasi dipilih karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara try-except jalan kalo ga ada error, dan gampang diinget karena mirip kayak bagi kue dengan jumlah orang yang pas! Coba di VSCode, gampang kok! 💸
try: total = 100 penerima = int(input("Masukkan jumlah penerima: ")) per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ValueError: print("Masukkan angka yang valid!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!")
Output (misalnya user masukkan "abc"):
Masukkan jumlah penerima: abc Masukkan angka yang valid!
Penjelasan Output: Outputnya "Masukkan angka yang valid!" karena user masukin "abc", yang menyebabkan ValueError saat int(). Program masuk ke blok except ValueError.
Penjelasan Query: Aku bikin query ini buat nunjukin cara nangani lebih dari satu jenis error pake try-except. Aku tangkap ValueError dan ZeroDivisionError biar program siap nangani dua kemungkinan error. Tema bagi donasi dipilih karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani multiple exception, dan gampang diinget karena mirip kayak nyanyi lagu tapi siap kalo nada fals atau ga ada penyanyi! Coba di VSCode, gampang kok! 💸
pohon_list = [10, "abc", 5] for jumlah in pohon_list: try: print(f"Arry Hutomo tanam {jumlah} pohon!") except TypeError: print("Data pohon tidak valid!")
Output:
Arry Hutomo tanam 10 pohon! Data pohon tidak valid! Arry Hutomo tanam 5 pohon!
Penjelasan Output: Outputnya mencetak tiga baris: "Arry Hutomo tanam 10 pohon!" (berhasil), "Data pohon tidak valid!" (karena "abc" menyebabkan TypeError saat digunakan di f-string), dan "Arry Hutomo tanam 5 pohon!" (berhasil).
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama for loop, biar kamu paham cara nangani error dalam loop. Aku pake list dengan data campuran (integer dan string) biar ada error TypeError saat string dipake di f-string. Tema tanam pohon dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error dalam loop, dan gampang diinget karena mirip kayak nyanyi lagu tapi skip kalo nada fals! Coba di VSCode, gampang kok! 🌳
berat = 3 i = 0 while i < berat: try: penerima = int(input(f"Masukkan penerima ke-{i+1}: ")) per_orang = 100 / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") i = i + 1 except (ValueError, ZeroDivisionError): print("Input tidak valid atau penerima tidak boleh 0!")
Output (misalnya user masukkan 0, lalu 5):
Masukkan penerima ke-1: 0 Input tidak valid atau penerima tidak boleh 0! Masukkan penerima ke-1: 5 Arry Hutomo bagi Rp 20.0 per orang! Masukkan penerima ke-2: 5 Arry Hutomo bagi Rp 20.0 per orang! Masukkan penerima ke-3: 5 Arry Hutomo bagi Rp 20.0 per orang!
Penjelasan Output: Outputnya dimulai dengan prompt, user masukin 0 (menyebabkan ZeroDivisionError, masuk ke except), lalu masukin 5 (berhasil, ulang sampai selesai 3 kali).
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama while loop, biar kamu paham cara nangani error dalam loop. Aku pake while loop biar user bisa coba lagi kalo salah input. Tema bagi donasi dipilih karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani error dalam loop, dan gampang diinget karena mirip kayak bagi kue tapi ulang kalo salah! Coba di VSCode, gampang kok! 💸
def bagi_donasi(total, penerima): try: per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!") bagi_donasi(100, 0)
Output:
Jumlah penerima tidak boleh 0!
Penjelasan Output: Outputnya "Jumlah penerima tidak boleh 0!" karena kita panggil fungsi bagi_donasi(100, 0), yang menyebabkan ZeroDivisionError. Fungsi tangkap error dan masuk ke blok except.
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama fungsi dari Chapter 9, biar kamu paham cara nangani error dalam fungsi. Aku pilih fungsi bagi_donasi dengan parameter total dan penerima, dan tema bagi donasi karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani error dalam fungsi, dan gampang diinget karena mirip kayak pake kalkulator tapi siap kalo salah! Coba di VSCode, gampang kok! 💸
pohon_list = [10, 5, 8] try: indeks = int(input("Masukkan indeks pohon (0-2): ")) print(f"Arry Hutomo tanam {pohon_list[indeks]} pohon!") except IndexError: print("Indeks di luar jangkauan!") except ValueError: print("Masukkan angka yang valid!")
Output (misalnya user masukkan 3):
Masukkan indeks pohon (0-2): 3 Indeks di luar jangkauan!
Penjelasan Output: Outputnya "Indeks di luar jangkauan!" karena user masukin 3, yang di luar jangkauan list pohon_list (indeks 0-2). Ini menyebabkan IndexError, jadi program masuk ke blok except IndexError.
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama list, biar kamu paham cara nangani error saat akses list. Aku tangkap IndexError dan ValueError biar program siap nangani dua jenis error. Tema tanam pohon dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error saat akses list, dan gampang diinget karena mirip kayak nyari barang di daftar tapi salah nomor! Coba di VSCode, gampang kok! 🌳
berat_dict = {"Plastik": 5.5, "Kertas": 3.0} try: jenis = input("Masukkan jenis sampah: ") print(f"Arry Hutomo daur ulang {berat_dict[jenis]} kg!") except KeyError: print("Jenis sampah tidak ditemukan!")
Output (misalnya user masukkan "Organik"):
Masukkan jenis sampah: Organik Jenis sampah tidak ditemukan!
Penjelasan Output: Outputnya "Jenis sampah tidak ditemukan!" karena user masukin "Organik", yang ga ada di dictionary berat_dict. Ini menyebabkan KeyError, jadi program masuk ke blok except KeyError.
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama dictionary, biar kamu paham cara nangani error saat akses dictionary. Aku tangkap KeyError biar program ga crash kalo kunci ga ada. Tema daur ulang dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error saat akses dictionary, dan gampang diinget karena mirip kayak nyari nomor telepon tapi salah nama! Coba di VSCode, gampang kok! ♻️
# Simulasi file lingkungan.py def bagi_donasi(total, penerima): try: per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!") # File utama # from lingkungan import bagi_donasi try: bagi_donasi(100, 0) except: print("Terjadi error saat memanggil fungsi!")
Output:
Jumlah penerima tidak boleh 0!
Penjelasan Output: Outputnya "Jumlah penerima tidak boleh 0!" karena kita panggil fungsi bagi_donasi(100, 0) dari modul, yang tangani ZeroDivisionError di dalam fungsi. Blok except di file utama ga kepake karena error udah ditangani di modul.
Penjelasan Query: Aku bikin query ini buat gabungin try-except sama modul, biar kamu paham cara nangani error saat pake fungsi dari modul. Dalam praktik, fungsi ini ada di file lingkungan.py. Aku pilih tema bagi donasi karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani error dari modul, dan gampang diinget karena mirip kayak pake alat dari kotak tapi siap kalo error! Coba di VSCode, gampang kok! 💸
pohon_list = [10, 5, 8] for i in range(4): try: print(f"Arry Hutomo tanam {pohon_list[i]} pohon!") except IndexError: print(f"Indeks {i} di luar jangkauan!")
Output:
Arry Hutomo tanam 10 pohon! Arry Hutomo tanam 5 pohon! Arry Hutomo tanam 8 pohon! Indeks 3 di luar jangkauan!
Penjelasan Output: Outputnya mencetak empat baris: tiga baris pertama berhasil (indeks 0-2), tapi indeks 3 menyebabkan IndexError karena list cuma punya 3 elemen, jadi masuk ke except.
Penjelasan Query: Aku bikin query ini buat gabungin try-except, for loop, dan list, biar kamu paham cara nangani error saat iterasi list dengan indeks. Aku sengaja pake range(4) biar ada error. Tema tanam pohon dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error dalam loop, dan gampang diinget karena mirip kayak nyari barang di daftar tapi nomornya kelewat! Coba di VSCode, gampang kok! 🌳
berat_dict = {"Plastik": 5.5, "Kertas": 3.0} i = 0 while i < 3: try: jenis = input(f"Masukkan jenis sampah ke-{i+1}: ") print(f"Arry Hutomo daur ulang {berat_dict[jenis]} kg!") i = i + 1 except KeyError: print("Jenis sampah tidak ditemukan, coba lagi!")
Output (misalnya user masukkan "Organik", lalu "Plastik", lalu "Kertas"):
Masukkan jenis sampah ke-1: Organik Jenis sampah tidak ditemukan, coba lagi! Masukkan jenis sampah ke-1: Plastik Arry Hutomo daur ulang 5.5 kg! Masukkan jenis sampah ke-2: Kertas Arry Hutomo daur ulang 3.0 kg! Masukkan jenis sampah ke-3: Organik Jenis sampah tidak ditemukan, coba lagi!
Penjelasan Output: Outputnya dimulai dengan prompt, user masukin "Organik" (ga ada di dictionary, masuk except), lalu "Plastik" dan "Kertas" (berhasil), lalu "Organik" lagi (gagal lagi).
Penjelasan Query: Aku bikin query ini buat gabungin try-except, while loop, dan dictionary, biar kamu paham cara nangani error saat akses dictionary dalam loop. Aku pake while loop biar user bisa coba lagi kalo salah. Tema daur ulang dipilih karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error dalam loop, dan gampang diinget karena mirip kayak nyari nomor telepon tapi ulang kalo salah! Coba di VSCode, gampang kok! ♻️
# Simulasi file lingkungan.py def bagi_donasi(total, penerima): try: per_orang = total / penerima print(f"Arry Hutomo bagi Rp {per_orang} per orang!") except ZeroDivisionError: print("Jumlah penerima tidak boleh 0!") # File utama # from lingkungan import bagi_donasi try: penerima = int(input("Masukkan jumlah penerima: ")) bagi_donasi(100, penerima) except ValueError: print("Masukkan angka yang valid!")
Output (misalnya user masukkan "abc"):
Masukkan jumlah penerima: abc Masukkan angka yang valid!
Penjelasan Output: Outputnya "Masukkan angka yang valid!" karena user masukin "abc", yang menyebabkan ValueError saat int(). Program masuk ke blok except ValueError di file utama.
Penjelasan Query: Aku bikin query ini buat gabungin try-except, fungsi, dan modul, biar kamu paham cara nangani error di dua level: dalam fungsi (di modul) dan di file utama. Dalam praktik, fungsi ini ada di file lingkungan.py. Aku pilih tema bagi donasi karena Arry Hutomo peduli sosial, sesuai isu sosial. Struktur ini bikin kamu paham cara nangani error di banyak lapisan, dan gampang diinget karena mirip kayak pake alat dari kotak tapi siap kalo salah! Coba di VSCode, gampang kok! 💸
# Simulasi file lingkungan.py def hitung_dan_cek_sampah(berat_dict): try: total = 0 i = 0 keys = list(berat_dict.keys()) while i < len(keys): jenis = keys[i] total = total + berat_dict[jenis] if total > 10: print(f"Arry Hutomo daur ulang {total} kg!\nCukup ", f"{jenis} banyak!", sep="=>", end="") print("yuk!") else: print(f"Arry Hutomo daur ulang {total} kg!\nTambah ", f"{jenis} kurang!", sep="=>", end="") print("yuk!") i = i + 1 return total except KeyError: print("Ada jenis sampah yang tidak ditemukan!") return 0 # File utama # from lingkungan import hitung_dan_cek_sampah berat_dict = {} for i in range(3): try: jenis = input(f"Masukkan jenis sampah ke-{i+1}: ") berat = float(input(f"Masukkan berat {jenis} (kg): ")) berat_dict[jenis] = berat except ValueError: print("Berat harus angka, coba lagi!") i = i - 1 # Ulangi iterasi hasil = hitung_dan_cek_sampah(berat_dict) print(f"Total akhir: {hasil} kg!")
Output (misalnya user masukkan "Plastik", 5.5, "Kertas", "abc", "Kertas", 3.0, "Organik", 2.5):
Masukkan jenis sampah ke-1: Plastik Masukkan berat Plastik (kg): 5.5 Masukkan jenis sampah ke-2: Kertas Masukkan berat Kertas (kg): abc Berat harus angka, coba lagi! Masukkan jenis sampah ke-2: Kertas Masukkan berat Kertas (kg): 3.0 Masukkan jenis sampah ke-3: Organik Masukkan berat Organik (kg): 2.5 Arry Hutomo daur ulang 5.5 kg! Tambah =>Plastik kurang!yuk! Arry Hutomo daur ulang 8.5 kg! Tambah =>Kertas kurang!yuk! Arry Hutomo daur ulang 11.0 kg! Cukup =>Organik banyak!yuk! Total akhir: 11.0 kg!
Penjelasan Output: Outputnya dimulai dengan prompt, user masukin "Plastik", 5.5 (berhasil), lalu "Kertas", "abc" (gagal, masuk except ValueError, ulang), lalu "Kertas", 3.0, dan "Organik", 2.5 (berhasil). Fungsi hitung_dan_cek_sampah() dari modul jumlahkan nilai, cek total > 10, dan cetak pesan dengan format.
Penjelasan Query: Aku bikin query ini buat gabungin semua konsep: input(), for loop, while loop, dictionary, operasi +, if-else, return, try-except, modul, plus \n, sep, dan end, biar kamu paham cara nangani error di banyak lapisan. Dalam praktik, fungsi ada di file lingkungan.py. Aku pilih tema daur ulang karena Arry Hutomo peduli lingkungan, sesuai isu lingkungan. Struktur ini bikin kamu paham cara nangani error kompleks, dan gampang diinget karena mirip kayak bikin laporan tapi siap kalo salah! Coba di VSCode, bakal bangga sama hasilnya! ♻️