BTemplates.com

Diberdayakan oleh Blogger.

Pages

Pages - Menu

Popular Posts

Rabu, 05 September 2007

Membaca Bilangan Bulat dengan Visual Foxpro


&& FUNCTION BacaBilBul untuk membaca Bilangan Bulat tak negatif s/d 999,999,999,999,999
&& Contoh :
&& BacaBilbul(149)  == >  "SERATUS EMPAT PULUH SEMBILAN"
&& Fungsi Terkait : JumlahKata(), KataKeX(), Baca3Digit()

FUNCTION BacaBilBul
PARAMETERS _bil  && _bil wajib bilangan Bulat, MAX 999,999,999,999,999
IF VARTYPE(_bil)<>"N"
        _bil=0
ENDIF
_charbil=IdCur(_bil)
_charbil=STRTRAN(_charbil,"."," ")
xJumKelBil=Jumlahkata(_charbil)
_dibaca=""
DO CASE
        && 999,999,999,999,999
        CASE xJumKelBil=1
                _dibaca=Baca3Digit(_bil)
        CASE xJumKelBil=2
                _kel1=VAL(katakex(_charbil,1))
                _kel2=VAL(katakex(_charbil,2))
                _CikalR=Baca3Digit(_kel1)
                _CikalS=Baca3Digit(_kel2)
                IF _kel1>0
                        IF _kel1=1
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+"SERIBU"
                        ELSE
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalR+" RIBU"
                        ENDIF
                ENDIF
                IF _kel2>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalS
                ENDIF
        CASE xJumKelBil=3
                _kel1=VAL(katakex(_charbil,1))
                _kel2=VAL(katakex(_charbil,2))
                _kel3=VAL(katakex(_charbil,3))
                _CikalJ=Baca3Digit(_kel1)
                _CikalR=Baca3Digit(_kel2)
                _CikalS=Baca3Digit(_kel3)
                IF _kel1>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalJ+" JUTA"
                ENDIF
                IF _kel2>0
                        IF _kel2=1
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+"SERIBU"
                        ELSE
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalR+" RIBU"
                        ENDIF
                ENDIF
                IF _kel3>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalS
                ENDIF
        CASE xJumKelBil=4
                _kel1=VAL(katakex(_charbil,1))
                _kel2=VAL(katakex(_charbil,2))
                _kel3=VAL(katakex(_charbil,3))
                _kel4=VAL(katakex(_charbil,4))
                _CikalM=Baca3Digit(_kel1)
                _CikalJ=Baca3Digit(_kel2)
                _CikalR=Baca3Digit(_kel3)
                _CikalS=Baca3Digit(_kel4)
                IF _kel1>0
                        _dibaca=_CikalM+" MILIAR"
                ENDIF
                IF _kel2>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalJ+" JUTA"
                ENDIF
                IF _kel3>0
                        IF _kel3=1
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+"SERIBU"
                        ELSE
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalR+" RIBU"
                        ENDIF
                ENDIF
                IF _kel4>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalS
                ENDIF
        CASE xJumKelBil=5
                _kel1=VAL(katakex(_charbil,1))
                _kel2=VAL(katakex(_charbil,2))
                _kel3=VAL(katakex(_charbil,3))
                _kel4=VAL(katakex(_charbil,4))
                _kel5=VAL(katakex(_charbil,5))
                _CikalT=Baca3Digit(_kel1)
                _CikalM=Baca3Digit(_kel2)
                _CikalJ=Baca3Digit(_kel3)
                _CikalR=Baca3Digit(_kel4)
                _CikalS=Baca3Digit(_kel5)
                IF _kel1>0
                        _dibaca=_CikalT+" TRILIUN"
                ENDIF
                IF _kel2>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalM+" MILIAR"
                ENDIF
                IF _kel3>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalJ+" JUTA"
                ENDIF
                IF _kel4>0
                        IF _kel4=1
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+"SERIBU"
                        ELSE
                                _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalR+" RIBU"
                        ENDIF
                ENDIF
                IF _kel5>0
                        _dibaca=_dibaca+IIF(!EMPTY(_dibaca)," ","")+_CikalS
                ENDIF
ENDCASE
RETURN ALLTRIM(_dibaca)

0 komentar:

Posting Komentar