BTemplates.com

Diberdayakan oleh Blogger.

Pages

Pages - Menu

Popular Posts

Tampilkan postingan dengan label Membaca Bilangan Bulat. Tampilkan semua postingan
Tampilkan postingan dengan label Membaca Bilangan Bulat. Tampilkan semua postingan

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)