Try & Except: Cara Elegan Mengatasi Error di Python
Setiap programmer, baik pemula maupun ahli, pasti pernah bertemu dengan pesan error berwarna merah yang menghentikan program secara tiba-tiba. Terkadang, error ini terjadi bukan karena kesalahan logika kita, tetapi karena situasi yang tak terduga, seperti pengguna memasukkan teks padahal yang diminta adalah bilangan.
Daripada membiarkan program kita "crash", Python menyediakan mekanisme yang sangat kuat dan elegan untuk mengelola situasi ini, yaitu blok try...except. Anggap saja ini sebagai "Rencana B" untuk kode Anda: "Coba (try) jalankan kode ini, kecuali (except) jika terjadi masalah, maka lakukan ini sebagai gantinya."
Mengapa Penanganan Error (Error Handling) Penting? ๐ก๏ธ
Menangani error bukan tentang memperbaiki bug, melainkan tentang membuat program yang tangguh dan ramah pengguna.
- Mencegah Program Berhenti Paksa: Program yang berhenti tiba-tiba memberikan pengalaman yang buruk. Dengan
try...except, program bisa terus berjalan meskipun ada input yang tidak valid. - Memberikan Umpan Balik yang Jelas: Alih-alih menampilkan pesan error teknis, Anda bisa memberikan pesan yang lebih manusiawi, seperti "Maaf, input harus berupa bilangan."
- Meningkatkan Keandalan Program: Program yang dapat menangani situasi tak terduga adalah program yang lebih stabil dan profesional.
Anatomi Blok try dan except
Struktur dasarnya sangat sederhana. Kode yang berisiko menimbulkan error kita letakkan di dalam blok try. Kode yang akan dijalankan jika error terjadi kita letakkan di dalam blok except.
Mari kita lihat contoh klasik: program pembagian dua bilangan. Masalah akan muncul jika pengguna memasukkan angka 0 sebagai pembagi.
Tanpa Penanganan Error (Program akan Crash)
pembilang = 10
penyebut = 0
hasil = pembilang / penyebut # Baris ini akan menyebabkan ZeroDivisionError
print(hasil)Dengan Penanganan Error (Program Tetap Berjalan)
try:
pembilang = 10
penyebut = 0
hasil = pembilang / penyebut # Kode berisiko diletakkan di sini
print(hasil)
except ZeroDivisionError:
# Kode ini hanya berjalan jika terjadi ZeroDivisionError
print("Error: Pembagian dengan nol tidak diizinkan!")Dengan struktur di atas, program tidak akan berhenti, melainkan akan menampilkan pesan error yang sudah kita siapkan.
Menangkap Beberapa Tipe Error Sekaligus
Bagaimana jika ada lebih dari satu potensi masalah? Misalnya, selain pembagian dengan nol, pengguna juga bisa memasukkan teks (bukan bilangan). Kita bisa menambahkan beberapa blok except untuk menangani error yang berbeda-beda.
try:
pembilang = int(input("Masukkan pembilang: "))
penyebut = int(input("Masukkan penyebut: "))
hasil = pembilang / penyebut
print(f"Hasilnya adalah: {hasil}")
except ValueError:
print("Error: Anda harus memasukkan bilangan bulat.")
except ZeroDivisionError:
print("Error: Penyebut tidak boleh nol.")Bonus: Blok else dan finally
Ada dua blok opsional lagi yang bisa kita gunakan:
else: Blok ini akan dieksekusi hanya jika bloktryberhasil dijalankan tanpa ada error sama sekali. โfinally: Blok ini akan selalu dieksekusi, tidak peduli apakah ada error atau tidak. Biasanya digunakan untuk "membersihkan" sesuatu, seperti menutup file. ๐งน
try:
bilangan = int(input("Masukkan sebuah bilangan: "))
except ValueError:
print("Input tidak valid.")
else:
print(f"Anda memasukkan bilangan {bilangan}. Terima kasih!")
finally:
print("Program selesai.")Kesimpulan
Struktur try...except adalah alat fundamental bagi programmer Python untuk membangun aplikasi yang kuat, andal, dan ramah pengguna. Dengan mengantisipasi potensi error dan menanganinya secara elegan, Anda dapat mengubah program yang rapuh menjadi program yang profesional.

