ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya •...

27
ABSTRACT CLASS Imam Fahrur Rozi

Transcript of ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya •...

Page 1: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

ABSTRACT CLASS

Imam Fahrur Rozi

Page 2: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

ABSTRACT CLASS

•  Abstract class adalah class yang mempunyai setidaknya satu abstract method.

•  Abstract method adalah method yang tidak memiliki body (hanya deklarasi method).

•  Implementasi dari isi abstract method tersebut dilakukan pada subclass

Page 3: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

ABSTRACT CLASS

•  Bila subclass method abstract tidak mengimplementasikan isi semua method maka subclass tersebut harus dideklarasikan abstract.

•  Dan Deklarasi method abstract pada subclass tersebut boleh tidak dituliskan kembali

Page 4: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

ABSTRACT CLASS

•  Abstract class tidak bisa dibuat objectnya

•  Object hanya bisa dibuat dari non-abstract class (concrete class)

•  Konsekuensinya suatu abstract class haruslah diturunkan dimana pada subclass tersebut berisi implementasi dari abstract method yang ada di superclass

Page 5: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

ABSTRACT VS CONCRETE CLASS

•  ABSTRACT CLASS : Tidak bisa diinstansiasi mjd objek. Kecuali setelah diturunkan dulu.

•  CONCRETE CLASS : Class yang bisa langsung diinstansiasi menjadi objek

Page 6: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

KAPAN DIGUNAKAN ABSTRACT CLASS?

•  Ketika diinginkan membuat satu class yang hanya berfungsi sebagai abstraksi (model yang umum) dan tidak diinginkan untuk diinstansiasi suatu objek darinya.

Page 7: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

NOTASI ABSTRACT CLASS DI UML

•  Baik klas atau method yang bertipe abstract maka ditulis dengan abjad miring / italic

BangunDatar

+luas+keliling

+hitungLuas()+hitungKeliling()

Page 8: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

MISAL

•  Bentuk bangun datara masih sangat luas dan abstrak, karena bentuknya blm spesifik. Jadi tidak ada objek yang ingin langsung dibuat darinya

•  Objek yang dibuat adalah objek dari SegiTigaSiku dan SegiEmpat

BangunDatar

+luas+keliling

+hitungLuas()+hitungKeliling()

SegiEmpat

+panjang+lebar

+hitungLuas()+hitungKeliling()

SegiTigaSiku

+alas+tinggi+sisiMiring

+hitungLuas()+hitungKeliling()

Page 9: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

DEKLARASI ABSTRACT CLASS

•  Dengan menuliskan keyword abstract didepan keyword class

•  Contoh: public abstact class BangunDatar{

}

Page 10: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

DEKLARASI ABSTRACT METHOD

•  Dengan memberikan keyword abstract sebelum menuliskan tipedata fungsi/method

•  Contoh public abstract void hitungLuas();

Page 11: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INGAT …

•  Di dalam abstract class boleh ada deklarasi method non abstract (yang sudah ada isinya/implementasinya)

•  Jika suatu dalam suatu class ada method abstract, maka class tersebut juga harus dideklarasikan abstract

•  Unistanciable/tak bisa diinstansiasi

Page 12: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE

Page 13: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE

•  Terdiri dari konstanta dan method tanpa implementasi

•  Interface menyerupai class public interface NamaInterface{

//method tanpa implementasi //definisi konstanta

} •  Public à supaya bisa diakses dimana saja •  Tanpa public à default hanya bisa diakses dalam

satu package

Page 14: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE

•  Class yang mengimplementasikan interface, semua konstanta dan method interface akan dimiliki oleh class ini.

•  Method pada interface harus diimplementasikan pada class yang mengimplementasikan interface ini.

•  Bila class yang mengimplementasikan interface tidak menginplemetasikan semua method dalam interface, makaclass tersebut harus dideklarasikan abstract.

Page 15: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE

•  Kita bisa membuat subinterface dengan menggunakan kata extends.

•  Satu class boleh mengimplementasikan lebih dari satu interface.

•  Bila suatu class merupakan subclass dan akan mengimplementasikan interface maka kata extends harus lebih dulu dari implements

Page 16: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE

•  Method yang dideklarasikan didalam interface secara otomatis adalah public dan abstract.

•  Variable dalam interface secara otomatis adalah public, static, dan final

Page 17: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

DEKLARASI INTERFACE

public interface NamaInterface{ //deklarasi konstanta //deklarasi abstract method

}

Page 18: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

CLASS IMPLEMENTS INTERFACE

•  Contoh: public class SegiEmpat extends BangunDatar

implements Resizable { …….. }

Page 19: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INTERFACE di UML

•  Mirip simbol Class tapi di atas nama ada stereotype <<interface>>

Flyer<<interface>>

+takeOver()+land()+fly()

Page 20: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

IMPLEMENTATION di UML

•  Relasi Implementasi (ketika suatu Class implements ke Interface), mirip seperti inheritance, tapi garis panahnya putus2.

Flyer<<interface>>

+takeOff()+land()+fly()

AirPlane

+takeOff()+land()+fly()

Page 21: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

CONTOH

Page 22: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

MULTIPLE IMPLEMENTATION

Page 23: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

INHERITANCE + IMPLEMENTATION

Page 24: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

•  This sounds like multiple inheritance. Not quite. The danger of multiple inheritance is that a class could inherit two distinct implementations of the same method. This is not possibble with interfaces because an interface method declaration supplies no implementation

Page 25: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

CONTOH INTERFACE

Page 26: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

MULTIPLE INTERFACE

Page 27: ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya • Object hanya bisa dibuat dari non-abstract class (concrete class) • Konsekuensinya

•  A class can implement more than one interface. Not only can the SeaPlane fly, but it can also sail. The SeaPlane class extends the Airplane class, so it inherits that implementation of the Flyer interface. The SeaPlane class also implements the Sailer interface