Selasa, 27 Oktober 2015

Overiding dan Overloading dalam Java

Kali ini saya akan membagikan sedikit metode yang ada dalam java  yaitu Metode Overriding dan Metode Overloading.

Di program ini akan membedakan gaji dari masing-masing pegawai:
  1. Bos
  2. Pegawai tetap
  3. Pegawai kontrak
Untuk itu diperlukan SuperClass(Pegawai) dan SubClass(Bos, Pegawai Tetap, Pegawai Kontrak) serta Program utama. Dengan kata lain kita perlu membuat 5 class dalam satu program.
  1. Pertama kita buat Superclass "Pegawai"

  • Buat variabel - variabel yang diperlukan
  • Masukkan fungsi yang akan diberikan pada class pegawai "Absen"&"gaji"
    kemudian ketikan codingan seperti berikut :
    public class pegawai {int nama;
    int gaji;
    int gajipokok=150000;
    public void Absen(){
       System.out.println("perusahaan Homer");
        }
        public void gaji(){
        System.out.println("Gaji pokok pegawai=+gajipokok");
        }
    }

  2. Buatlah SubClassA yaitu "bos"
  • Berikan keyword "extends" yang merujuk pada SuperClass
  • Tambahkan type dan nama dari variabel
  • Lakukan Overiding pada bagian fungsi "Absen" yang nantinya akan dimunculkan
  • Tambahkan pula fungsi lain yaitu "gajibos"
          public class bos extends pegawai{
          int gajibonus;
          int gajilembur;
          int total;
          int jumlahlemburbos;
          public void Absen(){
    System.out.println("Nama=Homer");
}
          public void gajibos (int jumlahlemburbos){
          gajilembur = gajilembur * jumlahlemburbos;
          total = gajipokok+gajibonus+gajilembur;
          System.out.println("Gaji bos = " + total);
    }
}

 3. Tambahkan SubclassB yaitu "pegawai_tetap"
  • Lakukan hal yang sama dengan cara pertama
  • Perbedaannya pada variabel gajitunjangan diberi angka tertentu
  • Dan pada fungsi gajipegawaitetap diberikan fungsi khusus sehingga dapat di overloading

          public class pegawai_tetap extends bos{
          int gajilembur=1700;
          int gajitunjangan=2000;
          int totalgajiperusahaan;
          int jumlahlembur;

          public void Absen(){
    System.out.println("Nama=flender");
}
          public void gajipegawaitetap(int jumlahlembur){
          gajilembur=gajilembur*jumlahlembur;
           totalgajiperusahaan=gajipokok+gajitunjangan+gajilembur;
  System.out.println("Gaji bos="+totalgajiperusahaan);

    }
}

4. Buat SubclassC dengan nama "pegawai_kontrak"
  • Pengisian sama seperti pada SubclassB

         public class pegawai_kontrak extends pegawai{
         int gajitambahan;
         int totalgajiperusahaan;

         public void Absen(){
    System.out.println("Nama= Plopper CS");
}
        public void gajipegawaikontrak(int gajitambahan){
        totalgajiperusahaan=gajipokok+gajitambahan;
    System.out.println("Gaji bos="+totalgajiperusahaan);
   
    }
}

 5. Buat program utama "program_utama"
  • Buat constructor dari class yang sebelumnya  
  • Panggil fungsi dari masing-masing class yang telah dibuat contoh : "Absen","gaji", dll.
  • Lakukan Overriding pada fungsi yang diberikan hak seperti fungsi "gajibos" pada class bos.
  • Isi data Overriding sesuai dengan fungsi yang telah dibuat pada Class Sebelumnya

         public class program_utama {
         public static void main (String[]Args){
   
         pegawai objsuper = new pegawai();
         bos objsubA = new bos();
         pegawai_tetap objsubB = new pegawai_tetap();
         pegawai_kontrak objsubC = new pegawai_kontrak();

    System.out.println("Gaji pokok");
        objsuper.Absen();
        objsuper.gaji();
    System.out.println("\n");
   
    System.out.println("Gaji bos");
        objsubA.Absen();
        objsubA.gajibos(4);
    System.out.println("\n");
   
    System.out.println("Gaji Pegawai Tetap");
        objsubB.Absen();
        objsubB.gajipegawaitetap(4);
    System.out.println("\n");
   
    System.out.println("Gaji Pegawai Kontrak");
       objsubC.Absen();
       objsubC.gajipegawaikontrak(500);
    System.out.println("\n");
    }
}


 6. Jalankan program