Kamis, 26 September 2019

Contoh Membuat Konversi Angka Ke Huruf Dengan Format Mata Uang Rupiah ~Tutorial Gambas


Public Sub main()
   Dim TArr As New String[]
   Dim TArr2 As String[]
   Dim Tks, TMentah As String
   Dim n, m As Byte
   Tks = "51712956783246"

   '-------------- Jika Kososong
   If Tks = "" Then
     Print "Kosong"
     Return
   Endif

   '-------------- Jika sama dengan 0
   If Tks = "0" Then
     Print "Nol"
     Return
   Endif
   '-------------- Memasukkan tiap karakter string ke dalam nilai array. Dari terbesar sampai ke terkecil
   For n = Len(Tks) DownTo 1
     'Sesuai urutan dari depan ke belakang
     TArr.Add(Mid(Tks, n, 1))
   Next

   '-------------- Mulai membaca tiap karakter
   For n = 0 To TArr.Max
     '************** Satuan
     If n = 0 Then
       If TArr.Count = 1 Then TMentah = KA(TArr[n])
    '************** Puluhan
    Else If CStr(n) Like "{1,4,7,10,13}" Then
      If TArr[n] = "1" Then
        If TArr[n - 1] = "0" Then
           TMentah = TMentah & "Sepuluh"
        Else If TArr[n - 1] = "1" Then
          TMentah = TMentah & "Sebelas"
        Else
          TMentah = TMentah & KA(TArr[n - 1]) & " Belas"
        Endif
      Else
        If TArr[n] <> 0 Then TMentah = TMentah & KA(TArr[n]) & " Puluh" & " " & KA(TArr[n - 1])
      Endif
    '************** Ratusan
    Else If CStr(n) Like "{2,5,8,11,14}" Then
      If TArr[n] = "1" Then
        TMentah = TMentah & "Seratus"
      Else
        If TArr[n] <> 0 Then TMentah = TMentah & KA(TArr[n]) & " Ratus"
      Endif
    '************** Ribuan
    Else If n = 3 Then
      If TArr.Count = 4 Then
        If TArr[n] = "1" Then
          TMentah = TMentah & "Seribu"
        Else
          TMentah = TMentah & KA(TArr[n]) & " Ribu"
        Endif
      Else
        If TArr[n] = 1 And TArr[n + 1] = 0 Then
          TMentah = TMentah & "Seribu"
        Else If TArr[n] <> 1 And TArr[n + 1] = 0 Then
          TMentah = TMentah & KA(TArr[n]) & " Ribu"
        Else
          TMentah = TMentah & "Ribu"
        Endif
      Endif
    '************** Juta
    Else If n = 6 Then
      If TArr.Count = 7 Then
        TMentah = TMentah & KA(TArr[n]) & " "
      Endif
      If TArr.Count < 10 Then TMentah = TMentah & "Juta"
    '************** Miliar
    Else If n = 9 Then
      If TArr.Count = 10 Then
        TMentah = TMentah & KA(TArr[n]) & " "
      Endif
      If TArr.Count < 13 Then TMentah = TMentah & "Miliar"
    '************** Triliun
    Else If n = 12 Then
      If TArr.Count = 13 Then
        TMentah = TMentah & KA(TArr[n]) & " Triliun"
      Else
        TMentah = TMentah & "Triliun"
      Endif
    Endif
     TMentah = TMentah & "|"
   Next
   TArr2 = Split(TMentah, "|")
   TMentah = ""
   For n = TArr2.Max DownTo 0
     TMentah = TMentah & " " & TArr2[n]
     If n = 0 Then Break
   Next
   Print Trim(TMentah) & " Rupiah"
End

Private Sub KA(n As String) As String
   'KA = Kata Angka
   If n = "1" Then
     Return "Satu"
   Else If n = "2" Then
     Return "Dua"
   Else If n = "3" Then
     Return "Tiga"
   Else If n = "4" Then
     Return "Empat"
   Else If n = "5" Then
     Return "Lima"
   Else If n = "6" Then
     Return "Enam"
   Else If n = "7" Then
     Return "Tujuh"
   Else If n = "8" Then
     Return "Delapan"
   Else If n = "9" Then
     Return "Sembilan"
   Endif
End

'000.000.000.000.000
'Puluhan = 2,5,8,11,14 dari 0 = 1,4,7,10,13
'Ratusan = 3,6,9,12,15 dari 0 = 2,5,8,11,14
'Ribu = 4 dari 0 = 3
'Juta = 7 dari 0 = 6
'Miliar = 10 dari 0 = 9
'Triliun = 13 dari 0 = 12

Tidak ada komentar:

Posting Komentar