LISTING PROGRAM. Imports MySql.Data.MySqlClient Imports MySql.Data Imports System.Collections Imports System.Array

84 LISTING PROGRAM Imports Imports Imports Imports MySql.Data.MySqlClient MySql.Data System.Collections System.Array Public Class frmUtama Dim arr...
Author: Dina Fisher
4 downloads 2 Views 873KB Size
84

LISTING PROGRAM

Imports Imports Imports Imports

MySql.Data.MySqlClient MySql.Data System.Collections System.Array

Public Class frmUtama Dim arrSearch() As String Dim arrArti() As String = {} Dim arrArtiBtk() As String = {} Dim batasSunda As Integer = 0 Dim batasBatak As Integer = 0 Dim batasPerpus As Integer = 0 Dim indo() As String = {} Dim indoLD() As String Dim tempStr As String = Nothing Dim tempStrLD As String = Nothing Dim clicked As Integer = Nothing Dim clickedLD As Integer = Nothing Public Property MdiParent As Form Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Panel3.Parent = Me Panel3.BackColor = Color.FromArgb(55, Color.White) Panel1.BackColor = Color.FromArgb(0, Color.DeepSkyBlue) 'Panel2.BackColor = Color.FromArgb(0, Color.Aqua) Panel4.BackColor = Color.FromArgb(55, Color.White) Panel5.BackColor = Color.FromArgb(0, Color.Black) RectangleShape1.FillColor = Color.FromArgb(55, Color.White) RectangleShape1.BorderColor = Color.FromArgb(55, Color.White) 'txtCari.BackColor = Color.FromArgb(55, Color.White) ' ListView3.Visible = False Panel5.Top = Panel5.Top + 100 lblCaption.Top = Panel5.Top - 35 Me.Panel3.Anchor = AnchorStyles.Top Me.Panel1.Anchor = AnchorStyles.Top Me.txtCari.Anchor = AnchorStyles.Top Me.RectangleShape1.Anchor = AnchorStyles.Top Me.RectangleShape2.Anchor = AnchorStyles.Top ' Me.Panel2.Anchor = AnchorStyles.Top Me.Panel4.Anchor = AnchorStyles.Top

Universitas Sumatera Utara

85

Me.Panel5.Anchor = AnchorStyles.Top Me.lblCaption.Anchor = AnchorStyles.Top 'ckInstan.Parent = PictureBox1 'Panel4.Parent = PictureBox1 lblInfoKMP.Parent = Panel4 lblInfoLD.Parent = Panel4 ' Panel4.BackColor = Color.FromArgb(55, Color.White) Dim kotak As New TextBox 'kotak.Parent = Panel5

Try ' On Error Resume Next Dim sMySQLConn = "server=localhost;user id=root;password='';database=skripsiryan" Dim oMySQLConn As New MySqlConnection(sMySQLConn) oMySQLConn.Open() Dim oMySQLDa As New MySqlDataAdapter Dim tPerpusDA As New MySqlDataAdapter Dim oTbl As New DataTable Dim oMySQLCmd As New MySqlCommand("select * from tb_sunda", oMySQLConn) oMySQLDa.SelectCommand = oMySQLCmd Dim oDr As MySqlDataReader oDr = oMySQLCmd.ExecuteReader oTbl.Load(oDr) 'Dim pDr As MySqlDataReader 'pDr = tMySQLcmd.ExecuteReader 'tPerpus.Load(pDr) ''LOAD DATABASE PERPUSTAKAAN 'For x As Integer = 0 To Val(tPerpus.Rows.Count) - 1 ' arrPerpustakaan(x) = tPerpus.Rows(x)("keyword") 'Next ReDim arrKata(oTbl.Rows.Count - 1) ReDim arrArti(oTbl.Rows.Count - 1) Dim dictkata2 As Hashtable = New Hashtable

Universitas Sumatera Utara

86

For indeks As Integer = 0 To Val(oTbl.Rows.Count) - 1 arrKata(indeks) = oTbl.Rows(indeks)("sunda") arrArti(indeks) = oTbl.Rows(indeks)("indonesia") Next indeks ' MsgBox(arrArti(0).ToString) ListView1.View = View.Details ListView1.Cursor = Cursors.Hand ListView1.View = View.Details ListView1.HeaderStyle = ColumnHeaderStyle.None ListView2.View = View.Details ListView2.Cursor = Cursors.Hand ListView2.View = View.Details ListView2.HeaderStyle = ColumnHeaderStyle.None Catch ex As Exception MsgBox("Database belum terhubung, aktifkan MySQL terlebih dahulu", vbCritical, "Database tidak terhubung") Close() End Try batasSunda = arrKata.Length Load_databaseBTK() batasBatak = arrKata.Length load_databasePerpus() batasPerpus = arrKata.Length End Sub Private Sub q_GotFocus(sender As Object, e As EventArgs) ' RectangleShape1.BorderColor = Color.DodgerBlue End Sub Private Sub txtCari_KeyDown(sender As Object, e As KeyEventArgs) If e.KeyCode = Keys.Enter Then ckInstan.Checked = True ElseIf e.KeyCode = Keys.Down Then ListView1.Focus() End If End Sub Private Sub txtCari_KeyPress(sender As Object, e As KeyPressEventArgs)

Universitas Sumatera Utara

87

End Sub Private Sub q_LostFocus(sender As Object, e As EventArgs) ' RectangleShape1.BorderColor = Color.Black End Sub Private Sub q_TextChanged(sender As Object, e As EventArgs) Timer1.Stop() Timer1.Start() End Sub Private Sub btnWS_Click(sender As Object, e As EventArgs) Dim WS As String = InputBox("input", "Masukkan saran kata") txtCari.Text = WS End Sub Private Sub btnTK_Click(sender As Object, e As EventArgs) Dim WS As String = InputBox("Tambah Kata", "Tambah Kata") txtCari.Text = WS End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) frmTentang.Show() End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) frmBantuan.Show() End Sub Private Sub ListView1_Click(sender As Object, e As EventArgs) txtCari.Text = ListView1.Items(ListView1.FocusedItem.Index).SubItems(0). Text End Sub Private Sub ListView1_KeyDown(sender As Object, e As KeyEventArgs)

Universitas Sumatera Utara

88

If e.KeyCode = Keys.Up Then If ListView1.FocusedItem.Index = 0 Then txtCari.Focus() End If ElseIf e.KeyCode = Keys.Right Then ListView2.Focus() End If End Sub Private Sub ListView2_Click(sender As Object, e As EventArgs) txtCari.Text = ListView2.Items(ListView2.FocusedItem.Index).SubItems(0). Text End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick ReDim HasilPencarianLD(0) ReDim hasilpencarianKMP(0) If ckInstan.Checked = True Then If txtCari.TextLength 0 Then Panel5.Top = 198 lblCaption.Visible = False Timer1.Stop() lblInfoKMP.Visible = True Panel4.Visible = True ListView1.Items.Clear() ListView2.Items.Clear() LD() KMP() ' ListView3.Visible = True Else Panel4.Visible = False If Panel4.Visible = False Then Panel5.Top = 298 lblCaption.Visible = True 'ListView3.Visible = False End If End If End If End Sub Private Sub Button1_Click_2(sender As Object, e As EventArgs) End Sub

Universitas Sumatera Utara

89

Private Sub btnKMP_Click(sender As Object, e As EventArgs) ckInstan.Checked = False If Len(txtCari.Text) > 0 Then cariText = txtCari.Text KMP() Algo = False frmHasil.Show() Else MsgBox("Isi keyword pencarian terlebih dahulu") End If End Sub Sub Load_databaseBTK() Try ' On Error Resume Next Dim sMySQLConn = "server=localhost;user id=root;password='';database=skripsiryan" Dim oMySQLConn As New MySqlConnection(sMySQLConn) oMySQLConn.Open() Dim oMySQLDa As New MySqlDataAdapter Dim tPerpusDA As New MySqlDataAdapter Dim oTbl As New DataTable Dim oMySQLCmd As New MySqlCommand("select * from batak", oMySQLConn) oMySQLDa.SelectCommand = oMySQLCmd Dim oDr As MySqlDataReader oDr = oMySQLCmd.ExecuteReader oTbl.Load(oDr) Dim gb As Integer = arrKata.Length For indeks As Integer = 0 To Val(oTbl.Rows.Count) - 1 ReDim Preserve arrBatak(indeks) arrBatak(indeks) = oTbl.Rows(indeks)("batak") ReDim Preserve arrArtiBtk(indeks) arrArtiBtk(indeks) = oTbl.Rows(indeks)("indonesia") Next indeks ' MsgBox(arrArti(0).ToString) ListView1.View = View.Details ListView1.Cursor = Cursors.Hand ListView1.View = View.Details ListView1.HeaderStyle = ColumnHeaderStyle.None

