Try-Except Python
Try-Except Python
Saat mengolah data atau menulis skrip Python, kita pasti pernah menemui berbagai
hambatan dalam bentuk kesalahan atau 'eksepsi'. Jika tidak ditangani dengan baik,
eksepsi-eksepsi ini dapat menghambat proses dan mempersulit pekerjaan kita.
Dalam artikel ini, kita akan membahas tentang try-except Python, sebuah fitur yang
membantu kamu menangani eksepsi dalam kode Python. Kita akan membahas
konsep dasar, cara menggunakan, sampai contohnya. Selamat membaca!
Saat bekerja dengan data, akan ada banyak situasi di mana kamu mungkin
menemukan error atau kesalahan dalam menjalankan kode. Itulah sebabnya kamu
memerlukan try-except.
Konsep dasar dari try-except sangatlah sederhana. Bagian 'try' digunakan untuk
mengeksekusi potongan kode yang mungkin menimbulkan error. Sementara
bagian 'except' dipakai untuk menangkap dan menangani error tersebut.
Dengan kata lain, kamu 'mencoba' menjalankan suatu kode. Jika ada masalah
atau 'eksepsi', kamu memiliki rencana cadangan untuk menanganinya.
Syntax Try-Except
Berikut syntax dasar dari blok try-except di Python:
try:
# kode yang mungkin menimbulkan eror
except:
# bagaimana kita menangani eror tersebut
Copy
Dari syntax di atas, bagian 'try' berisi kode yang mungkin menghasilkan eksepsi.
Bagian ini akan dijalankan oleh Python. Jika ada eksepsi yang terjadi, Python akan
berhenti menjalankan kode dalam blok 'try' dan pindah ke blok 'except'.
Bagian 'except' menentukan apa yang harus dilakukan ketika eksepsi tertentu
terjadi. Kamu juga dapat menentukan beberapa blok 'except' untuk menangani
berbagai jenis eksepsi.
Selain 'try' dan 'except', ada dua bagian opsional lainnya dalam blok try-except,
yaitu 'else' dan 'finally'.
try:
# Kode yang mungkin menimbulkan eksepsi
except:
# Kode untuk menangani eksepsi
else:
# Kode yang akan dijalankan jika tidak ada eksepsi
Copy
'else' adalah bagian yang akan dijalankan saat kode dalam blok 'try' tidak
menimbulkan eksepsi. Bagian ini dipakai untuk menempatkan kode yang kamu ingin
jalankan apabila tidak ditemukan error atau eksepsi.
try:
# Kode yang mungkin menimbulkan eksepsi
Except:
# Kode untuk menangani eksepsi
finally:
# Kode yang selalu dijalankan, tidak peduli ada atau tidak ada
eksepsi
Copy
Bagian 'finally' adalah bagian yang akan selalu dijalankan, baik ada eksepsi
maupun tidak. Biasanya, bagian ini digunakan untuk membersihkan sumber daya
dan menutup koneksi file atau database.
TypeError
Kesalahan ini terjadi ketika kamu mencoba melakukan operasi pada tipe data yang
tidak sesuai. Misalnya, menjumlahkan angka dengan string akan menghasilkan
TypeError.
Python kemudian akan menjalankan blok 'except' dan akan muncul output: "Terjadi
TypeError, pastikan kamu menjumlahkan dua angka."
FileNotFoundError
Kesalahan ini muncul saat Python tidak dapat menemukan file yang ingin kamu
buka.
Contoh:
try:
file = open ('file_tidak_ada.txt')
except FileNotFoundError:
print("File tidak ditemukan. Pastikan Anda memasukkan path yang
benar.")
Copy
Jika file yang disebutkan tidak ada, Python akan menghasilkan FileNotFoundError.
Ketika ini terjadi, blok 'except' akan dieksekusi dan output-nya adalah: "File tidak
ditemukan. Pastikan kamu memasukkan path yang benar."
ZeroDivisionError
Kesalahan ini muncul saat kamu mencoba membagi suatu angka dengan nol.
Contoh:
try:
hasil =10 / 0
except ZeroDivisionError:
print("Anda mencoba membagi dengan nol. Ini tidak dapat
dilakukan.")
Copy
Saat Python mencoba menjalankan kode dalam blok 'try', akan
terjadi ZeroDivisionError. Setelahnya, blok 'except' dieksekusi dan output yang
kita lihat adalah:
KeyError
Kesalahan ini terjadi saat kamu mencoba mengakses elemen dictionary dengan
kunci yang tidak ada di dalamnya.
Contoh penggunaan:
try:
dict = {'a': 1. 'b': 2}
print(dict['c'])
except KeyError:
print ("Kunci yang Anda coba akses tidak ada dalam dictionary.")
Copy
Jika kunci yang kamu coba akses tidak ada dalam dictionary, Python akan
menampilkan KeyError. Ketika ini terjadi, blok 'except' akan dieksekusi dan output-
nya adalah:
try:
# kode yang mungkin menimbulkan eror
except Exception as e:
# mengakses objek eksepsi
Copy
Dalam syntax di atas, 'Exception' adalah kelas dasar untuk semua jenis eksepsi
dan 'e' adalah variabel yang merujuk ke objek eksepsi yang dibuat ketika terjadi
kesalahan.
Contoh Penggunaan Try-Except
Berikut beberapa contoh penggunaan try-except dalam skenario pemrograman
Python.
try:
data = pd.read csv('file_tidak_ada.csv')
except FileNotFoundError as e:
print("Terjadi kesalahan: “ + str(e))
Copy
Dalam contoh di atas, apabila file CSV tidak ditemukan, program akan menjalankan
blok 'except' dan pesan kesalahan akan ditampilkan:
import requests
try:
response = requests.get(‘https://api.situs_tidak_ada.com/data')
response.raise_for_status()
except requests.exceptions.RequestException as e:
print("Terjadi kesalahan: " + str(e))
Copy
Di atas, jika ada masalah saat mengakses API (misalnya, situs tidak ditemukan atau
permintaan waktu habis), blok 'except' akan menangkap eksepsi dan
menampilkan output yang menyatakan terjadi kesalahan.
try:
umur = int (data['umur'])
except ValueError as e:
print ("Terjadi kesalahan:” + str(e))
Copy
Dalam contoh ini, kita mencoba mengubah nilai dalam dictionary menjadi integer.
Namun, karena nilai tersebut adalah string dan tidak dapat diubah menjadi integer,
Python akan menimbulkan ValueError.
"Terjadi kesalahan: invalid literal for int() with base 10: 'tiga puluh'".
umur = -1
try:
if umur < 0:
raise ValueError ("Umur tidak boleh negatif")
except ValueError as e:
print ("Terjadi kesalahan:” + str(e))
Copy
Pada contoh di atas, jika umur lebih kecil dari 0, kita memicu ValueError dengan
pesan "Umur tidak boleh negatif". Blok 'except' kemudian menangkap eksepsi ini
dan menampilkan pesan kesalahan: "Terjadi kesalahan: Umur tidak boleh
negatif".
try:
hasil = 10 / 0
except ZeroDivisionError as e:
print ("Terjadi kesalahan ZeroDivisionError:” + str(e))
Copy
Dalam contoh di atas, pesan kesalahan menginformasikan bahwa
ada ZeroDivisionError dan juga memberikan detail kesalahannya.
try:
# kode yang mungkin menimbulkan eror
except ZeroDivisionError:
print("Anda mencoba membagi dengan nol, yang tidak
diperbolehkan.")
except FileNotFoundError:
print("File yang Anda coba akses tidak ditemukan.")
Copy
Contoh di atas menangani dua jenis kesalahan berbeda dengan pesan yang juga
berbeda. Langkah ini lebih informatif dibandingkan hanya menggunakan satu
blok 'except' untuk semua jenis kesalahan.
Penggunaan kedua blok ini berguna untuk membersihkan sumber daya atau
melakukan tindakan penutup, seperti menutup file atau koneksi jaringan.
try:
file = open('file.txt', 'r')
except FileNotFoundError:
print("File tidak ditemukan.")
else:
data = file.read()
print("Data berhasil dibaca.")
finallv:
file.close()
print("File telah ditutup.")
Copy
Pada contoh di atas, jika file berhasil dibuka, data akan dibaca dan muncul pesan
"Data berhasil dibaca". Apapun yang terjadi, file tersebut akan selalu ditutup dan
muncul pesan "File telah ditutup".
Dengan menerapkan tips ini, kamu dapat menangani kesalahan dengan lebih efektif
dan kode lebih mudah dibaca serta dipahami.
Penutup
Tidak ada kode yang sempurna dan kesalahan pasti akan terjadi. Namun, dengan
memahami try-except Python, kita dapat menangani kesalahan tersebut dengan
baik dan bahkan menggunakannya sebagai peluang untuk belajar dan memperbaiki
kode kita.