- Kesalahan sintaks (syntax errors) atau sering disebut juga sebagai kesalahan penguraian (parsing errors).
- Pengecualian (exceptions) atau sering disebut juga sebagai kesalahan saat beroperasi (runtime errors).
Kesalahan Sintaks (Syntax Errors)
Kesalahan sintaks (syntax errors) adalah jenis kesalahan yang terjadi ketika Python tidak mengerti perintah Anda. Ini mengakibatkan pesan kesalahan muncul sebelum program tersebut berjalan. Salah satu tipe kesalahan sintaks yang sering ditemui adalah kesalahan indentasi (IndentationError). Berikut contoh kodenya.
Mari bedah satu per satu poin di atas.
<nama file>merupakan file Python yang Anda eksekusi. Jika Anda menggunakan mode script melalui lokal komputer dan program Anda menghasilkan Error, pesan ini akan memunculkan nama script atau file Python Anda.<nomor baris>merupakan nomor baris kode dalam file Anda yang mengalami kesalahan.<baris kode>merupakan kode yang mengalami kesalahan dalam file Anda.<tipe kesalahan>merupakan kelompok atau tipe kesalahan yang Anda alami, contohnya SyntaxError dan IndentationError.<pesan kesalahan>merupakan pesan detail kesalahan atau keterangan yang diberikan oleh program. Contohnya adalah “invalid syntax” dan “expected an indented block”.
Pengecualian (Exceptions)
Pengecualian adalah kesalahan yang terjadi ketika Python mengerti perintah Anda, tetapi mendapatkan masalah saat mengikutinya. Umumnya, pengecualian bisa terjadi ketika aplikasi sudah mulai beroperasi. Jenis kesalahan ini paling sering ditemui ketika Anda membuat kode program yang kompleks. Meskipun kode atau ekspresi dari Python yang Anda tulis sudah benar, ada kemungkinan terjadi kesalahan ketika perintah tersebut dieksekusi. Mari lihat contoh kode pengecualian di bawah ini.
Pesan ini mengacu pada informasi yang ditampilkan ketika terjadi kesalahan atau pengecualian (exception). Pesan traceback ini menyediakan “jejak” dari kode yang dieksekusi sehingga Anda dapat melacak kembali jalur eksekusi program sebelum mencapai titik error.
Penanganan Pengecualian
Lalu, bagaimana menangani kesalahan atau pengecualian tersebut? Program Python yang Anda bangun dapat dilengkapi penanganan terhadap pengecualian dari tipe kesalahan yang Anda tentukan. Konsep ini dikenal dengan exceptions handling yang menggunakan pernyataan try-except untuk menangani pengecualian tersebut. Mari lihat jenis pengecualian yang berbeda dari contoh sebelumnya. Kali ini, pengecualiannya adalah kesalahan pembagian angka dengan nol.
Anda bisa simpan kode yang dibuat di dalam “try” statement. Kode tersebut merupakan barisan kode yang mungkin terjadi pengecualian. Ada pun statement “except” adalah statement yang akan digunakan ketika pengecualian tersebut terjadi.
Sederhananya, program akan mencoba (try) mengeksekusi kode yang berada dalam try statement. Lalu jika terjadi pengecualian, kode yang berada pada except statement akan dieksekusi.
Mari lihat penerapannya pada contoh berikut.
Struktur lengkap seperti ini biasanya diterapkan ketika Anda membangun program atau aplikasi yang lebih kompleks.
Pada try statement, program akan menjalankan blok kode yang mungkin terjadi pengecualian. Pada except statement, program akan mengeksekusi statement ini jika terjadi pengecualian. Pada else statement, program akan mengeksekusi statement ini jika tidak terjadi pengecualian. Pada finally statement, program akan mengeksekusi statement ini setelah semua pernyataan di atas terjadi.
Mari lihat contoh penerapannya di bawah ini, contoh tersebut merupakan program untuk menampilkan key dalam tipe data dictionary. Jenis pengecualian yang akan dilakukan adalah KeyError dan TypeError. Kita akan coba untuk mengakses value dictionary dari key yang tidak ada dan mencoba mengoperasikan value dictionary tersebut yang termasuk string dengan operasi aritmetika. Untuk pengingat, dictionary merupakan tipe data yang melibatkan key-value.
Mari mulai dengan kondisi yang tidak menampilkan error.
- Untuk membangkitkan KeyError, ubah kode “print(f”rata-rata adalah {var_dict[‘rata_rata’]}”) ” dengan kode ” print(f”rata-rata adalah {var_dict[‘ratarata’]}”) ”. Anda bisa langsung copy-paste kode tersebut.
- Dengan mengubah kode tersebut, program akan menampilkan KeyError. Hal ini terjadi karena kita mengakses key “ratarata”, padahal seharusnya adalah “rata_rata”.
- Perhatikan bahwa else statement tidak dieksekusi, karena exception atau pengecualian terjadi. Hal ini dibuktikan dengan tidak adanya teks “Kode ini dieksekusi jika tidak ada exception”.
- Untuk membangkitkan TypeError, ubah kode “print(f”rata-rata adalah {var_dict[‘rata_rata’]}”) ” dengan kode ” print(f”rata-rata adalah {var_dict[‘rata_rata’]/2}”) ”. Anda bisa langsung copy-paste kode tersebut.
- Dengan mengubah kode tersebut, program akan menampilkan TypeError. Hal ini terjadi karena kita melakukan operasi aritmetika terhadap value dari key “rata_rata” yang merupakan tipe data string.
- Perhatikan bahwa else statement tidak dieksekusi, karena exception atau pengecualian terjadi. Hal ini dibuktikan dengan tidak adanya teks “Kode ini dieksekusi jika tidak ada exception”.