Top Banner
Abstract Class dan Interface Viska Mutiawani, M.Sc
26

Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Aug 16, 2019

Download

Documents

truonglien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Class dan Interface

Viska Mutiawani, M.Sc

Page 2: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Konsep Penting

Abstract class

Abstract method

Interface

Implements

Final Final

Static

Exception

Page 3: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Contoh Polimorfisme

Lihat contoh program yang disediakan padapolimorfisme.

Page 4: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Method getArea() pada Shape

Apa yang terjadi jika:

public class TestShape {

public static void main(String[] args) { // Constructing a Shape instance poses problem!

Shape s3 = new Shape("green"); Shape s3 = new Shape("green"); System.out.println(s3); System.out.println("Area is " + s3.getArea());

} }

Method getArea() akan bermasalah jika shapenya belumdiketahui bentuk apa. Untuk mengatasi masalah ini, kitabuat method getArea() sebagai abstract.abstract public double getArea();

Page 5: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Rewrite Shape as abstract

Page 6: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Class

Pada pewarisan, jika super-kelas mempunyaimethod yang harus di override oleh sub-kelasnya, maka class dan method tersebut kita buat sebagaiabstract.

Page 7: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Class

Sebagai contoh, kita akan membuatsuperclass bernama Makhluk Hidup. Class inimempunyai method tertentu sepertibernapas, makan, tidur, dan berjalan. Akantetapi, ada beberapa method di dalamsuperclass yang sifatnya tidak dapatdigeneralisasi. Kita ambil contoh, method superclass yang sifatnya tidak dapatdigeneralisasi. Kita ambil contoh, method berjalan.

Tidak semua makhluk hidup berjalan dalamcara yang sama. Kita manusia berjalandengan dua kaki, dimana kehidupan lainnyaseperti anjing berjalan dengan empat kaki.

Page 8: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

MakhlukHidup

HewanManusia

Anjing Ayam

Page 9: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Method

Diawali dengan kata abstract.

Tidak ada implementasi.

Langsung diakhiri oleh semicolon (;).

Bertujuan agar di sub-kelasnya di override.

Contoh: Contoh:

Page 10: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Class

Diawali dengan kata abstract.

Tidak dapat di instantiate.

Namun sub-tipe tetap berlaku sehingga polimorfismetetap berlaku.

Hanya abstract class yang dapat memiliki abstract Hanya abstract class yang dapat memiliki abstract method.

Abstract class dapat juga mempunyai method yang tidak abstract.

Abstract class memaksa sub-kelas utk override abstract method. Jika tidak, maka sub-kelas harusjuga bertipe abstract.

Page 11: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Abstract Class

Jika sub-kelas tidak meng-override abstract method, pasti akan muncul error, contoh:

Page 12: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat
Page 13: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Contoh

Contoh class pd Java API.

Page 14: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Catatan

Method abstract tidak dapat dideklarasi final. Kenapa?

Method abstract tidak dapat dibuat dengan aksesprivate. Kenapa?

Page 15: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Interface

Interface: cara standar dalam menetapkan sifat-sifatumum dari class.

Interface juga bersifat polimorfisme.

Interface digunakan untuk mengatasi kemiripan-kemiripan pada kelas yang tidak berhubungan.

Page 16: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Interface

Anggaplah ada class Garis dan BilanganBulat. Kedua kelas mempunyai perlakuan untukmembandingkan 2 buah object garis atau 2 buahobject bilangan bulat.

Karena kemiripannya, kita dapat membuat suatuinterface Pembanding yang berisi method signature interface Pembanding yang berisi method signature (tanpa implementasi) berkaitan denganperbandingan 2 objek.

Page 17: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Interface

Diawali dengan kata kunci interface, bukan class.

Method pada interface adalah abstract karena tidakmemerlukan implementasi. (namun tanpa keyword abstract)

Interface tidak mengandung method constructor.

Semua method berakses public. Kata kunci public tidak harus dideklarasikan.

Variabel secara otomatis menjadi public static final.

Page 18: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat
Page 19: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Contoh

Contoh pd Java API.

Interface ActionListener

Page 20: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Final

Kata kunci final jika digunakan pada method maka method tersebut tidak dapat di override.

Contoh pada class String.

Page 21: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Static

Jika method dideklarasi static, pemanggilan method di luar dari kelas harus memasukkan nama kelasnyajuga.

Contoh:

Page 22: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Exception

Exception: pengecualian

Exception: suatu peristiwa yang muncul sewaktueksekusi program, yang mengganggu jalannyainstruksi normal pada program.

Cara handle: Cara handle: Blok try-catch-finally

Throws exception pada class

Page 23: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat
Page 24: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat
Page 25: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Contoh program yg dapat menimbulkanException

Jika pada class BilanganBulat pd project garis-bulatkita tambahkan method bagi, seperti ini:public double bagi(int y)

{

double z = 0;

z = x / y;z = x / y;

return z;

}

Maka akan dapat menghasilkan exception jika nilai y yang dimasukkan adalah 0.

Page 26: Abstract Class dan Interface - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbod3/08-Abstract Class dan Interface.pdf · Abstract Class Sebagai contoh, kita akan membuat

Cara antisipasi exception

Buat blok try-catch:public double bagi(int y)

{

double z = 0;

try{

z = x / y;z = x / y;

}

catch (Exception e){

System.out.println("Masukkannilai y yang bukan 0");

}

return z;

}