Advertisement
NestaRama

BigDecimal Invoice

Aug 30th, 2017
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.26 KB | None | 0 0
  1. package com.bahasaJava.invoice;
  2.  
  3. import java.util.Scanner;
  4. import java.math.BigDecimal;
  5. import java.math.RoundingMode;
  6. import java.text.NumberFormat;
  7.  
  8. public class InvoiceBigDecimal{
  9.     public static void main(String[] args){
  10.        
  11.         // Membuat objek Scanner object dan memulai while loop
  12.         Scanner input = new Scanner(System.in);
  13.         String pilihan = "y";
  14.        
  15.         //inisialisasi awal total invoice
  16.         BigDecimal total = new BigDecimal("0.00");
  17.         while (pilihan.equalsIgnoreCase("y")){
  18.             // Memperoleh input subtotal dari user
  19.             System.out.print("Masukkan jumlah subtotal: ");
  20.             double subtotal = input.nextDouble();
  21.             // Menghitung hasil
  22.             double persentaseDiskon = 0.0;
  23.             if (subtotal >= 100)
  24.                 persentaseDiskon = 0.1;
  25.             else
  26.                 persentaseDiskon = 0.0;
  27.            
  28.             // Memformat
  29.             NumberFormat currency = NumberFormat.getCurrencyInstance();
  30.             NumberFormat percent = NumberFormat.getPercentInstance();
  31.            
  32.             //Mengkonversi subtotal dan persentase diskon ke BigDecimal
  33.             BigDecimal decimalSubtotal = new BigDecimal(Double.toString(subtotal));
  34.             decimalSubtotal = decimalSubtotal.setScale(2, RoundingMode.HALF_UP);
  35.             BigDecimal decimalPersentaseDiskon = new BigDecimal(Double.toString(persentaseDiskon));
  36.            
  37.             //Menghitung jumlah diskon
  38.             BigDecimal jumlahDiskon = decimalSubtotal.multiply(decimalPersentaseDiskon);
  39.             jumlahDiskon = jumlahDiskon.setScale(2, RoundingMode.HALF_UP);
  40.            
  41.            
  42.             //Menghitung sebelum dikenakan pajak, setelah pajak, dan total
  43.             BigDecimal totalSebelumPajak = decimalSubtotal.subtract(jumlahDiskon);
  44.             BigDecimal persentasePajakPenjualan = new BigDecimal(".05");
  45.             BigDecimal pajakPenjualan = persentasePajakPenjualan.multiply(totalSebelumPajak);
  46.             pajakPenjualan = pajakPenjualan.setScale(2, RoundingMode.HALF_UP);
  47.             BigDecimal subTotal = totalSebelumPajak.add(pajakPenjualan);
  48.            
  49.             //Menampilkan pesan
  50.             String pesan = "Persentase Diskon: " + percent.format(persentaseDiskon) + "\n"
  51.             + "Jumlah Diskon: " + currency.format(jumlahDiskon) + "\n"
  52.                     + "Total sebelum pajak: " + currency.format(totalSebelumPajak) + "\n"
  53.             + "Pajak penjualan: " + currency.format(pajakPenjualan) + "\n"
  54.                     + "Sub total: " + currency.format(subTotal) + "\n";
  55.            
  56.             System.out.println(pesan);
  57.            
  58.             //Menghitung total keseluruhan
  59.             total = total.add(subTotal);
  60.             total = total.setScale(2, RoundingMode.HALF_UP);
  61.            
  62.             // Memberikan pilihan apakah user akan melanjutkan atau tidak
  63.             System.out.print("Lanjutkan? (y/n): ");
  64.             pilihan = input.next();
  65.             System.out.println();
  66.            
  67.             }
  68.            
  69.             //Menampilkan jumlah total keseluruhan invoice
  70.             NumberFormat currency = NumberFormat.getCurrencyInstance();
  71.             System.out.println("Total invoice adalah: " + currency.format(total));
  72.         }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement