IMPLEMENTASI DAN ANALISIS ALGORITMA SHIFT-OR DENGAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH HUKUM
FAUZIAH ROSI 141421079
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2016
IMPLEMENTASI DAN ANALISIS ALGORITMA SHIFT-OR DENGAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH HUKUM
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
FAUZIAH ROSI 141421079
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2016
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Kemajuan teknologi membuat banyak kebutuhan masyarakat yang dapat diakses dengan sistem komputasi. Hal itu dikarenakan lebih objektif dalam efektivitas, efisiensi waktu dan keakuratan data, serta mempermudah pengguna dalam mendapatkan informasi, contohnya kamus online. Kamus dirancang guna mempercepat proses pemahaman dalam dunia pendidikan untuk mencari tahu kata atau istilah ingin diketahui maknanya dengan lebih modern dan praktis seperti dalam mencari istilah hukum.
Hukum saat ini tidak saja menjadi dominasi para ahli hukum semata, tetapi dengan semakin berkembangnya ilmu pengetahuan dan teknologi serta semakin meningkatnya kualitas pendidikan masyarakat, maka masyarakat semakin sadar akan pentingnya ilmu pengetahuan tentang masalah hukum dan istilah-istilah yang terkandung didalamnya. Melihat pentingnya ilmu pengetahuan hukum maka kamus istilah hukum ini merupakan kamus yang disusun untuk masyarakat umum, praktisi ilmu pengetahuan yang terkait dengan hukum, dan pelaku hukum di Indonesia. Dengan adanya kamus ini, akan banyak memberikan bantuan bagi masyarakat untuk memahami masalah hukum dengan menerjemahkannya ke dalam arti kata-kata yang lazim di pakai dalam bahasa sehari-hari, oleh karena itu dapat dipergunakan tanpa meminta bantuan pada para ahli hukum secara langsung
Kamus istilah hukum tersusun dari berbagai bahasa, yang apabila dijadikan suatu aplikasi maka pencarian katanya akan memerlukan waktu lama, untuk
mempermudah masalah pencarian kata tersebut, maka kamus ini dirancang dengan menggunakan algoritma String Matching. Melalui aplikasi istilah hukum ini pengguna dapat menginput kata yang akan dicari. Karena pada dasarnya, aplikasi istilah hukum ini bekerja dengan melakukan string matching atau biasa disebut pencocokkan suatu text berdasarkan kata-kata yang sudah terdapat di database.
Pada penelitian ini, algoritma yang digunakan ialah algoritma Shift-Or dan Algoritma Horspool. Algoritma Shift-Or merupakan salah satu algoritma string matching yang efisien untuk masalah pencocokan string secara tepat dan menggunakan metode pencocokan string dari kiri ke kanan. Algoritma Shift-Or ini mempunyai batas ukuran dalam pencarian kata. Batas ukuran tersebut disebabkan karena algoritma ini menggunakan match register yang hanya dapat menampung satu pattern. (Purwoko 2006)
Walaupun algoritma Boyer-Moore dianggap sebagai algoritma pencarian string yang paling efisien (untuk aplikasi umum) saat ini, namun algoritma ini ternyata kurang cocok digunakan untuk text dengan varian karakter yang sedikit, seperti binary string. Hal ini dikarenakan lompatan pengecekan yang dapat dilakukan oleh algoritma Boyer-Moore menjadi cenderung lebih pendek pada text model ini. Muncul gagasan tambahan untuk algoritma Boyer-Moore yang kemudian dikenal dengan algoritma Horspool atau algoritma Boyer-Moore-Horspool.
1.2. Rumusan Masalah
Adapun masalah yang akan dibahas pada penelitian ini ialah bagaimana hasil analisis pengimplementasian pencarian kata pada kamus istilah hukum dengan menggunakan 2 algoritma string matching yakni Algoritma Shift-Or dan Algoritma Horspool.
1.3. Batasan Masalah
Berikut beberapa batasan masalah dari kegiatan penelitian ini yaitu :
1. Mengukur kemampuan sistem dalam menemukan istilah-istilah hukum yang diinputkan berdasarkan kata kunci (query) serta melakukan proses terjemahan arti, pengukuran kecepatan waktu proses (running time) pencarian string/kata dalam satuan waktu (ms) dan ukuran kompleksitas algoritmanya ialah Big- θ.
2. Mengingat banyak kata yang terdapat dalam istilah ilmu hukum, maka penulis membatasi kata yang diinputkan yaitu sebanyak ±250 kata dalam buku “Kamus Hukum Dictionary of Law” oleh Drs Zulkifli, SH & Jimmy P. SH dan buku
“KAMUS HUKUM” oleh Sudasono, S.H., MSi.
3. Dalam aplikasi kamus istilah hukum ini inputnya berupa kata dan output terjemahannya berupa kalimat teks arti.
4. Panjang istilah kata yang diinputkan tidak melebihi 32 karakter karena algoritma Shift-Or memiliki keterbatasan dalam menangani panjang pattern
5. Perancangan aplikasi kamus ini menggunakan bahasa pemograman C# dan Database Management System (DBMS) menggunakan MySQL.
1.4. Tujuan Penelitian
Penelitian ini bertujuan untuk membangun sebuah sistem aplikasi yang dapat memberikan informasi dengan cepat serta akurat mengenai istilah yang ada pada ilmu hukum dan terjemahannya dengan menggunakan algoritma pencarian pola yakni Algoritma Shift-Or dan Algoritma Horspool.
1.5. Manfaat Penelitian
Manfaat yang didapat dalam pembuatan sistem ini antara lain : 1. Bagi Penulis
Media penerapan dan penelitian hasil ilmu yang telah diperoleh selama kuliah.
2. Bagi Bidang Ilmu
Mengetahui bagaimana kinerja, kecepatan dan ketepatan algoritma Horspool dengan algoritma Shift-Or dalam mencari kata/string pada aplikasi kamus istilah hukum ini.
3. Bagi Masyarakat
a. Mempermudah pengguna/user untuk mencari arti kata istilah-istilah yang ada pada dunia hukum di Indonesia sesuai yang diinputkan.
b. Meningkatkan efektivitas dan efisiensi proses pembelajaran sehingga pengguna/user tidak harus meminta bantuan pada para ahli hukum ataupun membuka buku-buku hukum secara manual karena membutuhkan waktu yang lebih banyak.
1.6. Metodologi Penelitian
Tahapan penelitian yang dilakukan dalam penelitian ini adalah :
a. Studi Literatur
Studi ini dilakukan dengan cara mempelajari, meneliti dan menelaah berbagai literatur-literatur dari perpustakaan yang bersumber dari buku-buku, teks, jurnal ilmiah maupun hasil penelitian terdahulu sebagai referensi yang diperlukan dalam melakukan penelitian.
b. Analisis dan Perancangan
Dengan adanya rumusan dan batasan masalah, kebutuhan perancangan dianalisis disertai pembuatan Flowchart, Unified Modeling Language (UML), Design Interface.
c. Implementasi
Sistem diimplementasi dengan metode Algoritma Shift-Or dan Algoritma Horspool menggunakan bahasa pemograman C#.
d. Pengujian
Sistem yang akan dibuat akan diuji dengan mencocokkan pattern (kata) dengan string yang dicari dengan cara kerja yang berbeda pada String Matching lalu melihat kecepatan proses pencarian kata pada sistem yang akan dibuat dengan menggunakan Algoritma Shift-Or dan Algoritma Horspool.
e. Penyusunan Skripsi
Pada tahap ini dilakukan penyusunan laporan hasil perancangan sistem ke dalam format penulisan skripsi.
1.7. Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu:
BAB 1 PENDAHULUAN
Bab ini menjelaskan latar belakang judul skripsi ” Implementasi dan analisis Algoritma Shift-Or dengan Algoritma Horspool pada aplikasi kamus istilah hukum”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi tentang penjelasan singkat mengenai Kamus, String Matching, Algoritma Shift-Or dan Algoritma Horspool.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas analisis terhadap masalah penelitian dan
perancangan terhadap sistem yang akan dibangun, cara kerja sistem disertai pembuatan flowchart, Unified Modeling Language (UML), Design Interface.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi tentang pembuatan sistem dan coding sesuai dengan analisis dan perancangan, kemudian melakukan pengujian sistem., serta pembahasan hasil pengujian dan analisisnya.
BAB 5 KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan dapat bermanfaat untuk penelitian yang berhubungan selanjutnya.
BAB 2
LANDASAN TEORI
2.1. Kamus
Secara etimologi, kata kamus berasal dari kata dalam bahasa Arab, yaitu qamus (bentuk jamaknya qawamus). Bahasa Arab menyerap kata kamus dari kata dalam bahasa
Yunani kuno, okeanos yang berarti lautan, dalam bahasa Indonesia kamus dipadankan berdasarkan bahasa asing ialah perbendaharaan atau kosakata. Kamus merupakan buku rujukan yang memuat makna kata dan ungkapan, biasanya disusun menurut abjad berikut keterangan tentang makna, pemakaian dan terjemahannya. Selain menerangkan maksud kata, kamus juga mungkin mempunyai pedoman sebutan, asal-usul (etimologi) sesuatu perkataan dan juga contoh penggunaan bagi sesuatu perkataan.. Untuk
memperjelas kadang kala terdapat juga ilustrasi di dalam kamus. Dewasa ini kamus merupakan khaznah yang memuat perbendaharaan kata suatu bahasa ataupun ilmu pengetahuan, yang secara ideal tidak terbatas jumlahnya. (Chaer 2007)
Kamus sangat dibutuhkan dalam dunia pendidikan untuk mencari tahu kata atau istilah ingin diketahui maknanya. Dalam dunia pendidikan ditemukan banyak isitilah- istilah yang digunakan, misalnya dalam ilmu hukum. (Marpaung 2013) Dalam dunia hukum banyak ditemukan jenis-jenis kamus, dan sebagian besar kamus tersebut dalam
ukuran besar, para pengguna kamus tersebut mengalami kendala dalam membawa kamus tersebut karena berat. Kamus juga memberikan kita manfaat untuk mengetahui:
(Chaer 2007)
1. Makna Kata, pada umumnya orang membuka kamus untuk mengetahui makna atau arti sebuah kata yang belum diketahuinya atau yang masih meragukannya.
2. Lafal Kata, menjelaskan lafal atau ucapan sebuah kata yang baku dan yang tidak baku.
3. Ejaan kata, member petunjuk bagaimana ejaan yang benar dari setiap kata.
4. Kebakuan kata, mengetahui penggunaan kata baku dan kata tidak baku.
5. Algoritma harus efektif, bila digunakan benar-benar menyeselesaikan persoalan.
2.2. Algoritma
Pemrograman komputer dan algoritma pemrograman adalah dua hal yang tidak dapat dipisahkan karena pembuatan program komputer akan lebih sulit dan lama tanpa mengetahui dengan pasti bagaimana algoritma penyelesaian masalahnya. Sebelum mengetahui lebih lanjut apa yang dimaksud dengan algoritma pemrograman, kita bahas dahulu apa yang dimaksud dengan pemrograman komputer atau program komputer.
Definisi program komputer adalah sederetan perintah-perintah (instruksi) yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. Deretan perintah-
perintah tersebut tidak bisa kita tulis secara sembarangan atau semau kita tetapi harus teratur agar komputer dapat memahami dan memprosesnya dengan baik sehingga permasalahan yang ada dapat diselesaikan dengan baik pula (Suprapto 2008).
Untuk itulah diperlukan algoritma karena definisi dari algoritma itu sendiri menurut Microsoft Press Computer and Internet Dictionary adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah
logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat dan disusun secara sistematis. Sedangkan yang dimaksud dengan langkah-langkah logis adalah kita harus dapat mengetahui dengan pasti setiap langkah yang kita buat. Jadi dapat disimpulkan bahwa algoritma lebih merupakan alur
pemikiran atau urutan-urutan dari instruksi untuk menyelesaikan suatu pekerjaan atau suatu masalah dari pada pembuatan program komputer dalam rentang waktu tertentu.
Algoritma inilah yang kemudian dijadikan landasan atau pedoman untuk membuat program komputer. (Irwan 2013)
Algoritma adalah prosedur langkah komputasi yang terdefenisi dengan baik dengan menggunakan beberapa nilai sebagai masukkan dan menghasilkan beberapa nilai yag disebut keluaran (Munir 2007).
Menurut Donald E. Knuth penulis buku “The Art of Computers Programming”
menyatakan bahwa ada beberapa ciri algoritma, yaitu:
1. Algoritma mempunyai awal dan akhir. suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
2. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda (ambigu).
3. Memiliki masukan (input) atau kondisi awal.
4. Memiliki keluaran (output) atau kondisi akhir.
5. Algoritma harus efektif, bila digunakan benar-benar menyelesaikan persoalan.
Komponen yang harus ada dalam merancang algoritma (Nurhayati 2010):
1. Komponen masukan : terdiri dari pemilihan variable, jenis variable, tipe variable, konstanta dan parameter (dalam fungsi).
2. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah
3. Komponen proses: merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dll).
2.3. String Matching
Permasalahan string matching atau lebih dikenal dengan pencocokan string merupakan permasalahan yang sangat terkenal dalam dunia informatika. Contoh implementasi dari permasalahan pencocokan string adalah pada pencocokan sebuah string pada Microsoft Word atau editor yaitu fasilitas find, atau dalam kasus yang lebih besar lagi, yaitu pencocokan website dengan memasukkan kata-kata kunci sebagaimana yang telah diimplementasikan pada search engine, seperti Yahoo atau Google. (Umar & Asma 2008)
Walaupun data telah dapat disimpan dengan berbagai cara, teks tetap menjadi bentuk utama dalam penyimpanan data. String matching merupakan salah satu subyek yang banyak digunakan dalam lingkup dalam memproses teks yang digunakan dalam text editor. Text editor merupakan perangkat lunak untuk melakukan pemrosesan pada teks. Salah satu yang dapat dilakukan dengan text editor adalah mencari suatu pattern (biasanya berbentuk perintah find) dan menggantikan pattern yang ada sebelumnya
dengan pattern baru yaitu dengan perintah replace. Pattern dan teks merupakan string (kumpulan karakter dengan panjang tertentu). (Umar & Asma 2008)
Secara umum string matching adalah proses pencarian kata (pattern) dalam sebuah kalimat teks (string), string matching bisa untuk menemukan satu pattern yang pertama kali ditemukan, atau yang lebih umum, menampilkan semua pattern yang dapat ditemukan text. Jenis string matching bermacam-macam, dibedakan menurut hasil yang diinginkan. Algoritma-algoritma string matching menjadi komponen dasar yang dipakai pada berbagai piranti perangk at lunak dan dapat ditemukan pada hampir semua jenis sistem operasi. (Charras &
Lecroq 1997)
Selain itu, algoritma ini menekankan pada metoda algoritma yang lain dalam pengetahuan komputer. Masalah utama dalam pencarian string adalah untuk mencari sebuah string yang terdiri dari beberapa karakter (yang biasa disebut pattern) dalam sejumlah besar text. Pencarian string juga digunakan untuk mencari pola bit dalam sejumlah besar file binary. Dalam menganalisis algoritma-algoritma pencarian string akan di asumsikan bahwa panjang string (pattern) adalah S dan panjang text tempat pattern tersebut dicari dimisalkan dengan T. Seiring dengan berkembangnya ilmu pengetahuan, pe.ngembangan dan pengkajian terus dilakukan sehingga ditemukan beberapa metode yakni exact matching dan heuristic atau statistical matching. Exact String Matching, artinya pencarian yang dilakukan untuk menemukan
substring/pattern yang tepat sama dalam sebuah string/text (Mesran, 2014).
Gambar 2.1. Simple String Matching
(Sumber:http://courses.ics.hawaii.edu/ReviewICS311/morea/230.stringmatching/readi ng-notes.html)
Algoritma pencocokan/pencarian exact string matching dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya (Charras, 1997) yaitu:
1. Pencarian dari arah kiri ke kanan
pencarian paling alami seola-olah seperti membaca dari kiri ke kanan algoritma yang termasuk kategori ini adalah Algoritma Brute Force , Algoritma Karp- Rabin, Algoritma Knuth-Morris-Pratt, Algoritma Shift-Or, Algoritma Simon, dll.
2. Pencarian dari arah kanan ke kiri
pencarian yang dimulai dari karakter terakhir pada teks dan biasanya menghasilkan hasil yang terbaik dalam prakteknya. Algoritma yang termasuk adalah Algoritma Boyer-Moore, Algoritma Horspool, Algoritma Apostolico- Giancarlo, Algoritma Turbo Boyer-Moore, Algoritma Quick Search, Algoritma Zhu-Takaoka, Algoritma Reserve Collusi, dll.
3. Pencarian dengan urutan tertentu
Pencarian dari arah yang sudah ditentukan secara spesifik oleh algoritma. Arah ini menghasilkan hasil yang terbaik secara teoretis, contohnya adalah Algoritma Colussi, Algoritma Galil-Giancarlo, Algoritma Galil-Seiferas, Algoritma Crochemore-Perrin, Algoritma Maximal Shift, dll.
4. Pencarian dengan tanpa urutan
Pencarian dimulai dari posisi tidak tertentu dalam algoritma Algoritma yang termasuk adalah Algoritma Smith dan Algoritma Raita.
2.3.1. Klasifikasi String Matching
Pencocokan string (string matching) secara garis besar dapat dibedakan menjadi dua yaitu (Syaroni & Munir 2008):
a. Exact string matching, merupakan pencocokan string secara tepat sama persis dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Contoh: kata perdata akan menunjukkan kecocokan hanya dengan kata perdata.
b. Inexact string matching atau Fuzzy string matching, merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan dimana keduanya memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya) tetapi string-string tersebut memiliki kemiripan baik kemiripan tekstual/penulisan (approximate string matching) atau kemiripan ucapan (phonetic string matching). Inexact string matching masih dapat dibagi lagi menjadi dua yaitu:
1. Pencocokan string berdasarkan kemiripan penulisan (approximate string matching) merupakan pencocokan string dengan dasar kemiripan dari segi penulisannya (jumlah karakter, susunan karakter dalam dokumen). Tingkat kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah string yang dibandingkan tersebut dan nilai tingkat kemiripan ini ditentukan oleh pemrogram (programmer). Contoh: kompensasi dengan kompetensi, memiliki jumlah karakter yang sama tetapi terdapat tiga karakter yang berbeda. Jika perbedaan karakter ini dapat ditoleransi sebagai sebuah kesalahan penulisan maka dua string tersebut dapat dikatakan cocok.
2. Pencocokan string berdasarkan kemiripan ucapan (phonetic string matching) merupakan pencocokan string dengan dasar kemiripan dari segi pengucapannya meskipun ada perbedaan penulisan dua string yang dibandingkan tersebut. Contoh step dengan steb dari tulisan berbeda tetapi dalam pengucapannya mirip sehingga dua string tersebut dianggap cocok.
2.4. Algoritma Shift-Or
Algoritma Shift-Or yang juga dikenal dengan nama shift-and, Bitap atau Baeza-Yates- Gonnet adalah algoritma pencarian fuzzy string. Algoritma Shift-Or untuk pencarian string ditemukan oleh Balint Domolki pada tahun 1964 kemudian dikembangkan oleh R.K Shyamasundar pada tahun 1977 sebelum ditemukan kembali untuk pencarian string fuzzy oleh Menber dan Wu pada tahun 1991 berdasarkan kerja yang dilakukan oleh Ricardo Baeza-Yates dan Gaston Gonnet. (Purwoko 2006)
Algoritma Shift-Or melakukan perbandingan karakter dari kiri ke kanan dalam pola dan melibatkan satu set semua prefiks dari pola yang cocok dengan akhiran dalam text. Algoritma Shift-Or merupakan algoritma yang efisien untuk pencocokan string yang tepat dan algoritma ini lebih mudah beradaptasi pada pendekatan pencocokan string.
Karakterikstik utama algoritma Shift-Or: (Fernando 2009)
1. Algoritma ini efisien jika panjang pattern tidak lebih dari ukuran memori untuk menyimpan 32 karakter di dalam komputer yang digunakan.
2. Dapat digunakan untuk pendekatan pencarian string.
Algoritma Shift-Or ini mempunyai batas ukuran. Batas ukuran tersebut disebabkan karena algoritma ini menggunakan match register yang hanya dapat menampung satu pattern, sehingga algoritma ini hanya menangani pattern dengan panjang maksimal 32 karakter. Algoritma ini menggunakan sebuah tabel cancel mask dan sebuah variabel match register. Maka sebelum pencocokan dilakukan, tabel cancel mask dan match register harus dibangun terlebih dulu. (Purwoko 2006)
2.4.1. Cara Kerja Algoritma Shift-Or
Guna mengilustrasikan deskripsi dan cara kerja dari algoritma Shift-Or ini, akan digunakan contoh berikut:
Text (n) : FAUZIAH ROSI Pattern (m) : ROSI
Tabel 2.1. Urutan index text (y)
0 1 2 3 4 5 6 7 8 9 10 11
F A U Z I A H “ ” R O S I
Tabel 2.2. Urutan index pattern (x)
0 1 2 3
R O S I
2.4.2. Tabel Cancel Mask
Tabel cancel mask adalah tabel yang berfungsi untuk mencatat kemunculan karakter alfabet yang muncul pada pattern. Pada tabel cancel mask ini, nilai benar diwakili dengan 0, sedangkan nilai salah diwakili dengan 1.
Cara membangun tabel cancel mask:
1. Panjang pattern menentukan banyak kolom tabel. Kolom dinomori dengan urutan mulai dari kanan ke kiri (jadi 0 berada di sudut kanan tabel).
2. Banyak alfabet/karakter menentukan banyak baris tabel.
Jika pada pattern, karakter x berada pada urutan ke-y (ini berarti kemunculan karakter tersebut pada urutan ke-y bernilai benar) maka pada tabel baris karakter tersebut dan kolom ke-y isi dengan 0. Lakukan untuk semua karakter pada pattern, sisa kolom yang kosong diisi dengan 1.
Table 2.3. Table Cancel Mask Cancel Mask
i
3 2 1 0
I S O R
A F
1 1 1 1
F 1 1 1 1
H 1 1 1 1
I 0 1 1 1
O 1 1 0 1
R 1 1 1 0
S 1 0 1 1
U 1 1 1 1
Z 1 1 1 1
_ 1 1 1 1
2.4.3. Tabel Match Register
Tabel Match register adalah tabel yang berfungsi untuk mencatat kecocokan karakter yang muncul pada pattern.
Cara membangun match register:
1. Buat tabel match register dengan kolom sepanjang jumlah karakter dalam pattern.
2. Isi tabel match register dengan 1.
Tabel 2.4. Tabel Match register Match Register Table
I S O R
3 2 1 0
1 1 1 1
Untuk memulai proses pencocokan lakukan shift kiri sekali. Shift kiri adalah memindahkan setiap bit di register satu posisi ke kiri dan menempatkan 0 pada titik paling kanan atau least significant bit
Tabel 2.5. Tabel Match register setelah dilakukan shift kiri Match Register Table
I S O R
3 2 1 0
1 1 1 0
Untuk melakukan pencocokan, dilakukan pemrosesan terhadap text dengan cara:
1. Lakukan operasi logika OR antara match register yang telah dilakukan shift kekiri dengan nilai cancel mask untuk karakter pertama pada text yang
kemudian hasil operasi ORnya dijadikan nilai match register karakter selanjutnya pada text dengan dilakukan shift kekiri terlebih dahulu begitu seterusnya (untuk karakter ke n pada text, nilai cancel mask-nya sesuai dengan karakter n tersebut).
2. Perhitungan berhenti hingga nilai pencarian OR antara match register dengan nilai cancel match pada karakter ke n lebih kecil dari 1 yang berarti bahwa karakter terakhir pattern telah ditemukan pada text pada posisi ke n.
3. Kemudian dilakukan pengecekan posisi pattern yang terdapat pada text dengan rumus [ [ ]] , yang mana j tersebut adalah posisi karakter terakhir pattern yang terdapat pada text dan m adalah panjang patternnya kemudian hasilnya adalah posisi awal pattern pada text.
Tabel 2.6. Fase Pencarian Algoritma Shift-Or
i
0 1 2 3 4 5 6 7 8 9 10 11
F A U Z I A H “ ” R O S I
0 R 1 1 1 1 1 1 1 1 0 1 1 1
1 O 1 1 1 1 1 1 1 1 1 0 1 1
2 S 1 1 1 1 1 1 1 1 1 1 0 1
3 I 1 1 1 1 0 1 1 1 1 1 1 0
Y11[4] = 0 berarti X telah ditemukan pada posisi 11 – 4 + 1 = 8 Maka pattern ROSI ditemukan pada index ke-8 hingga index ke 11 pada text.
2.5. Algoritma Horspool
Pada tahun 1980 Horspool mengajukan sebuah algoritma yang melakukan pergeseran hanya pada ujung kanan dalam menghitung pergeseran di algoritma Boyer-Moore. Walaupun Algoritma Boyer-Moore dianggap sebagai algoritma
pencarian string yang paling efisien saat ini, namun algoritma ini ternyata kurang cocok digunakan untuk text dengan varian karakter yang sedikit, seperti binary string. Hal ini dikarenakan lompatan pengecekan yang dapat dilakukan oleh algoritma Boyer-Moore menjadi cenderung lebih pendek pada text model ini. R. Nigel Horspool melakukan penelitian tentang algoritma Boyer-Moore ini. Dari hasil penelitiannya, beliau mengemukakan gagasan tambahan untuk Algoritma Boyer-Moore. Algoritma ini kemudian dikenal dengan Algoritma Horspool atau Algoritma Boyer-Moore- Horspool.
(Tambun 2011)
Ada dua gagasan metode algoritma yang dikemukakan oleh Horspool. Jika pada algoritma Boyer-Moore terdapat dua fungsi praproses yaitu bad-character shift dan good-suffix shift. Algoritma Horspool hanya menggunakan metode bad-character shift sebagai satu-satunya fungsi praproses pattern sebelum dilakukan pencarian. Hal ini dikarenakan fungsi good-suffix shift cenderung lebih rumit untuk diimplementasikan dan tidak terlalu berpengaruh pada kecepatan pengecekan. Fungsi good-suffix shift ini dibuat hanya untuk menangani pattern yang bersifat repetitif. Namun karena pattern model ini jarang ditemui maka fungsi ini tidak digunakan oleh Horspool. (Tambun 2011)
Bad-character adalah karakter y [i + j] pada text tidak cocok dengan karakter pada pattern x[i] pada posisi j (posisi pergeseran antara pattern dan text). Pergeseran bad-character terdiri dari menyejajarkan karakter y [i + j] pada text dengan kemunculan paling kanan karakter tersebut pada pattern. Dua kemungkinan penyelesaian dalam melakukan pergeseran pattern, Jika karakter yang tidak cocok, tidak ada pada pattern
maka pegeseran adalah sebanyak jumlah karakter pada pattern. dan jika karakter yang tidak cocok, ada pada pattern, maka banyaknya pergeseran bergantung dari nilai pada tabel bad-character bmBc. (Crochemore 1996)
2.5.1. Cara Kerja Algoritma Horspool
Algoritma Horspool menggunakan karakter yang terdapat paling kanan pada current text window untuk menentukan jarak shift yang akan dilakukan. Pattern akan digeser sampai karakter paling kanan dari ujung window mendapatkan hasil pengecekan yang benar. Karakter yang berada pada ujung pattern tidak dihitung dan tidak dijadikan karakter terkanan dari karakter yang sama dengannya.
Secara sistematis, langkah-langkah yang dilakukan Algoritma Hosrpool pada saat mencocokkan pattern adalah
1. Algoritma Horspool dimulai dengan menciptakan tabel bad chacarter (bmBc) dari pattern (shift [ [ ]] ). Tabel ini digunakan untuk menentukan nilai pergeseran setiap perbandingan yang dilakukan antara pattern dan text.
2. Algoritma akan mencoba untuk menemukan pencocokan pattern dan text. Jika tidak ada pencocokan antara string pattern dan string text akan bergeser ke pencocokan string selanjutnya.
Misalnya, karakter I pada pattern akan dibandingkan terhadap karakter Z pada text. Jika ada tidak ada kecocokan antara karakter pertama (I dan Z), maka algoritma ini akan tidak memeriksa sisa karakter dan akan melakukan pergeseran nilai berdasarkan tabel bmBc yang telah dibuat. Pada contoh ini nilai I adalah empat maka pergeseran perbandingan sebanyak empat karakter begitu pula hingga menemukan string yang cocok antara pattern dengan text hingga panjang
text habis guna mengecek ada berapa banyak string pattern yang dapat ditemukan.
3. Apabila semua karakter pattern telah cocok pada text, kemudian algoritma akan mencatat pada posisi keberapa pattern ditemukan.
Guna mengilustrasikan deskripsi dan cara kerja dari Algoritma Horspool ini, akan digunakan contoh berikut:
Text (n) : FAUZIAH ROSI Pattern (m) : ROSI
Tabel 2.7. Urutan indeks text (y)
0 1 2 3 4 5 6 7 8 9 10 11
F A U Z I A H “ ” R O S I
Tabel 2.8. Urutan index pattern (x)
0 1 2 3
R O S I
Langkah-langkah yang dilakukan Algoritma Horspool pada contoh tersebut adalah:
a. Perhitungan pergeseran Bad-Character (bmBc)
Tabel 2.9. Tabel bmBc
i 0 1 2 3 4
a I O R S *
bmBc (a) 4 2 3 1 4
Nilai pergeseran pada tabel didapat dengan perhitungan sebagai berikut:
bmBc [ [ ]]
bmBc [ [ ]]
bmBc [ [ ]]
bmBc [ [ ]]
bmBc [ [ ]] , karena maka bmBc [ [ ]] bernilai jumlah karakter pada pattern (m) yaitu 4
Dan untuk karakter yang tidak terdapat pada pattern, karakter tersebut bernilai jumlah karakter pattern itu sendiri yaitu 4
b. Pencocokan String
1. First attempt:
Current text window
F A U Z I A H “ ” R O S I
R O S I
bmBc [Z] = 4 (“Z” merupakan karakter yang tidak terdapat pada pattern), maka shift by 4
2. Second attempt:
Current text window
F A U Z I A H “ ” R O S I
R O S I
bmBc [“ ”] = 4 (“ ” merupakan karakter yang tidak terdapat pada pattern), maka shift by 4
3. Third attempt:
F A U Z I A H “ ” R O S I
R O S I
Pada pencocokan ketiga, pattern ROSI ditemukan pada index ke-8 hingga index ke 11 pada text.
2.6. Kompleksitas Algoritma
Kompleksitas dari suatu algoritma merupakan seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. Besaran yang digunakan untuk menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma. (Azizah 2013).
Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam kompleksitas
algoritma, yaitu: kompleksitas waktu T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n dan kompleksitas ruang S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. (Wibowo 2013)
Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien).
Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang (space) memori yang dibutuhkan untuk
menjalankannya. Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang terbaik. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n.
(Wibowo 2013)
Dua buah algoritma yang berbeda dapat memecahkan masalah yang sama dan
mungkin saja mempunyai kompleksitas waktu yang berbeda. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Ada terdapat beberapa jenis kompleksitas algoritma yang umum yakni Big-O (Oh), Big-ϴ (Theta) dan Big- Ω (Omega). Pada penelitian ini kompleksitas yang akan digunakan adalah Big-ϴ (Theta). (Levitin 2011)
2.6.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₀. Dalam grafik nilai f(n) di sebelah kanan n0 selalu berada di antara c1g(n) dan c2g(n).
2.7. Tinjauan Penelitian yang Relevan
Berikut adalah penelitian yang membahas seputar algoritma String Matching:
1. Evylin Dwi Tambun (2010) dari Institut Teknologi Bandung dalam jurnal yang berjudul “Perbandingan Penggunaan Algoritma BM dan Algoritma Horspool pada Pencarian String dalam Bahasa Medis”. Hasil penelitian tersebut menyimpulkan dengan banyaknya varian karakter pada text dan pattern, maka ketidakcocokan text dan pattern akan lebih mudah dideteksi pada awal pengecekan sehingga algoritma dapat langsung melakukan lompatan. Hal ini akan mengurangi jumlah pengecekan karakter yang harus dilakukan oleh karakter.
2. Mesran (2014) dari STMIK Budi Darma melakukan penelitian dengan judul
“Implementasi Brute Force dalam Pencarian Katalog Buku Perpustakaan“.
Hasil penelitian menunjukkan bahwa Pencocokan string merupakan bagian penting dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam dokumen tergantung dari teknik atau cara pencocokan string yang digunakan. Proses pencocokan string yang merupakan bagian utama dalam proses pencarian string memegang peranan penting untuk mendapatkan dokumen yang sesuai dengan kebutuhan informasi tersebut.
3. Hary Fernando (2009) dari Intitut Teknologi Bandung mengangkat penelitian dengan Judul “Analisis Perbandingan dan Pengujian Beberapa Algoritma
Pencockkan String“. Hasil penelitian menunjukkan bahwa semakin banyak string yang cocok maka jumlah kecocokkan yang dimiliki pada database semakin rendah dan membutuhkan waktu yang lebih lama dalam pengecekan.
Begitu pula sebaliknya bila semakin sedikit jumlah kecocokam yang dimiliki di database semakin tinggi dan semakin cepat waktu yang dibutuhkan proses dalam pencocokkan.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas mengenai beberapa analisis sistem dan perancangan sistem aplikasi. Analisis sistem akan menganalisis pencocokkan string dengan Algoritma Shift- Or dengan Algoritma Horspool pada aplikasi kamus istilah hukum. Kemudian pada perancangan sistem aplikasi, yang akan dibahas yaitu mengenai flowchart sistem dan flowchart menu bantu serta perancangan antarmuka (Interface) dan perancangan database.
3.1. Analisis Sistem
Analisis sistem bertujuan untuk melakukan identifikasi persoalan-persoalan yang akan muncul dalam pembuatan sistem, hal ini dilakukan agar pada saat proses perancangan aplikasi tidak terjadi kesalahan yang berarti, sehingga sistem yang dirancang dapat berjalan dengan baik, tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga serta selesai tepat pada waktu yang telah ditentukan. Ada dua tahapan analisis dalam tugas akhir ialah analisis masalah dan analisis kebutuhan. (Rifai 2015)
Sistem ini dirancang untuk melakukan pencocokkan kata pada aplikasi kamus istilah hukum dengan menggunakan Algoritma Shift-Or dengan Algoritma Horspool.
3.1.1. Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem agar sistem yang akan dibangun tersebut dapat berjalan sebagaimana mestinya sesuai dengan tujuan dari sistem itu. Hukum saat ini tidak saja menjadi dominasi para ahli hukum semata, masyarakat umum semakin sadar akan pentingnya ilmu pengetahuan tentang masalah hukum dan istilah-istilah yang terkandung
didalamnya. Permasalahan utama pada penelitian ini adalah banyaknya istilah-istilah yang terkandung pada ilmu hukum menyebabkan masyarakat di Indonesia kesulitan untuk menerjemahkannya. Dengan adanya kamus akan banyak memberikan bantuan bagi masyarakat untuk, oleh karena itu dapat dipergunakan tanpa meminta bantuan pada para ahli hukum secara langsung. Maka dari itu dibutuhkan sebuah sistem untuk memberikan informasi yang tepat dan cepat dalam proses pemahaman makna kata-kata hukum dengan menggunakan Algoritma Shift-Or dan Algoritma Horspool.
Diagram Ishikawa adalah diagram yang menunjukkan penyebab-penyebab dari sebuah event yang spesifik. Diagram ini juga disebut dengan diagram tulang ikan atau cause-and-effect diagram. Pemakaian diagram Ishikawa yang paling umum adalah untuk mencegah efek serta mengembangkan kualitas produk. Analisa masalah lebih jelas melalui diagram Ishikawa yang dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram Ishikawa
3.1.2. Analisis Kebutuhan
Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis kebutuhan system. Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional.
3.1.2.1. Kebutuhan Fungsional
Kebutuhan fungsional mendeskripsikan aktivitas di mana sistem harus dapat melakukan proses-proses termasuk dalam melakukan pelayanan yang disediakan sistem dan reaksi sistem untuk mendapatkan hasil berdasarkan instruksi yang diberikan. (Rifai 2015)
Kebutuhan fungsional yang harus dimiliki oleh sistem dalam menentukan aplikasi kamus hukum ini adalah :
1. Fungsi Pencarian Kata
Sistem dapat melakukan pencarian kata istilah hukum berdasarkan inputan user dan menampilkan hasil terjemahan artinya dengan mengimplementasikan Algoritma Shift-Or dan Algorima Horspool pada sebuah kamus tersebut.
2. Fungsi Kinerja Algoritma
Waktu pencarian (running time) dan proses pencocokan kata akan dicatat dan dapat ditampilkan pada user untuk memperlihatkan bagaimana kinerja
Algoritma Shift-Or dan Algoritma Horspool dalam mencocokkan sting.
3.1.2.2. Kebutuhan Nonfungsional
Kebutuhan nonfungsional adalah kebutuhan yang mendeskripsikan sistem dari segi karakterisitik, fitur dan batasan lainnya seperti performa, penggunaan, dan ekonomi.
(Rifai 2015) Kebutuhan nonfungsional mencakup karakteristik berikut:
1. Performa
Sistem yang akan dibangun mampu memberikan informasi kepada user dalam mencari istilah kata hukum.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun harus memiliki tampilan yang user friendly artinya bahwa sistem mudah digunakan oleh user dengan tampilan (interface) yang sederhana dan mudah dimengerti.
3. Hemat biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya.
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. (Nababan 2015)
Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain dan merancang Sistem Aplikasi kamus istilah hukum dengan algoritma Shift-Or dan Algoritma Horspool. Model UML yang digunakan antara lain use 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 Case Diagram dari sistem aplikasi kamus istilah hukum yang akan dibangun 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 database.
Kemudian sistem akan menampilkan hasil terjemahannya serta waktu pencarian. Admin juga dapat melakukan pembebaharuan terhadap isi kota kata kamus dengan dapat menambah kata, mengedit kata serta menghapus kata. Berikut ini merupakan tabel dokumen naratif use case User yang dapat dilihat pada Tabel 3.1, Tabel 3.2, Tabel 3.3, dan Tabel 3.4.
Tabel 3.1 Dokumentasi Naratif Use Case Input Kata Nama Use Case Input Kata Hukum
Actor User
Description Use case ini mendeskripsikan penginputan kata hukum yang ingin dicari dengan pengimplementasian Algoritma Shift-Or dengan Algoritm Horspool.
Basic Flow User menginputkan berupa kata
Alternate Flow User dapat memilih alternatif hasil iterasi pencocokan dengan algoritma Shift-Or atau algoritma Hosrpool.
Pre-Condition Aplikasi siap menerima inputan.
Typical course of Event
Kegiatan User Respon Sistem
1. Menekan tombol Cari. 2. Menampilkan hasil pencocokan kata.
Post Condition User mendapatkan hasil pencarian kata, terjemahan dan waktu pencarian
Tabel 3.2 Dokumentasi Naratif Use Case Help Nama Use Case Help
Actor User
Description Use case ini menjelaskan bagaimana cara penggunaan dari
sistem ini
Basic Flow User memerlukan bantuan informasi.
Alternate Flow -
Pre-Condition Aplikasi siap menampilkan bantuan.
Typical course of Event
Kegiatan User Respon Sistem
1. Menekan tombol Help. 2. Menampilkan isi dari menu Help.
Post Condition User mendapatkan bantuan penggunaan aplikasi.
Tabel 3.3 Dokumentasi Naratif Use Case About Nama Use Case About
Actor User
Description Use case ini menampilkan keterangan dan informasi tentang pembuat sistem
Basic Flow User ingin melihat informasi pembuat sistem Alternate Flow -
Pre-Condition Aplikasi siap menampilkan penjelasan.
Typical course of Event
Kegiatan User Respon Sistem
1. Menekan tombol About. 2. Menampilkan informasi
tentang pembuat sistem.
Post Condition User mendapatkan informasi hak cipta sistem
Tabel 3.4 Dokumentasi Naratif Use Case Exit Nama Use Case Exit
Actor User
Description Use case ini untuk menutup sistem aplikasi Basic Flow User ingin keluar dari sistem
Alternate Flow -
Pre-Condition Aplikasi selesai digunakan.
Typical course of Event
Kegiatan User Respon Sistem
1. Menekan tombol Exit. 2. Sistem tertutup.
Post Condition User keluar dari aplikasi
Berikut ini merupakan tabel dokumen naratif use case Admin yang dapat dilihat pada Tabel 3.5, dan Tabel 3.6.
Tabel 3.5 Dokumentasi Naratif Use Case Login/LogOut
Nama Use Case Login/LogOut
Actor Admin
Description Use case ini untuk dapat masuk dan keluar halaman admin Basic Flow Login kehalaman admin
Alternate Flow -
Pre-Condition Halaman Admin muncul
Typical course of Event
Kegiatan Admin Respon Sistem
1. Mengentry usename dan password.
2. Halaman admin terbuka.
Post Condition Admin masuk ke halaman admin
Tabel 3.6 Dokumentasi Naratif Use Case Tambah, Edit, Hapus dan Lihat Nama Use Case Tambah, Edit, Hapus dan Lihat
Actor Admin
Description Use case ini menampilkan tempat untuk menambah, mengedit, mengahapus serta melihat data pada database kamus hukum
Basic Flow Admin ingin memperbaharui data Alternate Flow -
Pre-Condition Halaman Admin muncul
Typical course of Event
Kegiatan Admin Respon Sistem
1. Tambah, edit, hapus dan lihat data.
2. Memperbaharui dan Menampilkan data kamus.
Post Condition Admin dapat memperbaharui data
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 mereka aktifitas atau alur kerja berakhir. Activity Diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.3. dan Gambar 3.4.
Gambar 3.3 Activity Diagram Admin
Tabel 3.7 Dokumentasi Naratif Activity Diagram Admin Name Activity
Diagram
Activity Diagram Admin
Actor Admin
Description Activity ini mendeskripsikan proses admin dalam Aplikasi Pencarian Kamus Istilah Hukum
Pre-Condition Aplikasi siap masuk ke halaman admin
Typical course of Event
Kegiatan User Respon Sistem
1. Melihat data kosakata kamus
2. Menambahkan kata baru 3. Mengedit dan menghapus
kata yang telah ada 4. Logout
1. Sistem menampilkan halaman admin
2. Sistem akan menampilkan kosakata kamus
3. Menyimpan data kata baru
Post Condition Admin telah selesai memperbaharui kamus
Pada Activity Diagram Admin dapat dijelaskan bahwa admin dapat melakukan pembaharuan kosakata pada kamus istilah hukum dengan dapat menambahkan istilah kata baru, mengedit maupun menghapus kata yang kemudian akan secara otomatis tersimpan pada database.
Gambar 3.4 Activity Diagram User
Berikut ini merupakan tabel dokumen naratif Activity Diagram User yang dapat dilihat pada Tabel 3.8.
Tabel 3.8 Dokumentasi Naratif Activity Diagram User
Name Activity Diagram
Activity Diagram User
Actor User
Description Activity ini mendeskripsikan proses Sistem pada Aplikasi Pencarian Kamus Istilah Hukum
Pre-Condition Aplikasi siap masuk ke halaman utama
Typical course of Event
Kegiatan User Respon Sistem
1. Menginputkan kata yang ingin dicari
2. Menekan tombol Cari 3. Memilih tombol telusuri
untuk menampilkan hasil iterasi Algoritma Shift-Or atau Algoritma Horspool 4. Menekan tombol Help 5. Menekan tombol About 6. Menekan tombol Exit
1. Sistem menampilkan halaman yang dipilih
2. Sistem akan melakukan pencarian serta pencocokan terhadap database
3. Menampilkan hasil pencarian dan Running Timenya
4. Menampilkan Hasil iterasi Algoritma
Post Condition User mendapatkan terjemahan kata hukum yang diinput
Pada Activity diagram user 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 Shift-Or dan Algoritma Horspool
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 skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewat objek-objek tersebut didalam use case. Sequence Diagram dari sistem aplikasi kamus istilah hukum yang akan dibangun dapat ditunjukkan pada Gambar 3.5.
Gambar 3.5 Sequence Diagram
Pada tahap ini, yang dilakukan user adalah menginputkan kata istilah hukum yang ingin dicari terjemahannya lalu sistem akan melakukan proses pencarian kata menggunakan perhitungan algoritma string matching dan membandingkannya dengan data yang terdapat pada database. Selanjutnya sistem akan menampilkan hasil pencarian kata yang sesuai dengan yang diinputkan kepada user. Kemudian hasil perhitungan akan
ditampilkan secara berurutan dengan nilai terbaik dari beberapa posisi yang ada.
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.6, Gambar 3.7, dan Gambar 3.8.
End Start
Input Kata
Proses Pencocokkan Kata
Hasil Running Time Algoritma Shift-Or dan
Algoritma Horspool
Output Hasil Terjemahan
Gambar 3.6. Flowchart Sistem
Pada flowchart diatas menggambarkan alur sistem secara umum pada kamus istilah hukum, dimana user menginput kata yang ingin dicari, kemudian sistem akan memproses pencocokan kata berdasarkan perhitungan Algoritma Shift-Or dan Algoritma Horspool dan menampilkan hasil pencarian kata beserta terjemahannya.
Start
Inputkan Kata
Proses Pencocokan Kata dari Posisi Karakter Paling
Kiri ke Kanan
PencarianTiap Karakter Antara Text dan Pattern pada karakter ke-n
Perhitungan logika OR < 1 ? No
Hasil Pencarian Kata
End Yes
Gambar 3.7. Flowchart Algoritma Shift-Or
Gambar 3.7 Menggambarkan alur pada proses pencarian Algoritma Shift-Or, dimana proses awal yang dilakukan yaitu menginputkan pola. Proses pencarian dimulai dari karakter paling kiri ke kanan pattern. Setiap karakter akan dibandingkan satu per satu antara pattern dan text dengan melakukan proses perhitungan logika or antara tabel cancel mask dan tabel match register. Pencocokan string selesai apabila hasil
perhitungan logika or tersebut lebih kecil dari 1, apabila hasilnya telah lebih kecil dari 1 (0) maka pada posisi karakter tersebutlah pattern ditemukan pada text Tabel 2.6.
Start
Inputkan Kata
Proses Pencocokan Kata dari Posisi Karakter Paling
Kanan ke Kiri
Pencocokan Karakter per Karakter Antara Text dan
Pattern
Apakah Karakter Cocok ?
No
Yes
Pemanggilan Pergeseran Pola Berdasarkan Tabel BmBc
Hasil Pencarian Kata
End
Gambar 3.8. Flowchart Algoritma Horspool
Gambar 3.8 Menggambarkan alur pada proses pencarian Algoritma Horspool, dimana proses awal yang dilakukan yaitu menginputkan pola. Proses pencarian dimulai
dari karakter paling kanan ke kiri pattern. Setiap karakter akan dibandingkan satu per satu antara pattern dan text. Jika terjadi ketidakcocokan, maka akan dicek nilai pergeseran yang dilakukan dengan melihat ke tabel Bad-Character (bmBc) Tabel 2.9 hingga pola ditemukan pada text.
3.3. Pseude-code Program
Pseudo-code adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan (hampir sama dengan algoritma), hanya saja bentuknya sedikit berbeda dari algoritma. Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu
biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
3.3.1. Pseudecode Algoritma Shift-Or
Algoritma Shift-Or memiliki dua fungsi yaitu fungsi preSO, dan fungsi Shift-Or.
Pseudocode untuk masing-masing fungsi ditunjukkan pada Tabel 3.9 dan Tabel 3.10.
Tabel 3.9 Pseudocode preSO
Procedure preSO(
input x : array[0..m-1]of char, input m : integer,
input/output SO : array of integer)
Deklarasi
i : integer
Tabel 3.10 Pseudocode Shift-Or procedure SO(
input x : array[0..m-1]of char, input y : array[0..n-1]of char input m : integer,
input n : integer)
Deklarasi :
Lim, state, j : integer
S[ASIZE] : array of integer
Algoritma :
3.3.2. Pseudecode Algoritma Horspool
Algoritma Horspool memiliki dua fungsi yaitu fungsi preBmBc, dan fungsi Horspool.
Pseudocode untuk masing-masing fungsi ditunjukkan pada Tabel 3.11 dan Tabel 3.12.
Tabel 3.11 Pseudocode preBmBc (Bad Character)
Tabel 3.12 Pseudocode Horspool
Procedure preBmBc(
input x : array[0..m-1]of char, input m : integer,
input/output bmBc : array of integer)
Deklarasi
i : integer
Algoritma
for (i=0; i < ASIZE; ++i) bmBc[i] = m
EndFor
for (i=0; i < m - 1; ++i) bmBc[x[i]] = m – i – 1 EndFor
procedure BMH(
input x : array[0..m-1]of char,
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. Interface berfungsi untuk menginput pengetahuan baru ke dalam basis pengetahuan sistem pakar (ES), menampilkan penjelasan sistem dan memberikan panduan pemakaian sistem secara menyeluruh/step by step sehingga pengguna mengerti apa yang akan dilakukan terhadap suatu sistem. Yang terpenting adalah kemudahan dalam memakai/menjalankan
sistem, interaktif, komunikatif, sedangkan kesulitan dalam
mengembangkan/membangun suatu program jangan terlalu diperlihatkan.
3.4.1. Rancangan Halaman Splash Screen
Halaman Splash screen merupakan halaman yang pertama sekali muncul pada saat aplikasi dijalankan. Halaman ini muncul dalam waktu tiga detik, desain halaman ini dapat dilihat pada Gambar 3.9.
Gambar 3.9 Rancangan Halaman Splash Screen
Tabel 3.13 Keterangan Bagian-Bagian Rancangan Halaman Splash Screen
No Jenis Objek Keterangan
1 Text View Keterangan nama aplikasi
2 Label Hak Cipta Aplikasi
3.4.2. Rancangan Halaman Home
Halaman home merupakan halaman yang muncul setelah halaman flash. Pada halaman ini, terdapat lima tombol untuk kehalaman navigation lainnya seperti Dictionaries, Help, About, Admin dan Exit. Rancangan halaman Home dapat dilihat pada Gambar 3.10.
Gambar 3.10 Rancangan Halaman Home
Tabel 3.14 Keterangan Bagian-Bagian Rancangan Halaman Home
No Jenis Objek Keterangan
1 Text view Judul/Nama aplikasi 2 Buttom
Dictionaries Menampilkan halaman pencarian kata istilah hukum 3 Buttom Help Informasi panduan penggunaan aplikasi dan penjelasan
singkat tentang algoritma yang akan digunakan 4 Buttom About Menampilkan halaman tentang pembuat aplikasi
5 Buttom Exit Keluar dari aplikasi 6 Text View Hak Cipta Aplikasi
7 Buttom Admin Menampilkan halaman log-in admin
3.4.3. Rancangan Halaman Dictionaries
Halaman menu Dictionaries berfungsi sebagai halaman yang melakukan pencarian kata pada kamus istilah hukum berdasarkan Algoritma Shift-Or dan Algoritma Horspool.
Rancangan Tampilan Dictionaries dapat dilihat pada Gambar 3.11
Gambar 3.11 Rancangan Halaman Dictionaries
Tabel 3.15 Keterangan Bagian-Bagian Rancangan Halaman Dictionaries
No Jenis Objek Keterangan
1 Text View Judul/Nama menu
2 Edit Text Inputkan
Kata Tempat user menginputkan kata
3 Text View Menampilkan asal kata istilah hukum yang diinputkan 4 Text View Menampilkan hasil terjemahan arti kata istilah hukum
yang diiputkan user
5 Text View Menampilkan hasil-hasil pencarian kata yang diinputkan 6 Buttom Cari Tombol untuk melakukan proses pencarian berdasarkan
kedua algoritma
7 Text View Menampilkan hasil Running Time pencarian kata 8 Buttom Home Kembali ke halaman Home
3.4.4. Rancangan Halaman Help
Halaman Menu Help merupakan panduan user untuk menggunakan aplikasi.
Rancangan halaman Help dapat dilihat pada Gambar 3.12.
Gambar 3.12 Rancangan Halaman Help
Tabel 3.16 Keterangan Bagian-Bagian Rancangan Halaman Help
No Jenis Objek Keterangan
1 Text View Judul/Nama menu
2 Text View Menampilkan infomasi panduan aplikasi 3 Buttom Home Kembali ke halaman Home
3.4.5. Rancangan Halaman About
Halaman menu About berisi keterangan dan informasi tentang pembuat sistem.
Rancangan halaman About dapat dilihat pada Gambar 3.13.
Gambar 3.13 Rancangan Halaman About
Tabel 3.17 Keterangan Bagian-Bagian Rancangan Halaman About
No Jenis Objek Keterangan
1 Text View Judul/Nama menu
2 Text View Menampilkan infomasi pembuat sistem 3 Buttom Home Kembali ke halaman Home
3.4.6. Rancangan Halaman Exit
Halaman Exit berupa allert dialog ini merupakan untuk mengeluarkan user dari aplikasi Rancangan Tampilan Keluar dapat dilihat pada Gambar 3.14.
Gambar 3.14 Rancangan Tampilan Exit
Tabel 3.18 Keterangan Bagian-Bagian Rancangan Halaman Exit
No Jenis Objek Keterangan
1 Text View Menampilkan Konfirmasi 2. Message Box Icon Message Box Icon Questiom
3 Text View Menampilkan pertanyaan yakin keluar aplikasi 4 Buttom Yes Tombol untuk keluar dari aplikasi
5 Buttom No Tombol untuk tidak keluar aplikasi
3.4.7. Rancangan Halaman Log-In Admin
Halaman log-In admin adalah halaman yang menampilkan tempat admin menginputkan username dan passwordnya untuk dapat masuk ke halaman admin. Rancangan halaman login admin dapat dilihat pada Gambar 3.15.
Gambar 3.15 Rancangan Halaman Login Admin
Tabel 3.19 Keterangan Bagian-Bagian Rancangan Halaman Login Admin
No Jenis Objek Keterangan
1 Picture Logo Admin
2. Text View Tempat menginpitkan username Admin 3 Text View Tempat menginpitkan password Admin 4 Buttom OK Tombol untuk mengentry login admin 5 Buttom Cancel Tombol untuk membatalkan login admin
3.4.8. Rancangan Halaman Admin
Halaman Admin adalah tempat pembaharuan isi kata kamus, admin dapat melakukan proses penambahan kata, pengedirtan kata serta proses penghapusan kata. Rancangan halaman Admin dapat dilihat pada Gambar 3.16.
Gambar 3.16 Rancangan Halaman Admin
Tabel 3.20 Keterangan Bagian-Bagian Rancangan Halaman Admin
No Jenis Objek Keterangan
1 Text View Judul/Nama menu
2 Edit Text No Tempat admin menginput nomor kamus 3 Edit Text Istilah Kata Tempat admin menginput istilah kata hukum 4 Edit Text Asal Kata Tempat admin menginput asal kata
5 Edit Text Terjemahan Tempat admin menginput terjemahan 6 Buttom Logout Keluar dari halaman admin
7 DataGridView kamus hokum
Menampilkan datab istilah kata kamus hukum yang terdapat pada database
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Implementasi sistem merupakan penerapan hasil rancangan yang telah dibuat dari penggabungan program menjadi suatu aplikasi. Pada tahapan implementasi ini aplikasi yang telah dianalisis dan dirancang akan difungsikan, sehingga akan diketahui bagaimana kinerja dari aplikasi ini. Aplikasi ini di implementasikan dari desain dan kode perancangan dari bab sebelumnya. Sistem ini dibangun dengan menggunakan bahasa pemrograman C# dan menggunakan Software SharpDevelop 4.4 dalam proses pembuatan aplikasi ini.
Pada sistem ini terdapat 8 (delapan) tampilan halaman, yaitu Halaman Splash Screen, Menu Home, Halaman Dictionaries, Halaman Help, Halaman About, Tampilan Exit, Halaman Log-In Admin, dan Halaman Admin.
4.2. Antarmuka Sistem
Setelah melewati tahap analisis perancangan antarmuka pengguna, rancangan digunakan sebagai acuan untuk peng-coding-an halaman-halaman pada perangkat lunak. Pada aplikasi Kamus Istilah Hukum menggunakan Algoritma Shift-Or dan Algoritma Horspool ini terdapat beberapa tampilan, yaitu:
1. Menu Splash Screen.
2. Menu Home.
3. Menu Dictionaries.
4. Menu Help.
5. Menu About.
6. Menu Exit.
7. Menu Admin
4.2.1. Tampilan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat sistem dibuka. Halaman ini muncul dalam waktu tiga detik. Tampilan Halaman Splash Screen dapat dilihat pada Gambar 4.1