package program_studi;
public class Dosen extends Pegawai{
private float tunjangan;
public Dosen(){
super();
}
public Dosen(String nama,String nip,long GajiPokok){
super(nama,nip,GajiPokok);
}
public void setTunjangan(float tunjangan){
this.tunjangan=tunjangan;
}
public float getTunjangan(){
return tunjangan;
}
public float hitungGajiTotal(){
return GajiPokok + tunjangan;
}
}
2.Kelas Administrasi
package program_studi;
public class Administrasi extends Pegawai{
private int JamLembur;
public Administrasi(){
super();
}
public void Administrasi(String nip){
super.setNip(nip);
}
public void setJamLembur(int JamLembur){
this.JamLembur = JamLembur;
}
public int getJamLembur(){
return JamLembur;
}
public float hitungGajiTotal(){
return GajiPokok + JamLembur*5000;
}
}
3.Kelas Honorer
package program_studi;
public class Honorer extends Pegawai{
public Honorer(String nama,String nip,long GajiPokok ){
super(nama,nip,GajiPokok);
}
public float hitungGajiTotal(){
return GajiPokok;
}
}
4.Kelas Pegawai
package program_studi;
public class Pegawai {
protected String nama;
protected String nip;
protected long GajiPokok;
public Pegawai(){
}
public Pegawai(String nama,String nip,long GajiPokok){
this.nama =nama;
this.nip =nip;
this.GajiPokok=GajiPokok;
}
public void setNama(String nama){
this.nama = nama;
}
public String getNama(){
return nama;
}
public void setNip(String nip){
this.nip = nip;
}
public String getNip(){
return nip;
}
public void setGajiPokok(long GajiPokok){
this.GajiPokok = GajiPokok;
}
public long getGajiPokok (){
return GajiPokok;
}
}
5.Kelas MainPegawai
package program_studi;
import java.util.Scanner;
public class MainPegawai {
public static void main(String[] args) {
Scanner masukan= new Scanner(System.in);
System.out.println("DATA GAJI PEGAWAI");
System.out.println("Masukkan nama Dosen :");
String nama=masukan.next();
System.out.println("Masukkan nip dosen :");
String nip=masukan.next();
System.out.println("Masukkan gaji pokok :");
long GajiPokok=masukan.nextLong();
System.out.println("Masukkan tunjangan fungsional dosen:");
float tunjangan=masukan.nextFloat();
Dosen dsn=new Dosen();
dsn.setNama(nama);
dsn.setNip(nip);
dsn.setGajiPokok(GajiPokok);
dsn.setTunjangan(tunjangan);
System.out.println("Masukkan nama administrasi:");
String namaAdmin=masukan.next();
System.out.println("Masukkan nip administrasi :");
String nipAdmin=masukan.next();
System.out.println("Masukkan gaji pokok :");
long GajiPokokAdmin=masukan.nextLong();
System.out.println("Masukkan jumlah jam lembur :");
int JamLembur=masukan.nextInt();
Administrasi admin=new Administrasi();
admin.setNama(namaAdmin);
admin.setNip(nipAdmin);
admin.setGajiPokok(GajiPokokAdmin);
admin.setJamLembur(JamLembur);
System.out.println("Masukkan nama honorer:");
String namaHon=masukan.next();
System.out.println("Masukkan nip honorer :");
String nipHon=masukan.next();
System.out.println("Masukkan gaji honorer :");
long GajiPokokHon=masukan.nextLong();
Honorer hon=new Honorer(namaHon,nipHon,GajiPokokHon);
System.out.println("nama dosen :"+dsn.nama);
System.out.println("nip dosen :"+dsn.nip);
System.out.println("gaji pokok dosen:"+dsn.GajiPokok);
System.out.println("tunjangan dosen :"+dsn.getTunjangan());
System.out.println("Gaji total dosen:"+dsn.hitungGajiTotal());
System.out.println("nama pegawai administrasi :"+admin.nama);
System.out.println("nip pegawai administrasi :"+admin.nip);
System.out.println("gaji pokok pegawai administrasi:"+admin.GajiPokok);
System.out.println("jumlah jam lembur administrasi :"+admin.getJamLembur());
System.out.println("gaji total pegawai administrasi:"+admin.hitungGajiTotal());
System.out.println("nama pegawai honorer :"+hon.nama);
System.out.println("nip pegawai honorer :"+hon.nip);
System.out.println("gaji pegawai honorer :"+hon.GajiPokok);
}
}
6. Analisa
Program ini menggunakan Pewarisan (inheritance) dan perintah super seta overriding . Program ini terdiri dari beberapa kelas yaitu kelas MainPegawai, Pegawai, Dosen, Administrasi, dan Honerer
Program ini digunakan untuk menghitung Gaji total dari Dosen,Administrasi serta Honorer.Dimana gaji total Dosen dihitung dari gaji pokok + tunjangan fungsional,gaji administrasi dihitung dari gaji pokok ditambah jumlah jam lembur * Rp.5000,sedangkan gaji seorang pegawai honorer hanya dari gaji pokok saja tanpa ada tambahan tunjangan atau jam lembur.
Kelas Pegawai menggunakan Kendali akses (lingkup class) Protected. Yaitu atribut dan metode yang disembunyikan terhadap class client, tetapi “visible” untuk class turunan. Class client dari class Pegawai adalah class yang membuat obyek dari class Pegawai.
Kelas bawah / turunan yaitu kelas Dosen, Administrasi, dan Honerer disebut subclass jadi menggunakan public class (nama kelas) extends (nama kelas atas){…}.
· Dari kelas Dosen : public class Dosen extends Pegawai {}
· Dari kelas Administrasi : public class Administrasi extends Pegawai {}
· Dari kelas Honorer : public class Honorer extends Pegawai {}
Kelas Dosen, Administrasi, dan Honerer juga menggunakan perinatah super yang dapat memanggil method pada superclass-nya (kelas Pegawai) dengan menggunakan perintah super.
Jadi kita tidak perlu repot-repot membuat metode-metode yang sudah ada pada kelas pegawai, karena kelas pegawai dapat mewariskan metode-metodenya kepada kelas dosen, administrasi serta honorer lalu ketiga tersebut tinggal menggunakan perintah super untuk mewarisi metode-metode dari kelas pegawai.
0 komentar:
Posting Komentar