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