Errors
dan Exception
1 Penelusuran
program
Pemograman komputer adalah sebuah proses yang sangat kompleks, dan
karena
hal ini dilakukan manusia maka seringkali terjadi kesalahan - kesalahan. Pada umumnya
kesalahan - kesalahan yang terjadi pada sebuah pemograman dikenal sebagai bugs,
sedangkan proses penulusuran kembali program dan memperbaikinya dikenal dengan debugging.Ada
tiga jenis kesalahan yang dapat terjadi dalam sebuah program: Kesalahan
sintaks, kesalahan pada saat menjalankan program, yang sekarang ini lebih
dikenal sebagai runtime errors dan kesalahan algoritma program, yang lebih
dikenal dengan sebutan semantic errors. Sangatlah dianjurkan bagi untuk bisa
membedakannya satu sama lain dengan tujuan untuk mendeteksi kesalahan dan
memperbaikinya dengan segera.
hal ini dilakukan manusia maka seringkali terjadi kesalahan - kesalahan. Pada umumnya
kesalahan - kesalahan yang terjadi pada sebuah pemograman dikenal sebagai bugs,
sedangkan proses penulusuran kembali program dan memperbaikinya dikenal dengan debugging.
2 Kesalahan
sintaks
Python hanya dapat mengeksekusi sebuah program hanya jika program
tersebut berisi baris - baris perintah dengan sintaks yang benar. Kalau dalam
program tersebut terdapat kesalahan sintaks maka proses akan berhenti dan
menampilkan pesan kesalahan, yang kemudian dikenal sebagai Syntax errors
. Sintaks merujuk ke sebuah struktur program dan aturan - aturan yang
berperan dalam struktur tersebut. Sebagai contohnya, dalam bahasa Indonesia ,
sebuah kalimat harus di awali dengan huruf kapital dan dan diakhiri dengan
tanda titik (.), kalimat tersebut
akan mempunyai kesalahan sintaks jika penulisan kalimat tidak sesuai dengan aturan yang berlaku. Hal ini juga berlaku di dalam bahasa pemograman komputer.
akan mempunyai kesalahan sintaks jika penulisan kalimat tidak sesuai dengan aturan yang berlaku. Hal ini juga berlaku di dalam bahasa pemograman komputer.
Pada kebanyakan pembaca, beberapa kesalahan sintaks bukanlah
sebuah masalah yang serius, seperti penulisan puisi, pantun dan yang lainnya. Tetapi
bahasa pemograman Python bukanlah pemaaf yang baik dalam hal tersebut, jika
terdapat satu kesalahan sintaks, maka program akan langsung memberikan pesan
kesalahan dan keluar dari program. Pada waktu Anda baru mulai memprogram,
mungkin Anda akan banyak menemui kesalahan sintaks tersebut, tetapi lain halnya
jika anda sudah terbiasa memprogram, Anda hanya akan menemui beberapa kesalahan
dan menemukan kesalahan tersebut dengan cepat.
Kesalahan sintaks, dapat juga disebut dengan kesalahan dalam memparsing
kode python yang salah, umumnya ditemui pada saat Anda baru memulai belajar Bahasa
pemograman python. Contohnya :
>>>
while 1 print 'Hello world'
File
"<stdin>", line 1
while
1 print 'Hello world'
^
SyntaxError:
invalid syntax
Pada contoh diatas, interpreter memberitahukan bahwa pada perintah
terdapat kesalahan sintaks, interpreter akan menampilkan baris yang salah dan menunjukkan
posisi kode yang salah dengan tanda panah kecil, contoh di atas pada penggunaan
while seharusnya memberi tanda titik dua ":" setelah kondisi while.
3 Runtime
errors
Jenis kesalahan kali ini disebut dengan runtime errors, disebut
begitu karena kesalahan tidak akan muncul sampai Anda menjalankan program
tersebut. Kesalahan ini juga dikenal dengan exceptions atau pengecualian karena
biasanya mengindikasikan sesuatu pengecualian yang buruk telah terjadi.
Runtime errors sangat jarang terjadi pada program sederhana.
4 Kesalahan
Algoritma
Saat ini adalah kesalahan algoritma, yang sekarang ini lebih
dikenal dengan sebutan semantic errors. Jika terdapat kesalahan jenis ini dalam
program Anda, program masih akan berjalan dengan
lancar dan tidak mengeluarkan pesan kesalahan, tetapi tidak akan sesuai dengan harapan, karna akan terjadi penyimpangan
dan berbeda dengan apa yang diinginan.
Karena program tersebut tidak sesuai dengan yang diharapkan dan
akan meminta Anda untuk menelusuri kembali program tersebut dari awal untuk
memperbaiki algoritmanya, kesalahan ini akan sering muncul pada saat Anda mulai
berpengalaman dengan suatu bahasa pemograman.
5 Penelusuran
kembali
Satu hal yang paling penting dan Anda harus punya adalah
penulusuran kembali atau disebut kemudian sebagai debugging. Walaupun hal
tersebut bisa membuat putus asa, debugging merupakan kekayaan intelektual
seseorang yang paling tinggi, menantang dan bagian yang paling menarik dari
pemograman.
Pada beberapa cara, debugging bekerja seperti halnya seorang
detektif, Anda dipertemukan dengan berbagai petunjuk lalu menulusuri sebuah
proses dan kejadian - kejadian yang akhirnya mendapatkan hasil yang Anda
inginkan.
Debugging juga seperti bereksperimen. Ketika Anda mendapatkan
kesalahan lalu memodifikasi dan mencobanya lagi. Anda akan dapat menerka hasil
dari
modifikasi tersebut jikahipotesis anda benar, dan anda saat ini menjadi selangkah
lebih dekat dengan hasil akhir program tersebut.
modifikasi tersebut jikahipotesis anda benar, dan anda saat ini menjadi selangkah
lebih dekat dengan hasil akhir program tersebut.
Menurut pendapat beberapa orang, pemograman dan debugging adalah
hal yang sama. Jadi pemograman adalah sebuah proses yang harus melalui proses
beberapa kali debugging untuk mendapatkan hasil yang Anda inginkan. Pada
contohnya, Linux adalah sebuah sistem operasi, yang berisikan beribu - ribu
baris kode perintah, tetapi program tersebut diawali dengan program sederhana yang
Linus Trovalds gunakan untuk mengeksplorasi chip Intel 80386. Berdasarkan
keterangan Larry Greenfield, "Proyek pertama linus adalah sebuah program
yang mencetak AAAA dan BBBB secara bergantian. Kemudian program ini berevolusi
menjadi Linux." (Majalah Linux Users's Guide Beta Version 1)
6 Penulisan
Komentar
Dalam proses debugging, suatu komentar instruksi program sangat
berguna sekali dalam pembacaan suatu kode. Pada umumnya komentar berisi
keterangan tentang kegunaan suatu fungsi itu. Sintaksnya adalah tanda kres atau
tanda pagar "#". Setelah meletakkan tanda tersebut, kita dapat
mengetikan kalimat apa saja yang berhubungan dengan suatu instruksi perintah,
sebab apapun kalimat tersebut tidak akan di proses oleh interpreter. Contohnya
:
print Hello
World! #Mencetak string "Hello World!" ke layar.
print 4 + 5 #Menampilkan hasil dari bilangan 4 + 5.
Anda mungkin telah banyak melihat pesan
kesalahan yang sudah terjadi, dan terdapat dua jenis yang tidak dapat
dipisahkan, yaitu : kesalahan sintaks dan pengecualian(exceptions).
7 Pengecualian (exceptions)
Jika terjadi kesalahan pada saat program
dijalankan (run-time errors), program tersebut membuat sebuah pengecualian
(exceptions). Biasanya program terhenti dan menampilkan pesan kesalahan.
Contohnya pada pembagian bilangan dengan nol :
>>>
40 / 0
Traceback
(most recent call last):
File
"<stdin>", line 1, in ?
ZeroDivisionError:
integer division or modulo by zero
Juga untuk pengaksesan yang bukan elemen anggota dari
suatu list.
>>>
a = []
>>>
a[5]
Traceback
(most recent call last):
File
"<stdin>", line 1, in ?
IndexError:
list index out of range
Atau
mengakses sebuah key yang tidak ada pada suatu dictionary.
>>>
c = {}
>>>
print c['polo']
Traceback
(most recent call last):
File
"<stdin>", line 1, in ?
KeyError:
polo
Pada setiap kasus, pesan kesalahan dibagi menjadi dua bagian:
Jenis kesalahan sebelum titik dua, dan menjelaskan secara spesifik tentang
kesalahan tersebut dibagian setelah titik dua. Pada umumnya, interpreter Python
juga menampilkan sebuah penulusuran kembali dimana kesalahan pada program
tersebut, yang dapat kita lihat sebelumnya.
8 Menangani
pengecualian (Handling exceptions)
Kadang - kadang kita ingin menjalankan sebuah operasi yang dapat
menyebabkan kesalahan pada runtime, tetapi kita tidak mau program tersebut
berhenti total. Kita dapat mengatasinya dengan perintah try dan except.
Contohnya, Kita memberikan prompt pada user untuk menentukan nama
file yang akan dibuka. Jika file tersebut tidak ada, kita tidak menginginkan
program tersebut berhenti total yang dikarenakan tidak adanya file tersebut,
kita menginginkan untuk mengendalikan kesalahan tersebut, dengan :
namafile =
raw_input("Masukan nama file: ")
try :
f
= open (namafile, "r")
except :
print
"Nama file tidak ditemukan!"
Perintah try menjalankan perintah pada blok pertama. Jika tidak
ada kesalahan yang terjadi, perintah except akan diabaikan. Tetapi jika terjadi
kesalahan apapun jenisnya, program akan menjalankan perintah - perintah pada
ruang lingkup except dan kemudian program tersebut berlanjut.
Kita dapat
menyatukannya dan menjadikannya suatu fungsi, yaitu fungsi exist. fungsi ini
akan mengambil argumen parameter sebuah nama file dan mengembalikan nilai true,
jika file tersebut ada dan mengembalikan nilai false, jika file tersebut tidak
ada. Contohnya :
def
exist(namafile):
try
:
f
= open (namafile)
f.close()
return
1
except
:
return
0
Anda dapat menggunakan kalimat perintah
beberapa blok except (lebih dari satu) untuk menangani beberapa jenis
kesalahan, detailnya Anda dapat lihat di Python Refference Manual. Jika pada
program Anda mendeteksi adanya kesalahan, Anda dapat membuatnya sebagai sebuah
pengecualian (exception). Pada contoh ini kita akan membuat suatu fungsi yang
mengecheck umur seseorang.
def
check():
umur
= input("Masukan umur anda? ")
if
umur <= 17:
raise
'DibawahUmur!', 'Anda harus 17 tahun keatas'
return
umur
check()
Maka program tersebut jika dijalankan dengan mengisi umur dibawah
17 tahun, akan menimbulkan suatu kesalahan exception.
Masukan
umur anda? 3
Traceback
(most recent call last):
File
"umur.py", line 6, in ?
check()
File
"umur.py", line 4, in check
raise
'DibawahUmur!', 'Anda harus 17 tahun keatas'
DibawahUmur!: Anda harus berumur 17 tahun keatas
Perintah raise akan mengambil dua
argumen: jenis kesalahan dan informasi yang spesifik tentang kesalahan
tersebut. DibawahUmur! adalah jenis kesalahan exception baru yang dibuat pada
fungsi tersebut.
Tidak ada komentar:
Posting Komentar
Berkomentarlah yang baik
Tidak ada unsur SARA, Pornografi, Ejekan,dsb
Salam Blogger...!!