CHAPTER #5 DEBUGGING AND EXCEPTION HANDLING

dokumen-dokumen yang mirip
Debugging sebetulnya sudah sering kita lakukan, ketika kita membuat suatu program kemudian kita jalankan dengan menekan tombol F5 ataupun mengklik

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

PERCOBAAN 6 EXCEPTION

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

PRAKTIKUM 6 EXCEPTION

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

Percobaan 6 Exception

I. JUDUL. Exception Handling. Jenis-Jenis error. Exception PRAKTIKUM 12. Exception Handling

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

PERTEMUAN 3 OBJEK DAN CLASS

PRAKTIKUM 17 MENANGANI EXCEPTION

Exception Handling. Oleh : Agus Priyanto, M.Kom

CHAPTER #10 Databinding dengan ADO.NET

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

BAB 5 Mendapatkan Input dari Keyboard

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

Pemrograman Berorientasi Object

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Tujuan Intruksional. Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method

SUMBER BELAJAR PENUNJANG PLPG

KOTLIN, SIAPA SUKA. Dasar. P. Tamami BPPKAD Kab. Brebes

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

IKG2I4 / Software Project I

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Modul Tutorial C# 2 DASAR PEMROGRAMAN C# : STATEMENT DAN OPERATOR ENRICO BUDIANTO MICROSOFT INNOVATION CENTER UNIVERSITAS INDONESIA

BAB 8 Argumen dari Command-line

DASAR MENGGUNAKAN VISUAL BASIC 6.0

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

BAB 8 Argumen dari Command-line

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

BAHASA PEMROGRAMAN JAVA

Pemrograman Lanjut Exception Handling PTIIK

Definisi Eksepsi (exception)

JAVA BASIC PROGRAMMING Joobshet

Exception Handling. Topik

Modul Praktikum Pemrograman

PEMAHAMAN DASAR DASAR JAVA

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

BAB 5 Mendapatkan Input dari Keyboard

Dasar Pemrograman Java

2 TIPE DATA DAN VARIABEL

Modul 4 Exception, I/O, dan Operasi File

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

BAB Argument Command-Line dan System Properties

Pemrograman Berorientasi. Exception Handling

Exception Handling. Prepared by Viska Mutiawani. 1

1. MENGENAL VISUAL BASIC

BAB IV HASIL PENELITIAN DAN PENERAPAN

CHAPTER #8 DESAIN KONTROL, MENUBAR, TOOLBAR, STATUSBAR DAN FORM MDI

Modul Praktikum 1 Pemograman Berorientasi Objek

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

PRAKTIKUM I EXCEPTION HANDLING

Penjebakan Eksepsi. Nur hasanah, M.Cs

Bab I Pengenalan Visual BASIC

Applet (1) Oleh: Kholid Fathoni

BAB 3 Mengenali Lingkup Pemrograman Anda

IT210 Pemrograman Visual. Ramos Somya

BAB II LANDASAN TEORI

03/04/2018. Pemrograman Berorientasi Object

PEMROGRAMAN BERORIENTASI OBJEK

Praktikum 9 Exception Handling

Bahasa FORTRAN. Saifoe El Unas. Apa FORTRAN itu?

BAB 3 Mengenali Lingkup Pemrograman Anda

BAB 2 INPUT DARI KEYBOARD

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

PEMROGRAMAN JAVA : EXCEPTION

PEMOGRAMAN JAVA. Yoannita. Tipe Data (ii) : Array Exception Handling

Dasar Pemrograman Java

CHAPTER #9 Mengenal ADO.NET dan Koneksi Database

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Exception Handling and Multithreading

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

Java Application. Aplikasi: Menampilkan Tulisan

BAB II VARIABEL DAN TIPE DATA

BAB 2 TINJAUAN PUSTAKA

BAB XXVII TURBO DEBUGGER

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

INTRODUCTION JAVA NORHIKMAH,M.KOM

Pemrograman Berorientasi. Class dan Obyek 2

BAB I SEKILAS VISUAL STUDIO.NET 2008

Java Application. Menampilkan Tulisan

Bahasa Pemrograman 2.

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

Pengenalan Bahasa C++, Algoritma Pemrograman, Integrated Development Equipment (IDE) Visual C++ dan Dasar Dasar Bahasa C++

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

PRAKTIKUM 1. Framework adalah kerangka kerja yang terdiri dari kumpulan dari beberapa fungsi,

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

PEMROGRAMAN VISUAL BASIC

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Algoritma Pemrograman A

STRUKTUR PEMROGRAMAN PYTHON

Pemograman Java. Yoannita, S.Kom. Argumen Command Line Exception Handling Package

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti

PRAKTIKUM 7 DASAR INPUT OUTPUT

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Transkripsi:

CHAPTER #5 DEBUGGING AND EXCEPTION HANDLING Tidak ada orang yang menulis program secara sempurna. Seringkali kita berurusan dengan hal yang membuat suatu kode program tidak dapat berjalan dengan baik, hal ini biasanya sering disebut dengan bug. Pada saat awal belajar bahasa pemrograman, seringkali banyak kesalahan yang dibuat, dan dengan berjalannya waktu kita semakin menguasai bahasa tersebut dengan baik. Dan kemunculan bug akan semakin sedikit, tetapi ini tidak akan pernah hilang. Materi dalam chapter ini tidak akan dapat mengajarkan bagaimana melakukan debugging untuk setiap error yang dapat terjadi, karena debugging adalah suatu skill dan art. Tetapi akan mengajarkan kemampuan dasar yang diperlukan untuk melacak dan memperbaiki bug yang ada didalam code yang dibuat. 5.1. Debugging Debugging sebetulnya sudah sering kita lakukan, ketika kita membuat suatu program kemudian kita jalankan dengan menekan tombol F5 ataupun mengklik icon play di Visual Studio, sebetulnya kita telah menjalankan apa yang disebut dengan debugging. Karena setting default pada F5 adalah melakukan running dengan debugging. Kesalahan dalam pemrograman secara umum dapat dibagi menjadi 3 yaitu compile error, runtime error dan logical error. Compile error adalah kesalahan dalam syntaks program, hal ini akan menyebabkan program tidak akan bisa dicompile. Runtime error adalah kesalahan yang terjadi pada saat program dijalankan. Contohnya apabila program menginginkan masukan berupa angka, tetapi yang dimasukkan oleh user adalah karakter yang bukan angka. Logical error adalah kesalahan dalam pelakukan pengecekan kondisi untuk percabangan ataupun looping sehingga program tidak menghasilkan keluaran seperti yang diharapkan. Adapun cara yang dilakukan untuk mengurangi terjadinya kesalahan dalam pemrograman akan dijelaskan satu per satu. 5.1.1. Shortcut Key untuk debugging Beberapa shortcut key yang dipakai untuk menjalankan debugging. Shortcut key yang biasa dipakai adalh tombol F5. Tombol-tombol lain dapat dilihat dari tabel 5.1 Tabel 5.1. Tabel shortcut key Shortcut key Keterangan F5 F11 F10 Shift + F11 Shift + F5 Memulai debugging Step into debugging Step over debugging Step out debugging Stop debugging 5.1.2. Perhatikan tampilan pada Editor dan tampilan pada Error List Saat kita menuliskan code program, secara otomatis, Visual Studio editor akan mulai melakukan pemeriksaan terhadap code yang dituliskan. Apabila kode tersebut memiliki kekurangan didalam syntaks, maka Visual Studio Editor akan memberikan tanda garis bawah dengan warna merah kalau code tersebut memiliki kesalahan. Dan pada tampilan di Error List akan disebutkan kesalahan yang terjadi. Dari gambar 5.1. pada baris perintah string kata diberi tanda garis merah pada akhir baris, dan pada jendela error list diberikan keterangan ; expected. Hal ini berarti perintah string kata pada akhir baris kurang tanda titik koma(;). Dengan memperhatikan Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 1

tampilan pada jendela editor dan error list maka kesalahan akibat kesalahan syntaks dapat diketahui bahkan sebelum program dicompile. Gambar 5.1. Syntaks Error dan tampilan Error List 5.1.3. Beri komentar pada bagian yang diperlukan Pemberian komentar pada kode program dapat membantu kita untuk menelusuri jalannya suatu program. Komentar yang susah dimengerti sama saja halnya dengan tidak memberikan komentar sama sekali. Dengan adanya komentar yang mudah dimengerti akan memudahkan melacak algoritma yang dipakai di dalam program. Komentar dapat diberikan pada awal method yang memberikan keterangan tentang apa yang dilakukan oleh suatu method. Komentar juga dapat diletakkan setelah deklarasi suatu variabel yang menerangkan kegunaan dari variabel. Gambar 5.2. Penggunaan komentar 5.1.4. Setting breakpoints Debugging pada Visual Studio dapat dilakukan dengan berbeapa cara yaitu 1. Default Debugging Debugging yang biasa dijalankan, debugging model ini hanya akan berhenti pada saat terjadi suatu kesalahan. 2. Step into Debugging yang berhenti pada perintah pertama dari suatu method ketika method tersebut dipanggil, dengan demikian kita dapat mengamati apa yang terjadi saat suatu fungsi dipanggil. Untuk melanjutkan pilih menu continue dari pilihan menu di bawah menu debug. 3. Step over Debugging yang akan berhenti setelah perintah dari suatu method yang dipanggil, dengan demikian akan diamati keadaan/kondisi attribute setelah suatu method Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 2

