Advertisement
jamboljack

Terbilang Koma

Dec 9th, 2014
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.01 KB | None | 0 0
  1. <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. function terbilangkoma($nilai, $digitKoma = 4) {
  4.     $bil = Array();
  5.         $bil['n'] = 'se';
  6.         $bil['0'] = '';
  7.         $bil['1'] = 'satu ';
  8.         $bil['2'] = 'dua ';
  9.         $bil['3'] = 'tiga ';
  10.         $bil['4'] = 'empat ';
  11.         $bil['5'] = 'lima ';
  12.         $bil['6'] = 'enam ';
  13.         $bil['7'] = 'tujuh ';
  14.         $bil['8'] = 'delapan ';
  15.         $bil['9'] = 'sembilan ';
  16.          
  17.     $bilGroup = Array();
  18.         $bilGroup[3] = '';
  19.         $bilGroup[6] = 'ribu ';
  20.         $bilGroup[9] = 'juta ';
  21.         $bilGroup[12] = 'miliyar ';
  22.         $bilGroup[15] = 'triliun ';
  23.         $ratus = 'ratus ';
  24.         $puluh = 'puluh ';
  25.         $belas = 'belas ';
  26.        
  27.         $nilai = (string) number_format($nilai, $digitKoma, ".", '');
  28.         $out2 = '';
  29.         $pisah = explode('.', $nilai);
  30.         $pisahByComa = $pisah[0];
  31.         $tigaDigit = str_split(strrev($pisahByComa), 3);
  32.  
  33.         $proc = 0;
  34.         $out = '';
  35.         foreach ($tigaDigit as $k => $angka) {
  36.             $proc += 3;
  37.             $perAngka = str_split($angka);
  38.             $ratusan = '';
  39.  
  40.         foreach ($perAngka as $n => $a) {
  41.             $satuAngka = $perAngka[$n];
  42.  
  43.         if ($n < 1) {
  44.             if ($satuAngka == '1' && isset($perAngka[$n+1]) && $perAngka[$n+1] == '1') $satuAngka = 'n';
  45.             $ratusan = $bil[$satuAngka] . (($satuAngka != '0' && isset($perAngka[$n+1]) && $perAngka[$n+1] == '1') ? $belas : '') . $ratusan;
  46.             } else if ($n < 2) {
  47.                 if ($satuAngka == '1') $satuAngka = 'n';
  48.                     if ($satuAngka == 'n' && $perAngka[$n-1] != '0') $satuAngka = '0'; $ratusan = $bil[$satuAngka] . ($satuAngka != '0' ? $puluh : '') . $ratusan;
  49.                     } else if ($n < 3) {
  50.                         if ($satuAngka == '1') $satuAngka = 'n';
  51.                             $ratusan = $bil[$satuAngka] . $ratus . $ratusan;
  52.                         } else {
  53.                             $ratusan .= '';
  54.                         }
  55.                     }
  56.  
  57.             $out = $ratusan . $bilGroup[$proc] . $out;
  58.         }
  59.        
  60.         $coma = $pisah[1];
  61.         $out2 = '';
  62.        
  63.         foreach (str_split($coma) as $n => $a) {
  64.             $out2 .= ($a == '0') ? 'nol ' : $bil[$a]; }
  65.  
  66. return $out. 'koma '.$out2;
  67. }
  68. /* Location: ./application/helpers/terbilangkoma_helper.php */
  69. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement