Kamis, 05 Mei 2011

Format Mata uang di Java

Adakalanya kita membuat  aplikasi / tools yang menggunakan format mata uang untuk memudahkan pembacaan, terutama aplikasi yang berhubungan dengan akuntasi.  Walau ini terlihat sepele namun sangat membantu sekali.
Kasus pertama
Setelah melakukan hasil perhitungan yang cukup kompleks karena melibatkan beberapa input dari table. Masalahnya berupa hasil perhitungan menjadi kurang dapat dibaca.
Misalnya
Hasil : 14500
Klien meminta agar ditambahkan dalam format mata uang Indonesia
Hasilnya: IDR. 14,500.00
Kasus kedua
Ternyata klien tidak cocok dengan string IDR seharusnya menggunakan Rp. Jadi hasilnya sebagai berikut
Hasilnya : Rp. 14,500.00
Kasus ketiga
Timbul masalah lagi, ternyata klien protes: “lho itu bukan format Indonesia!”. Wah batin penulis makin jengkel juga. Ternyata kalau format Indonesia pemisah ribuan harus titik.. emeemm. Jadi hasilnya sebagai berikut
Hasilnya: Rp. 14.000,00
Itulah  salah satu pengalaman penulis yang harus pandai-pandai ‘bekerja’. Ok untuk lebih jelasnya berikut adalah kode nya dalam java


import java.text.NumberFormat;
import java.util.Locale;

/**
 *
 * @author mulkan
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        double gaji=14500;
       
        Locale lo=new Locale("IDR","id");
        NumberFormat nf=NumberFormat.getCurrencyInstance(lo);
        String hasil1=nf.format(gaji);
        System.out.println("Kasus Pertama hasilnya: "+hasil1);
       
        String hasil2=hasil1.replaceAll("IDR","Rp");
        System.out.println("Kasus Kedua hasilnya: "+hasil2);

        char []c=hasil2.toCharArray();
        char []re=new char[c.length];
    for (int i=0;i
        {
            if (c[i]==',')
            {
                re[i]='.';
            }
            else if(c[i]=='.')
            {
                re[i]=',';
            }
            else
            {
                re[i]=c[i];
            }


        }
         String hasil3=String.valueOf(re);
         System.out.println("Kasus Ketiga hasilnya: "+hasil3);


       
    }
   

}

Hasilnya
Kasus Pertama hasilnya: IDR 14,500.00
Kasus Kedua hasilnya: Rp 14,500.00
Kasus Ketiga hasilnya: Rp 14.500,00

Mungkin bagi pembaca itu menjadi berbelit-belit bukan?
Ya silahkan saja coba dengan cara lainnya dan jangan lupa ‘lapor’ kesini


2 komentar:

  1. artikelnya bagus, saya ada sedikit revisi
    sepertinya di bagian for (perulangan)ada code yang terputus, berikut revisinya:
    for (int i=0;i<c.length;i++)

    terima kasih :D

    BalasHapus
  2. hee.. sama2..copy paste nya kurang sempurna..

    BalasHapus