Program Terbilang
Program ini dibuat untuk menkonversikan nilai / angka ke bentuk huruf, berikut screenshootnya :
Dan ini source code dari program ini :
1: Public Class Form1
2:
3: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProses.Click
4: Dim newClass As classTerbilang = New classTerbilang()
5: If txtAngka.Text <> "" Then
6: lblHasil.Text = newClass.funcCalculate(Val(txtAngka.Text))
7: Else
8: MsgBox("Silahkan isi field angka", MsgBoxStyle.Information, "Validation")
9: End If
10: txtAngka.Focus()
11: End Sub
12:
13: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
14: Me.Text = "mredzase.blogspot.com"
15: End Sub
16:
17: Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAngka.KeyPress
18: If (e.KeyChar = Chr(13)) Then
19: Button1_Click(New Object(), New EventArgs())
20: End If
21:
22: If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then
23: e.Handled = True
24: End If
25:
26: End Sub
27:
28: End Class
29:
30: Option Explicit On
31: Public Class classTerbilang
32: Public Function funcCalculate(ByVal x As Double) As String
33: Dim tampung As Double
34: Dim teks As String = String.Empty
35: Dim bagian As String = String.Empty
36: Dim i As Integer
37: Dim tanda As Boolean
38: Dim terbilang As String = String.Empty
39:
40: Dim letak(5)
41: letak(1) = "RIBU "
42: letak(2) = "JUTA "
43: letak(3) = "MILYAR "
44: letak(4) = "TRILYUN "
45:
46: If (x < 0) Then
47: terbilang = ""
48: GoTo keluar
49: End If
50:
51: If (x = 0) Then
52: terbilang = "NOL"
53: GoTo keluar
54: End If
55:
56: If (x < 2000) Then
57: tanda = True
58: End If
59: teks = ""
60:
61: If (x >= 1.0E+15) Then
62: terbilang = "NILAI TERLALU BESAR"
63: GoTo keluar
64: End If
65:
66: For i = 4 To 1 Step -1
67: tampung = Int(x / (10 ^ (3 * i)))
68: If (tampung > 0) Then
69: bagian = funcRatusan(tampung, tanda)
70: teks = teks & bagian & letak(i)
71: End If
72: x = x - tampung * (10 ^ (3 * i))
73: Next
74: teks = teks & funcRatusan(x, False)
75: terbilang = teks
76: keluar:
77: Return terbilang
78: End Function
79:
80: Function funcRatusan(ByVal y As Double, ByVal flag As Boolean) As String
81: Dim tmp As Double
82: Dim bilang As String = String.Empty
83: Dim bag As String = String.Empty
84: Dim j As Integer
85: Dim ratusan As String = String.Empty
86:
87: Dim angka(9)
88: angka(1) = "SE"
89: angka(2) = "DUA "
90: angka(3) = "TIGA "
91: angka(4) = "EMPAT "
92: angka(5) = "LIMA "
93: angka(6) = "ENAM "
94: angka(7) = "TUJUH "
95: angka(8) = "DELAPAN "
96: angka(9) = "SEMBILAN "
97:
98: Dim posisi(2)
99: posisi(1) = "PULUH "
100: posisi(2) = "RATUS "
101:
102: bilang = ""
103: For j = 2 To 1 Step -1
104: tmp = Int(y / (10 ^ j))
105: If (tmp > 0) Then
106: bag = angka(tmp)
107: If (j = 1 And tmp = 1) Then
108: y = y - tmp * 10 ^ j
109: If (y >= 1) Then
110: posisi(j) = "BELAS "
111: Else
112: angka(y) = "SE"
113: End If
114: bilang = bilang & angka(y) & posisi(j)
115: ratusan = bilang
116: Else
117: bilang = bilang & bag & posisi(j)
118: End If
119: End If
120: y = y - tmp * 10 ^ j
121: Next
122:
123: If (flag = False) Then
124: angka(1) = "SATU "
125: End If
126: bilang = bilang & angka(IIf(y < 0, Nothing, y))
127: ratusan = bilang
128:
129: Return ratusan
130: End Function
131: End Class
132:

Tidak ada komentar:
Posting Komentar