Home > Java > Bill Distribution ~ behind the scene

Bill Distribution ~ behind the scene


Siang ini saya ingin membagikan logika distribusi pecahan mata uang, logika ini mungkin sudah sering kita jumpai, seperti di Program Pecahan Mata Uang Rupiah, tetapi saya tetap ingin membagikannya sebagai contoh bahwa banyak jalan menuju Roma.

Berikut ini merupakan code dengan menggunakan CC4J:

    public static void main(String[] args) {
        double money = 3446578;
        HashMap<Integer, Integer> hashMap = CCFormat.bill(money);
        for (Integer bill : CCFormat.DICT_BILL) {
            if (hashMap.get(bill) != null) {
                System.out.println("Pecahan " + bill + " sebanyak " + hashMap.get(bill));
            }
        }
    }

Yang menghasilkan:

Pecahan 100000 sebanyak 34
Pecahan 20000 sebanyak 2
Pecahan 5000 sebanyak 1
Pecahan 1000 sebanyak 1
Pecahan 500 sebanyak 1

Berikut ini crucial code nya:

    private static void _initBill() {
        DICT_BILL.add(100000);
        DICT_BILL.add(50000);
        DICT_BILL.add(20000);
        DICT_BILL.add(10000);
        DICT_BILL.add(5000);
        DICT_BILL.add(2000);
        DICT_BILL.add(1000);
        DICT_BILL.add(500);
        DICT_BILL.add(200);
        DICT_BILL.add(100);
    }

    public static HashMap<Integer, Integer> bill(double money) {
        HashMap<Integer, Integer> bill_count = new HashMap();
        for (Integer bill : DICT_BILL) {
            if (money >= bill) {
                int count = parseInt(money / bill);
                bill_count.put(bill, count);
                money -= bill * count;
            }
        }
        return bill_count;
    }

Semoga membantu..

Categories: Java Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: