Fungsi Terbilang (Clipper)

Pada form kuitansi selalu ada isian terbilang yang menyatakan jumlah uang dalam bentuk tulisan atau huruf. Contohnya, Rp. 1.750.000,- ditulis menjadi satu juta tujuhratus limapuluh ribu rupiah. Bagaimana melakukannya secara otomatis pada program aplikasi?

Silahkan simak source code berikut ini yang merupakan fungsi untuk menerjemahkan angka ke tulisan.

Semoga bermanfaat.

Function Terbilang(Nilai)
	Local Angka:={ "", "Satu", "Dua", "Tiga", "Empat", "Lima",;
		"Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh",;
		"Sebelas","Duabelas", "Tigabelas","Empatbelas",;
		"Limabelas", "Enambelas", "Tujuhbelas", "Delapanbelas",;
		"Sembilanbelas"}
	Local Kata   := ""
	Local S      := Str(Nilai,15,2)
	Local One    := 1
	Local Two    := 2
	Local Three  := 3
	Local Hitung := 1
	Local Satu, Dua, Tiga, Gabung, Belas
	Local Sen, Sen1, Sen2

	if Nilai==0
		return Nil
	endif

	do while Hitung < 5 Satu:=Subs(S,One,1) Dua :=Subs(S,Two,1) Tiga:=Subs(S,Three,1) Gabung:=Satu+Dua+Tiga If val(Satu)==1 Kata:=Kata+"Seratus " elseIf val(Satu) > 1
			Kata:=Kata+Angka[&Satu+1]+"ratus "
		endif

		If Val(Dua)==1
			Belas:=Dua+Tiga
			Kata:=Kata+Angka[&Belas+1]
		ElseIf Val(Dua) > 1
			Kata:=Kata+Angka[&Dua+1]+"puluh "+Angka[&Tiga+1]
		ElseIf Val(Dua)==0 .and. Val(Tiga) > 0
			If ( Hitung==3 .and. Gabung=="001" ) .or. ( Hitung==3 .and. Gabung=="  1" )
				Kata:=Kata+"Seribu "
			Else
				Kata:=Kata+Angka[&Tiga+1]
			Endif
		Endif

		If Hitung==1 .and. Val(Gabung) > 0
			Kata:=Kata+"milyar "
		Elseif Hitung==2 .and. Val(Gabung) > 0
			Kata:=Kata+"juta "
		ElseIf Hitung==3 .and. val(gabung) > 0
			if Gabung=="001" .or. Gabung=="  1"
				Kata:=Kata+""
			else
				Kata:=Kata+"ribu "
			endif
		endif

		Hitung++
		One:=One+3
		Two:=Two+3
		Three:=Three+3
	EndDo

	Sen1:=Subs(S,14,1)
	Sen2:=Subs(S,15,1)
	Sen:=Sen1+Sen2

	If Len(Kata) > 1
		Kata:=Kata+" Rupiah "
	Endif

	If Val(Sen) > 0 .and. Val(Sen) < 20
		If Val(sen) < 10 Sen:=Subs(Sen,2,1) endif Kata:=Kata+Angka[&Sen+1]+" Sen" else If Val(sen) > 19
			Kata:=Kata+Angka[&Sen1+1]+"puluh "+Angka[&Sen2+1]+" Sen"
		Endif
	Endif
Return (Kata)
2 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.