Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstrak
Basis data lanjut (BDL) adalah salah satu mata kuliah yang ada pada jurusan komputer di Politeknik
Caltex Riau. Mata kuliah ini mempelajari tentang perintah-perintah query. Perintah query ini dibuat
dengan menggunakan database oracle. Permasalahan yang terjadi pada mata kuliah ini adalah kesulitan
saat dosen mendeteksi kebenaran query mahasiswa dalam pelatihan perintah-perintah query, karena
perintah tersebut masih dikerjakan dengan tulis tangan dan di periksa secara manual. Hal ini akan
menghabiskan banyak waktu. Salah satu solusinya adalah membangun sebuah aplikasi yang mampu
mendeteksi kebenaran dari suatu query secara otomatis. Aplikasi yang di bangun menggunakan metode
KMP, yaitu sebuah metode yang di gunakan dalam pencocokan string. Aplikasi ini dapat memberikan
bobot penilaian dari perintah query yang di masukkan berdasarkan prioritas dari kata query. Hasilnya
adalah berupa nilai pembobotan masing-masing query yang dimasukkan mahasiwa pada sistem.
Dibangun menggunakan bahasa pemograman web PHP dan database MySQL. Berdasarkan hasil
pengujian kuisioner yang diberikan terhadap mahasiswa dan dosen pengampu pada mata kuliah ini serta
pengujian terhadap metode KMP, didapatkan hasil bahwa aplikasi ini dapat membantu dosen/ staff
pengajar pada mata kuliah praktikum basis data lanjut serta membantu mahasiswa dalam pembelajaran
mata kuliah praktikum basis data lanjut.
Kata Kunci: Query, KMP, String, PHP, MySQL
Abstract
Basis data lanjut (BDL) is one of the existing courses in computer science at the Polytechnic Caltex Riau.
This course learn about the query commands. Query command is built using oracle database. The
problems that occurred on this subject is difficult to detect when a lecturer in the training of student
queries righteousness the commandments of the query, because the order was still done by hand and
write on the check manually. This is going to spend a lot of time. One solution is to build an application
that is able to detect the correctness of a query automatically. Applications built using the KMP method,
a method that is used in the matching string. This application can provide an assessment of the weight of
query commands entered by the priority of the query words. The result is a weighting value of each query
is entered students in the system. Built using web programming language PHP and the MySQL database.
Based on the results of testing the questionnaire given to students and faculty pengampu on this course
and the testing of KMP method, showed that these applications can help faculty / staff teaching on the
course and lab work-up database to help students in the learning lab course basis data lanjut.
Keywords: Query, KMP, String, PHP, MySQL
1
PENDAHULUAN
dalam mata kuliah tersebut. Seiring teknologi yang makin berkembang saat ini,
mencocokkanquery yang dibuat oleh mahasiswa dengan jawaban query yang ada pada dosen
tidak perlu dilakukan secara manual, tetapi dapat dilakukan melalui sebuah aplikasi berbasis
web PHP yang mampu mencocokkan query yang dibuat oleh mahasiswa dengan jawaban query
yang ada pada database, dimana jawaban tersebut telah dimasukkan oleh admin terlebih dahulu
ke dalam database.
Hal ini yang mendasari pembuatan aplikasi pendeteksi kebenaran perintah query, karena dengan
adanya aplikasi ini, suatu query tidak perlu di cek satu persatu. Selain itu, aplikasi ini juga dapat
memberikan pembobotan nilai kebenaran dari query tersebut, sehingga membantu mahasiswa
dalam pembelajaran mata kuliah BDL.
1.2 Perumusan Masalah
Perumusan masalah dalam proyek akhir ini adalah:
1. Bagaimana membuat sebuah aplikasi berbasis web yang dapat mencocokkan query yang
diinputkan oleh mahasiswa dengan query yang tersimpan dalam database.
2. Bagaimana menerapkan metode Knuth-Morris Pratt (KMP) dalam aplikasi sebagai
algoritma dalam pencocokan string.
2 Dasar Teori
2.1 Penelitian Sebelumnya
Dalam proyek akhir mahasiswa Universitas Maryland, atas nama Jimmy Lin, telah
melakukan penelitian dengan judul Brute Force and Indexed Approaches to Pairwise
Document Similarity Comparisons with MapReduce. Rumusan masalah dari aplikasi ini adalah
mengimplementasikan metode Brute force pada aplikasi search document pada perangkat java
desktop. Aplikasi ini di gunakan untuk mencari file document dimana inputan berupa potongan
nama file.
Berikut adalah tabel yang membandingkan antara aplikasi sebelumnya dengan aplikasi
sekarang:
Tabel 2. 1 Perbandingan aplikasi sebelumnya dengan aplikasi sekarang
Parameter
Inputan ke system
Sebelumnya
potongan karakter nama
Sekarang
String yang berisi query
document
Dasar pencarian
database
Berbasis
Java Application
Output
File document
Web PHP
Persentase kebenaran query
dan pencocokan query
indeks (yang sudah dibuat sebelumnya dan dimutakhirkan secara teratur) untuk mencari file
setelah pengguna memasukkan kriteria pencarian.
Algoritma Knuth Morris Pratt (KMP) dikembangkan oleh D. E. Knuth, bersama dengan
J. H. Morris dan V. R. Pratt. Untuk pencarian string dengan menggunakan algoritma Brute
Force, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern akan digeser
satu karakter ke kanan. Sedangkan pada algoritma KMP, kita memelihara inFormasi yang
digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan inFormasi tersebut
untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter seperti halnya pada
Makalah IF3051 Strategi Algoritma Sem. I Tahun 2010/2011 algoritma brute force. Secara
sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat
mencocokkan string:
a. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks.Dari kiri ke
kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di
teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:
i. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).
ii. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan
penemuan di posisi ini.
b. Algoritma kemudian menggeser pattern berdasarkan tabel, lalu mengulangi langkah 2
sampai pattern berada di ujung teks.
Algoritma ini menemukan semua kemunculan dari pattern dengan panjang n di dalam
teks dengan panjang m dengan kompleksitas waktu O(m+n). Algoritma ini hanya membutuhkan
O(n) ruang dari memory internal jika teks dibaca dari file eksternal. Semua besaran O tersebut
tidak tergantung pada besarnya ruang alphabet. Berikut contoh pencocokan pattern dengan
menggunakan algoritma KMP.
2.2.2.
1
A
0
2
B
0
3
a
1
4
b
2
2.3.Algoritma KMP
masukan:
sebuah array karakter, S (teks yang akan dicari)
sebuah array karakter, W (kata yang dicari)
output:
integer (yang berbasis-nol posisi di S di mana W adalah ditemukan)
5
A
3
6
a
1
mendefinisikan variabel:
integer, m 0 (awal pertandingan saat ini dalam S)
integer, i 0 (posisi dari karakter saat ini di W)
sebuah array bilangan bulat, T (meja, dihitung di tempat lain)
selama m + i adalah kurang dari panjang dari S, lakukan:
jika W [i] = S [m + i],
jika saya sama dengan (panjang dari W) -1,
kembali m
ii+1
jika tidak,
m m + i - T [i],
jika T [i] adalah lebih besar dari -1,
i T [i]
lain
i0
(Jika kita mencapai di sini, kita telah mencari semua S tidak berhasil)
mengembalikan panjang dari S.
Contoh 7:
Teks
: abcabcabd
Pattern : abcabd
Mula-mula kita hitung fungsi pinggiran untuk pattern tersebut:
Tabel 2. 3. Fungsi Pinggiran 2
J
P[j]
B[j]
Teks
:
Pattern :
1
a
0
2
b
0
3
c
0
4
a
1
5
b
2
6
d
0
abcabcabd
abcabd
Kata
Select, from, where, insert, into,
value, update, delete
Keterangan
Apabila salah pada satu karakter,
maka pembobotan pada kata
tersebut=0
Soal
Nilai user
Proses Pembobotan:
Keterangan nilai mahasiswa : penjumlahan bobot penilaian semua kata
pada query
Query di atas mempunyai 4 kata x[4]-Double Linked List Circular
Bobot nilai per-karakter = 100 / jumlah karakter pada jawaban query database
Bobot nilai per-karakter= 100/ 27 = 3.70
Pembobotan query:
prioritas untuk kata select, from =1
prioritas untuk kata nama_barang, barang =2
Tabel 3. 3. Proses pembobotan dan penilaian kecocokkan query
Parameter
X[0]
X[1]
X[2]
X[3]
Kata
Selec
nama_baran
From
Barang
Nilai
5 * 0 =0
10 * 3.7 = 37
4 * 3.7 =14.81
6 * 3.7=22.2
Gambar 3.1 merupakan penjelasan dari algoritma KMP, flowchart ini menjelaskan
bagaimana metode KMP mendapatkan output yang berupa posisi karakter yang cocok. Terlihat
pada gambar, metode KMP menyimpan nilai pergeseran dalam variable (i), pergeseran
dilakukan sebanyak nilai (i) itu sendiri.
Pada gambar 3.2 merupakan penjelasan bagaimana aplikasi mendapatkan bobot nilai
dalam pencocokkan karakter query menggunakan KMP-String Array. Pada metode ini
pembobotan nilai dilakukan dengan mudah. Terlihat pada flowchart, metode ini mengumpulkan
kata dalam array kemudian memeriksa kata tersebut pada tabel prioritas. Jika kata sama dengan
tabel prioritas, maka kesalahan pada satu karakter dianggap salah pada kata. Jika tidak, kata
tersebut akan diberi nilai sesuai dengan banyak karakter yang cocok pada kata.
4.2 Analisa Perbandingan Metode Antara Metode KMP-String Array dan Metode KMPDouble Linked List Circular
Berdasarkan pengujian dan analisa metode KMP, dapat ditarik kesimpulan bahwa
kedua metode KMP memiliki kelebihan dan kekurangan baik dalam pembobotan nilai dan
pencocokkan karakter. Terlihat pada pengujian, metode KMP-LinkedList memiliki tingkat
pencocokkan karakter yang lebih baik dari pada metode KMP-String array. Hal ini dikarenakan
metode KMP-LinkedList melakukan pencocokkan dengan mencocokkan karakter perkarakter,
sementara pada metode KMP String Array pencocokkan karakter dilakukan setelah membagi
query menjadi String array, sehingga pada metode ini karakter spasi ( ) sangat diutamakan
kebenarannya. Pengujian KMP juga memperlihatkan metode KMP String array memiliki
tingkat pembobotan nilai yang lebih baik dari metode KMP-LinkedList. Hal ini disebabkan
metode KMP-String array merupakan kumpulan kata sehingga memiliki kemudahan dalam
menentukan prioritas suatu kata. Berbeda dengan metode KMP-LinkedList yang
menggabungkan kembali query dalam bentuk susunan kata, sehingga karakter yang seharusnya
karakter biasa dapat dianggap sebagai karakter yang terdapat pada kata prioritas. Tabel berikut
merupakan penjelasan secara rinci dari perbandingan metode KMP:
Tabel 4. 1 Perbandingan Metode KMP
Parameter
Inputan query
Pencocokkan query
akhir query
9
terhadap next atau previous dari
karakter tersebut dengan jawaban
query
Pembobotan
Akurasi penilaian
Batas masalah
5.
KESIMPULAN
Kesimpulan yang dapat diambil dari pengujian dan analisa yang telah dilakukan pada
perangkat lunak adalah sebagai berikut:
1. Berdasarkan pengujian dan analisa kuisioner yang diberikan kepada user dan dosen
pengampu mata kuliah basis data lanjut dapat ditarik kesimpulan bahwa pencocokan ataupun
pendeteksian kebenaran perintah SQL Query pada mata kuliah praktikum basis data lanjut
dapat dilakukan.
2. Berdasarkan pengujian dan analisa metode KMP dapat ditarik kesimpulan bahwa penerapan
metode KMP pada pencocokan string dapat diimplementasikan.
10
DAFTAR PUSTAKA
[1]