Selamat Datang di Blog Saya

Halo pembaca semua, saya harap Anda menikmati apa yang saya ketik. Mudah-mudahan informasi tersebut berguna dan bermanfaat bagi Anda pembaca semuanya.

Salam Kenal ☜☠☞

Jumat, 08 Desember 2017

Error dan Exception pada Pyhton

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.

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.
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.
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...!!