INHERITANCE



Pengertian INHERITANCE adalah dimana sebuah objek dapat mempunyai objek turunan. dalam hal pemrograman dapat diimplemantasikan dengan sebuah class yang mempunyai class turunan. class yang mempunyai turunan disebuat sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parents Class disebut sebagai SubClass atau ChildClass.  


setiap class, hanya dapat memiliki satu superclass, tetapi dapat memiliki banyak subclass!


Cara untuk mendeklarasikan inheritance adalah dengan memberikan keyword extends setelah nama kelas diikuti dengan nama Parent atau class. kata kunci extends memberikan informasi pada Kompiler JAVA bahwa kita ingin melakukan perluasan class.

Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar. Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.


Berikut contoh Program nya :
class Karyawan {
 private String nama;
 private String npm;
 private String golongan;
 private double gaji;

 public void setNama(String nama)
 {
  this.nama=nama;
 }
 public void setNpm(String npm)
 {
  this.npm=npm;
 }
 public void setGolongan(String golongan)
 {
  this.golongan=golongan;
  switch(golongan.charAt(0)){
   case '1':this.gaji=5000000;
     break;
   case '2':this.gaji=3000000;
     break;
   case '3':this.gaji=2000000;
     break;
   case '4':this.gaji=1000000;
     break;
   case '5':this.gaji=750000;
     break;
  }
 }
 public void setGaji(double gaji)
 {
  this.gaji=gaji;
 }
 public String getNama()
 {
  return nama;
 }
 public String getNpm()
 {
  return npm;
 }
 public String getGolongan()
 {
  return golongan;
 }
 public double getGaji()
 {
  return gaji;
 }
}

class Manager extends Karyawan {
 private double tunjangan;
 private String bagian;
 private Staff st[];
 public void setTunjangan(double tunjangan)
 {
  this.tunjangan=tunjangan;
 }
 public double getTunjangan()
 {
  return tunjangan;
 }
 public void setBagian(String bagian)
 {
  this.bagian=bagian;
 }
 public String getBagian()
 {
  return bagian;
 }
 pu
  this.st=st;
 }
blic void setStaff(Staff st[])
 {
 public void viewStaff()
 {
  int i;
  System.out.println("--------------------");
  for(i=0;i<st.length;i++)
  {
   st[i].lihatInfo();
  }
  System.out.println("--------------------");
 }
 public void lihatInfo()
 {
  System.out.println("MANAGER :"+this.getBagian());
  System.out.println("NPM :"+this.getNpm());
  System.out.println("NAMA :"+this.getNama());
  System.out.println("GOLONGAN :"+this.getGolongan());
  System.out.printf("TUNJANGAN :%.0f\n",this.getTunjangan());
  System.out.printf("GAJI :%.0f\n",this.getGaji());
  System.out.println("BAGIAN :"+this.getBagian());
  this.viewStaff();
 }
 public double getGaji()
 {
  return super.getGaji()+tunjangan;
 }
}
class Staff extends Karyawan {
 private int lembur;
 private double gajiLembur;

 public void setLembur(int lembur)
 {
  this.lembur=lembur;
 }
 public int getLembur()
 {
  return lembur;
 }
 public void setGajiLembur(double gajiLembur)
 {
  this.gajiLembur=gajiLembur;
 }
 public double getGajiLembur()
 {
  return gajiLembur;
 }
 public double getGaji(int lembur,double gajiLembur)
 {
  return super.getGaji()+lembur*gajiLembur;
 }
 public double getGaji()
 {
  return super.getGaji()+lembur*gajiLembur;
 }
 public void lihatInfo()
 {
  System.out.println("NPM :"+this.getNpm());
  System.out.println("NAMA :"+this.getNama());
  System.out.println("GOLONGAN :"+this.getGolongan());
  System.out.println("JUMLAH LEMBUR :"+this.getLembur());
  System.out.printf("GAJI LEMBUR :%.0f\n", this.getGajiLembur());
  System.out.printf("GAJI :%.0f\n",this.getGaji());
 }
}
class Utama {
 public static void main(String[] args)
 {
  System.out.println("PROGRAM TESTING CLASS MANAGER & STAFF\n");
  Manager man[]=new Manager[2];
  Staff staff1[]=new Staff[2];
  Staff staff2[]=new Staff[3];

  //pembuatan manager
  man[0]=new Manager();
  //NINA LATIFAH
  man[0].setNama("Nina Latifah");
  man[0].setNpm("54410997");
  man[0].setGolongan("1");
  man[0].setTunjangan(5000000);
  man[0].setBagian("GM KEUANGAN");

  man[1]=new Manager();
  //RIKY SYAPUTRA
  man[1].setNama("Riky Syaputra");
  man[1].setNpm("55410964");
  man[1].setGolongan("1");
  man[1].setTunjangan(2500000);
  man[1].setBagian("GM MARKETING");

  // staff NINA
  staff1[0]=new Staff();
  staff1[0].setNama("Dora");
  staff1[0].setNpm("55343534");
  staff1[0].setGolongan("2");
  staff1[0].setLembur(10);
  staff1[0].setGajiLembur(10000);

  staff1[1]=new Staff();
  staff1[1].setNama("TELETUBIES");
  staff1[1].setNpm("0005");
  staff1[1].setGolongan("2");
  staff1[1].setLembur(10);
  staff1[1].setGajiLembur(55000);
  man[0].setStaff(staff1);

  //staff RIKY
  staff2[0]=new Staff();
  staff2[0].setNama("SAILORMOON");
  staff2[0].setNpm("55343534");
  staff2[0].setGolongan("3");
  staff2[0].setLembur(15);
  staff2[0].setGajiLembur(5500);
  staff2[1]=new Staff();
  staff2[1].setNama("DORAEMON");
  staff2[1].setNpm("66252625");
  staff2[1].setGolongan("4");
  staff2[1].setLembur(5);
  staff2[1].setGajiLembur(100000);
  staff2[2]=new Staff();
  staff2[2].setNama("SHAUNTHESHEEP");
  staff2[2].setNpm("55363537");
  staff2[2].setGolongan("3");
  staff2[2].setLembur(6);
  staff2[2].setGajiLembur(20000);
  man[1].setStaff(staff2);

  //cetak informasi dari manager + staffnya
  man[0].lihatInfo();
  man[1].lihatInfo();
  }
}



OUTPUTnya adalah :



 Sumber

Nama : Nina Latifah
Kelas : 2ia13
NPM : 54410997

Jumat, 20 April 2012

INHERITANCE



Pengertian INHERITANCE adalah dimana sebuah objek dapat mempunyai objek turunan. dalam hal pemrograman dapat diimplemantasikan dengan sebuah class yang mempunyai class turunan. class yang mempunyai turunan disebuat sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parents Class disebut sebagai SubClass atau ChildClass.  


setiap class, hanya dapat memiliki satu superclass, tetapi dapat memiliki banyak subclass!


Cara untuk mendeklarasikan inheritance adalah dengan memberikan keyword extends setelah nama kelas diikuti dengan nama Parent atau class. kata kunci extends memberikan informasi pada Kompiler JAVA bahwa kita ingin melakukan perluasan class.

Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar. Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.


Berikut contoh Program nya :
class Karyawan {
 private String nama;
 private String npm;
 private String golongan;
 private double gaji;

 public void setNama(String nama)
 {
  this.nama=nama;
 }
 public void setNpm(String npm)
 {
  this.npm=npm;
 }
 public void setGolongan(String golongan)
 {
  this.golongan=golongan;
  switch(golongan.charAt(0)){
   case '1':this.gaji=5000000;
     break;
   case '2':this.gaji=3000000;
     break;
   case '3':this.gaji=2000000;
     break;
   case '4':this.gaji=1000000;
     break;
   case '5':this.gaji=750000;
     break;
  }
 }
 public void setGaji(double gaji)
 {
  this.gaji=gaji;
 }
 public String getNama()
 {
  return nama;
 }
 public String getNpm()
 {
  return npm;
 }
 public String getGolongan()
 {
  return golongan;
 }
 public double getGaji()
 {
  return gaji;
 }
}

class Manager extends Karyawan {
 private double tunjangan;
 private String bagian;
 private Staff st[];
 public void setTunjangan(double tunjangan)
 {
  this.tunjangan=tunjangan;
 }
 public double getTunjangan()
 {
  return tunjangan;
 }
 public void setBagian(String bagian)
 {
  this.bagian=bagian;
 }
 public String getBagian()
 {
  return bagian;
 }
 pu
  this.st=st;
 }
