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, KMP
1. PENDAHULUAN
Aplikasi DatabaseServer adalah sebuah mata kuliah yang ada di Management Informatika. Matakuliah tersebut mempelajari tentang MySQL. MySQL merupakan singkatan dari My Structured Query Languageadalah sebuah program databaseserver 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 webPHP 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.
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 alfabet 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 algoritmaKnuth-Morris-Pratt pada saat mencocokan
string adalah sebagai berikut [5][7][8]:
1. AlgoritmaKnuth-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 :
a.
Karakter di pattern dan diteks yang dibandingkan tidak cocok (mismatch).b.
Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan diposisi ini.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 Pratt sebagai solusi dalam penyelesaian masalah pendeteksian kesalahan pengetikan. Pada aplikasi tersebut 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 pendeteksikesalahan.
Sebagai Contoh :
Teks = CREATE DATABASE MAHASISWA
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
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 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 A
tidak 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 A
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,
Tabel 4. Pencocokan Pattern Keempat
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 5. Pencocokan Pattern Kelima
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 6. Pencocokan Pattern Keenam
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 7. Pencocokan Pattern Ketujuh
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 8. Pencocokan Pattern Kedelapan
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 9. Pencocokan Pattern Kesembilan
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 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 A
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 A
tidak 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 A
tidak 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 A
tidak 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 A
tidak 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 A
tidak 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 A
tidak 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 A
tidak cocok, geser pattern satu langkah ke kanan menuju indeks berikutnya,
Tabel 19. Pencocokan Pattern Kesembilan 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 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
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 SQLQuery
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.
[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.