Yesver08

Main.java

May 10th, 2021 (edited)
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.93 KB | None | 0 0
  1. package Praktikum9_2;
  2.  
  3. import java.text.DecimalFormat;
  4. import java.text.DecimalFormatSymbols;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.     private static final ArrayList<Furniture> daftar = new ArrayList<>();
  10.  
  11.     public static void main(String[] args) {
  12.         Scanner sc = new Scanner(System.in);
  13.  
  14.         System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
  15.         System.out.println("                                             PENDATAAN PENJUALAN FURNITURE                                             ");
  16.         System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
  17.         System.out.print("Masukkan jumlah furnitur yang dibeli : ");
  18.  
  19.         int N = sc.nextInt();
  20.         sc.nextLine();
  21.         for (int i = 0; i < N; i++) {
  22.             String nama, kode, jenis;
  23.             double berat, harga;
  24.             System.out.print("Masukkan nama barang  : ");
  25.             nama = sc.nextLine();
  26.  
  27.             switch (nama.toLowerCase()) {
  28.                 case "meja": case "kursi": case "lemari": case "rak buku": case "tempat tidur":
  29.                     jenis = "Perabotan Kayu";
  30.                     break;
  31.                 case "lampu": case "kipas angin": case "tv": case "radio":
  32.                     jenis = "Elektronik";
  33.                     break;
  34.                 default:
  35.                     System.out.println("Nama barang tidak terdaftar.\n");
  36.                     continue;
  37.             }
  38.  
  39.             System.out.print("Masukkan kode barang  : ");
  40.             kode = sc.nextLine();
  41.             System.out.print("Masukkan berat barang : ");
  42.             berat = sc.nextDouble();
  43.             System.out.print("Masukkan harga barang : ");
  44.             harga = sc.nextDouble();
  45.             sc.nextLine();
  46.             if (jenis.equals("Perabotan Kayu")) {
  47.                 daftar.add(new PerabotKayu(kode, nama, berat, harga));
  48.             }
  49.             else {
  50.                 daftar.add(new Elektronik(kode, nama, berat, harga));
  51.             }
  52.             System.out.println();
  53.         }
  54.         rekapitulasi();
  55.  
  56.         String s;
  57.         while (true) {
  58.             System.out.print("Masukkan nama atau kode barang (Ketik \"Selesai\" untuk selesai) : ");
  59.             s = sc.nextLine();
  60.             if (s.equalsIgnoreCase("selesai")) break;
  61.             boolean ketemu = false;
  62.             for (Furniture i : daftar) {
  63.                 if (i.getNamaBarang().equalsIgnoreCase(s) || i.getKodeBarang().equalsIgnoreCase(s)) {
  64.                     tampilkanObjek(i);
  65.                     ketemu = true;
  66.                 }
  67.             }
  68.             if (!ketemu) System.out.println("Barang tidak ditemukan!");
  69.         }
  70.     }
  71.  
  72.     public static void rekapitulasi() {
  73.         System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
  74.         System.out.println("                                         REKAPITULASI HASIL PENJUALAN FURNITURE                                         ");
  75.         System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
  76.         System.out.printf("%-15s%-40s%-20s%-28s%-17s\n", "Kode","Nama Barang","Berat Barang","Jenis Barang", "Harga");
  77.         System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
  78.         double totalBerat = 0, totalHarga = 0;
  79.         for (Furniture barang : daftar) {
  80.             System.out.printf("%-15s%-40s%-20s%-28sRp%15s\n", barang.getKodeBarang(),barang.getNamaBarang(),barang.getBeratBarang()+" kg",barang.getJenisBarang(),formatUang(barang.getHargaBarang()));
  81.             totalBerat += barang.getBeratBarang();
  82.             totalHarga += barang.getHargaBarang();
  83.         }
  84.         System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
  85.         System.out.printf("%-15s%-40s%-20s%-28sRp%15s\n", "TOTAL","-",totalBerat + " kg","-",formatUang(totalHarga));
  86.         System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
  87.     }
  88.  
  89.     public static <T extends Furniture> void tampilkanObjek (T objek) {
  90.         System.out.printf(">  %-15s: %s\n", "Nama Barang", objek.getNamaBarang());
  91.         System.out.printf("   %-15s: %s\n", "Kode", objek.getKodeBarang());
  92.         System.out.printf("   %-15s: %s\n", "Jenis Barang", objek.getJenisBarang());
  93.         System.out.printf("   %-15s: %s kg\n", "Berat", objek.getBeratBarang());
  94.         System.out.printf("   %-15s: Rp%s\n", "Harga", formatUang(objek.getHargaBarang()));
  95.         System.out.println();
  96.     }
  97.  
  98.     private static String formatUang(double angka) {
  99.         DecimalFormat kursIndonesia = (DecimalFormat)DecimalFormat.getCurrencyInstance();
  100.         DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
  101.         formatRp.setCurrencySymbol("");
  102.         formatRp.setMonetaryDecimalSeparator(' ');
  103.         kursIndonesia.setDecimalFormatSymbols(formatRp);
  104.  
  105.         return kursIndonesia.format(angka).replace(',','.').replace(' ',',');
  106.     }
  107. }
Add Comment
Please, Sign In to add comment