hendroprwk08

Constructor and Generalization

Oct 20th, 2025
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.73 KB | None | 0 0
  1. --------------------------
  2. Nama file: Karyawan.java
  3. --------------------------
  4.  
  5. public class Karyawan {
  6. public String nik, nama, golongan;
  7. public int bulan;
  8.  
  9. // constructor
  10. Karyawan(String nik, String nama, String golongan, int bulan){
  11. this.nik = nik;
  12. this.nama = nama;
  13. this.golongan = golongan;
  14. this.bulan = bulan;
  15. }
  16.  
  17. }
  18.  
  19. --------------------------
  20. Nama file: KaryawanTetap.java
  21. --------------------------
  22.  
  23. public class KaryawanTetap extends Karyawan{
  24. KaryawanTetap(String nik, String nama, String golongan, int bulan) {
  25. super(nik, nama, golongan, bulan);
  26. }
  27.  
  28. public void infoPinjam(){
  29. int pinjaman = 0;
  30.  
  31. if(this.golongan.equalsIgnoreCase("A")){
  32. pinjaman = 100000000;
  33. }else if(this.golongan.equalsIgnoreCase("B")){
  34. pinjaman = 75000000;
  35. }else if(this.golongan.equalsIgnoreCase("C")){
  36. pinjaman = 50000000;
  37. }
  38.  
  39. double bunga = (double) pinjaman * 0.025;
  40. int jumlah = (pinjaman - (int)bunga);
  41. int perbulan = pinjaman / bulan;
  42.  
  43. System.out.println("--- INFO PEMINJAM ---");
  44. System.out.println("NIK : \t\t"+ this.nik);
  45. System.out.println("Nama : \t\t"+ this.nama);
  46. System.out.println();
  47. System.out.println("--- DETIL PINJAMAN ---");
  48. System.out.println(String.format("Pinjaman: \tRp.%,2d", pinjaman));
  49. System.out.println(String.format("Bunga: \t\tRp.%,2d", (int)bunga));
  50. System.out.println("-----------------------------");
  51. System.out.println(String.format("Jumlah: \tRp.%,2d", jumlah));
  52. System.out.println("=============================");
  53. System.out.println(String.format("Bulanan: \tRp.%,2d", perbulan));
  54. System.out.println(String.format("Selama: \t%d bulan", bulan));
  55. }
  56.  
  57. }
  58.  
  59. --------------------------
  60. Nama file: KaryawanHonorer.java
  61. --------------------------
  62.  
  63. public class KaryawanHonorer extends Karyawan{
  64.  
  65. KaryawanHonorer(String nik, String nama, String golongan, int bulan) {
  66. super(nik, nama, golongan, bulan);
  67. }
  68.  
  69. public void infoPinjam(){
  70. int pinjaman = 0;
  71.  
  72. if(this.golongan.equalsIgnoreCase("A")){
  73. pinjaman = 30000000;
  74. }else if(this.golongan.equalsIgnoreCase("B")){
  75. pinjaman = 20000000;
  76. }else if(this.golongan.equalsIgnoreCase("C")){
  77. pinjaman = 10000000;
  78. }
  79.  
  80. double bunga = (double) pinjaman * 0.025;
  81. int jumlah = (pinjaman - (int)bunga);
  82. int perbulan = pinjaman / bulan;
  83.  
  84. System.out.println("--- INFO PEMINJAM ---");
  85. System.out.println("NIK : \t\t"+ this.nik);
  86. System.out.println("Nama : \t\t"+ this.nama);
  87. System.out.println();
  88. System.out.println("--- DETIL PINJAMAN ---");
  89. System.out.println(String.format("Pinjaman: \tRp.%,2d", pinjaman));
  90. System.out.println(String.format("Bunga: \t\tRp.%,2d", (int)bunga));
  91. System.out.println("-----------------------------");
  92. System.out.println(String.format("Jumlah: \tRp.%,2d", jumlah));
  93. System.out.println("=============================");
  94. System.out.println(String.format("Bulanan: \tRp.%,2d ", perbulan));
  95. System.out.println(String.format("Selama: \t%d bulan", bulan));
  96. }
  97.  
  98. }
  99.  
  100. --------------------------
  101. Nama file: Main.java
  102. --------------------------
  103.  
  104. import java.util.Scanner;
  105.  
  106. public class Main {
  107.  
  108. static Scanner sc = new Scanner(System.in);
  109. static int pilih = 0;
  110.  
  111. public static void main(String[] args) {
  112. do {
  113. boolean valid = false;
  114. mainMenu();
  115.  
  116. // memastikan user harus input integer
  117. while (!valid) {
  118. System.out.print("[ Ketik 1/2/3 ]: ");
  119.  
  120. if (sc.hasNextInt()) {
  121. pilih = sc.nextInt();
  122.  
  123. if(pilih > 3){
  124. System.out.println("[ Menu salah!, Coba lagi. ]");
  125. valid = false;
  126. }else{
  127. valid = true;
  128. }
  129. } else {
  130. System.out.println("[ Coba lagi! ]");
  131. sc.next();
  132. valid = false;
  133. }
  134. }
  135.  
  136. // pilih 1 = karyawan tetap
  137. // pilih 2 = karyawan honorer
  138. mainInputKaryawan(pilih);
  139.  
  140. } while (pilih != 3);
  141. }
  142.  
  143. private static void mainInputKaryawan(int tipe) {
  144. String nik, nama, golongan;
  145. int bulan;
  146.  
  147. sc.nextLine();
  148. System.out.print("NIK: ");
  149. nik = sc.nextLine();
  150. System.out.print("Nama: ");
  151. nama = sc.nextLine();
  152.  
  153. //menu golongan
  154. System.out.print("Golongan [ A/B/C ]: ");
  155. golongan = sc.nextLine();
  156.  
  157. System.out.print("Lama pinjaman (bln): ");
  158. bulan = sc.nextInt();
  159.  
  160. if(tipe == 1){ // karyawan tetap
  161. KaryawanTetap k = new KaryawanTetap(nik, nama, golongan, bulan);
  162. k.infoPinjam();
  163. }else if(tipe == 2){ // karyawan honorer
  164. KaryawanHonorer k = new KaryawanHonorer(nik, nama, golongan, bulan);
  165. k.infoPinjam();
  166. }
  167.  
  168. System.out.print("[ Tekan apapun untuk lanjut ]");
  169. sc.nextLine();
  170. sc.nextLine();
  171. }
  172.  
  173. private static void mainMenu() {
  174. System.out.println("-----------------------");
  175. System.out.println("1. Karyawan Tetap");
  176. System.out.println("2. Karyawan Honorer");
  177. System.out.println("3. Keluar");
  178. System.out.println("-----------------------");
  179. }
  180. }
  181.  
  182.  
Advertisement
Add Comment
Please, Sign In to add comment