Zend - The PHP Company




I18N

Add Code


Number into Indonesian Words  

Type: code fragment
Added by: cinoban
Entered: 27/04/2001
Last modified: 04/12/2000
Rating: - (fewer than 3 votes)
Views: 5334
This code will convert number into Indonesian words.


<?
//
// n2c.php
//
// Copyright (c) forever by Danang Suharno [cinoban@yahoo.com]
// All rights reserved - International Copyiright Secured
//
// Algorithm and Design by Danang Suharno [cinoban@yahoo.com]
// 27 April 2001 10:05AM
//
// This is my original algorithm and I have never seen this one before.
// You can use this algorithm anyway you want and I cannot give you
// any warranty or something like that.
//
// You must accept and agree then respect to the International
// Copyright Rules and Laws before modifying or using this software.
//
//
// Any Comments and Suggestions would be greatly appreciated.
//
//


//
//
//
function cMilyar$strAngka )
{

    
$nLenAngka strlen($strAngka);
    
$nHasil       floor($nLenAngka 3);
    
$nSisa     $nLenAngka - ($nHasil*3);


    if( 
$nLenAngka <= 9) return(cJutaan($strAngka));

    if( 
$nSisa == $nSisa 3;
    
$cRetVal num2char(substr($strAngka0$nSisa), 1$strAngka);
    if( 
$cRetVal == '' )
    {
        if( 
substr($strAngka0$nSisa) != '000' )
            
$cRetVal $cRetVal.'milyar ';
    }
    else
    {
        
$cRetVal $cRetVal.'milyar ';
    }

    
$cRetVal $cRetVal.cJutaan(substr($strAngkastrlen($strAngka)-99));

    return 
$cRetVal;
}



//
//
//
function cJutaan$strAngka )
{
    
$nLenAngka strlen($strAngka);
    
$nHasil       floor($nLenAngka 3);
    
$nSisa     $nLenAngka - ($nHasil*3);

    if( 
$nLenAngka <= 6) return(cRibuan($strAngka));

    if( 
$nSisa == $nSisa 3;
    
$cRetVal num2char(substr($strAngka0$nSisa), 1$strAngka);
    if( 
$cRetVal == '' )
    {
        if( 
substr($strAngka0$nSisa) != '000' )
            
$cRetVal $cRetVal.'juta ';
    }
    else
    {
        
$cRetVal $cRetVal.'juta ';
    }

    
$cRetVal $cRetVal.cRibuan(substr($strAngkastrlen($strAngka)-66));

    return 
$cRetVal;
}



//
//
//
function cRibuan$strAngka )
{
    
$nLenAngka strlen($strAngka);
    
$nHasil       floor($nLenAngka 3);
    
$nSisa     $nLenAngka - ($nHasil*3);


    if( 
$nLenAngka <= 3) return(num2char($strAngka0$strAngka));

    if( 
$nSisa == $nSisa 3;
    
$cRetVal num2char(substr($strAngka0$nSisa), 0$strAngka);
    if( 
$cRetVal == '' )
    {
        if( 
substr($strAngka0$nSisa) != '000' )
            
$cRetVal $cRetVal.'ribu ';
    }
    else
    {
        
$cRetVal $cRetVal.'ribu ';
    }

    
$cRetVal $cRetVal.num2char(substr($strAngkastrlen($strAngka)-33), 1$strAngka);

    return 
$cRetVal;
}




//
//
//
function num2char$strNumber$boolJuta$strAsli )
{
    
$acKataKata = array("""se""dua""tiga ""empat ""lima ""enam ",
                        
"tujuh ""delapan ""sembilan ");


    
$strString $strNumber;
    
$iPanjangStr 0;

    
$strKataRatus 'z';
    if( 
strlen$strString ) == )
    {
        
$nAngkaRatus intvalsubstr($strString01) );

        if( 
$nAngkaRatus == 0)
        {
            
$strRatus '';
        }
        else
        {
            
$strRatus 'ratus ';
        }

        
$strKataRatus $acKataKata[$nAngkaRatus].$strRatus;
        
$strString substr($strStringstrlen($strString)-22);
    }


    
$strKataPuluh 'z';
    
$iPanjangStr strlen($strString);
    if( 
$iPanjangStr <= )
    {
        
$nAngkaL intval(substr($strString01));
        
$nAngkaR intval(substr($strStringstrlen($strString)-11));

        if( 
$nAngkaL == 0)
        {
            
$strPuluh '';
        }
        else
        {
            
$strPuluh 'puluh ';
        }

        if( 
$nAngkaL )
        {
            if( 
$iPanjangStr == )
            {
                if( (
$nAngkaL == 1) && ($nAngkaR != 0) )
                {
                    
$strKataPuluh $acKataKata[nAngkaR].'belas ';
                }
                else
                {
                    if( 
$nAngkaR == )
                    {
                        
$strTemp 'satu ';
                    }
                    else
                    {
                        
$strTemp $acKataKata[$nAngkaR];
                    }

                    
$strKataPuluh $acKataKata[$nAngkaL].$strPuluh.$strTemp;
                }
            }
        }




        if( 
$strKataPuluh == 'z' )
        {
            if( 
$nAngkaR == )
            {
                echo 
"<br> strAsli = ".$strAsli;
                    if( (
$boolJuta == 0) && (strlen($strAsli) > 1) )
                    {
                        
$strTemp 'se';
                    }
                    else
                    {
                        
$strTemp 'satu ';
                    }
            }
            else
            {
                    
$strTemp $acKataKata[$nAngkaR];
            }

            
$strKataPuluh $strTemp;
        }

    }


    if( 
$strKataRatus != 'z' )
    {
        
$strRetVal $strKataRatus;
    }
    else
    {
        
$strRetVal '';
    }

    
$strRetVal $strRetVal.$strKataPuluh;

    return 
$strRetVal;
}




//
//
//
function n2c$nAngkaNumeric )
{
    
$stringAngka $nAngkaNumeric;
    return 
cMilyar$stringAngka )."   ".$stringAngka;
}

?>


Usage Example


$number = n2c(123456789);
echo $number;


Rate This Script





Search



This Category All Categories