Universitas Sumatera Utara

90

ListView2.View = View.Details ListView2.Cursor = Cursors.Hand ListView2.View = View.Details ListView2.HeaderStyle = ColumnHeaderStyle.None Catch ex As Exception MsgBox("Database belum terhubung, aktifkan MySQL terlebih dahulu", vbCritical, "Database tidak terhubung") Close() End Try Dim gbg As Integer = arrKata.Length For x As Integer = 0 To arrBatak.Length - 1 ReDim Preserve arrKata(gbg + x) arrKata(gbg + x) = arrBatak(x) ReDim Preserve arrArti(gbg + x) arrArti(gbg + x) = arrArtiBtk(x) Next ' MsgBox(arrArti(0).ToString) End Sub Sub load_databasePerpus() Dim arrPerpus() As String = {} Dim arrArtiPerpus() As String = {} Try ' On Error Resume Next Dim sMySQLConn = "server=localhost;user id=root;password='';database=skripsiryan" Dim oMySQLConn As New MySqlConnection(sMySQLConn) oMySQLConn.Open() Dim oMySQLDa As New MySqlDataAdapter Dim tPerpusDA As New MySqlDataAdapter Dim oTbl As New DataTable Dim oMySQLCmd As New MySqlCommand("select * from perpustakaan", oMySQLConn) oMySQLDa.SelectCommand = oMySQLCmd Dim oDr As MySqlDataReader oDr = oMySQLCmd.ExecuteReader oTbl.Load(oDr) Dim gb As Integer = arrKata.Length For indeks As Integer = 0 To Val(oTbl.Rows.Count) - 1 ReDim Preserve arrPerpus(indeks)

Universitas Sumatera Utara

91

arrPerpus(indeks) = oTbl.Rows(indeks)("keyword") Next indeks ' MsgBox(arrArti(0).ToString) ListView1.View = View.Details ListView1.Cursor = Cursors.Hand ListView1.View = View.Details ListView1.HeaderStyle = ColumnHeaderStyle.None ListView2.View = View.Details ListView2.Cursor = Cursors.Hand ListView2.View = View.Details ListView2.HeaderStyle = ColumnHeaderStyle.None Catch ex As Exception MsgBox("Database belum terhubung, aktifkan MySQL terlebih dahulu", vbCritical, "Database tidak terhubung") Close() End Try Dim gbg As Integer = arrKata.Length For x As Integer = 0 To arrPerpus.Length - 1 ReDim Preserve arrKata(gbg + x) arrKata(gbg + x) = arrPerpus(x) ReDim Preserve arrArti(gbg + x) arrArti(gbg + x) = "Istilah Perpustakaan" Next ' MsgBox(arrArti(0).ToString) End Sub Sub LD() On Error Resume Next Dim run_time As Stopwatch = Stopwatch.StartNew() Dim indeks2 As Integer indeks2 = 0 run_time.Start() 'Pengecekan database yang digunakan. For indeks As Integer = 0 To arrKata.Length - 1 Dim distance As Integer = LevenshteinDistance(txtCari.Text, arrKata(indeks)) Dim words As String = arrKata(indeks) Dim ind As String = arrArti(indeks) If (distance arrDistance(j) Then y = arrDistance(i) z = HasilPencarianLD(i) q = indoLD(i) arrDistance(i) = arrDistance(j) indoLD(i) = indoLD(j) HasilPencarianLD(i) = HasilPencarianLD(j) arrDistance(j) = y HasilPencarianLD(j) = z indoLD(j) = q End If Next j Next i run_time.Stop() run_timeLD = run_time.Elapsed.TotalSeconds Dim batas As Integer batas = 0 If HasilPencarianLD.Length >= 20 Then

Universitas Sumatera Utara

93

batas = 20 ElseIf HasilPencarianLD.Length >= 10 Then batas = 10 ElseIf HasilPencarianLD.Length < 5 Then batas = HasilPencarianLD.Length - 1 End If If ckInstan.Checked = True Then ListView1.Visible = True Panel2.Visible = True ListView1.Items.Clear() For x As Integer = 0 To batas With ListView1.Items.Add(HasilPencarianLD(x), 0) .SubItems.Add(0) End With If ((IndexOf(arrKata, HasilPencarianLD(x)))