• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
45
0
0

Teks penuh

(1)

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem merupakan pengumpulan, penginterpretasi dan pendiagnosaan persoalan sehingga menjadi prasyarat untuk mendesain sistem dan spesifikasi untuk sebuah sistem yang baru atau sistem yang diperbaiki.

Analisis sistem harus menjelaskan bentuk-bentuk kerja sistem secara terperinci dan teliti sehingga memudahkan pengembangan sistem ketika melakukan desain sistem secara menyeluruh.

3.1.1. Analisis Masalah

Analisis masalah merupakan tahapan awal dalam analisis sistem, karena analisis masalah bertujuan untuk mengindetifikasi pokok-pokok masalah sehingga tercapai titik keputusan. Sebelumnya telah diuraikan latar belakang dari skripsi ini, masalah yang akan dibahas adalah bagaimana melakukan pencarian atau pencocokan untuk menemukan string pada teks dalam kamus istilah Telekomunikasi berbasis android dan meneliti perbandingan antara algoritma Morris - Pratt dengan algoritma Horspool untuk pencocokan string. Dalam menganalisis, mengidentifikasi, dan menyelesaikan masalah memerlukan suatu cara yang saat ini sering digunakan yaitu Ishikawa diagram/diagram Ishikawa.

Diagram Ishikawa (fishbone diagram) yang dikembangkan oleh Dr. Kaoru Ishikawa sekitar tahun 1960-an . Diagram Ishikawa adalah analisis sebab akibat dengan bentuk kerangka tulang ikan yaitu bagian kepala, sirip dan duri. Konsep dasar dari diagram Ishikawa adalah permasalahan mendasar yang diletakkan pada bagian kanan dari diagram atau bagian kepala dari kerangka tulang ikannya. Penyebab permasalahan digambarkan pada sirip dan durinya (Asmoko, 2015).

(2)

Gambar 3.1. Diagram Ishikawa untuk Analisis Masalah

Pada gambar 3.1. bagian paling kanan (kotak/ kepala ikan) adalah nama masalah yaitu bagaimana membuat aplikasi Kamus Istilah Telekomunikasi berbasis Android. Kemudian duri- duri yang mengarah ke tulang utama (garis horizontal yang menuju ke kepala ikan) merupakan kategori masalah. Kategori penyebab masalahnya yaitu pengguna, material, metode dan mesin. Keseluruhan detail tersebut mengarah ke bagian kepala yang merupakan topik utama dalam analisis masalah.

3.1.2. Analisis Kebutuhan

Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional yang mendeskripsikan aktivitas sistem dan kebutuhan nonfungsional yang mendeskripsikan fitur, karakteristik dan batasan lainnya (Whitten, 2004).

3.1.2.1. Kebutuhan Fungsional

Kebutuhan fungsional pada aplikasi kamus Istilah Telekomunikasi ini adalah : 1. Aplikasi dapat mencocokan string dari kata yang dimasukkan oleh pengguna

2. Aplikasi dapat mencari kata dengan menggunakan algoritma Morris - Pratt dan

algoritma Horspool

3. Aplikasi dapat memberikan hasil pencarian kata dan menampilkannya pada antarmuka sistem.

Belum ada metode algoritma Morris - Pratt dan Horspool yang diimplementasikan dalam aplikasi berbasis android

Masih sedikitnya kamus Istilah Telekomunikasi berbasis Android yang berbahasa Indonesia Membuat aplikasi Kamus Istilah Telekomunikasi berbasis Android Pengguna Material Metode Mesin Kurangnya minat membaca buku kamus

Bahan acuan dalam bentuk hardcopy kurang efektif

Smartphone saat ini

sudah banyak digunakan masyarakat.

Smartphone lebih

flexibel untuk digunakan Pengguna ingin

menemukan definisi kata istilah telekomunikasi dengan cepat

Pencarian kata masih manual (kurang efisien)

(3)

3.1.2.2. Kebutuhan Nonfungsional

Kebutuhan nonfungsional pada aplikasi kamus Istilah Telekomunikasi ini adalah : 1. Performa

Perangkat lunak yang dibangun dapat menunjukkan hasil pencarian kata yang diinputkan oleh pengguna.

2. Mudah Dipahami dan Digunakan

Tampilan yang dibangun simple dan user friendly (ramah pengguna) sehingga pengguna tertarik dan mudah untuk memahami setiap desain tampilan

3. Hemat Biaya

Perangkat lunak yang dibangun hemat biaya karena dapat di share secara gratis dengan bluetooth atau aplikasi Share lainnya. Ukuran file aplikasi tidak terlalu besar sehingga jika diunduh pada Playstore tidak mengambil kuota terlalu banyak. 4. Panduan

Perangkat lunak yang dibangun memiliki panduan penggunaan. 5. Kontrol

Perangkat lunak yang dibangun akan menampilkan pemberitahuan “kata tidak ditemukan” apabila kata yang dimasukkan pengguna tidak terdapat di dalam database.

3.1.3. Analisis Proses

Sistem yang akan dibangun menggunakan algoritma Morris – Pratt dan algoritma

Horspool untuk proses pencocokan string. Sistem akan mencocokkan pattern yang

dimasukkan oleh pengguna dan apabila pattern terdapat dalam database maka hasilnya akan ditampilkan.

3.2 Perancangan Sistem

Perancangan sistem merupakan teknik pemecahan masalah untuk merangkai kembali bagian – bagian komponen sehingga menjadi sistem yang lengkap dengan analisis sistem yang saling melengkapi (Whitten et al. 2004).

Tujuan dari perancangan sistem ini adalah menjelaskan, mempermudah dan mengevaluasi implementasi sistem yang akan dibangun. Pada perancangan sistem terdapat flowchart, use case diagram, activity diagram, sequence diagram dan perancangan antarmuka (interface).

(4)

3.2.1 General Arsitektur Perancangan Sistem

General arsitektur perancangan sistem adalah penjelasan berupa gambaran sistem

yang terdiri dari input data, processing data, dan output data yang dikeluarkan dari sistem. Berikut adalah gambaran perancangan sistem yang dapat dilakukan pengguna kepada sistem.

Tahap Perancangan

Tahap Pengujian

Gambar 3.2 General Arsitektur Perancangan Sistem Obervasi Literatur

Kata Istilah Telekomunikasi

Memilih kata untuk dimasukkan ke dalam aplikasi

Perancangan database dari kata yang telah dipilih

Perancangan fungsi pencarian dengan Morris-Pratt

Perancangan fungsi pencarian dengan Horspool

Perhitungan kompleksitas algoritma

Perancangan desain android

Pencatatan Skenario Pengujian Tampilkan running time dengan Horspool Tampilkan running time dengan Morris-Pratt Pencarian untuk string terpendek Pencarian untuk string terpanjang Pencarian untuk

string tidak valid

(tidak ada dalam kamus)

Analisis hasil pengujian running time dan kompleksitas

Penarikan Kesimpulan Perhitungan Kalkulasi Big Ө (Ө) Algoritma Morris-Pratt Kalkulasi Big (Ө) Algoritma Horspool

(5)

Penjelasan tahapan dalam general arsitektur perancangan sistem adalah sebagai berikut :

1. Tahap Perancangan

Pada tahap ini terdiri dari 4 fase yaitu :

a. Observasi Literatur Kata Istilah Telekomunikasi

Pada fase ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan. Referensi yang digunakan dapat berupa buku, jurnal, artikel, paper, makalah, baik dari media cetak maupun media internet mengenai istilah telekomunikasi.

b. Menentukan Kata untuk dimasukkan kedalam Aplikasi

Kata-kata yang digunakan pada aplikasi ini adalah sebanyak 500 kata yang diambil berdasarkan abjad dengan jumlah kata yang disesuaikan. Kata-kata tersebut akan diambil dari Kamus Istilah Telekomunikasi Drs. Gouzali Saydam, BC.TT Penerbit Pustaka Reka Cipta.

c. Perancangan Database dari kata yang telah dipilih

Database yang digunakan adalah database SQlite yang akan terhubung dengan Android Studio. Perancangan class untuk algoritma string

matching dilakukan di software Android Studio.

d. Perancangan Fungsi Pencarian dengan Morris-Pratt dan Horspool

Dalam perancangan fungsi pencarian dengan Algoritma Morris – Pratt dan Horspool harus ditentukan Flowchart dan Pseudocode.

2. Tahap Pengujian Pada tahap ini terdiri dari 2 fase yaitu :

a. Skenario Pengujian Pada fase ini, dilakukan pengujian pencarian untuk

string terpendek dan pencarian untuk string terpanjang. Hal ini berfungsi

untuk membandingkan hasil pengujian dengan kata terpendek dalam kamus dengan kata terpanjang dan algoritma mana yang lebih efisien.

(6)

b. Pencatatan pada fase ini dengan mengecek dan membandingkan running time dan komplikesitas big (Ө) Morris-Pratt dengan Horspool sehingga dapat ditemukan hasil algoritma yang lebih efisien.

3. Analisis Hasil Pengujian Hasil pengujian setiap fase akan di analisis di tahap ini, sehingga dapat ditemukan algoritma mana yang lebih efektif serta efisien untuk setiap kata terpendek, kata terpanjang maupun secara keseluruhan.

4. Penarikan Kesimpulan Pada tahap ini, dilakukan penarikan kesimpulan berdasarkan hasil dari analisis hasil pengujian. Tahap ini adalah tahap akhir dimana kesimpulan ini dapat dijadikan suatu acuan terhadap penelitian yang akan dilakukan berikutnya.

3.2.2 Use-Case Diagram

Use-case diagram adalah alur yang merepresentasikan interaksi yang terjadi

antara pengguna dan sistem. Diagram ini mendeskripsikan siapa saja yang dapat berinteraksi dengan sistem dan bagaimana cara mereka berinteraksi. Diagram ini divisualisasikan dengan actor, use case, dan relasinya sebagai suatu urutan tindakan yang memberikan nilai terukur untuk aktor. Sebuah use case digambarkan sebagai

ellips horizontal dalam suatu diagram use-case (Haviluddin, 2011).

Hubungan yang menyatakan suatu use-case merupakan perluasan (extend) dari suatu use-case lainnya digambarkan oleh garis putus-putus dengan tanda panah terbuka (Harahap, A. 2014). Tanda anak panah dimulai dari extension use-case dan menunjuk kepada use-case yang diperluas. Masing-masing garis extend relationship disebut “<<extends>>”.

Aktor yang berinteraksi dalam sistem ini adalah pengguna aplikasi, dan fungsi (use-case) dihubungkan dengan tanda panah yang menyatakan bahwa aktor mengajukan permintaan terhadap use-case. Use-case diagram dari sistem yang akan dibangun dapat dilihat pada Gambar 3.3.

(7)

Gambar 3.3 Use-case Diagram

Diagram use-case pada gambar 3.3 menujukkan bahwa sistem berinteraksi kepada pengguna. Pengguna dalam gambar 3.3 dapat didefinisikan sebagai Actor yang berinteraksi dengan empat use-case. Pertama, pengguna akan memilih algoritma pencarian yaitu dengan pilihan Morris – Pratt atau Horspool. Kedua, pengguna memasukkan kata yang ingin dicari. Ketiga, sistem akan menampilkan hasil pencarian yang ditampilkan pada interface sistem, seperti yang dijelaskan sebelumnya pada analisis proses.

Includes pada use-case menunjukkan bahwa untuk menampilkan hasil pencarian

kata hanya jika pengguna telah memasukkan kata. Untuk memperjelas use-case tersebut dapat di deskripsikan kedalan tabel skenario pada tabel 3.1 dan 3.2.

(8)

Tabel 3.1 Tabel Skenario Use-case Memilih Algoritma Pencarian

Name Memilih algoritma pencarian

Actor Pengguna

Description Mendeskripsikan algoritma yang akan dipilih untuk

melakukan pencarian kata

Basic Flow Penguna memilih jenis algoritma pencarian

Alternate Flow User memilih algoritma Morris-Pratt atau Horspool sebagai

algoritma pencocokan string yang dipilih

Pre Condition Pengguna ingin memilih jenis algoritma pencarian

Post Condition Pengguna telah memilih jenis algoritma pencarian

Tabel 3.2 Tabel Skenario Use-case Masukkan Kata

Name Memilih algoritma pencarian

Actor Pengguna

Description Mendeskripsikan proses kata yang akan dicari

Basic Flow Penguna menginputkan kata yang akan dicari

Alternate Flow -

Pre Condition Pengguna ingin menginputkan kata

Post Condition Pengguna telah menginputkan kata

3.2.3 Activity Diagram

Activity Diagram mendeskripsikan alur kerja (workflow), aktivitas sistem serta proses

timbal balik antar sistem. (Setiady, et al. 2013)

Gambar 3.4 merupakan activity diagram dari aplikasi yang akan dibangun pada penelitian ini.

(9)

Gambar 3.4 Activity Diagram

Activity Diagram pada gambar 3.4 menjelaskan interaksi antara pengguna dan sistem.

Diawali dengan pengguna yang membuka aplikasi, lalu sistem menampilkan interface sistem. Kemudian pengguna memilih algoritma pencarian dan sistem akan membaca algoritma yang sudah dipilih. Pengguna memasukkan kata yang ingin dicari dan sistem akan merespon serta melakukan proses pencarian terhadap inputan kata. Dalam prosesnya, ada dua kondisi. Jika kata yang dicari ditemukan maka sistem akan memberikan hasil pencarian atau outputnya namun jika kata yang dicari tidak ditemukan maka sistem tidak akan menampilkan apapun dan meminta pengguna untuk memasukkan kembali kata yang dicari. Ketika kata yang dicari ditemukan, maka sistem berhasil dan selesai.

3.2.4 Sequence Diagram

Sequence Diagram mendeskripsikan perilaku objek seperti pesan yang dikirimkan dan

diterima antar objek serta waktu hidup objek (Setiady, et al. 2013). Sequence diagram pada sistem kamus ini akan ditunjukkan pada gambar 3.5.

(10)

Gambar 3.5 Sequence Diagram

3.2.5 Pseudocode

Pseudocode adalah barisan kode untuk menulis sebuah algoritma dengan cara

tidak terikat dengan bahasa pemrograman tertentu. Pseudocode menggunakan bahasa yang hampir mirip dengan bahasa pemrograman namun perbedaannya adalah bahasa yang digunakan lebih mudah dipahami dan lebih ringkas.

(11)

Untuk Pseudocode algoritma Morris – Pratt ditunjukkan oleh Gambar 3.6 berikut.

Gambar 3.6 Pseudocode pencarian Algoritma Morris - Pratt

Tahap Preprocessing

Procedure preMp )

input j : array[0. . m-1] of char, input m : integer,

input x : array[0 . . m-1] of char,

input/output mpNext : array [0 . . n-1] of integer

)

Deklarasi : i : integer Algoritma :

for( j = mpNext[0] = -1; i < m; mpNext[i] = j) endfor

while(j > -1 && x[i] != x[j]) j = mpNext[j] endfor ++i; ++j; endfor Tahap Pencarian Procedure MorrisPrattSearch( input i,j, n : integer,

input x : array[0 . . m-1] of char, input y : array[0 . . n-1] of char,

output find : array[0 . . m-1] of boolean ) Deklarasi : j:=0 i:=0 Algoritma: preMp(x, m, mpNext) while(j < n) do

while(i > -1 && x[i] != y[j]) do i = mpNext[i]; Endfor ++i; ++j; if(i >= m) then i = mpNext[i];

(12)

Untuk pseudocode algoritma Horspool ditunjukkan pada Gambar 3.7. berikut (Nasution, 2016).

Gambar 3.7. Pseudocode pencarian Algoritma Horspool (Nasution, 2016)

Tahap Preprocessing

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 Tahap Pencarian: Procedure HorspoolSearch ( input m, n : integer,

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

(13)

3.2.6 Diagram Alir (Flowchart)

Flowchart atau diagram alir merupakan gambar atau bagan yang

memperlihatkan urutan dan hubungan antar proses dengan pernyataannya (Zarlis, 2008). Flowchart dari gambaran umum sistem ditunjukkan pada gambar 3.8 berikut ini.

Algoritma Ya Morris Pratt

Tidak Tidak

Algoritma

Horspool

Gambar 3.8 Flowchart Gambaran Umum Sistem Masukkan Pattern

Pencocokan pattern dengan menggunakan algoritma yang

telah dipilih

Output teks dan running time Mulai

(14)

Adapun flowchart dari algoritma Morris-Pratt seperti gambar 3.9 berikut.

Masukkan pattern yang akan dicari Fase preprosessing Apakah Tidak pattern ditemukan ? Ya

Gambar 3.9 Flowchart Algoritma Morris-Pratt Bandingkan karakter per karakter

Output teks dan running time

Geser pattern berdasarkan Table mpNext[i] Pencocok dengan Algoritma

Morris Pratt

Mulai

(15)

Adapun flowchart dari algoritma Horspool seperti gambar 3.10 berikut.

Apakah i <= panjang teks n – panjang

pattern m?

Apakah pattern

[panjang pattern m-1] = = Tidak c&& str.compare [pattern, teks + i,

panjang pattern m-1]= = 0?

Ya Tidak

Gambar 3.10 Flowchart Algoritma Horspool preBmBc (pattern, BmBc); i = 0 c = teks y [ i + panjang pattern m – 1] i++ i+= BmBc [c] Mulai Selesai

(16)

Adapun flowchart dari sistem pencarian istilah dengan algoritma Horspool seperti gambar 3.11 berikut.

Input pattern yang akan dicari for i = 0 to panjang pattern - 1 Apakah Tidak cocok? Ya Apakah semua karakter cocok? Ya

Tampilkan hasil Tidak

pencarian

Gambar 3.11 Flowchart Sistem Pencarian Istilah dengan Algoritma Horspool Proses mencocokan karakter

paling kanan pattern dengan teks

Proses mencocokan ke karakter berikutnya (kiri)

Pattern bergeser berdasarkan tabel bad- match Mulai

(17)

3.2.7 Perancangan Antarmuka (Interface)

Perancangan antarmuka bertujuan untuk mempermudah pengguna dalam berinteraksi dengan sistem yang pada umumnya tampilan antarmuka bersifat sederhana. Antarmuka yang dirancang diharapkan dapat memperhatikan faktor pengguna sehingga menghasilkan aplikasi yang ramah pengguna (user friendly). Perancangan antarmuka ini disesuaikan dengan kerangka menu seperti yang telah dituliskan sebelumnya.

1. Halaman Utama

Gambar 3.12 merupakan tampilan awal ketika aplikasi pertama kali dijalankan. Pada halaman ini terdapat dua tab, yaitu algoritma Morris – Pratt bagi pengguna yang ingin melakukan pencarian dengan algoritma Morris - Pratt. Kemudian, algoritma Horspool, bagi pengguna yang ingin melakukan pencarian dengan algoritma Horspool.

Gambar 3.12 Halaman utama aplikasi kamus. Masukkan teks... X

Algoritma Morris - Pratt

Algoritma Horspool Kamus Istilah Telekomunikasi

1. ADS

American Depository Share , .... 2. ARPU

Average Revenue Per User, ... 3. ATM

Asynchronus Transfer Mode, .. 4. BTS

Base Transceiver Station, ...

1

2

3

4

(18)

Keterangan Gambar :

1) Action Bar memuat judul aplikasi dan sebuah icon. Dimana icon memuat pilihan halaman about dan tentang.

2) Tabhost digunakan untuk memilih algoritma pencarian.

3) FieldText digunakan untuk memasukkan kata yang ingin dicari terjemahannya.

4) Button Delete digunakan untuk menghapus kata yang ada di dalam fieldtext. 5) Listview untuk menampilkan kata yang ada di dalam database.

2. Halaman Hasil Pencarian

Gambar 3.13 adalah tampilan ketika pengguna memasukkan kata yang ingin dicari dan akan memberikan hasil pencarian.

Gambar 3.13 Hasil Pencarian

Dcs X

Algoritma Morris - Pratt

Algoritma Horspool Kamus Istilah Telekomunikasi

1. DCS

DCS (Digital Communication System) adalah sistem telepon selular yang menggunakan teknologi GSM yang beroperasi dalam pita frekuensi 1800 MHz

(19)

3. Halaman Tentang

Pada halaman tentang memuat tentang identitas singkat dari penulis dan judul penelitian ini. Adapun tampilan dari halaman tentang dapat ditunjukkan pada gambar 3.14 berikut ini.

Gambar 3.14 Halaman About

Keterangan Gambar :

1) Action Bar berisikan judul dari halaman aplikasi. 2) TextView untuk menampilkan judul dari penelitian. 3) TextView untuk menampilkan identitas singkat penulis 4) ImageView untuk menampilkan logo Universitas.

5) TextView untuk menampilkan Program Studi, Fakultas, Universitas, kota dan tahun

About

Perbandingan Algoritma Morris – Pratt dengan Algoritma

Horspool pada Aplikasi Kamus Istilah Telekomunikasi

berbasis Android

SKRIPSI Laura Angelina Hasibuan

131401047

Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi

Universitas Sumatera Utara Medan 2017 LOGO 1 2 1 3 4 5

(20)

4. Halaman Bantuan

Halaman bantuan memuat panduan untuk menggunakan aplikasi yang akan dibangun. Adapun tampilan untuk halaman bantuan dapat dilihat pada gambar 3.15 berikut.

Gambar 3.15 Halaman Help

Keterangan Gambar :

1) Action Bar untuk menampilkan judul halaman aplikasi 2) TextView untuk menampilkan poin – poin bantuan

Help

1. Mencari arti kata istilah Telekomunikasi dengan

algoritma pencarian Algoritma Morris- Pratt

2. Mencari arti kata istilah Telekomunikasi dengan

algoritma pencarian Algoritma Horspool

3. Menghapus Kata dalam fieldtext

1

(21)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Tahapan implementasi sistem adalah next step dari tahapan analisis dan perancangan sistem yang telah dibahas pada bab tiga. Pembahasan dalam bab tiga akan diimplementasikan ke dalam bahasa pemrograman Java. Proses interface

system dibangun dengan bahasa Java dengan Android Studio. 4.1.1. Tampilan Antarmuka Utama

Halaman utama adalah tampilan awal saat aplikasi pertama kali dijalankan dan terdapat dua kondisi yaitu Morris – Pratt dan Horspool. Pada halaman utama, pilihan pencarian string pertama langsung terhubung dengan algoritma Morris-

Pratt dan untuk menggunakan algoritma Horspool dapat mengklik Horspool.

Gambar 4.1 adalah kondisi ketika pengguna memilih untuk mencari kata istilah dengan algoritma Morris- Pratt. Pada gambar tersebut, kata bercetak tebal merupakan kata istilah telekomunikasi dan kata yang tidak dicetak tebal merupakan pengertian dari kata istilah.

(22)

Gambar 4.1 Tab Morris - Pratt

Gambar 4.1 adalah kondisi ketika user memilih untuk mencari kata dengan algoritma pencarian Morris - Pratt.

Gambar 4.2 Tab Horspool

Gambar 4.2 adalah kondisi ketika user memilih untuk mencari kata dengan algoritma pencarian Horspool.

(23)

4.1.2. Tampilan Antarmuka Hasil Pencarian

Pada tampilan hasil pencarian, sistem akan menampilkan hasil dari kata yang dicari oleh pengguna. Setiap kata di dalam database yang mengandung kata dan dimasukkan oleh pengguna akan ditampilkan di dalam listview. Seperti gambar 4.3, ketika pengguna memasukkan kata jaringan, maka kata jaringan junction dan jaringan lokal, juga ditampilkan dikarenakan kata – kata tersebut mengandung kata jaringan. Tidak hanya defenisi kata yang ditemukan namun Running Time dari algoritma pencarian juga.

Gambar 4.3 Antarmuka Hasil Pencarian Ditemukan

Ketika kata yang dicari oleh pengguna tidak ditemukan di dalam database, maka sistem akan mengeluarkan notifikasi bahwa kata tidak ditemukan dan beserta running timenya. Tampilan aplikasi apabila hasil pencarian tidak ditemukan dapat dilihat pada gambar 4.4 berikut ini.

Ketika kata yang dicari oleh pengguna tidak ditemukan di dalam database, maka sistem akan mengeluarkan notifikasi bahwa kata tidak ditemukan. Tampilan aplikasi ketika hasil pencarian tidak ditemukan dapat dilihat pada gambar 4.4 berikut ini.

(24)

Gambar 4.4 Hasil Pencarian Tidak Ditemukan

4.1.3 Tampilan Antarmuka Tentang (About)

Pada gambar 4.5 merupakan tampilan menu yang berisi informasi singkat dari penulis. Tampilan menu tentang dapat dilihat pada gambar 4.5 berikut ini.

(25)

4.1.4 Tampilan Antarmuka Bantuan (Help)

Pada aplikasi ini terdapat menu bantuan yang menginformasikan langkah – langkah dari proses penggunaan aplikasi.

Gambar 4.6 Menu Help

4.1.5 Tampilan Antarmuka Sumber (Source)

Pada aplikasi ini terdapat menu source yang menjelaskan bahwa kosa kata yang ada di database bersumber pada buku Kamus Istilah Telekomunikasi Drs. Gouzali Saydam, BC.TT Penerbit Pustaka Reka Cipta.

(26)

4.2 Pengujian Sistem

Pengujian sistem bertujuan untuk mengetahui bagaimana sistem berjalan dan kinerja yang dihasilkan pada pencarian kata istilah Telekomunikasi yang terdapat dalam database dengan algoritma pencarian Morris – Pratt dan Horspool.

Dalam pengujian sistem ini, yang bertindak sebagai masukan adalah string.

String yang cocok di dalam database akan dikeluarkan sebagai output sistem ketika

algoritma berhasil melakukan pencocokan kata.

4.2.1. Pengujian pencarian kata dengan Algoritma Morris - Pratt

Pengujian sistem pertama kali adalah melakukan pencarian kata dengan algoritma Morris - Pratt. Ketika pengguna memilih jenis terjemahan dan memasukkan

pattern kata yang ingin dicari, maka seluruh kata di dalam database kamus yang

terkait dengan pattern masukan akan keluar sebagai output.

Berikut adalah contoh perhitungan tabel pergeseran mpNext untuk pattern HASIBUAN pada teks LAURA HASIBUAN.

Tabel 4.1 Nilai mpNext[i] untuk pattern HASIBUAN

I 0 1 2 3 4 5 6 7 8

x[i] H A S I B U A N *

mpNext[i] -1 0 0 0 0 0 0 0 1

Keterangan :

i : indeks untuk setiap karakter pada pattern x : pattern

mpNext[i] : nilai mpNext[i] untuk setiap karakter pada pattern

Tahap Pencarian Tahap 1 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 0 – mpNext[0] = 0 – –1 = 1

(27)

Tahap 2 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 0 – mpNext[0] = 0 – -1 = 1 Tahap 3 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 0 – mpNext[0] = 0 – -1 = 1 Tahap 4 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 1 – mpNext[1] = 1 – 0 = 1 Tahap 5 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 0 – mpNext[0] = 0 – -1 = 1 Tahap 5 : L A U R A H A S I B U A N 0 1 H A S I B U A N Shift = 0 – mpNext[0] = 0 – -1 = 1

(28)

Tahap 6 :

L A U R A H A S I B U A N

0 1 2 3 4 5 6 7

H A S I B U A N

Shift = 7 – mpNext[7] = 7 – 0 = 7

Pada percobaan keenam, pattern sudah sesuai dengan karakter pada teks. Algoritma Morris - Pratt akan terus bergerak ke kanan hingga karakter pada teks berakhir. Pada contoh ini, algoritma Morris - Pratt melakukan 15 kali perbandingan karakter dengan teks.

Kecocokan input, output, serta hasil running time pencariannya terdapat pada Tabel 4.2. berikut ini.

Tabel 4.2. Pengujian sistem pencocokan string dengan Algoritma Morris - Pratt No String

Masukan

Gambar Hasil Hasil

Pencarian

Running Time(ms)

(29)

2 Ne ditemukan 37

(30)

4 tele ditemukan 46

5 shell Tidak

ditemukan

(31)

4.2.2. Pengujian pencarian kata dengan Algoritma Horspool

Pengujian sistem selanjutnya adalah melakukan pencarian kata dengan algoritma Horspool. Ketika pengguna memilih jenis algoritma dan memasukkan pattern kata yang ingin dicari, maka seluruh kata di dalam database kamus yang terkait dengan pattern masukan akan keluar sebagai output. Contoh proses pada pattern ditunjukkan pada Tabel 4.3 dan kecocokan output beserta running time dapat dilihat pada tabel 4.8 berikut ini.

Sebagai contoh, dapat dilihat pada Tabel 4.3 berikut.

Pattern: HASIBUAN

⏟ ⏟ ⏟ ⏟ ⏟ ⏟

H A S I B U A N 0 1 2 3 4 5 6 7

Tabel 4.3 Bad-match pada praproses

Karakter Index Value

H 0 7 A 1 6 S 2 5 I 3 4 B 4 3 U 5 2 N 7 0 * - 8 value = 8 – 0 – 1 = 7 value = 8 – 1 – 1 = 6 value = 8 – 2 – 1 = 5 value = 8 – 3 – 1 = 4 value = 8 – 4 – 1 = 3 value = 8 – 5 – 1 = 2 value = 8 – 7 – 1 = 0

* : karakter yang tidak dikenali

Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus dimana

pattern P = “HASIBUAN” dan teks T = “LAURA HASIBUAN”. Inisialisasi awal dan

(32)

Tabel 4.4 Inisialisasi awal bad-match

m 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

I 0 1 2 3 4 5 6 7

4.5 Pembuatan bad- match

P H A S I B U N

I 0 1 2 3 4 5 7

V 7 6 5 4 3 2 0

Seperti yang terlihat pada Tabel 4.4 di atas, inisialisasi awal bad-match dilakukan. Setiap teks dan pattern masing-masing diberi nilai m dan i, dimana m sebagai panjang pattern dan i sebagai indeks. Tabel 4.5 menunjukkan nilai pergeseran

bad-match dengan menghitung nilai v seperti yang telah dilakukan pada Tabel 4.3.

Pada tahap awal pencarian, dilakukan perbandingan karakter paling kanan pattern terhadap window. Apabila terjadi ketidakcocokan, akan dilakukan pergeseran ke kanan untuk melewati karakter yang tidak cocok dimana nilai pergeserannya terdapat pada tabel bad-match. Karakter paling kanan teks pada window berfungsi sebagai landasan untuk menentukan jarak geser yang akan dilakukan. Hal ini terlihat pada Tabel 4.6 berikut.

Tabel 4.6 Iterasi algoritma Horspool pertama

M 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

I 0 1 2 3 4 5 6 7

Terdapat ketidakcocokan seperti yang terlihat pada Tabel 4.6. Karakter “A” adalah karakter paling kanan teks pada window. Pada tabel bad-match, nilai geser karakter “A” adalah 6. Maka, dilakukan pergeseran ke kanan pada window sebanyak 6 kali. Hal ini terlihat pada Tabel 4.7.

(33)

Tabel 4.7 Iterasi algoritma Horspool kedua

M 1 2 3 4 5 6 7 8 9 10 11 12 13 14

T L A U R A H A S I B U A N

P H A S I B U A N

I 0 1 2 3 4 5 6 7

Pada Tabel 4.7, window telah berada pada akhir teks dan semua pattern cocok dengan teks. Seluruh pencocokan karakter menggunakan algoritma Horspool telah selesai dan berhenti pada iterasi kedua.

Tabel 4.8 Pengujian sistem pencocokan string dengan Algoritma Horspool No String

Masukan

Gambar Hasil Hasil

Pencarian

Running Time

(ms)

(34)

2 Bi ditemukan 61

(35)

4 jaringan ditemukan 46

5 bdbdbbd Tidak

ditemukan

(36)

4.3 Hasil Pengujian Sistem

Hasil pengujian dari penelitian ini adalah running time dari pencarian kata yang ditemukan oleh algoritma Morris - Pratt dan algoritma Horspool. Adapun hasil pengujian dari kedua algoritma pencocokan string dalam mencari kata, akan dijelaskan pada Tabel 4.9., 4.10., 4.11., dan 4.12. berikut.

Tabel 4.9. Hasil pengujian Algoritma Morris - Pratt

No Pattern Running Time (ms)

1 Advaljar 46 2 Birofax 45 3 Centrex 43 4 Dect 53 5 Edi 46 6 Fdm 48 7 Gopher 47 8 Humanware 37 9 Intacts 48 10 Jasnita 53 Rata-rata 46.6

Tabel 4.10 Hasil pengujian Algoritma Horspool

No Pattern Running Time (ms)

1 Advaljar 51 2 Birofax 49 3 Centrex 54 4 Dect 60 5 Edi 60 6 Fdm 57 7 Gopher 48 8 Humanware 46 9 Intacts 38 10 Jasnita 42 Rata-rata 50.5

(37)

Tabel 4.11 Hasil pengujian pencarian kata terpanjang

No Pattern Running Time (ms)

Algoritma Morris-Pratt Running Time (ms) Algoritma Horspool 1 Effective Address 33 36 2 Exchange battery 39 38 3 Facsimile system 40 37 4 Group frequency 37 35 5 Horizon distance 30 39 6 Hubungan transit 31 42 7 Image technology 40 47 8 Indirect addressing 32 35

9 Integrated digital network 34 38

10 Job control languange 35 35

Rata-rata 35.1 38.2

Tabel 4.12 Hasil pengujian pencarian kata terpendek

No Pattern Running Time (ms)

Algoritma Morris-Pratt Running Time (ms) Algoritma Horspool 1 Ac 55 70 2 Bar 44 63 3 Cc 51 62 4 Dbw 55 65 5 Egp 49 55 6 Fa 46 62 7 Gos 47 52 8 Hop 54 61 9 Ic 57 74 10 Jpdt 56 57 Rata-rata 51.4 62.1

(38)

0 10 20 30 40 50 60 70

Running Time (ms) untuk Urutan Pattern

Morris - Pratt Horspool

