Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Tugas6 {
- static Scanner sc = new Scanner(System.in);
- static String[] history = new String[100];
- static int historySize = 0;
- static double[] hargaTotal = new double[100];
- public static void main(String[] args) {
- int pilihan;
- do {
- System.out.println("SELAMAT DATANG DI UB MART");
- System.out.println(
- "Menu:\n" +
- "1. Berbelanja\n" +
- "2. Laundry\n" +
- "3. Lihat History\n" +
- "4. Keluar"
- );
- System.out.print("Pilihan anda: ");
- pilihan = Integer.parseInt(sc.nextLine());
- switch (pilihan) {
- case 1:
- belanjaAction();
- break;
- case 2:
- laundryAction();
- break;
- case 3:
- showHistory();
- break;
- case 4:
- /*
- Untuk keluar dari program, bisa ditambahkan penutup
- (opsional)
- */
- break;
- }
- } while (pilihan != 4);
- }
- static void belanjaAction() {
- System.out.println();
- System.out.printf("%-40s %4s", "Masukkan banyak barang yang ingin dibeli", ": ");
- int jml_barang = sc.nextInt();
- sc.nextLine();
- //deklarasi
- int totalJumlahBarang = 0;
- int jumlahBarang1 = 0;
- float totalHargaBarang = 0;
- float ppn = 0;
- double diskon = 0;
- double subtotal2 = 0;
- String nim = "",nama = "";
- String hari = "";
- //inisiasi array
- int[] jml_barang_array = new int[jml_barang];
- String[] nama_barang_array = new String[jml_barang];
- int[] jumlah_satuan_barang_array = new int[jml_barang];
- float[] harga_barang_unit_array = new float[jml_barang];
- float[] total_harga_array = new float[jml_barang];
- //input
- for (int a = 0; a < jml_barang_array.length; a++) {
- System.out.printf("%-40s %4s", "Masukkan nama barang " + (a + 1), " : ");
- nama_barang_array[a] = sc.nextLine();
- System.out.printf("%-40s %4s", "Masukkan jumlah barang " + (a + 1), " : ");
- jumlah_satuan_barang_array[a] = sc.nextInt();
- totalJumlahBarang += jumlahBarang1;
- System.out.printf("%-40s %4s", "Masukkan harga barang " + (a + 1), " : ");
- harga_barang_unit_array[a] = sc.nextFloat();
- total_harga_array[a] = jumlah_satuan_barang_array[a] * harga_barang_unit_array[a];
- totalHargaBarang += total_harga_array[a];
- sc.nextLine();
- }
- System.out.println();
- System.out.printf("%-40s %4s", "Masukkan hari sekarang", ": ");
- hari = sc.nextLine();
- System.out.printf("%-40s %4s", "Apakah anda mahasiswa UB (true/false)", ": ");
- boolean status = sc.nextBoolean();
- sc.nextLine(); //status mahasiswa atau bukan
- if (status) {
- System.out.printf("%-40s %4s", "Masukkan User ID (NIM)", ": ");
- nim = sc.nextLine();
- System.out.printf("%-40s %4s", "Masukkan nama pembeli", ": ");
- nama = sc.nextLine();
- System.out.println();
- System.out.println("===============================" + " Struk Pembelian " + "=====================================\n");
- switch (nim.substring(5, 9)) {
- case "0701":
- if (hari.equalsIgnoreCase("Senin") || hari.equalsIgnoreCase("Kamis")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 10.00%");
- } else if (hari.equalsIgnoreCase("Minggu")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 5.00%");
- }
- break;
- case "0700":
- if (hari.equalsIgnoreCase("Selasa") || hari.equalsIgnoreCase("Jumat")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 10.00%");
- } else if (hari.equalsIgnoreCase("Minggu")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 5.00%");
- }
- break;
- case "0707":
- if (hari.equalsIgnoreCase("Rabu") || hari.equalsIgnoreCase("Sabtu")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 10.00%");
- } else if (hari.equalsIgnoreCase("Minggu")) {
- System.out.println("Selamat, anda mendapatkan bonus diskon mahasiswa sebesar 5.00%");
- }
- break;
- }
- String kapital = hari.substring(0, 1);
- String huruf1 = hari.substring(1).toLowerCase();
- System.out.printf("%-10s %10s %-30s\n", "User ID", ":", nim);
- System.out.printf("%-10s %10s %-30s\n", "Nama", ":", nama);
- System.out.printf("%-10s %10s %-1s%-10s\n\n", "Hari", ":", kapital.toUpperCase(), huruf1);
- diskon = diskonMahasiswa(nim, hari);
- } else {
- System.out.println();
- System.out.println("===============================" + " Struk Pembelian " + "=====================================\n");
- String kapital = hari.substring(0, 1);
- String huruf1 = hari.substring(1).toLowerCase();
- System.out.println("Hari : " + kapital.toUpperCase() + huruf1);
- System.out.println();
- }
- //output
- System.out.printf("%-10s\n", "-------------------------------------------------------------------------------------");
- System.out.printf("| %-2s | %-19s | %4s | %-25s | %-16s |\n", "No.", "Nama Barang", "Jumlah", "Harga/unit", "Total Harga");
- System.out.printf("%-10s\n", "-------------------------------------------------------------------------------------");
- for (int a = 0; a < jml_barang_array.length; a++) {
- System.out.printf("| %-3s | %-19s | %-6s | %3s %-,21.2f | %3s %-,12.2f |\n", (a+1)+".", nama_barang_array[a], jumlah_satuan_barang_array[a], "Rp.", harga_barang_unit_array[a], "Rp.", total_harga_array[a]);
- System.out.printf("%-10s\n", "-------------------------------------------------------------------------------------");
- }
- ppn = totalHargaBarang / 10;
- float subtotal = totalHargaBarang + ppn;
- if (subtotal >= 100_000) {
- diskon += 10.00f;
- } else if (subtotal >= 50_000 && subtotal < 100_000) {
- diskon += 5.00f;
- }
- double diskonBelanja = diskon * subtotal / 100;
- subtotal2 = subtotal - diskonBelanja;
- System.out.printf("%36s | %-25s | %3s %-,12.2f | \n", " ", "PPN 10%", "Rp.", ppn);
- System.out.printf("%85s\n", "------------------------------------------------");
- System.out.printf("%36s | %-15s %6.2f%-2s | %3s %-,12.2f | \n", " ", "Diskon Belanja: ", diskon, "%", "Rp.", diskonBelanja);
- System.out.printf("%85s\n", "------------------------------------------------");
- System.out.printf("%36s | %-25s | %3s %-,12.2f | \n", " ", "Subtotal", "Rp.", subtotal2);
- System.out.printf("%85s\n", "------------------------------------------------");
- //masukkan ke history
- addToHistory("Belanja",subtotal2);
- }
- static void laundryAction() {
- System.out.println();
- System.out.printf("%-40s %4s", "Masukkan berat pakaian (kg) ", " : ");
- int berat = sc.nextInt();
- sc.nextLine();
- System.out.printf("%-40s %4s", "Masukkan tanggal sekarang ", " : ");
- String tanggalPesan = sc.nextLine();
- System.out.printf("%-40s %4s", "Masukkan cara pengiriman (Ambil/Kirim) ", " : ");
- String kondisi = sc.nextLine();
- System.out.println();
- float harga = 0;
- if (kondisi.equals("Kirim")){
- if (berat%4 == 0){
- int hari = berat/4;
- String hariPesan = tanggalPesan.substring(0,2);
- String bulanPesan = tanggalPesan.substring(3,5);
- String tahunPesan = tanggalPesan.substring(6,10);
- int hariInt = Integer.parseInt(hariPesan);
- int bulanInt = Integer.parseInt(bulanPesan);
- int tahunInt = Integer.parseInt(tahunPesan);
- System.out.println("Lama hari proses laundry : " + hari + " hari");
- System.out.println("Tanggal selesai : " + tanggalSelesai(hari,hariInt,bulanInt,tahunInt) + " (Diantarkan)");
- harga = 7500 * hari + ((7500 * (float)hari) / 10);
- System.out.printf("Total harga yang harus dibayar : Rp %-,12.2f\n\n" , harga );
- } else {
- int hari = berat/4 + (berat%4) / (berat%4);
- String hariPesan = tanggalPesan.substring(0,2);
- String bulanPesan = tanggalPesan.substring(3,5);
- String tahunPesan = tanggalPesan.substring(6,10);
- int hariInt = Integer.parseInt(hariPesan);
- int bulanInt = Integer.parseInt(bulanPesan);
- int tahunInt = Integer.parseInt(tahunPesan);
- System.out.println("Lama hari proses laundry : " + hari + " hari");
- System.out.println("Tanggal selesai : " + tanggalSelesai(hari,hariInt,bulanInt,tahunInt) + " (Diantarkan)");
- harga = 7500 * hari + ((7500 * (float)hari) / 10);
- System.out.printf("Total harga yang harus dibayar : Rp %-,12.2f\n\n" , harga );
- }
- } else if (kondisi.equals("Ambil")){
- if (berat%4 == 0){
- int hari = berat/4;
- System.out.println("Lama hari proses laundry : " + hari + " hari");
- String hariPesan = tanggalPesan.substring(0,2);
- String bulanPesan = tanggalPesan.substring(3,5);
- String tahunPesan = tanggalPesan.substring(6,10);
- int hariInt = Integer.parseInt(hariPesan);
- int bulanInt = Integer.parseInt(bulanPesan);
- int tahunInt = Integer.parseInt(tahunPesan);
- System.out.println("Tanggal selesai : " + tanggalSelesai(hari,hariInt,bulanInt,tahunInt) + " (Diambil)");
- harga = 7500 * hari;
- System.out.printf("Total harga yang harus dibayar : Rp %-,12.2f\n\n" , harga );
- } else {
- int hari = berat/4 + (berat%4) / (berat%4);
- System.out.println("Lama hari proses laundry : " + hari + " hari");
- String hariPesan = tanggalPesan.substring(0,2);
- String bulanPesan = tanggalPesan.substring(3,5);
- String tahunPesan = tanggalPesan.substring(6,10);
- int hariInt = Integer.parseInt(hariPesan);
- int bulanInt = Integer.parseInt(bulanPesan);
- int tahunInt = Integer.parseInt(tahunPesan);
- System.out.println("Tanggal selesai : " + tanggalSelesai(hari,hariInt,bulanInt,tahunInt) + " (Diambil)");
- harga = 7500 * hari;
- System.out.printf("Total harga yang harus dibayar : Rp %-,12.2f\n\n" , harga);
- }
- }
- addToHistory("Laundry",harga);
- }
- static void showHistory() {
- if (historySize == 0){
- System.out.println("\nBelum ada transaksi\n");
- } else {
- System.out.println("\nHistory Transaksi UB Mart\n");
- System.out.println("--------------------------------------------------");
- System.out.printf("| %-3s | %-19s | %-18s |\n", "No.", "Jenis transaksi", "Total Harga");
- System.out.println("--------------------------------------------------");
- for (int a = 0; a < historySize; a++){
- System.out.printf("| %-3s | %-19s | Rp. %-,14.2f |\n", (a+1) + ".", history[a], hargaTotal[a]);
- System.out.println("--------------------------------------------------");
- }
- System.out.println();
- }
- }
- static void addToHistory(String jenisTransaksi, double totalHarga) {
- history[historySize] = jenisTransaksi;
- hargaTotal[historySize] = totalHarga;
- historySize++;
- }
- static double diskonMahasiswa(String nim, String hari) {
- double diskon = 0;
- switch (nim.substring(5, 9)) {
- case "0701":
- if (hari.equalsIgnoreCase("Senin") || hari.equalsIgnoreCase("Kamis")) {
- diskon += 10.00;
- } else if (hari.equalsIgnoreCase("Minggu")) {
- diskon += 5.00;
- }
- break;
- case "0700":
- if (hari.equalsIgnoreCase("Selasa") || hari.equalsIgnoreCase("Jumat")) {
- diskon += 10.00f;
- } else if (hari.equalsIgnoreCase("Minggu")) {
- diskon += 5.00f;
- }
- break;
- case "0707":
- if (hari.equalsIgnoreCase("Rabu") || hari.equalsIgnoreCase("Sabtu")) {
- diskon += 10.00f;
- } else if (hari.equalsIgnoreCase("Minggu")) {
- diskon += 5.00f;
- }
- break;
- }
- return diskon;
- }
- static String tanggalSelesai(
- int lamaLaundry, int hari, int bulan, int tahun
- ) {
- int a;
- if (lamaLaundry < 30){
- a = 0;
- } else {
- a = 1;
- }
- int hariSelesai;
- hariSelesai = hari + lamaLaundry;
- for (int b = a; b <= lamaLaundry/30; b++) {
- while (hariSelesai > 30) {
- hariSelesai -= 30;
- bulan++;
- if (bulan > 12) {
- bulan %= 12;
- tahun++;
- }
- }
- }
- String hari3,bulan3;
- //jika hari 1 digit, maka akan ditambahi 0 di depannya
- if (hariSelesai < 10){
- hari3 = "0" + hariSelesai;
- } else {
- hari3 = Integer.toString(hariSelesai);
- }
- //jika bulan 1 digit, maka akan ditambahi 0 di depannya
- if (bulan < 10){
- bulan3 = "0" + bulan;
- } else {
- bulan3 = Integer.toString(bulan);
- }
- String tanggal;
- tanggal = hari3 + "-" + bulan3 + "-" + tahun;
- return tanggal;
- }
- }
Add Comment
Please, Sign In to add comment