STUDI KASUS: Hitung Gaji di Sebuah Universitas
- ?Terdapat dua golongan pegawai di universitas, yaitu Dosen dan Staf biasa. Semua pegawai mendapatkan gaji awal yang sama, yaitu 1.500.000
- ?Gaji tambahan dosen dihitung dari jumlah sks yang diampu
- ?Gaji tambahan staf dihitung dari jumlah kehadiran per bulan
- ?Buatlah program untuk mencetak semua gaji pegawai
JAWAB:
Dari requirement di atas, kita bisa mendesain diagram class sebagai berikut:

IMPLEMENTASI DALAM BAHASA JAVA
Class Pegawai:
package penggajian;
/**
*
* @author AryaDharmaadi
*/
public class Pegawai {
private String nip;
private String nama;
private String alamat;
public Pegawai(){
}
public Pegawai(String nip, String nama, String alamat) {
this.nip = nip;
this.nama = nama;
this.alamat = alamat;
}
public void setNama(String nama){
this.nama = nama;
}
public String getNama(){
return this.nama;
}
public int getGaji(){
return 1500000;
}
}
Class Staf:
package penggajian;
/**
*
* @author AryaDharmaadi
*/
public class Staf extends Pegawai{
private int jumlah_kehadiran;
private final int TARIF_HARIAN = 50000;
public Staf(){
}
public Staf(String nip, String nama, String alamat) {
super(nip, nama, alamat);
}
public void setKehadiran(int jumlah_kehadiran){
this.jumlah_kehadiran = jumlah_kehadiran;
}
@Override
public int getGaji(){
int total_gaji = jumlah_kehadiran*TARIF_HARIAN;
return total_gaji+super.getGaji();
}
}
Class Dosen:
package penggajian;
/**
*
* @author AryaDharmaadi
*/
public class Dosen extends Pegawai{
private int jumlahSKS;
private final int TARIF_SKS = 120000;
public Dosen(){
}
public Dosen(String nip, String nama, String alamat) {
super(nip, nama, alamat);
}
public void setSKS(int SKS){
this.jumlahSKS = SKS;
}
@Override
public int getGaji(){
int total_gaji = jumlahSKS*TARIF_SKS;
return total_gaji+super.getGaji();
}
}
Class DaftarGaji:
package penggajian;
/**
*
* @author AryaDharmaadi
*/
public class DaftarGaji {
private Pegawai[] listPegawai;
private int jumlahPegawaiSekarang = 0;
public DaftarGaji(int jumlah_pegawai){
listPegawai = new Pegawai[jumlah_pegawai];
}
public void addPegawai(Pegawai p){
listPegawai[jumlahPegawaiSekarang] = p;
jumlahPegawaiSekarang++;
}
public void printSemuaGaji(){
for (int i=0;i<jumlahPegawaiSekarang;i++){
System.out.print(listPegawai[i].getNama()+" mendapatkan gaji ");
System.out.println(listPegawai[i].getGaji());
}
}
}
Class ProgramUtama:
package penggajian;
/**
*
* @author AryaDharmaadi
*/
public class ProgramUtama {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Staf s1 = new Staf();
s1.setNama("Putu");
s1.setKehadiran(20);
Dosen d1 = new Dosen();
d1.setNama("Dharmadi");
d1.setSKS(12);
Pegawai p1 = new Pegawai();
p1.setNama("Kadek");
DaftarGaji daftar_gaji = new DaftarGaji(3);
daftar_gaji.addPegawai(s1);
daftar_gaji.addPegawai(d1);
daftar_gaji.addPegawai(p1);
daftar_gaji.printSemuaGaji();
}
}
Hasil Running:

Selamat mencoba. Happy Coding ๐
Leave a Reply