Senin, 24 November 2014

UTS Mata kuliah Pemrograman Visual Eresha Wikrama Kelas B

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: