Menulis format Rupiah di Android


APA kabar ODOA? Sudah berapa hari kamu tidak mengisi blog ini demi ODOA? Duh memalukan. Baiklah, demi menambal semangat ODOA yang sudah bolong-bolong, mari kita isi lagi blog ini dengan sesuatu yang berfaedah: Menulis format rupiah di Android.

Jadi begini. Di Android -atau mungkin Java pada umumnya- format uang (currency) Rupiah tidak dikenal. Sedemikian sehingga kita tidak bisa menggunakan perintah berikut:

“`NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.Default); currencyFormat.format(20000);“`

Salah-salah, yang keluar malah format Dolar AS ($). Lalu bagaimana agar kita bisa menampilkan format Rupiah? Untung ada google. Setelah googling sebentar, ternyata ada solusinya. Menurut bapak (atau ibu?) Arby, begini caranya:

“`DecimalFormat kursIndonesia = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();

formatRp.setCurrencySymbol(“Rp. “);
formatRp.setMonetaryDecimalSeparator(‘,’);
formatRp.setGroupingSeparator(‘.’);

kursIndonesia.setDecimalFormatSymbols(formatRp);
System.out.printf(“Harga Rupiah: %s %n”, kursIndonesia.format(harga));

“`

Sayang beribu sayang, ternyata formatnya tidak sesuai harapan. Karena separator titik tidak berguna. Lalu bagaimana agar kita menggunakan titik sebagai pemisah ribuan? Menurut referensi ini, yang harus diubah adalah bagian “`setMonetaryGroupingSeparator“` . Jadinya seperti ini:

“`DecimalFormat kursIdr = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
formatRp.setCurrencySymbol(“Rp”);
formatRp.setMonetaryDecimalSeparator(‘,’);
formatRp.setMonetaryGroupingSeparator(‘.’);
kursIdr.setDecimalFormatSymbols(formatRp);“`

Cara penggunaannya seperti ini:

“`//misal hasil premi berbentuk string
String premi = “000001720500”;
txtPremi.setText(kursIdr.format(Long.valueOf(premi)));“`

Nanti penampakannya seperti ini:

rupiah

Ya sudah sekian saja. Wassalam. Salam ODOA!


Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.