ghifarazka

ParselBuah

Jun 17th, 2023
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. // keranjang, buah
  2. // buah --> id, berat, harga, warna
  3. // pisang --> buah --> jenis
  4. // anggur --> buah --> berbiji
  5. // melon --> buah --> dipotong
  6. // rules: selama masih muat, masih bisa masuk, jika tidak: ignore
  7.  
  8. // kelas parsel --> koleksi buah (polymorphism)
  9. // ada pewarisan
  10.  
  11. import java.util.*;
  12.  
  13. class Buah {
  14. protected String id;
  15. protected int berat;
  16. protected int harga;
  17. protected String warna;
  18.  
  19. public String getID() { return id; }
  20. public int getBerat() { return berat; }
  21. public int getHarga() { return harga; }
  22. }
  23.  
  24. class Pisang extends Buah {
  25. private static int harga = 20;
  26. private String jenis;
  27. public Pisang(String id, int berat, String jenis, String warna) {
  28. this.id=id; this.berat=berat; this.jenis = jenis; this.warna=warna; this.harga=this.harga;
  29. }
  30. public int getHarga() { return harga; }
  31. }
  32.  
  33. class Anggur extends Buah {
  34. private static int harga = 50;
  35. private String berbiji;
  36. public Anggur(String id, int berat, String berbiji, String warna) {
  37. this.id=id; this.berat=berat; this.berbiji = berbiji; this.warna=warna; this.harga=this.harga;
  38. }
  39. public int getHarga() { return harga; }
  40. }
  41.  
  42. class Melon extends Buah {
  43. private static int harga = 100;
  44. private String dipotong;
  45. public Melon(String id, int berat, String dipotong, String warna) {
  46. this.id=id; this.berat=berat; this.dipotong = dipotong; this.warna=warna; this.harga=this.harga;
  47. }
  48. public int getHarga() { return harga; }
  49. }
  50.  
  51. class Parsel {
  52.  
  53. // keranjang
  54. // arraylist buah
  55. // constructor
  56. private int beratKeranjang;
  57. private int beratMax;
  58. private int totalHarga;
  59. private ArrayList<Buah> list_buah;
  60. public Parsel() { beratKeranjang=beratMax=totalHarga=0; list_buah = new ArrayList<>(); }
  61.  
  62. public void setKeranjang(int berat) { beratMax = berat; }
  63. public int getBeratMax() { return beratMax; }
  64. public void add(Buah b) {
  65. if (beratKeranjang + b.getBerat() > beratMax) {}
  66. else {
  67. list_buah.add(b);
  68. beratKeranjang += b.getBerat();
  69. totalHarga += (b.getBerat()*b.getHarga());
  70. }
  71. }
  72.  
  73. public int getTotalBerat() { return beratKeranjang; }
  74. public int getTotalHarga() { return totalHarga; }
  75. public void print() {
  76. for (int i=0; i<list_buah.size(); i++) {
  77. System.out.println(list_buah.get(i).getID());
  78. }
  79. }
  80.  
  81.  
  82. // set keranjang
  83. // add buah apapun
  84. // get total berat
  85. // get total harga
  86. }
  87.  
  88. public class ParselBuah {
  89. public static void main(String[] args) {
  90.  
  91. Map<String, Integer> jenis_keranjang = new HashMap<String, Integer>() {{
  92. put("Kecil", new Integer(300));
  93. put("Sedang", new Integer(500));
  94. put("Besar", new Integer(1000));
  95. }};
  96.  
  97. Scanner s = new Scanner(System.in);
  98. Parsel parsel = new Parsel();
  99.  
  100. String inp = s.next();
  101. parsel.setKeranjang(jenis_keranjang.get(inp));
  102.  
  103. String id, nama_buah, preferensi, warna; int berat;
  104.  
  105. inp = s.next();
  106. while (!inp.equals("purchase")) {
  107. if (inp.equals("+")) {
  108. id = s.next();
  109. nama_buah = s.next();
  110. berat = s.nextInt();
  111. preferensi = s.next();
  112. warna = s.next();
  113.  
  114. if (nama_buah.equals("Pisang")) {
  115. Pisang temp = new Pisang(id, berat, preferensi, warna);
  116. parsel.add(temp);
  117. }
  118. else if (nama_buah.equals("Anggur")) {
  119. Anggur temp = new Anggur(id, berat, preferensi, warna);
  120. parsel.add(temp);
  121. }
  122. else if (nama_buah.equals("Melon")) {
  123. Melon temp = new Melon(id, berat, preferensi, warna);
  124. parsel.add(temp);
  125. }
  126. }
  127. inp = s.next();
  128. }
  129.  
  130. System.out.println(parsel.getTotalBerat() + " " + parsel.getTotalHarga());
  131. parsel.print();
  132. }
  133. }
  134.  
  135.  
Advertisement
Add Comment
Please, Sign In to add comment