ANALISIS DAN IMPLEMENTASI ALGORITMA BRUTE FORCE DENGAN ALGORITMA OPTIMAL MISMATCH PADA APLIKASI KAMUS BAHASA
INDONESIA-SUNDA
SKRIPSI
DWI SUCIANI PUTRI 141421081
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA 2016
PERSETUJUAN
Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA
BRUTE FORCE DENGAN ALGORITMA OPTIMAL MISMATCHPADA APLIKASI KAMUS BAHASA INDONESIA - SUNDA
Kategori : SKRIPSI
Nama : DWI SUCIANI PUTRI
Nomor Induk Mahasiswa : 141421081
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
SUMATERA UTARA
Diluluskan di Medan, Juli 2016 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
M. AndriBudiman, S.T.,M.Comp.Sc.,M.E.M. Dr. Syahril Efendi, S.Si.,M.IT NIP.197510082008011011 NIP. 196711101996021001
Diketahui/Disetujui Oleh
Program Sttudi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN
ANALISIS DAN IMPLEMENTASI ALGORITMA BRUTE FORCE DENGAN ALGORITMA OPTIMAL MISMATCH PADA APLIKASI KAMUS BAHASA
INDONESIA-SUNDA
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing masing telah disebutkan sumbernya.
Medan,
Dwi Suciani Putri 141421081
PENGHARGAAN
Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah SWT sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi Ekstensi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terimah kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dan menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis ingin mengucapkan terimah kasih yang sebesar- besarnya kepada :
1. Bapak Prof. Dr. Runtung Sitepu SH, M.Hum selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Opim Sitompul M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr.Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvy Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
5. Ibu Dian Rachmawati S.Si., M.Kom selaku Koordinator Ekstensi Ilmu Komputer Universitas Sumatera Utara.
6. Bapak Dr.Syahril Efenndi S.Si., M.IT selaku Pembimbing I yang telah memberikan ilmu, bimbingan, dan saran kepada penulis dalam penyempurnaan skripsi ini.
7. M. Andri Budiman, S.T., M.Comp.Sc., M.E.M selaku Pembimbing II yang telah memberikan ilmu, bimbingan, dan saran kepada penulis dalam penyempurnaan skripsi ini.
8. Seluruh Dosen dan pegawai Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
9. Kedua Orang tua yaitu Ayah saya Suprayogi dan Ibu saya Dra. Mujiani yang telah memberikan doa serta dukungan yang tiada henti kepada penulis.
10. Teman-teman seperjuangan skripsi Dhea, Fauziah, Mona, Irvi dan teman teman lainnya dalam diskusi pembuatan skripsi dan pembuatan program dan seluruh teman-teman Ekstensi stambuk 2014.
11. Dan semua pihak yang telah membantu penulis baik secara langsung maupun tidak langsung.
Penulis menyadari bahwa skripsi ini dalam penyusunan dan masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semua.
Medan, Juli 2016 Penulis,
Dwi Suciani Putri
ANALISIS DAN IMPLEMENTASI ALGORITMA BRUTE FORCE DENGAN ALGORITMA OPTIMAL MISMATCH PADA APLIKASI KAMUS BAHASA
INDONESIA-SUNDA
ABSTRAK
Kamus merupakan bahan acuan yang digunakan untuk mencari kata yang ingin diterjemahkan ke dalam suatu bahasa atau istilah. Pada umumnya kamus diurutkan menurut abjad beserta maknanya dan terjemahannya. Demikian halnya dengan kamus bahasa Indonesia-Sunda, sangat diperlukan dalam menterjemahkan kata bahasa Indonesia maupun Sunda. Oleh karena itu, dibutuhkan sebuah algoritma string matching yang dapat menampilkan hasil terjemahan kata. Pada penelitian ini, menggunakan algoritma Brute Force dengan algoritma Optimal Mismatch untuk melakukkan pencocokkan kata yang ingin dicari dengan kata yang terdapat pada database. Algoritma Brute Force dan algoritma Optimal Mismatch merupakan algoritma yang memiliki cara kerja yang berbeda, sehingga pada diimplementasikan akan ditemukan kecepatan pencarian yang berbeda.
Dapat dilihat pada penelitian ini algoritma manakah yang bekerja dengan baik dan cepat dalam aplikasi kamus bahasa Indonesia-Sunda. Pada hasil pengujian, algoritma Brute Force didapat hasil rata-rata running time 14,991416 ms, sedangkan pada algoritma Optimal Mismatch didapat hasil rata-rata running time 31,468322 ms dalam proses pencocokan string di database.
Kata-kata kunci : String Matching, Brute Force, Optimal Mismatch, Kamus.
ANALYSIS AND IMPLEMENTATION OF BRUTE FORCE ALGORITHMWITH OPTIMAL MISMATCH ALGORITHM FOR DICTIONARY LANGUAGE
INDONESIA-SUNDA APLICATION
ABSTRACT
Dictionary is reference which is used for finding words that will be translated into other language or terminology. Generally, a dictionary is alphabetically with many means and the translated. This is very important in translating Bahasa Indonesia or even Sunda..
Therefore, string matching algorithm is needed in resulting meaning. In this research, using algorithm Brute Force and algorithm Optimal Mismatch is to adjusting the words that will be searched in database. Algorithm Brute Force and algorithm Optimal Mismatch is an algorithm with special working system so that in the implementation will be found the difference speed of searching. This research showed which algorithm that is working better and faster in the Indonesian-Sunda dictionary application. The result showed that algorithms Brute Force has average of running time 14,991416 ms while algorithm Optimal Mismatch has average of running time 31,468322 ms in the process of string adjusting in database.
Keywords : String Matching, Brute Force, Optimal Mismatch, Dictionary.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar isi viii
Daftar tabel x
Daftar gambar xi
BAB 1.PENDAHULUAN
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan Masalah 2
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian ` 3
1.7. Sistematika Penulisan 4
BAB 2. TINJAUAN PUSTAKA
2.1. Defensisi Kamus 5
2.2. Defenisi Algoritma 5
2.3. Pencocokkan String (String Matching) 6
2.3.1. Algoritma Brute Force 7
2.3.2 Algoritma Optimal Mismatch 9
2.4. Analisis Algoritma dan Kompleksitas Waktu 11
2.5. Penelitian Terdahulu 12
BAB 3. ANALISIS DAN PERANCANGAN
3.1. Analisis Sistem 14
3.2 Analisis Kebutuhan Sistem 15
3.2.1. Kebutuhan Fungsional 15
3.2.2. Kebutuhan Non-Fungsional 15
3.3. Pemodelan Sistem 16
3.3.1. Use Case Diagram 16
3.3.2. Activty Diagram 18
3.3.3. Sequence Diagram 19
3.4. Analisis Proses 20
3.4.1. Analisis Pencocokan String dengan Algoritma Brute Force
dan Algoritma Optimal Mismatch 20
3.4.2. Pseudocode Algoritma Brute Force 25
3.4.3. Pseudocode Algoritma Optimal Mismatch 30
3.5. Flowchart 32
3.6. Perancangan Database (Basis Data) 37
3.7. Perancangan Antar Muka (Interface) 37
3.7.1. Rancangan Halaman Utama 38
3.7.2. Rancangan Halaman Menu Kamus 39
3.7.3. Rancangan Halaman Tentang 40
3.7.4. Rancangan Halaman Bantuan 41
BAB 4. IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi 42
4.1.1. Tampilan Halaman Utama 42
4.1.2. Tampilan Halaman Menu Kamus 43
4.1.3. Tampilan Halaman Menu Tentang 44
4.1.4. Tampilan halaman Menu Bantuan 45
4.2. Pengujian Sistem 45
4.2.1. Pengujian Pencarian Kata dengan Algoritma Brute Force 45 4.2.2. Pengujian Pencarian kata dengan Algoritma
Optimal Mismatch 49
4.3. Hasil Pengujian 51
4.4. Kompleksitas Algoritma 54
4.4.1. Kompleksitas Algoritma Brute Force 54 4.4.2. Kompleksitas Algoritma Optimal Mismatch 55 BAB 5. KESIMPULAN DAN SARAN
5.1. Kesimpulan 5.2. Saran DAFTAR PUSTAKA
LAMPIRAN : Kode Program
DAFTAR TABEL
Halaman
Tabel 2.1 Penelitian Terdahulu Yang Berkaitan Dengan String Matching 13
Tabel 3.1 Use Case Menentukan Tipe Terjemahan 17
Tabel 3.2 Use Case Proses Inmput 17
Tabel 3.3 Pseoducode Algoritma Brute Force 25
Tabel 3.4 Frequensi Karakterdan PreQsBc Algoritma Optimal Mismatch 27
Tabel 3.5 Pola Karakter Setelah Diurutkan 27
Tabel 3.6 PreAdaptedGs Algoritma Optimal Mismatch 27 Tabel 3.7 Pseoducode PreOrderrPattern Algoritma Optimal Mismatch 30 Tabel 3.8 Pseoducode PreQsBc Algoritma Optimal Mismatch 30 Tabel 3.9 Pseoducode PreAdaptedGs Algoritma Optimal Mismatch 31 Tabel 3.10 Pseoducode Pencarian OM Algoritma Optimal Mismatch 31
Tabel 3.11 Database Kamus 37
Tabel 3.12 Keterangan Rancangan Halaman Utama 38
Tabel 3.13 Keterangan Rancangan Halaman Menu Kamus 39
Tabel 3.14 Keterangan Rancangan Halaman Tentang 40
Tabel 3.15 Keterangan Rancangan Halaman Bantuan 41
Tabel 4.1 Hasil Pencarian Kata Dengan Algoritma Brute Force 46 Tabel 4.2 Hasil Pencarian Kata Dengan Algoritma Optimal Mismatch 49
Tabel 4.3 Hasil Pengujian Algoritma Brute Force 52
Tabel 4.4 Hasil Pengujian Algoritma Optimal Mismatch 52 Tabel 4.5 Kompleksitas Pencarian Algoritma Brute Force 54 Tabel 4.6 Kompleksitas PreOrderrPattern Algoritma Optimal Mismatch 55 Tabel 4.7 Kompleksitas PreQsBc Algoritma Optimal Mismatch 56 Tabel 4.8 Kompleksitas PreAdaptedGs Algoritma Optimal Mismatch 56 Tabel 4.9 Kompleksitas Pencarian Algoritma Optimal Mismatch 57
DAFTAR GAMBAR
Halaman Gambar 2.1 Tahap Pencarian Algoritma Brute Force 8 Gambar 2.2 Tahap Pencarian Algoritma Brute Force (Lanjutan) 9 Gambar 2.3 Tahap Pencarian Algoritma Optimal Mismatch 11
Gambar 2.4 Grafik Big Theta (Ө) 12
Gambar 3.1 Diagram Ishikawa Analisis Masalah 14
Gambar 3.2 Use Case Diagram System 16
Gambar 3.3 Activty Diagram System 18
Gambar 3.4 Sequence Diagram System 19
Gambar 3.5 Flowchart System Kamus 33
Gambar 3.6 Flowchart Algoritma Brute Force 34
Gambar 3.7 Flowchart Algoritma Optimal Mismatch 36
Gambar 3.8 Rancangan Halaman Utama 38
Gambar 3.9 Rancangan Halaman Menu Kamus 39
Gambar 3.10 Rancangan Halaman Tentang 40
Gambar 3.11 Rancangan Halaman Bantuan 41
Gambar 4.1 Tampilan Halaman Utama 43
Gambar 4.2 Tampilan Halaman Kamus 43
Gambar 4.3 Tampilan Halaman Hasil Pencarian Kata dan Running Time 44
Gambar 4.4 Tampilan Halaman Tentang 44
Gambar 4.5 Tampilan Halaman Bantuan 45
Gambar 4.6 Grafik Perbandingan Hasil Running Time Dari Algoritma
Brute Force dan Algoritma Optimal Mismatch 53 Gambar 4.7 Grafik Perbandingan Total dan Rata-Rata dari Algoritma
Brute Force dan Algoritma Optimal Mismatch 53
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Kemajuan teknologi dan penguasaan bahasa sangat berperan penting dalam kehidupan masyarakat. Masyarakat Indonesia saling berkomunikasi dengan bahasa, baik bahasa nasional maupun bahasa daerah masing-masing.Indonesia memiliki banyak ragam bahasa daerah. Jumlah bahasa daerah ini diperkirakan ada sekitar 726 bahasa dan yang berhasil dipetakan ada 456 bahasa saja. Dengan kata lain, ada banyak bahasa daerah yang sudah hampir punah karena sudah tidak ada lagi penuturnya. Upaya pelestarian bahasa daerah perlu dilakukan termasuk salah satunya adalah bahasa Sunda. Dengan melihat kondisi yang terjadi maka bahasa Sunda ini perlu dilestarikan dengan berbagai cara. Salah satunya adalah dengan memanfaatkan teknologi untuk membuat aplikasi kamus bahasa Indonesia- Sunda. Dengan kemunculan aplikasi kamus bahasa Indonesia-Sunda, diharapkan dapat memberikan kemudahan kepada pengguna dalam menterjemahkan kata yang diinginkan tanpa mencarinya melalui Google. (Sigit, H & Anwar, K. 2015).
Dalam aplikasi kamus bahasa Indonesia-Sunda, pengguna dapat menginput kata yang akan diterjemahkan. Karena pada dasarnya, suatu aplikasi penerjemah bahasa bekerja dengan melakukan String Matching atau biasa disebut pencocokan string berdasarkan kata-kata yang sudah terdapat di database yang merupakan kamus aplikasi tersebut.
Proses pencocokan string yang merupakan bagian dalam proses pencarian string/text memegang peranan penting untuk mencari teks yang sesuai dengan kebutuhan informasi. Untuk mengetahui manakah algoritma yang mampu mencari string paling cepat, maka penulis membuat suatu penelitian dari kemampuan algoritma Brute Force dengan Optimal Mismatch untuk mencari string dari pattern yang diberikan. Di mana, algoritma Brute Force merupakan algoritma yang digunakan untuk mencocokan pattern dengan semua teks antara 0 dan n-m untuk menemukan keberadaan pattern teks.
Sedangkan algoritma Optimal Mismatch merupakan algoritma yang membandingkan karakter-karakter pada P dengan urutan mulai dari yang jarang muncul sampai yang paling sering muncul, supaya dapat menemukan ketidaksamaan sebanyak-banyaknya
sehingga mempercepat pencarian T secara keseluruhan. (Charras, C & Lecroq, T. 1997).
Berdasarkan latar belakang yang telah disebutkan, maka penulis akan mencoba membuat penelitian dengan judul “Analisis dan Implementasi Algoritma Brute Force dengan Algoritma Optimal Mismatch Pada Aplikasi Kamus Bahasa Indonesia-Sunda”.
1.2 Rumusan Masalah
Bagaimana algoritma Brute Force dan algoritma Optimal-Mismatch melakukan pencocokan string serta mengukur kemampuan kecepatan waktu proses pencarian kata/string.
1.3 Batasan Masalah
Dalam hal mengimplimentasi algoritma yang telah dijelaskan sebelumnya, terdapat beberapa batasan masalah sebagai berikut :
1. Melakukkan proses terjemahan, mengukur kemampuan sistem dalam mencari arti kata yang diinputkan berdasarkan kata kunci (query) yang diberikan oleh pengguna serta mengukur kecepatan waktu proses pencarian string/kata dalam satuan waktu (ms).
2. Menghitung kompleksitas ukuran Big-Ө.
3. Input dan hasil terjemahan aplikasi kamus bahasa Indonesia-Sunda ini berupa kata.
4. Jumlah kata yang tersedia pada database adalah ± 500 kata menggunakan buku tata bahasa dan ungkapan bahasa sunda yang ditulis oleh J.Kats dan M. Soeridiradja dan buku kosa kata bahasa sunda yang ditulis oleh Pusat Pembinaan dan Pengembangan Bahasa.
5. Perancangan aplikasi kamus ini menggunakan bahasa pemograman Java dengan menggunakan DBMS (Database Management System) yaitu MySQL.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mengetahui algoritma manakah dari penerapan algoritma Brute Force dengan algoritma Optimal Mismatch yang lebih cepat dalam mencari string dari suatu kata yang di inputkan.
1.5 Manfaat Penelitian
1. Manfaat bagi penulis adalah sebagai media penerapan dan penelitian ilmu yang telah didapat selama masa perkuliahan.
2. Manfaat bagi bidang ilmu ialah sebagai penyampaian ilmu pengetahuan teknologi yang memberikan referensi literatur yang bermanfaat bagi penelitian- penelitian di bidang String Matching ke depannya, serta menambah wawasan ilmu tentang penggunaan algoritma Brute Force dan Optimal Mismatch dalam menyelesaikan perancangan aplikasi Kamus ini.
3. Manfaat bagi masyarakat adalah masyarakat dapat menggunakan aplikasi terjemahan kamus tanpa melalui google translate ketika ingin menerjemahkan sebuah kata.
1.6 Metodelogi Penelitian
Metode penelitian yang akan digunakan adalah : 1. Studi Literatur
Pada tahap ini penulisan dimulai dengan studi kepustakaan yaitu proses pengumpulan bahan-bahan referensi baik dari buku-buku, artikel-artikel, maupun dari hasil penelitian mengenai String Matching, algoritma Brute Force dan algoritma Optimal Mismatch.
2. Analisis dan Perancangan
Masalah akan dianalisis untuk dimodelkan secara konseptual dengan mengidentifikasi seluruh elemen yang dibutuhkan dan batasan masalah dalam mencapai tujuan. Kemudian perancangan sistem dilakukan dengan mendesain user interface, flowchart, sebagai gambaran sistem yang akan dibuat.
3. Pembuatan Sistem
Pada tahap ini, penulis mulai mengkodekan sistem yang akan dibuat dengan bahasa pemograman Java.
4. Pengujian Sistem
Pada tahap ini dilakukkan pengujian terhadap aplikasi apakah dapat menterjemahkan dengan baik atau tidak.
5. Dokumentasi
Pada tahap ini akan dilakukkan laporan mengenai aplikasi yang dibangun yang bertujuan untuk menunjukkan hasil penelitian ini.
1.7 Sistematika penulisan
Adapun bagian utama dari sistematika penulisan skripsi ini yaitu :
BAB 1. PENDAHULUAN
Bab ini berisi latar belakang diangkatnya judul skripsi, perumusan masalah yang diambil, batasan-batasan masalahnya, tujuan dan manfaat penelitian, metodologi penulisan, dan sistematika penulisan dari penyusunan skripsi ini.
BAB 2. LANDASAN TEORI
Bab ini menjelaskan mengenai landasan teori dan penelitian.
BAB 3. ANALISIS DAN PERANCANGAN
Bab ini menjelaskan mengenai analisis dan implementasi algoritma Brute Force dengan algoritma Optimal Mismatch untuk pencarian dan pencocokan kata dalam aplikasi kamus yang akan dibuat yaitu Aplikasi Kamus Bahasa Indonesia-Sunda.
BAB 4. IMPLEMENTASI DAN PENGUJIAN APLIKASI
Bab ini menjelaskan implementasi dari analisis yang dilakukan dan pengujian terhadap sistem.
BAB 5. KESIMPULAN DAN SARAN
Bab ini menguraikan rangkuman dari masing-masing sub-sub bab yang ada serta memberi saran agar bermanfaat untuk pengembangan dari sistem ini selanjutnya.
BAB 2
LANDASAN TEORI
2.1 Kamus
Menurut kamus besar Bahasa Indonesia, pengertian kamus adalah buku acuan yang memuat kata dan ungkapan yang biasanya disusun menurut abjad beserta keterangan maknanya, pemakaiannya, dan terjemahannya. Kamus juga dapat digunakan sebagai buku rujukan yang menerangkan makna kata-kata yang berfungsi untuk membangun seseorang mengenal perkataan baru. (Butarbutar, R. 2014). Selain pengertian kamus yang telah disebutkan di atas, pengertian kamus yang dikemukakan oleh beberapa para ahli Chaer antara lain :
1. Kridalaksana menyebutkan bahwa kamus adalah buku referensi yang memuat daftar kata atau gabungan kata dengan keterangan mengenai pelbagai segi maknanya dan penggunaannya dalam bahasa, biasanya disusun menurut abjad.
2. Dalam American Every Dictionary disebutkan bahwa kamus adalah sebuah buku berisi kata-kata dari sebuah bahasa, biasanya disusun secara alfabetis, disertai keterangan akan artinya ucapannya, ejaannya, dsb.
3. Labrousse (1997) menyebutkan bahwa kamus adalah buku berisi kumpulan kata- kata sebuah bahasa yang disusun secara alfabetis, diikuti dengan defenisi atau terjemahannya dalam bahasa lain.
4. Keraf (1984) mendefinisikan kamus sebagai sebuah buku referensi, memuat daftar kata-kata yang terdapat dalam sebuah bahasa, disusun secara alfabetis, disertai keterangan cara menggunakan kata itu.
2.2 Algoritma
Algoritma adalah prosedur komputasi yang terdefenisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran.
Dalam beberapa konteks, algoritma merupakan spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Kata algoritma berasal dari nama seorang Ilmuwan Arab
yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Aljabar Wal Muqabala. Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm, dan diserap dalam bahasa Indonesia menjadi Algoritma. (Munir, R. 2007).
Secara umum, algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah dalam rentang waktu tertentu. Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai algoritma. Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting yang meliputi. ( Wulan, S. 2011). :
1. Algoritma mempunyai awal dan akhir. Suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas atau dengan kata lain suatu algoritma harus memiliki langkah yang terbatas.
2. Setiap langkah harus didefenisikan dengan tepat sehingga tidak memiliki arti ganda.
3. Memiliki masukkan atau kondisi awal.
4. Memiliki keluaran atau kondisi akhir.
5. Algoritma harus efektif, bila diikuti dengan benar–benar akan menyelesaikan persoalan.
2.3 Pencocokan String ( String Matching )
Pencocokan string atau String Matching adalah proses pencarian semua kemunculan string pendek P[0..n-1] yang disebut pattern di string yang lebih panjang T[0..m-1] yang disebut teks. Pencocokan string merupakan permasalahan paling sederhana dari semua permasalahan string lainnya, dan merupakan bagian dari pemrosesan data serta temu balik informasi. Teknik untuk menyelesaikan permasalahan pencocokan string biasanya akan menghasilkan implikasi langsung ke aplikasi string lainnya (Kumara, 2008). Contoh implementasi dari pencocokkan string adalah pencarian string dalam sebuah aplikasi text editor seperti contohnya Microsoft Word dan Notepad. Contoh yang lebih besar lagi adalah pencarian dengan suatu kata kunci pada internet seperti yang dilakukan oleh Google, Yahoo, dan Bing ( Sagita, V & Prasetiowati, M. 2013).
String matching bisa digunakan untuk menemukan satu pattern yang pertama kali ditemukan, atau yang lebih umum menampilkan semua pattern yang dapat ditemukan dalam teks. Algoritma yang digunakan untuk pencarian string semakin berkembang dari
mungkin. Algoritma pencocokan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya, yaitu : (Charras, C & Lecroq, T. 1997).
1. Pencarian dari arah kiri ke kanan yang merupakan arah untuk membaca.
Algoritma yang termasuk kategori ini adalah algoritma Brute Force dan algoritma Knuth Morris Pratt.
2. Pencarian dari arah kanan ke kiri yang biasanya menghasilkan hasil yang terbaik secara praktial, contohnya adalah algoritma Boyer Moore.
3. Pencarian dari arah yang sudah ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil yang terbaik secara teoritis, contohnya adalah algoritma Colussi dan algoritma Crochemore-Perrin.
Algoritma String Matching mempunyai tiga komponen utama, yaitu :
1. Pattern, yaitu deretan karakter yang akan dicocokan dengan teks, dinyatakan dengan x[0..m-1], panjang pattern dinyatakan dengan m.
2. Teks, yaitu tempat pencocokan pattern dilakukan,dinyatakan dengan y[0..n-1], panjang teks dinyatakan dengan n.
3. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern, dinyatakan dengan Ʃ dengan ukuran yang dinyatakan dengan Asize.
2.3.1 Algoritma Brute Force
Algoritma Brute Force adalah sebuah pendekatan langsung untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan defenisi konsep yang dilibatkan, algoritma Brute Force memecahkan suatu permasalahan dengan cara yang sangat sederhana, langsung dan dengan cara yang jelas. (Airlangga, G & Mualo, A. 2015). Algoritma Brute Force digunakan untuk pencocokkan pada setiap posisi dalam teks dari karakter pertama sampai karakter terakhir. Sesudah pencocokkan pertama terjadi, maka proses shift dilakukan dengan berpindah tepat satu posisi ke arah kanan (berpindah ke karakter kedua, ketiga dan seterusnya sampai ditemukan kecocokan). Algoritma Brute Force tidak memerlukan tahap praprocessing. Selama tahap pencarian, perbandingan karakter pada teks dapat selesai pada posisi manapun. (Nababan, A. 2015).
Sebagai contoh, diberikan sejumlah karakter sebagai text = GCATCGCAGAGAGTATACAGTACG dan yang akan dicocokkan adalah pattern = GCAGAGAG sebagaimana dikutip pada Handbook of Exact String Matching Algorithms dari Charras, C & Lecroq, T. (1997). Gambar 2.1 dan gambar 2.2 berikut akan
menggambarkan proses pencocokkan yang telah dijelaskan sebelumnya pada algoritma Brute Force, dimana didefenisikan y adalah text dan x adalah pattern. Setelah dilakukkan tahap pencocokkan sepanjang karakter pada pattern, proses shift dilakukan dengan berpindah tepat satu karakter ke arah kanan pada teks .
Gambar 2.1 Tahap pencarian algoritma Brute Force (Charras, C & Lecroq, T. 1997)
Gambar 2.2 Tahap pencarian algoritma Brute Force (lanjutan) (Charras, C
& Lecroq, T. 1997 ).
2.3.2 Algoritma Optimal Mismatch
Algoritma Optimal Mismatch melakukan pencarian kata secara berurut pada tiap karakter pada kumpulan teks sehingga pencarian seperti ini sering disebut pencarian sekuensial (sequential search). Algoritma Optimal Mismatch mencari pola karakter mulai dari frekuensi yang paling sedikit hingga frekuensi yang paling banyak pada teks. Sebelum menggunakan Algoritma Optimal Mismatch, terdapat tiga tahap yang harus dilewati, antara lain sebagai berikut : (Handika, W. 2006)
1. Tahap pertama adalah prosedur pengurutan karakter pada pola. Dimana karakter pada pola atau yang biasa disebut order pattern berguna untuk mencari frekuensi tiap-tiap karakter pada teks, kemudian mengurutkan pola karakter mulai dari frekuensi terendah sampai frekuensi tertinggi. Jika terdapat dua atau lebih karakter yang berbeda tetapi memiliki frekuensi yang sama, maka pengurutan didasarkan pada posisi pencarian dari kanan ke kiri, yang berarti karakter yang pertama kali ditemukan terlebih dahulu diurutkan lebih awal.
2. Tahap kedua adalah prosedur Quick Search bad character atau preQsBc yang menghitung nilai QsBc pada tiap tiap karakter yang selanjutnya nilai tersebut kemungkinan akan digunakan untuk pergeseran pada pola dengan cara menentukan posisi karakter dalam pola dari kanan ke kiri dan jika ada karakter yang sama dalam pola, maka posisi karakter yang pertama ditemukan yang dicatat.
3. Tahap ketiga adalah pencarian nilai pergeseran karakter dalam teks menggunakan good suffix adapted. Dimana yang selanjutnya akan dimulai langkah-langkah pencarian dengan menggunakan Algoritma Optimal Mismatch dengan memulai pencarian string dengan cara mencocokkan pola sesuai dengan urutan yang ditentukan.
Sebagai contoh, diberikan sejumlah karakter sebagai text = GCATCGCAGAGAGTATACAGTACG dan yang akan dicocokkan adalah pattern = GCAGAGAG sebagaimana dikutip pada Handbook of Exact String Matching Algorithms dari Charras, C & Lecroq, T. (1997). Gambar 2.3 berikut akan menggambarkan proses pencocokkan yang telah dijelaskan sebelumnya pada algoritma Optimal Mismatch, dimana y adalah text dan x adalah pattern. Setelah dilakukkan tahap pencocokkan sepanjang karakter pada pattern, proses shift dilakukan dengan berpindah tempat dari kanan ke kiri terhadap text sesuai dengan nilai QsBc dan AdaptedGs. (Nababan, A. 2015).
Gambar 2.3 Tahap pencarian algoritma Optimal Mismatch (Charras, C & Lecroq, T.
(1997).
2.4 Analisis Algoritma dan Kompleksitas Waktu
Algoritma tidak selalu memberikan hasil terbaik yang mungkin diperoleh, maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut. Sekali sebuah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memperoleh hasil. Proses inilah yang disebut dengan analisis algoritma.
Ukuran biaya eksekusi suatu algoritma yang paling sering digunakan adalah lamanya waktu yang diperlukan. Namun juga masih ada ukuran-ukuran lainnya, misalnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tersebut. Maksud dilakukannya analisis algoritma adalah untuk :
1. Memenuhi aktivitas intelektual.
2. Meramalkan suatu hal yang akan terjadi atau yang akan didapat dari algoritma tersebut.
3. Mengetahui efektifitas suatu algoritma dibandingkan dengan algoritma yang lain untuk persoalan yang sama.
Duah buah algoritma yang berbeda dapat digunakan untuk memecahkan masalah yang sama dan mungkin saja mempunyai kompleksitas waktu (time complexity) yang sangat berbeda. Kompleksitas waktu algoritma terbaik untuk memecahkan masalah tersebut dinamakan sebagai kompleksitas waktu (time complexity of problem ).
2.4.1 Big Theta (Ө)
ϴ(g(n)) adalah himpunan semua fungsi yang memiliki tingkat pertumbuhan yang sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga). Sebuah fungsi t(n) dikatakan bagian dari ϴ(g(n)), dilambangkan dengan t(n) Є ϴ(g(n)), jika t(n) batas atas dan bawahnya adalah beberapa konstanta positif g(n) untuk semua n yang besar, yaitu jika ada beberapa konstanta positif c₁ dan c₂ serta beberapa bilangan bulat non-negatif n0 seperti c₂g(n) ≤ t(n) ≤ c₁g(n) untuk semua n ≥ n₀. (Levitin, A. 2011). Dalam grafik nilai f(n) di sebelah kanan n0 selalu berada di antara c1g(n) dan c2g(n).
Gambar 2.4 Grafik ϴ (Big Theta)
Gambar 2.4 Grafik Big Theta (Ө) (Levitin, Anany. 2011)
2.5 Penelitian Terdahulu
Beberapa penelitian terdahulu yang berkaitan dengan String Matching diantaranya penelitian oleh Indah (2015) yang membuat aplikasi kamus komputer berbasis android yang menggunakan algoritma pencocokkan string,yaitu Knuth-Morris-Prath String Matching. Pada penelitiannya, Indah (2015) memodifikasikan proses pencarian dengan menggunakan kedua algoritma tersebut dan menggunakan MySQL untuk menyimpan kumpulan kata/string yang akan dicari oleh user.
Sedangkan penelitian yang dilakukkan oleh Sri (2011), pada penelitian ini pengujian String Matching dalam komparasi data kepesertaan menghasilkan hasil pencocokkan data peserta yang sama besar dengan Exact String Matching. Untuk keterangan lain mengenai penelitian terdahulu yang berkaitan dengan String Matching ini apat dilihat pada tabel 2.1 berikut.
Tabel 2.1 Penelitian terdahulu yang berkaitan dengan string matching
No Nama Penelitian Penulis Tahun
1 Implementasi Algoritma Knuth- Morris-Prath String Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android
Indah Mustika Tanjung 2015
2 Analisis Penerapan String Matching Dalam Komparasi Data Kepesertaan Jaminan Kesehatan Masyarakat (JAMKESMAS)
Sri Wulan 2011
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Tujuan utama dari penelitian ini adalahuntuk mengetahui algoritma manakah dari penerapan algoritma Brute Force dengan algoritma Optimal Mismatch yang lebih cepat dalam mencari string dari suatu kata yang diinputkan, membuat pemodelan sistem seperti merancang alur kerja sistem (Flowchart) serta mempelajari konsep dan proses kerja dari kedua algoritma tersebut.
Gambar 3.1 merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis masalah. Bagian kepala atau kotak segiempat yang berada di sebelah kanan merupakan masalah. Sementara itu dibagian tulang bagian atas dan bawah merupakan penyebab dari masalah.
Gambar 3.1 Diagram Ishikawa Analisis Masalah
Sistem Pencarian Kata Pada Kamus Bahasa Indonesia-Sunda Dengan Menggunakan Algoritma Brute Force dan Optimal
Mismatch Metode pencari kata
belum ada digunakan pada kamus bahasa Indonesia - Sunda dan masih dilakukan secara manual
User membutuhkan pen carian kata dengan praktis serta dengan waktu yang cepat
Belum ada aplikasi yang mengimplementasikan dua algoritma untuk pencarian kata
Kamus masih berbentuk buku cetak dan pencarian kata masih dilakukkan secara manual
METODE USER
MACHINE MATERIAL
3.2 Analisis Kebutuhan Sistem
Untuk membangun sebuah sistem, perlu dilakukkan sebuah tahap analisis kebutuhan sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi dua bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional. (Nababan, A. 2015).
3.2.1 Kebutuhan Fungsional
Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi pada aplikasi yang akan dirancang. Kebutuhan fungsional yang harus dipenuhi aplikasi untuk dirancang antara lain sebagai berikut : (Nababan, A. 2015).
1. Fungsi Pencarian Kata
Sistem dapat melakukan pencarian kata terjemahanIndonesia-Sunda berdasarkan inputan user dan menampilkan hasil terjemahan artinya dengan mengimplementasikanalgoritma Brute Forcedan algoritma Optimal Mismatch pada aplikasi kamus.
2. Fungsi Kinerja Algoritma
Sistem dapat menampilkan waktu pencarian (running time) dan jumlah kata yang telah dicocokan untuk memperlihatkan bagaimana kinerja Brute Forcedan Algoritma Optimal Mismatch dalam mencocokkan sting.
3.2.2 Kebutuhan Non-Fungsional
Kebutuhan non-fungsional adalah kebutuhan yang mendeskripsikan sistem dari segi karakterisitik, fitur dan batasan lainnya seperti performa, penggunaan, dan ekonomi.(Rifai, A. 2015) Kebutuhan non-fungsional mencakup karakteristik sebagai berikut:
1. Performa
Sistem yang akan dibangun mampu memberikan informasi kepadauserdalam mencari terjemahan Indonesia-Sunda.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun harus memiliki tampilan yang user friendlyyang artinya bahwa sistem mudah digunakan oleh user dengan tampilan (interface) yang sederhana dan dapat dengan mudah dimengerti.
3. Hemat biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya.
3.3 Pemodelan Sistem
Pemodelan sistem yang dirancang oleh penulis yaitu untuk menggambarkan sebuah kondisidan bagian-bagian yang berperan dalam sistem yang dirancang. Pada penelitian ini model UML (Unified Modeling Language) yang digunakan antara lain use case diagram, activity diagram, dan squence diagram.
3.3.1 Use Case Diagram
Use case diagram merupakan fungsionalitas dari suatu sistem, sehingga pengguna sistem dapat paham dan mengerti mengenai kegunaan sistem yang akan dibangun. Use case diagram juga berperan untuk menggambarkan interaksi antar komponen-komponen yang berperan dalam sistem yang nantinya akan dirancang. Gambar 3.2 berikut merupakan Use case diagram yang akan dibangun. (Nababan, A. 2015).
Gambar 3.2 Use Case Diagram System
Dari keterangan gambar3.2 Use Case Diagram menjelaskan aksi yang dapat dilakukan oleh user, userterlebih dahulu melakukan pemilihan tipe terjemahanseperti bahasa Indonesia-Sunda atau bahasa Sunda-Indonesia.Selanjutnya userakanmemasukkan inputan berupa kata yang ingin diterjemahkan. Kemudiansistem melakukan pencarian,
menampilkan hasil terjemahan kata, running time dan jumlah kata yang dicari. Untuk menentukan tipe terjemahan dan penginputan kata dapat dinyatakan pada tabel 3.1 dan tabel 3.2 berikut.
Tabel 3.1 Use Case Menentukan Tipe Terjemahan Name Menentukan tipe terjemahan bahasa
Actors User
Description Use Case ini mendeskripsikan proses pemilihan tipe terjemahan bahasa, seperti bahasa Indonesia-Sunda atau bahasa Sunda - Indonesia.
Basic Flow Usermenentukan tipe terjemahan bahasa.
Alternate Flow User dapat memilih terjemahan bahasa Indonesia- Sunda atau bahasa Sunda-Indonesia.
Pre Condition User ingin menentukan tipe terjemahan bahasa.
Post Condition Usertelah menetapkan tipe terjemahan bahasa.
Tabel 3.2 Use Case Proses Input Kata
Name Input kata
Actors User
Description Use Case ini mendeskripsikan penginputan kata yang akan dicari dan diterjemahkan.
Basic Flow Usermenginputkan kata.
Alternate Flow -
Pre Condition User ingin menginputkan kata.
Post Condition User mendapatkan hasil pencarian kata,terjemahan kata, running time dan jumlah kata.
3.3.2 ActivityDiagram
Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang atau menggambarkan proses pararel yang mungkin terjadi pada beberapa eksekusi. Gambar 3.3 berikut merupakan activitydiagramyang akan dibangun.
Gambar 3.3 Activty Diagram System
Dari keterangan gambar 3.3 Activty diagram systemdapat dijelaskan bahwa userterlebih dahulu menentukan tipe terjemahan bahasa,seperti bahasa Indonesia - Sunda atau bahasa Sunda-Indonesia. Lalu sistem akan menetapkan tipe terjemahan bahasa yang telah dipilih. Selanjutnyauserakan menginput kata yang akan dicari terjemahannya.Lalu sistem akan menampilkan hasil pencarian kata dan terjemahan berdasarkan algoritma
≠ GG or OM
≠ kata
=kata
Brute Force dengan algoritma Optimal Mismatchserta menampilkan running time dan jumlah kata yang ditemukan.
3.3.3 Sequence Diagram
Sequencediagram merupakan diagram yang menggambarkan interaksi antar objek dan menjelaskan bagaimana suatu operasi dilakukan. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh objek. Dalam sistem yang akan dibangun, interaksi dilakukan antara pengguna dan sistem. Sequence diagram sistem dapat dilihat pada Gambar 3.4. (Nababan, A. 2015).
Gambar 3.4 Sequence Diagram Sistem
Dari keterangan gambar 3.4 Sequence diagram system dapat dijelaskan userharus menentukan tipe terjemahan bahasa, seperti bahasa Indonesia-Sunda atau bahasa Sunda- Indonesia. Lalu sistem menerapkan tipe terjemahan bahasa yang telah dipilih oleh
user.Selanjutnya userakan menginput kata yang ingin dicari. Lalu sistem akan menampilkan hasil pencarian kata dan terjemahan kata berdasarkan algoritma Brute Force dengan algoritma Optimal Mismatch.
3.4 Analisis Proses
Dalam sistem ini terdapat beberapa proses, yaitu proses pencocokkan string menggunakan algoritma Brute Force dan algoritmaOptimal Mismatchserta menghitung percepatan waktu proses pencarian dengan kompleksitas waktu satuan (ms).
3.4.1 Analisis Pencocokan String menggunakan Algoritma Brute Force dan Algoritma Optimal Mismatch
Algoritma Brute Force digunakan untuk pencocokkan pada setiap posisi dalam teks dari karakter pertama sampai karakter terakhir. Sesudah pencocokkan pertama terjadi, maka proses shift dilakukan dengan berpindah tepat satu posisi ke arah kanan (berpindah ke karakter kedua, ketiga dan seterusnya sampai ditemukan kecocokan). Algoritma Brute Force tidak memerlukan tahap praprocessing. Selama tahap pencarian, perbandingan karakter pada teks dapat selesai pada posisi manapun.
Pada algoritma Brute Force, didefenisikan T sebagai teks dan P sebagai pattern.
Kemudian dilakukan pencocokan oleh pattern terhadap teks. Untuk tahap pertama, dilakukan pencocokkan terhadap teks sepanjang karakter dari pattern. Apabila terjadi kecocokkan karakter pertama pada teks dan karakter pertama pada pattern, maka dimulailah proses pencocokkan pertama. Pada pencocokkan pertama, dilakukan pencocokkan pada karakter kedua pada masing-masing teks dan pattern. Apabila terjadi kecocokkan pada pencocokkan ini, maka lakukanlah untuk karakter-karakter selanjutnya.
Jika ketidakcocokkan terjadi, maka proses akan berlanjut pada tahap kedua.
Tahap kedua dilakukan dengan berpindah satu karakter ke karakter berikutnya ke arah kanan dari tahap pertama. Dilakukanlah pencocokkan karakter kedua dari teks dan karakter pertama pada pattern pada tahap sebelumnya. Jika ditemukan kecocokkan, maka dimulailah proses pencocokkan kedua. Selanjutnya lakukan pencocokan pada karakter ketiga pada teks dan karakter kedua pada pattern.Apabila terjadi kecocokan, lanjut ke karakter-karakter berikutnya dan apabila tidak terjadi ketidakcocokan, maka proses akan
berlanjut pada tahap ketiga, berpindah satu karakter ke arah kanan terhadap teks. Setelah tahap demi tahap dilakukan, sehingga ditemukanlah kecocokkan pada teks yang karakternya sama panjang terhadap karakter pada pattern. Kemudian proses berakhir saat karakter terakhir pada teks telah dilakukan pencocokkan terhadap karakter terakhir pada pattern yang sudah ditemukan atau tidaknya pattern pada teks.(Nababan, A. 2015).
Pada algoritma Optimal Mismatch, algoritma inimelakukan pencarian kata secara berurut pada tiap karakter pada kumpulan teks sehingga pencarian seperti ini sering disebut pencarian sekuensial (sequential search). Algoritma Optimal Mismatch mencari pola karakter mulai dari frekuensi yang paling sedikit hingga frekuensi yang paling banyak pada teks. Sebelum menggunakan Algoritma Optimal Mismatch, terdapat tiga tahap yang harus dilewati, antara lain sebagai berikut : (Handika, W. 2006)
4. Tahap pertama adalah prosedur pengurutan karakter pada pola. Dimana karakter pada pola atau yang biasa disebut order pattern berguna untuk mencari frekuensi tiap-tiap karakter pada teks, kemudian mengurutkan pola karakter mulai dari frekuensi terendah sampai frekuensi tertinggi. Jika terdapat dua atau lebih karakter yang berbeda tetapi memiliki frekuensi yang sama, maka pengurutan didasarkan pada posisi pencarian dari kanan ke kiri, yang berarti karakter yang pertama kali ditemukan terlebih dahulu diurutkan lebih awal. Penjelasan ini dapat dilihat pada gambar 3.3 berikut.
Tabel 3.3 Pola karakter setelah diurutkan
indeks 0 1 2 3 4
x[i] P U T R I
Pat[i].loc 3 2 0 1 4
Pat[i].c R T P U I
1. Tahap kedua adalah prosedur Quick Search bad character atau preQsBc yang menghitung nilai qsBc pada tiap tiap karakter yang selanjutnya nilai tersebut kemungkinan akan digunakan untuk pergeseran pada pola dengan cara menentukan posisi karakter dalam pola dari kanan ke kiri dan jika ada karakter yang sama dalam pola, maka posisi karakter yang pertama ditemukan yang dicatat. Penjelasan ini dapat dilihat pada gambar 3.4 berikut.
Tabel 3.4 Frequensi Karakter dan PreQsBc Algoritma Optimal Mismatch
Karakter D W I _ S U C A N P T R
Frequensi 1 1 4 2 1 2 1 1 1 1 1 1
QsBc 6 6 1 6 6 4 6 6 6 5 3 2
5. Tahap ketiga adalah pencarian nilai pergeseran karakter dalam teks menggunakan good suffix adapted. Dimana yang selanjutnya akan dimulai langkah-langkah pencarian dengan menggunakan Algoritma Optimal Mismatch dengan memulai pencarian string dengan cara mencocokkan pola sesuai dengan urutan yang ditentukan.Penjelasan ini dapat dilihat pada gambar 3.5 berikut.
Tabel 3.5 PreAdaptedGs Algoritma Optimal Mismatch
indeks 0 1 2 3 4 5
AdaptedGs[i] 1 4 4 4 4 4
Selanjutnya, berikut merupakan tahapproses pencocokkan kata yang telah dijelaskan di atas pada algoritma Brute Forcedan algoritma Optimal Mismatch, dimana T merupakan teks dan P merupakan pattern dalam mencocokan karakter.
Sebagai contoh :
Teks ( T ) = DWI_SUCIANI_PUTRI Pattern ( P ) = PUTRI
indeks 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
indeks 0 1 2 3 4 Pattern P U T R I
Langkah 1
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
langkah 1 pada Brute Force,tidak ditemukan ketidakcocokkan karakter ke-0 pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Pada algoritma Optimal Mismatch
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 1 pada algoritma Optimal Mismatch,Urutan pencarian dimulai dari karakter “i”
pada pattern yang ternyata tidak cocok dengan karakter “s” pada teks, maka dilakukkan pergeseran yang akan ditentukan oleh nilai :
QsBc [U] = 4 AdaptedGs [i] = 1 Nilai Geser = 0 Nilai Selisih = 12
Nilai yang akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah max(4,1) = 4
Langkah 2
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
langkah 2 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke-1 pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Pada algoritma Optimal Mismatch
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 2 pada algoritma Optimal Mismatch,Urutan pencarian dimulai dari karakter “I”
pada pattern yang ternyata tidak cocok dengan karakter “A” pada teks, maka dilakukkan pergeseran yang akan ditentukan oleh nilai :
QsBc [N] = 6 AdaptedGs [i] = 1 Nilai Geser = 4 Nilai Selisih = 12
Nilai yang akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah max(6,1) = 6
Langkah 3
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah3 pada algortima Brute Force, tidak ditemukan ketidakcocokkan karakter ke-2 pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Pada algoritma Optimal Mismatch
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 3 pada algoritma Optimal Mismatch,Urutan pencarian dimulai dari karakter “I”
pada pattern yang ternyata tidak cocok dengan karakter “T” pada teks, maka dilakukkan pergeseran yang akan ditentukan oleh nilai :
QsBc [R] = 2 AdaptedGs [i] = 1 Nilai Geser = 10 Nilai Selisih = 12
Nilai yang akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah max(2,1) = 2
Langkah 4
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 4 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 3pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Pada algoritma Optimal Mismatch
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
Langkah 4 pada algoritma Optimal Mismatch,Urutan pencarian dimulai dari karakter “I”
pada pattern yang ternyata cocok dengan karakter “I” pada teks, maka pencarian dilanjutkan dengan mencari karakter “R” pada pattern yang ternyata juga cocok dengan karakter “R” pada teks, maka pencarian dilakukan lagi pada karakter “T” ,karakter “U”
dan karakter “P” pada pattern sehingga pencarian dianggap menemukan output yang sama pada sepanjang bagian karakter terakhir pada teks. Selanjutnya tidak dilakukkan pergeseran, sehingga nilai pergeseran menjadi :
Nilai Geser = 12 Nilai Selisih = 12
Karena nilai geser = 12 dan nilai selisih = 12, maka pencarian dianggap selesai.
Langkah 5
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 5 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 4pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 6
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 6 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 5pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 7
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 6 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke-6 pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 8
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 8 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 7pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 9
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 9 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 8pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 10
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Pada langkah 10 algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 9pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 11
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 11 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 10pada teks dan karakter pertama pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 12
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 12 pada algoritma Brute Force, tidak ditemukan ketidakcocokkan karakter ke- 11pada teks dan karakter ke-0 pada pattern maka dilakukkan pergeseran, patternberpindah satu kali ke karakter berikutnya ke arah kanan.
Langkah 13
Pada algoritma Brute Force
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Teks D W I _ S U C I A N I _ P U T R I
Pattern P U T R I
0 1 2 3 4
Langkah 13 pada algoritma Brute Force, ditemukan kecocokkan pada karakter ke-12 pada teks yang karakternya sama panjang terhadap karakter pada pattern. Maka proses berakhir saat karakter terakhir pada teks telah dilakukan pencocokkan terhadap karakter terakhir pada pattern yang sudah ditemukan.
3.4.2 Pseudocode Algoritma Brute Force
Berdasarkan analisis cara kerja algoritma Brute Force diatas, berikut adalah pseudocode dari cara kerja algoritma Brute Forceuntuk terjemahan/pencarian kata pada aplikasi kamus, dimana ndidefinisikan sebagai panjang teks dan mdidefinisikan sebagai panjang pattern.
Tabel 3.6 Pseudocode Algoritma Brute Force
procedure BruteForce (string text, string pattern)
Deklarasi :
Cara kerja algoritma Brute Force :
1. Awal mulai pattern dicocokan pada awal teks.
2. Kemudian bandingkan tiap-tiap karakter yang di dalam pattern dengan karakter yang sesuai di dalam teks yang dimulai dari kiri ke kanan hingga :
a. Semua karakter yang telah dibandingkan cocok (kata berhasi ditemukan) atau b. Ditemukan sebuah ketidakcocokan karakter (kata tidak berhasil ditemukan).
3. Jika pattern belum ditemukan kecocokannya dan teks belum habis dibandingkan, geser pattern satu karakter ke kanan dan ulangi langkah ke dua.(Nababan, A.
2015).
3.4.3 Pseudocode Algoritma Optimal Mismatch
Berdasarkan analisis cara kerja algoritma Optimal Mismatch diatas, berikut adalah pseudocode dari cara kerja algoritma Optimal Mismatch pada pencarian kata aplikasi kamus, algoritmaOptimal Mismatch memiliki 4fungsi yaitu fungsi, yaitu fungsipreOrderPattern,preQsBc, preAdaptedGs dan fungsi OM. pseudocode untuk masing-masing fungsi ditunjukkan pada tabel 3.7, tabel 3.8, tabel 3.9 dan tabel3.10 berikut.
Tabel 3.7 Pseudocode PreOrderPattern Algoritma Optimal Mismatch
procedure preOrderPattern (x:array of char, m:integer, pattern:integer, preorderpattern: array of integer) Deklarasi :
i : integer
qsort : array of integer pcmp : array of integer Algoritma :
Tabel 3.7 Pseudocode PreQsBc
Tabel 3.8 Pseudocode PreQsBc Algoritma Optimal Mismatch
Tabel 3.9 Pseudocode PreAdaptedGs Algoritma Optimal Mismatch
procedure preQsBc (x:array of char, m:integer, preQsBc: array of integer)
Deklarasi : i : integer
preQsBc : array of integer Algoritma :
while ( i < m ){
qsbc.put(x.charAt(i),m-i);
i++;
}
qsBc.put(‘*’, m+1);
}
procedure preQsBc (x:array of char, m:integer, pattern:integer, preAdadtedGs: array of integer)
Deklarasi :
lshift,i,ploc : integer
preAdaptedGs : array of integer Algoritma :
adaptedGs[0]=lshift = 1;
for (ploc=1; ploc <= m; ++ploc) {
lshift = matchsift(x, m, ploc, lshift, pat);
adaptedGs[ploc] = lshift;
}
For (ploc=0; ploc <= m; ++ploc){
lshift = adaptedGs[ploc];
while (lshift < m){