TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


 photo 300x250_zpsff09f9e7.gif
Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP

Ide Dibalik Pembuatan Script Membilang Bilangan


May 10th, 2009 | by rosihanari | Cetak Artikel Cetak Artikel

GampSMS SMS Gateway

Bagaimana sih cara membuat script untuk membilang suatu bilangan? Jika kita punya suatu bilangan misalkan ’1901′ maka script akan menghasilkan output ‘seribu sembilan ratus satu’. Demikian pertanyaan yang pernah diajukan oleh salah satu pengunjung setia blog ini.

Bila membaca pertanyaan di atas, saya teringat waktu kuliah dulu dimana pertanyaan yang sama pernah diberikan oleh dosen atau guru saya. He.. 3x.. maksud saya tugas kuliah.. Butuh waktu berhari-hari untuk memikirkan ide dalam membuat scriptnya, sampai-sampai tidak sempat tidur. Ah… gak usah dilanjutin deh, ntar ketahuan kalo mendramatisir :-)

OK.. dalam artikel ini saya coba membahas bagaimana ide dalam membuat script untuk membilang suatu bilangan.

Ide utama dari pembuatan script untuk membilang bilangan ini adalah terlebih dahulu kita bagi-bagi bilangannya ke dalam kelompok 3 digit (ribuan) seperti halnya format bilangan dalam mata uang.

Misalkan kita memiliki bilangan ’1234567890′, maka kita bagi terlebih dahulu menjadi ’1.234.567.890′. Dari contoh ini kita mendapatkan 4 kelompok ribuan, yaitu ’1′, ’234′, ’567′ dan ’890′, yang selanjutnya untuk setiap kelompok kita beri nomor urut kelompok, misalkan: kelompok 1 berisi ’1′, kelompok 2 berisi ’234′, kelompok 3 berisi ’567′ dan kelompok 4 berisi ’890′.

Nah.. selanjutnya kita nyatakan setiap kelompok tersebut ke dalam kalimat. Jika kelompok ribuan tersebut terletak pada urutan ke 1 dari 4 kelompok ribuan yang ada, maka nanti berbentuk … ‘milyar’ di mana ‘…’ adalah terbilang dari bilangan pada kelompok tersebut. Jika kelompok ribuan terletak pada urutan ke 2 dari 4 kelompok ribuan yang ada, maka nanti berbentuk … ‘juta’ dst. Sehingga dari contoh di atas, diharapkan akan diperoleh format terbilang: ‘… milyar … juta … ribu …’

Konsep di atas bisa kita kembangkan sampai dengan tingkat ‘trilyun’. Bila kita kembangkan dalam tingkat trilyun, maka nantinya terdapat 5 kelompok ribuan. Jika kelompok ribuan terletak pada urutan ke-1 dari 5 kelompok yang ada, maka akan berbentuk … ‘trilyun’. Jika kelompok ribuan terletak pada urutan ke-2 dari 5, maka berbentuk … ‘milyar’, urutan ke-3 dari 5 akan berbentuk … ‘juta’, dst.

Setelah kita dapatkan format terbilang untuk masing-masing kelompok, langkah berikutnya kita terjemahkan semua bilangan yang ada di setiap kelompok. Seperti pada contoh di atas, kita terjemahkan bilangan yang ada di kelompok ke-1 yaitu ’1′ menjadi ‘satu’. Kelompok ke-2 yaitu ’234′ menjadi ‘dua ratus tiga puluh empat’. Kelompok ke-3 yaitu ’567′ menjadi ‘lima ratus enam puluh tujuh’, serta kelompok ke-4 yaitu ’890′ menjadi ‘delapan ratus sembilan puluh’

Dengan menggabung kedua langkah di atas maka akan diperoleh hasil terbilang : ‘satu milyar dua ratus tiga puluh empat juta lima ratus enam puluh tujuh ribu delapan ratus sembilan puluh’.

Nah… implementasi dari konsep di atas akan diperoleh script berikut ini (script ditulis dalam PHP)

