Studi Perbandingan Kinerja Teoretis Dan Rill AlgoritmaExact String Matching Shift-And
A-1
LISTING PROGRAM
Imports MySql.Data.MySqlClient
Public Class Algoritma
Public x(), y() As Char
Public p, t As String
Public m, n, i, j, result1, cocok1, mpNext(0 To 255) As Integer
Public result2, state, matched, matchMask, cocok2, flag, d, S(0 To 255) As
Integer
Public t1, t2 As String
Public t3, t4 As String
Dim conn As New MySqlConnection("server = localhost; user id = root;
database = algo_pseudocode")
'Perhitungan Tabel Pergeseran preSA
Public Sub preSA(p)
p = Cari.Text.ToUpper
m = p.Length
Dim temp As Integer
flag = 0
For i = 0 To 255
S(i) = 0
Next i
For i = 0 To m - 1
temp = Asc(p(i))
S(temp) = S(temp) Or (1 -1) AndAlso (x(i) x(j)))
j = mpNext(j)
End While
i = (i + 1)
j = (j + 1)
mpNext(i) = j
End While
End Sub
'Algoritma Morris Pratt
Public Function MP(x, y)
m = x.Length
n = y.Length
y += "\0"
pre-MP(x)
j = 0
i = 0
result2 = 0
While (j < n)
Do While ((i > -1) AndAlso (x(i) y(j)))
i = mpNext(i)
Loop
i = (i + 1)
j = (j + 1)
If (i >= m) Then
result2 = 1
i = mpNext(i)
End If
End While
Return result2
End Function
Private Sub Algoritma_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
conn.Open()
Dim cmd = New MySqlCommand("SELECT id, nama_algo from algoritma order
by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
For i As Integer = 0 To dt.Rows.Count - 1
Universitas Sumatera Utara
A-3
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
Next
conn.Close()
End Sub
'Jika user menekan Enter, maka sistem akan langsung melakukan proses
pencarian walaupun button Cari tidak ditekan
Private Sub cari_keypress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Cari.KeyPress
If Asc(e.KeyChar) = 13 Then
b_cari.PerformClick()
End If
End Sub
Public Sub b_cari_Click(sender As Object, e As EventArgs) Handles
b_cari.Click
lb_SA.Items.Clear()
lb_MP.Items.Clear()
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
cocok1 = 0
cocok2 = 0
Try
p = Cari.Text.ToUpper
x = Cari.Text.ToUpper.ToCharArray
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma order by id
ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
t1 = ((Now.TimeOfDay.Milliseconds))
For i As Integer = 0 To dt.Rows.Count - 1
Dim temp As String
Dim ketemu1 As Integer
temp = dt.Rows(i)("nama_algo")
t = temp.ToUpper
ketemu1 = SA(p, t)
If (ketemu1 = 1) Then
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab &
dt.Rows(i)("nama_algo"))
cocok1 += 1
End If
Next
t2 = ((Now.TimeOfDay.Milliseconds) - t1)
TextBox1.Text = t2.ToString
t3 = ((Now.TimeOfDay.Milliseconds))
For i As Integer = 0 To dt.Rows.Count - 1
Dim temp As String
Dim ketemu2 As Integer
temp = dt.Rows(i)("nama_algo")
y = temp.ToUpper.ToCharArray
Universitas Sumatera Utara
A-4
ketemu2 = MP(x, y)
If (ketemu2 = 1) Then
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab &
dt.Rows(i)("nama_algo"))
cocok2 += 1
End If
Next
t4 = ((Now.TimeOfDay.Milliseconds) - t3)
TextBox3.Text = t4.ToString
If (cocok2 = 0) Then
MessageBox.Show("Kata Tidak Ditemukan!" + Chr(13) + "Running
Time Shift-And : " & t2 & " ms" + Chr(13) + "Running Time Morris-Pratt : " & t4
& " ms")
Else
MessageBox.Show("Kata Ditemukan !" + Chr(13) + "Total Hasil
Pencarian : " & cocok2)
End If
conn.Close()
Catch myError As MySqlException
MessageBox.Show("Koneksi Error" & myError.Message)
End Try
End Sub
Private Sub reset_Click(sender As Object, e As EventArgs) Handles
b_reset.Click
conn.Open()
Dim cmd = New MySqlCommand("SELECT id, nama_algo from algoritma order
by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Cari.Clear()
lb_SA.Items.Clear()
lb_MP.Items.Clear()
TextBox1.Clear()
TextBox3.Clear()
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
For i As Integer = 0 To dt.Rows.Count - 1
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
Next
conn.Close()
End Sub
Private Sub lb_SA_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles lb_SA.SelectedIndexChanged
Universitas Sumatera Utara
A-5
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma where id = " &
Val(lb_SA.SelectedItem) & " order by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Try
Pseudocode.nama_al.Text = dt.Rows(0)("nama_algo")
Pseudocode.isi.Text = dt.Rows(0)("isi")
Pseudocode.kata = Cari.Text
Pseudocode.ShowDialog()
Catch ex As Exception
MsgBox("Tidak ada nama algoritma yang cocok!")
End Try
conn.Close()
End Sub
Private Sub lb_MP_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles lb_MP.SelectedIndexChanged
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma where id = " &
Val(lb_MP.SelectedItem) & " order by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Try
Pseudocode.nama_al.Text = dt.Rows(0)("nama_algo")
Pseudocode.isi.Text = dt.Rows(0)("isi")
Pseudocode.kata = Cari.Text
Pseudocode.ShowDialog()
Catch ex As Exception
MsgBox("Tidak ada nama algoritma yang cocok!")
End Try
conn.Close()
End Sub
End Class
Universitas Sumatera Utara
DAFTAR RIWAYAT HIDUP
CURRICULUM VITAE
I.
DATA PRIBADI / Personal Identification
Nama Lengkap
:
Agustin Sri Intan Sinaga
Tempat /
:
Medan /
Tanggal Lahir
23 Agustus 1996
Jenis Kelamin
:
Perempuan
Agama
:
Kristen Protestan
Kebangsaan
:
Indonesia
Alamat
:
Jalan S. M. Raja Gang. Mesjid No. 34 Medan
Telepon
:
+6285761777710
Motto Hidup
:
Kerjakanlah apa yang anda cintai dan cintailah apa yang anda
kerjakan
II.
Tinggi / Berat
:
157 cm / 58 kg
Email
:
[email protected]
KESEHATAN / Health
Tidak memiliki cacat fisik maupun mental dan tidak memiliki penyakit bawaan.
III.
KEMAMPUAN / Capabilities
Bahasa
: Indonesia, Inggris, Korea
Bahasa Pemrograman
: Visual Basic
Database
: MySQL
Lainnya
: Ms. Office
Universitas Sumatera Utara
IV.
PENDIDIKAN FORMAL / Formal Education
[ 2013 – 2017 ]
“Studi Perbandingan Kinerja Teoretis dan Riil Algoritma Exact String Matching ShiftAnd dan Morris-Pratt”
S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
[ 2010 – 2013 ]
SMA Negeri 14 Medan
[ 2007 – 2010 ]
SMP Negeri 3 Medan
[ 2001 – 2007 ]
SD Negeri 064012 Medan
[2000 – 2001 ]
TK Prabudi Medan
V.
PENDIDIKAN NON-FORMAL / Informal Education
[ 2011 – 2013 ]
BT / BS Medica, Medan
[ 2010 – 2011 ]
BT / BS Ganesha Operation, Medan
[ 2007 – 2010 ]
BT / BS Medica, Medan
[ 2005 – 2007 ]
Essential English Course, Medan
BT / BS Bima, Medan
VI.
PRESTASI / Achievements
1)
Sertifikasi Internasional Microsoft Office Excel 2010 , Medan [2016]
Universitas Sumatera Utara
VII. SEMINAR / Seminars
1)
Peserta Seminar Nasional Bank Indonesia , Universitas Sumatera Utara, Medan [2016]
2)
Peserta Seminar Nasional Literasi Informasi (SENARAI) Fakultas Ilmu Komputer dan
Teknologi Informasi, Universitas Sumatera Utara, Medan [2014]
VIII. PENGALAMAN ORGANISASI / Organizational Experiences
1)
Anggota Divisi Agama Kristen PEMA Fasilkom-TI USU [2015 – 2016]
2)
Koodinator Unit Kegiatan Mahasiswa Kristen Ilmu Komputer Universitas Sumatera
Utara [2014 – 2016]
IX.
X.
PENGALAMAN KEPANITIAAN / Committee Experiences
1)
Anggota Acara Retreat Fasilkom-TI USU [2016]
2)
Anggota Konsumsi Paskah Oikumene USU [2014]
3)
Panitia Pelaksana Natal Oikumene USU [2014]
4)
Anggota Kesehatan PORSENI IMILKOM USU [2014]
5)
Anggota Dana Paskah Fasilkom-TI USU [2013]
6)
Anggota Acara Natal S1 Ilmu Komputer USU [2013]
PENGALAMAN BEKERJA / Working Experience
Praktik Kerja Lapangan di Kantor Wilayah Direktorat Jendral Pajak Sumatera I [2016]
Universitas Sumatera Utara
LISTING PROGRAM
Imports MySql.Data.MySqlClient
Public Class Algoritma
Public x(), y() As Char
Public p, t As String
Public m, n, i, j, result1, cocok1, mpNext(0 To 255) As Integer
Public result2, state, matched, matchMask, cocok2, flag, d, S(0 To 255) As
Integer
Public t1, t2 As String
Public t3, t4 As String
Dim conn As New MySqlConnection("server = localhost; user id = root;
database = algo_pseudocode")
'Perhitungan Tabel Pergeseran preSA
Public Sub preSA(p)
p = Cari.Text.ToUpper
m = p.Length
Dim temp As Integer
flag = 0
For i = 0 To 255
S(i) = 0
Next i
For i = 0 To m - 1
temp = Asc(p(i))
S(temp) = S(temp) Or (1 -1) AndAlso (x(i) x(j)))
j = mpNext(j)
End While
i = (i + 1)
j = (j + 1)
mpNext(i) = j
End While
End Sub
'Algoritma Morris Pratt
Public Function MP(x, y)
m = x.Length
n = y.Length
y += "\0"
pre-MP(x)
j = 0
i = 0
result2 = 0
While (j < n)
Do While ((i > -1) AndAlso (x(i) y(j)))
i = mpNext(i)
Loop
i = (i + 1)
j = (j + 1)
If (i >= m) Then
result2 = 1
i = mpNext(i)
End If
End While
Return result2
End Function
Private Sub Algoritma_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
conn.Open()
Dim cmd = New MySqlCommand("SELECT id, nama_algo from algoritma order
by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
For i As Integer = 0 To dt.Rows.Count - 1
Universitas Sumatera Utara
A-3
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
Next
conn.Close()
End Sub
'Jika user menekan Enter, maka sistem akan langsung melakukan proses
pencarian walaupun button Cari tidak ditekan
Private Sub cari_keypress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Cari.KeyPress
If Asc(e.KeyChar) = 13 Then
b_cari.PerformClick()
End If
End Sub
Public Sub b_cari_Click(sender As Object, e As EventArgs) Handles
b_cari.Click
lb_SA.Items.Clear()
lb_MP.Items.Clear()
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
cocok1 = 0
cocok2 = 0
Try
p = Cari.Text.ToUpper
x = Cari.Text.ToUpper.ToCharArray
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma order by id
ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
t1 = ((Now.TimeOfDay.Milliseconds))
For i As Integer = 0 To dt.Rows.Count - 1
Dim temp As String
Dim ketemu1 As Integer
temp = dt.Rows(i)("nama_algo")
t = temp.ToUpper
ketemu1 = SA(p, t)
If (ketemu1 = 1) Then
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab &
dt.Rows(i)("nama_algo"))
cocok1 += 1
End If
Next
t2 = ((Now.TimeOfDay.Milliseconds) - t1)
TextBox1.Text = t2.ToString
t3 = ((Now.TimeOfDay.Milliseconds))
For i As Integer = 0 To dt.Rows.Count - 1
Dim temp As String
Dim ketemu2 As Integer
temp = dt.Rows(i)("nama_algo")
y = temp.ToUpper.ToCharArray
Universitas Sumatera Utara
A-4
ketemu2 = MP(x, y)
If (ketemu2 = 1) Then
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab &
dt.Rows(i)("nama_algo"))
cocok2 += 1
End If
Next
t4 = ((Now.TimeOfDay.Milliseconds) - t3)
TextBox3.Text = t4.ToString
If (cocok2 = 0) Then
MessageBox.Show("Kata Tidak Ditemukan!" + Chr(13) + "Running
Time Shift-And : " & t2 & " ms" + Chr(13) + "Running Time Morris-Pratt : " & t4
& " ms")
Else
MessageBox.Show("Kata Ditemukan !" + Chr(13) + "Total Hasil
Pencarian : " & cocok2)
End If
conn.Close()
Catch myError As MySqlException
MessageBox.Show("Koneksi Error" & myError.Message)
End Try
End Sub
Private Sub reset_Click(sender As Object, e As EventArgs) Handles
b_reset.Click
conn.Open()
Dim cmd = New MySqlCommand("SELECT id, nama_algo from algoritma order
by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Cari.Clear()
lb_SA.Items.Clear()
lb_MP.Items.Clear()
TextBox1.Clear()
TextBox3.Clear()
lb_SA.Items.Add("NO." & vbTab & "ALGORITMA")
lb_MP.Items.Add("NO." & vbTab & "ALGORITMA")
For i As Integer = 0 To dt.Rows.Count - 1
lb_SA.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
lb_MP.Items.Add(dt.Rows(i)("id") & vbTab & dt.Rows(i)("nama_algo"))
Next
conn.Close()
End Sub
Private Sub lb_SA_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles lb_SA.SelectedIndexChanged
Universitas Sumatera Utara
A-5
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma where id = " &
Val(lb_SA.SelectedItem) & " order by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Try
Pseudocode.nama_al.Text = dt.Rows(0)("nama_algo")
Pseudocode.isi.Text = dt.Rows(0)("isi")
Pseudocode.kata = Cari.Text
Pseudocode.ShowDialog()
Catch ex As Exception
MsgBox("Tidak ada nama algoritma yang cocok!")
End Try
conn.Close()
End Sub
Private Sub lb_MP_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles lb_MP.SelectedIndexChanged
conn.Open()
Dim cmd = New MySqlCommand("SELECT * from algoritma where id = " &
Val(lb_MP.SelectedItem) & " order by id ASC", conn)
Dim adapter = New MySqlDataAdapter(cmd)
Dim dt As New DataTable
adapter.Fill(dt)
Try
Pseudocode.nama_al.Text = dt.Rows(0)("nama_algo")
Pseudocode.isi.Text = dt.Rows(0)("isi")
Pseudocode.kata = Cari.Text
Pseudocode.ShowDialog()
Catch ex As Exception
MsgBox("Tidak ada nama algoritma yang cocok!")
End Try
conn.Close()
End Sub
End Class
Universitas Sumatera Utara
DAFTAR RIWAYAT HIDUP
CURRICULUM VITAE
I.
DATA PRIBADI / Personal Identification
Nama Lengkap
:
Agustin Sri Intan Sinaga
Tempat /
:
Medan /
Tanggal Lahir
23 Agustus 1996
Jenis Kelamin
:
Perempuan
Agama
:
Kristen Protestan
Kebangsaan
:
Indonesia
Alamat
:
Jalan S. M. Raja Gang. Mesjid No. 34 Medan
Telepon
:
+6285761777710
Motto Hidup
:
Kerjakanlah apa yang anda cintai dan cintailah apa yang anda
kerjakan
II.
Tinggi / Berat
:
157 cm / 58 kg
:
[email protected]
KESEHATAN / Health
Tidak memiliki cacat fisik maupun mental dan tidak memiliki penyakit bawaan.
III.
KEMAMPUAN / Capabilities
Bahasa
: Indonesia, Inggris, Korea
Bahasa Pemrograman
: Visual Basic
Database
: MySQL
Lainnya
: Ms. Office
Universitas Sumatera Utara
IV.
PENDIDIKAN FORMAL / Formal Education
[ 2013 – 2017 ]
“Studi Perbandingan Kinerja Teoretis dan Riil Algoritma Exact String Matching ShiftAnd dan Morris-Pratt”
S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
[ 2010 – 2013 ]
SMA Negeri 14 Medan
[ 2007 – 2010 ]
SMP Negeri 3 Medan
[ 2001 – 2007 ]
SD Negeri 064012 Medan
[2000 – 2001 ]
TK Prabudi Medan
V.
PENDIDIKAN NON-FORMAL / Informal Education
[ 2011 – 2013 ]
BT / BS Medica, Medan
[ 2010 – 2011 ]
BT / BS Ganesha Operation, Medan
[ 2007 – 2010 ]
BT / BS Medica, Medan
[ 2005 – 2007 ]
Essential English Course, Medan
BT / BS Bima, Medan
VI.
PRESTASI / Achievements
1)
Sertifikasi Internasional Microsoft Office Excel 2010 , Medan [2016]
Universitas Sumatera Utara
VII. SEMINAR / Seminars
1)
Peserta Seminar Nasional Bank Indonesia , Universitas Sumatera Utara, Medan [2016]
2)
Peserta Seminar Nasional Literasi Informasi (SENARAI) Fakultas Ilmu Komputer dan
Teknologi Informasi, Universitas Sumatera Utara, Medan [2014]
VIII. PENGALAMAN ORGANISASI / Organizational Experiences
1)
Anggota Divisi Agama Kristen PEMA Fasilkom-TI USU [2015 – 2016]
2)
Koodinator Unit Kegiatan Mahasiswa Kristen Ilmu Komputer Universitas Sumatera
Utara [2014 – 2016]
IX.
X.
PENGALAMAN KEPANITIAAN / Committee Experiences
1)
Anggota Acara Retreat Fasilkom-TI USU [2016]
2)
Anggota Konsumsi Paskah Oikumene USU [2014]
3)
Panitia Pelaksana Natal Oikumene USU [2014]
4)
Anggota Kesehatan PORSENI IMILKOM USU [2014]
5)
Anggota Dana Paskah Fasilkom-TI USU [2013]
6)
Anggota Acara Natal S1 Ilmu Komputer USU [2013]
PENGALAMAN BEKERJA / Working Experience
Praktik Kerja Lapangan di Kantor Wilayah Direktorat Jendral Pajak Sumatera I [2016]
Universitas Sumatera Utara