Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Praktikum9_2;
- import java.text.DecimalFormat;
- import java.text.DecimalFormatSymbols;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- private static final ArrayList<Furniture> daftar = new ArrayList<>();
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
- System.out.println(" PENDATAAN PENJUALAN FURNITURE ");
- System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
- System.out.print("Masukkan jumlah furnitur yang dibeli : ");
- int N = sc.nextInt();
- sc.nextLine();
- for (int i = 0; i < N; i++) {
- String nama, kode, jenis;
- double berat, harga;
- System.out.print("Masukkan nama barang : ");
- nama = sc.nextLine();
- switch (nama.toLowerCase()) {
- case "meja": case "kursi": case "lemari": case "rak buku": case "tempat tidur":
- jenis = "Perabotan Kayu";
- break;
- case "lampu": case "kipas angin": case "tv": case "radio":
- jenis = "Elektronik";
- break;
- default:
- System.out.println("Nama barang tidak terdaftar.\n");
- continue;
- }
- System.out.print("Masukkan kode barang : ");
- kode = sc.nextLine();
- System.out.print("Masukkan berat barang : ");
- berat = sc.nextDouble();
- System.out.print("Masukkan harga barang : ");
- harga = sc.nextDouble();
- sc.nextLine();
- if (jenis.equals("Perabotan Kayu")) {
- daftar.add(new PerabotKayu(kode, nama, berat, harga));
- }
- else {
- daftar.add(new Elektronik(kode, nama, berat, harga));
- }
- System.out.println();
- }
- rekapitulasi();
- String s;
- while (true) {
- System.out.print("Masukkan nama atau kode barang (Ketik \"Selesai\" untuk selesai) : ");
- s = sc.nextLine();
- if (s.equalsIgnoreCase("selesai")) break;
- boolean ketemu = false;
- for (Furniture i : daftar) {
- if (i.getNamaBarang().equalsIgnoreCase(s) || i.getKodeBarang().equalsIgnoreCase(s)) {
- tampilkanObjek(i);
- ketemu = true;
- }
- }
- if (!ketemu) System.out.println("Barang tidak ditemukan!");
- }
- }
- public static void rekapitulasi() {
- System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
- System.out.println(" REKAPITULASI HASIL PENJUALAN FURNITURE ");
- System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
- System.out.printf("%-15s%-40s%-20s%-28s%-17s\n", "Kode","Nama Barang","Berat Barang","Jenis Barang", "Harga");
- System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
- double totalBerat = 0, totalHarga = 0;
- for (Furniture barang : daftar) {
- System.out.printf("%-15s%-40s%-20s%-28sRp%15s\n", barang.getKodeBarang(),barang.getNamaBarang(),barang.getBeratBarang()+" kg",barang.getJenisBarang(),formatUang(barang.getHargaBarang()));
- totalBerat += barang.getBeratBarang();
- totalHarga += barang.getHargaBarang();
- }
- System.out.println("⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯");
- System.out.printf("%-15s%-40s%-20s%-28sRp%15s\n", "TOTAL","-",totalBerat + " kg","-",formatUang(totalHarga));
- System.out.println("════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
- }
- public static <T extends Furniture> void tampilkanObjek (T objek) {
- System.out.printf("> %-15s: %s\n", "Nama Barang", objek.getNamaBarang());
- System.out.printf(" %-15s: %s\n", "Kode", objek.getKodeBarang());
- System.out.printf(" %-15s: %s\n", "Jenis Barang", objek.getJenisBarang());
- System.out.printf(" %-15s: %s kg\n", "Berat", objek.getBeratBarang());
- System.out.printf(" %-15s: Rp%s\n", "Harga", formatUang(objek.getHargaBarang()));
- System.out.println();
- }
- private static String formatUang(double angka) {
- DecimalFormat kursIndonesia = (DecimalFormat)DecimalFormat.getCurrencyInstance();
- DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
- formatRp.setCurrencySymbol("");
- formatRp.setMonetaryDecimalSeparator(' ');
- kursIndonesia.setDecimalFormatSymbols(formatRp);
- return kursIndonesia.format(angka).replace(',','.').replace(' ',',');
- }
- }
Add Comment
Please, Sign In to add comment