0 5 10 15 20 25 30 35 40 45 50

Running Time (ms) untuk Pattern Terpanjang

Morris - Pratt Horspool

Setelah mendapatkan hasil pengujian untuk running time kedua algoritma, maka dibuat grafik perbandingan hasil pengujian kedua algoritma tersebut. Grafik dapat dilihat pada Gambar 4.8., 4.9., dan 4.10. berikut.

Waktu

Urutan Pattern

Gambar 4.8. Perbandingan hasil running time Algoritma Morris - Pratt dan Algoritma Horspool

Waktu

Pattern Terpanjang

(39)

0 10 20 30 40 50 60 70 80

Ac Bar Cc Dbw Egp Fa Gos Hop Ic Jpdt

Running Time (ms) untuk Pattern Terpendek

Morris - Pratt Horspool

Waktu

Pattern Terpendek

Gambar 4.10. Perbandingan hasil running time pencarian kata terpendek

Dari grafik di atas, dapat disimpulkan bahwa algoritma Horspool mendapatkan hasil running time yang lebih tinggi dibandingkan dengan algoritma Horspool. Bahkan dalam segala pencarian, baik berdasarkan kata terpanjang maupun kata terpendek. Dari hasil perbandingan kedua algoritma secara keseluruhan menunjukkan bahwa algoritma Morris - Pratt bekerja lebih cepat untuk proses pencocokan dan pencarian kata dibandingkan dengan algoritma Horspool. Meskipun perbedaan yang tampak antara kedua algoritma tersebut tidak terlalu signifikan, tetapi kedua algoritma ini dapat mencari kata dengan cukup cepat.

4.4. Kompleksitas Algoritma

Kompleksitas sebuah algoritma umumnya dapat diukur dari dua jenis kompleksitas, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu pada sebuah algoritma berisi jumlah langkah dan ekspresi bilangan yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan untuk eksekusi sebuah program.

(40)

Terdapat beberapa jenis notasi asimtotik yang merepresentasikan kompleksitas algoritma, salah satunya adalah notasi Big (Ө). Notasi Big- Ө digunakan untuk mengkategorikan algoritma ke dalam fungsi yang menggambarkan batas atas (upper limit) dari pertumbuhan sebuah fungsi ketika masukan dari fungsi tersebut bertambah banyak.

Pada penelitian ini, kompleksitas algoritma yang akan diuji adalah kompleksitas algoritma Morris - Pratt dan Algoritma Horspool dengan menggunakan notasi Big- Ө. Kompleksitas kedua algoritma tersebut akan dijelaskan pada Tabel 4.13., 4.14., 4.15 dan 4.16.,berikut.

4.4.1. Kompleksitas Algoritma Morris - Pratt

Tabel 4.13 Kompleksitas fungsi fase preprocessing algoritma Morris - Pratt

No Kode Program C # C x #

1 public static void preMp() {

2 int i = 0; C1 1 C1

3 for(int j = mpNext[0] = -1; i < m; mpNext[i] = j) {

C2 m C2m

4 while(j > -1 && x[i] != x[j]) { C2 1 C2 5 j = mpNext[j]; } C3 1 C3 6 ++i; C4 1 C4 7 ++j; } } C4 1 C4

Kompleksitas fase Preprocessing :

𝑇𝑚𝑎𝑥 (𝑛) = 𝐶1+𝐶2m +C2 + 𝐶3 + 2C4 = 1 + m + 1 + 1 + 2 = 5 + m

(41)

Tabel 4.14 Kompleksitas fungsi fase pencarian algoritma Morris - Pratt

N o

Kode Program C # C x #

1 public int MP(String pat, String

text) { 2 x = pat.toCharArray(); C1 1 C1 3 y = text.toCharArray(); C1 1 C1 4 n = text.length(); C1 1 C1 5 m = pat.length(); C1 1 C1 6 nilai = false; C1 1 C1 7 preMp(); C2 1 C2 8 int j = 0; C1 1 C1 9 int i = 0; C1 1 C1 1 0 while(j < n) { C3 n C3n 1 1

while(i > -1 && x[i] != y[j]) { C3 m C3m

1 2 i = mpNext[i]; } C1 1 C1 ++i; C4 1 C4 ++j; C4 1 C4 if(i >= m) { C5 1 C5 nilai = true; C1 1 C1 i = mpNext[i]; } } C1 1 C1 if(nilai) { C6 1 C6 return 1; } C7 1 C7 return 0; } } C7 1 C7

(42)

Kompleksitas fase pencarian :

Tmax (n) = 10 C1 + C2 +C3(m+n)+2C4+C5+C6+2C7 = 10 +1 + (m+n) 2+1+1+2

= 17+m+n = Ө (m+n)

Tabel 4.14 menjelaskan tentang kompleksitas algoritma Morris - Pratt untuk fase preprocessing. Pada algoritma Morris - Pratt, fase preprocessing memiliki 𝑇(𝑛) = Ө (m). Pada tabel 4.8 menjelaskan fase pencarian dan didapat kompleksitas algoritma Morris - Pratt adalah Ө (m+𝑛).

4.4.2. Kompleksitas Algoritma Horspool

Tabel 4.15. Kompleksitas fungsi fase preprocessing Algoritma Horspool

N o

Kode Program C # C x #

