On Friday 03 October 2003 09:54 am, NyomNyom wrote:
> Netters,
> Adakah fungsi format angka pemisah satuan dengan ribuan ? saya cari2 di
> php.net belum ketemu, apakah ada yg punya referensi ? terimakasih.
>
> nyoman

ini maksudnya gemana ?
kl cuman mo misahin yang mana satuan dan ribuan kan bisa pake fungsi substr()

tp kl misalnya mo bikin konversi angka jadi terbilang... coba dengan script 
berikut ini:

<?php
/***********************************************
* Snippet Name : KonversiRupiah *
* Email : [EMAIL PROTECTED] *
* License : GPL (General Public License) *
***********************************************/
// START KONVERSI RUPIAH CLASS
class intToRupiah {
        var $numb = Array();
        var $tail;
        var $number;
        var $currency;
        var $min;
        function intToRupiah () {
        $this->numb = Array ("",
        "SATU",
        "DUA",
        "TIGA",
        "EMPAT",
        "LIMA",
        "ENAM",
        "TUJUH",
        "DELAPAN",
        "SEMBILAN");
}
function mod($a,$b) {
        return $a-$b*floor($a/$b);
}
function setTail($str) {
        $this->tail = $str;
}
function setNumber($int) {
        $int = trim($int);
        if (is_int(strpos($int,"-"))) {
                $this->number = substr($int,strpos($int,"-")+1,strlen($int));
                $this->currency = "MINUS";
        } else {
                $this->number = $int;
        }
        $this->setAsCurrency();
}
function getCurrency() {
        return $this->currency;
}
function printCurrency() {
        print ucfirst(strtoupper(trim($this->currency)));
}
function setAsCurrency() {
        $xpos = strpos($this->number,".");
        if (is_int($xpos)) {
                $pecahan = round(substr($this->number,$xpos,strlen($this->number)),2);
                $last = substr($this->number,0,$xpos);
        } else {
                $pecahan = "";
                $last = $this->number;
        }
        if ($last==0 || $this->number==0) {
                $this->currency .= "NOL ".$this->tail;
        } else {
                $triliun = floor($last/pow(10,12));
                $last = $this->mod($last,1000000000000);

                $miliar = floor($last/pow(10,9));
                $last = $this->mod($last,1000000000);

                $juta = floor($last/pow(10,6));
                $last = $this->mod($last,1000000);

                $ribu = floor($last/pow(10,3));
                $last = $this->mod($last,1000);

                $kata = $this->ThreeDigit($triliun, "TRILIUN");
                $kata .= $this->ThreeDigit($miliar, "MILIAR");
                $kata .= $this->ThreeDigit($juta, "JUTA");
                $kata .= $this->ThreeDigit($ribu, "RIBU");
                $kata .= $this->ThreeDigit($last,"");
                $kata .= " ".$this->tail;
        }
        if ($pecahan>0) {
                $kata .= " DAN". $this->ThreeDigit(round($pecahan*100),"SEN");
        }
        $this->currency .= strtoupper($kata);
}
function ThreeDigit($amount, $suffix="") {
        $last = (int) $amount;
        $kata = "";
        if ($last == 1 && $suffix=="RIBU") {
                $kata = " SE".$suffix;
                return $kata;
        }
        if ($last < 20 && $last > 10) {
                if ($last==11) {
                        $kata = " SEBELAS";
                } else {
                        $kata = " ".$this->numb[$last-10]." BELAS";
                }
                if ($suffix != "") {
                        $kata .= " ".$suffix;
                }
                return $kata;
        }
        $ratus = floor($last/100);
        if ($ratus <= 0) {
                $kata .= "";
        } elseif ($ratus == 1) {
                $kata .= " SERATUS";
        } else {
                $kata .= " ".$this->numb[$ratus]." RATUS";
        }
        $last = $this->mod($last,100);
        if ($last < 20 && $last > 10) {
                if ($last == 11) {
                        $kata .= " SEBELAS ". $suffix;
                } else {
                        $kata .= " ".$this->numb[$last-10]." BELAS ". $suffix;
                }
                return $kata;
        }
        $puluh = floor($last/10);
        if ($puluh == 0) {
                $kata .= "";
        } elseif ($puluh == 1) {
                $kata .= " SEPULUH";
        } else {
                $kata .= " ".$this->numb[$puluh]." PULUH";
        }
        $last = $this->mod($last,10);
        if ($last>0&&$last<=9) {
                $kata .= " ".$this->numb[$last];
        }
        if ($amount>0&&$amount<=1000) {
                $kata .= " ".$suffix;
        }
        return $kata;
        }
}
// END KONVERSI RUPIAH CLASS

/* THIS LINE BELOW SHOW YOU HOW TO RUN IT
$int = $_GET["int"];
if (!isset($int)) $int = "1";
if (!isset($_GET["int"])) {
print "Jika anda tidak memasukkan sebuah query string, maka defaultnya
adalah angka '1' <br>";
print "Untuk memasukkan query string, panggilah alamat di atas dengan
tambahan huruf '?int=n'<br>";
print "dimana 'n' adalah angka yang anda inginkan.<br><br>";
print "Maximum angka adalah <a
href=\"?int=999999999999999.99\">999999999999999.99</a><br>";
print "Minimum angka adalah <a
href=\"?int=-999999999999999.99\">-999999999999999.99</a><br>";
}

if ($int>999999999999999.99||$int<-999999999999999.99) {
        print "Out of value";
} else {
        $cc = new intToRupiah;
        $cc->setTail("rupiah");
        $cc->setNumber($int);
        $cc->printCurrency();
}*/
?>

semoga membantu... :)


-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php

Kirim email ke