Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bahasaJava.invoice;
- import java.util.Scanner;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.text.NumberFormat;
- public class InvoiceBigDecimal{
- public static void main(String[] args){
- // Membuat objek Scanner object dan memulai while loop
- Scanner input = new Scanner(System.in);
- String pilihan = "y";
- //inisialisasi awal total invoice
- BigDecimal total = new BigDecimal("0.00");
- while (pilihan.equalsIgnoreCase("y")){
- // Memperoleh input subtotal dari user
- System.out.print("Masukkan jumlah subtotal: ");
- double subtotal = input.nextDouble();
- // Menghitung hasil
- double persentaseDiskon = 0.0;
- if (subtotal >= 100)
- persentaseDiskon = 0.1;
- else
- persentaseDiskon = 0.0;
- // Memformat
- NumberFormat currency = NumberFormat.getCurrencyInstance();
- NumberFormat percent = NumberFormat.getPercentInstance();
- //Mengkonversi subtotal dan persentase diskon ke BigDecimal
- BigDecimal decimalSubtotal = new BigDecimal(Double.toString(subtotal));
- decimalSubtotal = decimalSubtotal.setScale(2, RoundingMode.HALF_UP);
- BigDecimal decimalPersentaseDiskon = new BigDecimal(Double.toString(persentaseDiskon));
- //Menghitung jumlah diskon
- BigDecimal jumlahDiskon = decimalSubtotal.multiply(decimalPersentaseDiskon);
- jumlahDiskon = jumlahDiskon.setScale(2, RoundingMode.HALF_UP);
- //Menghitung sebelum dikenakan pajak, setelah pajak, dan total
- BigDecimal totalSebelumPajak = decimalSubtotal.subtract(jumlahDiskon);
- BigDecimal persentasePajakPenjualan = new BigDecimal(".05");
- BigDecimal pajakPenjualan = persentasePajakPenjualan.multiply(totalSebelumPajak);
- pajakPenjualan = pajakPenjualan.setScale(2, RoundingMode.HALF_UP);
- BigDecimal subTotal = totalSebelumPajak.add(pajakPenjualan);
- //Menampilkan pesan
- String pesan = "Persentase Diskon: " + percent.format(persentaseDiskon) + "\n"
- + "Jumlah Diskon: " + currency.format(jumlahDiskon) + "\n"
- + "Total sebelum pajak: " + currency.format(totalSebelumPajak) + "\n"
- + "Pajak penjualan: " + currency.format(pajakPenjualan) + "\n"
- + "Sub total: " + currency.format(subTotal) + "\n";
- System.out.println(pesan);
- //Menghitung total keseluruhan
- total = total.add(subTotal);
- total = total.setScale(2, RoundingMode.HALF_UP);
- // Memberikan pilihan apakah user akan melanjutkan atau tidak
- System.out.print("Lanjutkan? (y/n): ");
- pilihan = input.next();
- System.out.println();
- }
- //Menampilkan jumlah total keseluruhan invoice
- NumberFormat currency = NumberFormat.getCurrencyInstance();
- System.out.println("Total invoice adalah: " + currency.format(total));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement