Saya mengalami kesulitan dalam membuat fungsi terbilang untuk ASP 3 klassik. Yang banyak adalah fungsi terbilang xlam untuk EXCEL. Untuk itu saya modifikasi fungsi terbilang yang banyak bertebaran di google sehingga menghasilkan fungsi terbilang yang berjalan mulus untuk ASP 3 Classic/Klasik/Native 😀

Daripada ngoding lagi ga karuan, copas saja deh 😀 yang penting universal function

Tw

Cukup gunakan fungsi <!–#include file=”namafile.asp”–> dan gunakan fungsi response.write terbilang(1000000) akan menghasilkan tulisan Satu juta rupiah.

<%
Function Val( myString )
' Val Function for VBScript (aka ParseInt Function in VBScript).
' By Denis St-Pierre.
' Natively VBScript has no function to extract numbers from a string.
' Based shamelessly on MS' Helpfile example on RegExp object.
' CAVEAT: Returns only the *last* match found
'         (or, with objRE.Global = False, only the *first* match)

    Dim colMatches, objMatch, objRE, strPattern

    ' Default if no numbers are found
    Val = 0

    strPattern = "[-+0-9]+"       ' Numbers positive and negative; use
                                  ' "ˆ[-+0-9]+" to emulate Rexx' Value()
                                  ' function, which returns 0 unless the
                                  ' string starts with a number or sign.
    Set objRE = New RegExp        ' Create regular expression object.
    objRE.Pattern    = strPattern ' Set pattern.
    objRE.IgnoreCase = True       ' Set case insensitivity.
    objRE.Global     = True       ' Set global applicability:
                                  '   True  => return last match only,
                                  '   False => return first match only.
    Set colMatches = objRE.Execute( myString )  ' Execute search.
    For Each objMatch In colMatches             ' Iterate Matches collection.
        Val = objMatch.Value
    Next
    Set objRE= Nothing
End Function

Function Terbilang(Angka )
   Dim n1
    Dim nangka, Strjmlhuruf, intpecahan  , strpecahan, urai, Bil1, strtot, bil2
    Dim x, Y, z, i  
   
    For i = 1 To Len(Angka)
        If Not Mid(Angka, i, 1) = "." Then
            nangka = nangka + Mid(Angka, i, 1)
        End If
    Next
   
    If Len(LTrim(nangka)) = 0 Then
        terbit = "Nol Rupiah"
        Exit Function
    End If
    Strjmlhuruf = LTrim(RTrim((nangka)))
    intpecahan = Val(Right(Mid(Angka, 15, 2), 2))
    If (intpecahan = 0) Then
        strpecahan = ""
    End If
    x = 0
    Y = 0
    urai = ""
   
    While (x < Len(Strjmlhuruf))
        x = x + 1
        strtot = Mid(Strjmlhuruf, x, 1)
        Y = Y + Val(strtot)
        z = Len(Strjmlhuruf) - x + 1
   
        Select Case Val(strtot)
        Case 1
            If (z = 1 Or z = 7 Or z = 10 Or z = 13) Then
                Bil1 = "Satu "
            ElseIf (z = 4) Then
                If (x = 1) Then
                    Bil1 = "Se"
                Else
                    Bil1 = "Satu "
                End If
            ElseIf (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
                x = x + 1
                strtot = Mid(Strjmlhuruf, x, 1)
                z = Len(Strjmlhuruf) - x + 1
                bil2 = ""
   
            Select Case Val(strtot)
            Case 0
                Bil1 = "Sepuluh "
            Case 1
                Bil1 = "Sebelas "
            Case 2
                Bil1 = "Dua Belas "
            Case 3
                Bil1 = "Tiga Belas "
            Case 4
                Bil1 = "Empat Belas "
            Case 5
                Bil1 = "Lima Belas "
            Case 6
                Bil1 = "Enam Belas "
            Case 7
                Bil1 = "Tujuh Belas "
            Case 8
                Bil1 = "Delapan Belas "
            Case 9
                Bil1 = "Sembilan Belas "
            End Select
            Else
                Bil1 = "Se"
            End If
   
        Case 2
            Bil1 = "Dua "
        Case 3
            Bil1 = "Tiga "
        Case 4
            Bil1 = "Empat "
        Case 5
            Bil1 = "Lima "
        Case 6
            Bil1 = "Enam "
        Case 7
            Bil1 = "Tujuh "
        Case 8
            Bil1 = "Delapan "
        Case 9
            Bil1 = "Sembilan "
        Case Else
            Bil1 = ""
        End Select
   
    If (Val(strtot) > 0) Then
        If (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
            bil2 = "Puluh "
        ElseIf (z = 3 Or z = 6 Or z = 9 Or z = 12 Or z = 15) Then
            bil2 = "Ratus "
        Else
            bil2 = ""
        End If
    Else
        bil2 = ""
    End If
    If (Y > 0) Then
        Select Case z
        Case 4
            bil2 = bil2 + "Ribu "
            Y = 0
        Case 7
            bil2 = bil2 + "Juta "
            Y = 0
        Case 10
            bil2 = bil2 + "Milyar "
            Y = 0
        Case 13
            bil2 = bil2 + "Trilyun "
            Y = 0
        End Select
    End If
    urai = urai + Bil1 + bil2
Wend
   
urai = urai + strpecahan
Terbilang = urai & "Rupiah "
Terbilang = LCase(Terbilang)
n1 = UCase(Left(Terbilang, 1))
Terbilang = n1 & Mid(Terbilang, 2, Len(Terbilang) - 1)
End Function
%>

 

Pada file diatas, ada dua fungsi, yaitu Val dan terbilang. Val adalah fungsi VAL yang tidak ada pada vbscript (asp). Semua script diatas adalah nyomot alias copas-modif, kalau masih error, silakan utak-atik sendiri 😀

terbilang04

terbilang01Oh ya, saya pernah menggunakan fungsi terbilang ASP Versi https://wahanapress.com/2003/03/11/asp-angka-terbilang/ — tetapi ada bug, makanya saya cari alternatif lain. Bug tsb saya temukan, a.l.

Response.write Angkatoteks(1000000); hasilnya bukan `satu juta` 😀 tapi `satu juta ribu` 🙁

terbilang03

 

 

Situs ini kehilangan image dan files penunjang; karena terjadi storage failure dan saya tidak menyimpan backupnya - harap maklum
+