Kamis, 02 Juni 2022

3.5.1 KONSEP ENHERITANCE (PEWARISAN) DALAM PROGRAM APLIKASI BERBASIS PBO


Seperti halnya dalam arti Pewarisan itu sendiri yang dimaksud dengan Inheritance adalah dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.

Seperti halnya manusia pada umumnya terdapat orang tua dan anak pada PBO juga dikenal parent class atau base class dan subclass atau child class.Dimana subclass atau childclass mewarisi semua data yang ada di parent class atau base class atau dapat disimpulkan jika subclass atau childclass adalah perluasan dari parent class atau base class.

Dalam contohnya kita dapat mengambil contoh mahluk hidup sebagai parent class dengan method bernafas,bergerak,dan berkembang biak.

Dan kita menentukan manusia,hewan,dan tumbuhan sebagai childclass dmn method dari parent class terdapat dalam childclass.

atau dalam deklarasinya dapat kita tulis public class manusia extends mahluk_hidup { … }

KEUNTUNGAN INHERITANCE :

1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.

2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.

ISTILAH INHERITANCE :

Extends : ini adalah keyword agar sebuah class menjadi subclass.

Superclass : Menunjukkan class yang berarti parent class dari subclass/class anak.

Subclass : adalah class anak atau turunan dari superclass/parent class.

Super Keyword : untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.

Methode Overriding : Pendefinisian ulang method yang sama pada subclass

Dalam inheritance, method overriding berbeda dengan method overloading.

Jika method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass,

Sedangkan method overloading adalah mendefinisikan method yang memiliki nama yang sama saja.

 


 

PEWARISAN TUNGGAL (SINGLE INHERITANCE)
Adalah pewarisan yang mana jumlah kelas dasarnya tunggal. Pada pewarisan ini, kelas turunan dapat berjumlah lebih dari satu. Pewarisan tunggal dapat digambarkan dengan sintak program sebagai berikut :
class A
{
. . .
};
class B : public A
{
. . .
}

Sintak di atas adalah mekanisme pewarisan secara public. Dengan implementasi di atas, kelas B merupakan kelas turunan dari kelas A. Selain pewarisan public, pewarisan juga dilakukan secara protected maupun private.

Contoh program pewarisan tunggal :
#include<iostream.h>
class makhluk
{
public:
void berkembang();
};
class hewan : public makhluk
{
public:
void bergerak();
};
class kuda : public hewan
{
public:
void berlari();
};
main()
{
makhluk mk; hewan hw; kuda kd;
cout<<endl<<” Sifat-sifat dari Makhluk adalah : “<<endl;
mk.berkembang();
cout<<endl<<” Sifat-sifat dari Hewan adalah : “<<endl;
hw.berkembang(); hw.bergerak();
cout<<endl<<” Sifat-sifat dari Kuda adalah : “<<endl;
mk.berkembang(); hw.bergerak(); kd.berlari();
}
void makhluk::berkembang()
{
cout<<” Berkembang biak”<<endl;
}
void hewan::bergerak()
{
cout<<” Bergerak berpindah tempat”<<endl;
}
void kuda::berlari()
{
cout<<” Berlari sangat kencang seperti angin”<<endl;
}

PEWARISAN JAMAK (MULTIPLE INHERITANCE)
Adalah pewarisan dimana satu kelas diturunkan lebih dari satu kelas yang berbeda. Dalam pewarisan ini jumlah kelas dasarnya lebih dari satu, dan perlu dicatat bahwa kelas dasarnya bukan merupakan turunan dari satu kelas. Kelas turunan mewarisi seluruh sifat dari kelas dasarnya, sehingga sifat dari beberapa kelas dasar dan sifat khas dirinya. Perhatikan sintak dari pewarisan tunggal berikut ini :
class A
{
. . .
};
class B
{
. . .
}
class C: public A, public B
{
. . .
}

Pada bentuk tersebut terdapat dua kelas dasar yaitu kelas A dan kelas B yang menurunkan kelas C. Kelas C akan mewarisi sifat dari kelas A maupun sifat dari kelas B, tetapi tidak berlaku sebaliknya.

contoh lainya :

program induk kakek.java

public class kakek
{
protected String namekakek;
protected String address;
public kakek()
{
System.out.println(“\n Program Demo Inheritance”);
System.out.println(“============================”);
System.out.println(” Masukan construktor kakek “);
System.out.println(“–Dijalankan oleh class Bapak–“);
namekakek=”Doni wijaya”;
address=”Merauke”;
}
public kakek(String name,String address)
{
this.namekakek=namekakek;
this.address=address;
}
public String getName()
{
return namekakek;
}
public String getAddress()
{
return address;
}
}

program anak/turunan:

program bapak.java

public class bapak extends kakek
{
protected String namebapak;
protected String addressbapak;
public bapak()
{
System.out.println(“Nama Kakek :”+namekakek);
System.out.println(“Address kakek :”+address);
System.out.println(“\n”);
System.out.println(” Masukan Construktor Bapak “);
System.out.println(“—-dijalankan class cucu—-“);
namebapak=”Ridho Saputra”;
addressbapak=”Yogyakarta”;
}
public bapak(String namebapak,String addressbapak)
{
this.namebapak=namebapak;
this.addressbapak=addressbapak;
}
public String getNama()
{
return namebapak;
}
public String getAddress()
{
return addressbapak;
}
public static void main(String []args)
{
bapak sari=new bapak();
}
}

program cucu.java

public class cucu extends bapak
{
public cucu()
{
System.out.println(“Nama Bapak :”+namebapak);
System.out.println(“Address Bapak :”+addressbapak);
}
public static void main(String []args)
{
String namacucu;
cucu lagan=new cucu();
System.out.println(“\nSaya adalah CUCU”);
System.out.println(“Nama Saya : Samuel”);
System.out.println(“”);
}
}

0 komentar:

Posting Komentar