exception handling, inheritance, abstract class, interface ... · untuk menangani exception dalam...

Post on 16-Aug-2019

241 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Review PBO

Ramos Somya

Exception handling adalah suatu mekanisme penanganan erroryang mungkin terjadi dalam suatu program.

Misalnya sebuah program yang memiliki operasi pembagian, dimana suatu ketika user menginputkan bilangan pembagi ataudenumerator 0, maka program tersebut harus memiliki suatuexception 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-tibaterputus aksesnya maka program kita tidak secara tiba-tiba mati dan agar programkita bisa terus berjalan

Tidak Menggunakan Exception Handling

Menggunakan Exception Handling

Menjalankan perintah Menjalankan perintah

Jika dalam menjalankan perintah menemui error

Jika dalam menjalankan perintah menemui error

Program berhenti Exception akan melemparkan error tersebut

Catch akan menerima dan memproseserror tersebut

Program menjalankan perintahselanjutnya

Sehingga dengan menggunakan Exception Handling kitadapat memprevent terjadinya runtime error yangmenyebabkan 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 mencobamengakses elemen array yang tidak ada.

NumberFormatException terjadi ketika kita mencoba melaluiparameter bukan angka dalam method integer.

Dsb…

Untuk menangani exception dalam Java, kita gunakan blok try-catchmenempatkan pernyataan yang mungkin menghasilkan exception di dalam blok ini.

Bentuk umum dari blok try-catch adalah:

Dalam pewarisan semua properti (variabel dan metode) yang dimiliki oleh super kelas otomatis akan dimiliki pula oleh sub kelas kecuali untuk properti yang akses modifiernya private atau default (Jika sub kelas tidak berada dalam paket yang sama).

Membuat suatu kelas dengan memanfaatkan kelas yang sudah ada.

Mewarisi semua metoda dan variabelnya.

Kelas A disebut Super Class(Parent Class). Kelas B disebut Sub Class(Child Class).

Cara Pewarisan:

class KelasTurunan extends KelasDasar{

tubuh kelas

}

public class Manusia {

public String nama;

public Manusia(String n) {this.nama = n;

}

public String tampilkanNama() {return nama;

}

public void makan() {System.out.println("Nyam... nyam... nyam...");

}

public void kerja() {System.out.println("Kerja...kerjaaa...");

}}

public class Programmer extends Manusia {

public Programmer(String n) {super(n);

}

public void kerja() {System.out.println("Tak…Tak…Klik..");

}

public void bersantai() {System.out.println("Game over, You lose...");

}}

class Tentara extends Manusia {

public String pangkat;

public Tentara(String n, String p) {super(n);this.pangkat = p;

}

public String tampilkanPangkat() {return pangkat;

}

public void kerja() {System.out.println("Dor... Dor... Dor..");

}}

public class Test {

public static void main(String[] args) {Programmer andi = new Programmer("Andi");System.out.println("Nama= " + andi.tampilkanNama());andi.makan();andi.kerja();andi.bersantai();

Tentara badu = new Tentara("Badu", "Kopral");System.out.println("Nama= " + badu.tampilkanNama());System.out.println("Pangkat= " + badu.tampilkanPangkat());badu.makan();badu.kerja();

}}

Kita dapat membuat superclass yang mempunyai beberapamethod 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 mempunyaiimplementasi dinamakan method abstract. Untuk membuatmethod abstract, tinggal menulis deklarasi method tanpatubuh class dan digunakan menggunakan kata kunciabstract.public abstract void someMethod();

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(), ataulainnya, juga subclass akan menjadi class abstract, olehkarena 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 overrideabstract method walk() in LivingThingpublic class Human extends LivingThing

^1 error

Buatlah sebuah abstract class dengan nama Bangun2D denganatribut panjang dan lebar.

Pada class Bangun2D tambahkan method getNama yangmenginformasikan “Nama Masih Abstract” dan tambahkan methodabstract getLuas();

Buat 2 buah class: Persegi dan Segitiga yang merupakan turunan dariclass Bangun2D.

Pada kedua class tersebut tambahkan method getNama dan getLuasyang berisi operasi perhitungan luas.

Buat class Demo yang di dalamnya terdapat method Main danlakukan instansiasi dari class yang sudah dibuat sehingga munculoutputnya.

Untuk membuat class, dapat kita gunakan konseppewarisan.

Masalah: bagaimana jika kita ingin mewariskan sifat daribeberapa super class ke base class?

Misalkan kita akan membuat kelas Superman yang diabisa membuat program layaknya Programmer, dia jugaahli menggunakan senjata layaknya Tentara, bahkan diabisa terbang seperti Elang (keturunan binatang)?

Caranya adalah dengan pewarisan ganda. Tetapi dalamJava tidak dikenal pewarisan ganda, sehingga digunakaninterface.

class superman extends programmer, tentara, burung{

}

Interface merupakan kumpulan definisi method dan nilaikonstanta.

Merupakan kerangka yang hanya berisi konstanta danprototype method.

Seluruh definisi method dan konstanta nantinya dapatdiimplementasi di class yang mendefinisikan interfacetersebut menggunakan kata kunci implements

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....");}}}

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();

}}

top related