abstact dan interface -...

23
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE

Upload: vandan

Post on 30-Jun-2019

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

POLYMORPHISM,ABSTRACT CLASS DAN

INTERFACE

Page 2: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Polymophism

Polimorfisme (Polimorphism) berasal dari bahasa yunani yang berarti banyak bentuk.

yaitu merupakan suatu konsep bahwa objek dapat memiliki berbagai bentuk, sebagai objek dari kelasnya maupun objek dari superkelasnya ( Deitel, 2004 ).

Page 3: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Overriding dan Overloading

• Overriding : terjadi ketika deklarasi method subclass sama ( termasuk parameter ) dengan method pada superclass.

• Overloading : yaitu penggunaan satu nama untuk beberapa method yang berbeda ( berbeda parameter )

Page 4: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

+MakhlukHidup(in Nama : char)+Bernafas()

-Nama : char-Rumpun : char

MakhlukHidup

+Binatang(in Nama : char)+Bertumbuh()+Berjalan()+Kecepatan(in Nilai : int)

Binatang

+Tumbuhan(in Nama : char)+Bertumbuh()

Tumbuhan

+Karnivora(in Nama : char)+Memakan(in Binatang : Binatang)+Kecepatan(in nilai : int)+Kecepatan(in nilai : double)

Karnivora

+Herbivora(in Nama : char)+Memakan(in Tumbuhan : Tumbuhan)+Kecepatan(in nilai : int)+Kecepatan(in nilai : double)

Herbivora

Overriding

Overloading

Page 5: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Kelas Abstrak

Sebuah kelas dapat dideklarasikan sebagai kelasabstrak. Tujuanya :

1.Agar suatu kelas tidak dapat di instansiasikansebagai sebuah objek dan hanya dapatditurunkan.

2.Agar satu kelas lain dapat memperluasnyadengan jalan menjadi subclass darinya

Page 6: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Untuk membuat sebuah kelas atau method menjadi abstrak maka menggunakan keyword abstract setelah modifier pada deklarasi kelas atau method. Contoh kelas abstrak

public abstract class Unggas{

}

Page 7: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Method Abstrak

• Method abstrak• Method abstrak adalah method yang memiliki definisi namun tidak memiliki

implementasi• Method di dalam abstract class boleh berupa method abstrak ataupun bukan.• Untuk membuat abstract method, hanya menuliskan deklarasi method tanpa body

dan gunakan keyword abstract

Page 8: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

+walk()+sound()

-jmlKaki : intAnimal

+walk()+sound()

Kucing

+walk()+sound()

Ayam

Nama kelas dengan cetak miring merupakan simbol kelas abstrak

Page 9: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

public abstract class animal {private int jmlKaki;public abstract void walk();public abstract void sound();

}

Page 10: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

class kucing extends animal{

public void walk(){

System.out.println("Berjalan dengan 4 kaki");}public void sound(){

System.out.println("Meeooo...ong");}

}

Page 11: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

class ayam extends animal{

public void walk(){

System.out.println("Berjalan dengan 2 kaki");}public void sound(){

System.out.println("Kuku Ruyuuuukk");}

}

Page 12: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

• Menggunakan abstract class untuk mendefinisi jenis-jenis yang luas dari behavior yang ada di puncak hirarki class object-oriented programming, dan menggunakan subclassnya untuk menyediakan detail implementasi dari abstract class.

Page 13: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Interface

Page 14: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Interface

• Interface mendefinisikan aturan perilakuyang dapat di implementasikan oleh kelasmanapun. Interface mendefinisikan satu setmethod tanpa menyediakan implementasinya.

• Setiap kelas yang mengimplementasikaninterface akan terikat oleh interface tersebutuntuk mengimplementasikan semua methodyang ada di dalam interface.

Page 15: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Interface (Lanjutan)

• Secara subtansi Interface merupakan kumpulan dari method abstrak dan konstanta.

• Interface memiliki kemiripan dengan kelas abstrak karena keduanya memuat method abstrak.

• Untuk menjadikan sebuah kelas mengimplementasikan interface maka ditambahkan keyword implements kemudian dilanjutkan nama interface.

Page 16: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Perbedaan Interface dan Kelas Abstrak

Interface Kelas AbstrakTidak dapat membuat implementasi method

Dapat membuat implementasi method

Sebuah kelas dapat mengimplementasikan beberapa interface

Sebuah kelas hanya dapat meng-Extends satu superclass.

Page 17: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Mengapa menggunakan interface?

• Mendeklarasikan method yang akan diimplementasikan oleh satu atau beberapa kelas

• Menangkap kesamaan di antara beberapa kelas tanpa perlu memasukkannya dalam hirarki kelas.

• Mensimulasikan konsep pewarisan banyak kelas dengan mendeklarasikan kelas yang mengimplementasikan beberapa interface sekaligus

Page 18: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

+on()+off()+gantiChannel(in channel : int)+perbesarVolume()+perkecilVolume()

-mesin : bool = false-channel : char-volume : int = 0

Radio

+On()+Off()

«interface»interfaceElektronik

+on()+off()+percepatKipas()+perlambatKipas()

-mesin : bool = false-kecepatanKipas : int = 0

Kipas

Kelas yang meng-Implementssuatu interface maka kelastersebut harus mengOverridemethod yang ada padainterface.

Dari contoh disamping, methodon dan off merupakanmethod overriding dariinterface interfaceElektronik

Page 19: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

public interface interfaceElektronik {public void on();public void off(); }

Page 20: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

public class Radio implementsinterfaceElektronik

{boolean mesin=false;String[] channel={"Gajah Mada FM","Smart

FM","Buana FM","DINUS FM"};int volume=0;

public void on(){

mesin=true;}public void off(){

mesin=false;}

… Continue

Page 21: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

public class Kipas implementsinterfaceElektronik {

boolean mesin=false;int kecepatanKipas=0;

public void on(){

mesin=true;}public void off(){

mesin=false;}

… Continue

Page 22: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Latihan+gantiChannel(in c : int)

«interface»interfaceChannelRadio

+gantiChannel(in c : int)

«interface»interfaceChannelTV

+on()+off()

«interface»InterfaceElektronik

+on()+off()+gantichannel(in c : int)+perbesarVolume()+perkecilVolume()

-mesin : Boolean-volume : int

Radio

+Televisi(in merk : String)+on()+off()+gantiChannel(in c : int)

-mesin : Boolean-merk : String-listrik : Boolean

Televisi

Ubahlah struktur Kelas Diagram disamping ke dalam bahasa pemrograman

Page 23: Abstact dan Interface - rizkimuliono.blog.uma.ac.idrizkimuliono.blog.uma.ac.id/wp-content/uploads/...Interface (Lanjutan) •Secara subtansi Interface merupakan kumpulan dari method

Latihan

-mesin : bool = falseMobil

+NyalakanMesin()+MatikanMesin()+TambahkanGerigi()+TurunkanGerigi()+TekanGas()+TekanRem()

«interface»interfaceMobil

+NyalakanSirine()+MatikanSirine()+GantiSuaraSirine(in Jenis : int)

«interface»interfaceSirine

+TambahPenumpang()-jmlKursi : int

MobilTransportasi

+NyalakanTape()+NyalakanTV()+NyalakanAC()

MobilNegara

+NyalakanTape()+NyalakanTV()+NyalakanAC()+NyalakanMesin()+MatikanMesin()+TambahGerigi()+TurunkanGerigi()+TekanGas()+TekanRem()+NyalakanSirine()+MatikanSirine()+GantiSirine(in Jenis : int)

Ambulance

+NyalakanTape()+NyalakanTV()+NyalakanAC()+NyalakanMesin()+MatikanMesin()+TambahGerigi()+TurunkanGerigi()+TekanGas()+TekanRem()

MobilPribadi

+NyalakanTape()+NyalakanTV()+NyalakanAC()+NyalakanMesin()+MatikanMesin()+TambahGerigi()+TurunkanGerigi()+TekanGas()+TekanRem()+NyalakanSirine()+MatikanSirine()+GantiSirine(in Jenis : int)+NyalakanRadioHT()+MatikanRadioHT()

MobilPolisi

+NyalakanTape()+NyalakanTV()+NyalakanAC()+NyalakanMesin()+MatikanMesin()+TambahGerigi()+TurunkanGerigi()+TekanGas()+TekanRem()+TambahPenumpang()

Bus

Untuklatihan,ubahlahstrukturkelasdiagramdisamping kedalambahasapemrograman