PENGERTIAN INHERITANCE
Perngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam hal pemrogramman makan dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal Hewan adalah parent class maka child class bisa berupa ayam,kucing,bebek dll.
a. Dekalarasi Inheritance
Cara untuk mendeklarasikan inheritance adalah dengan memberikan keywordextends setelah nama class diikuti denga nama parent class.Kata kunci extendsmemberikan informasi pada kompiler Java bahwa kita ingin melakukan perluasan class.
b. Konsep Inheritance dalam Java
Konsep inheritane yang ada di Java adalah hanya memperkenankan adanyaSingle inheritance.Konsep Single inheritane artinya bahwa sebuah subclasshanya diperkenankan memiliki satu parent class. Konsep inheritance yang ada di java memperkenankan adanya multilevel inheritance. Konsep multilevel inheritance berarti bahwa sebuah subclass dapat memiliki subclass lagi sebagai turunannya.
Subclass menggunakan keyword super untuk mereferensi data dan fungsi dariparent class-nya. Dengan kata lain keyword super ini berfungsi sebagai alias dari Parent class.Format penulisan dari keyword ini :
Ø super.data_member -> merujuk pada data member dari parent class
Ø super.function_member() -> merujuk pada function member dariparent class
Ø super() -> merujuk pada konstruktor dari parent class
c. Keuntungan dari inheritance
Ø Bersifat reusable. Bayangkan bila anda perlu membuat beberapa class yang mempunyai sifat dasar dan basis class yang sama, dan pada masing masing class tersebut ditambahkan data dan method yang unique. Tanpa inheritance anda harus menyalin semua data dan method dari suatu class. Hal tersebut mungkin masih bisa dilakukan jika basis class anda definisikan sendiri.
Ø Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Jika anda ingin melakukan modifikasi suatu data atau method pada semua sub class anda tidak perlu melakukan perubahan pada masing masing sub class. Modifikasi cukup dilakukan pada super class.
Ø Dalam inheritance dikenal dengan istilah overriding. Overidding adalah kemampuan sub class untuk melakukan modifikasi data dan method dari super class. Sebelum anda melakukan overidding terhadap method atau data dari class induk, anda harus memperhatikan aksesibelitas dari data dan method dari super class.[ overidding hanya bisa dilakukan untuk data dan method yang memiliki modifier default, public dan protected.
Membuat Inheritance Java
Pada Kasus Gaji Pokok Pegawai
Class Diagram Karyawan terlihat seperti di bawah ini
Pada Kasus ini perhitungan Gaji Karyawan sebagai berikut :
Gaji : TunjanganJabatan +TunjanganGolongan + TunjanganKehadiran
Tunjangan Kehadiran = Kehadiran *10000
Jabatan
Untuk Manajer = Rp.2.000.000,- sedangkan untuk Kabag = Rp.1.000.000,-
Golongan A memiliki Tunjangan Golongan sebesar Rp.500.000,-
Golongan B memiliki Tunjangan Golongan sebesar Rp.1.000.000,-
Golongan C memiliki Tunjangan Golongan sebesar Rp.1.500.000,-
Untuk Kasus Karyawan Kita akan menginput dari atribut diatas
Untuk CODING nya progam java sebagai berikut dibawah ini :
class Karyawan {
protected String nama;
protected String nik;
public void setNama(String nama)
{
this.nama=nama;
}
public void setNik(String nik)
{
this.nik=nik;
}
public String getNama()
{
return nama;
}
public String getNik()
{
return nik;
}
}
class Manager extends Karyawan {
double tunjanganjabatan=2000000;
String bagian;
int kehadiran;
double Tunjangankehadiran;
double gaji;
String golongan;
double Tunjangangolongan;
public void setTunjanganjabatan(double tunjanganjabatan)
{
this.tunjanganjabatan=tunjanganjabatan;
}
public double getTunjanganjabatan()
{
return tunjanganjabatan;
}
public void setGolongan(String golongan)
{
this.golongan=golongan;
switch(golongan.charAt(0)){
case '1':this.gaji=500000;
break;
case '2':this.gaji=1000000;
break;
case '3':this.gaji=1500000;
break;
}
}
public String getGolongan()
{
return golongan;
}
public double getTunjangangolongan()
{
return Tunjangangolongan;
}
public void setTunjangangolongan(double Tunjangangolongan)
{
this.Tunjangangolongan=Tunjangangolongan;
}
public void setkehadiran(int kehadiran)
{
this.kehadiran=kehadiran;
}
public int getkehadiran()
{
return kehadiran;
}
public void setTunjangankehadiran(double tunjangankehadiran)
{
this.Tunjangankehadiran=kehadiran*10000;
}
public double getTunjangankehadiran()
{
return Tunjangankehadiran=kehadiran*10000;
}
public void setBagian(String bagian)
{
this.bagian=bagian;
}
public String getBagian()
{
return bagian;
}
public void gaji(double tunjangankehadiran,double tunjangangolongan,double tunjanganjabatan)
{
this.gaji=Tunjangankehadiran+Tunjangangolongan+tunjanganjabatan;
}
public double getgaji()
{
return gaji = Tunjangangolongan+Tunjangankehadiran+tunjanganjabatan;
}
public void lihatInfo()
{
System.out.println("Output class Manajer");
System.out.println("=================================================");
System.out.println("Manager :"+this.getBagian());
System.out.println("-------------------------------------------------");
System.out.println("NIK :"+this.getNik());
System.out.println("Nama :"+this.getNama());
System.out.println("Golongan :"+this.getGolongan());
System.out.printf("Tunjangangolongan :%.0f\n",this.getTunjangangolongan());
System.out.printf("TunjanganJabatan :%.0f\n",this.getTunjanganjabatan());
System.out.println("Jml kehadiran :"+this.getkehadiran());
System.out.printf("Tunjangankehadiran :%.0f\n",this.getTunjangankehadiran());
System.out.printf("Gaji :%.0f\n",this.getgaji());
System.out.println("-------------------------------------------------");
System.out.println("=================================================");
}
}
class Kabag extends Karyawan {
double tunjanganjabatan=1000000;
String bagian;
int kehadiran;
double Tunjangankehadiran;
double gaji;
String golongan;
double Tunjangangolongan;
public void setTunjanganjabatan(double tunjanganjabatan)
{
this.tunjanganjabatan=tunjanganjabatan;
}
public double getTunjanganjabatan()
{
return tunjanganjabatan;
}
public void setGolongan(String golongan)
{
this.golongan=golongan;
switch(golongan.charAt(0)){
case '1':this.gaji=500000;
break;
case '2':this.gaji=1000000;
break;
case '3':this.gaji=1500000;
break;
}
}
public String getGolongan()
{
return golongan;
}
public double getTunjangangolongan()
{
return Tunjangangolongan;
}
public void setTunjangangolongan(double Tunjangangolongan)
{
this.Tunjangangolongan=Tunjangangolongan;
}
public void setkehadiran(int kehadiran)
{
this.kehadiran=kehadiran;
}
public int getkehadiran()
{
return kehadiran;
}
public void setTunjangankehadiran(double tunjangankehadiran)
{
this.Tunjangankehadiran=kehadiran*10000;
}
public double getTunjangankehadiran()
{
return Tunjangankehadiran=kehadiran*10000;
}
public void setBagian(String bagian)
{
this.bagian=bagian;
}
public String getBagian()
{
return bagian;
}
public void gaji(double tunjangankehadiran,double tunjangangolongan,double tunjanganjabatan)
{
this.gaji=Tunjangankehadiran+Tunjangangolongan+tunjanganjabatan;
}
public double getgaji()
{
return gaji = Tunjangangolongan+Tunjangankehadiran+tunjanganjabatan;
}
public void lihatInfo()
{
System.out.println("Output class Kabag");
System.out.println("=================================================");
System.out.println("Kabag :"+this.getBagian());
System.out.println("-------------------------------------------------");
System.out.println("NIK :"+this.getNik());
System.out.println("Nama :"+this.getNama());
System.out.println("Golongan :"+this.getGolongan());
System.out.printf("Tunjangangolongan :%.0f\n",this.getTunjangangolongan());
System.out.printf("TunjanganJabatan :%.0f\n",this.getTunjanganjabatan());
System.out.println("Jml kehadiran :"+this.getkehadiran());
System.out.printf("Tunjangankehadiran :%.0f\n",this.getTunjangankehadiran());
System.out.printf("Gaji :%.0f\n",this.getgaji());
System.out.println("-------------------------------------------------");
System.out.println("=================================================");
}
}
CILUK BHA .
HASIL NYA DARI PROGAM DI ATAS SEBAGAI BERIKUT :
Begitulah Progam Java Untuk Perhitungan Perawisan ALA GWA , dengan cara inheritance java
Bagus bisa membantu saya mnegerjakan tugas...
BalasHapusTerima Kasih .. Semoga Tuhan membalas kabaikan Anda :)
BalasHapusga jalan programnya, kaya ada yang kurang public static void main nya
BalasHapusclass main nya mana ya?
BalasHapus