purwadhika-logoPurwadhika Logo
hamburger-menu

Atasi Error dalam Python dengan Dua Sejoli, Try Except

Rafdiaufar Hazman Hakim

10 May 2024

Atasi Error dalam Python dengan Dua Sejoli, Try Except.jpg

Semua orang pasti pernah melakukan kesalahan. Selama pembelajaran kita, terutama ketika baru mempelajari penggunaan Python, menemukan error merupakan sesuatu yang lazim terjadi dan tidak sepantasnya menjadi sesuatu yang perlu ditakuti. Bahkan, kita sebaiknya mencoba belajar dari error tersebut, berusaha mencari cara untuk mengatasinya, hingga akhirnya menguasainya.

Namun, tidak semua error berasal dari kesalahan penulisan kode. Error juga dapat terjadi selama pengeksekusian kode karena kesalahan perhitungan ataupun input pengguna. Bagaimana jika ada suatu cara untuk menangani error yang muncul pada program kita? Disini,kita akan mempelajari lebih lanjut tentang Try Except untuk mengatasi error di Python.

Apa itu Error pada Python?

Error merupakan kesalahan dalam program yang mengganggu alur program sehingga tidak dapat menyelesaikan tugas yang diberikan. Dalam Python, kesalahan ini dipisahkan menjadi dua jenis yang berbeda: Syntax Error dan Exception.

Syntax Error

Titik dua yang terlewat, indentasi yang salah, tanda kurung yang tidak sesuai, dan kesalahan pengejaan kata kunci adalah kesalahan umum yang menimbulkan Syntax Error. Program tidak dapat bekerja sebagaimana mestinya karena ada kesalahan dalam penulisan kode:

print("Hello, World"")

Cell In[6], line 1 print("Hello, World"") ^ SyntaxError: unterminated string literal (detected at line 1)

Apabila hal ini terjadi, jangan panik dan baca dengan seksama penjelasan di bawahnya. Python juga menunjukkan nama file dan nomor baris di mana kesalahan berasal untuk memudahkan pencarian dalam ribuan baris kode.

Exception

Sebaliknya, Exception terjadi ketika kode sudah benar secara sintaksis tetapi ada kesalahan yang terdeteksi selama pengeksekusian. Python memiliki beberapa Exception bawaan yang memberi tahu jenis kesalahan yang terjadi selama proses. Beberapa Exception yang umum adalah sebagai berikut:

#Pembagian dengan nol 13 / 0 ZeroDivisionError: division by zero

#Operasi matematika int dan str 14 + 'Sebelas' TypeError: unsupported operand type(s) for +: 'int' and 'str'

#Index berada di luar rentang list = [1, 2, 3, 4] list[4] IndexError: list index out of range

#Nama variabel tidak sesuai amazing * 2 NameError: name 'amazing' is not defined

#Kesalahan key dalam dictionary dict_1 = {'kota' : 'jakarta'} dict_1['negara'] KeyError: 'negara'

#Kesalahan perubahan tipe data int("String") ValueError: invalid literal for int() with base 10: 'String'

Info lebih lanjut mengenai Exception serta urutan tingkatannya dapat ditemukan disini: Python Documentation: Built-in Exception

Apa itu Try Except?

Try Except digunakan untuk menangani error yang terjadi selama proses eksekusi. Pernyataan Try berarti setiap kode yang berada setelahnya akan diperiksa saat dijalankan dan diuji apakah akan terjadi kesalahan. Sedangkan pernyataan Except hanya akan berjalan jika ditemukan kesalahan dalam kode pernyataan Try. Hal ini menandakan bahwa kita dapat mengontrol output seperti apa yang kita inginkan ketika terjadi error.

Sintaksis Try Except :

try: # Sebuah kode dimana error dapat terjadi saat eksekusi except: # Hasil yang akan dijalankan apabila terjadi error # pada pernyataan Try

Pernyataan Try bekerja sebagai berikut :

Kode dalam pernyataan Try dijalankan. Apabila tidak terjadi error selama proses, Pernyataan Except akan dilewati dan proses berlanjut setelah pernyataan Except. Jika terjadi error, maka sisa dari pernyataan Try akan dilewati dan pernyataan Except akan dijalankan hingga proses berlanjut setelah pernyataan Except.

Jika terjadi error dan tidak sesuai dengan exception yang diberikan pada pernyataan Except, maka error tersebut akan diteruskan ke pernyataan Try di luar. Jika tidak ditemukan penanganan, maka eksekusi akan dihentikan dan program akan diakhiri dengan pesan error. Pernyataan Try dapat memiliki lebih dari satu pernyataan Except untuk menangani beberapa exception dengan masing-masing hasil keluaran yang berbeda.

Untuk lebih mudah memahami bagaimana cara kerja Try Except, cobalah beberapa contoh berikut:

Pernyataan Try tanpa error

try: print("Ini kode sebelum error terjadi") x = int(input("Masukkan angka")) print("Inilah hasil Anda : ", x) except: print("Except hadir! Input bukan angka!")

#Input : 10

Ini kode sebelum error terjadi Inilah hasil Anda : 10

Ketika kode Anda berjalan tanpa kesalahan, semua kode dalam pernyataan Try akan berjalan sampai akhir dan semua kode dalam pernyataan Except akan dilewati.

Pernyataan Try ketika error terjadi

try: print("Ini kode sebelum error terjadi") x = int(input("Masukkan angka")) print("Inilah hasil Anda : ", x) except: print("Except hadir! Input bukan angka!") print("Ini kode lain dalam Except")

#Input : alphabet

Ini kode sebelum error terjadi Except hadir! Input bukan angka! Ini kode lain dalam Except

Ketika error terjadi, semua kode dalam pernyataan Except akan dijalankan. Namun, perhatikan bagaimana kode dalam pernyataan Try sebelum error terjadi masih mengeluarkan hasil. Kode dimana error terjadi dan semua kode di bawahnya akan dilewati.

Pernyataan Try dimana error terjadi menggunakan exception tertentu

try: print("Ini kode sebelum error terjadi") x = int(input("Masukkan angka")) y = 3/x print("Inilah hasil Anda : ", y) except: print("Except hadir! Input bukan angka!") print("Ini kode lain dalam Except")

#Input : alfabet #Input : 0

Ini kode sebelum error terjadi Except hadir! Input bukan angka! Ini kode lain dalam Except

Perlu diketahui bahwa menggunakan Except tanpa menentukan exception akan membuatnya menangkap error apapun terlepas dari apa yang terjadi di dalam kode Try. Meskipun terlihat lebih praktis, hal ini akan mempersulit kita untuk melihat jenis error yang terjadi karena pernyataan Except akan berjalan tanpa memperdulikannya. Oleh karena itu, lebih disarankan untuk membatasi exception dengan kesalahan yang mungkin terjadi pada kode Except.

Dalam kasus di atas, meskipun input 0 merupakan angka, pernyataan Except akan tetap dijalankan karena menghasilkan error lain. Inilah sebabnya mengapa pembatasan exception diperlukan.

try: print("Ini kode sebelum error terjadi") x = int(input("Masukkan angka")) y = 3/x print("Inilah hasil Anda : ", y) except ValueError as e: print("Except hadir! Input bukan angka!\n",e) print("Ini kode lain dalam Except") except ZeroDivisionError as e: print("Except hadir! Error terjadi:\n",e) print("Ini kode lain dalam Except")

#Input : alfabet

Ini kode sebelum error terjadi Except hadir! Input bukan angka! invalid literal for int() with base 10: 'alfabet' Ini kode lain dalam Except

#Input : 0

Ini kode sebelum error terjadi Except hadir! Error terjadi: division by zero Ini kode lain dalam Except

Dengan menggunakan exception khusus, kita dapat menangani error khusus dan mengontrol hasil keluarannya dengan tepat.

Menangkap exception menggunakan Try Except

Kita juga dapat menggunakan Try Except untuk menyimpan error menggunakan pernyataan Except lalu mencetaknya sebagai catatan untuk melihat jenis error yang terjadi di dalam program sebelum menaikkan error menggunakan pernyataan Raise. Ini adalah pola umum dalam menangani exception :

try: list = [1, 2, 3, 4] list[4] except Exception as e: print(f"Unexpected {e}, {type(e)}") raise

Unexpected list index out of range, <class 'IndexError'>


IndexError Traceback (most recent call last) Cell In[45], line 3 1 try: 2 list = [1, 2, 3, 4] ----> 3 list[4] 4 except Exception as e: 5 print(f"Unexpected {e}, {type(e)}")

IndexError: list index out of range

Pernyataan Else dalam Try Except

Kita juga dapat menambahkan pernyataan Else di bawah semua pernyataan Except. Else hanya akan berjalan jika tidak terjadi error di dalam kode.

try: print("Ini kode sebelum error terjadi") x = int(input("Masukkan angka")) except: print("Except hadir! Input bukan angka!") else: print("Inilah hasil Anda : ", x)

#Input : 10

Ini kode sebelum error terjadi Inilah hasil Anda : 10

Pernyataan Finally dalam Try Except

Pernyataan lain yang dapat Anda tambahkan dari Try Except adalah pernyataan Finally. Pernyataan Finally akan berjalan terlepas dari apakah terjadi error pada pernyataan Try atau tidak. Pernyataan ini diposisikan di bawah pernyataan Else.

def divide(num1, num2): try: result = num1 / num2 except TypeError: print("String tidak dapat dibagi") else: print(result) finally: print("Finally akan hadir setiap saat")

divide(1,3) 0.3333333333333333 Finally akan hadir setiap saat

divide(1,"3") String tidak dapat dibagi Finally akan hadir setiap saat

divide(1, 0)

Finally akan hadir setiap saat


ZeroDivisionError Traceback (most recent call last) Cell In[1], line 15 13 divide(1,"3") 14 print() ---> 15 divide(1, 0)

Cell In[1], line 3 1 def divide(num1, num2): 2 try: ----> 3 result = num1 / num2 4 except TypeError: 5 print("String tidak dapat dibagi")

ZeroDivisionError: division by zero

Perlu diperhatikan bahwa Finally juga akan dijalankan sebelum error terjadi karena akan menjadi tindakan pembersihan dalam pernyataan Try, apapun hasilnya.

Kesimpulan

Demikian penjelasan mengenai langkah-langkah untuk mengatasi error di Python menggunakan pernyataan Try Except. Pernyataan Try digunakan untuk menjalankan suatu kode dan memeriksa kesalahan sebelum akhirnya ditangani oleh kode pada pernyataan Except apabila error terjadi. Kita juga dapat menambahkan pernyataan Else untuk menjalankan kode yang hanya akan bekerja jika tidak terjadi kesalahan pada pernyataan Try dan juga pernyataan Finally yang akan selalu menjalankan kode terlepas hasil yang didapatkan.

Masih ada banyak cara untuk menggunakan Try Except di Python yang dapat Anda jelajahi lebih lanjut. Semoga panduan ini dapat membantu memperkenalkan Try Except secara ringkas. Ingatlah untuk tidak takut dengan error karena sekarang Anda dapat menangani error sendiri. Happy Coding!


bagikan