Error Handling dalam Python: Cara Menangani Kesalahan dengan Try-Except

Error Handling dalam Python: Cara Menangani Kesalahan dengan Try-Except

Error handling adalah teknik untuk menangani kesalahan (error) yang terjadi selama eksekusi program. Dengan error handling, Anda bisa mencegah program berhenti secara tiba-tiba dan memberikan respons yang lebih baik saat terjadi masalah. Mari kita pelajari cara menangani error di Python menggunakan tryexceptfinally, dan raise!


1. Apa itu Error?

Error (atau exception) adalah masalah yang terjadi selama eksekusi program. Python memiliki banyak jenis error, seperti SyntaxErrorTypeErrorValueErrorZeroDivisionError, dan lain-lain.

Contoh Error:

python
# Contoh error ZeroDivisionError
print(10 / 0)  # Akan menghasilkan error: ZeroDivisionError

2. Menggunakan Try-Except

Blok try digunakan untuk menjalankan kode yang mungkin menghasilkan error. Jika error terjadi, blok except akan menangkap dan menanganinya.

Contoh Kode:

python
# Menangani error ZeroDivisionError
try:
    hasil = 10 / 0
except ZeroDivisionError:
    print("Error: Tidak bisa membagi dengan nol.")

Output:

Error: Tidak bisa membagi dengan nol.

Penjelasan:

  • Kode di dalam blok try akan dijalankan.
  • Jika terjadi ZeroDivisionError, blok except akan dieksekusi.

3. Menangani Multiple Exception

Anda bisa menangani beberapa jenis error dengan menambahkan blok except lebih dari satu.

Contoh Kode:

python
# Menangani multiple exception
try:
    angka = int(input("Masukkan angka: "))
    hasil = 10 / angka
    print("Hasil:", hasil)
except ValueError:
    print("Error: Input harus berupa angka.")
except ZeroDivisionError:
    print("Error: Tidak bisa membagi dengan nol.")

Output (jika input bukan angka):

Masukkan angka: abc
Error: Input harus berupa angka.

Output (jika input adalah 0):

Masukkan angka: 0
Error: Tidak bisa membagi dengan nol.

4. Menggunakan Else dalam Try-Except

Blok else akan dieksekusi jika tidak ada error yang terjadi di blok try.

Contoh Kode:

python
# Menggunakan else
try:
    angka = int(input("Masukkan angka: "))
    hasil = 10 / angka
except ValueError:
    print("Error: Input harus berupa angka.")
except ZeroDivisionError:
    print("Error: Tidak bisa membagi dengan nol.")
else:
    print("Hasil:", hasil)  # Dieksekusi jika tidak ada error

Output (jika input valid):

Masukkan angka: 2
Hasil: 5.0

5. Menggunakan Finally

Blok finally akan selalu dieksekusi, baik error terjadi maupun tidak. Biasanya digunakan untuk membersihkan sumber daya (seperti menutup file).

Contoh Kode:

python
# Menggunakan finally
try:
    file = open("contoh.txt", "r")
    print(file.read())
except FileNotFoundError:
    print("Error: File tidak ditemukan.")
finally:
    print("Blok finally dieksekusi.")
    file.close()  # Pastikan file ditutup

Output (jika file tidak ditemukan):

Error: File tidak ditemukan.
Blok finally dieksekusi.

6. Membuat Custom Exception

Anda bisa membuat exception sendiri dengan membuat kelas yang mewarisi dari kelas Exception.

Contoh Kode:

python
# Membuat custom exception
class NilaiTerlaluKecilError(Exception):
    def __init__(self, pesan="Nilai terlalu kecil"):
        self.pesan = pesan
        super().__init__(self.pesan)

# Menggunakan custom exception
def cek_nilai(nilai):
    if nilai < 10:
        raise NilaiTerlaluKecilError("Nilai harus lebih besar dari 10")
    else:
        print("Nilai valid:", nilai)

try:
    cek_nilai(5)
except NilaiTerlaluKecilError as e:
    print(e)  # Output: Nilai harus lebih besar dari 10

7. Menggunakan Raise untuk Melempar Exception

Anda bisa melempar exception secara manual menggunakan statement raise.

Contoh Kode:

python
# Melempar exception secara manual
def bagi(angka1, angka2):
    if angka2 == 0:
        raise ZeroDivisionError("Tidak bisa membagi dengan nol")
    return angka1 / angka2

try:
    print(bagi(10, 0))
except ZeroDivisionError as e:
    print(e)  # Output: Tidak bisa membagi dengan nol

Kesimpulan

Error handling adalah teknik penting untuk membuat program yang lebih stabil dan mudah di-debug. Dengan menggunakan tryexceptfinally, dan raise, Anda bisa menangani error dengan lebih baik dan memberikan respons yang sesuai saat terjadi masalah.


Tips untuk Pembaca:

  • Praktik Langsung: Coba jalankan contoh kode di atas dan modifikasi untuk memahami cara kerja error handling.
  • Eksplorasi Jenis Error: Pelajari jenis-jenis error lain seperti IndexErrorKeyError, dan FileNotFoundError.
  • Tantangan: Buat program sederhana seperti kalkulator atau pembaca file dengan error handling yang baik.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *