Sering sekali dalam pembuatan program, terutama program berhaluan bisnis, program harus melafalkan nilai nominal uang dalam bentuk kata – kata.
untuk itu, postingan kali ini saya coba untuk menuliskan sebuah fungsi terbilang yang akan mengubah nilai nominal uang menjadi kata – kata.
berikut ini fungsinya, (ditulis dengan menggunakan C++, dengan teknik rekursif):
void terbilang(long n, char *str) {
if(n < 10)
strcat(str, kata[n]);
else if(n >= 1000000000) {
terbilang(n / 1000000000, str);
strcat(str, " milyar ");
terbilang(n % 1000000000, str);
}
else if(n >= 1000000) {
terbilang(n / 1000000, str);
strcat(str, " juta ");
terbilang(n % 1000000, str);
}
else if(n >= 1000) {
if(n / 1000 == 1) {
strcat(str, "seribu ");
terbilang(n % 1000, str);
}
else {
terbilang(n / 1000, str);
strcat(str, " ribu ");
terbilang(n % 1000, str);
}
}
else if(n >= 100) {
if(n / 100 == 1) {
strcat(str, "seratus ");
terbilang(n % 100, str);
}
else {
terbilang(n / 100, str);
strcat(str, " ratus ");
terbilang(n % 100, str);
}
}
else if(n >= 10) {
if(n == 10)
strcat(str, "sepuluh");
else if(n == 11)
strcat(str, "sebelas");
else if(n >= 20) {
terbilang(n / 10, str);
strcat(str, " puluh ");
terbilang(n % 10, str);
}
else {
terbilang(n % 10, str);
strcat(str, " belas");
}
}
silahkan bertanya jika ada yang tidak dipahami.
Rgds
Adi
4 komentar:
cuma sampai miliar y pak ?
sampai trilyun bisa gk pak ?
tinggal ditingkatkan aj. tambahkan lagi 3 nol.
and it's done.
apa beda var *str dengan var biasa str, sir?
permisi pak,..mau tanya,...
maksud dari
"ditulis dengan teknik rekursif"
itu apa y?
lalu maksud dari "terbilang" itu "pritnf"
tp apa maksud dari "strcat" ?
terima kasih
Posting Komentar