Membuat aplikasi, tentu tidak nganu klo tidak tentang Uang. Pada post kali ini kita akan membahas bagaimana cara melakukan convert angka (10000) menjadi format uang (Rp. 10.000) tentu saja menggunakan bahasa kotlin dan mudah digunakan.
Berikut Code Extension yang bisa kamu gunakan
fun Number?.toRupiahFormat(
useCurrencySymbol: Boolean = true,
short: Boolean = false,
shortLong: Boolean = false,
usePrefix: Boolean = true,
): String {
if (this == null) {
if (useCurrencySymbol) {
return "Rp "
}
return ""
}
val formatRupiah = NumberFormat.getCurrencyInstance(Locale("id", "ID"))
val formattedValue = if (short) {
val value = this.toDouble()
when {
value >= 1000000000 -> String.format(
"Rp %.2f ${if (usePrefix) "M" else ""}", value / 1000000000
)
value >= 1000000 -> String.format(
"Rp %.2f ${
if (usePrefix) {
if (!shortLong) "jt" else "Juta"
} else ""
}", value / 1000000
)
value >= 1000 -> String.format(
"Rp %.2f ${
if (usePrefix) {
if (!shortLong) "rb" else "Ribu"
} else ""
}", value / 1000
)
else -> formatRupiah.format(this).replace(",00", "").replace("Rp", "Rp ")
}
} else {
formatRupiah.format(this).replace(",00", "").replace("Rp", "Rp ")
}
return if (!useCurrencySymbol) formattedValue.replace("Rp ", "") else formattedValue
}
Note :
- Parameter useCurrencySymbol digunakan jika Anda ingin menampilkan symbol Rp.
- Parameter short, shortLong dan usePrefix digunakan jika Anda ingin mempersingkat atau tidak mengenail nominal misalnya 1 jt atau 1 juta. Sedangkan usePrefix digunakan untuk symbolnya saja (jt atau juta)
Untuk menggunakan ektension ini, kamu cukup menggunakannya seperti ini (jika parameter default) :
nilai.toRupiahFormat()
Note :
nilai adalah variable number misalnya double, integer dll
Semoga bermanfaat.