Pengertian Dasar Inheritance Inheritance pewarisan merupakan salah satu

  • Slides: 28
Download presentation
Pengertian Dasar Inheritance � Inheritance (pewarisan) merupakan salah satu konsep dasar OOP. � Konsep

Pengertian Dasar Inheritance � Inheritance (pewarisan) merupakan salah satu konsep dasar OOP. � Konsep inheritance mengadopsi dunia nyata dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. � Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. � Class yang mempunyai class turunan dinamakan parent class atau base class, sedangkan class turunan seringkali disebut subclass atau child class. � Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.

Pengertian Dasar Inheritance � Karena suatu subclass dapat mewarisi apa yang dipunyai oleh parent

Pengertian Dasar Inheritance � Karena suatu subclass dapat mewarisi apa yang dipunyai oleh parent class, maka subclass terdiri dari apa-apa yang diwarisi dari class parent-nya. � Kesimpulannya, bahwa suatu subclass tidak lain hanya memperluas (extends) parent class-nya.

Deklarasi Inheritance � Untuk mendeklarasikan inheritance dengan menambahkan kata kunci extends setelah deklarasi nama

Deklarasi Inheritance � Untuk mendeklarasikan inheritance dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. � Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class. public class A { … } public class B extends A { … }

� Kapan kita menerapkan inheritance? pada saat kita jumpai ada suatu class yang dapat

� Kapan kita menerapkan inheritance? pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain.

Keuntungan Inheritance • Keuntungan dari Inheritance adalah Reusability Sekali perilaku(method) didefinisikan pada superclass, maka

Keuntungan Inheritance • Keuntungan dari Inheritance adalah Reusability Sekali perilaku(method) didefinisikan pada superclass, maka perilaku tersebut secara otomatis diwariskan ke subclass, sehingga hanya perlu menulis method sekali dan bisa digunakan untuk semua subclass. Sekali properti/field di definisikan di superclass, maka semua properti di wariskan ke semua subclass. Superclass dan subclass berbagi properti. Subclass hanya perlu mengimplementasikan jika ada perbedaan dengan parentnya.

