ANALISIS DAN PERBANDINGAN ALGORITMA BRUTE FORCE DAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS BAHASA INDONESIA - MANDARIN SKRIPSI DEAR ARINI PURBA 141421008 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017 Universitas Sumatera Utara
73
Embed
ANALISIS DAN PERBANDINGAN ALGORITMA BRUTE FORCE DAN ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ANALISIS DAN PERBANDINGAN ALGORITMA BRUTE FORCE DAN ALGORITMA
HORSPOOL PADA APLIKASI KAMUS BAHASA
INDONESIA - MANDARIN
SKRIPSI
DEAR ARINI PURBA
141421008
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2017
Universitas Sumatera Utara
ANALISIS DAN PERBANDINGAN ALGORITMA BRUTE FORCE DAN ALGORITMA
HORSPOOL PADA APLIKASI KAMUS BAHASA
INDONESIA - MANDARIN
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer
DEAR ARINI PURBA
141421008
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2017
Universitas Sumatera Utara
PERSETUJUAN
Judul : ANALISIS DAN PERBANDINGAN ALGORITMA
BRUTE FORCE DAN ALGORITMA HORSPOOL
PADA APLIKASI KAMUS BAHASA INDONESIA-
MANDARIN
Kategori : SKRIPSI
Nama : DEAR ARINI PURBA
Nomor Induk Mahasiswa : 141421008
Program Studi : SARJANA (S-1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Jos Timanta Tarigan, S.Kom., M.Sc Prof. Dr. Iryanto, M.Si
NIP. 198501262015041001 NIP. 194604041971071001
Diketahui/disetujui oleh
Program Studi S-1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom.
NIP. 196203171991031001
Universitas Sumatera Utara
PERNYATAAN
ANALISIS DAN PERBANDINGAN ALGORITMA BRUTE FORCE DAN
ALGORITMA HORSPOOL PADA APLIKASI KAMUS BAHASA
INDONESIA - MANDARIN
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing – masing telah disebutkan sumbernya.
Medan, Maret 2017
Dear Arini Purba
141421008
Universitas Sumatera Utara
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa yang telah
memberikanrahmat dan berkat-Nya, sehinggapenulis dapat menyelesaikan
penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer
pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar–
besarnya kepada :
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Humselaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Si, 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 yang telah memberikan kritik dan saran
dalam penyempurnaan skripsi ini.
4. Bapak Prof. Dr. Iryanto, M.Si. selaku Dosen Pembimbing I yang telah banyak
memberikan bimbingan, saran,masukan dan dukungan kepada penulis dalam
pengerjaan skripsi ini.
5. Bapak Jos Timanta Tarigan, S.Kom, M.Scselaku Dosen Pembimbing II yang
telah memberikan bimbingan, saran, dan masukan kepada penulis dalam
pengerjaan skripsi ini.
6. Ibu Dr. Maya Silvi Lidya, B.Sc., M.Scselaku Dosen Pembanding I yang
memberikan kritik dan saran untuk penyempurnaan skripsi ini.
7. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M.selaku Dosen Pembanding
II yang memberikan kritik dan saran untuk penyempurnaan skripsi ini.
8. Seluruh tenaga pengajar dan pegawai Program Studi S1 Ilmu Komputer
Fasilkom-TI USU .
9. Ayahanda Efendi Elias Purba dan IbundaDamelina Saragihyang selalu
memberikan doa dan dukungan serta kasih sayang kepada penulis, serta abang
dan adik tersayang Dittya Purba, Benny Carnegie Purba dan Desy Ulina
Universitas Sumatera Utara
Purbayang terus memberikan dukungan dan dorongan bagi penulis untuk
menyelesaikan skripsi ini.
10. Sahabat penulis Sar Barita, Alvin, Denny, Herman, Leo, Mailinda, Priska, Angga
dan yang lainnya yang telah banyak memberikan doa, dukungan dan semangat
selama proses menyelesaikan skripsi ini.
11. Teman – teman dekat Bangkit, Reynaldi, Rico, One, Hilda, Riris, Tika dan Ika
yang memberikan dukungan dan semangat selama proses menyelesaikan skripsi
ini.
12. Teman – teman kuliahJanuar Andi Sirait dan Mariaty Harefa yang senantiasa
membantu penulis dalam penyelesaian skripsi ini.
13. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-
persatu.
Semoga Tuhan Yang Maha Esa melimpahkan berkat dan kasih sayang-Nya kepada
semua pihak yang telah memberikan bantuan, semangat, dukungan dan perhatian serta
doa kepada penulis dalam menyelesaikan skripsi ini.
Medan, April 2017
Penulis
Dear Arini Purba
Universitas Sumatera Utara
ABSTRAK
Bahasa sangat memegang peranan penting dalam berkomunikasi terutama dalam
berinteraksi, baik itu dalam masyarakat ataupun instansi tertentu.Pada saat ini banyak
perusahaan yang membuka lapangan pekerjaan dengan syarat karyawan harus mahir
dalam bahasa mandarin, Untuk dapat belajar bahasa mandarin, kamus dapat dijadikan
sebagai salah satu bahan acuan. Di zaman sekarang ini, aplikasi kamus berbasis
android sangat efisien digunakan untuk belajar menambah kosakata. Dalam membuat
aplikasi kamus, string matching dapat diimplementasikan untuk proses pencarian
katanya. String matching memiliki beberapa algoritma, salah satu algoritmanya adalah
algoritma Brute Force dan algoritma Horspool dan akan diimplementasikan pada
aplikasi kamus tersebut. Algoritma Burte Force melakukan proses pencarian dari kiri
kekanan dan Algoritma Horspool memiliki dua fase yaitu fase preprocessing dan fase
pencarian. Fase preprocessing merupakan proses untuk membuat nilai pergeseran
sesuai dengan pattern yang dimasukkan.Pattern akan bergeser apabila string dan
pattern mengalami ketidakcocokan. Pattern akan berhenti bergeser saat pattern
ditemukan pada teks atau saat jumlah nilai pergeseran lebih besar dari selisih panjang
teks dan panjang pattern.Kedua Algoritma tersebut memiliki kompleksitas
algoritma yang sama yaitu T(n) = θ(mn), tetapi memiliki perbedaan rata-rata running
time sebesar 0,243511 ms, dimana hasil rata-rata running timeAlgoritma Brute
Force adalah 1,38839 ms dan Algoritma Horspooladalah 1,631901 ms.
Kata Kunci : Android, String Matching, Brute Force, Horspool.
Universitas Sumatera Utara
ANALYSIS AND COMPARISON OF BRUTE FORCE AND
HORSPOOL ALGORITHM ON DICTIONARY
INDONESIA –MANDARIN
ABSTRACT
Language has important role in communication because we use it as a tool to deliver
the information, especially in interaction, whether in the public or the company. At
this time many companies are creating jobs on the condition that the employee must
be proficient in Mandarin, To be able to learn Chinese language, the dictionary can
be used as a reference material. In today's age, android based dictionary application
very efficiently used to study add to the vocabulary. In making an application
dictionary, string matching can be implemented for the search process said. String
matching has several algorithms, one algorithm is an algorithm Brute Force and
algorithms Horspool and will be implemented in the dictionary application. Force
Burte algorithms perform the search process from left to right and Horspool
algorithm has two phases which preprocessing and search phase. Preprocessing
phase is a process to make the shift value in accordance with the pattern entered.
Pattern will shift when the string and pattern experienced incompatibility. Pattern will
stop the current shift pattern found on the text or when the amount of shift value is
greater than the difference between the long length of the text and pattern. Both of
these algorithms have the same complexity of the algorithm is T (n) = θ (mn), but have
a difference in the average running time of 0.243511 ms, where the average yield
Brute Force algorithm running time is 1.38839 ms and Algorithms Horspool is
ikan/cause-and-effect matrix adalah diagram yang menggambarkan secara detail
semua penyebab yang berhubungan dengan suatu permasalahan. Diagram
Ishikawa berbentuk seperti ikan yang strukturnya terdiridari kepala ikan (fish’s
head) dan tulang-tulang ikan (fish’s bones). Nama atau judul dari masalah yang
diidentifikasi terletak pada bagian kepala ikan, sedangkan tulang-tulang ikan
menggambarkan penyebab-penyebab masalah tersebut. Diagram Ishikawa pada sistem
ini dapat dilihat pada Gambar 3.1.
Sulit mencari kata pada kamus secara manual
Dibutuhkan media untuk mencari kata terjemahan yang lebih praktis
Metode yang dilakukan masih kurang efisien dalam waktu
Metode pencarian kata pada kamus Indonesia-Mandarin belum dirancang dalam bentuk sistem
Kamus Indonesia-Mandarin masih tersedia dalam bentuk buku
Tidak ada fasilitas searching pada kamus manual
Tidak ada algoritma dalam mencocokkan kata karena kamus masih dalam bentuk manual.
Banyaknya lapangan pekerjaan yang membutuhkan karyawan yang mahir bahasa mandarin.
ManusiaManusia MetodeMetode
MateriMateri MesinMesin
Gambar 3.1 Fishbone Diagram
Seperti yang terlihat pada Gambar 3.1 di atas, masalah utama adalah pada
persegi panjang di posisi paling kanan gambar (bagian kepala) Fishbone Diagram.
Kategori masalah ditunjukkan pada empat persegi panjang yang masing-masing
terhubung ke garis utama, sedangkan rincian masalah ditunjukkan dalam bentuk tanda
panah horizontal pada masing-masing kategori masalah.
Universitas Sumatera Utara
3.1.2 Analisis Kebutuhan Sistem
Dalam analisis kebutuhan sistem terdapat dua bagian penting yang harus dipenuhi,
yaitu analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional
sistem.
3.1.2.1 Analisis Kebutuhan Fungsional Sistem
Analisis kebutuhan fungsional sistem adalah analisis terhadap kebutuhan secara
fungsional baik dalam aliran data ataupun informasi dan merupakan hal yang harus
dimiliki oleh sistem untuk mencapai tujuannya. Berikut ini merupakan beberapa
kebutuhan fungsional sistem yang akan dibangun, antara lain:
1. Sistem dapat membaca pattern yang ingin dicari pada teks yang sebelumnya
telah diinput oleh user.
2. Sistem dapat memanggil dan menampilkan data berupa list kata.
3. Sistem dapat menghasilkan arti kata dari pattern yang dicari dengan
menggunakan algoritma Brute Force dan AlgoritmaHorspool.
4. Sistem dapat menghasilkan perbandingan waktu antara Algoritma Brute
Forcedengan AlgoritmaHorspool.
3.1.2.2 Analisis Kebutuhan Non-Fungsional Sistem
Analisis kebutuhan non-fungsional adalah suatu analisis untuk mengetahui elemen-
elemen apa saja yang berhubungan dengan sistem yang sedang berjalan. Untuk
mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut:
1. Performa
Perangkat lunak yang dibangun dapat menunjukkan hasil pencarian kata yang
dimasukkan oleh pengguna dengan lebih cepat.
2. Mudah Dipelajari dan Digunakan
Tampilan dari perangkat lunak yang dibangun adalah ramah pengguna (user
friendly) dan sederhana.
3. Hemat Biaya
Perangkat lunak yang dibangun adalah hemat biaya karena dapat diakses tanpa
menggunakan jaringan internet dan tidak berbayar.
Universitas Sumatera Utara
3.1.3 Pemodelan Sistem
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang
objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus
dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai
dengan kegunaannya.
Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai
bahasa pemodelan untuk mendesain merancang sistem yang akan dibangun. UML
yang digunakan antara lainuse case diagram, activity diagram dan sequence diagram.
3.1.3.1 Use Case Diagram
Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi
yang terjadi antara user dengan sistem. Use Case Diagram mendeskripsikan interaksi
tipikal antara pengguna sistem dengan sistem itu sendiri, dengan memberikan sebuah
narasi tentang bagaimana sistem tersebut digunakan. Use CaseDiagram dari sistem
aplikasi kamus ini akan dibangun dan dapat ditunjukkan pada Gambar 3.2.
Gambar 3.2 Use Case Diagram Sistem
Didalam Use Case Diagram diatas terdapat satu actor yang berperan sebagai
user. Untuk menampilkan hasil terjemahan user harus memasukkan inputan berupa
kata yang ingin diterjemahkan ke dalam search box. Selanjutnya sistem akan
melakukan pencarian dan pencocokan kata dengan kosakata yang terdapat pada
Universitas Sumatera Utara
database. Kemudian sistem akan menampilkan hasil terjemahannya serta waktu
pencarian.
3.1.3.2 Activity Diagram
Activity Diagram adalah teknik untuk menggambarkan logika procedural, jalur kerja
sistem.Diagram ini menggambarkan berbagai alur kerja dalam sistem yang sedang
dirancang, bagaimana masing-masing alur kerja berawal, decision yang mungkin
terjadi, dan bagaimana aktifitas atau alur kerja berakhir.ActivityDiagram dari sistem
yang akan dibangun dapat ditunjukkan pada Gambar 3.3.
Gambar 3.3 Activity Diagram
Pada Activity diagramuser dapat dijelaskan bahwa user dapat menginputkan kata
sesuai dengan yang ingin dicari. Lalu user dapat melihat hasil pencocokan kata yang
sesuai dengan inputan beserta terjemahannya dan user dapat mengetahui berapa lama
proses pencarian menggunakan Algoritma Brute Force dan Algoritma Horspool.
Universitas Sumatera Utara
3.1.3.3 Sequence Diagram
Sequence Diagram merupakan diagram yang menunjukkan bagaimana kelompok-
kelompok objek saling berkolaborasi dalam beberapa behavior. Sequence diagram
secara khusus, menjabarkan behavior sebuah scenario tunggal. Diagram tersebut
menunjukkan sejumlah objek contoh dan pesan-pesan yang melewat objek-objek
tersebut di dalam use case.Sequence Diagram dari sistem aplikasi kamus bahasa
Indonesia – Mandarin yang akan dibangun dapat ditunjukkan pada Gambar 3.4.
Gambar 3.4 Sequence Diagram
3.2 Flowchart Sistem
Flowchart atau bagan alir adalah bagan (chart) yang menunjukkan alir (flow) didalam
program atau prosedur sistem secara logika.Flowchart merupakan gambar atau bagan
yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya.
Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara
proses digambarkan dengan garis penghubung. Flowchart digunakan terutama untuk
alat bantu komunikasi dan untuk dokumentasi. Flowchart dari sistem yang akan
dibangun dapat ditunjukkan pada Gambar 3.5.
Universitas Sumatera Utara
Gambar 3.5 Flowchart Sistem
Pada Flowchart diatas menggambarkan alur sistem secara umum pada kamus
bahasa Indonesia – Mandarin, dimana user memilih tab algoritma dan menginput kata
yang ingin dicari, kemudian sistem akan memproses pencocokan kata berdasarkan
perhitungan Algoritma Brute Force dan Algoritma Horspool dan menampilkan hasil
pencarian kata beserta terjemahannya.
Universitas Sumatera Utara
3.3 Pseudocode Program
3.3.1 Pseudocode Algoritma Brute Force
Berikut adalah pseudocode algoritma Brute Forcepada tahap pencarian: procedure BruteForceSearch( input m, n : integer, input P : array[0..n-1] of char, input T : array[0..m-1] of char, output ketemu : array[0..m-1] of boolean ) Deklarasi: i, j: integer Algoritma: for (i:=0 to m-n) do j:=0 while (j < n and T[i+j] = P[j]) do j:=j+1 endwhile if(j >= n) then ketemu[i]:=true; endif
endfor
3.3.2 Pseudocode Algoritma Horspool
Berikut adalah pseudocode algoritma Horspool pada tahap praproses: Procedure preBmBc ( input P : array[0. . m-1] of char, input m : integer, input/output BmBc : array [0 . . n-1] of integer ) Deklarasi:
i : integer Algoritma: for (i := 0 to ASIZE – 1)
BmBc[i] := m; endfor for (i := 0 to m-2)
BmBc[P[i]] := m – i – 1; endfor
Dan berikut adalah pseudocode algoritma Horspool pada tahap pencarian:
Procedure HorspoolSearch ( input m, n : integer,
Universitas Sumatera Utara
input P : array[0 . . m-1] of char, input T : array[0 . . n-1] of char, output find : array[0 . . m-1] of boolean ) Deklarasi: j : integer BmBc : array[0 . . n] of integer c : char Algoritma: preBmBc(P, m, BmBc) j := 0 while (j <= n – m) do c = T[j + m – 1]; if (P[m – 1] == c && memcmp(P, T + j, m-1) == 0) then find[j] := true; endif j := j + BmBc[c]; endwhile
3.4 Perancangan Sistem
Proses perancangan antarmuka (interface) sebuah sistem adalah proses yang
cukup penting dalam perancangan sebuah sistem. Merancang antarmuka merupakan
bagian yang paling penting dari merancang sebuah sistem. Sebuah antarmuka harus
dirancang dengan memperhatikan faktor pengguna sehingga sistem yang
dibangun dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh
pengguna.
3.4.1 Rancangan Halaman Menu Utama
Halaman ini merupakan tampilan awal ketika aplikasi pertama kali dijalankan. Pada
halaman ini terdapat dua tab, yaitu tab Algoritma Brute Force dan tab Algoritma
Horspool. Rancangan halaman tab masing-masing algoritma dapat dilihat pada
gambar 3.6 dan gambar3.7.
Universitas Sumatera Utara
Gambar 3.6 Tampilan Tab Algoritma Brute Force
Gambar 3.7 Tampilan Tab Algoritma Horspool
Universitas Sumatera Utara
Keterangan Gambar :
1) Action Bar memuat judul aplikasi dan sebuah icon. Dimana icon memuat
pilihan halaman about.
2) Tabhost digunakan untuk memilih tabalgoritma.
3) FieldText digunakan untuk memasukkan kata yang ingin dicari terjemahannya.
4) Button untuk mencari hasil terjemahan.
5) Textview untuk menampilkan hasil runningtime.
3.4.2 Rancangan Halaman Hasil Pencarian
Pada halaman ini terdapat dua tab, yaitu tab Algoritma Brute Force dan tab Algoritma
Horspool, dimana pengguna yang ingin mencari kata beserta artinya juga dapat
melihat hasil running time dari masing-masing algoritma. Rancangan halaman hasil
pencarian masing-masing algoritma dapat dilihat pada gambar 3.8 dan gambar3.9.
Gambar 3.8 Tampilan Tab Hasil Pencarian Algoritma Brute Force
Universitas Sumatera Utara
Gambar 3.9 Tampilan Tab Hasil Pencarian Algoritma Horspool
Keterangan Gambar :
1) Action Bar memuat judul aplikasi dan sebuah icon. Dimana icon memuat
pilihan halaman about.
2) Tabhost digunakan untuk memilih tabalgoritma.
3) FieldText digunakan untuk memasukkan kata yang ingin dicari
terjemahannya.
4) Button untuk mencari hasil terjemahan.
5) Textview untuk menampilkan hasil running time.
6) Listview untuk menampilkan kata yang ada di dalam database.
3.4.3 Rancangan Halaman About
Halaman about merupakan halaman yang muncul ketika user menekan tombol about
pada halaman menu utama.Rancangan halaman about dapat dilihat pada gambar 3.10.
Universitas Sumatera Utara
Gambar 3.10 Tampilan Halaman About.
Keterangan Gambar :
1) Action Bar berisikan judul dari halaman aplikasi.
2) ImageView untuk menampilkan logo aplikasi.
3) TextView untuk menampilkan judul aplikasi, identitas singkat penulis,
program studi, fakultas, universitas, kota dan tahun.
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
Tahap implementasi sistem merupakan langkah lanjutan dari tahapan analisis dan
perancangan sistem yang dirangkum di bab tiga. Pada tahapan ini, segala yang telah di
bahas pada tahapan analisis dan perancangan akan diimplementasikan ke dalam
bahasa pemrograman Java. Proses dari sistem dan tampilan antarmuka keduanya
ditangani menggunakan bahasa Java dengan perangkat lunak yang digunakan adalah
Android Studio.
4.1.1 Tampilan Antarmuka Utama
Halaman utama merupakan antarmuka awal ketika aplikasi pertama sekali dijalankan.
Pada halaman ini terdapat dua kondisi, pada saat pengguna memilih untuk mencari
terjemahan bahasa Indonesia ke bahasa Mandarin pada algoritma brute force dan pada
saat pengguna memilih untuk mencari terjemahan bahasa Indonesia ke bahasa
Mandarin pada algoritma horspool.
Gambar 4.1 Tampilan Awal Tab Algoritma Brute Force
Universitas Sumatera Utara
Gambar 4.2 Tampilan Awal Tab Algoritma Horspool
4.1.2 Tampilan Antarmuka Hasil Pencarian
Pada tampilan hasil pencarian, sistem akan menampilkan hasil dari kata yang dicari
oleh pengguna/user. Setiap kata di dalam sumberdata yang mengandung kata yang
dimasukkan oleh pengguna akan ditampilkan di dalam listview.
Gambar 4.3 Tampilan Hasil Pencarian Algoritma Brute Force
Universitas Sumatera Utara
Gambar 4.4 Tampilan Hasil Pencarian Algoritma Horspool
4.1.3 Tampilan Antarmuka About
Pada tampilan menu yang berisi informasi singkat dari penulis. Tampilan menu about
dapat dilihat pada gambar 4.5 berikut ini.
Gambar 4.5 Tampilan Antarmuka About
Universitas Sumatera Utara
4.2 Pengujian Sistem
Pengujian terhadap sistem dilakukan untuk membuktikan bahwa sistem yang telah
dibangun berjalan dengan baik serta sesuai dengan analisis dan perancangan sistem
yang telah dibuat sebelumnya.
4.2.1 Pengujian Proses Pencarian Kata dengan Algoritma Brute Force
Pada bagian ini akan dijelaskan pengujian terhadap algoritma Brute Force yang
dibangun. Pada edittext, pengguna memasukkan kata yang akan dicari seperti contoh:
“ada” maka sistem akan menampilkan beberapa hasil seperti: “ada”, “adalah”, “adat
istiadat” dan lainnya. Untuk hasil pengujian selengkapnya dapat dilihat pada tabel 4.1
Tabel 4.1 Tabel Pengujian dengan Algoritma Brute Force
Pattern Tampilan Aplikasi Hasil Running Time
ab
Cocok 0.915528 ms
Universitas Sumatera Utara
ada
Cocok 3.02124 ms
eka
Cocok 1.220703 ms
Universitas Sumatera Utara
isa
Cocok 1.281739 ms
dada
Cocok 1.495362 ms
Universitas Sumatera Utara
Sap
Cocok 1,014635 ms
wan
Cocok 1,018334 ms
Universitas Sumatera Utara
asi
Cocok
1,965886 ms
Bunga
Cocok 1,004166 ms
Universitas Sumatera Utara
Sabar
Cocok
0,946302 ms
4.2.2 Pengujian Proses Pencarian Kata dengan Algoritma Horspool.
Pada bagian ini, sama dengan penjelasan pada pengujian pencarian kata dengan
algoritma Brute Force akan dijelaskan juga pengujian terhadap algoritma Horspool
yang dibangun.
Pada edittext, pengguna memasukkan kata yang akan dicari seperti contoh:
“ada” maka sistem akan menampilkan beberapa hasil seperti: “ada”, “adalah”, “adat
istiadat” dan lainnya. Untuk hasil pengujian selengkapnya dapat dilihat pada Tabel 4.2
Universitas Sumatera Utara
Tabel 4.2 Tabel Pengujian dengan Algoritma Horspool
Pattern Tampilan Aplikasi Hasil Running Time
ab
Cocok 1.037598 ms
ada
Cocok 3.322031 ms
Universitas Sumatera Utara
eka
Cocok 1.495362 ms
isa
Cocok 1.708984 ms
Universitas Sumatera Utara
dada
Cocok 2.990722 ms
Sap
Cocok 1,071407 ms
Universitas Sumatera Utara
wan
Cocok 1.218854 ms
asi
Cocok
1,062917 ms
Universitas Sumatera Utara
Bunga
Cocok 1,004166 ms
Sabar
Cocok
1,256563 ms
Universitas Sumatera Utara
4.2.3 Hasil Pengujian
Berdasarkan hasil pengujian dari penelitian Tabel 4.1 dan Tabel 4.2, running timedari
pencarian kata dan jumlah hasil pencarian yang dapat ditemukan pada Algoritma
Brute Force dan Horspool yang dilakukan terhadap string yang berbeda dengan 10
kali percobaan dan menghasilkan nilai rata-rata dari setiap string tersebut.
Tabel 4.3 Hasil Pengujian Algoritma Brute Force dan Algoritma Horspool
No String Running Time
Brute Force (ms)
Running Time
Horspool (ms)
1 ab 0.915528 1.037598
2 ada 3.02124 3.02124
3 eka 1.220703 1.495362
4 isa 1.281739 1.708984
5 dada 1.495362 2.99072
6 sap 1.014635 1.071407
7 wan 1.018334 1.218854
8 asi 1.965886 1.062917
9 bunga 1.004166 1.455364
10 sabar 0.946302 1.256563
Total 13.8839 16.31901
Rata- rata 1.38839 1.631901
Adapun hasil pengujian dari kedua Algoritma yang dapat dilihat pada Tabel
4.3.Setelah diperoleh hasil pengujian dari tabel 4.1 dan tabel 4.2 maka dibuat grafik
perbandingan dari hasil pengujian untuk kedua algoritma tersebut.Grafik dapat dilihat
pada Gambar 4.6.
Universitas Sumatera Utara
Gambar 4.6 Perbandingan Hasil Running Time Algoritma Brute Force dan Horspool
Berdasarkan grafik tersebut dijelaskan bahwa Algoritma Brute Force
menghasilkanRunning Time yang relatif kecil untuk dibandingkan dengan Algoritma
Horspool. Algoritma Brute Force lebih cepat dalam proses pencocokan kata
dibandingkan dengan Algoritma Horspool. Rata-rata dari total hasil perbandingan dari
kedua Algoritma tersebut dapat dijelaskan pada Gambar 4.7.
Gambar 4.7 Perbandingan nilai total dan rata rata algoritma Brute Force dan Horspool
0
0,5
1
1,5
2
2,5
3
3,5
ab ada eka isa dada sap wan asi bunga sabar
Brute Force
Horspool
13,8839
1,38839
16,31901
1,631901
02468
1012141618
Total Rata-rata
Brute Force HorspoolRunning Time
Wak
tu
Universitas Sumatera Utara
4.3 Kompleksitas Algoritma
Kompleksitas algoritma yang akan diuji adalah kompleksitas dari algoritma Brute
Force dan algoritma Horspool.
4.3.1 Kompleksitas Algoritma Brute Force
Kompleksitas untuk fungsi match pada algoritma Horspool dapat dilihat pada Tabel
4.4.
Tabel 4.4 Kompleksitas Fungsi match algoritma Brute Force
public static boolean match(String pattern, String subject){
inflater.inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.about: Intent intent = new Intent(this, AboutActivity.class); startActivity(intent); default: return super.onOptionsItemSelected(item); } } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new BruteForceFragment(), "Brute Force"); adapter.addFragment(new HorspoolFragment(), "Horspool"); pager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList = new ArrayList<>(); private List<String> titleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager fm) { super(fm); } public void addFragment(Fragment fragment, String title) { fragmentList.add(fragment); titleList.add(title); } public int getItemPosition(Object object) { return POSITION_NONE; } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return titleList.get(position);
Universitas Sumatera Utara
// return null; } } }
2. Splash Screen
package com.dear.mandarindictionary.activity; import android.content.Intent; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.dear.mandarindictionary.R; public class SplashScreenActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash_screen); new Handler().postDelayed(new Runnable() { @Override public void run() { // This method will be executed once the timer is over // Start your app main activity Intent i = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(i); finish(); } }, 1000); } }
3. Brute Force package com.dear.mandarindictionary.algo; import com.dear.mandarindictionary.adapter.DictionaryItem; import java.util.ArrayList; import java.util.List; public class BruteForce { public static boolean match(String pattern, String subject){ int n = subject.length(); int m = pattern.length(); char sub[] = subject.toCharArray(); char patt[] = pattern.toCharArray(); for (int i = 0; i < n-m+1; i++){ int j = 0; while (j < m && sub[i+j] == patt[j]){ j++;
Universitas Sumatera Utara
} if (j == m) return true; //return i; } return false; // return -1; } public static List<DictionaryItem> match(String pattern, List<DictionaryItem> data){ List<DictionaryItem> result = new ArrayList<DictionaryItem>(); for (DictionaryItem item : data) { if (match(pattern, item.getIndonesia())) result.add(item); } return result; } }
4. Horspool package com.dear.mandarindictionary.algo; import com.dear.mandarindictionary.adapter.DictionaryItem; import java.util.ArrayList; import java.util.List; public class Horspool { private int SIZE = 256; private int table[]; private Horspool() { table = new int[SIZE]; } public static Horspool with() { return new Horspool(); } public Horspool shifttable(String pattern) { int m = pattern.length(); char p[] = pattern.toCharArray(); for (int i = 0; i < SIZE; i++) table[i] = m; for (int j = 0; j < m - 1; j++) table[p[j]] = m - 1 - j; return this; } public int match(String pattern, String source) { char s[] = source.toCharArray(); char p[] = pattern.toCharArray(); int m = pattern.length(); int n = source.length(); int i, k;
Universitas Sumatera Utara
i = m - 1; while (i <= n - 1) { k = 0; while (k <= m - 1 && p[m - 1 - k] == s[i - k]) { k++; } if (k == m) { return i - m + 1; } else { i = i + table[s[i]]; } } return -1; } public List<DictionaryItem> match(String pattern, List<DictionaryItem> data) { List<DictionaryItem> result = new ArrayList<DictionaryItem>(); for (DictionaryItem item : data) { if (match(pattern, item.getIndonesia()) > -1) result.add(item); } return result; } }
Universitas Sumatera Utara
CURRICULUM VITAE [ D a f t a r R i w a y a t H i d u p ]
Data Pribadi
Nama Dear Arini Purba Tempat / Tgl Lahir Tanjung Morawa / 26 Juni 1991 Jenis Kelamin Perempuan Kewarganegaraan Indonesia Agama Kristen Protestan Alamat Dusun II Desa Bangun Sari Tanjung Morawa E-mail [email protected]
No HP 085270962212 Alamat Orang Tua Dusun II Desa Bangun Sari Tanjung Morawa No HP Orang Tua 0811634226
Pendidikan
1997-2003 SD ST Antonius Medan
2003-2006 SMP Negeri 3 Medan
2006-2009 SMA Negeri 5 Medan
2010-2013 D-3 Teknik Komputer, Politeknik Negeri Medan
2014-sekarang S1-Ekstensi Ilmu Komputer, Universitas Sumatera Utara