SOURCE CODE BAB 6 - Pemrograman Lanjut / PBO : INHERITANCE

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