terbilang.php

<?php

function bilangRatusan($x)
{
   // function untuk membilang bilangan pada setiap kelompok

   $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 "; // membentuk kata '... ratus'
   else if ($ratusan == 1) $string .= "seratus "; // membentuk kata khusus 'seratus '

   $puluhan = floor($x/10);
   $x = $x % 10;
   if ($puluhan > 1)
   {
      $string .= $kata[$puluhan]."puluh "; // membentuk kata '... puluh'
      $string .= $kata[$x]; // membentuk kata untuk satuan
   }
   else if (($puluhan == 1) && ($x > 0)) $string .= $kata[$x]."belas "; // kejadian khusus untuk bilangan yang berbentuk kata '... belas'
   else if (($puluhan == 1) && ($x == 0)) $string .= $kata[$x]."sepuluh "; // kejadian khusus untuk bilangan 10
   else if ($puluhan == 0) $string .= $kata[$x];	 // membentuk kata untuk satuan	

   return $string;
}

function terbilang($x)
{
// membentuk format bilangan XXX.XXX.XXX.XXX.XXX
$x = number_format($x, 0, "", ".");

// memecah kelompok ribuan berdasarkan tanda '.'
$pecah = explode(".", $x);

$string = "";

// membentuk format terbilang '... trilyun ... milyar ... juta ... ribu ...'
for($i = 0; $i <= count($pecah)-1; $i++)
{
   if ((count($pecah) - $i == 5) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."triliyun "; // membentuk kata '... trilyun'
   else if ((count($pecah) - $i == 4) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."milyar "; // membentuk kata '... milyar'
   else if ((count($pecah) - $i == 3) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."juta "; // membentuk kata '... juta'
   else if ((count($pecah) - $i == 2) && ($pecah[$i] == 1)) $string .= "seribu "; // kejadian khusus untuk bilangan dalam format 1XXX (yang mengandung kata 'seribu')
   else if ((count($pecah) - $i == 2) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i])."ribu "; // membentuk kata '... ribu'
   else if ((count($pecah) - $i == 1) && ($pecah[$i] != 0)) $string .= bilangRatusan($pecah[$i]);
}

return $string;
}

?>

Selanjutnya bagaimana cara menggunakan script di atas? ya… tinggal kita includekan script di atas lalu panggil function terbilang(). Berikut ini contohnya:

<?php
include "terbilang.php";

$bil = 10001901;
echo terbilang($bil); // akan menghasilkan 'sepuluh juta seribu sembilan ratus satu'
?>

[ Download Script ]

Bila Anda menemukan sebuah ‘bug’ atau kelemahan script di atas bisa kita diskusikan melalui komentar di bawah ini. Semoga bermanfaat.


Baca Juga Artikel Terkait
Rahasia Dibalik Cara Pembuatan Program Tebak Angka
Memformat Bilangan dengan Function number_format()
Membuat Program Konversi Bilangan Desimal ke Biner dengan Pascal
Ide Membuat Program Mengecek Bilangan Prima
Mengatur Digit Desimal Bilangan Real di PHP


 photo 300x250_zpsff09f9e7.gif
Slot iklan tersedia, pasang iklan di atas


Kata kunci: bilangan - PHP - script -


Ada 22 komentar dalam artikel ini.



  1. wahid says:

    dan bagaimana kalo bilangan kita bukan lebih dari 11 digit pak..? misalnya 200.000.000.000?

  2. Johny says:

    pa, bagaimana jika ada desimalnya misalkan 100.27

    • rosihanari says:

      @johny: konsepnya mudah mas, caranya anda pecah dulu angkanya berdasarkan tanda titik (.) nya, untuk mendapatkan angka di sebelah kiri titik dan di sebelah kanan titik. Untuk kedua angka tersebut tuliskan terbilangnya dengan function di atas. Jangan lupa sisipkan kata ‘koma’ di antara dua kalimat terbilangnya.



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*