IKG2I4 / Software Project I

dokumen-dokumen yang mirip
IKG2I4 / Software Project I

IKG2I4 / Software Project I

PERCOBAAN 6 EXCEPTION

Percobaan 6 Exception

PRAKTIKUM 6 EXCEPTION

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

IKG2I4 / Software Project I

PRAKTIKUM 17 MENANGANI EXCEPTION

Exception Handling. Oleh : Agus Priyanto, M.Kom

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

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Pemrograman Berorientasi Object

Definisi Eksepsi (exception)

Penjebakan Eksepsi. Nur hasanah, M.Cs

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

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

public class Test { int i = 6; int j = 3; System.out.println(i/j); } Output :

Abstract Class dan Interface. Viska Mutiawani, M.Sc

IKG2I4 / Software Project I

MODUL 9 EXCEPTION HANDLING

Exception Handling. Topik

PERTEMUAN 3 OBJEK DAN CLASS

Modul 4 Exception, I/O, dan Operasi File

PEMROGRAMAN JAVA : EXCEPTION

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

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

03/04/2018. Pemrograman Berorientasi Object

Topik. Penanganan Eksepsi. Menangkap Eksepsi. Catch Secara bertingkat. Melontarkan Eksepsi. Melontarkan kembali Eksepsi.

Review PBO. Ramos Somya

Exception Handling. Prepared by Viska Mutiawani. 1

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

EXCEPTION HANDLING. Bug : kesalahan yang merupakan kelemahan dari perancangan atau implementasi

Praktikum 9 Exception Handling

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

MODUL 7 - EXCEPTION HANDLING

Exception. Oleh: Mike Yuliana PENS-ITS

Pemrograman Lanjut Exception Handling PTIIK

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try {

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

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

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

Pemrograman Berorientasi. Class dan Obyek 2

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

Inheritance (Pewarisan) Pengertian dasar inheritance

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

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

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

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

Inheritance dan Kata Kunci static

4/11/2013. Topik. Exceptions dan Assertions Pengenalan Pemrograman 2. Topik. Topik EXCEPTIONS. Class Error dan Exception

Menangkap Kesalahan (Error Handling)

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

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

Pemrograman Berorientasi. Abstract & Interface

BAB Tujuan. 2.2 Apa itu Exception? Pendahuluan Error dan Exception Classes

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Praktikum Exception Handling

MODUL III ARRAYLIST TUGAS PENDAHULUAN

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

PRAKTIKUM I EXCEPTION HANDLING

BAHASA PEMROGRAMAN JAVA

SUMBER BELAJAR PENUNJANG PLPG

1.Tujuan. 2. Latar Belakang

BAB II VARIABEL DAN TIPE DATA

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

PEMAHAMAN DASAR DASAR JAVA

2 TIPE DATA DAN VARIABEL

Exception Handling and Multithreading

KONSEP OOP: PEWARISAN / INHERITANCE

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

Percabangan & Perulangan

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

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

Modul Praktikum 4 Pemograman Berorientasi Objek

Cara Membaca File Text di JAVA

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

BAB 8 Argumen dari Command-line

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

MATERI PRAKTIKUM 2 ARRAY

EXCEPTION HANDLING. 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling

Konsep Dasar Pemrograman Berorientasi Objek

Modul Bahasa Pemrograman 1

LAPORAN RESMI INHERITANCE

Exception Handling Lanjutan

ABSTRACT CLASS DAN INTERFACE

Bahasa Pemrograman 2.

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Penanganan Kesalahan

BAB 8 Argumen dari Command-line

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Bahasa Pemrograman 2.

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

Gambar 1: Hirarki class

Transkripsi:

IKG2I4 / Software Project I Mahmud Imrona, M.T. Izzatul Ummah, M.T. Kelompok Keahlian Algoritma dan Komputasi LECTURE NOTE WEEK 6 1 3/11/2015

WEEK 6 Abstract Class Interface Exception 2 3/11/2015

ABSTRACT CLASS Misalkan kita ingin membuat program permainan di mana di dalamnya ada class Human yang diturunkan menjadi class Raja, class Prajurit, dan class Petani. Pada sistem ini, kita juga menginginkan setiap objek harus diinstansiasi dari class raja/prajurit/petani, yang berarti tidak boleh ada objek human yang diinstansiasi. Bagaimana konsep OOP memfasilitasi aturan pada sistem tersebut? Jawabannya adalah menggunakan konsep abstract class. 3 3/11/2015

ABSTRACT CLASS 4 3/11/2015

ABSTRACT CLASS Abstract class adalah class yang tidak dapat diinstansiasi objectnya. Abstract class biasanya diterapkan pada sebuah superclass. Superclass dibuat abstract supaya tidak dapat diinstansiasi objectnya. Programmer hanya bisa menginstansiasi turunan dari superclass tersebut. Abstract class boleh memiliki atribut dan method seperti class biasa. 5 3/11/2015

ABSTRACT CLASS Cara penulisan abstract class: abstract class Human{ String name; 6 3/11/2015

ABSTRACT METHOD Abstract method adalah header method, yaitu method yang tidak dituliskan implementasi algoritmanya, atau dengan kata lain yang dituliskan hanya headernya saja. Bila sebuah class memiliki minimal 1 abstract method, maka class tersebut harus dijadikan abstract juga. Akan tetapi, sebuah abstract class tidak harus memiliki abstract method. 7 3/11/2015

ABSTRACT METHOD Cara penulisan abstract method: abstract class Human{ String name; abstract void berjalan(int jarak); Method berjalan() tidak perlu diimplementasikan algoritmanya di class Person. Method itu hanya bisa diimplementasikan di class-class turunannya misalnya class Raja, Prajurit, Petani. 8 3/11/2015

ABSTRACT METHOD Ilustrasi yang lebih jelas misalnya pada permainan catur. Kita definisikan abstract class Bidak, yang diturunkan menjadi class Raja, Ratu, Gajah, Kuda, Benteng, Pion. abstract class Bidak{ abstract void berjalan(int jarak, int arah); Class Bidak dibuat abstract karena setiap bidak pasti adalah instansiasi dari salah satu class turunannya. Method berjalan dibuat abstract karena tidak perlu diimplementasikan di sini (hanya perlu diimplementasikan di class-class turunannya). 9 3/11/2015

ABSTRACT METHOD Method berjalan harus diimplementasikan di class turunan. class Raja{ abstract void berjalan(int jarak, int arah){..raja bisa berjalan satu langkah ke semua arah class Kuda{ abstract void berjalan(int jarak, int arah){.. Kuda berjalan dengan langkah berbentuk huruf L 10 3/11/2015

ABSTRACT METHOD Tiap class turunan mengimplementasikan method berjalan secara berbeda-beda, tergantung bagaimana aturan atau cara bergerak/berjalan masing-masing bidak. 11 3/11/2015

ABSTRACT METHOD Class turunan dari class abstract harus mengimplementasikan semua method abstract yang diwarisi dari class induknya. Bila ada 1 method abstract warisan yang tidak diimplementasikan, maka class turunan itu harus menjadi abstract juga. Sebuah class tidak boleh mengextend ke dua superclass, tidak peduli superclass itu abstract atau bukan. Hal ini karena Java hanya mensupport single inheritance. 12 3/11/2015

ABSTRACT METHOD Di bawah ini adalah method abstract: public abstract method berjalan(); Tapi yang di bawah ini bukan method abstract, melainkan method kosong: public abstract method berjalan(){ 13 3/11/2015

INTERFACE Interface adalah class yang lebih abstrak dibandingkan class abstract. Interface adalah class abstract yang seluruh methodnya adalah method abstract (tidak memiliki method biasa). Semua atribut di dalam interface secara otomatis bersifat public static final. Di dalam interface tidak boleh ada atribut private, dan tidak ada method get dan set. 14 3/11/2015

INTERFACE Jadi interface mirip seperti file header pada ADT (ingat kembali Praktikum Pemrograman Terstruktur II). Contoh pada ADT LIST ada file list.h. Akan tetapi konsep/kegunaan interface berbeda dengan file header pada ADT. Perbedaannya adalah: Konsep ADT tidak terkait dengan inheritance Konsep interface terkait erat dengan inheritance. Java tidak menyediakan fitur multiple-inheritance, akan tetapi Java menyediakan fitur interface sebagai penggantinya. 15 3/11/2015

INTERFACE Konsep/kegunaan interface adalah memberi peran-peran (roles) pada sebuah class. Misalkan kita sedang membuat sistem akademik, di mana di dalamnya kita mendefinisikan class Dosen dan class Mahasiswa. Class Dosen memiliki method mengajar(), belajar(), membuatsoal(), menilaiujian(), menerimagaji(), dsb. Class Mahasiswa memiliki method belajar(), hadirkuliah(), ikutujian(), mengerjakantugas(), dsb. 16 3/11/2015

INTERFACE Selain itu, kita juga mendefinisikan class Asisten di mana asisten memiliki peran campuran yaitu sebagai mahasiswa dan juga sebagai dosen junior. Asisten harus mengimplementasikan semua method Mahasiswa serta semua (atau sebagian) method Dosen. Bagaimana Java memfasilitasi kebutuhan sistem tsb? Jawabnya adalah: menggunakan interface. 17 3/11/2015

INTERFACE Kita buat 2 buah interface yaitu InterDosen dan InterMahasiswa. Class Dosen menginduk kepada InterDosen. Class Mahasiswa menginduk kepada InterMahasiswa. Class Asisten menginduk kepada InterDosen dan InterMahasiswa. Menginduk di sini tidak menggunakan syntax extends melainkan implements. Perhatikan bahwa sebuah class dapat meng-implements beberapa interface. 18 3/11/2015

INTERFACE Agar lebih lengkap, kita buat juga abstract class Person, di mana semua class Dosen, Mahasiswa, dan Asisten harus meng-extends ke class tersebut dan harus meng-implements ke interface yang sesuai. Cara penulisannya adalah sbb: abstract class Person{ String nama; void makan(); interface InterDosen{ int gajiperjam = 50; void mengajar(); 19 3/11/2015 // atribut di interface harus konstanta // method di interface harus abstract

INTERFACE interface InterMahasiswa{ void hadirkuliah(); // method di interface harus abstract class Dosen extends Person implements InterDosen{ void makan(){. void mengajar(){. 20 3/11/2015

INTERFACE class Mahasiswa extends Person implements InterMahasiswa{ void makan(){. void hadirkuliah(){. 21 3/11/2015

INTERFACE class Asisten extends Person implements InterMahasiswa, InterDosen{ void makan(){. void hadirkuliah(){. void mengajar(){. 22 3/11/2015

EXCEPTION HANDLING Ada 2 jenis error yang bisa terjadi ketika kita membuat program: Compile-time error: yaitu error yang terjadi saat program dicompile, ciri-cirinya yaitu program tidak lulus compile, umumnya terjadi karena kesalahn penulisan syntax (kurang titik koma atau kurung tutup dsb) Run-time error: yaitu error yang terjadi saat program dijalankan, ciri-cirinya yaitu program tetap lulus compile tapi ketika dijalankan bisa terjadi error (tergantung pada nilai variabel yang diolah), misalnya pembagian dengan nilai nol secara teoritis akan menghasilkan nilai tak hingga (tak terdefinisi). 23 3/11/2015

EXCEPTION HANDLING Beberapa contoh runtime error: Pembagian dengan angka nol Pengaksesan array melebihi batas kapasitas array Kesalahan parsing dan formatting number Program gagal membuka file Program gagal menerima input dari keyboard Pengaksesan terhadap object yang belum diinstansiasi (belum di-new, jadi masih NULL) 24 3/11/2015

EXCEPTION HANDLING Exception handling berguna untuk mencegah runtime error. Beberapa exception yang penting misalnya: ArithmeticException NullPointerException ArrayIndexOutOfBoundsException NumberFormatException IOException FileNotFoundException 25 3/11/2015

EXCEPTION HANDLING Berikut ini adalah contoh pembagian dengan nol. public static void main(string[] args) throws Exception{ int a=5; int b=0; int c=a/b; System.out.println( Nilai c =,c); Program di atas dapat dicompile, tapi ketika dirun akan error, karena terjadi exception pada baris c=a/b, atau kita katakan bahwa program melempar exception pada baris c=a/b. Exception yang dilempar ini menyebabkan program halt (berhenti). 26 3/11/2015

EXCEPTION HANDLING Untuk menangani exception tersebut, gunakan mekanisme try-catch. Baris yang bermasalah dapat dimasukkan ke dalam blok try, dan gunakan exception handling yang sesuai untuk menangkap (catch) exception yang mungkin terjadi. public static void main(string[] args) throws Exception{ int a=5; int b=0; int c; try{ c=a/b; catch (ArithmeticException ae){ System.out.println("Masuk ke Arithmetic Exception"); 27 3/11/2015

NULL POINTER EXCEPTION Exception yang terjadi karena pengaksesan object yang masih NULL (belum diinstansiasi/new) Segiempat se1 = new Segiempat(5,3); Segiempat se2; // objectnya masih null se1.printattribute(); try{ se2.setpanjang(7); catch (NullPointerException npe){ System.out.println("Masuk ke Null Pointer Exception"); 28 3/11/2015

ARRAY INDEX OUT OF BOUND Exception yang terjadi karena mengakses array dengan indeks melebihi batas kapasitasnya. int[] arrnim = {3010666,3010777,3010999; try { System.out.println(arrNIM[3]); catch (ArrayIndexOutOfBoundsException aobe) { System.out.println("Masuk ke Array Index Out Of Bounds Exception"); 29 3/11/2015

NUMBER FORMAT EXCEPTION Exception yang terjadi karena parsing number. Coba modifikasi program berikut ini dengan exception handling yang sesuai. public static void main(string[] args) { String str = "50a\ju79hj3@sdjf"; int i = 0; i = Integer.parseInt(str); // class Wrapper System.out.println("i="+i); 30 3/11/2015

CLASS EXCEPTION Bagaimana exception dapat terjadi/dilempar? Exception adalah class khusus pada Java Library (src) yang diturunkan dari class Throwable. Lihat java.lang.exception Semua jenis exception lainnya (ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, NumberFormatException, dsb) adalah turunan dari class Exception tersebut. 31 3/11/2015

EXCEPTION HANDLING Exception yang tidak ditangani (tidak di-catch) dapat menyebabkan program berhenti (halt) ketika dijalankan. Exception bisa terjadi bisa juga tidak, tergantung pada nilai variabel yang diolah. Exception terjadi secara beruntun (chainreaction), misalnya kita membuat methodx(), yang di dalamnya memanggil methody(), yang di dalamnya memanggil methodz(). Ternyata ketika methodz() dieksekusi terjadi exception, maka exception ini akan terbawa sampai methodx(), kecuali bila ditangani oleh salah satu method tsb. 32 3/11/2015

EXCEPTION HANDLING Exception handling bisa dilakukan di methodmethod mana saja yang kita inginkan, mencakup: Method yang mengandung baris exception Method yang memanggil method lain yang mengandung baris exception 33 3/11/2015

THROW Sebelumnya telah dibahas bagaimana cara: Menangani atau menangkap (catch) exception yang dilempar oleh program. Untuk menangkap suatu exception harus menggunakan jenis exception handling yang sesuai dengan jenis exception tersebut. Sekarang akan dibahas bagaimana cara: Membuat program yang melempar (throw) exception yang jenisnya sudah ada di Java Library Membuat jenis exception sendiri sesuai kebutuhan (yang dapat dilempar seperti exception biasa) 34 3/11/2015

THROW Berikut adalah contoh sederhana melempar exception: Exception harus diinstansiasi dulu (new) sebelum dilempar public static void main(string args[]) throws Exception{ int d=6; int e=1; int f=0; if (e==1) { throw new Exception("Ngapain ngebagi dengan satu!"); else { f=d/e; 35 3/11/2015

MEMBUAT EXCEPTION SENDIRI Sekarang kita akan membuat jenis exception sendiri, yaitu exception yang menangani nilai input negatif. Pada class Segiempat, panjang dan lebar tidak boleh negatif. class NegatifException extends Exception { public void printpesanerror(){ System.out.println("Nilai panjang dan lebar tidak boleh negatif"); 36 3/11/2015

MEMBUAT EXCEPTION SENDIRI NegatifException tersebut kemudian di-new lalu dilempar di dalam method setpanjang & setlebar. public void setpanjang(int p) throws NegatifException{ if (p<0) { throw new NegatifException(); else { panjang = p; 37 3/11/2015

MEMBUAT EXCEPTION SENDIRI Method setlebar dengan exception: public void setlebar(int l) throws NegatifException{ if (l<0) { throw new NegatifException(); else { lebar = l; 38 3/11/2015

MEMBUAT EXCEPTION SENDIRI Ketika method setpanjang dan setlebar tersebut dipanggil di Driver, method-method tersebut harus ditempatkan di dalam blok try-catch. class Driver { public static void main(string args[]) { Segiempat se = new Segiempat(); try { se.setpanjang(5); se.setlebar(-3); catch (NegatifException ne) { ne.printpesanerror(); 39 3/11/2015

TUGAS PEKAN INI (TUGAS INDIVIDU) 40 3/11/2015

THANK YOU