Fungsi terbilang biasa gunakan untuk mencetak pada kwitansi atau nota, berikut ini adalah contoh dalam C#.
Ini adalah contoh fungsinya :
string Terbilang(Decimal d)
{
bool minus = false;
if (d < 0)
{
d = d * -1;
minus = true;
}
string[] satuan = new string[10] { "nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan" };
string[] belasan = new string[10] { "sepuluh", "sebelas", "dua belas", "tiga belas", "empat belas", "lima belas", "enam belas", "tujuh belas", "delapan belas", "sembilan belas" };
string[] puluhan = new string[10] { "", "", "dua puluh", "tiga puluh", "empat puluh", "lima puluh", "enam puluh", "tujuh puluh", "delapan puluh", "sembilan puluh" };
string[] ribuan = new string[5] { "", "ribu", "juta", "milyar", "triliyun" };
string strHasil = "";
Decimal frac = d - Decimal.Truncate(d);
if (Decimal.Compare(frac, 0.0m) != 0)
strHasil = Terbilang(Decimal.Round(frac * 100)) + " sen";
else
strHasil = "rupiah";
int xDigit = 0;
int xPosisi = 0;
string strTemp = Decimal.Truncate(d).ToString();
for (int i = strTemp.Length; i > 0; i--)
{
string tmpx = "";
xDigit = Convert.ToInt32(strTemp.Substring(i - 1, 1));
xPosisi = (strTemp.Length - i) + 1;
switch (xPosisi % 3)
{
case 1:
bool allNull = false;
if (i == 1)
tmpx = satuan[xDigit] + " ";
else if (strTemp.Substring(i - 2, 1) == "1")
tmpx = belasan[xDigit] + " ";
else if (xDigit > 0)
tmpx = satuan[xDigit] + " ";
else
{
allNull = true;
if (i > 1)
if (strTemp.Substring(i - 2, 1) != "0")
allNull = false;
if (i > 2)
if (strTemp.Substring(i - 3, 1) != "0")
allNull = false;
tmpx = "";
}
if ((!allNull) && (xPosisi > 1))
if ((strTemp.Length == 4) && (strTemp.Substring(0, 1) == "1"))
tmpx = "se" + ribuan[(int)Decimal.Round(xPosisi / 3m)] + " ";
else
tmpx = tmpx + ribuan[(int)Decimal.Round(xPosisi / 3)] + " ";
strHasil = tmpx + strHasil;
break;
case 2:
if (xDigit > 0)
strHasil = puluhan[xDigit] + " " + strHasil;
break;
case 0:
if (xDigit > 0)
if (xDigit == 1)
strHasil = "seratus " + strHasil;
else
strHasil = satuan[xDigit] + " ratus " + strHasil;
break;
}
}
strHasil = strHasil.Trim().ToLower();
if (strHasil.Length > 0)
{
strHasil = strHasil.Substring(0, 1).ToUpper() +
strHasil.Substring(1, strHasil.Length - 1);
}
if (minus)
{
strHasil = "Minus " + strHasil;
}
return strHasil;
}
sedangkan untuk memanggil fungsi tersebut bisa menggunakan.
misal kita akan mengisi label dan label itu idnya adalah lblTerbilang
maka kita tinggal memanggil
lblTerbilang.Text=Terbilang(nilai yang akan dikonvert);
//misal 5980
lblTerbilang.Text=Terbilang(5980);
Sekian terima kasih
semoga artikel ini berguna buat sobat-sobat yang masih belajar.
Sangat membantu.. Terimaksih.. terus maju
ReplyDeleteTerima kasih pak Agus..
ReplyDelete