Perancangan Aplikasi Pendeteksi Kesalahan Perintah SQL Query Menggunakan Algoritma Knuth Morris Pratt
Perancangan Aplikasi Pendeteksi Kesalahan Perintah SQL Query
Menggunakan Algoritma Knuth Morris Pratt
Guidio L Ginting, Dian Puspita Napitupulu, Pristiwanto
Program Studi Teknik Informatika STMIK Budi Darma, Medan, Indonesia
Jl. Sisingamangaraja No. 338 Simpang Limun, Medan, Indonesia
Abstrak
Aplikasi Database Server kini banyak dimanfaatkan oleh lembaga atau institusi untuk berbagai kepentingan. Kebanyakan dari
penguna melakukan pendeteksian kesalahan pengetikan dengan cara manual sehingga kurang efektif. Permasalahan yang
sering terjadi yaitu pada penulisan atau pengetikan dikarenakan sensitifnya bahasa pemograman tersebut. Misalanya huruf
besar dan kecil, titik dan koma, atau tanda baca lainnya. Selain dari masalah tersebut pengguna dari aplikasi MySQL pada
umumnya menggunakan tools untuk membantu dalam pembuatan database ataupun dalam proses manipulasi sehingga struktur
Query dari SQL sering dilupakan. Algoritma Knuth-Morris Pratt merupakan algoritma yang digunakan untuk melakukan
proses pencocokan string. Algoritma ini merupakan jenis Exact String Matching Algorithm yang merupakan pencocokan string
secara tepat dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string
yang sama. Algoritma Knuth-Morris Pratt merupakan bagian dalam proses pencarian string yang memegang peranan penting
untuk mendeteksi kesalahan menjadi lebih cepat dan efisien. Untuk mengetahui kesalahan pengetikan perintah SQL dengan
menggunakan aplikasi pendeteksi kesalahan perintah SQL maka penugguna terlebih dahulu melakukan penginputan file SQL
yang berisikan struktur database. Setelah itu pengguna juga mengetikkan Query SQL yang akan diperiksa. Melalui langkah
tersebut maka dilakukan perbandingan antara Query yang diinput oleh pengguna dengan struktur SQL.Kata Kunci: Pendeteksi, Kesalahan, SQL Query, KMP
Abstract
Database Server applications are now widely used by institutions or institutions for various purposes. Most users detect the
typing error manually so it is less effective. The problem that often occurs is writing or typing due to the sensitivity of the
programming language. For example uppercase and lowercase letters, periods and commas, or other punctuation marks. Apart
from these problems users of the MySQL application generally use tools to assist in database creation or in the manipulation
process so that the Query structure of SQL is often forgotten. The Knuth-Morris Pratt algorithm is an algorithm used to perform
string matching processes. This algorithm is an Exact String Matching Algorithm type which is matching strings correctly
with the arrangement of characters in a matched string having the number or sequence of characters in the same string. The
Knuth-Morris Pratt algorithm is part of the string search process that plays an important role in detecting errors faster and more
efficiently. To find out the SQL typing error using the SQL command error detection application, the user first enters the SQL
file containing the database structure. After that, the user also types in the SQL Query to be checked. Through this step, a
comparison is made between the queries inputted by users with the SQL structure. Keywords: Detectors, Errors, SQL Query, KMP1. PENDAHULUAN
Aplikasi Database Server adalah sebuah mata kuliah yang ada di Management Informatika. Matakuliah tersebut mempelajari tentang MySQL. MySQL merupakan singkatan dari My Structured Query Language adalah sebuah program database server yang mampu menerima dan mengirimkan data dengan sangat cepat serta multi user, sedangkan SQL adalah bahasa perintah dasar yang ada didalamnya. SQL merupakan suatu bahasa yang digunakan untuk mengakses database atau disebut juga dengan istilah query. SQL dapat digunakan untuk mengakses
database , mengambil data dari database, menambahkan data kedatabase, menghapus data didalam database, dan
mengubah data didalam database.Aplikasi Database Server kini banyak dimanfaatkan oleh lembaga atau institusi untuk berbagai kepentingan. Namun masih banyak pengguna dari aplikasi tersebut sulit untuk mendeteksi kesalahan pengetikan pada SQL, kebanyakan dari penguna melakukan pendeteksian kesalahan pengetikan dengan cara manual sehingga sangat tidak efektif dan kurang efisien. Permasalahan yang sering terjadi yaitu pada penulisan atau pengetikan dikarenakan sensitifnya bahasa pemograman tersebut. Misalanya huruf besar dan kecil, titik dan koma, atau tanda baca lainnya. Selain dari masalah tersebut pengguna dari aplikasi MySQL pada umumnya menggunakan tools untuk membantu dalam pembuatan database ataupun dalam proses manipulasi sehingga struktur Query dari SQL sering dilupakan. Aplikasi tersebut dibangun berbasis web karena web PHP mampu mencocokkan SQL sehingga pendeteksian kesalahan dapat dilakukan lebih mudah. Dengan memanfaatkan teknologi web yang dapat mendeteksi persentase kesalahan, maka tepat jika aplikasi deteksi kesalahan pengetikan SQL Query berada pada jaringan internet. Selain mudah untuk diakses, mudah pula digunakan untuk siapa saja yang memerlukan.
Permasalahan di atas yang menjadi latar belakang dan alasan utama penulis untuk mengembangkan suatu sistem yang mampu mendeteksi kesalahan pengetikan pada SQL berbasis web dengan menggunakan algoritma pencarian pencocokan string. Adapun algoritma yang digunakan dalam pencocokan string adalah algoritma
Knuth Morris Pratt . Algoritma Knuth Morris Pratt merupakan algoritma pencarian hasil pengembangan dari
algoritma pencarian Brute Force. Algoritma ini memiliki keunggulan pencarian kecocokan pada file yang
berukuran besar (Yogyawan Halim Agung, 2016).2. TEORITIS
2.1 Pendeteksian
Deteksi adalah suatu proses untuk memeriksa atau melakukan pemeriksaan terhadap sesuatu dengan menggunakan cara dan teknik tertentu. Deteksi dapat digunakan untuk berbagai masalah, misalnya dalam sistem pendeteksi suatu penyakit, dimana sistem mengidentifikasi masalah-masalah yang berhubungan dengan penyakit yang biasa disebut gejala. Tujuan dari deteksi adalah memecahkan suatu masalah dengan berbagai cara tergantung metode yang diterapkan sehingga menghasilkan sebuah solusi [3].
2.2 String Matching
String Matching adalah proses pencarian semua kemunculan query yang selanjutnya disebut pattern ke dalam
string yang lebih panjang (teks). Pattern di lambangkan dengan x=x [0…m-1] dan panjangnya adalah m. Teks di lambangkan dengan y= y [0…n-1] dan panjanganya adalah n. Kedua string terdiri dari kumpulan karakter yang disebut alf abet yang dilambangakan dengan ∑ dan mempunyai ukuran σ. String matching di bagi dua, yaitu exact matching dan heuristic matching [5][6].
2.3 Probabilitas Knuth Morris Pratt
Algoritma Knuth-Morris-Pratt merupakan proses pencocokan string. Bila terjadi ketidak cocokan pada saat
pattern sejajar dengan teks [i..i + n -1]. Ketidak cocokan pertama terjadi di antara teks [i + j] dan pattern [j],
dengan <j<n. Berarti, teks [i..i + j]=pattern [0..j + 1] dan a = teks [i+j] tidak sama dengan b = pattern [j], ketika di geser, sangat beralasan bila ada sebuah awalan ʋ dari pattern akan sama dengan sebagian akhiran u dari sebagian teks.
Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-Morris-Pratt pada saat mencocokan
string adalah sebagai berikut [5][7][8]: 1.
Algoritma Knuth-Morris-Pratt mulai mencocokan pattern pada awal teks.
2. Dari kiri ke kanan, algoritma tersebut akan mencocokkan karakter per karakter pattern, dengan karakter di teks yang bersesuaian sampai salah satu kondisi berikut terpenuhi : Karakter di pattern dan diteks yang dibandingkan tidak cocok (mismatch).
a.
Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan diposisi ini.
b.
Algoritma kemudian menggeser pattern berdasarkan table next, lalu menghitung langkah 2 sampai pattern berada di unjung teks.
3. ANALISA DAN PEMBAHASAN
Setiap bahasa pemograman memiliki aturan masing-masing. Seperti MySQL, setiap statement atau perintah harus diakhiri dengan titik koma. Saat aturan penulisan tidak sesuai, akan terjadi error pada program. Kekurangan dan kelebihan tanda kutip. Untuk mengetahui kesalahan pengetikan perintah SQL dengan menggunakan aplikasi pendeteksi kesalahan perintah SQL maka pengguna terlebih dahulu melakukan penginputan file SQL yang berisikan struktur database. Setelah itu pengguna juga mengetikkan Query SQL yang akan diperiksa. Melalui langkah tersebut maka dilakukan perbandingan antara Query SQL yang diinput oleh pengguna dengan struktur SQL.
Aplikasi pendeteksi kesalahan pengetikan yang akan dibangun menggunakan algoritma Knuth Morris sebagai solusi dalam penyelesaian masalah pendeteksian kesalahan pengetikan. Pada aplikasi tersebut
Pratt
penyajian kesalahan kata disesuaikan dengan yang dibuat dan disimpan didalam database. Oleh karena itu pada perancangan aplikasi pencaraian atau pendeteksian kesalahan dengan menggunakan algoritma Knuth Morrish
Pratt diharapkan dapat menyelesaikan permasalahan tersebut. Proses pencarian kesalahan kata dengan
menerapkan algoritma yang digunakan, merupakan hal penting dalam pembuatan aplikasi pendeteksi kesalahan.Sebagai Contoh : Teks = CREATE DATABASE MAHASISWA
= SISWA
Pattern
Tabel 1. Pencocokan Pattern Pertama 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
7
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 7. Pencocokan Pattern Ketujuh
1
2
3
4
5
6
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
1
7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 10. Pencocokan Pattern Kesepuluh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 9. Pencocokan Pattern Kesembilan
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
6
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A5
4
3
2
1
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 8. Pencocokan Pattern Kedelapan
2
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 6. Pencocokan Pattern Keenam
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,2
Tabel 2. Pencocokan Pattern Kedua
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 3. Pencocokan Pattern Ketiga
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 4. Pencocokan Pattern Keempat
1
3
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A2
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
7
6
5
4
3
1
4
Tabel 5. Pencocokan Pattern Kelima
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
7
6
5
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,
Tabel 11. Pencocokan Pattern Kesebelas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 12. Pencocokan Pattern Kedua Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 13. Pencocokan Pattern Ketiga Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 14. Pencocokan Pattern Keempat Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 15. Pencocokan Pattern Kelima Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 16. Pencocokan Pattern Keenam Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 17. Pencocokan Pattern Ketujuh Belas
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, Tabel 18. Pencocokan Pattern Kedelapan Belas
1
2
3
4
5
6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W Atidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya, 1 2 Tabel 19. Pencocokan Pattern Kesembilan Belas 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 C R E A T E D A T A B A S E M A H A S
I S W A S
I S W A tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,
Tabel 20. Pencocokan Pattern Kedua Puluh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
C R E A T E D A T A B A S E M A H A S I S W A
S I S W A Cocok, pattern ditemukan dan pencarian berhenti di indeks ke 14.4. IMPLEMENTASI
Implementasi sistem program ini mencakup spesifikasi kebutuhan perangkat keras (hardware) dan spesifikasi perangkat lunak (software). Hasil pengujian program menampilkan hasil output dari sebuah input data pada aplikasi yang telah siap. Untuk pengujian programnya bisa di lihat sebagai berikut:
Gambar 1. Form Deteksi Kesalahan Perintah SQL Query Gambar 1 merupakan Form deteksi kesalahan sql query merupakan form yang disediakan untuk proses pencarian database dan form penginputan perintah Query.
Gambar 2. Tampilan Hasil Deteksi Gambar 2 merupakan Form hasil deteksi kesalahan SQL Query merupakan form output dari hasil proses pendeteksian kesalahan Query.
5. KESIMPULAN
Berdasarkan pembahasan dan hasil yang diperoleh maka dapat disimpulkan hal-hal berikut: 1.
Pendeteksian atau pencarian kesalahan pengetikan pada SQL Query dilakukan dengan cara membandingkan struktur SQL dengan Query yang diketik.
2. Algoritma Knuth Morris Pratt dapat diterapkan untuk mendeteksi kesalahan pengetikan SQL Query. Tetapi masih belum efektif untuk melakukan pendeteksian.
3. Berdasarkan analisa dan pengujian bahwa aplikasi cocok dirancang menggunakan bahasa pemograman PHP, dan berbasis Website.
REFERENCES
[1] Halimah Tus Sa'diah, "Implementasi Algoritma Knuth-Morris-Pratt Pada Fungsi Pencarian Judul Tugas Akhir Repository," JURNAL
KOMPUTASI, vol. 14, p. 115, January 2017.[2] Jogiyanto, Analisis dan Desain Sistem Informasi. Yogyakarta: Andi, 2005. [3] http://elib.unikom.ac.id/download.php?id=24997, Tanggal Akses 20 Apr. [4] Andri Kuniyo and Kusrini, Membangun Sistem Informasi Akuntansi dengan Visual Basic & SQL Server. Yogyakarta: Andi, 2007. [5] Riyanarto Sarno, Yeni Anistyasari, and Rahimi Fitri, Semantic Search. Yogyakarta: Andi, 2012. [6] E. Buulolo, Implementasi Algoritma String Matching Dalam Pencarian Surat Dan Ayat Dalam Bible Berbasis Android, Pelita Inform.
Budi Darma. III (2013) 23 –27.
[7] J.I. Sinaga, Mesran, E. Buulolo, APLIKASI MOBILE PENCARIAN KATA PADA ARTI AYAT AL- QUR’AN BERBASIS
ANDROID MENGGUNAKAN ALGORITMA STRING MATCHING, INFOTEK. 2 (2016) 68- –72.
[8] F.T. Waruwu, M. Mesran, IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATT PADA APLIKASI KAMUS ISTILAH
LATIN FLORA DAN FAUNA BERBASIS ANDROID, Maj. Ilm. INTI. 4 (2014) 96 –102.