Terbilang

Berikut adalah sebuah fungsi PHP yang menerima suatu angka dan memberikan bentuk terbilang dalam bahasa Indonesia dari angka tersebut:


<?php
/**
* Indonesian number speller (PHP 4 or greater)
*
* @param string $number a string representing a positive, integral number with 15 digits or less
* @return string|false the spelled out number in Indonesian, or false if the number is invalid
* @author {@link http://www.lesantoso.com Lucky E. Santoso} <lesantoso@yahoo.com>
* @copyright Copyright (c) 2006 Lucky E. Santoso
* @license http://opensource.org/licenses/gpl-license.php The GNU General Public License (GPL)
*/  
function spellNumberInIndonesian ($number) {
	$number = strval($number);
	if (!ereg("^[0-9]{1,15}$", $number)) 
		return(false); 
	$ones = array("", "satu", "dua", "tiga", "empat", 
		"lima", "enam", "tujuh", "delapan", "sembilan");
	$majorUnits = array("", "ribu", "juta", "milyar", "trilyun");
	$minorUnits = array("", "puluh", "ratus");
	$result = "";
	$isAnyMajorUnit = false;
	$length = strlen($number);
	for ($i = 0, $pos = $length - 1; $i < $length; $i++, $pos--) {
		if ($number{$i} != '0') {
			if ($number{$i} != '1')
				$result .= $ones[$number{$i}].' '.$minorUnits[$pos % 3].' ';
			else if ($pos % 3 == 1 && $number{$i + 1} != '0') {
				if ($number{$i + 1} == '1') 
					$result .= "sebelas "; 
				else 
					$result .= $ones[$number{$i + 1}]." belas ";
				$i++; $pos--;
			} else if ($pos % 3 != 0)
				$result .= "se".$minorUnits[$pos % 3].' ';
			else if ($pos == 3 && !$isAnyMajorUnit)
				$result .= "se";
			else
				$result .= "satu ";
			$isAnyMajorUnit = true;
		}
		if ($pos % 3 == 0 && $isAnyMajorUnit) {
			$result .= $majorUnits[$pos / 3].' ';
			$isAnyMajorUnit = false;
		}
	}
	$result = trim($result);
	if ($result == "") $result = "nol";
	return($result);
}
?>

See also: Indonesian Numbers (memakai fungsi ini)

6 Comments to “Terbilang”

  1. firman Says:

    cool, usefull function, sepintas adaptasi dari english, but there’s big different between do it and not do it. Sekali lagi top deh buat Mr. Luke ini :)

  2. Andang Prananindya Says:

    Toooppppp abiiisssss!!!!
    Toppppppp tenaaaannn !!!!
    Pokokeeee Top !!!!!!

    Salut buat Koh Lucky . . . . atas sharing ilmunya . .

    Kapan kita maen “Duke Nukem” online lageeee ????????

  3. Eddy Says:

    Harigato gozaimas.

    Kalo buat konversi numeric ke angka romawi bagai mana ya ???

  4. Lucky E. Santoso Says:

    kode konversi angka arab ke romawi sudah banyak tersedia gratis, mis.
    http://www.phpclasses.org/browse/package/2442.html

  5. Dirgantoro M Says:

    Ada project butuh membaca terbilang, terus iseng googling dengan keyword ‘php number speller’, ada link dapet dari softpedia, dibuka kodingannya, eh kok ada nama indonesia gitu, terus di buka website mas, eh uda ada yg bahasa indonesia.

    Bro! Thx 4 sharing ya!! Gk perlu repot lagi gw kalo gini! Skali lagi thx berat!!

  6. allevia Says:

    Aku nggak begitu ngerti tentang PHP, tapi fungsi PHP yang menerima suatu angka dan memberikan bentuk terbilang dalam bahasa Indonesia dari angka tersebut sangat menarik.

    Mungkin bisa sharing informasi dengan aku, karena aku tertarik banget dengan permasalahan tersebut. Makasih sebelumnya

Leave a Comment

Security Code: