Thursday, September 27, 2007

Fungsi format nilai Rupiah dengan PHP

Dengan menggunakan PHP untuk menulis angka ke dalam versi rupiah sebaiknya menggunakan fungsi tertentu. Mengapa? Kan lebih baik langsung menulis angkanya dalam bentuk rupiah. OK kalau angka tersebut ditulis di script PHP dengan hardcode (script mati) tidaklah masalah. Bagaimana kalau angka tersebut masuk database?

Lho kan gak masalah? Ntar nampilin PHPnya tinggal panggil field yang berisi nilai angka tersebut.

Kalau cuma untuk nampilin sih gak masalah tapi bagaimana kalau harus melakukan penghitungan (tambah, kurang, bagi, kali, rata-rata, dll). PHP dan Database akan menganggap nilai setelah titik ialah nol. Kecuali kalau Anda mau menulis di script PHP setiap ada titik pada field yang ditampilkan harus dihapus hehe

Alasan lainnya untuk menjaga konsistensi. Kalau datanya masih dikit mungkin bisa rapi bagaimana kalau datanya banyak dan jumlah bilangannya juga besar-besar. 1.233.932 933.223 1.000 11.323.332 Lebih mudah mana dibandingkan menulisnya gini 1233932 933223 1000 11323332 hehe.

Nah dengan membuat fungsi format rupiah sebuah bilangan di kode PHP kita tinggal menaruh nama fungsi tersebut didepan angka yang ingin kita konversi. Berikut fungsinya


function rupiah($angka)
{
$rupiah="";
$rp=strlen($angka);
while ($rp>3)
{
$rupiah = ".". substr($angka,-3). $rupiah;
$s=strlen($angka) - 3;
$angka=substr($angka,0,$s);
$rp=strlen($angka);
}
$rupiah = "Rp." . $angka . $rupiah . ",00-";
return $rupiah;
}
//Coba hasilnya
$uang = 18321739
$hasilnya=rupiah($uang);
echo $hasilnya;


Fungsi strlen berfungsi untuk menghitung jumlah karakter di suatu nilai (huruf atau angka). Sedangkan substr berfungsi untuk memunculkan nilai yang diinginkan.

Met nyoba...

5 comments:

  1. Kok repot amat..
    Coba liat lagi di dokumentasi PHP
    pake fungsi number_format.

    Kalo hasilnya pengin kayak scriptmu itu tinggal jalankan ini:

    echo "Rp.". number_format(18321739,0,"",".") . ",00-";

    ReplyDelete
  2. Hahaha bener juga bos, tapi jangan pakai ,00- melainkan ,- atau ,00 biar sesuai dengan EYD

    ReplyDelete
  3. matur nuwun sedaya kemawon

    ReplyDelete
  4. hal kecil yang bermanfaat besar meskipun cuma tampilna tp mantap gan
    S.E.M.A.N.G.A.T.

    ReplyDelete