Exception Handling, Package, Abstract Class & Interface IT652 – Pemrograman Berorientasi Objek Exception Handling, Package, Abstract Class & Interface Ramos Somya
Exception Handling Exception handling adalah suatu mekanisme penanganan error yang mungkin terjadi dalam suatu program. Misalnya sebuah program yang memiliki operasi pembagian, di mana suatu ketika user menginputkan bilangan pembagi atau denumerator 0, maka program tersebut harus memiliki suatu exception handling untuk kasus tersebut. Contoh kasus lain: Akses keyboard Akses CD ROM Akses File Akses Database sehingga apabila alat-alat yang kita butuhkan dalam program kita tersebut tiba-tiba terputus aksesnya maka program kita tidak secara tiba-tiba mati dan agar program kita bisa terus berjalan
Tidak Menggunakan Exception Handling Menggunakan Exception Handling … Tidak Menggunakan Exception Handling Menggunakan Exception Handling Menjalankan perintah Jika dalam menjalankan perintah menemui error Program berhenti Exception akan melemparkan error tersebut Catch akan menerima dan memproses error tersebut Program menjalankan perintah selanjutnya
… Sehingga dengan menggunakan Exception Handling kita dapat memprevent terjadinya runtime error yang menyebabkan program kita berhenti di tengah tengah jalan. Contoh exception yang bisa terjadi: java.lang.ArithmeticException terjadi jika kita melakukan pembagian bilangan dengan 0. exception ArrayIndexOutOfBounds terjadi jika kita mencoba mengakses elemen array yang tidak ada. NumberFormatException terjadi ketika kita mencoba melalui parameter bukan angka dalam method integer. Dsb…
Cara menangani exception Untuk menangani exception dalam Java, kita gunakan blok try-catch menempatkan pernyataan yang mungkin menghasilkan exception di dalam blok ini. Bentuk umum dari blok try-catch adalah:
contoh
Package Packages merupakan cara untuk mengorganisir file ke dalam direktori yang berbeda berdasarkan fungsionalitas dan kegunaannya. Packaging membantu kita untuk menghindari terjadinya collision ketika kita menggunakan nama kelas yang sama dengan yang sudah ada. Packaging juga membantu programmer dalam mencari dan menggunakan nama kelas dan mengontrol akses.
Contoh
Abstract Class
…
… Kita dapat membuat superclass yang mempunyai beberapa method dengan implementasi sedangkan yang lain tidak. Class jenis ini yang disebut dengan class abstract. Sebuah class abstract adalah class yang tidak dapat di-instantiate. Method ini dalam class abstract yang tidak mempunyai implementasi dinamakan method abstract. Untuk membuat method abstract, tinggal menulis deklarasi method tanpa tubuh class dan digunakan menggunakan kata kunci abstract. public abstract void someMethod();
Contoh Abstract Class public abstract class LivingThing { public void breath(){ System.out.println("Living Thing breathing..."); } public void eat(){ System.out.println("Living Thing eating..."); /** * abstract method walk * Kita ingin method ini di-overridden oleh subclasses */ public abstract void walk();
… Ketika class meng-extend class abstract LivingThing, dibutuhkan untuk override method abstract walk(), atau lainnya, juga subclass akan menjadi class abstract, oleh karena itu tidak dapat di-instantiate. Contohnya: public class Human extends LivingThing { public void walk(){ System.out.println("Human walks..."); }
… Jika class Human tidak dapat overridde method walk, kita akan menemui pesan error: Human.java:1: Human is not abstract and does not override abstract method walk() in LivingThing public class Human extends LivingThing ^ 1 error
...
Latihan Abstract Class Buatlah sebuah abstract class dengan nama Bangun2D dengan atribut panjang dan lebar. Pada class Bangun2D tambahkan method getNama yang menginformasikan “Nama Masih Abstract” dan tambahkan method abstract getLuas(); Buat 2 buah class: Persegi dan Segitiga yang merupakan turunan dari class Bangun2D. Pada kedua class tersebut tambahkan method getNama dan getLuas yang berisi operasi perhitungan luas. Buat class Demo yang di dalamnya terdapat method Main dan lakukan instansiasi dari class yang sudah dibuat sehingga muncul outputnya.
Interface Untuk membuat class, dapat kita gunakan konsep pewarisan. Masalah: bagaimana jika kita ingin mewariskan sifat dari beberapa super class ke base class? Misalkan kita akan membuat kelas Superman yang dia bisa membuat program layaknya Programmer, dia juga ahli menggunakan senjata layaknya Tentara, bahkan dia bisa terbang seperti Elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda. Tetapi dalam Java tidak dikenal pewarisan ganda, sehingga digunakan interface.
Pewarisan ganda class superman extends programmer, tentara, burung { }
Interface Interface merupakan kumpulan definisi method dan nilai konstanta. Merupakan kerangka yang hanya berisi konstanta dan prototype method. Seluruh definisi method dan konstanta nantinya dapat diimplementasi di class yang mendefinisikan interface tersebut menggunakan kata kunci implements
…
Contoh
...
contoh interface programmer { void memrogram(); } interface tentara { void menembak(); interface burung { void terbang(); void buangKotoran();
… class superman implements programmer, tentara , burung { public void memrogram(){}; public void menembak(){}; public void terbang(){}; public void buangKotoran(){}; }
… public class bejo { public static void main(String arg[]) superman bj= new superman(); bj.memrogram(); System.out.println("Implementasi memrogram ...tak..tik"); } bj.menembak(); System.out.println("Implementasi menembak ...dor..dor"); bj.terbang(); System.out.println("Implementasi terbang......Zap....");
Contoh interface interface Lari{ public void berlari(String vLari); } interface Lompat{ public void melompat(String vLompat); interface Sekolah{ public void pergiSekolah(String vSekolah);
… public class Manusia implements Lari, Lompat, Sekolah { String kecepatanLari; String tinggiLompat; String pendidikan; public void berlari(String vLari) { kecepatanLari = vLari; } public void melompat(String vLompat) { tinggiLompat = vLompat; public void pergiSekolah(String vSekolah) { pendidikan = vSekolah;
… public void tampil() { System.out.println("Manusia berlari = " + kecepatanLari); System.out.println("Tinggi lompatan = " + tinggiLompat); System.out.println("Pendidikan = " + pendidikan); } public static void main(String[] args) { Manusia man = new Manusia(); man.berlari("100 Km/jam"); man.melompat("10 meter"); man.pergiSekolah("SMA N 1 Salatiga"); man.tampil();
Terima Kasih