BAB : INHERITANCE
NAMA : MOH. ARIF ANDRIAN
NIM : 156150600111002
TANGGAL : 27042016
ASISTEN : - REZA SAPURTA
- REZKY DERMAWAN A. DEFINISI MASALAH
Buatlah class Employe yang d-inherit oleh class Manager, Pegawai tetap, Pegawai tidak tetap. Setelah itu program akan meminta user untuk menginputkan
nama, idKerja, jabatan Employe, mempunyai istri atau tidak, mempunyai anak atau tidak dan memasukkan tahun masuk kerja. Ketentuan untuk mengerjakan soal ini
adalah sebagai berikut :
a. Berlaku untuk semua jabatan kecuali non PNS - Jika masa kerja di bawah 5 tahun maka tidak mendapatkan bonus dan tidak
mendapatkan tunjangan sama dengan Employe. - Jika masa kerja di antara 6-10 tahun maka mendapatkan bonus 0.05 dari lama
kerja dan tidak mendapatkan tunjangan. - Jika masa kerja di atas 10 tahun maka mendapatkan bonus 0.1 dari lama kerja
dan mendapatkan tunjangan 0.1 dari lama kerja. - Jika mempunyai istri maka akan mendapatkan tunjangan 0.1 dari total gaji
yang didapat gaji+lama kerja+tunjangan jika tidak maka tunjangan istri 0 rupiah.
- Jika mempunyai anak maka mendapatkan tunjangan anak sebesar 0.15 dari jumlah gaji yang didapatkan gaji+lama kerja+tunjangan, tunjangan anak
hanya diberikan sampai anak ketiga saja. b. Berlaku untuk Manager saja
- Untuk manager selain mendapatkan bonus kerja dan tunjangan, pada manager mendapatkan tunjangan jabatan sebesar 0.1 dari jumlah gaji gaji+lama
kerja+tunjangan. c. Berlaku untuk pegawai tidak tetap
- Gaji yang didapatkan adalah sama dengan gaji Employe, namun terdapat gaji lembur. Untuk mendapatkan gaji lembur, pegawai non PNS harus bekerja
lebih dari 10 jam dengan mendapatkan gaji lembur sebesar 10.000 perjamnya. Namun jika di bawah 10 jam maka tidak akan mendapatkan gaji lembur.
Untuk mengerjakan soal ini gunakan test case sebanyak 1 Manager, 10 Pegawai tetap dan 5 Pegawai tidak tetap yang mencakup seluruh ketentuan yang ada.
B. SOURCE CODE
Employee.java
1 2
3 4
package Praktikum6; public class Employee {
public String nama, jabatan, idKerja, istri; int thnKerja, anak;
5 6
7 8
9 1
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 2
1 2
2 2
3 2
4 2
5 2
6 static double gaji, bonus;
public EmployeeString nama, String jabatan, String idKerja, String istri, int anak, int thn {
this.nama = nama; this.jabatan = jabatan;
this.idKerja = idKerja; this.istri = istri;
this.anak = anak; thnKerja = thn;
} public String getNama {
return nama; }
public String getJabatan { return jabatan;
} public String getIdKerja {
return idKerja; }
public double getGaji { return gaji;
} }
Managerr.java
1 2
3
4 5
6 7
8 package Praktikum6;
public class Managerr extends Employee { public ManagerrString nama, String jabatan, String idKerja,
String istri, int anak, int thn { supernama, jabatan, idKerja, istri, anak, thn;
gaji = 5000000; }
public void setBonusint thn, String istri, int anak { if thn 11 {
9 1
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 2
1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
gaji += gaji 0.05 100; } else {
gaji += gaji 0.1 100 + gaji 0.1 100; }
if istri.equalsIgnoreCasekawin anak == 0 { gaji += gaji 0.1 100 + gaji 0.1 100;
} else if istri.equalsIgnoreCasekawin anak 4{ gaji += gaji 0.1 100 + gaji 0.15
100 anak + gaji 0.1 100; } else if istri.equalsIgnoreCasekawin anak 3{
gaji += gaji 0.1 100 + gaji 0.15 100 3 + gaji 0.1 100;
} else if istri.equalsIgnoreCasecerai anak 4{ gaji += gaji 0.15 100 anak + gaji
0.1 100; } else if istri.equalsIgnoreCasecerai anak 3{
gaji += gaji 0.15 100 3 + gaji 0.1 100;
} else { gaji += gaji 0.1 100;
} }
}
PegawaiTetap.java
1 2
3
4 5
package Praktikum6; public class PegawaiTetap extends Employee {
public PegawaiTetapString nama, String jabatan, String idKerja, String istri, int anak, int thn {
supernama, jabatan, idKerja, istri, anak, thn; gaji = 3000000;
6 7
8 9
1 1
1 1
2 1
3 1
4 1
5 1
6 1
7
1 8
1 9
2 2
1 2
2 2
3 2
4 2
5 2
6 2
7 2
8 }
public void setBonusint thn, String istri, int anak { if thn 11 {
gaji += gaji 0.05 100; } else {
gaji += gaji 0.1 100 + gaji 0.1 100; }
if istri.equalsIgnoreCasekawin anak == 0 { gaji += gaji 0.1 100;
} else if istri.equalsIgnoreCasekawin anak 4{ gaji += gaji 0.1 100 + gaji 0.15
100 anak; } else if istri.equalsIgnoreCasekawin anak 3{
gaji += gaji 0.1 100 + gaji 0.15 100 3;
} else if istri.equalsIgnoreCasecerai anak 4{ gaji += gaji 0.15 100 anak;
} else if istri.equalsIgnoreCasecerai anak 3{ gaji += gaji 0.15 100 3;
} else { gaji += 0;
} }
}
PegawaiTidakTetap.java
1 2
3
4 package Praktikum6;
public class PegawaiTidakTetap extends Employee { public PegawaiTidakTetapString nama, String jabatan, String
idKerja, String istri, int anak, int thn { supernama, jabatan, idKerja, istri, anak, thn;
5 6
7 8
9 1
gaji = 1500000; }
public void setBonusint jam { gaji += 10000 jam - 10 30;
} }
Main.java
1 2
3 4
5 6
7 8
9 1
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 2
1 2
2 2
3 2
4 package Praktikum6;
import java.io.; public class Main {
static String daftar = \n| ID Kerja\t| Nama Pegawai\t\t| Jabatan\t\t| Gaji\t\t|\n +|
================================================================ ===============|\n;
public static void mainString[] args throws IOException { BufferedReader in = new BufferedReadernew
InputStreamReaderSystem.in; for int i = 0; i 16; i++ {
System.out.println\nData Pegawai ke- + i + 1; System.out.printID Kerja : ;
String id = in.readLine; System.out.printNama Pegawai : ;
String nama = in.readLine; System.out.printJabatan : ;
String jabatan = in.readLine; System.out.printTahun Masuk : ;
int thn = Integer.parseIntin.readLine; System.out.printLama Jam Kerja : ;
int jam = Integer.parseIntin.readLine; System.out.printlnStatus Pernikahan;
System.out.printceraikawinbelum : ; String status = in.readLine;
System.out.printJumlah Anak : ; int anak = Integer.parseIntin.readLine;
if jabatan.equalsIgnoreCaseManager { Managerr bos = new Managerrnama, jabatan, id,
status, anak, thn; bos.setBonusthn, status, anak;
daftar += | + bos.getIdKerja + \t\t| + bos.getNama + \t\t| + bos.getJabatan + \t\t| Rp. +
bos.getGaji + \t|\n; } else if jabatan.equalsIgnoreCasePegawai
Tetap { PegawaiTetap tetap = new PegawaiTetapnama,
jabatan, id, status, anak, thn; tetap.setBonusthn, status, anak;
daftar += | + tetap.getIdKerja + \t\t| + tetap.getNama + \t\t| + tetap.getJabatan + \t\t| Rp. +
2 5
2 6
2 7
2 8
2 9
3 3
1 3
2 3
3
3 4
3 5
3 6
3 7
3 8
3 9
4 4
1
4 2
4 3
tetap.getGaji + \t|\n; } else if jabatan.equalsIgnoreCasePegawai Tidak
Tetap { PegawaiTidakTetap tidak = new
PegawaiTidakTetapnama, jabatan, id, status, anak, thn; tidak.setBonusjam;
daftar += | + tidak.getIdKerja + \t\t| + tidak.getNama + \t\t| + tidak.getJabatan + \t| Rp. +
tidak.getGaji + \t|\n; }
} System.out.printlndaftar;
System.out.println\nMOH ARIF ANDRIAN + INDAH PUSPITASARI;
} }
C. PEMBAHASAN