untuk mendapatkan format tulisan / teks dari format rupiah kita dapat memakai fungsi formatTerbilang dibawah ini :
<?php
function terbilang($bilangan) {
$angka = array('0','0','0','0','0','0','0','0','0','0',
'0','0','0','0','0','0');
$kata = array('','satu','dua','tiga','empat','lima',
'enam','tujuh','delapan','sembilan');
$tingkat = array('','ribu','juta','milyar','triliun');
$panjang_bilangan = strlen($bilangan);
/* pengujian panjang bilangan */
if ($panjang_bilangan > 15) {
$kalimat = "Diluar Batas";
return $kalimat;
}
/* mengambil angka-angka yang ada dalam bilangan,
dimasukkan ke dalam array */
for ($i = 1; $i <= $panjang_bilangan; $i++) {
$angka[$i] = substr($bilangan,-($i),1);
}
$i = 1;
$j = 0;
$kalimat = "";
/* mulai proses iterasi terhadap array angka */
while ($i <= $panjang_bilangan) {
$subkalimat = "";
$kata1 = "";
$kata2 = "";
$kata3 = "";
/* untuk ratusan */
if ($angka[$i+2] != "0") {
if ($angka[$i+2] == "1") {
$kata1 = "seratus";
} else {
$kata1 = $kata[$angka[$i+2]] . " ratus";
}
}
/* untuk puluhan atau belasan */
if ($angka[$i+1] != "0") {
if ($angka[$i+1] == "1") {
if ($angka[$i] == "0") {
$kata2 = "sepuluh";
} elseif ($angka[$i] == "1") {
$kata2 = "sebelas";
} else {
$kata2 = $kata[$angka[$i]] . " belas";
}
} else {
$kata2 = $kata[$angka[$i+1]] . " puluh";
}
}
/* untuk satuan */
if ($angka[$i] != "0") {
if ($angka[$i+1] != "1") {
$kata3 = $kata[$angka[$i]];
}
}
/* pengujian angka apakah tidak nol semua,
lalu ditambahkan tingkat */
if (($angka[$i] != "0") OR ($angka[$i+1] != "0") OR
($angka[$i+2] != "0")) {
$subkalimat = "$kata1 $kata2 $kata3 " . $tingkat[$j] . " ";
}
/* gabungkan variabe sub kalimat (untuk satu blok 3 angka)
ke variabel kalimat */
$kalimat = $subkalimat . $kalimat;
$i = $i + 3;
$j = $j + 1;
}
/* mengganti satu ribu jadi seribu jika diperlukan */
if (($angka[5] == "0") AND ($angka[6] == "0")) {
$kalimat = str_replace("satu ribu","seribu",$kalimat);
}
return trim($kalimat);
}
?>
Subscribe to:
Post Comments (Atom)
salam kenal mas...
ReplyDeletemas kalo membuat format terbilan dalam java bagaimana mas?
kalau tidak merepotkan tolong email kan ke saya ya mas..
putra.akbar05@gmail.com