//file Karyawan.java public class Karyawan { private String nama,NIP,NPWP; //deklarasi beberapa variabel dengan tipe yang sama dapat //dituliskan dengan cara ini private double gaji; private int status=0; // pengaturan nilai default status public Karyawan(String a, String b, String c){ nama=a; NIP=b; NPWP=c; } public String getNama(){ return nama; } //penambahan method getStatus() agar variabel status dapat diakses public int getStatus(){ return status; } public String getNPWP(){ return NPWP; } public void setGaji(double a){ gaji=a; } public void setStatus(int s){ if ((s==0)||(s==1)){ status=s; }else{System.out.println("Mohon isikan nilai 0 atau 1");} } public double hitungPajak(){ // hanya menghasilkan pajak yg harus dibayar //Perhatikan urutan IF if (gaji>20000000) return 0.2*gaji; else if (gaji>12000000) return 0.1*gaji; else return 0; } public void viewInfo(){ System.out.println("nama:"+nama); System.out.println("NIP:"+NIP); System.out.println("NPWP"+NPWP); System.out.println("nama:"+hitungPajak()); } } //file Perusahaan.java public class Perusahaan { private Karyawan[] listKaryawan=new Karyawan[50];//inisialisasi array private String NPWP; private String Nama; private int jumK; public Perusahaan(String a, String b){ Nama=a; NPWP=b; jumK=0; } //tambahan method getJumlahKaryawan(), agar variabel jumk dapat diakses public int getJumlahKaryawan(){ return jumK; } //tambahan method getKaryawan(), agar variabel listKaryawan dapat diakses public Karyawan[] getKaryawan(){ return listKaryawan; } public void addKaryawan(Karyawan k){ listKaryawan[jumK]=k; jumK++; } public void viewAllKaryawan(){ for (int i=0;i<jumK;i++) listKaryawan[i].viewInfo(); } public void filterKaryawan(double a){ for (int i=0;i<jumK;i++){ if (listKaryawan[i].hitungPajak()>= a) listKaryawan[i].viewInfo(); } } public void filterKaryawan(int Status){ for (int i=0;i<jumK;i++){ if (listKaryawan[i].getStatus()==Status) listKaryawan[i].viewInfo(); } } public double hitungPajakTotal(){ double temp=0; for (int i=0;i<jumK;i++){ temp=temp+listKaryawan[i].hitungPajak(); } return temp; } public double hitungPajakMasuk(){ double temp=0; for (int i=0;i<jumK;i++){ if (listKaryawan[i].getStatus()==1) { temp=temp+listKaryawan[i].hitungPajak(); } } return temp; } public void viewInfo(){ System.out.println("Nama: "+Nama); System.out.println("NPWP: "+NPWP); System.out.println("Jumlah Karyawan: "+jumK); System.out.println("Total Pajak Karyawan :"+hitungPajakTotal()); } } //file KPP.java public class KPP { private String nama; private Perusahaan[] listPerusahaan=new Perusahaan[50]; private int jumP; public KPP(String a){ nama=a; jumP=0; } public void addPerusahaan(Perusahaan p){ listPerusahaan[jumP]=p; jumP++; } public void viewAllPerusahaan(){ for (int i=0;i<jumP;i++) listPerusahaan[i].viewInfo(); } public double hitungPajakTotal(){ double temp=0; for (int i=0;i<jumP;i++) temp=temp+listPerusahaan[i].hitungPajakTotal(); return temp; } public void viewPajakTotal(){ System.out.println("Total Pajak KPP: "+hitungPajakTotal()); } public double hitungPajakMasuk(){ //dalam membangun method ini dapat dilakukan dengan menggunakan method // hitungPajakMasuk() pada kelas perusahaan double temp=0; for (int i=0;i<jumP;i++) temp=temp+listPerusahaan[i].hitungPajakMasuk(); return temp; } public void viewPajakMasuk(){ System.out.println("Total Pajak Masuk: "+hitungPajakMasuk()); } public void viewInfo(){ System.out.println("Nama KPP:"+nama); System.out.println("Jumlah Perusahaan:"+jumP); System.out.println("Target Pajak:"+hitungPajakTotal()); System.out.println("Realisasi Pajak :"+hitungPajakMasuk()); System.out.println("Persentase Realisasi Pajak :"+ ((hitungPajakMasuk()/hitungPajakTotal())*100)+"%"); } } //File AppServer.java class AppServer { public static void main(String args[]) { //SATU: lahirkan objek K1, K2, K3, K4 Karyawan K1 = new Karyawan("Kuuga","10101","1111"); Karyawan K2 = new Karyawan("Agito","10102","1112"); Karyawan K3 = new Karyawan("Faiz","10103","1113"); Karyawan K4 = new Karyawan("Fangire","10104","1114"); //DUA: atur gaji dan status karyawan yg sudah lahir K1.setGaji(5000000); // 5 juta K2.setGaji(13000000); // 13 juta K3.setGaji(25000000); // 25 juta K4.setGaji(8000000); // 8 juta K1.setStatus(1); // sudah bayar pajak K2.setStatus(0); // belum bayar pajak K3.setStatus(1); K4.setStatus(1); // TIGA: tampilkan informasi K1 K1.viewInfo(); // EMPAT: lahirkan objek perusahaan Perusahaan P1 = new Perusahaan("PT Luar Biasa","1000"); Perusahaan P2 = new Perusahaan("PT Krisis Moneter","1001"); // LIMA: hubungkan K1-K2 ke P1, dan K3-K4 ke P2 P1.addKaryawan(K1); // K1 dimasukkan ke array0 di P1 P1.addKaryawan(K2); // K2 dimasukkan ke array1 di P1 P2.addKaryawan(K3);// K3 dimasukkan ke array0 di P2 P2.addKaryawan(K4);// K4 dimasukkan ke array0 di P2 P1.viewInfo(); P2.viewInfo(); P1.viewAllKaryawan(); // tampilkan data array: K1, K2 P2.viewAllKaryawan(); // tampilkan data array: K3, K4 P1.filterKaryawan(0); P2.filterKaryawan(0); KPP KPP1 = new KPP("KPP Ujung Kulon"); KPP1.addPerusahaan(P1); KPP1.addPerusahaan(P2); KPP1.viewInfo(); } }