Jurnal . ………….. Vol. XX …, No. X, Bulan 20XX, XX-XX
1
Perancangan dan Implementasi Metode Brute Force untuk Pencarian String pada Website PCR Nisa Hidayani1, Juni Nurma Sari2, Rahmat Suhatman3 Program Studi Teknik Informatika dan Multimedia, Politeknik Caltex Riau Jl. Umbansari (Patin) No. 1, Rumbai-Pekanbaru E-mail :
[email protected],
[email protected],
[email protected]
Abstrak Website merupakan salah satu sarana informasi yang biasa dimanfaatkan untuk media promosi. Tidak hanya bagi para pelaku bisnis, namun juga bagi instansi-instansi pendidikan seperti perguruan tinggi, salah satunya adalah perguruan tinggi Politeknik Caltex Riau. Dengan menambahkan sebuah textfield untuk pencarian content pada website PCR, maka diterapkanlah algoritma Brute Force untuk melakukan pencarian string dalam lingkup website PCR. Algoritma Brute Force merupakan algoritma pencarian string yang menggunakan metode pemeriksaan setiap karakter pada pattern dengan setiap karakter pada teks. Sistem yang dirancang menggunakan bahasa pemrograman web PHP dan MySQL sebagai database sistemnya ini, dapat membantu para pengguna untuk melakukan pencarian dan memperoleh informasi yang tersedia pada website PCR. Namun hasil pencarian menggunakan metode ini, tidak secepat dan seakurat hasil apabila menggunakan SQL LIKE%. Kata Kunci: website, pattern matching, Brute Force
Abstract Website is one of information media that usually used for promoting media. Not only used by business executives, but also used by education institutes such as Politeknik Caltex Riau. By complementing a textfield for content searching in the website of PCR, Brute Force Algorithm is implemented for string content searching which is used in the website scope. Brute Force is a String Matching method which compares each character of the pattern with the text. This system will be developed by using PHP as the web programming codes and MySQL as the database system. It will help the website visitors in doing content search and getting available information of the website. Nevertheless, the searching result of this method is not as quick and accurate as the SQL LIKE%’s. Keywords : website, pattern matching, Brute Force
1. Pendahuluan Banyak perguruan-perguruan tinggi telah menjadikan website sebagai media promosi maupun informasi bagi para mahasiswa dan calon mahasiswanya. Salah satu perguruan tinggi yang menerapkan website sebagai media informasinya adalah perguruan tinggi Politeknik Caltex Riau (PCR). Pada website PCR ini tersedia informasi mengenai PCR, mulai dari sejarah PCR hingga forum alumni. Pada tugas akhir ini diimplementasikan algoritma Brute Force untuk melakukan pencarian string. Pada web ini disediakan sebuah textfield dimana pengunjung dapat memasukkan keyword yang akan dicari pada web tersebut, dan sistem akan menelusuri semua content yang terdapat di dalam web tersebut untuk kemudian ditampilkan di halaman hasil pencarian. Algoritma Brute Force merupakan algoritma yang sederhana dan mudah untuk dimengerti serta memang dirancang sehingga menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, dan perkalian matriks (Munir, 2004). Dengan diimplementasikannya textfield pencarian yang dirancang dengan bahasa pemrograman web PHP ini, diharapkan dapat membantu pengunjung website dalam melakukan pencarian content yang diinginkan pada website www.pcr.ac.id.
2
Nisa Hidayani
Adapun tujuan dari proyek akhir ini adalah : 1. Menerapkan metode “Pattern Matching” khususnya algoritma brute force dalam pencarian content pada website PCR. 2. Membangun sebuah fasilitas pencarian content pada website PCR Perumusan masalah dari implementasi ini adalah : 1. Bagaimana membangun sebuah metode pencarian pada website PCR menggunakan algoritma brute force. 2. Bagaimana menerapkan metode brute force pada yang diharapkan dapat membantu pengunjung website dalam mencari content yang terdapat pada website PCR.
3. Tinjauan Pustaka 3.1 Website PCR Website PCR merupakan media informasi yang dibangun dengan tujuan untuk memberikan berbagai macam informasi mengenai PCR. Mulai dari sejarah PCR, program studi yang ada di PCR, fasilitas yang tersedia, informasi mengenai penerimaan mahasiswa baru setiap tahunnya, informasi prestasi yang dicapai oleh PCR, penelitian hingga info lowongan pekerjaan dan forum untuk para alumni PCR.
3.2 Metode Brute Force Brute Force merupakan algoritma pencarian string termudah. Dengan asusi bahwa teks berada di dalam array T[1..n] dan pattern berada di dalam array P[1..m], maka algoritma Brute Force pencocokan string adalah sebagai berikut ( Munir, 2004) : 1. Mula-mula pattern P dicocokkan pada awal teks T. 2. Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam pattern P dengan karakter yang bersesuaian di dalam teks T sampai: - Semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau - Dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil) 3. Bila pattern P belum ditemukan kecocokannya dan teks T belum habis, geser pattern P satu karakter ke kanan dan ulangi langkah 2. Persoalan pencocokan string dapat dirumuskan sebagai berikut: 1. Teks (text), yaitu (long) string yang panjangnya n karakter 2. Pattern, yaitu string dengan panjang m karakter (m < n) yang akan dicari di dalam teks Contoh cara kerja algoritma Brute Force: Pattern : FORMASI Teks : INFO INFORM DIINFORMASIKAN
Gambar 1.1 Contoh Pencarian Brute Force Sumber : bulansabit.blogdetik.com
3. Perancangan 3.1 Perancangan Pencarian Content Pada Web PCR Menggunakan Metode Brute Force Pada bagian ini akan dijelaskan bagaimana metode brute force tersebut bekerja di dalam program. Pada system ini pencarian pattern dilakukan tidak hanya pada page yang aktif saja, tetapi pencarian dilakukan pada semua page. Data yang akan diproses diasumsikan sebagai berikut : Pattern : UMPCR Teks : ujian masuk PCR I (UMPCR)
Jurnal . ………….. Vol. XX …, No. X, Bulan 20XX, XX-XX
3
Gambar 2.1 Perancangan Metode Brute Force pada system
1.
2.
3. 4.
Proses : Mula-mula pattern disejajarkan dengan teks pada posisi paling kiri (lihat baris 1 pada contoh diatas) perbandingan dilakukan mulai dari karakter pertama pattern, maka didapatkan karakter “U” dari pattern sejajar dengan karakter pertama teks, yaitu “U”. Karena terdapat kesamaan karakter antara pattern dengan teks, maka geser karakter satu langkah ke kanan dan mulai membandingkan karakter ke-dua pada pattern dengan karakter berikutnya dan ternyata masih sama, lalu lakukan pergeseran satu karakter lagi ke kanan, namun tidak terdapat kesejajaran, sehingga harus dilakukan pencocokan kembali dari awal pattern. Geser pattern satu indeks ke kanan. Cocokkan kembali setiap karakter hingga terdapat kecocokan antara pattern dan teks. Lakukan langkah-langkah diatas sampai teks habis. Gambaran Output yang dihasilkan : Ujian masuk PCR I (UMPCR I) Ujian masuk PCR I (UMPCR I) akan diadakan pada tanggal Ujian masuk PCR II (UMPCR II) Ujian masuk PCR II (UMPCR II) akan diadakan pada tanggal
3.2 Flowchart Flowchart adalah penggambaran secara grafis dari langkah-langkah dan urutan-urutan prosedur dari suatu program. Flowchart menolong analisis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian (Mrirfan, 2010).
3.2.1 Flowchart User Start
Keywords
Pencarian
Ketersedian data
tidak
Tidak ada hasil
tersedia
Tampilkan hasil
End
Gambar 2.3 Flowchart User
4
Nisa Hidayani
3.2.2 Flowchart Brute Force
Gambar 2.2 Flowchart Algoritma Brute Force
3.3 Tabel 1.
2.
Tabel Admin, berisi data-data admin yang ada dalam sistem Tabel 5.1 Tabel Admin No NamaField Tipe Data Keterangan 1
Username
String
2
Password
String
Tabel Berita, berisi berita-berita yang berhubungan dengan PCR 5.2 Tabel Berita No Nama Field Tipe Data Keterangan 1 Id_berita Number Primary Key 2 jenis_berita String 3 Judul_berita String 4 Waktu Date 5 Gambar String 6 Isi_berita String 7 Deskripsi String
Jurnal . ………….. Vol. XX …, No. X, Bulan 20XX, XX-XX
5
4. Hasil dan Pembahasan 4.1 Tampilan Awal Website
Gambar 3.3 Tampilan Awal website Pada halaman ini terdapat dua text field, satu text field digunakan untuk pencarian menggunakan metode brute force, dan satu textfield untuk melakukan pencarian menggunakan SQL LIKE %. a. Tampilan Hasil pencarian brute force Tampilan halaman apabila melakukan pencarian menggunakan metode brute force.
Gambar 3.4 Tampilan hasil pencarian brute force b. Tampilan Hasil Pencarian SQL LIKE%
Gambar 3.4 Tampilan hasil pencarian SQL LIKE%
4.2 Metode Pengujian Sistem ini diuji sebelum diimplementasikan. Metode pengujian yang dilakukan adalah : 1. Membandingkan berapa lama waktu pencarian satu pattern dan output yang dihasilkan dari metode brute force dan SQL LIKE%. 2. Membandingkan berapa lama waktu pencarian dua pattern dan output yang dihasilkan dari metode brute force dan SQL LIKE%.
6
Nisa Hidayani
3. Membandingkan berapa lama waktu pencarian lebih dari tiga pattern dan output yang dihasilkan dari metode brute force dan SQL LIKE%. 4. Meng-inputkan beberapa pattern yang tidak sama persis dengan data yang ada di dalam database namun terdapat beberapa kata saja dari pattern inputan yang sama dengan teks yang ada di dalam database dan kemudian membandingkannya dengan hasil yang akan muncul apabila dilakukan hal yang sama menggunakan SQL %LIKE. 5. Melakukan pencarian pattern yang sama sekali tidak terdapat di dalam database dan kemudian membandingkannya dengan hasil yang akan muncul apabila menggunakan SQL %LIKE. 6. Untuk melakukan pencatatan waktu pencarian, dilakukan secara otomatis dengan menggunakan PHP code. Berikut source code PHP untuk melakukan pencatatan waktu. Sesuai dengan metode pengujian yang telah dilakukan, berikut data hasil perbandingan yang didapat : 1. Pengujian I : pencarian satu pattern Tabel 5.3 Pengujian I Banyak hasil Pattern
Lama pencarian (seconds)
Pengumuman
BruteForce 6
LIKE% 6
BruteForce 1.65
LIKE % 0.121
PCR Mahasiswa
31 6
31 6
2.64 0.01
Seminar UMPCR Lomba
5 2 3
5 2 3
1.20 0.4 0.03
0.03 0.009 ss 0.03
Jurusan Jadwal
1 1
1 1
1.97 0.02
0.09 0.02
Gemastik Politeknik
1 4
1 4
2.11 0.03
0.03 0.04
JUMLAH RATA-RATA
60 6
60 6
10.06 1.006
0.43 0.043
Analisa dari pengujian I adalah : a. Hasil Pencarian : b.
=
2.
100% = 100% sama %
Waktu yang dibutuhkan: .
.
.
.
0.04 0.02
%
100%
100%
= LIKE % lebih cepat 1.006% daripada Bruteforce Pengujian II : pencarian dua pattern Tabel 5.4 Pengujian II
Lowongan kerja Job vacancy Mahasiswa PCR Ujian masuk Hasil seleksi
Banyak hasil BruteForce 18 6 2 2 1
LIKE % 18 6 5 2 1
Lama Pencarian(seconds) BruteForce LIKE% 4.06 0.088 0.08 0.053 0.0174 0.0172 0.022 0.040 0.040 0.013
Biaya kuliah
1
1
0.046
Pattern
0.016
Jurnal . ………….. Vol. XX …, No. X, Bulan 20XX, XX-XX
Cisco academy Kuliah umum Lowongan magang Pengumuman hasil JUMLAH RATA-RATA
1 1 2 4 38 3.8
1 1 2 4 41 4.1
0.039 0.035 0.042 0.06 4.441 0.4441
7
0.025 0.009 0.014 0.041 0.316 0.0316
Analisa dari pengujian II adalah : a.
100%
Hasil : 100%
=
= 90% sama., terdapat perbedaan pada pencarian pattern “Mahasiswa PCR” b.
Waktu yang dibutuhkan : = =
.
.
.
.
%
100%
%
100%
= SQL LIKE% lebih cepat 0.40% daripada metode brute force. Untuk pencarian pattern “Mahasiswa PCR”, SQL LIKE% membutuhkan waktu yang lebih lama, namun hasilnya lebih banyak. 3.
Pengujian III : pencarian lebih dari dua pattern Tabel 5.5 Pengujian III Pattern
Banyak hasil
Lama pencarian(seconds)
BruteForce
LIKE%
BruteForce
LIKE %
Penjaringan siswa unggul daerah Ujian masuk PCR PCR gelar lomba seni Biaya kuliah di PCR Inter high school accounting Pengumuman hasil ujian masuk PCR Pengumuman hasil seleksi Trakindo
2 2 1 1 1 1
2 2 1 1 1 1
1.57 0.018 0.082 0.030 0.037 0.035
0.064 0.013 0.045 0.009 0.027 0.013
1
1
0.025
0.011
Persyaratan mahasiswa berprestasi
1
1
0.075
0.034
KTM sekaligus ATM bagi mahasiswa baru
1
1
0.030
0.007
Applied engineer seminar
1
1
0.052
0.047
JUMLAH RATA-RATA
12 1.2
12 1.2
1.954 0.1954
0.27 0.027
Analisa dari pengujian III adalah : a.
Hasil pencarian : = = 100% = 100 % sama.
100%
8
Nisa Hidayani
b.
Waktu yang dibutuhkan : = =
.
.
.
.
% %
100%
100%
SQL LIKE% lebih cepat 0.084% daripada metode brute force. 4.
Pengujian IV : pencarian beberapa pattern yang tidak sama persis dengan teks Tabel 5.6 Pengujian IV Banyak hasil BruteForce 0
LIKE % 0
Lama Pencarian BruteForce LIKE % 0.026 0.017
Pemberitahuan hasil UMPCR
0
0
0.057
0.044
JUMLAH RATA-RATA
0 0
0 0
0.083 0.0415
0.061 0.0305
Pattern Inter high school olimpiade
Analisa dari pengujian IV adalah : a. Hasil = 100% = 100 % sama
= b.
100% %
Waktu yang dibutuhkan : = =
.
.
.
.
%
100%
100%
SQL LIKE% 0.37 % lebih cepat daripada metode brute force. 5.
Pengujian V : pencarian pattern yang sama sekali tidak tersedia di dalam database Tabel 5.7 Pengujian V Pattern Teknik Informatika Elearning PCR JUMLAH RATA-RATA
Banyak hasil BruteForce 0 0 0 0
Lama pencarian LIKE % 0 0 0 0
BruteForce 4.050 0.042 4.092 2.046
Analisa dari pengujian V adalah : a.
100% = 100% sama
= b.
100%
Hasil =
Waktu yang dibutuhkan = =
.
.
.
.
% %
100%
100%
SQL LIKE% 2.24% lebih cepat daripada metode brute force.
LIKE % 0.717 0.035 0.752 0.376
Jurnal . ………….. Vol. XX …, No. X, Bulan 20XX, XX-XX
9
4.3 Analisa dan Evaluasi Berdasarkan hasil pengujian-pengujian yang dilakukan, dapat dianalisa bahwa hasil pencarian metode brute force tidak jauh berbeda dengan LIKE%. Terdapat kasus tertentu yang menyebabkan perbedaan hasil ini. Seperti pada pengujian II, terjadi perbedaan hasil pencarian keyword “Mahasiswa PCR”, hal ini dikarenakan proses pengecekan karakter pada metode ini yang membandingkan setiap karakter pattern dengan karakter dan sub kata pada teks harus sesuai satu sama lain. Metode brute force juga memiliki kekurangan dalam waktu pencarian, semakin panjang pattern inputan atau semakin panjang teks yang ditelusuri, semakin lama waktu pencarian. Sedangkan apabila menggunakan SQL LIKE%, output yang dihasilkan lebih akurat. Data pattern tidak harus sesuai dengan susunan kata yang terdapat di dalam satu teks. Waktu yang dibutuhkan untuk pencarian pattern pun tidak terlalu lama, kecuali apabila SQL LIKE% mencari dua pattern yang susunannya tidak sama persis dengan teks atau terdapat jarak antara kedua pattern tersebut seperti pada kata “Mahasiswa PCR” pada hasil pengujian II. Untuk mengimplementasikan metode brute force pada system, dibuatlah source code sebagai berikut :
Gambar 4.23 Gambar Bruteforce PHP Source Code
5.1 Kesimpulan 1. 2.
3. 4. 5.
6.
Setelah dilakukan beberapa pengujian, dapat disimpulkan bahwa: Metode pencocokan string brute force cukup baik dalam menyelesaikan masalah pencarian. Metode ini melakukan pengecekan karakter yang benar-benar sesuai dengan teks. Apabila terdapat ketidaksamaan, maka brute force tidak menghasilkan output bahkan yang mengandung pattern inputan. Pada sistem ini, setelah didapat satu solusi, brute force akan terus melakukan pengecekan karakter hingga record yang tersimpan di dalam database habis. Pada sistem ini, penyimpanan pattern tidak diperlukan. Untuk melakukan pencarian dan menghasilkan solusi sesuai dengan pattern yang diinputkan, metode ini menampung setiap record yang mengandung kata inputan atau pattern dan kemudian menampilkan hasilnya. Dalam hal akurasi hasil dan kecepatan, SQL LIKE% lebih unggul dibandingkan dengan metode brute force. Metode brute force mengasumsikan spasi sebagai karakter. Sehingga meskipun user menginputkan beberapa pattern, brute force akan melakukan pengecekan karakter sesuai dengan inputan user.
5.2 Saran Untuk mendapatkan waktu pencarian yang lebih cepat dan hasil yang lebih akurat, modifikasi algoritma diharapkan dapat dilakukan tanpa mengubah prinsip dasar dari algoritma brute force tersebut.
10
5
Nisa Hidayani
Daftar Pustaka
Akbar, Mohammad, Ipan Fuadina, and Jaya Pramadesa. “Algoritma Pencarian String Menggunakan Metode Brute Force yang Diperkaya.” 2003. http://webmail.informatika.org/~rinaldi/Stmik/Makalah/MakalahStmik36.pdf (accessed 6 Januari, 2012). Azhar. Pengantar Direktur. http://www.pcr.ac.id/site/main.php?page=direktur&id=0 (accessed 22 Januari, 2012). Budiasa, Rheno Manggala. Aplikasi Sederhana Pattern Matching dengan Algoritma Brute Force pada, 2009: 1. Kadir, Abdul. Dasar Pemrograman Web Dinamis Menggunakan PHP. Yogyakarta: ANDI, 2008. Karame, Ghassan O. “Privacy-Preserving Outsourcing of Brute-Force Key Searches.” October 2011. Kristanto, Andri. Kecerdasan Buatan. Yogyakarta: Graha Ilmu, 2004. Kusrini. Sistem Pakar Teori dan Aplikasi. Yogyakarta: ANDI, 2006. MADCOMS. Aplikasi Program PHP & MySQL untuk Membuat Website Interaktif. Yogyakarta: ANDI, 2004. MakalahStmik36. 2003. http://webmail.informatika.org/~rinaldi/Stmik/Makalah/MakalahStmik36.pdf (accessed 6 Januari, 2012). MMSI, Parno S.Kom. Data Flow Diagram, 2011: 1. Mrirfan. “Flowchart.” 15 Februari, 2010. http://www.slideshare.net/Mrirfan/flowchart-3191144 (accessed 18 Januari, 2012). Munir, Rinaldy. “Program Studi Teknik Informatika ITB.” Diktat Kuliah Strategi Algoritmik, 2004 2007. W, Darren. Displaying Load Time with PHP. 2004-2010. http://www.developertutorials.com/tutorials/php/displaying-load-time-php-050620-1077/ (accessed 24 August, 2012). http://bulansabit.blogdetik.com (accessed 11 July, 2012).