1 public class bmBc {

2 int []BmBc =new int[256]; C1 1 C1

3 public void preBmBc(String

pat,int m,int[] QsBc){

4 for(int i=0;i<256;i++) C2 256 256C2

5 bmBc[i] = m; C1 1 C1

6 for (int i = 0; i < m - 1; ++i) C2 m C2m

7 bmBc[pat.charAt(i)] = m - i - 1; }

C1 1 C1

Kompleksitas fase preprocessing:

𝑇𝑚𝑎𝑥 (m) = 𝐶1+256𝐶2 + C1 +𝐶2m+𝐶1 = 3C1 + C2 (256+m)

= 3 + 256 +m = 259 +m = Ө

(m)

(43)

Tabel 4.16 Kompleksitas fungsi pencarian Algoritma Horspool

N o

Kode Program C # C x #

1 public int search(String pat,String target){ 2 int j=0; C1 1 C1 3 int m=pat.length(); C1 1 C1 4 int n=target.length(); C1 1 C1 5 preBmBc(pat, m, bmBc); C2 1 C2 6 while(j <= n - m){ C3 n C3n 7 if(pat.compareTo(target.substring(j,m+ j))==0) { C4 n C4n 8 return j+ 1; } C5 1 C5 1 1 j+= bmBc[target.charAt(j+m - 1)]; } C6 n C6n 1 2 return -1; } } C5 1 C5

Kompleksitas fase pencarian:

𝑇𝑚𝑎𝑥 (𝑛) = 𝐶1+ 𝐶1+ 𝐶1+𝐶2 +𝐶3𝑛+C4n+C5+C6n+C5 = 3𝐶1++C3n+C4n+C4n + C6n +2C5

= 3 +2 +3n = Ө (n)

Tabel 4.15 dan Tabel 4.16. menjelaskan tentang kompleksitas algoritma Horspool untuk fase preprocessing dan fase pencarian. Pada algoritma Horspool, fase preprocessing memiliki 𝑇(𝑛) = Ө (m) dan fase pencarian memiliki 𝑇(𝑛) = Ө (n). Maka, didapat kompleksitas algoritma Horspool adalah Ө (n). Dari semua pembahasan diatas dapat disimpulkan bahwa algoritma Morris-Pratt lebih unggul daripada algoritma Horspool.

(44)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan analisis, perancangan, dan pengujian dari penelitian, maka dapat diperoleh kesimpulan sebagai berikut :

1. Pencocokan kata dengan Algoritma Morris - Pratt dan Horspool pada Aplikasi Kamus Istilah Telekomunikasi berbasis android dapat diimplementasikan dan berjalan dengan baik.

2. Total rata-rata running time untuk algoritma Morris - Pratt adalah 46,6 ms dan algoritma Horspool adalah 50,5 ms. Pada skenario pencarian kata terpanjang, algoritma Morris - Pratt memiliki rata-rata running time selama 35.1 ms dan algoritma Horspool selama 38,2 ms dan untuk pencarian kata terpendek, algoritma Morris - Pratt memiliki running time selama 51,4 ms dan algoritma Horspool selama 62,1 ms. Hal ini membuktikan bahwa algoritma Morris - Pratt melakukan pencarian string lebih cepat dibandingkan algoritma Horspool.

3. Kompleksitas algoritma Morris-Pratt adalah Ө (m) pada preprocessing dan Ө(𝑚+𝑛) pada processing. Sedangkan kompleksitas algoritma Horspool adalah Ө(m) pada preprocessing dan Ө (n)pada processing. Hal ini membuktikan bahwa kompleksitas waktu untuk algoritma Horspool lebih besar dari algoritma Morris - Pratt sehingga mempengaruhi running time.

(45)

5.2 Saran

Pada penelitian ini, terdapat beberapa saran yang dapat dipertimbangkan. Untuk pengembangan penelitian selanjutnya, penulis memberikan beberapa saran, yaitu sebagai berikut:

1. Dalam pencarian string dengan studi kasus kamus istilah, disarankan agar mengimplementasikan algoritma-algoritma string matching lainnya seperti Knuth-Morris-Pratt karena algoritma ini bagus sekali.

2. Dapat mengembangkan sistem ke dalam basis lainnya, seperti basis desktop atau

web sehingga tidak hanya berbasis mobile saja.

3. Sistem ini sebaiknya dapat dikembangkan dengan menambah kosakata istilah Telekomunikasi dalam aplikasi.

Gambar

Gambar 3.2 General Arsitektur Perancangan Sistem Obervasi Literatur
Gambar 3.3 Use-case Diagram
Tabel 3.1 Tabel Skenario Use-case Memilih Algoritma Pencarian  Name  Memilih algoritma pencarian
Gambar 3.4 Activity Diagram
+7

Referensi

Dokumen terkait

Beberapa penulis berpendapat bahwa mahasiswa dapat belajar dengan baik jika hunian mereka mampu memberikan kenyamanan (Amole, 2005 dan Afandi 2008). et al, 2011)

Melalui penelitian ini diharapkan dapat mengetahui pola penggunaan obat anti hipertensi pada pasien gagal ginjal kronik dengan hemodialisa, rasionalitas penggunaan obat anti

Praktek utang-piutang yang terjadi di Dukuh Rejomulyo Desa Jatisari Kecamatan Subah Kabupaten Batang adalah orang yang dianggap mampu memberikan utang berupa uang

Tapi, setahun belakangan ini, industri makanan Jepang, termasuk restoran sepanjang jalan besar Tokyo, berusaha keras mengembangkan versi halal dari macam-macam makanan yang

Hasil penelitian menunjukkan adanya perbedaan nyata luas daun pada spesies rumput dan diperoleh interaksi perlakuan naungan dengan spesies terhadap total luas daun.. notatum

yang digunakan untuk mengukur rasio profitabilitas adalah ROA. 2.2.2 Pengaruh Kinerja Keuangan Terhadap ROA a. PengaruhRasio Likuiditas terhadap ROA. LDR memiliki pengaruh

Keberadaan Bahasa Indonesia bisa saja punah bila kita tidak dapat melestarikannya. Bahasa Indonesia bukan lagi bahasa pemersatu bangsa yang dapat dimengerti oleh

2) SK Penentapan Penerima Bantuan Hiah Ke masyarakat Tahuan 2015 masih dalam proses sehinga belum bisa dberikan (belum di kuasai) 3) Setiap Permohonan Informasi Kepada