LISTING PROGRAM
frmMenu.vb
Public Class frmMenu
Private Sub QuitToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
QuitToolStripMenuItem.Click Close()
End Sub
Private Sub OtoritasToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
OtoritasToolStripMenuItem.Click frmLogin.Show()
End Sub
Private Sub HelpToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
HelpToolStripMenuItem.Click frmHelp.Show() End Sub
Private Sub AboutToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AboutToolStripMenuItem.Click frmAbout.Show() End Sub
Private Sub ListKamusToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListKamusToolStripMenuItem.Click frmListKamus.Show() End Sub
End Class
frmLogin.vb
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmLogin
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load koneksi()
txtUserID.Enabled = True
txtUserID.Select() End Sub
Private Sub cmdOpen_Click(ByVal sender As System.Object, ByVal e As
CMD = New MySqlCommand("select * from User where userID='" & txtUserID.Text & "' and passwd='" & txtPasswd.Text & "'", Kon)
RD = CMD.ExecuteReader RD.Read()
If RD.HasRows Then
bolLogin = True
Me.Hide()
frmMenuOto.Show()
Else
bolLogin = False
MsgBox("Login salah, periksa kembali user name dan password") txtUserID.Focus()
End If
RD.Close() CMD.Dispose() End Sub
Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdClose.Click Close()
End Sub
Private Sub txtUserID_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtUserID.KeyPress If e.KeyChar = Chr(13) Then
txtPasswd.Select() End If
End Sub
Private Sub txtUserID_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtUserID.TextChanged If Len(txtUserID.Text) < 10 Then
Exit Sub
End If
End Sub
Private Sub txtPasswd_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtPasswd.KeyPress If e.KeyChar = Chr(13) Then
cmdOpen.Enabled = True
cmdOpen.Select() End If
End Sub End Class
frmMenuOto.vb
Public Class frmMenuOto
Private Sub KamusHukumToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
KamusHukumToolStripMenuItem.Click frmDataKamus.Show()
End Sub
Private Sub UserToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
frmUser.Show() End Sub
Private Sub BackToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
BackToolStripMenuItem.Click Close()
End Sub
Private Sub PencarianStringToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PencarianStringToolStripMenuItem.Click frmKamusHukum.Show()
End Sub End Class
frmNotSoNaive.vb
Imports System
Imports System.Text.RegularExpressions
Imports MySql.Data.MySqlClient
Imports System.Data
Imports System.Globalization
Public Class frmNotSoNaive
Dim Time As New DateTime
Dim x, y As String
Dim k, m, n, p, p1, p2, q, q1, q2, s, outGalil As Integer
Public Shared Function NotSoNaive(ByVal x As String, ByVal y As String) As Integer
Dim m As Integer = x.Length() Dim n As Integer = y.Length() Dim k As Integer
Dim ell As Integer
Dim j As Integer = 0 MsgBox("dddddddddddddd")
If x.Substring(0, 1).Equals(x.Substring(1, 1)) Then
k = 2 ell = 1 Else
k = 1 ell = 2 End If
While j <= n - m
If Not (x.Substring(1, 1).Equals(y.Substring(j + 1, 1))) Then
j = j + k Else
If x.Substring(2, m - 2).Equals(y.Substring(j + 2, m - 2)) And x.Substring(0, 1).Equals(y.Substring(j, 1)) Then
Return j End If
j = j + ell End If
End While
Return n End Function
Public Shared Sub Main() Dim y As String
Dim x As String
Console.Write(NotSoNaive(x, y)) End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load txtPattern.Focus()
txtPattern.Select() pb.Value = 0
pb.Visible = False
Call KoneKsi()
If Algo = "Galil" Then
Me.Text = "Galil Siferas" Else
Me.Text = "Not So Naive" End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnProses.Click pb.Visible = True
pb.Value = 20
Time = DateTime.Now Timer2.Enabled = True
Timer2.Start() txtHasil.Text = "" strI = ""
lblWaktu.Text = "" Application.DoEvents()
If txtPattern.Text <> "" And txtString.Text <> "" Then
If Algo = "Galil" Then
Call Galil()
ElseIf Algo = "NotSo" Then
Dim value = SearchStringNotSo(txtString.Text, txtPattern.Text)
End If
If strI <> "tidak ketemu pada string" Then
CMD = New MySqlCommand("select * from Kamus where Kata='" & txtPattern.Text & "'", Kon)
RD = CMD.ExecuteReader() Application.DoEvents() If RD.Read Then
txtHasil.Text = RD.Item("Deskripsi") & " pada posisi " & strI
Else
txtHasil.Text = "tidak ketemu pada database" End If
pb.Value = 50 RD.Close() CMD.Dispose() Else
txtHasil.Text = "tidak ketemu pada string" End If
Else
MsgBox("Data belum lengkap") End If
pb.Value = 90 pb.Value = 100 Timer2.Stop()
Timer2.Enabled = False
End Sub
Public Shared Function SearchStringNotSo(ByVal str As String, ByVal
pat As String) As Integer() 'Not So Naive Algorithm Ok
Dim retVal As New List(Of Integer)() Dim M As Integer = pat.Length
Dim N As Integer = str.Length Dim Jum1 As Integer
For i As Integer = 0 To N - M Dim j As Integer
For j = 0 To M - 1
If str(i + j) <> pat(j) Then
Exit For
End If
Next
If j = M Then
retVal.Add(i)
strI = strI & " " & i Jum1 = Jum1 + 1
End If
Next
If strI = "" Then
strI = "tidak ketemu pada string, Not So Naive Algorithm " End If
frmNotSoNaive.lblJum.Text = Jum1 Return retVal.ToArray()
End Function
Public Shared Function SearchStringGalil(ByVal str As String, ByVal
pat As String) As Integer()
'=====================>>>>> Galil Seiferas Algorithm (OK) Dim retVal As New List(Of Integer)()
Dim M As Integer = pat.Length Dim N As Integer = str.Length For i As Integer = 0 To N - M Dim j As Integer
For j = 0 To M - 1
If str(i + j) <> pat(j) Then
Exit For
End If
Next
If j = M Then
retVal.Add(i)
strI = strI & " " & i End If
Next
If strI = "" Then
strI = "tidak ketemu pada string, Galil Siferas Algorithm" End If
Return retVal.ToArray() End Function
Sub Galil()
Dim Pattern As String = txtPattern.Text Dim Test As String = txtString.Text
txtHasil.Text = String.Format("{0} occurs at position {1}", m.Value, m.Index)
Next
End Sub
Private Sub btnQuit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnQuit.Click Close()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnClear.Click pb.Value = 0
lblWaktu.Text = "" txtPattern.Text = "" txtString.Text = "" lblJum.Text = "" txtHasil.Text = "" End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer2.Tick
Dim difference As TimeSpan = DateTime.Now.Subtract(time) lblWaktu.Text = difference.Days.ToString & ":" &
difference.Hours.ToString & ":" & difference.Minutes.ToString & ":" & difference.Seconds.ToString & ":" & difference.Milliseconds.ToString End Sub
Public Function GS(ByVal argX As String, ByVal argY As String) As Integer
x = argX m = x.Length y = argY n = y.Length k = 4
p = q = s = q1 = p2 = q2 = 0 p1 = 1
newP1()
Return outGalil End Function
Private Sub newP1()
While x(s + q1) = x(s + p1 + q1) q1 += 1
End While
If p1 + q1 >= k * p1 Then
p2 = q1 q2 = 0 newP2() Else
If s + p1 + q1 = m Then
search(outGalil) Else
p1 += (q1 / k + 1) q1 = 0
newP1() End If
End If
End Sub
Private Sub newP2()
End While
If p2 + q2 = k * p2 Then
parse()
ElseIf s + p2 + q2 = m Then
search(outGalil) Else
If q2 = p1 + q1 Then
p2 += p1 q2 -= p1 Else
p2 += (q2 / k + 1) q2 = 0
End If
newP2() End If
End Sub
Private Sub parse() While 1
While x(s + q1) = x(s + p1 + q1) q1 += 1
End While
While p1 + q1 >= k * p1 s += p1
q1 -= p1 End While
p1 += (q1 / k + 1) q1 = 0
If p1 >= p2 Then
Exit While
End If
End While
newP1() End Sub
Private Sub search(ByRef hasil As Integer) While p <= n - m
While p + s + q < n AndAlso x(s + q) = y(p + s + q) q += 1
End While
If q = m - s AndAlso x.Equals(y.Substring(p, s + 1)) Then
hasil = p End If
If q = p1 + q1 Then
p += p1 q -= p1 Else
p += (q / k + 1) q = 0
End If
End While
End Sub End Class
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmDataKamus
Dim str(5) As String
Dim IDKamus As Integer
Private Sub frmDataKamus_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load Call KoneKsi()
Call Bersih() Call mati() Call ViewData() btnAdd.Enabled = True
btnCari.Enabled = True
btnSave.Enabled = False
btnEdit.Enabled = False
btnDelete.Enabled = False
btnAdd.Select() btnAdd.Focus() End Sub
Sub Bersih()
txtKata.Text = "" txtdeskripsi.Text = "" lblID.Text = ""
bolTambah = False
bolCari = False
End Sub
Sub Mati()
txtKata.Enabled = False
txtDeskripsi.Enabled = False
End Sub
Sub CariID()
CMD = New MySqlCommand("Select * from Kamus order by IDKamus desc", Kon)
RD = CMD.ExecuteReader() RD.Read()
If RD.HasRows = True Then
IDKamus = RD.Item("IDKamus") + 1 Else
IDKamus = 1 End If
RD.Close() CMD.Dispose()
lblID.Text = IDKamus End Sub
Sub ViewData()
lv.Items.Clear()
Dim lvDaf As ListViewItem
With lv
.Columns.Clear()
.Columns.Add("ID", 50, HorizontalAlignment.Left) .Columns.Add("Kata", 300, HorizontalAlignment.Left)
.Columns.Add("Deskripsi", 1500, HorizontalAlignment.Left) .View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D .AutoArrange = True
End With
CMD = New MySqlCommand("select * from Kamus order by IDKamus asc", Kon)
Do While RD.Read
str(0) = RD.Item("IDKamus") str(1) = RD.Item("Kata") str(2) = RD.Item("Deskripsi") lvDaf = New ListViewItem(str) lv.Items.Add(lvDaf)
Loop
End If
RD.Close() CMD.Dispose() End Sub
Private Sub btnQuit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnQuit.Click Close()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAdd.Click Call CariID()
bolTambah = True
txtKata.Enabled = True
btnAdd.Enabled = False
txtKata.Focus() End Sub
Private Sub txtKata_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtKata.KeyPress If e.KeyChar = Chr(13) Then
txtDeskripsi.Enabled = True
txtDeskripsi.Focus() End If
End Sub
Private Sub txtDeskripsi_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtDeskripsi.TextChanged If bolTambah = True Then
btnSave.Enabled = True
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSave.Click btnSave.Enabled = False
CMD = New MySqlCommand("Insert into Kamus
(IdKamus,Kata,Deskripsi) values (" & IDKamus & ",'" & txtKata.Text & "','" & txtDeskripsi.Text & "')", Kon)
RD = CMD.ExecuteReader RD.Close()
CMD.Dispose() Call ViewData()
MsgBox("Data sudah disimpan")
End Sub
Private Sub lv_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles lv.Click If bolCari = True Then
CMD = New MySqlCommand("select * from Kamus where IDKamus=" & IDKamus & "", Kon)
RD = CMD.ExecuteReader() If RD.Read Then
lblID.Text = IDKamus
txtKata.Text = RD.Item("Kata")
txtDeskripsi.Text = RD.Item("Deskripsi") txtDeskripsi.Enabled = True
txtKata.Enabled = True
btnEdit.Enabled = True
btnDelete.Enabled = True
Else
txtKata.Text = "" txtDeskripsi.Text = "" End If
RD.Close() CMD.Dispose() End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnEdit.Click btnEdit.Enabled = False
btnDelete.Enabled = False
Dim edit As String
edit = "Update Kamus SET Kata='" & txtKata.Text & "',Deskripsi='" & txtDeskripsi.Text & "' where IDKamus=" & IDKamus & ""
CMD = New MySqlCommand(edit, Kon) CMD.ExecuteNonQuery()
CMD.Dispose()
MsgBox("Data udah diEdit") Call Bersih()
Call Mati() Call ViewData()
btnSave.Enabled = False
btnDelete.Enabled = False
btnEdit.Enabled = False
btnAdd.Enabled = True
btnAdd.Focus() End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDelete.Click
CMD = New MySqlCommand("Delete from Kamus where IDKamus=" & IDKamus & "", Kon)
RD = CMD.ExecuteReader RD.Close()
CMD.Dispose()
MsgBox("Data udah dihapus") Call Bersih()
Call Mati() Call ViewData()
btnSave.Enabled = False
btnDelete.Enabled = False
btnEdit.Enabled = False
btnAdd.Enabled = True
btnAdd.Focus() End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCancel.Click Call Bersih()
Call ViewData()
btnSave.Enabled = False
btnDelete.Enabled = False
btnEdit.Enabled = False
btnAdd.Enabled = True
btnAdd.Focus() End Sub
End Class
frmUser.vb
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmUser
Dim UserID As String
Dim Passwd As String
Private Sub frmUser_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load Call KoneKsi()
Call SettingGridview() Call Segar()
txtUserID.DataBindings.Clear() txtPasswd.DataBindings.Clear() cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Select() End Sub
Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
txtUserID.Text = "" txtPasswd.Text = "" cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus() End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEdit.Click
CMD = New MySqlCommand("Update User SET passwd='" & txtPasswd.Text & "' where UserID='" & txtUserID.Text & "'", Kon) RD = CMD.ExecuteReader
Call SettingGridview() Call Segar()
If RD.HasRows Then
MsgBox("Data udah diEdit") Else
txtPasswd.Select() End If
Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdDelete.Click cmdSave.Enabled = False
CMD = New MySqlCommand("Delete from User where UserID='" & txtUserID.Text & "'", Kon)
RD = CMD.ExecuteReader Call SettingGridview() Call Segar()
MsgBox("Data sudah dihapus") txtUserID.Text = ""
txtPasswd.Text = "" cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus() End Sub
Private Sub cmdQuit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdQuit.Click Me.Close()
End Sub
Sub SettingGridview() With dg
'jumlah kolom .ColumnCount = 2 .ReadOnly = True
.ColumnHeadersDefaultCellStyle.Font = New
System.Drawing.Font("Arial", 8, FontStyle.Bold) 'font untuk kolom header 'font untuk cell
.Font = New System.Drawing.Font("Arial", 8,
FontStyle.Regular)
'(setting apakah rowheader ditampilkan atau tidak, default=true)
.RowHeadersVisible = True
'semua baris akan terpilih jika salah satu cell pada baris tersebut dipilih()
.SelectionMode = DataGridViewSelectionMode.FullRowSelect '(setting apakah beberapa baris dapat dipilih atau hanya 1 baris, default=true)
.MultiSelect = True
'setting warna alternate
.AlternatingRowsDefaultCellStyle.BackColor =
Color.LightYellow
.Columns(0).Name = "UserID"
.Columns(0).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleLeft 'rata kanan tengah untuk kolom 0 .Columns(0).Width = 80 'lebar kolom 0
.Columns(1).Name = "Passwd"
.Columns(1).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleLeft 'rata kanan tengah untuk kolom 0 .Columns(1).Width = 80 'lebar kolom 0
End With
End Sub
Sub Segar()
CMD = New MySqlCommand("select * from User order by UserID asc", Kon)
RD = CMD.ExecuteReader dg.Rows.Clear()
While RD.Read()
baris(0) = RD(0) baris(1) = RD(1) dg.Rows.Add(baris) End While
RD.Close() End Sub
Private Sub cmdAdd_Click_1(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles cmdAdd.Click cmdAdd.Enabled = False
bolTambah = True
bolCari = False
txtUserID.Select() txtUserID.Focus() End Sub
Private Sub cmdSave_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSave.Click cmdSave.Enabled = False
CMD = New MySqlCommand("Insert into User (UserID, Passwd) values ('" & txtUserID.Text & "','" & txtPasswd.Text & "')", Kon)
RD = CMD.ExecuteReader RD.Close()
CMD.Dispose()
Call SettingGridview() Call Segar()
MsgBox("Data sudah disimpan") txtUserID.Text = ""
txtPasswd.Text = "" cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus() End Sub
Private Sub txtUserID_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtUserID.KeyPress If e.KeyChar = Chr(13) Then
CMD = New MySqlCommand("select * from User where UserID='" & txtUserID.Text & "'", Kon)
RD = CMD.ExecuteReader If RD.HasRows Then
MsgBox("Data udah ada") Else
txtPasswd.Select() End If
RD.Close() CMD.Dispose() End If
End Sub
Private Sub txtPasswd_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtPasswd.KeyPress If e.KeyChar = Chr(13) Then
If bolTambah = True Then
cmdSave.Enabled = True
End If
End Sub
Private Sub cmdClear_Click_1(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles cmdClear.Click txtUserID.Text = ""
txtPasswd.Text = "" cmdAdd.Enabled = True
cmdDelete.Enabled = False
cmdSave.Enabled = False
cmdEdit.Enabled = False
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
If dg.Columns(e.ColumnIndex).Name = "UserID" Then
UserID = dg.Rows(e.RowIndex).Cells("UserID").Value Passwd = dg.Rows(e.RowIndex).Cells("Passwd").Value txtUserID.Text = UserID
txtPasswd.Text = Passwd cmdEdit.Enabled = True
cmdDelete.Enabled = True
Else
txtPasswd.Text = "" txtUserID.Text = "" End If
End Sub
End Class
frmListKamus.vb
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmListKamus
Dim huruf As String, Kata As String
Dim str(5) As String
Private Sub lbHuruf_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles lbHuruf.Click txtDeskripsi.Text = ""
huruf = lbHuruf.SelectedItem Dim lvDaf As ListViewItem
With lvKata
.Columns.Clear()
.Columns.Add("Kata", 150, HorizontalAlignment.Left) .View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D .AutoArrange = True
End With
If huruf <> "" Then
CMD = New MySqlCommand("select * from Kamus where left(Kata,1)='" & huruf & "'", Kon)
If RD.HasRows Then
Do While RD.Read
str(0) = RD.Item("Kata") lvDaf = New ListViewItem(str) lvKata.Items.Add(lvDaf)
Loop
Else
lvKata.Items.Clear() End If
RD.Close() CMD.Dispose() Else
MsgBox("Pilih huruf") End If
End Sub
Private Sub frmListKamus_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load Call KoneKsi()
End Sub
Private Sub lvKata_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles lvKata.Click
Kata = lvKata.FocusedItem.SubItems(0).Text
CMD = New MySqlCommand("select * from Kamus where Kata='" & Kata & "'", Kon)
RD = CMD.ExecuteReader() If RD.Read Then
txtDeskripsi.Text = RD.Item("Deskripsi") Else
txtDeskripsi.Text = "" End If
RD.Close() CMD.Dispose() End Sub
Private Sub lvKata_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
lvKata.SelectedIndexChanged End Sub