dipanggil. Untuk melanjutkan pilih menu continue dari pilihan menu di bawah menu debug. 4. Step out Debugging yang akan berhenti pada statement berikutnya. Apabila breakpoints berada pada suatu method, maka debugging akan berhenti setelah method tersebut dijalankan dan nilai pengembalian telah diberikan. 5. Breakpoints Debugging akan berhenti pada titik yang kita tentukan, titik ini disebut dengan breakpoint. Cara membuat break point adalah menekan tombol kiri mouse pada bagian pinggir kiri di Visual Studio Editor. Untuk lebih jelas lihat gambar 5.3. Gambar 5.3. Setting breakpoint Dengan memberikan suatu breakpoint, kita dapat mengetahui apa yang terjadi pada suatu titik dalam pemrograman. 5.1.5. Watching variable Sewaktu melakukan debugging, kita dapat melihat isi dari variabel yag diamati pada saat breakpoint. Pada gambar 5.4, dapat dilihat isi dari variabel angka dan variabel perulangan i. Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 3

Gambar 5.4. Local variabel 5.1.5. Using Immediate Window Pada jendela immediate kita dapat menjalankan suatu perintah atau menampilkan suatu variabel. Perintah untuk menampilkan adalah print atau dapat juga dengan menggunakan simbol?. Pada gambar 5.5 digunakan? i untuk melihat isi dari variabel i. Gambar 5.5. Menggunakan Immediate window 5.2. Exception Handling Exception Handling adalah suatu cara yang dapat digunakan untuk mengatasi terjadinya runtime error. Seperti halnya namanya, runtime error adalah error yang terjadi saat suatu program dijalankan(runtime). Runtime error biasanya terjadi karena seorang user memberikan masukan diluar apa yang diharapkan oleh programmer. Ketika programmer mengharapkan user mengetikkan suatu angka, bisa saja user mencoba untuk memasukkan karakter selain angka. Atau ketika pembagian dibagi dengan bilangan 0. Gambar 5.6. Runtime error Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 4

Gambar 5.7. Tampilan error ketika program dijalankan secara langsung. Gambar 5.8 Pilihan Just in time debugger 5.2.1. Menggunakan try catch block Runtime error dapat diatasi dengan menggunakan try catch block. Lihat program dibawah ini namespace ConsoleApplication4{ class Program { static void Main(string[] args) { int x =10, y = 0, z; try { z = x / y; catch (DivideByZeroException except) { Console.WriteLine("Exception " + except.stacktrace); Console.ReadKey(); Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 5

Apabila program ConsoleApplication4 dijalankan, maka pada layar tampilan akan muncul informasi error apa yang terjadi. Gambar 5.9. Tampilan pada layar command prompt Gambar 5.10 Tampilan bila program dijalankan dari Visual Studio Editor Aliran diagram dalam menangani exception dapat dilihat dari gambar 5.11. Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 6

Gambar 5.11. Urutan penanganan exception Selain itu dapat juga menampilkan pesan yang ditulis sendiri. Beberapa bentuk dari try catch block, yaitu : 1. Bentuk try block diikuti dengan satu atau lebih catch block // try..catch try { catch(exception e) { 2. bentuk try block diikuti dengan finally block // try..finally try { finally{ Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 7

3. Bentuk try block diikuti dengan satu atau lebih catch block dan terakhir ditutup dengan dfinally block // try..catch..finally try { catch(exception e) { finally{ // try..catches..finally try { catch(exception e) { catch { finally{ Block try adalah suatu bagian dari program yang diamati yang akan diproteksi, dimana ada kemungkinan terjadinya suatu exception. Format dari try adalah try { protected Block try harus diikuti dengan block catch ataupun block finally. Blok catch adalah block yang menangkap exception yang terjadi didalam blok try. Blok catch juga dapat dibuat secara bertingkat seperti catch 1 (filter 1 ) { handler 1... catch n (filter n ) { handler n Blok finally adalah blok program yang akan dijalankan baik ada exception atau tidak terjadi exception. Blok ini biasanya merupakan bagian yang menutup suatu method, ketika suatu exception terjadi, maka perintah yang ada setelah exception terjadi tidak dijalankan, sementara itu bagian tersebut adalah kode untuk menutup suatu method, katakan bagian dari suatu destructor misalnya file.close(). Karena itu code yang digunakan untuk menutup suatu method diletakkan pada bagian finally. Jadi baik terjadi suatu exception atau tidak, maka method untuk menutup selalu ada dan akan dijalankan, sehingga tidak akan terjadi penumpukan resource yang tidak terpakai. Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 8

5.2.2. Exception Class Exception Class memiliki hierarchi seperti berikut: Gambar 5.12. Exception Hierarchi Exception class adalah class exception yang paling tinggi, dan memiliki dua class turunan yaitu SystemException dan ApplicationException. SystemException adalah class exception yang dihasilkan oleh CLR dan.net Framework, sedangkan ApplicationException adalah exception yang didefinisikan oleh aplikasi. 5.2.2.1. System.Exception Class System.Exception Class memiliki empat buah constructor yaitu: 1.public Exception() 2.public Exception(string message) 3.public Exception(string message, Exception innerexception) 4.protected Exception(Serialization info, StreamingContext context) public Exception() adalah constructor default, public Exception(string message) adalah constructor dengan parameter string yang berupa pesan yang dapat diatur, public Exception(string message, Exception innerexception) adalah constructor dimana dapat diatur pesan yang ditampilkan dan juga mengatur innerexception, dan constructor terakhir adalah constructor yang dibangkitkan secara remote. Method yang ada pada System.Exception dapat dilihat pada tabel 5.2 Tabel 5.2. Method System.Exception Nama Method Keterangan GetBaseException Mengembalikan exception root dari rangkaian exception. GetObjectData GetType ToString Mengembalikan rangkaian data dari exception. Mengembalikan type dari exception. Mengubah pesan yang dikembalikan menjadi bentuk String. Attribute pada System.Exception adalah sebagai berikut Tabel 5.3. Attribute pada System.Exception Properties Keterangan Tipe Read/Write Data Mengembalikan koleksi dictionary yang menyediakan detail dari exception. IDictionary Read HelpLink Link ke help file untuk exception. string Read/Write HResult 32 bit error code, protected properties. int Read/Write InnerException Merepresentasikan exception sebelumnya. Exception Read Message Pean yang mendeskripsikan exception. string Read Source Nama aplikasi/object yang memicu exception. StackTrace TargetSite String yang merepresentasikan call stack saat exception terjadi. Reference ke method dimana terjadi exception. string string MethodBase Read/Write Read Read Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 9

Beberapa contoh System.Exception 1.FormatException 2.OverflowException 3.DivideByZeroException 4.ArithmeticException 5.FileNotFoundException 6.IOException 5.2.2.2. ApplicationException Class ApplicationException Class adalah class exception yang dibuat sendiri oleh programmers. Merupakan exception yang dipanggil oleh aplikasi dan bukan oleh CLR. Biasanya diturunkan dari System.Exception atau dari class Exception. Langkah langkah untuk membuat class exception sendiri adalah sebagai berikut: 1.beri nama pada class exception yang akan dibuat, pada akhir nama sebaiknya diberi akhiran Exception. 2.Turunkan dari class Exception atau System.Exception. 3.Definisikan constructors yang menginisialisasikan kondisi dari exception aplikasi. Dalam hal ini termasuk juga anggota yang didapat dari warisan base class. 4.Dalam aplikasi exception, dapat ditambahkan attribute yang dapat memperhalus System.Exception yang terjadi untuk kasus khusus dari exception yang terjadi. Untuk memanggil aplikasi exception gunakan perintah throw. Dapat juga menggunakan throw untuk System.Exception. Throw exception dapat dianggap sebagai software exception. CLR akan menganggap software exception sama seperti exception yang standar. Syntaks untuk throw exception adalah: throw exceptioninstance; atau bisa juga throw; Untuk throw hanya dapat dilakukan pada blok catch saja. Kebijakan terbaik adalah menambahkan keterangan pada exception sebelumnya melemparkan kembali object exception. Aplikasi exception biasanya dipanggil oleh kejadian yang exceptional. Dala suatu aplikasi, kejadian yang exceptional adalah kejadian sperti berikut ini : constructor gagal untuk menginisialisasi kondisi dari object. Property tidak lolos dalam validasi. Parameter null. Exceptional value yang dikembalikan dari suatu method. UnhandledException adalah exception yang tidak ditangani dalam kode program, exception ini ditangani secara global. Exception yang terjadi akan melaporkan dalam suatu error dialog box yang akan memberikan saran untuk melakukan debug, send error report dan don't send tombol (lihat gambar 5.7). Untuk aplikasi yang berada dalam lingkup debugger, maka unhandled exception akan ditangani oleh debugger. Daur hidup dari exception dapat dilihat dalam gambar 5.13. Sebaiknya dalam merancang suatu aplikasi jangan membiarkan semua kemungkinan yang ada yang dapat memicu exception tidak ditangani. Desain aplikasi yang baik akan berusaha menangkap kejadian yang memicu exception dengan penanganan exception yang terstruktur. Hanya untuk kemungkinan yang tidak diperkirakan sajalah kejadian tersebut boleh ditangani oleh UnhandledException. Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 10

Gambar 5.13. Daur hidup dari Exception. Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST; 11