20 May 2010

Membilang Bilangan dengan PHP

Suadah lama rasanya saya tidak meng update blog ini, karena ada kesibukan yang harus saya lakukan... hehehe (so sibuk). Bulan kemarin di saat saya bermain ke tempat teman yang kebetulan dia seorang akunting, saya di tantang untuk menyelesaikan script kode Pembilang Bilangan dengan program php. Dengan tanpa pikir panjang saya mengiyakan tawaran tersebut, walaupun saya belum tahu logika dari permasalahan tersebut.
Tanpa menggu lama saya langsung googling di guru besar saya dalam bidang informasih yaitu Pak Dosen Google, melalui Asistennya Pak Rosihan Ari. Di dalam blog beliau saya menemukan tutorial Membilang Bilangan yang sangat saya butuhkan untuk memenangkan tantangan ini. Tetapi ternyata tidak berjalan dengan mulus karena script yang saya dapatkan dari blog tersebut belum sempurna seratus persen.
Kenapa belum sempurna...? karena setiap membilang bilangan 11 (sebelas) menjadi satu belas pembilangnya.
O iya sudah pahamkan maksud judul di atas yaitu Membilang bilangan..? membilamg bilangan adalah mengkonfersi angka menjadi tulisan contoh: Bilangan Rp. 111.111 jika di konversi menjadi huruf akan menjadi Seratus Sebelas Ribu Seratus Sebelas Rupiah. ini definisi ini menurut saya lho dan saya mohon maaf jika ada kesalahan di dalamnya...
Langsung aja saya tulis kan scriptnya di bawa ini dan jika ingin penjelasan lebih lanjut silahkan saj ke http://blog.rosihanari.net scriptnya lebih kurang seperti ini:
Scrip Pemrosesnya
<?php

function bilangRatusan($x)

  {

  $kata = array('', 'Satu ', 'Dua ', 'Tiga ' , 'Empat ', 'Lima ', 'Enam ', 'Tujuh ', 'Delapan ', 'Sembilan ');

 

  $string = '';

 

  $ratusan = floor($x/100);

  $x = $x % 100;

  if ($ratusan > 1) $string .= $kata[$ratusan]."Ratus ";

  else if ($ratusan == 1) $string .= "Seratus ";

$puluhan = floor($x/10);

  $x = $x % 10;

  if ($puluhan > 1)

  {

  $string .= $kata[$puluhan]."Puluh ";

  $string .= $kata[$x];

  }

 

  else if (($puluhan == 1) && ($x == 0)) $string .= $kata[$x]."Sepuluh ";

  else if ($puluhan == 1) $string .= "Sebelas ";

  else if (($puluhan == 1) && ($x > 0)) $string .= $kata[$x]."Belas ";

  else if ($puluhan == 0) $string .= $kata[$x];

  return $string;

  }

function terbilang($x)

  {

  $x = number_format($x, 0, "", ".");

  $pecah = explode(".", $x);

$string = "";

for($i = 0; $i <= count($pecah)-1; $i++)

  {

  if ((count($pecah) - $i == 5) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."Triliyun ";

  else if ((count($pecah) - $i == 4) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."Milyar ";

  else if ((count($pecah) - $i == 3) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."Juta ";

  else if ((count($pecah) - $i == 2) && ($pecah[$i] == 1)) $string .= "Seribu ";

  else if ((count($pecah) - $i == 2) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."Ribu ";

  else if ((count($pecah) - $i == 1) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i]);

  }

return $string;

  }

?>

Dan untuk implementasi script tersebut sebagai berikut:
<?php

  include "terbilang.php";

 

  $bil = 11121311411;

  echo terbilang($bil);

  echo "Rupiah";

?>

demikian yang say informasikan untuk kita semua mudah-mudahan bermanfaat, jika males untuk menulis scripnya silahkan download di sini. Jangan Bosen-bosen ya Mampir di blog ini... selanjutnya akan saya bahas tentang pengerjaan Proyel Pembuatan blog www.sirrulasror.com.

2 comments:

  1. Scriptnya berguna sekali, saia sudah coba. Ada sedikit bug di bagian ini :

    else if ($puluhan == 1) $string .= "Sebelas ";

    bisa dikoreksi menjadi :

    else if (($puluhan == 1) && ($x == 1)) $string .= "Sebelas ";

    supaya 2 digit paling belakang misalnya 12 atw 12 tidak selalu diucapkan "sebelas" . CMIIW :D

    ReplyDelete

Silahkan ketik kritik dan saran sahabat untuk saya di sini.