blic void setStaff(Staff st[])
 {
 public void viewStaff()
 {
  int i;
  System.out.println("--------------------");
  for(i=0;i<st.length;i++)
  {
   st[i].lihatInfo();
  }
  System.out.println("--------------------");
 }
 public void lihatInfo()
 {
  System.out.println("MANAGER :"+this.getBagian());
  System.out.println("NPM :"+this.getNpm());
  System.out.println("NAMA :"+this.getNama());
  System.out.println("GOLONGAN :"+this.getGolongan());
  System.out.printf("TUNJANGAN :%.0f\n",this.getTunjangan());
  System.out.printf("GAJI :%.0f\n",this.getGaji());
  System.out.println("BAGIAN :"+this.getBagian());
  this.viewStaff();
 }
 public double getGaji()
 {
  return super.getGaji()+tunjangan;
 }
}
class Staff extends Karyawan {
 private int lembur;
 private double gajiLembur;

 public void setLembur(int lembur)
 {
  this.lembur=lembur;
 }
 public int getLembur()
 {
  return lembur;
 }
 public void setGajiLembur(double gajiLembur)
 {
  this.gajiLembur=gajiLembur;
 }
 public double getGajiLembur()
 {
  return gajiLembur;
 }
 public double getGaji(int lembur,double gajiLembur)
 {
  return super.getGaji()+lembur*gajiLembur;
 }
 public double getGaji()
 {
  return super.getGaji()+lembur*gajiLembur;
 }
 public void lihatInfo()
 {
  System.out.println("NPM :"+this.getNpm());
  System.out.println("NAMA :"+this.getNama());
  System.out.println("GOLONGAN :"+this.getGolongan());
  System.out.println("JUMLAH LEMBUR :"+this.getLembur());
  System.out.printf("GAJI LEMBUR :%.0f\n", this.getGajiLembur());
  System.out.printf("GAJI :%.0f\n",this.getGaji());
 }
}
class Utama {
 public static void main(String[] args)
 {
  System.out.println("PROGRAM TESTING CLASS MANAGER & STAFF\n");
  Manager man[]=new Manager[2];
  Staff staff1[]=new Staff[2];
  Staff staff2[]=new Staff[3];

  //pembuatan manager
  man[0]=new Manager();
  //NINA LATIFAH
  man[0].setNama("Nina Latifah");
  man[0].setNpm("54410997");
  man[0].setGolongan("1");
  man[0].setTunjangan(5000000);
  man[0].setBagian("GM KEUANGAN");

  man[1]=new Manager();
  //RIKY SYAPUTRA
  man[1].setNama("Riky Syaputra");
  man[1].setNpm("55410964");
  man[1].setGolongan("1");
  man[1].setTunjangan(2500000);
  man[1].setBagian("GM MARKETING");

  // staff NINA
  staff1[0]=new Staff();
  staff1[0].setNama("Dora");
  staff1[0].setNpm("55343534");
  staff1[0].setGolongan("2");
  staff1[0].setLembur(10);
  staff1[0].setGajiLembur(10000);

  staff1[1]=new Staff();
  staff1[1].setNama("TELETUBIES");
  staff1[1].setNpm("0005");
  staff1[1].setGolongan("2");
  staff1[1].setLembur(10);
  staff1[1].setGajiLembur(55000);
  man[0].setStaff(staff1);

  //staff RIKY
  staff2[0]=new Staff();
  staff2[0].setNama("SAILORMOON");
  staff2[0].setNpm("55343534");
  staff2[0].setGolongan("3");
  staff2[0].setLembur(15);
  staff2[0].setGajiLembur(5500);
  staff2[1]=new Staff();
  staff2[1].setNama("DORAEMON");
  staff2[1].setNpm("66252625");
  staff2[1].setGolongan("4");
  staff2[1].setLembur(5);
  staff2[1].setGajiLembur(100000);
  staff2[2]=new Staff();
  staff2[2].setNama("SHAUNTHESHEEP");
  staff2[2].setNpm("55363537");
  staff2[2].setGolongan("3");
  staff2[2].setLembur(6);
  staff2[2].setGajiLembur(20000);
  man[1].setStaff(staff2);

  //cetak informasi dari manager + staffnya
  man[0].lihatInfo();
  man[1].lihatInfo();
  }
}



OUTPUTnya adalah :



 Sumber

Nama : Nina Latifah
Kelas : 2ia13
NPM : 54410997

Tidak ada komentar:

Posting Komentar