Misal Terdapat Class Pegawai public class Pegawai { public String nama; public double gaji;

Misal Terdapat Class Pegawai public class Pegawai { public String nama; public double gaji; } Misal Terdapat Class Manager public class Manajer { public String nama; publi double gaji; public String departemen; } • Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang identik sama dengan class Pegawai, hanya saja ada tambahan data member departemen. • Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari class Pegawai dengan tambahan data member departemen. • Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut : public class Manajer extends Pegawai { public String departemen; }

Single Inheritance � Konsep inheritance yang ada di Java adalah hanya memperkenankan adanya single

Single Inheritance � Konsep inheritance yang ada di Java adalah hanya memperkenankan adanya single inheritance. � Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class.

Contoh gambar pewarisan pada kelas hewan • Hewan adalah superclass dari karnivora dan herbivora.

Contoh gambar pewarisan pada kelas hewan • Hewan adalah superclass dari karnivora dan herbivora. • Class turunan karnivora dan herbivora memiliki data dan method yang dimiliki kelas hewan.

Contoh program dgn Inhertance Bapak. java public class Bapak { protected void Nama(){ System.

Contoh program dgn Inhertance Bapak. java public class Bapak { protected void Nama(){ System. out. println("Nama Saya Deny"); } protected void Pekerjaan(){ System. out. println("Pekerjaan Saya Wirausaha"); } } public class Anak extends Bapak { } public class Belajar. Inheritance { public static void main(String[] args){ Anak mhs = new Anak(); mhs. Nama(); mhs. Pekerjaan(); } } Buat class dengan nama Bapak Anak. java Untuk menginduk pada suatu class, kita menggunakan kata kunci extends. Belajar. Inheritance. java instansiasi objek pada main class (Belajar. Inheritance)

Tampil Suara Anjing : Guk Guk ! Tampil Suara Kucing : Meong

Tampil Suara Anjing : Guk Guk ! Tampil Suara Kucing : Meong

Binatang. java public class Binatang { String Suara. Binatang, Suara. Binatang 2; public void

Binatang. java public class Binatang { String Suara. Binatang, Suara. Binatang 2; public void tampil. Suara() { Suara. Binatang ="Guk Guk !"; Suara. Binatang 2="Meong"; System. out. println("Tampil Suara"); } } Kucing. java public class Kucing extends Binatang{ public void suara. Kucing(){ // method dari class kucing System. out. println("Suara Kucing : "+Suara. Binatang 2); } } Anjing. java public class Anjing extends Binatang { public void suara. Anjing(){ // method dari class Anjing System. out. println ("Suara Anjing : "+Suara. Binatang); } } Cetak. Binatang. java public class Cetak. Binatang { //main Class public static void main(String[] args){ Anjing suara=new Anjing(); suara. tampil. Suara(); suara. Anjing(); Kucing suara 2=new Kucing(); suara 2. tampil. Suara(); suara 2. suara. Kucing(); } }

Multilevel Inheritance � Konsep inheritance yang ada di Java memperkenankan adanya multilevel inheritance. �

Multilevel Inheritance � Konsep inheritance yang ada di Java memperkenankan adanya multilevel inheritance. � Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi.

Single dan Multilevel Inheritance

Single dan Multilevel Inheritance

KONTROL PENGAKSESAN � Dalam dunia yang sebenarnya, belum tentu entitas induk mewariskan semua apa-apa

KONTROL PENGAKSESAN � Dalam dunia yang sebenarnya, belum tentu entitas induk mewariskan semua apa-apa yang ia punyai kepada entitas turunan karena sesuatu hal. � Demikian juga dengan konsep inheritance dalam OOP. � Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. � Sebagai contoh, kita coba untuk memodifikasi class Pegawai.

Kontrol Pengaksesan Kalau modifier ini di ganti private public class Bapak { progran tidak

Kontrol Pengaksesan Kalau modifier ini di ganti private public class Bapak { progran tidak berhasil karen protected void Nama(){ private hak akses hanya di dalam System. out. println("Nama Saya Deny"); class saja } protected void Pekerjaan(){ System. out. println("Pekerjaan Saya Wirausaha"); } } public class Anak extends Bapak { } public class Belajar. Inheritance { public static void main(String[] args){ Anak mhs = new Anak(); mhs. Nama(); mhs. Pekerjaan(); } }

POLYMORPHISM

POLYMORPHISM

Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk Konsep ini memungkinkan digunakannya suatu

Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk Konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah obyek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. � Polymorphism adalah kemampuan untuk mempunyai beberapa bentuk yang berbeda. � Polimorfisme terjadi pada saat suatu obyek bertipe parent class, akan tetapi pemanggilan konstruktornya melalui subclass. � �

Polymorphism Dalam konsep yang lebih umum, polymorphism sering disebut istilah satu interface banyak aksi

Polymorphism Dalam konsep yang lebih umum, polymorphism sering disebut istilah satu interface banyak aksi � Contoh yang konkrit dalam dunia nyata yaitu Mobil yang ada dipasaran terdiri atas berbagai tipe dan berbagai merk, namun semuanya memiliki interface kemudi yang sama, seperti: stir, tongkat transmisi, pedal gas dan rem � Jika seseorang dapat mengemudikan satu jenis mobil saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hampir semua jenis mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama. Tetapi Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama Missal pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaimana proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil �

Ilustrasi Text print Graph print Image

Ilustrasi Text print Graph print Image

Ilustrasi

Ilustrasi

Ilustrasi Polymorphism

Ilustrasi Polymorphism

Tipe Polimorfisme � Java memiliki 2 tipe polimorfisme Polimorfisme kompilasi (static binding) ▪ Polimorfisme

Tipe Polimorfisme � Java memiliki 2 tipe polimorfisme Polimorfisme kompilasi (static binding) ▪ Polimorfisme statis, contoh pada method overloading. ▪ Overloading : Method yang terjadi di sebuah class yang memiliki nama method yang sama tetapi memiliki parameter dan tipe data yang berbeda. Polimorfisme runtime (dynamic binding) ▪ Polimorfisme dinamis, contoh pada method overriding. ▪ Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak menginginkan adanya informasi yang lain.

Polimorfisme Statis � Polimorfisme statis, contoh pada method overloading. Overloading : Method yang terjadi

Polimorfisme Statis � Polimorfisme statis, contoh pada method overloading. Overloading : Method yang terjadi di sebuah class yang memiliki nama method yang sama tetapi memiliki parameter dan tipe data yang berbeda.

public class Rerata. Nilai. Overloading { Rerata. NIlai. Overloading. java Contoh Overloading int x

public class Rerata. Nilai. Overloading { Rerata. NIlai. Overloading. java Contoh Overloading int x 1, x 2, x 3; double y 1, y 2; public int average(int x 1, int x 2) { nama methodnya sama return (x 1+x 2)/2; (average) ttp fungsi dan } public double average(double y 1, double y 2) { parameter berbeda return (y 1+y 2)/2; } parameter berbeda public int average(int z 1, int z 2, int z 3) { return (z 1+z 2+z 3)/3; } } Tes. Overloading. java public class Tes. Overloading { public static void main(String args[]){ Rerata. Nilai. Overloading rn = new Rerata. Nilai. Overloading(); System. out. println("Reratai 21 dan 13 adalah : " + rn. average(21, 13)); System. out. println("Reratai 19. 3 dan 39. 5 adalah : " + rn. average(19. 3, 39. 5)); System. out. println("Reratai 123, 567 dan 744 adalah : " + rn. average(123, 567, 744)); } }

Polimorfisme Dinamis � Polimorfisme dinamis, contoh pada method overriding. Overriding adalah suatu cara untuk

Polimorfisme Dinamis � Polimorfisme dinamis, contoh pada method overriding. Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak menginginkan adanya informasi yang lain.

Contoh Polimorphism main hewan +main() suara() Berjalan() class Anjing extends Animal { public void

Contoh Polimorphism main hewan +main() suara() Berjalan() class Anjing extends Animal { public void animal. Sound() { System. out. println("Anjing Suaranya gug"); } } Kucing Anjing Ayam Suara() class Animal { public void animal. Sound() { System. out. println("The animal makes a sound"); } } class Ayam extends Animal { public void animal. Sound() { System. out. println("Ayam suaranya : kukuruyuk"); } } class Kucing extends Animal{ public void Animal. Sound(){ System. out. println("Kucing suaranya : Meong meong"); } } class Animal. Beraksi { public static void main(String[] args) { Animal my. Animal = new Animal(); // Create a Animal object Animal my. Ayam = new Ayam(); // Create a ayam object Animal my. Anjing = new Anjing(); // Create a Anjing object Animal my. Kucing=new Kucing(); my. Animal. animal. Sound(); my. Ayam. animal. Sound(); my. Anjing. animal. Sound(); my. Kucing. animal. Sound(); } }

Contoh Polimorphism • main Bangun Datar +main() +luas() +keliling Persegi lingkaran +sisi +r +luas()

Contoh Polimorphism • main Bangun Datar +main() +luas() +keliling Persegi lingkaran +sisi +r +luas() +keliling() • Segitiga +alas +tinggi +luas() +keliling() Gambar disamping ini mempunyai 4 class yaitu 1 class parent Bangun. Datar dan 3 subclass, yaitu: Persegi, Lingkaran, dan Segitiga. Setiap class memiliki method yang sama yaitu luas() dan keliling(), tetapi method-method subclass memiliki isi rumus yang berbeda-beda.