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