Perbandingan Algoritma Not So Naive Dengan Algoritma Two Way Pada Aplikasi Kamus Bahasa Indonesia - Bahasa Arab Berbasis Android Chapter III V
21
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah dimana sistem diuraikan
menjadi komponen-kompenen dengan tujuan untuk mempelajari kinerja masingmasing komponen tersebut dalam mencapai tujuan sistem. Tahapan ini dilakukan
agar pada saat proses perancangan aplikasi tidak terjadi kesalahan dan sistem
dapat berjalan sesuai dengan tujuan utama. Ada dua tahapan analisis dalam tugas
akhir ini yaitu analisis masalah dan analisis persyaratan. Analisis masalah untuk
memahami kelayakan masalah dan analisis persyaratan untuk menjelaskan fungsifungsi yang ditawarkan dan mampu dikerjakan oleh sistem.
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. Selama ini
jika seseorang ingin mengetahui bahasa Indonesia-Arab ,media yang digunakan
untuk memperlancar penguasaan kosakatanya adalah melalui kamus. Aplikasi
kamus didalam Smartphone tidak mencari kata secara manual. Tetapi dengan
adanya fasilitas pencarian pada aplikasi kamus tersebut mempermudah user
mendapatkan kata yang ingin dicarinya. Dengan memanfaatkan salah satu dari
Algoritma String Matching seperti Algoritma Not So Naive dan Algoritma Two
Way, maka mempermudah dan mempercepat pencarian kata dalam kamus.
Pencarian kata
adalah masalah
yang akan diselesaikan dengan
menggunakan sistem ini. Untuk mengidentifikasi masalah tersebut digunakan
diagram Ishikawa (fishbone diagram). Diagram Ishikawa berbentuk seperti ikan
yang strukturnya terdiri dari kepala ikan (fish’s head) dan tulang-tulang ikan
(fish’s bones). Nama atau judul dari masalah yang diidentifikasi terletak pada
bagian kepala ikan. Sedangkan tulang-tulang ikan menggambarkan penyebab-
Universitas Sumatera Utara
22
penyebab masalah tersebut. Diagram Ishikawa pada sistem ini dapat dilihat pada
Gambar 3.1
METODE
USER
User
membutuhka
n media yang
praktis untuk
mencari kata
Sulit menemukan metode
Untuk String Matching
User masih
sulit untuk
melakukan
pencarian
kata dikamus
dengan waktu
yang cepat
Menggunakan dua metode
dalam suatu sistem
pencarian
Sistem pencarian dengan
menggunakan algoritma
Belum ada aplikasi berbasis
android yang
mengkombinasikan dua
algoritma string matching
yang dipilih
Not So Naive dan Two Way
Membutuhk
an proses
lama
Melakukan
pencarian
kata secara
manual
Tidak ada software
yang sesuai untuk
pencarian kata
MACHINE
MATERIAL
Gambar 3.1 Diagram Ishikawa
Pada Gambar 3.1 dapat dilihat bahwa terdapat empat kategori penyebab masalah
pada penelitian pencarian kata pada kamus dengan Algoritma Not So Naive dan
Algoritma Two Way yang digambarkan dengan tanda panah yang mengarah ke
tulang utama, yaitu berkaitan dengan pengguna yaitu membutuhkan media yang
praktis untuk mencari kata bahasa Indonesia-Arab di kamus dengan waktu yang
cepat, sementara kamus masih berbentuk buku cetak dan masih melakukan
pencarian secara manual. Media dan alat sangat sulit untuk dibawa kemana-mana
oleh user dan tidak dapat di-update setiap saat sesuai dengan kebutuhan dan
perkembangan saat ini. Media dan alat yang terlibat belum ada menggunakan
algoritma string matching Not So Naive dan Two Way. Metode masih dilakukan
secara manual dan metode pencarian kata pada kamus Bahasa Indonesia-Arab
belum ada digunakan. Maka untuk megatasi masalah tersebut penulis berinisiatif
untuk membuat aplikasi kamus pada platform Android yang Bahasa IndonesiaArab menggunakan algoritma Not So Naive dan Two Way.
Universitas Sumatera Utara
23
3.1.2 Analisis Persyaratan
Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis
persyaratan. Terdapat dua bagian pada analisis persyaratan, yaitu persyaratan
fungsional
dan
persyaratan
non-fungsional.
Persyaratan
fungsional
mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan Persyaratan
nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.
3.1.2.1 Persyaratan Fungsional
Persyaratan fungsional disini mendeskripsikan tentang sistem yang disediakan.
Terdapat beberapa hal yang menjadi persyaratan fungsional pada Aplikasi Kamus
Bahasa Indonesia-Arab , antara lain :
1. Sistem melakukan pencocokan string melalui kata yang di input oleh
pengguna.
2. Sistem dapat menghasilkan kata terjemahan dari inputan yang dicari dengan
menggunakan Algoritma Not So Naive dan Algoritma Two Way
3. Sistem menerima inputan dari user hanya berupa bentuk kata.
4. Sistem menampilkan hasil pencarian hanya berupa bentuk kata.
3.1.2.2 Persyaratan Non-Fungsional
Persyaratan non fungsional sistem merupakan karakteristik atau batasan yang
menentukan kepuasan pada sebuah sistem seperti kinerja, kemudahan pengguna,
biaya, dan kemampuan sistem bekerja tanpa mengganggu fungsionalitas sistem
lainnya. Terdapat beberapa persyaratan non-fungsional yang harus dipenuhi
diantaranya :
1. Performa
Sistem yang akan dibangun harus dapat menampilkan hasil pencarian yang
sesuai dengan apa yang dicari.
2. Mudah digunakan
Sistem yang akan dibangun harus mudah digunakan (user friendly), artinya
sistem ini akan mudah digunakan oleh user dengan tampilan yang sederhana
dan dapat dimengerti.
Universitas Sumatera Utara
24
3. Hemat biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun
perangkat pendukung lainnya yang dapat mengeluarkan biaya.
4. Kontrol
Sistem yang dibangun mampu menampilkan pesan ketika tidak ada inputan
yang akan dicari.
5. Manajemen Kualitas
Sistem yang akan dibangun harus memiliki kualitas yang baik yaitu tidak
mempersulit user untuk melakukan pencarian kata.
3.2 Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran cara kerja sistem dan
tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja
yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan
baik sesuai dengan kegunaannya.
Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai
bahasa pemodelan untuk mendesain dan merancang aplikasi Kamus bahasa
Indonesia-Arab. Model UML yang digunakan antara lain Use Case Diagram,
Activity diagram, dan Sequence diagram.
3.2.1. Use Case Diagram
Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi
yang terjadi antara user dengan sistem. Diagram use case ini mendeskripsikan
siapa saja yang menggunakan sistem dan bagaimana cara mereka berinteraksi
dengan sistem. Use Case Diagram dari sistem yang akan dibangun dapat
ditunjukkan pada Gambar 3.2.
Universitas Sumatera Utara
25
Gambar 3.2 Use Case Diagram Sistem
Didalam use case diagram dapat digambarkan bahwa terdapat 1(satu) orang aktor
yang akan berperan yaitu user. Selanjutnya user harus memasukkan input berupa
kata yang ingin diterjemahkan ke dalam search box. Selanjutnya user memilih
Algoritma yang ingin digunakan antara Algoritma Not So Naive dan Algoritma
Two Way. Setelah Algoritma dipilih lalu sistem akan melakukan pencarian dan
menampilkan hasil pencarian kata. Pada Proses Menentukan tipe pencarian dapat
dinyatakan dalam Tabel 3.1.
Universitas Sumatera Utara
26
Tabel 3.1 Use Case Proses Input Kata
Name
Input kata
Actors
User
Description
Usecase ini mendeskripsikan penginputan kata yang ingin
dicari
Basic Flow
User menginput kata
Alternate Flow
-
Pre Condition
User ingin menginput kata
Post Condition
User mendapatkan hasil pencarian kata
Tabel 3.2 Use Case Algoritma Not So Naive
Name
Algoritma Turbo Boyer Moore
Actors
User
Description
Usecase
ini
mendeskripsikan
proses
pencarian
kata
menggunakan Algoritma Not So Naive
Basic Flow
User memilih Algoritma Not So Naive
Alternate Flow
User memilih Algoritma Not So Naive
Pre Condition
User ingin mencari kata Not So Naive
Post Condition
User mendapatkan hasil pencarian kata
Tabel 3.3 Use Case Proses Algoritma Two Way
Name
Algoritma Two Way
Actors
User
Description
Use Case ini mendeskripsikan proses pencarian kata
menggunakan Algoritma Two Way
Universitas Sumatera Utara
27
Basic Flow
User memilih Algoritma Two Way
Alternate Flow
User memilih Algoritma Two Way
Pre Condition
User ingin mencari kata Two Way
Post Condition
User mendapatkan hasil pencarian kata
3.2.2 Activity Diagram
Activity diagram adalah diagram aktivitas yang mendeskripsikan proses kerja
dalam sebuah sistem yang sedang berjalan. Activity diagram bertujuan untuk
membantu memahami keseluruhan proses dan menggambarkan interaksi antara
beberapa Use Case Diagram. Activity diagram dari sistem yang akan dibangun
dapat ditunjukkan pada Gambar 3.3.
Gambar 3.3 Activity Diagram Sistem
Gambar ini menunjukkan bahwa user melakukan input kata lalu user memilih
algoritma untuk pencarian kemudian sistem melakukan pemanggilan fungsi
algoritma yang telah dipilih dan sistem menampilkan hasil pencarian ke user.
3.2.3 Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar
objek pada sistem dalam sebuah urutan waktu atau rangkaian waktu. Sequence
diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.4
Universitas Sumatera Utara
28
Gambar 3.4 Sequence Diagram Sistem
Gambar ini menunjukkan bahwa user melakukan input kata dan pilih algoritma
kemudian sistem akan melakukan pemanggilan fungsi algoritma dan sistem akan
menampilkan hasil pencarian.
3.3 Pseudocode
3.3.1
Pseudocode Algoritma Not So Naive
if (x[0] == x[1]) {
k = 2;
ell = 1;
}
else {
k = 1;
ell = 2;
}
j = 0;
while (j b */
ms = j;
j = ms + 1;
k = *p = 1;
}
}
return(ms);
}
int maxSufTilde(char *x, int m, int *p) {
int ms, j, k;
char a, b;
ms = -1;
j = 0;
k = *p = 1;
while (j + k < m) {
a = x[j + k];
b = x[ms + k];
if (a > b) {
j += k;
k = 1;
*p = j - ms;
}
else
if (a == b)
if (k != *p)
++k;
else {
j += *p;
k = 1;
}
Universitas Sumatera Utara
30
else { /* a < b */
ms = j;
j = ms + 1;
k = *p = 1;
}
}
return(ms);
}
void TW(char *x, int m, char *y, int n) {
int i, j, ell, memory, p, per, q;
i = maxSuf(x, m, &p);
j = maxSufTilde(x, m, &q);
if (i > j) {
ell = i;
per = p;
}
else {
ell = j;
per = q;
}
if (memcmp(x, x + per, ell + 1) == 0) {
j = 0;
memory = -1;
while (j = m) {
i = ell;
while (i > memory && x[i] == y[i + j])
--i;
if (i = 0 && x[i] == y[i + j])
--i;
if (i < 0)
OUTPUT(j);
j += per;
}
Universitas Sumatera Utara
31
else
j += (i - ell);
}
}
}
3.4 Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan
simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan antara proses digambarkan dengan garis penghubung. Flowchart yang
akan dibangun dapat ditunjukkan pada Gambar 3.5, 3.6, dan 3.7
\
Mulai
Masukkan
Pattern
Pilih algoritma
pencarian
Cocokkan text dengan
algoritma yang dipilih
Output
Hasil Pencarian
Selesai
Gambar 3.5 Flowchart Gambaran Umum Sistem Kamus
Gambar 3.5 Menggambarkan alur sistem secara umum pada kamus bahasa
Indonesia-Arab, dimana user memasukkan inputan berupa text. Kemudian
memilih algoritma pencarian yaitu algoritma Not So Naive atau algoritma Two
Way. Cek pattern dengan text yang terdapat dalam database. Kemudian tampilkan
hasil pencarian.
Universitas Sumatera Utara
32
Mulai
Masukkan Pattern
Tidak
Iya
K=2,ell=1
K=1,ell=2
X[0]=X[1
Tidak
Substring ada?
Iya
Cek substring dari kiri ke kanan
Geser substring
sebanyak K
Iya
Tidak
X[1]!=Y[j+1]
Geser substring
sebanyak ell
Substring cocok
Output substring
Output substring
cocok
tidak cocok
Selesai
Gambar 3.6 Flowchart Algoritma Not So Naive
Gambar 3.6 menjelaskan algoritma Not So Naive dimulai dengan memasukkan
dengan pattern yang akan dicari. Proses pencarian dilakukan dengan mengecek
substring dari kiri ke kanan, Apabila X[1]!=Y[j+1] maka geser substring sebanyak
k, apabila tidak maka geser substring sebanyak ell. X=pattern , Y =Teks.
Universitas Sumatera Utara
33
Mulai
Masukkan String Kunci
(X) String Sumber(Y)
Faktorisasi kunci menjadi
awalan dan akhiran
Tidak
Substring
ada?
Ya
Geser Substring
Geser Substring
sebanyak karakter
Substring
Tidak
sama dengan
sebanyak satu
awalan?
yang cocok
Ya
Ya
Cek karakter selanjutnya
Tidak
Substring
sama dengan
akhiran?
String kunci
Ya
ditemukan
String kunci
Selesai
tidak ditemukan
Gambar 3.7 Flowchart Algoritma Two Way
Gambar 3.7 menjelaskan algoritma Two way dimulai dengan memasukkan string
kunci dan string sumber. Kemudian Faktorisasi kunci menjadi awalan dan
akhiran. Cek jika substring sama dengan akhiran maka string kunci ditemukan,
Universitas Sumatera Utara
34
jika substring tidak sama dengan akhiran maka geser substring sebanyak karakter
yang cocok.
3.5 Perancangan Antarmuka Sistem (Interface)
Proses perancangan antarmuka (interface) sebuah sistem adalah proses yang
cukup penting dalam perancangan sebuah sistem. Merancang antar muka
merupakan bagian yang paling penting dari merancang sebuah sistem. Sebuah
antar muka harus dirancang dengan memperhatikan faktor pengguna sehingga
sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk
digunakan oleh pengguna.
3.5.1 Rancangan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat
sistem dibuka. Rancangan Tampilan Splash Screen dapat dilihat pada Gambar
3.8
Kamus
Bahasa
Indonesia
Arab
Gambar 3.8 Rancangan Splash Screen
Keterangan :
1. Splash Screen untuk menampilkan loading progress saat pertama kali
membuka aplikasi.
Universitas Sumatera Utara
35
3.5.2 Rancangan Halaman Utama
Halaman utama terdiri dari ImageView, Search,About dan Exit. Adapun tampilan
dari halaman utama dapat dilihat pada Gambar 3.9
KAMUS Bahasa
Indonesia-Arab
SEARCH
ABOUT
EXIT
Gambar 3.9 Halaman Utama
Keterangan :
1. ImageView berisi Judul Aplikasi
2. Button Searchmenampilkan pencarian kata Politik
3. Button About berisi judul dan pembuat aplikasi
4. Button Exit untuk mengeluarkan user dari aplikasi
Universitas Sumatera Utara
36
3.5.3 Rancangan Halaman Search
Halaman Search berfungsi untuk melakukan pencarian kata pada kamus sesuai
dengan algoritma yang telah dipilih. Adapun tampilan dari halaman search dapat
dilihat pada Gambar 3.10
1
2
Pencarian
Not So Naive
3
Two Way
4
Cari....
Cari
5
Gambar 3.10 Halaman Search
Gambar 3.10 Halaman Search
Keterangan :
1. Toolbar untuk menampilkan judul halaman
2. TabLayout untuk menampilkan pilihan algoritma pencarian
3. EditText untuk menampilkan kata
4. Button untuk mencari kata
5. ListView untuk menampilkan hasil pencarian
Universitas Sumatera Utara
37
3.5.4 Rancangan Halaman About
Halaman About berisi judul dan nama dari pembuat Aplikasi. Adapun tampilan
dari halaman search dapat dilihat pada Gambar 3.11
1
Tentang
PERBANDINGAN ALGORITMA NOT SO NAIVE DAN TWO WAY
PADA KAMUS BAHASA INDONESIA-ARAB
BERBASIS ANDROID
SKRIPSI
NURUL HASANAH
Gambar 3.11 Halaman About
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS
ILMU
KOMPUTER
DAN
TEKNOLOGI
INFORMASI
Gambar
3.11
Rancangan
Tampilan
Pencarian
UNIVERSITAS SUMATERAUTARA
2017
Gambar 3.11 Halaman About
Keterangan :
1.
Toolbar untuk menampilkan judul halaman
2.
ImageView untuk menampilkan judul dan nama pembuat aplikasi.
3.5.5 Rancangan Halaman Exit
Halaman Exit berfungsi untuk mengeluarkan user dari aplikasi. Adapun
tampilan dari halaman exit dapat dilihat pada Gambar 3.12
Universitas Sumatera Utara
38
1
Konfirmasi
2 Apa anda ingin keluar ?
3
Tidak
4
Ya
Gambar 3.12 Halaman Exit
Keterangan :
1. TextView untuk menampilkan teks.
2. TextView untuk menampilkan teks.
3. Button untuk tidak keluar dari aplikasi.
4. Button untuk keluar dari aplikasi.
Universitas Sumatera Utara
39
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan tahapan lanjutan dari analisis dan perancangan
sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman Java dan
menggunakan Software Android Studio. Sistem ini diproses dan dijalankan pada
smarthphone Samsung Galaxy J5. Pada sistem ini terdapat 6 tampilan halaman,
yaitu Halaman Splash Screen, Tampilan Halaman Utama, Halaman Search,
Halaman About, Halaman Fitur, Halaman Exit.
4.1.1 Tampilan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat
sistem dibuka. Tampilan Halaman Splash Screen dapat dilihat pada Gambar 4.1
Gambar 4.1 Halaman Splash Screen
Universitas Sumatera Utara
40
4.1.2 Tampilan Halaman Utama
Tampilan halaman utama berisi tentang menu Search, About dan Exit. Dimana
pada menu Search, user bisa melakukan pencarian kata pada kamus bahasa
Indonesia-Arab. Pada menu About, user bisa melihat judul dan nama pembuat
aplikasi. Adapun tampilan halaman utama aplikasi dapat dilihat pada Gambar
4.2.
Gambar 4.2 Halaman Utama
4.1.3 Tampilan Halaman Search
Tampilan halaman search berisi tentang algoritma pencarian kata pada kamus
sesuai dengan algoritma yang telah dipilih. Adapun tampilan halaman pencarian
dapat dilihat pada Gambar 4.3. Pada halaman ini, sebelum user melakukan
pencarian, terlebih dahulu user memilih algoritma kemudian mengklik button
cari. Setelah button cari diklik maka hasil pencarian kata akan ditampilkan dan
alert dialog running time.
Universitas Sumatera Utara
41
Gambar 4.3 Halaman Search
4.1.4 Tampilan Halaman About
Tampilan halaman about berisi tentang judul dan nama pembuat aplikasi. Adapun
tampilan halaman about dapat dilihat pada Gambar 4.4.
Gambar 4.4 Halaman About
Universitas Sumatera Utara
42
4.1.5 Tampilan Halaman Profil
Tampilan halaman Profil berfungsi untuk menampilkan photo profil dari pembuat
aplikasi. Adapun tampilan dari halaman Profil dapat dilihat pada Gambar 4.5.
Gambar 4.5 Halaman Profil
4.1.5 Tampilan Halaman Exit
Tampilan halaman exit berfungsi untuk mengeluarkan user dari aplikasi. Adapun
tampilan dari halaman exit dapat dilihat pada Gambar 4.5.
Gambar 4.6 Halaman Exit
Universitas Sumatera Utara
43
4.2 Tampilan Hasil Pencarian Not So Naive
Tampilan teks dan pattern yaitu cocok apabila pattern dan teks cocok. Pada
Gambar 4.7 dapat dilihat hasil pencarian kata pada kamus Bahasa IndonesiaArab menggunakan Algoritma Not So Naive.
Gambar 4.7 Hasil Pencarian Kata Algoritma Not So Naive
Gambar ini menunjukkan bahwa user memasukkan teks yaitu makan ke
aplikasi. Algoritma yang digunakan adalah algoritma Not So Naive. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Terdapat 2 kata makan dalam database. Terdapat toast yang
menunjukkan kata ditemukan dan running time yang diperlukan untuk
mencari kata makan adalah 43 ms.
Tampilan teks dan pattern yaitu tidak cocok apabila pattern dan teks tidak
cocok. Pada Gambar 4.8 dapat dilihat hasil pencarian kata pada kamus
bahasa Indonesia-Arab menggunakan Algoritma Not So Naive.
Universitas Sumatera Utara
44
Gambar 4.8 Hasil Pencarian Kata Algoritma Not So Naive
Gambar ini menunjukkan bahwa user memasukkan teks yaitu jangan ke
aplikasi. Algoritma yang digunakan adalah algoritma Not So Naive. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Tidak terdapat kata jangan dalam database. Terdapat toast
yang menunjukkan bahwa kata tidak ditemukan dan running time yang
diperlukan untuk mencari kata jangan adalah 35 ms.
4.3 Analisis Algoritma Two Way
Tampilan teks dan pattern yaitu cocok apabila pattern dan teks cocok. Pada
Gambar 4.9 dapat dilihat hasil pencarian kata pada kamus bahasa IndonesiaArab menggunakan Algoritma Two Way
Universitas Sumatera Utara
45
Gambar 4.9 Hasil Pencarian Kata Algoritma Two Way
Gambar ini menunjukkan bahwa user memasukkan teks yaitu makan ke
aplikasi. Algoritma yang digunakan adalah algoritma Two Way. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Terdapat 2 kata makan dalam database. Terdapat toast yang
menunjukkan kata ditemukan dan running time yang diperlukan untuk
mencari kata makan adalah 50 ms.
Tampilan teks dan pattern yaitu tidak cocok apabila pattern dan teks tidak
cocok. Pada Gambar 4.10 dapat dilihat hasil pencarian kata pada kamus
bahasa Indonesia-Arab menggunakan Algoritma Two Way
Universitas Sumatera Utara
46
Gambar 4.10 Hasil Pencarian Kata Algoritma Two Way
Gambar ini menunjukkan bahwa user memasukkan teks yaitu jangan ke
aplikasi. Algoritma yang digunakan adalah algoritma Two Way. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Tidak terdapat kata jangan dalam database. Terdapat toast
yang menunjukkan bahwa kata tidak ditemukan dan running time yang
diperlukan untuk mencari kata jangan adalah 37 ms.
4.4. Hasil Pengujian
Hasil pengujian dari penelitian ini adalah Running time dari pencarian kata dan
jumlah kata yang ditemukan pada Algoritma Not So Naive dan Algoritma Two
Way yang dilakukan terhadap string yang berbeda. Adapun hasil pengujian dari
kedua Algoritma yang digunakan akan dijelaskan pada Tabel 4.5 dan Tabel 4.6.
Universitas Sumatera Utara
47
Tabel 4.5 Hasil Pengujian Algoritma Not So Naive
No
Pola
Running time
Jumlah kata
(ms)
yang ditemukan
Kejadian
1
Makan
43
2
Kata ditemukan
2
Apa
44
18
Kata ditemukan
3
Ayah
42
3
Kata ditemukan
4
Ibu
42
8
Kata ditemukan
5
Minum
40
1
Kata ditemukan
6
Tidur
41
1
Kata ditemukan
7
Siapa
39
1
Kata ditemukan
8
Ada
48
29
Kata ditemukan
9
jangan
35
0
10
nuha
45
0
Rata-rata
42 ms
Kata tidak
ditemukan
Kata tidak
ditemukan
Tabel ini menunjukkan terdapat 10 pola pengujian pada Algoritma Not So Naive.
Pada masing-masing pola terdapat running time dalam ms yang menunjukkan
waktu pencarian kata. Terdapat 2 jenis kejadian pada masing-masing pola yaitu
kata ditemukan atau kata tidak ditemukan. Dalam pengujian 10 pola, rata-rata
running time untuk algoritma Not So Naive adalah 42 ms.
Universitas Sumatera Utara
48
Tabel 4.6 Hasil Pengujian Algoritma Two Way
Running
Jumlah kata
Time (ms)
yang ditemukan
Makan
50
2
Kata ditemukan
2
Apa
53
18
Kata ditemukan
3
Ayah
54
3
Kata ditemukan
4
Ibu
50
8
Kata ditemukan
5
Minum
58
1
Kata ditemukan
6
Tidur
47
1
Kata ditemukan
7
Siapa
48
1
Kata ditemukan
8
Ada
53
29
Kata ditemukan
9
jangan
37
0
10
nuha
52
0
Rata-rata
50 ms
No
Pola
1
Kejadian
Kata tidak
ditemukan
Kata tidak
ditemukan
Tabel ini menunjukkan terdapat 10 pola pengujian pada Algoritma Two Way.
Pada masing-masing pola terdapat running time dalam ms yang menunjukkan
waktu pencarian kata. Terdapat 2 jenis kejadian pada masing-masing pola yaitu
kata ditemukan atau kata tidak ditemukan. Dalam pengujian 10 pola, rata-rata
running time untuk algoritma Two Way adalah 50 ms.
Universitas Sumatera Utara
49
Dengan diketahui kompleksitas waktu suatu algoritma maka efisiensi program
berdasarkan waktu dapat dibedakan menurut running time-nya runnng time dari
suatu algoritmaa adalah ukuran waktu untuk melaksanakan suatu program sehinga
menghasilkan output pada satu kompiler dan mesin eksekusi tertentu. Running
time sebuah program tergantung beberapa faktor :
1) Input Program.
2) Jumlah Database dalam suatu program.
3) Kualitas dari kompiler yang digunakan untuk kompilasi pada program.
4) kemampuan dan kecepatan mesin yang digunakan untuk eksekusi program
5) kompleksitas algoritma
Setelah mendapatkan Hasil Pengujian dari Tabel 4.5 dan Tabel 4.6 maka dibuat
grafik perbandingan hasil pengujian dari kedua Algoritma tersebut. Grafik dapat
dilihat pada Gambar 4.11
70 y
60
50
40
Not So Naive
30
Two Way
20
x=Pattern
10
y=Running time
0
x
Gambar 4.11 Perbandingan Hasil Running Time Algoritma Not So Naive dan
Algoritma Two Way
Universitas Sumatera Utara
50
Dari grafik diatas hasil running time tiap-tiap kata berbeda dalam suatu algoritma
hal ini dikarenakan inputan program dan kemampuan ataupun kecepatan pada
mesin yang digunakan untuk eksekusi program mempengaruhi kecepatan running
time. Dari grafik diatas dapat dijelaskan bahwa Algoritma Not So Naive
mendapatkan Hasil Running Time yang relatif rendah dibandingkan dengan
Algoritma Two Way. Artinya bahwa Algoritma Not So Naive lebih cepat untuk
pencocokan kata dibandingkan dengan Algoritma Two Way.
4.4.1 Kompleksitas Algoritma Not So Naive
Tabel 4.7 Kompleksitas hasil Algoritma Not So Naive
kode Program
void NSN(char *x, int m, char *y, int n) {
int j, k, ell;
if (x[0] == x[1]) {
k = 2;
ell = 1;
}
else {
k = 1;
ell = 2;
}
j = 0;
while (j b) {
j += k;
k = 1;
*p = j - ms;
} else
if (a == b)
if (k != *p)
++k;
else {
j += *p;
k = 1;
} else {
ms = j;
Eksekusi
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
1
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
Universitas Sumatera Utara
52
j = ms + 1;
k = *p = 1;
} } return(ms); }
if (i > j) {
ell = i;
per = p;
} else {
ell = j;
per = q; }
if (memcmp(x, x + per, ell + 1) == 0) {
j = 0;
memory = -1;
while (j = m) {
i = ell;
while (i > memory && x[i] == y[i + j])
--i;
if (i = 0 && x[i] == y[i + j])
--i;
if (i < 0)
OUTPUT(j);
j += per;
} else
j += (i - ell); } } }
Total Eksekusi
n
n
1
1
1
1
1
1
1
1
1
n
n
n2
n2
n
n
n2
n2
n
n
n
n
n
n
n
1
1
1
n
n
n2
n2
n
n
n2
n2
n
n
n
n
n
2
8n + 53n + 13
Universitas Sumatera Utara
53
Pada tabel ini menunjukkan kompleksitas algoritma yaitu Big O. Tiap-tiap baris
dalam program di eksekusi untuk mengetahui nilai Big O. Apabila tidak terdapat
perulangan maka nilai eksekusi adalah 1, apabila terdapat perulangan maka nilai
eksekusi adalah n, dan apabila terdapat perulangan dalam perulangan maka nilai
eksekusi adalah n pangkat jumlah perulangan yang ada dalam perulangan
tersebut. Dari tabel tersebet dapat diketahui kompleksitas algoritma Two Way
tersebut adalah 8n2 + 53n + 13 dengan kompleksitas = O (n) 2.
Universitas Sumatera Utara
54
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan analisis, perancangan dan pengujian pada aplikasi kamus bahasa Indonesia-Arab
dengan menggunakan algoritma Not So Naive dan Two Way, maka diperoleh beberapa
kesimpulan :
1.
Cara Kerja Algoritma Not So Naive memiliki fase pencarian mengecek teks dan
pola dari kiri ke kanan. Algoritma Not So Naive akan mengidentifiksi terlebih
dahulu dua kasus yang dimana di setiap akhir fase pencocokan pergeseran dapat
dilakukan sebanyak 2 posisi ke kanan.
2.
Cara Kerja Algoritma Two Way memiliki fase pencarian mengecek teks dan pola
dari kiri ke kanan dan kanan ke kiri. Apabila Substring cocok maka geser substring
sebanyak karakter yang cocok. Apabila Substring tidak cocok maka geser substring
sebanyak 1 kali.
3.
Algoritma Not So Naive melakukan pencocokan kata dengan lebih cepat bila
dibandingkan dengan algoritma Two Way. Dalam pengujian 10 pola, rata-rata
running time untuk Not So Naive adalah 42 ms sedangkan Two Way 50 ms.
4.
Hasil kompleksitas untuk algoritma Not So Naive adalah Big O(n) dan
kompleksitas untuk algoritma Two Way adalah Big O(n2).
5.2 Saran
Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan penelitian ini
antara lain :
1.
Pada tulisan bahasa arab sebaiknya mengenal huruf izaiyah terlebih dahulu.
2.
Sistem ini sebaiknya ditambahkan menu baru yang dapat mendengar bacaan
arabnya agar user mengetahui cara bacaannya dengan benar.
3.
Sistem ini sebaiknya ditambahkan menu pengolahan data seperti menu edit,
tambah dan delete agar data dalam aplikasi semakin banyak.
4.
Sistem ini sebaiknya dibandingkan dengan beberapa algoritma String Matching
lainnya, kemudian dibandingkan dengan algoritma sebelumnya yang telah dahulu
dibandingkan.
Universitas Sumatera Utara
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah dimana sistem diuraikan
menjadi komponen-kompenen dengan tujuan untuk mempelajari kinerja masingmasing komponen tersebut dalam mencapai tujuan sistem. Tahapan ini dilakukan
agar pada saat proses perancangan aplikasi tidak terjadi kesalahan dan sistem
dapat berjalan sesuai dengan tujuan utama. Ada dua tahapan analisis dalam tugas
akhir ini yaitu analisis masalah dan analisis persyaratan. Analisis masalah untuk
memahami kelayakan masalah dan analisis persyaratan untuk menjelaskan fungsifungsi yang ditawarkan dan mampu dikerjakan oleh sistem.
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. Selama ini
jika seseorang ingin mengetahui bahasa Indonesia-Arab ,media yang digunakan
untuk memperlancar penguasaan kosakatanya adalah melalui kamus. Aplikasi
kamus didalam Smartphone tidak mencari kata secara manual. Tetapi dengan
adanya fasilitas pencarian pada aplikasi kamus tersebut mempermudah user
mendapatkan kata yang ingin dicarinya. Dengan memanfaatkan salah satu dari
Algoritma String Matching seperti Algoritma Not So Naive dan Algoritma Two
Way, maka mempermudah dan mempercepat pencarian kata dalam kamus.
Pencarian kata
adalah masalah
yang akan diselesaikan dengan
menggunakan sistem ini. Untuk mengidentifikasi masalah tersebut digunakan
diagram Ishikawa (fishbone diagram). Diagram Ishikawa berbentuk seperti ikan
yang strukturnya terdiri dari kepala ikan (fish’s head) dan tulang-tulang ikan
(fish’s bones). Nama atau judul dari masalah yang diidentifikasi terletak pada
bagian kepala ikan. Sedangkan tulang-tulang ikan menggambarkan penyebab-
Universitas Sumatera Utara
22
penyebab masalah tersebut. Diagram Ishikawa pada sistem ini dapat dilihat pada
Gambar 3.1
METODE
USER
User
membutuhka
n media yang
praktis untuk
mencari kata
Sulit menemukan metode
Untuk String Matching
User masih
sulit untuk
melakukan
pencarian
kata dikamus
dengan waktu
yang cepat
Menggunakan dua metode
dalam suatu sistem
pencarian
Sistem pencarian dengan
menggunakan algoritma
Belum ada aplikasi berbasis
android yang
mengkombinasikan dua
algoritma string matching
yang dipilih
Not So Naive dan Two Way
Membutuhk
an proses
lama
Melakukan
pencarian
kata secara
manual
Tidak ada software
yang sesuai untuk
pencarian kata
MACHINE
MATERIAL
Gambar 3.1 Diagram Ishikawa
Pada Gambar 3.1 dapat dilihat bahwa terdapat empat kategori penyebab masalah
pada penelitian pencarian kata pada kamus dengan Algoritma Not So Naive dan
Algoritma Two Way yang digambarkan dengan tanda panah yang mengarah ke
tulang utama, yaitu berkaitan dengan pengguna yaitu membutuhkan media yang
praktis untuk mencari kata bahasa Indonesia-Arab di kamus dengan waktu yang
cepat, sementara kamus masih berbentuk buku cetak dan masih melakukan
pencarian secara manual. Media dan alat sangat sulit untuk dibawa kemana-mana
oleh user dan tidak dapat di-update setiap saat sesuai dengan kebutuhan dan
perkembangan saat ini. Media dan alat yang terlibat belum ada menggunakan
algoritma string matching Not So Naive dan Two Way. Metode masih dilakukan
secara manual dan metode pencarian kata pada kamus Bahasa Indonesia-Arab
belum ada digunakan. Maka untuk megatasi masalah tersebut penulis berinisiatif
untuk membuat aplikasi kamus pada platform Android yang Bahasa IndonesiaArab menggunakan algoritma Not So Naive dan Two Way.
Universitas Sumatera Utara
23
3.1.2 Analisis Persyaratan
Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis
persyaratan. Terdapat dua bagian pada analisis persyaratan, yaitu persyaratan
fungsional
dan
persyaratan
non-fungsional.
Persyaratan
fungsional
mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan Persyaratan
nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.
3.1.2.1 Persyaratan Fungsional
Persyaratan fungsional disini mendeskripsikan tentang sistem yang disediakan.
Terdapat beberapa hal yang menjadi persyaratan fungsional pada Aplikasi Kamus
Bahasa Indonesia-Arab , antara lain :
1. Sistem melakukan pencocokan string melalui kata yang di input oleh
pengguna.
2. Sistem dapat menghasilkan kata terjemahan dari inputan yang dicari dengan
menggunakan Algoritma Not So Naive dan Algoritma Two Way
3. Sistem menerima inputan dari user hanya berupa bentuk kata.
4. Sistem menampilkan hasil pencarian hanya berupa bentuk kata.
3.1.2.2 Persyaratan Non-Fungsional
Persyaratan non fungsional sistem merupakan karakteristik atau batasan yang
menentukan kepuasan pada sebuah sistem seperti kinerja, kemudahan pengguna,
biaya, dan kemampuan sistem bekerja tanpa mengganggu fungsionalitas sistem
lainnya. Terdapat beberapa persyaratan non-fungsional yang harus dipenuhi
diantaranya :
1. Performa
Sistem yang akan dibangun harus dapat menampilkan hasil pencarian yang
sesuai dengan apa yang dicari.
2. Mudah digunakan
Sistem yang akan dibangun harus mudah digunakan (user friendly), artinya
sistem ini akan mudah digunakan oleh user dengan tampilan yang sederhana
dan dapat dimengerti.
Universitas Sumatera Utara
24
3. Hemat biaya
Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun
perangkat pendukung lainnya yang dapat mengeluarkan biaya.
4. Kontrol
Sistem yang dibangun mampu menampilkan pesan ketika tidak ada inputan
yang akan dicari.
5. Manajemen Kualitas
Sistem yang akan dibangun harus memiliki kualitas yang baik yaitu tidak
mempersulit user untuk melakukan pencarian kata.
3.2 Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran cara kerja sistem dan
tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja
yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan
baik sesuai dengan kegunaannya.
Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai
bahasa pemodelan untuk mendesain dan merancang aplikasi Kamus bahasa
Indonesia-Arab. Model UML yang digunakan antara lain Use Case Diagram,
Activity diagram, dan Sequence diagram.
3.2.1. Use Case Diagram
Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi
yang terjadi antara user dengan sistem. Diagram use case ini mendeskripsikan
siapa saja yang menggunakan sistem dan bagaimana cara mereka berinteraksi
dengan sistem. Use Case Diagram dari sistem yang akan dibangun dapat
ditunjukkan pada Gambar 3.2.
Universitas Sumatera Utara
25
Gambar 3.2 Use Case Diagram Sistem
Didalam use case diagram dapat digambarkan bahwa terdapat 1(satu) orang aktor
yang akan berperan yaitu user. Selanjutnya user harus memasukkan input berupa
kata yang ingin diterjemahkan ke dalam search box. Selanjutnya user memilih
Algoritma yang ingin digunakan antara Algoritma Not So Naive dan Algoritma
Two Way. Setelah Algoritma dipilih lalu sistem akan melakukan pencarian dan
menampilkan hasil pencarian kata. Pada Proses Menentukan tipe pencarian dapat
dinyatakan dalam Tabel 3.1.
Universitas Sumatera Utara
26
Tabel 3.1 Use Case Proses Input Kata
Name
Input kata
Actors
User
Description
Usecase ini mendeskripsikan penginputan kata yang ingin
dicari
Basic Flow
User menginput kata
Alternate Flow
-
Pre Condition
User ingin menginput kata
Post Condition
User mendapatkan hasil pencarian kata
Tabel 3.2 Use Case Algoritma Not So Naive
Name
Algoritma Turbo Boyer Moore
Actors
User
Description
Usecase
ini
mendeskripsikan
proses
pencarian
kata
menggunakan Algoritma Not So Naive
Basic Flow
User memilih Algoritma Not So Naive
Alternate Flow
User memilih Algoritma Not So Naive
Pre Condition
User ingin mencari kata Not So Naive
Post Condition
User mendapatkan hasil pencarian kata
Tabel 3.3 Use Case Proses Algoritma Two Way
Name
Algoritma Two Way
Actors
User
Description
Use Case ini mendeskripsikan proses pencarian kata
menggunakan Algoritma Two Way
Universitas Sumatera Utara
27
Basic Flow
User memilih Algoritma Two Way
Alternate Flow
User memilih Algoritma Two Way
Pre Condition
User ingin mencari kata Two Way
Post Condition
User mendapatkan hasil pencarian kata
3.2.2 Activity Diagram
Activity diagram adalah diagram aktivitas yang mendeskripsikan proses kerja
dalam sebuah sistem yang sedang berjalan. Activity diagram bertujuan untuk
membantu memahami keseluruhan proses dan menggambarkan interaksi antara
beberapa Use Case Diagram. Activity diagram dari sistem yang akan dibangun
dapat ditunjukkan pada Gambar 3.3.
Gambar 3.3 Activity Diagram Sistem
Gambar ini menunjukkan bahwa user melakukan input kata lalu user memilih
algoritma untuk pencarian kemudian sistem melakukan pemanggilan fungsi
algoritma yang telah dipilih dan sistem menampilkan hasil pencarian ke user.
3.2.3 Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar
objek pada sistem dalam sebuah urutan waktu atau rangkaian waktu. Sequence
diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.4
Universitas Sumatera Utara
28
Gambar 3.4 Sequence Diagram Sistem
Gambar ini menunjukkan bahwa user melakukan input kata dan pilih algoritma
kemudian sistem akan melakukan pemanggilan fungsi algoritma dan sistem akan
menampilkan hasil pencarian.
3.3 Pseudocode
3.3.1
Pseudocode Algoritma Not So Naive
if (x[0] == x[1]) {
k = 2;
ell = 1;
}
else {
k = 1;
ell = 2;
}
j = 0;
while (j b */
ms = j;
j = ms + 1;
k = *p = 1;
}
}
return(ms);
}
int maxSufTilde(char *x, int m, int *p) {
int ms, j, k;
char a, b;
ms = -1;
j = 0;
k = *p = 1;
while (j + k < m) {
a = x[j + k];
b = x[ms + k];
if (a > b) {
j += k;
k = 1;
*p = j - ms;
}
else
if (a == b)
if (k != *p)
++k;
else {
j += *p;
k = 1;
}
Universitas Sumatera Utara
30
else { /* a < b */
ms = j;
j = ms + 1;
k = *p = 1;
}
}
return(ms);
}
void TW(char *x, int m, char *y, int n) {
int i, j, ell, memory, p, per, q;
i = maxSuf(x, m, &p);
j = maxSufTilde(x, m, &q);
if (i > j) {
ell = i;
per = p;
}
else {
ell = j;
per = q;
}
if (memcmp(x, x + per, ell + 1) == 0) {
j = 0;
memory = -1;
while (j = m) {
i = ell;
while (i > memory && x[i] == y[i + j])
--i;
if (i = 0 && x[i] == y[i + j])
--i;
if (i < 0)
OUTPUT(j);
j += per;
}
Universitas Sumatera Utara
31
else
j += (i - ell);
}
}
}
3.4 Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan
simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan antara proses digambarkan dengan garis penghubung. Flowchart yang
akan dibangun dapat ditunjukkan pada Gambar 3.5, 3.6, dan 3.7
\
Mulai
Masukkan
Pattern
Pilih algoritma
pencarian
Cocokkan text dengan
algoritma yang dipilih
Output
Hasil Pencarian
Selesai
Gambar 3.5 Flowchart Gambaran Umum Sistem Kamus
Gambar 3.5 Menggambarkan alur sistem secara umum pada kamus bahasa
Indonesia-Arab, dimana user memasukkan inputan berupa text. Kemudian
memilih algoritma pencarian yaitu algoritma Not So Naive atau algoritma Two
Way. Cek pattern dengan text yang terdapat dalam database. Kemudian tampilkan
hasil pencarian.
Universitas Sumatera Utara
32
Mulai
Masukkan Pattern
Tidak
Iya
K=2,ell=1
K=1,ell=2
X[0]=X[1
Tidak
Substring ada?
Iya
Cek substring dari kiri ke kanan
Geser substring
sebanyak K
Iya
Tidak
X[1]!=Y[j+1]
Geser substring
sebanyak ell
Substring cocok
Output substring
Output substring
cocok
tidak cocok
Selesai
Gambar 3.6 Flowchart Algoritma Not So Naive
Gambar 3.6 menjelaskan algoritma Not So Naive dimulai dengan memasukkan
dengan pattern yang akan dicari. Proses pencarian dilakukan dengan mengecek
substring dari kiri ke kanan, Apabila X[1]!=Y[j+1] maka geser substring sebanyak
k, apabila tidak maka geser substring sebanyak ell. X=pattern , Y =Teks.
Universitas Sumatera Utara
33
Mulai
Masukkan String Kunci
(X) String Sumber(Y)
Faktorisasi kunci menjadi
awalan dan akhiran
Tidak
Substring
ada?
Ya
Geser Substring
Geser Substring
sebanyak karakter
Substring
Tidak
sama dengan
sebanyak satu
awalan?
yang cocok
Ya
Ya
Cek karakter selanjutnya
Tidak
Substring
sama dengan
akhiran?
String kunci
Ya
ditemukan
String kunci
Selesai
tidak ditemukan
Gambar 3.7 Flowchart Algoritma Two Way
Gambar 3.7 menjelaskan algoritma Two way dimulai dengan memasukkan string
kunci dan string sumber. Kemudian Faktorisasi kunci menjadi awalan dan
akhiran. Cek jika substring sama dengan akhiran maka string kunci ditemukan,
Universitas Sumatera Utara
34
jika substring tidak sama dengan akhiran maka geser substring sebanyak karakter
yang cocok.
3.5 Perancangan Antarmuka Sistem (Interface)
Proses perancangan antarmuka (interface) sebuah sistem adalah proses yang
cukup penting dalam perancangan sebuah sistem. Merancang antar muka
merupakan bagian yang paling penting dari merancang sebuah sistem. Sebuah
antar muka harus dirancang dengan memperhatikan faktor pengguna sehingga
sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk
digunakan oleh pengguna.
3.5.1 Rancangan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat
sistem dibuka. Rancangan Tampilan Splash Screen dapat dilihat pada Gambar
3.8
Kamus
Bahasa
Indonesia
Arab
Gambar 3.8 Rancangan Splash Screen
Keterangan :
1. Splash Screen untuk menampilkan loading progress saat pertama kali
membuka aplikasi.
Universitas Sumatera Utara
35
3.5.2 Rancangan Halaman Utama
Halaman utama terdiri dari ImageView, Search,About dan Exit. Adapun tampilan
dari halaman utama dapat dilihat pada Gambar 3.9
KAMUS Bahasa
Indonesia-Arab
SEARCH
ABOUT
EXIT
Gambar 3.9 Halaman Utama
Keterangan :
1. ImageView berisi Judul Aplikasi
2. Button Searchmenampilkan pencarian kata Politik
3. Button About berisi judul dan pembuat aplikasi
4. Button Exit untuk mengeluarkan user dari aplikasi
Universitas Sumatera Utara
36
3.5.3 Rancangan Halaman Search
Halaman Search berfungsi untuk melakukan pencarian kata pada kamus sesuai
dengan algoritma yang telah dipilih. Adapun tampilan dari halaman search dapat
dilihat pada Gambar 3.10
1
2
Pencarian
Not So Naive
3
Two Way
4
Cari....
Cari
5
Gambar 3.10 Halaman Search
Gambar 3.10 Halaman Search
Keterangan :
1. Toolbar untuk menampilkan judul halaman
2. TabLayout untuk menampilkan pilihan algoritma pencarian
3. EditText untuk menampilkan kata
4. Button untuk mencari kata
5. ListView untuk menampilkan hasil pencarian
Universitas Sumatera Utara
37
3.5.4 Rancangan Halaman About
Halaman About berisi judul dan nama dari pembuat Aplikasi. Adapun tampilan
dari halaman search dapat dilihat pada Gambar 3.11
1
Tentang
PERBANDINGAN ALGORITMA NOT SO NAIVE DAN TWO WAY
PADA KAMUS BAHASA INDONESIA-ARAB
BERBASIS ANDROID
SKRIPSI
NURUL HASANAH
Gambar 3.11 Halaman About
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS
ILMU
KOMPUTER
DAN
TEKNOLOGI
INFORMASI
Gambar
3.11
Rancangan
Tampilan
Pencarian
UNIVERSITAS SUMATERAUTARA
2017
Gambar 3.11 Halaman About
Keterangan :
1.
Toolbar untuk menampilkan judul halaman
2.
ImageView untuk menampilkan judul dan nama pembuat aplikasi.
3.5.5 Rancangan Halaman Exit
Halaman Exit berfungsi untuk mengeluarkan user dari aplikasi. Adapun
tampilan dari halaman exit dapat dilihat pada Gambar 3.12
Universitas Sumatera Utara
38
1
Konfirmasi
2 Apa anda ingin keluar ?
3
Tidak
4
Ya
Gambar 3.12 Halaman Exit
Keterangan :
1. TextView untuk menampilkan teks.
2. TextView untuk menampilkan teks.
3. Button untuk tidak keluar dari aplikasi.
4. Button untuk keluar dari aplikasi.
Universitas Sumatera Utara
39
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan tahapan lanjutan dari analisis dan perancangan
sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman Java dan
menggunakan Software Android Studio. Sistem ini diproses dan dijalankan pada
smarthphone Samsung Galaxy J5. Pada sistem ini terdapat 6 tampilan halaman,
yaitu Halaman Splash Screen, Tampilan Halaman Utama, Halaman Search,
Halaman About, Halaman Fitur, Halaman Exit.
4.1.1 Tampilan Halaman Splash Screen
Halaman Splash Screen merupakan halaman yang pertama kali muncul pada saat
sistem dibuka. Tampilan Halaman Splash Screen dapat dilihat pada Gambar 4.1
Gambar 4.1 Halaman Splash Screen
Universitas Sumatera Utara
40
4.1.2 Tampilan Halaman Utama
Tampilan halaman utama berisi tentang menu Search, About dan Exit. Dimana
pada menu Search, user bisa melakukan pencarian kata pada kamus bahasa
Indonesia-Arab. Pada menu About, user bisa melihat judul dan nama pembuat
aplikasi. Adapun tampilan halaman utama aplikasi dapat dilihat pada Gambar
4.2.
Gambar 4.2 Halaman Utama
4.1.3 Tampilan Halaman Search
Tampilan halaman search berisi tentang algoritma pencarian kata pada kamus
sesuai dengan algoritma yang telah dipilih. Adapun tampilan halaman pencarian
dapat dilihat pada Gambar 4.3. Pada halaman ini, sebelum user melakukan
pencarian, terlebih dahulu user memilih algoritma kemudian mengklik button
cari. Setelah button cari diklik maka hasil pencarian kata akan ditampilkan dan
alert dialog running time.
Universitas Sumatera Utara
41
Gambar 4.3 Halaman Search
4.1.4 Tampilan Halaman About
Tampilan halaman about berisi tentang judul dan nama pembuat aplikasi. Adapun
tampilan halaman about dapat dilihat pada Gambar 4.4.
Gambar 4.4 Halaman About
Universitas Sumatera Utara
42
4.1.5 Tampilan Halaman Profil
Tampilan halaman Profil berfungsi untuk menampilkan photo profil dari pembuat
aplikasi. Adapun tampilan dari halaman Profil dapat dilihat pada Gambar 4.5.
Gambar 4.5 Halaman Profil
4.1.5 Tampilan Halaman Exit
Tampilan halaman exit berfungsi untuk mengeluarkan user dari aplikasi. Adapun
tampilan dari halaman exit dapat dilihat pada Gambar 4.5.
Gambar 4.6 Halaman Exit
Universitas Sumatera Utara
43
4.2 Tampilan Hasil Pencarian Not So Naive
Tampilan teks dan pattern yaitu cocok apabila pattern dan teks cocok. Pada
Gambar 4.7 dapat dilihat hasil pencarian kata pada kamus Bahasa IndonesiaArab menggunakan Algoritma Not So Naive.
Gambar 4.7 Hasil Pencarian Kata Algoritma Not So Naive
Gambar ini menunjukkan bahwa user memasukkan teks yaitu makan ke
aplikasi. Algoritma yang digunakan adalah algoritma Not So Naive. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Terdapat 2 kata makan dalam database. Terdapat toast yang
menunjukkan kata ditemukan dan running time yang diperlukan untuk
mencari kata makan adalah 43 ms.
Tampilan teks dan pattern yaitu tidak cocok apabila pattern dan teks tidak
cocok. Pada Gambar 4.8 dapat dilihat hasil pencarian kata pada kamus
bahasa Indonesia-Arab menggunakan Algoritma Not So Naive.
Universitas Sumatera Utara
44
Gambar 4.8 Hasil Pencarian Kata Algoritma Not So Naive
Gambar ini menunjukkan bahwa user memasukkan teks yaitu jangan ke
aplikasi. Algoritma yang digunakan adalah algoritma Not So Naive. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Tidak terdapat kata jangan dalam database. Terdapat toast
yang menunjukkan bahwa kata tidak ditemukan dan running time yang
diperlukan untuk mencari kata jangan adalah 35 ms.
4.3 Analisis Algoritma Two Way
Tampilan teks dan pattern yaitu cocok apabila pattern dan teks cocok. Pada
Gambar 4.9 dapat dilihat hasil pencarian kata pada kamus bahasa IndonesiaArab menggunakan Algoritma Two Way
Universitas Sumatera Utara
45
Gambar 4.9 Hasil Pencarian Kata Algoritma Two Way
Gambar ini menunjukkan bahwa user memasukkan teks yaitu makan ke
aplikasi. Algoritma yang digunakan adalah algoritma Two Way. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Terdapat 2 kata makan dalam database. Terdapat toast yang
menunjukkan kata ditemukan dan running time yang diperlukan untuk
mencari kata makan adalah 50 ms.
Tampilan teks dan pattern yaitu tidak cocok apabila pattern dan teks tidak
cocok. Pada Gambar 4.10 dapat dilihat hasil pencarian kata pada kamus
bahasa Indonesia-Arab menggunakan Algoritma Two Way
Universitas Sumatera Utara
46
Gambar 4.10 Hasil Pencarian Kata Algoritma Two Way
Gambar ini menunjukkan bahwa user memasukkan teks yaitu jangan ke
aplikasi. Algoritma yang digunakan adalah algoritma Two Way. Aplikasi
melakukan pencocokan string dan menampilkan semua teks yang cocok
dengan database. Tidak terdapat kata jangan dalam database. Terdapat toast
yang menunjukkan bahwa kata tidak ditemukan dan running time yang
diperlukan untuk mencari kata jangan adalah 37 ms.
4.4. Hasil Pengujian
Hasil pengujian dari penelitian ini adalah Running time dari pencarian kata dan
jumlah kata yang ditemukan pada Algoritma Not So Naive dan Algoritma Two
Way yang dilakukan terhadap string yang berbeda. Adapun hasil pengujian dari
kedua Algoritma yang digunakan akan dijelaskan pada Tabel 4.5 dan Tabel 4.6.
Universitas Sumatera Utara
47
Tabel 4.5 Hasil Pengujian Algoritma Not So Naive
No
Pola
Running time
Jumlah kata
(ms)
yang ditemukan
Kejadian
1
Makan
43
2
Kata ditemukan
2
Apa
44
18
Kata ditemukan
3
Ayah
42
3
Kata ditemukan
4
Ibu
42
8
Kata ditemukan
5
Minum
40
1
Kata ditemukan
6
Tidur
41
1
Kata ditemukan
7
Siapa
39
1
Kata ditemukan
8
Ada
48
29
Kata ditemukan
9
jangan
35
0
10
nuha
45
0
Rata-rata
42 ms
Kata tidak
ditemukan
Kata tidak
ditemukan
Tabel ini menunjukkan terdapat 10 pola pengujian pada Algoritma Not So Naive.
Pada masing-masing pola terdapat running time dalam ms yang menunjukkan
waktu pencarian kata. Terdapat 2 jenis kejadian pada masing-masing pola yaitu
kata ditemukan atau kata tidak ditemukan. Dalam pengujian 10 pola, rata-rata
running time untuk algoritma Not So Naive adalah 42 ms.
Universitas Sumatera Utara
48
Tabel 4.6 Hasil Pengujian Algoritma Two Way
Running
Jumlah kata
Time (ms)
yang ditemukan
Makan
50
2
Kata ditemukan
2
Apa
53
18
Kata ditemukan
3
Ayah
54
3
Kata ditemukan
4
Ibu
50
8
Kata ditemukan
5
Minum
58
1
Kata ditemukan
6
Tidur
47
1
Kata ditemukan
7
Siapa
48
1
Kata ditemukan
8
Ada
53
29
Kata ditemukan
9
jangan
37
0
10
nuha
52
0
Rata-rata
50 ms
No
Pola
1
Kejadian
Kata tidak
ditemukan
Kata tidak
ditemukan
Tabel ini menunjukkan terdapat 10 pola pengujian pada Algoritma Two Way.
Pada masing-masing pola terdapat running time dalam ms yang menunjukkan
waktu pencarian kata. Terdapat 2 jenis kejadian pada masing-masing pola yaitu
kata ditemukan atau kata tidak ditemukan. Dalam pengujian 10 pola, rata-rata
running time untuk algoritma Two Way adalah 50 ms.
Universitas Sumatera Utara
49
Dengan diketahui kompleksitas waktu suatu algoritma maka efisiensi program
berdasarkan waktu dapat dibedakan menurut running time-nya runnng time dari
suatu algoritmaa adalah ukuran waktu untuk melaksanakan suatu program sehinga
menghasilkan output pada satu kompiler dan mesin eksekusi tertentu. Running
time sebuah program tergantung beberapa faktor :
1) Input Program.
2) Jumlah Database dalam suatu program.
3) Kualitas dari kompiler yang digunakan untuk kompilasi pada program.
4) kemampuan dan kecepatan mesin yang digunakan untuk eksekusi program
5) kompleksitas algoritma
Setelah mendapatkan Hasil Pengujian dari Tabel 4.5 dan Tabel 4.6 maka dibuat
grafik perbandingan hasil pengujian dari kedua Algoritma tersebut. Grafik dapat
dilihat pada Gambar 4.11
70 y
60
50
40
Not So Naive
30
Two Way
20
x=Pattern
10
y=Running time
0
x
Gambar 4.11 Perbandingan Hasil Running Time Algoritma Not So Naive dan
Algoritma Two Way
Universitas Sumatera Utara
50
Dari grafik diatas hasil running time tiap-tiap kata berbeda dalam suatu algoritma
hal ini dikarenakan inputan program dan kemampuan ataupun kecepatan pada
mesin yang digunakan untuk eksekusi program mempengaruhi kecepatan running
time. Dari grafik diatas dapat dijelaskan bahwa Algoritma Not So Naive
mendapatkan Hasil Running Time yang relatif rendah dibandingkan dengan
Algoritma Two Way. Artinya bahwa Algoritma Not So Naive lebih cepat untuk
pencocokan kata dibandingkan dengan Algoritma Two Way.
4.4.1 Kompleksitas Algoritma Not So Naive
Tabel 4.7 Kompleksitas hasil Algoritma Not So Naive
kode Program
void NSN(char *x, int m, char *y, int n) {
int j, k, ell;
if (x[0] == x[1]) {
k = 2;
ell = 1;
}
else {
k = 1;
ell = 2;
}
j = 0;
while (j b) {
j += k;
k = 1;
*p = j - ms;
} else
if (a == b)
if (k != *p)
++k;
else {
j += *p;
k = 1;
} else {
ms = j;
Eksekusi
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
1
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
Universitas Sumatera Utara
52
j = ms + 1;
k = *p = 1;
} } return(ms); }
if (i > j) {
ell = i;
per = p;
} else {
ell = j;
per = q; }
if (memcmp(x, x + per, ell + 1) == 0) {
j = 0;
memory = -1;
while (j = m) {
i = ell;
while (i > memory && x[i] == y[i + j])
--i;
if (i = 0 && x[i] == y[i + j])
--i;
if (i < 0)
OUTPUT(j);
j += per;
} else
j += (i - ell); } } }
Total Eksekusi
n
n
1
1
1
1
1
1
1
1
1
n
n
n2
n2
n
n
n2
n2
n
n
n
n
n
n
n
1
1
1
n
n
n2
n2
n
n
n2
n2
n
n
n
n
n
2
8n + 53n + 13
Universitas Sumatera Utara
53
Pada tabel ini menunjukkan kompleksitas algoritma yaitu Big O. Tiap-tiap baris
dalam program di eksekusi untuk mengetahui nilai Big O. Apabila tidak terdapat
perulangan maka nilai eksekusi adalah 1, apabila terdapat perulangan maka nilai
eksekusi adalah n, dan apabila terdapat perulangan dalam perulangan maka nilai
eksekusi adalah n pangkat jumlah perulangan yang ada dalam perulangan
tersebut. Dari tabel tersebet dapat diketahui kompleksitas algoritma Two Way
tersebut adalah 8n2 + 53n + 13 dengan kompleksitas = O (n) 2.
Universitas Sumatera Utara
54
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan analisis, perancangan dan pengujian pada aplikasi kamus bahasa Indonesia-Arab
dengan menggunakan algoritma Not So Naive dan Two Way, maka diperoleh beberapa
kesimpulan :
1.
Cara Kerja Algoritma Not So Naive memiliki fase pencarian mengecek teks dan
pola dari kiri ke kanan. Algoritma Not So Naive akan mengidentifiksi terlebih
dahulu dua kasus yang dimana di setiap akhir fase pencocokan pergeseran dapat
dilakukan sebanyak 2 posisi ke kanan.
2.
Cara Kerja Algoritma Two Way memiliki fase pencarian mengecek teks dan pola
dari kiri ke kanan dan kanan ke kiri. Apabila Substring cocok maka geser substring
sebanyak karakter yang cocok. Apabila Substring tidak cocok maka geser substring
sebanyak 1 kali.
3.
Algoritma Not So Naive melakukan pencocokan kata dengan lebih cepat bila
dibandingkan dengan algoritma Two Way. Dalam pengujian 10 pola, rata-rata
running time untuk Not So Naive adalah 42 ms sedangkan Two Way 50 ms.
4.
Hasil kompleksitas untuk algoritma Not So Naive adalah Big O(n) dan
kompleksitas untuk algoritma Two Way adalah Big O(n2).
5.2 Saran
Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan penelitian ini
antara lain :
1.
Pada tulisan bahasa arab sebaiknya mengenal huruf izaiyah terlebih dahulu.
2.
Sistem ini sebaiknya ditambahkan menu baru yang dapat mendengar bacaan
arabnya agar user mengetahui cara bacaannya dengan benar.
3.
Sistem ini sebaiknya ditambahkan menu pengolahan data seperti menu edit,
tambah dan delete agar data dalam aplikasi semakin banyak.
4.
Sistem ini sebaiknya dibandingkan dengan beberapa algoritma String Matching
lainnya, kemudian dibandingkan dengan algoritma sebelumnya yang telah dahulu
dibandingkan.
Universitas Sumatera Utara