• Tidak ada hasil yang ditemukan

Implementasi Algoritma Knuth-Morris Prattstring Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Knuth-Morris Prattstring Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android"

Copied!
101
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH

STRING MATCHING UNTUK MENCARI KATA ATAU

ISTILAH PADA KAMUS KOMPUTER

BERBASIS ANDROID.

SKRIPSI

INDAH MUSTIKA TANJUNG

121421004

PROGRAM STUDIEKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER

BERBASIS ANDROID.

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

Oleh :

INDAH MUSTIKA TANJUNG 121421099

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA KNUTH-MORRIS

PRATTSTRING MATCHING UNTUK MENCARI

KATA ATAU ISTILAH PADA KAMUS KOMPUTER

BERBASIS ANDROID.

Kategori : SKRIPSI

Nama : INDAH MUSTIKA TANJUNG

Nomor Induk Mahasiswa : 121421004

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Januari 2015

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, ST, M.Kom Drs. Agus Salim Harahap, M.Si NIP. 19790904 200912 1 002 NIP. 19540828 198103 1 004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA KNUTH-MORRIS PRATHSTRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA

KAMUS KOMPUTER BERBASIS ANDROID.

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa

kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan,

(5)

PENGHARGAAN

Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha

Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat

untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer

Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah

membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun

tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi

penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin

mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku

Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer

dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu

Komputer Universitas Sumatera Utara dan sebagai Dosen Pembanding I yang

telah memberikan kritik dan saran dalam penyempurnaan skrisi ini .

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu

Komputer Universitas Sumatera Utara.

5. Bapak Drs. Agus Salim Harahap, M.Siselaku Dosen Pembimbing I yang telah

memberikan kritik dan saran dalam penyempurnaan skripsi ini.

6. Bapak Ade Candra, ST, M.Kom selaku Dosen Pembimbing II yang telah

memberikan kritik dan saran dalam penyempurnaan skripsi ini.

7. IbuDian Rachmawati, M.Komselaku Dosen Pembanding II yang telah

(6)

8. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer

Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera

Utara.

9. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan

mendukung serta adik- adik tersayang Habib, Putri, Pipin, Tita

10. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk

2012, teman-teman D3 Mipa teruntuk M. Iqbal dalam diskusi pembuatan

program. Dan adik-adik junior yang telah memberikan semangat dan

menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak

dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi

ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena

itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat

membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita

semuanya.

Medan, Februari 2015

Penulis,

( Indah Mustika Tanjung )

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA

(7)

ABSTRAK

Kamusadalahbukuacuan yang digunakan manusia untuk menerjemahkan suatu bahasa/istilah asing. Pada umumnya disusun menurut abjad berikut keterangan tentangmaknanya, pemakaiannya, atau terjemahannya. Demikian halnya dengan kamus istilah komputer sangat diperlukan dalam menerjemahkan istilah komputer. Begitu banyak metode algoritma yang dapat digunakan dalam pembuatan aplikasi kamus, salah satunya dengan menggunakan algoritma Knuth Morris Pratt (KMP). Dengan algoritma ini, setiap teks yang akan diterjemahkan akan ditinjau kata-kata untuk kemudian dicari kecocokannya dengan kata padanan dalam istilah yang diinginkan. Dalam kajian ini penulis akan melakukan analisa sekaligus uji coba terhadap penerapan algoritma Knuth Morris Pratt ini dalam aplikasi kamus istilah komputer pada smartphone Android. Didapatkan hasil dengan menggunakan Algoritma Knuth Morris Pratt bahwa aplikasi ini dapat membantu pengguna gadget untuk mencari kata atau istilah pada kamus komputer berbasis Android.

Kata-kata Kunci : Algoritma, String Matching, Knuth-Morris-Pratt (KMP), Kamus, Android.

(8)

TO FIND THE WORD OR TERM ON ANDROID BASED COMPUTER DICTIONARY

ABSTRACT

Dictionary is a reference book that we used to translate a language / foreign terms. Generally, the following is alphabetical with description of its meaning, its use, or its translation. Similarly, the dictionary of computer terms is needed in translating the computer term. So many methods of algorithms that can be used in the making of an dictionary application, one of them by using the algorithm of Knuth Morris Pratt (KMP). With this algorithm, any text that we translated will be reviewed by words then searched for compatibility with the word equivalent in terms desired. In this study the authors will perform an analysis and a tests on the application of this Knuth Morris Pratt algorithm in computer terms dictionary app on Android smartphone. Is obtained by using the algorithm of Knuth Morris Pratt that this application can help users gadget to search for words or terms in the dictionary of computer -based Android .

(9)

DAFTAR ISI

halaman

Persetujuan ii

Pernyataaan iii

1.6. Metodologi Penelitian 4

1.7. Sistematika Penulisan 5

BAB 2. TINJAUAN PUSTAKA 6

2.1. Definisi Algoritma 6

2.1.1. Algoritma 6

2.2. String 7

2.2.1. StringMatching 7

2.2.2. Algoritma Knuth Morris Pratt StringMatching 8

2.2.3. Fungsi Pinggiran 8

2.2.4. Fungsi Pembanding String 10

2.2.5. Klasifikasi Pencocokan String 12

2.3. Mobile Device 14

2.4. Android 15

2.4.1. Sejarah Android 15

2.4.2. Pengertian Android 16

2.4.3. Versi Android 16

2.4.4. Arsitektur Android 18

2.5. Database 19

2.5.1. Menggunakan Format CSV 19

2.6. Kamus 21

BAB 3. ANALISIS DAN PERANCANGAN SISTEM 22

3.1. Analisis System 22

3.1.1. Analisis kebutuhan Sistem 23

3.2. Analisis Kebutuhan Sistem 23

(10)

3.2.2. Kebutuhan Non-Fungsioanal 24

3.3. Pemodelan Sistem 24

3.3.1. Use-Case Diagram 24

3.3.2. Activity Diagram 25

3.3.3. Sequence Diagram 31

3.4. Perancangan Sistem 32

3.4.1. Flowchart System 33

3.4.2. Flowchart Algoritma Knuth Moriis Pratt 34 3.5. Perancangan Antarmuka Sistem (Interface) 36

3.5.1. Halaman Utama 36

3.5.2. Rancangan Halaman Cari Kata 38 3.5.3. Rancangan Halaman Tambah Kata 40 3.5.4. Rancangan Halaman Tentang 41

3.5.5. Rancangan Halaman Bantuan 42

BAB 4. IMPLEMENTASI DAN PENGUJIAN 43

4.1. Pengujian Sistem 43

4.2. Implementasi Sistem 54

4.2.1. Halaman Utama 55

4.2.2. Halaman Cari kata 55

4.2.3. Halaman Tambah Kata 57

4.2.4. Dataset .csv 58

4.2.5. Halaman Tentang 60

4.2.6. Halaman Bantuan 62

Kompleksitas Waktu Algoritma PROMETHEE 86

BAB 5. KESIMPULAN DAN SARAN

5.1. Kesimpulan 64

5.2. Saran 64

(11)

DAFTAR TABEL

halaman

(12)

DAFTAR GAMBAR

halaman

Gambar 2.1. AndroidArchitecture 25

Gambar 3.1. Diagram Ishikawa Untuk Analisis Masalah 28 Gambar 3.2. Use Case Algoritma Knuth Morris Pratt 28 Gambar 3.3. Activity Diagram Panjang Teks dan Pattern 29 Gambar 3.4. Activity Diagram Proses Awal Menemukan Karakter 30 Gambar 3.5 Activity Diagram Menghitung Nilai Pergeseran Karakter 31 Gambar 3.6. Activity Diagram Membandingkan Karakter Per Karakter 32

Gambar 3.7. Activity Diagram System 33

Gambar 3.8. Sequence System Pada Kamus komputer 35

Gambar 3.9. Flowchart System 36

Gambar 3.10. Flowchart Proses KMP 37

Gambar 3.11. Rancangan Halaman Utama 39

Gambar 3.12. Rancangan Halaman Cari Kata 40 Gambar 3.13. Rancangan Halaman Tambah Kata 42 Gambar 3.14. Rancangan Halaman Tentang Aplikasi 43 Gambar 3.15. Rancangan Halaman Bantuan Aplikasi 44 Gambar 4.1. Perbatasan r, s dari a string x 47

Gambar 4.2. Perpanjangan Perbatasan 47

Gambar 4.3. Awalan Panjang i Dari Pola Dengan Batas Lebar b[i] 48 Gambar 4.4. Batas Panjang m Dari Awalan x pt 49 Gambar 4.5. Pergeseran Pola Ketika Ketidakcocokan Pada Posisi j Terjadi 50 Gambar 4.6. Hasil Pencarian Menggunakan Algoritma KMP 55

Gambar 4.7. Halaman Utama 57

Gambar 4.8. Contoh Fungsi Autocomplete 58

Gambar 4.9. Tambah Kata 59

Gambar 4.10. Penyimpanan Kata Istilah Komputer 60

Gambar 4.11. Tentang Aplikasi Komputer 63

(13)

TO FIND THE WORD OR TERM ON ANDROID BASED COMPUTER DICTIONARY

ABSTRACT

Dictionary is a reference book that we used to translate a language / foreign terms. Generally, the following is alphabetical with description of its meaning, its use, or its translation. Similarly, the dictionary of computer terms is needed in translating the computer term. So many methods of algorithms that can be used in the making of an dictionary application, one of them by using the algorithm of Knuth Morris Pratt (KMP). With this algorithm, any text that we translated will be reviewed by words then searched for compatibility with the word equivalent in terms desired. In this study the authors will perform an analysis and a tests on the application of this Knuth Morris Pratt algorithm in computer terms dictionary app on Android smartphone. Is obtained by using the algorithm of Knuth Morris Pratt that this application can help users gadget to search for words or terms in the dictionary of computer -based Android .

(14)

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Lahirnya teknologi informasi komputer dan fasilitas pendukungnya seperti layanan

internet saat ini membuat perkembangan yang sangat luas. Segala informasi-informasi

dapat didapatkan begitu cepat membuat jarak dan waktu tidak menjadi masalah.

Namun disamping itu masih jarang ditemukan aplikasi yang dapat mempermudah

proses translasi kata.

Dalam kaitannya dengan translasi kata maka diperlukan pencarian berdasarkan

frase atau kata, pada umumnya perangkat lunak yang ada menggunakan teknik String

matching(pencarian yang bersifat tepat). Teknik tersebut sangat sesuai jika

pemakai perangkat lunak benar dalam mengetikkan frase atau kata yang akan

dicari. AlgoritmaString Matching merupakan algoritma yang digunakan untuk

mempercepat proses pencarian kata yang diinginkan. Proses pencocokan String(String

matching) yang merupakan bagian dalam proses pencarian Stringmemegang peranan

penting untuk mendapatkan dokumen yang sesuai dengan kebutuhan informasi. Hasil

dari pencarian sebuah Stringdalam dokumen tergantung dari teknik atau cara

pencocokan Stringyang digunakan.

String matching yaitu untuk mencari kesamaan antara teks dan Pattern yang

telah ada. Salah satu Algoritma pencocokan kata yang di gunakan yaitu algoritma

Knuth Morris Pratt, Algoritma ini dapat memelihara informasi yang digunakan untuk

melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk

membuat pergeseran angka lebih jauh. Dengan algoritma Knuth Morris Pratt ini,

(15)

Sangat banyak alat yang dapat membantu manusia terutama dibidang

komunikasi, salah satunya adalah kamus. Kamus terdiri dari berbagai macam fungsi,

salah satunya adalah untuk mengartikan kata atau kalimat dari satu bahasa ke bahasa

lain. Tidak hanya itu saja, akan tetapi kamus juga memiliki fungsi untuk mengartikan

sebuah istilahtertentu yang umumnya bermuatkan bahasa asing. Untuk mencari kata

atau istilah di dalam sebuah kamus umumnya dengan cara manual yakni mengetikkan

semua kata yang ingin dicari, dan proses pengetikan kata harus lengkap sesuai dengan

kata atau istilah yang ingin dicari. Sehingga mereka menggunakan browser dan

terhubung oleh internet untuk mengakses setiap kosakata yang baru. Hal ini sangat

memakan banyak waktu karena harus mencari kata perkata dalam search engine pada

browser.

Android adalah sistem operasi yang bersifat open source (terbuka). Disebut open

source karena source code dari sistem operasi android dapat dilihat, di-download,

dimodifikasi secara bebas. Dan sistem operasi dapat diilustrasikan sebagai jembatan

antara piranti (device) dan penggunanya, sehingga pengguna dapat berinteraksi

dengan device-nya dan menjalankan aplikasi-aplikasi yang tersedia pada device.

Dari uraian di atas, maka penulis memilih judul yaitu “IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATTSTRING MATCHINGUNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER BERBASIS ANDROID”.

1.2.Rumusan Masalah

Berdasarkan uraian pada latar belakang di atas, rumusan masalah yang akan dibahas

adalah

1. Bagaimana merancang dan membangun aplikasi yang dapat mendukung

pencarian istilah komputer dengan metode AlgoritmaKnuth Morris

PrattStringMatching berbasis Android.

2. Apakah pencarian istilah komputer menggunakan tehnik Knuth Moriss

PrattStringmatching dapat membantu pemakai untuk mencari kata istilah

(16)

1.3. Batasan Masalah

Agar tidak terjadi penyimpangan masalah yang akan dibahas, maka permasalahan

dibatasi sebagai berikut :

1. Algoritma yang digunakan adalah Knuth Morris Pratt String Matching.

2. Perancangan aplikasi menggunakan simulator eclipse versi 4.4 (luna).

3. Menggunakan Handphone Android versi 4.1 (Jelly Bean).

4. Perangkat lunak dibuat dengan menggunakan bahasa pemrograman Java 8.

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah:

1. Membangun sebuah aplikasi kamus untuk istilah komputer menggunakan

Algoritma Knuth Morris Pratt String Matching berbasis Android.

2. Untuk memperoleh sebuah perangkat lunak dalam pengelolaan sistem pencarian

istilah komputer.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah sebagai berikut:

1. Penelitian ini diharapkan menghasilkan implementasi dan manfaat dalam

pembuatan sistem berbasis Android menggunakan Algoritma Knuth Morris Pratt

String Matching. Sehingga Mobile Application Developers lebih mudah untuk

membuat dan mengembangkan aplikasi mobile untuk semua jenis Android.

2. Penelitian ini diharapkan memudahkan pengguna gadget dalam pencarian istilah

(17)

1.6 Metodologi Penelitian

Dalam proses pengerjaan skripsi ini penulis menggunakan beberapa tahapan metode

penelitian, yaitu:

a. Studi Literatur

Mempelajari literatur tentang teori dasar yang mendukung penelitian ini yaitu

Kecerdasan buatan menggunakan Metode Algoritma Knuth Morris PrattString

Matching

b. Analisis dan Pengumpulan Data

Pada tahap ini dilakukan analisis kebutuhan aplikasi yang akan dibuat, seperti

memperoleh data dengan cara mencari informasi tentang bagaimana cara

membuat database di Sistem operasi Android dan melakukan Pengumpulan Kata

Istilah Komputer.

c. Perancangan Sistem

Pada tahap ini hasil analisis akan menjadi dasar perancangan aplikasi sistem

pendukung keputusan pemilihan sistem operasi pada komputer. Rancangan sistem

dibuat menggunakan Unified Modeling Language(UML) dalam bentuk use case

diagram, activity diagram, dan sequence diagram. Pada tahap ini juga dilakukan

perancangan interface dari aplikasi dan flowchart cara menggunakan sistem.

d. Implementasi Sistem

Pada tahap ini akan dilakukan pengimplementasian dari rancangan yang telah

dibuat ke dalam bahasa pemrograman Java dengan menggunakan format CSV

sebagai tempat disimpannya kamus komputer.

e. Pengujian

Setelah proses pengkodean selesai maka akan dilakukan proses pengujian

terhadap program yang dihasilkan untuk mengetahui apakah program sudah

berjalan dengan benar dan sesuai dengan perancangan yang dilakukan.

f. Penyusunan Laporan dan Kesimpulan Akhir.

Membuat laporan hasil analisis, perancangan dan kesimpulan akhir ke dalam

(18)

1.7 Sistematika Penelitian

Adapun langkah-langkah dalam menyelesaikan penelitian ini adalah sebagai berikut :

BAB 1 : PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi

“Implementasi Algoritma Knuth-Morris-PrattSring MatchingUntuk

Mencari Kata Atau Istilah Pada Kamus Komputer BerbasisAndroid”,

rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian,

metodologi penelitian, dan sistematika penulisan.

BAB 2 : TINJAUAN PUSTAKA

Bab ini membahas mengenai teori-teori yang berkaitan dengan perancangan

aplikasi kamus untuk mencari istilah komputer berbasis Android.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan analisis yang dilakukan terhadap permasalahan dan

penyelesaian persoalan dalam menggunakan kamus berbasis Android

dengan mengimplementasikan Algoritma Knuth Morris PrattString

Matching untuk mencari istilah komputer.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi perancangan sistem dari hasil analisis dan

perancangan yang sudah dibuat, serta menguji sistem untuk menemukan

kelebihan dan kekurangan pada sistem yang dibuat.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan

saran-saran yang diharapkan dapat bermanfaat dalam pengembangan

(19)
(20)

BAB 2

TINJAUAN PUSTAKA

2.1. Definisi Algoritma

2.1.1 Algoritma

Istilah algoritma (algorithm) berasal dari kata “algoris” dan “ritmis”, yang pertama

kali diungkapkan oleh Abu Ja’far Mohammed Ibn Musa al Khowarizmi (825 M)

dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman algoritma

didefenisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian

langkah yang terstruktur dan dituliskan secara matematis yang akan dikerjakan untuk

menyelesaikan suatu masalah dengan bantuan komputer.(Jogiyanto, 2005)

Terdapat beberapa defenisi yang diberikan untuk kata algoritma antara lain:

a) Algoritma adalah sekelompok aturan untuk menyelesaikan perhitungan yang

dilakukan oleh tangan atau mesin.

b) Algoritma adalah langkah demi langkah sebuah prosedur berhinggga yang

dibutuhkan untuk menghasilkan sebuah penyelesaian.

c) Algoritma adalah urutan langkah-langkah perhitungan yang

mentrasformasikan dari nilai masukan menjadi keluaran.

d) Algoritma adalah urutan operasi yang dilakukan terhadap data yang

terorganisasi dalam struktur data.

e) Algoritma adalah sebuah program abstrak yang dapat dieksekusi secara fisik

oleh mesin.

f) Algoritma adalah sebuah model perhitungan yang akan dilakukan oleh

(21)

2.2String

String dalam ilmu komputer dapat diartikan dengan sekuens dari karakter. Walaupun

sering juga dianggap sebagai data abstrak yang menyimpan sekuens nilai data, atau

biasanya berupa bytes yang mana merupakan elemen yang digunakan sebagai

pembentuk karakter sesuai dengan encoding karakter yang disepakati seperti ASCII,

ataupun EBCDIC.

Hubungan string dengan tulisan ini adalah bahwa karakteristik dari musik

yang akan disimpan dalam database dapat dianggap serupa dengan string. Hal ini

akan memudahkan desainer dalam membangun sistem pencocokan audio dari sampel

audio yang akan dikonversi terlebih dahulu menjadi serupa dengan string ataupun

deretan bytes. Konversi inilah yang nantinya akan dibandingkan langsung dengan

informasi karakteristik yang disimpan dalam database.

2.2.1.String Matching

String matching adalah pencarian sebuah patternpada sebuah teks (Ronald L. Rivest

dkk. 1994). Prinsip kerja algoritma string matching adalah sebagai berikut:

1. Memindahkan teks dengan bantuan sebuah window yang ukurannya sama dengan

panjang pattern.

2. Menempatkan window pada awal teks.

3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah

pencocokan (baik hasilnya cocok atau tidak cocok), dilakukan shift ke kanan pada

window. Prosedur ini dilakukan berulang-ulang sampai window berada pada

akhir teks. Mekanisme ini disebut mekanisme sliding-window. (Rama, 2013).

Algoritma string matching mempunyai tiga komponen utama, yaitu:

1. Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan

dengan x[0..m-1], panjang patterndinyatakan dengan m.

2. Teks, yaitu tempat pencocokan patterndilakukan, dinyatakan dengan y[0..n-1],

panjang teks dinyatakan dengan n.

3. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan

(22)

2.2.2 Algoritma Knuth Morris Pratt String Matching

Algoritma Knuth Morris Pratt merupakan salah satualgoritma yang sering digunakan

untuk menyelesaikan masalah pencocokan string. Algoritma ini adalah

penyempurnaan dari algoritma pencocokan string dengan menggunakan algoritma

brute force. Pada algoritma bruteforce, setiap kali ditemukan ketidak cocokan

patterndengan teks, maka patternakan digeser satu ke kanan. Sedangkan pada

algoritma Knuth-Morris-Pratt, kita memelihara informasi yang digunakan untuk

melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk

membuat pergeseran angka lebih jauh, tidak hanya satu karakter seperti pada

algoritma brute force. Dengan algoritma Knuth Morris Pratt ini, waktu pencarian

dapat dikurangi secara signifikan. Algoritma Knuth Morris Pratt ini dikembangakan

oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt.

Algoritma Knuth-Morris-Prath memelihara informasi yang digunakan saat

melakukan pergeseran. Informasi ini digunakan untukmelakukan pergeseran yang

lebih jauh, tidak seperti brute force yangmelakukan pergeseran perkarakter.

Pergeseran dilakukan berdasarkan suffix kesamaan suffix dan prefix dalam pattern dan

yang ditemukan di dalam teks.Dalam algoritma Knuth Morris Pratt ini kita akan

menemui beberapa definisi yang nantinya akan digunakan dalam algoritma ini.

2.2.3 Fungsi Pinggiran

Algoritma Knuth Morris Pratt melakukan proses awal atau preproccesing terhadap

pattern P dengan menghitung fungsi pinggiran (dalam literatur lain menyebut fungsi

overlap, fungsi failure, dsb) yang mengindikasikan pergeseran s terbesar yang

mungkin dengan menggunakan perbandingan yang dibentuk sebelum pencarian

string. Fungsi pinggiran hanya bergantung pada karakter-karakter di dalam pattern,

dan bukan pada karakter-karekter di dalam teks yang dicari. Oleh karena itu, kita

dapat melakukan perhitungan fungsi awalah sebelum pencarian string dilakukan.

(23)

merupakan akhiran dari P[1..j]. Sebagai contoh, tinjau pattern P = abcabd. Nilai F

untuk setiap karakter di dalam P adalah sebagai berikut.

Tabel 2.1 Fungsi Pinggiran Untuk Pattern abcabd

j 1 2 3 4 5 6

P(j) A b c a b d

B(j) 0 0 1 1 2 0

Di bawah ini adalah algoritma untuk menghitung fungsi pinggiran.

procedure HitungPinggiran

(input m : integer, P : array[1..m] of

char,output b : array[1..m] of integer)

{ Menghitung nilai b[1..m] untuk

pattern P[1..m] }

Fungsi tersebut akan menghasilkan output berupa array integer yang merupakan

angka-angka pinggiran untuk setiap posisi iterasi pada pattern. Barulah kemudian

(24)

2.2.4 Fungsi Pembandingan String

Kemudian cara untuk melakukan pencocokan stringdengan menggunakan algoritma

Knuth Morris Pratt adalah sebagai berikut. Misal kita akan mencocokan teks T =

abcabcabd dan kita mempunyai patternP = abcabd. 123456789

Teks = abcabcabd

Pattern = abcabd

Mula-mula kita hitung fungsi pinggiran dari pattern P tersebut. Fungsi

pinggiran P = abacabd tertera seperti table 1 di atas. Kemudian lakukan

langkah-langkah berikut. Samakan ujung kiri pattern dengan ujung kiri teks. Karakter-karakter

pada karakter 1-5 sama, tetapi pada posisi ke 6 tidak sama. Hal itu karena karakter ke

6 pada teks yaitu c tidak sama dengan karakter ke 6 pada patternyaitu d. Untuk

mencocokan kembali, kita harus menggeser pattern. Jika dalam brute force kita akan

menggeser pattern 1 karakter ke kanan. Namun jika menggunakan algoritma Knuth

Morris Pratt jumlah pergeseran patternditentukan oleh pinggiran dari awalan P yang

bersesuaian. Pada contoh di atas, awalan yang bersesuaian adalah abcab, dengan

panjang l = 5. Pinggiran terpanjang untuk string P[1..5] adalah ab yang panjangnya

adalah b(5) = 2. Jarak pergeseran adalah l – b = 5 – 2 = 3. Jadi, pattern P digeser

sejauh 3 karakter dan perbandingan dilakukan mulai pada posisi j = 3 dihitung dari

awalpattern. ( Kukuh, 2013 ).

j 1 2 3 4 5 6

Telah itu kita kembali membandingkan karakter per karekter seperti di proses

sebelumnya sampai kita menemukan teks yang sama dengan pattern hingga karakter

(25)

procedure KMPsearch(input m,n:integer,

input P : array[1..m] of char,input T :

array[1..n] of char, output idx :

integer)

{

Mencari kecocokan pattern P di dalam

teks T dengan algoritma Knuth-Morris-

Pratt. Jika ditemukan P di dalam T,

lokasi awal kecocokan disimpan di dalam

peubah idx.

Masukan: pattern P yang panjangnya m

dan teks T yang panjangnya n.

Teks T direpresentasika

sebagai string (array of character)

Keluaran: posisi awal kecocokan

(idx). Jika P tidak ditemukan, idx = -

1.

}

Deklarasi

i, j : integer

ketemu : boolean

b : array[1..m] of integer

procedure HitungPinggiran(input m :

integer, P : array[1..m] of char,

output b : array[1..m] of integer)

{ Menghitung nilai b[1..m] untuk

pattern P[1..m] }

Algoritma:

HitungPinggiran(m, P, b)

j 0

i 1

(26)

while (i n and not ketemu) do

if ketemu then

idx i-m+1 { catatan: jika indeks

array dimulai dari 0, maka idx i-m }

else

idx -1

endif

(Thomas, 2007)

2.2.4 Klasifikasi Pencocokan String

Pencocokan string(string matching) secara garis besar dapat dibedakan menjadi dua

yaitu :

1. Exact string matching, merupakan pencocokan stringsecara tepat dengan susunan

karakter dalam stringyang dicocokkan memiliki jumlah maupun urutan karakter

dalam stringyang sama. Contoh : kata step akan menunjukkan kecocokan hanya

dengan kata step.

2. Inexact string matching atau Fuzzy string matching, merupakan pencocokan

stringsecarasamar, maksudnya pencocokan stringdimanastringyang dicocokkan

memiliki kemiripandimana keduanya memiliki susunan karakteryang berbeda

(mungkin jumlah atau urutannya)tetapi string-stringtersebut memiliki

(27)

kemiripan ucapan(phonetic string matching). Inexact string matching masih dapat

dibagi lagi menjadi dua yaitu :

a. Pencocokan stringberdasarkan kemiripan penulisan (approximate string

matching) merupakan pencocokan stringdengan dasar kemiripan dari segi

penulisannya (jumlahah karakter, susunan karakter dalam dokumen).Tingkat

kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah

stringyang dibandingkan tersebut dan nilai tingkat kemiripan ini ditentukan

oleh pemrogram (programmer).

Contoh : compuler dengan compiler, memiliki jumlahah karakter yang

sama tetapi ada dua karakter yang berbeda. Jika perbedaan dua karakter ini

dapat ditoleransi sebagai sebuah kesalahan penulisan maka dua stringtersebut

dikatakan cocok.

b. Pencocokan stringberdasarkan kemiripan ucapan (phonetic string matching)

merupakan pencocokan stringdengan dasar kemiripan dari segi

pengucapannya meskipun ada perbedaan penulisan dua stringyang

dibandingkan tersebut.

Contoh step dengan step dari tulisan berbeda tetapi dalam pengucapannya mirip

sehingga dua string tersebut dianggap cocok. Contoh yang lain adalah step, dengan

steppe, sttep, stepp,stepe. Exact string matching bermanfaat jika pengguna ingin

mencari stringdalam dokumen yang sama persis dengan stringmasukan. Tetapi jika

pengguna menginginkan pencarian stringyang mendekati dengan stringmasukan atau

terjadi kesalahan penulisan stringmasukan maupun dokumen objek pencarian, maka

inexact string matching yang bermanfaat.

Pada Implementasi Algoritma Knuth Morris Pratt untun mencari kata atau

istilah pada komputer berbasis Android maka masuk dalam klasifikasi pencocokan

stringExact string matching yang merupakan pencocokan stringsecara tepat dengan

susunan karakter dalam stringyang dicocokkan memiliki jumlah maupun urutan

(28)

2.3MobileDevice

MobileDevice merupakan suatu alat yang digunakan olehpemakai untuk meminta

informasi yang dibutuhkan, dimana informasi dapat diberikan dalam bentuk suara,

gambar, dan text. Informasi yang diinginkan dapat dicari melalui fasilitas untuk

mengakses internet seperti GPRS atau wireless. Pada umumnya perangkat

mobileataumobiledevice lebih praktis karena bersifat mudah dibawa (portable)

daripada perangkat teknologi lainnya. (Agus, 2011)

Meningkatnya pemakaian peranti mobile(mobiledevice) telah merevolusi

kegiatan-kegiatan yang bersifat tradisional menjadi lebih sederhana dan mudah

dengan penggunaan perangkat mobile. Mobilitas yang tinggi tidak menjadi

penghalang lagi, karena saat ini peranti mobilesudah dapat mengakses server atau

pusat data. Peranti mobile sekarang tidak hanya berfungsi sebagai pencatat jadwal dan

buku alamat. Fungsi peranti mobile sudah berkembang pesat dan idealnya siap

mengganti dokumen berbasis kertas.Mobiledevice dapat dibagi berdasarkan jumlah

kegunaannya menjadi dua jenis yaitu:

1. Single purpose

Mobiledevice dengan single purpose digunakan untuk satu tujuan saja. contoh:

navigation box yang terdapat pada mobil atau truk pengangkut barang.

2. Multi purpose

Mobiledevice dengan multi purpose dapat digunakan untuk mengakses berbagai

macam informasi yang diinginkan, contoh : Smart phone, handphone, PDA,

Laptop.

Aplikasi kamus komputer yang akan penulis rancang menggunakan

perangkatmobile jenis multi purpose yaitu handphone, di mana handphone yang

(29)

2.4 Android

2.4.1 Sejarah Android

Android adalah sebuah system operasi untuk perangkat mobile berbasis linux yang

mencakup system operasi, middleware dan aplikasi. Android menyediakan platform

yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya,

Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat

peranti lunak untuk ponsel/smartphone . kemudian untuk mengembangkan Android

dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras,

peranti lunak, dan telekomunikasi. Termasuk Google. HTC, Intel, Motorolla,

Qualcomm, T-Mobile, dan Nvidia.

Pada saat perilisan perdana Android, 5 November 2007, Android bersama

Open Hansdset Alliance menyatakan mendukung pengembangan open source pada

perangkat mobile. Di lain pihak, Google merilisa kode-kode Android di bawah lisensi

Apache, sebuah lisensi perangkat lunak dan open platform perangkat selular.

Di dunia terdapat jenis distributor system operasi Android. Pertama yang

mendapat dukungan penuh dari Google atau google Mail Service (GMS) dan kedua

adalah yang benar-benar bebas distribusinya tanpa dukunagan langsung Google atau

dikenal Open Handeset Distribution (OHD).

Sekitar September 2007 Google mengenalkan Nexus One, salah satu jenis

smartphone yang menggunakan Android sebagai system operasinya. Telepon selular.

Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program

kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek

Computer Inc, Garmin Ltd, Softbank. Sony Ericsson, Thosiba Corp, dan Vodafone

Group Pls. seiring pembentukan Open Handset alliance, OHA mengumumkan produk

perdana mereka android, perangkat mobile yang merupakan modifikasi kernel Linux

2.6. sejak android dirilis telah dilakukan berbagai pembaharuan berupa perbaikan bug

(30)

2.4.2 Pengertian Android

Android adalah sebuah system operasi untuk Smartphone dan Tablet. System operasi

dapat diilustrasikan sebagai ‘jembatan’ antara piranti (device) dan penggunanya,

sehingga pengguna bisa berinteraksi dengan device-nya dan menjalankan

aplikasi-aplikasi yang tersedia pada device. Android merupakan system operasi yang bersifat

open source (sumber terbuka) disebut open source karena source code (kode sumber)

dari system operasi Android dapat dilihat, di-download, dan dimodifikasi secara

bebas. Paradigm open source ini memudahkan pengembangan teknologi Android,

karena semua pihak yang tertarik dapat memberi konstribusi, baik pengembangan

system operasi maupun aplikasi. (Alfa, Eva, 2014)

2.4.3 Versi Android

Dengan semakin pesatnya perkembangan dari dunia telekomunikasi, disertai juga

dengan perkembangan aplikasi dari Android dengan beberapa pembaharuan estetis

pada aplikasinya dan dilengkapi dengan fitur-fitur lainya sehingga memungkinkan

terpenuhinya kebutuhan manusia dalam dunia telekomunikasi. Beberapa versi

Android yang telah berkembang saat ini adalah:

a. Android Versi 1.0

Versi pertama Android dirilis pada 23 september 2008 dan digunakan pada

HTC Dream. (Nazruddin, 2011)

b. Android versi 1.1

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini

dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search

(pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

(Nazruddin, 2011)

c. Android versi 1.5 (Cupcake)

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini

dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search

(pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

(31)

d. Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian

yang lebih baik dibanding sebelumnya, penggunaan baterai indicator dan

kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna

untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang

dintegrasikan; CDMA / EVDO, 802.1x, VPN , Gestures, dan Text-to-speech

engine, kemampuan dial kontak, teknologi text to change speech tidak tersedia

pada semua ponsel, pengadaan resolusi VWGA. (Nazruddin, 2011)

e. Android versi 2.0/2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi

2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware,

peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan

dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2

MP, digital Zoom, dan Bluetooth 2.1. (Nazruddin, 2011)

f. Android versi 2.2 (Froyo: Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan.

Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan

Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat,

intergrasi V8 JavaScript engine yang dipakai Google Chrome yang

mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam

SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto-update

dalam aplikasi Android Market. (Nazruddin, 2011)

g. Android versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan.

Perubahan-perubahan umum yang didapat dari Android versi ini antara lain

peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste,

layar antar muka (User Interface) didesain ulang, dukungan format video VP8

dan Webcam, efek audio baru (reverb, equalization, headphone virtualization,

dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan

dukungan jUMLah kamera yang lebih dari satu. (Nazruddin, 2011)

(32)

Pada tanggal 22 Februari 2011, android Honeycomb diluncurkan kepasar , dan

hanaya digunakan untuk Tablet. Dan tablet pertama yang menggunakan

Honeycomb yaitu Motorolla Xoom.

i. Android versi 4.0 (Ice Cream Sandwitch)

Pada tanggal 19 Oktober 2011, android meluncurkan Ice Cream Sandwitch.

Versi ini dapat bekerja secara optimal baik di Smartphone maupun tablet. (Alfa

& Eva 2014).

j. Android versi 4.1 (Jelly Bean)

Pada tanggal 9 Juli 2012 Android Jelly Bean diluncurkan untuk meningkatkan

apa yang sudah tersedia di Ice Cream Sandwitch, dengan memperbaiki bug-bug

dan menambah fitur-fitur. (Alfa & Eva 2014)

k. Android versi 2.0/2.1 (Eclair)

Tanggal 3 September 2013, diumumkan versi Android selanjutnya adalah

Android Kit Kat. Android sudah mendapat izin dari Nestle dan Hershey selaku

pemilik merek dagang Kit Kat. Sebelum pengumuman ini, banayak yang

berspekulasi bahwa versi Android berikutnya akan diberi nama Key Lime Pie.

.(Alfa & Eva 2014).

2.4.4. Arsitektur Android

Dengan menyediakan sebuah platform pengembangan yang terbuka, pengembang

Android menawarkan kemampuan untuk membangun aplikasi yang sangat kaya dan

inovatif. Pengembang bebas untuk mengambil keuntungan dari perangkat keras, akses

informasi lokasi, menjalankan background services, mengatur alarm, tambahkan

pemberitahuan ke status bar, dan banyak lagi. Android bergantung pada Linux untuk

layanan sistem inti seperti keamanan, manajemen memori, manajemen proses,

network stack, dan model driver. Kernel juga bertindak sebagai lapisan abstraksi

antara hardware dan seluruh software stack. AndroidArchitecture berisi kernel-kernel

application, application framework, libraries, Android runtime, dan linux kernel yang

(33)

Gambar 2.1. AndroidArchitecture

2.5 Database

2.5.1 Menggunakan Format CSV

Walaupun ada berbagai spesifikasi dan implementasi untuk Format CSV (untuk ex.

[4], [5], [6] dan [7]), tidak ada yang formal spesifikasi yang ada, yang memungkinkan

untuk berbagai macam interpretasi dari file CSV. Bagian ini mendokumentasikan

format yang tampaknya akan diikuti oleh sebagian besar implementasi:

1. Setiap record terletak pada baris terpisah, dibatasi oleh garis istirahat

(CRLF). Sebagai contoh:

aaa, bbb, ccc CRLF

zzz, yyy, xxx CRLF

2. Catatan terakhir dalam file mungkin atau mungkin tidak memiliki garis akhir

istirahat. Sebagai contoh:

aaa, bbb, ccc CRLF

zzz, yyy, xxx

3. Ada mungkin sebuah baris header opsional muncul sebagai baris pertama dari

file dengan format yang sama sebagai garis catatan yang normal. IniHeader

akan berisi nama sesuai dengan bidang dalam file dan harus berisi jumlah yang

(34)

harus ditunjukkan melalui opsional "header" parameter ini Tipe MIME).

Sebagai contoh: nama_kolom, nama_kolom, nama_kolom CRLF

aaa, bbb, ccc CRLF

zzz, yyy, xxx CRLF

Dalam header dan setiap record, mungkin ada satu atau lebih bagian, yang dipisahkan

dengan koma. Setiap baris harus berisi sama sejumlahah bidang di seluruh file. Ruang

dianggap sebagai bagianlapangan dan tidak boleh diabaikan. Bidang terakhir dicatatan

tidak boleh diikuti oleh koma. Sebagai contoh:

aaa, bbb, ccc

4. Setiap bidang mungkin atau mungkin tidak diapit tanda kutip ganda

(namunbeberapa program, seperti Microsoft Excel, tidak menggunakan tanda

kutip ganda sama sekali). Jika bidang tidak tertutup dengan tanda kutip ganda,

maka tanda kutip ganda mungkin tidak muncul dalam bidang. Sebagai contoh:

"aaa", "BBB", "ccc" CRLF

zzz, yyy, xxx

5. Bidang mengandung jeda baris (CRLF), tanda kutip ganda, dan koma harus

tertutup dalam tanda kutip ganda. Sebagai contoh:

"aaa", "b CRLF

bb "," ccc "CRLF

zzz, yyy, xxx

6. Jika tanda kutip ganda digunakan untuk melampirkan bidang, maka

double-kutipanmuncul di dalam lapangan harus melarikan diri dengan mendahului

dengankutipan ganda lain. Sebagai contoh:

(35)

2.6 Kamus

Berikut pengertian kamus menurut beberapa ahli dan sebuah situs, yaitu:

1. Kamus merupakan khazanah perbendaharaan kata suatu bahasa yang

menggambarkan tingkat peradaban bangsa pemiliknya. (Alwi, 2003).

2. Kamus adalah buku yang berisi keterangan tentang arti kata-kata.

(Poerwadarminta, 2005)

Kamus adalah buku acuan yang memuat kata dan ungkapan yang biasanya disusun

(36)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Masalah utama yang diangkat dari penelitian ini adalah Bagaimana merancang dan

membangun aplikasi yang dapat mendukungpencarian istilah komputer dengan

metode AlgoritmaKnuth Morris PrattString Matching berbasis Android.

Gambar 3.1. merupakan diagram Ishikawayang dapat digunakan untuk

menganalisis masalah.Bagian kepala atau segiempat yang berada di sebelah kanan

merupakan masalah. Sementara di pada bagian tulang merupakan penyebab.

Gambar 3.1 Diagram Ishikawa Untuk Analisis Masalah

Sistem pembuatan kamus istilah komputer ini menggunakan Unified Modeling

Language (UML). Sistem yang akan dibangun menggunakan Eclipse yang

(37)

operasi mobile yang dalam hal ini sistem akan dikembangkan untuk perangkat

Android.

Dalam Model UML ini akan digambarkan beberapa pemodelan dari sistem

yang akan dibangun. Dari pemodelan requirement, pemodelan Analysis dan

pemodelan Design. Tool yang digunakan untuk menggambarkan model UML adalah

Umlet.

3.2.Analisis Kebutuhan Sistem

Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis kebutuhan

sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu:

kebutuhan fungsional dan kebutuhan non-fungsional.

3.2.1. Kebutuhan Fungsional

Kebutuhan fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh

sistem. Kebutuhan fungsional sistem yang akan dirancang antara lain sebagai berikut:

1. Sistem harus menyediakan Versi Android yang sudah ditentukan untuk

menginstal aplikasi Kamus Berbasis Android

2. Sistem dapat melakukan pencarian untuk mencari istilah atau kata pada

komputer agar mendapatkan informasi kata tersebut dengan

mengimplementasikan algoritma Knuth Morris PrattString Matching.

3. Sistem dapat menyediakan tempat untuk menambahkan kosa kata yang baru

sehingga pengguna aplikasi dapat menyimpan kata atau istilah yang

berhubungan dengan komputer.

4. System dapat memberi informasi bantuan terhadap penggunakan aplikasi

(38)

3.2.2. Kebutuhan Non-Fungsional

Kebutuhan non-fungsional merupakan deskripsi dari beberapa fitur, karateristik, dan

batasan suatu sistem. Kebutuhan Non-Fungsional dari sistem adalah:

1. Mudah digunakan (User friendly) yaitu Sistem yang akan dibangun harus user

friendly, artinya bahwa sistem mudah digunakan oleh user dengan tampilan

(interface) yang sederhana dan mudah dimengerti.

2. Menjadi Referensi yaitu Sistem yang akan dibangun diharapkan mampu menjadi

referensi bagi user untuk mencari istilah komputer serta dapat menambahkan

istilah komputer yang belum terdapat pada database istilah.

3. Pelayanan Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih

kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut

sehingga solusi yang diberikan lebih efektif.

4. Tampilan antarmuka sistem dapat dengan mudah dimengerti oleh pengguna

sistem.

5. Perangkat lunak yang dibangun akan menampilkan pesan not founduntuk setiap

kata istilah yang tidak tersimpan dalam databasenya.

3.3. Pemodelan Sistem

Pemodelan sistem yang dirancang penulis bertujuan menggambarkan kondisi dan

bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan sistem

dilakukan dengan membuat use-case diagram, activity diagram dan sequence

diagram.

3.3.1. Use-Case Diagram

Use case merupakan fungsionalitas dari suatu sistem, sehingga customeratau

pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan

dibangun.Use case berperan menggambarkan interaksi antar komponen-komponen

yang berperan dalam sistem yang akan dirancang. Use case pada gambar 3.2

menjelaskan aksi yang dapat dilakukan oleh user, user dapat melakukan pencarian

(39)

kamus komputer serta dapat menambahkan kosa kata istilah baru pada aplikasi kamus

komputer.

,Gambar 3.2 Use Case Algoritma Knuth morris pratt

3.3.2. Activity Diagram

Activity diagram merupakan salah satu cara memodelkan event-event yang terjadi

dalam use case. Pada diagram ini secara ensensial mirip dengan diagram alir

(Flowchart), memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya.

Activity diagram berfungsi untuk menvisualisasikan, menspesifikasi, mengkonstruksi,

serta mendokumentasikan sifat dari sekumpulan objek, selain itu juga dapat digunakan

memodelkan aliran kendali dari suatu operasi. Seperti tampak pada gambar gambar

(40)
(41)
(42)
(43)
(44)
(45)

Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama

3.3.3. Sequence Diagram

Sequence Diagram ialah interaksi antar objek dalam sebuah system yang biasa

digunakan untuk menggambarkan scenario atau rangkaian langkah-langkah yang

dilakukan sebagai respon dari sebuah event uuntuk menghasilkan output tertentu.

Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja

yang terjadi secara internal dan output apa yang dihasilkan. Seperti pada gambar 3.8: Name Activity Diagram Activity diagram System

Actors User

Deskripsi Activity ini mendeskripsikan proses System pada Aplikasi Kamus Komputer

Prakondisi Sudah Masuk ke tampilan utama Bidang Khas Suatu

Kejadian

Kegiatan User Respon system 1. Memilih menu tombol

2. Menekan tombol cari kata

3. Menginputkan istilah yang ingin dicari

4. Menekan tombol tambah kata

5. Menambahkan arti dan kata yang baru

6. Menekan tombol tentang

7. Menekan tombol

bantuan.

1. System menampilkan halaman yang dipilih 2. System akan melakukan

searching pada dataset 3. Tampilkan arti istilah

pada kamus komputer 4. Menyimpan kosa kata

yang baru.

5. Kembali pada tampilan utama

(46)

Gambar 3.8Sequence System Pada Kamus Komputer

Dari keterangan diatas dapat digambarkan dengan sequence diagram mengenai

informasi sistem yang berjalan saat ini, sehingga dengan diagram ini dapat

menggambarkan pergerakan sebuah objek dan pesan yang terjadi di dalam sistem

penyampaian informasi

3.4. Perancangan Sistem

Berdasarkan gambaran dari hasil analisis proses maka dibangun suatu model

(47)

3.4.1. Flowchart System

(48)

Keterangan :

Pada gambar 3.9 dijelaskan mengenai Menu Utama Aplikasi. User dapat masuk

melalui halaman menu utama dan melakukan pilihan di aplikasi kamus tersebut. User

dapat memilih melakukan pencarian istilah komputer, user dapat menambahkan kata

baru untuk dimasukkan ke Kamus komputer, user juga dapat melihat informasi

bantuan terkait aplikasi kamus tersebut dan user juga dapat mengetahui cara

penggunakan kamus tesebut.

3.4.2. Flowchart Algoritma Knuth morris pratt

Pada gambar 3.10. merupakan penjelasan dari algoritma Knuth Morris Pratt,

flowchart ini menjelaskan bagaimana metode Knuth Morris Pratt mendapatkan output

yang berupa posisi karakter yang cocok. Terlihat pada gambar, metode knuth Morris

Pratt menyimpan nilai pergeseran dalam variable (i), pergeseran dilakukan sebanyak

(49)

Gambar 3.10. Flowchart Proses Knuth morris pratt

tidak

ya tidak

Input pattern yang akan dicari Array s

Selama (in) PanjangKarakter Pattern s(m) dan

panjang karakter teks w(n)

Jika (s[q+1]==w[i+1])

Proses Geser Pola ke Kanan

(50)

3.5.Perancangan Antarmuka Sistem

Untuk rancangan antar muka dari sistem yang akan dibangun menggunakan bahasa

pemograman Java. Sistem akan dibangun menggunakan compiler Eclipse Luna

dengan Android SDK. Handphone digunakan untuk menampilkan antar muka yang

responsive (menyesuaikan dengan display perangkat, tempat aplikasi berjalan). Antar

muka menggunakan 1 Menu Utama dan 4 halaman setiap antar muka :

Menu Utama

1.1Cari (System pencarian Istilah komputer)

a. Pencarian

b. Tambah kata

c. Kembali

1.2Tambah Kata ( sistem untuk menambahkan istilah baru)

a. Simpan (melakukan penyimpanan kata dan artinya)

b. Kembali (kembali ke menu utama)

1.3Tentang (Menjelaskan mengenai pembuat aplikasi)

a. Kembali

1.4Bantuan (Menjelaskan mengenai penggunaan aplikasi)

a. Kembali

3.5.1. Halaman Utama

Halaman utama merupakan tampilan awal yang menampati nama dari project program

tersebut, ketika program dijalankan pada handphone ataupun pada emulator. Setelah

tampil Dimana halaman utama ini terdiri dari beberapa tombol, yaitu tombol cari,

tombol tambah kata, tombol tentang dan tombol About . Tampilan rancangan halaman

utama dapat dilihat pada Gambar 3.11.

Untuk melakukan pencarian, masukkan pada tombol cari kata kemudian pilih

menu kemudian akan muncul halaman dari pilihan menu.Tampilan rancangan

(51)

Gambar 3.11 Rancangan Halaman Utama

Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama

NO. Jenis Objek Keterangan

1 Nama aplikasi

(Edit Teks)

Judul Aplikasi yang akan dirancang.

2 Nama halaman utama

Edit Teks

Sub judul aplikasi

3 Tombol cari Berisi halaman pencari

4 Tombol tambah kata Berisi halaman tambah kata

5 Tombol tentang Menu yang berisi sekilas tentang aplikasi

(52)

Keterangan :

Untuk dapat menjalankan program pada emulatoreclipse atau handphone, terlebih

dahulu harus membuat Android SDK dan AVD Manager, setelah selesai kemudian

create AVD, kemudian buat project baru pada eclipse kemudian tentukan Project

Name, Applicationa Name, Package Name, Create Activity dan Min SDK Version,

setelah selesai diisi semuanya kemudian finish. Selanjutnya setelah selesai

pembentukan projectpada eclipse kemudian dimulai dengan pengetikan program.

Sebelum memulai pengetikan, terlebih dahulu atur pathpenyimpanan dan tentukan

nama file dari proyek yang telah dibuat sebelumnya pada eclipse. Setelah selesai

pengetikan kemudian simpan ke filedan buka kembali eclipse untuk menjalankan

program

3.5.2. Rancangan Halaman Pencarian Kata

(53)

Halaman Pencarian Kata ini yang akan kita gunakan untuk mendapatkan istilah

komputer dengan menggunakan metode algoritma Knuth-Morris-Pratt yang

membantu untuk mencari kata lebih cepat. Karena algoritma ini melakukan

pergeseran lebih cepat untuk membaca karakter yang dicari .

Disini menggunakan Auto Complete Text View yang berfungsi untuk memberi

pilihan yang kita cari. Contohnya, jika kita mengetikkan satu kata pada google.com.

saat masih mengetikkan beberapa huruf, google akan otomatis memberi beberapa

pilihan untuk kita pilih, sehingga tidak perlu lagi mengetik secara lengkap.

Tabel 3.2. Keterangan Bagian-Bagian Rancangan Halaman Pencarian Kata

NO. Jenis Objek Keterangan

1 Nama Aplikasi

Teks view

Judul aplikasi yang dibuat

2 Kolom kata

(Edit Teks)

Tempat melakukan pencarian kata

3 Tombol cari Tombol ini akan melakukan pencarian

menggunakan menggunakan Algoritma String

Matching yang akan mencari databasenya dengan

fotmat .csv

4 Tombol tambah kata Tombol ini akan ke halaman tambah kata yang

akan masuk ke format .csv

(54)

3.5.2. Rancangan Halaman Tambah Kata

Halaman ini Pengguna Aplikasi akan dapat menambahkan sendiri Kosa Kata

yang baru agar memperkaya Istilah yang terdapat dalam Aplikasi Kamus

Komputer.

Gambar 3.13 Rancangan Halaman Tambah Kata

Tabel 3.3. Keterangan Bagian-Bagian Rancangan Tambah Kata

NO. Jenis Objek Keterangan

1 Teks View Keterangan nama pada kolom kata

2 Kolom kata

(Edit Teks)

Tempat melakukan pencarian kata

3 Tombol cari Tombol ini akan melakukan pencarian

4 Tombol simpan Tombol ini akan melakukan penyimpanan ke dalam

format .csv

(55)

3.5.2. Rancangan Halaman Tentang

Rancangan halaman Tentang ini berfungsi menampilkan informasi tentang

Aplikasi Kamus Komputer. Rancangan About dapat dilihat pada Gambar 3.14.

Gambar 3.14. Rancangan Halaman Tentang Aplikasi

Tabel 3.4. Keterangan Bagian-Bagian Rancangan Tentang Aplikasi

NO. Jenis Objek Keterangan

1 Teks view Judul halaman tentang

2 Edit Teks Keterangan pada halaman tentang

(56)

3.6.4. Rancangan Halaman Bantuan

Rancangan Halaman Bantuan ini akan menginformasikan bagaimana cara

menggunakan Aplikasi Kamus komputer tersebut kepada setiap pengguna yang

akan mencari kata atau istilah komputer.

Gambar 3.15. Rancangan Rancangan Tampilan Bantuan

Tabel 3.5. Keterangan Rancangan Tampilan Bantuan

NO. Jenis Objek Keterangan

1 Teks view Judul halaman Bantuan

2 Edit Teks Keterangan pada halaman Bantuan

(57)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Pengujian Sistem

Pencarian istilah dalam kamus komputer dirancang akan menggunakan algoritma

string matching sebagai solusi dalam pencarian istilah berdasarkan isi Kamus,

berhubung isi kamus komputeryang sangat banyak, maka sangat sulit untuk

merealisasikan penyajian arti dari istilah berdasarkan isi Kamus komputer secara

keseluruhan karena terbatasnya ukuran layar handphone yang berbasis Android. Oleh

karena itu pada implementasi algoritma string matching untuk pencarian istilah dalam

kamus komputer diharapkan dapat menyelesaikan masalah tersebut, dimana dalam

algoritma string matching penyajian arti dari istilah lebih sedikit karena adanya proses

seleksi sampai ditemukan istilah berdasarkan isi kamus itu sendiri dengan

menggunakan kata kunci.Dalam algoritma string matching, pencarian string

dirumuskan sebagai berikut:

1. Sebuah teks(text), yaitu sebuah long string yang panjang n karakter

2. Pattern, yaitu sebuah string dengan panjang m karakter (m<n) yang akan dicari

dalam text.

Dalam algoritma pencocokan string, teks diasumsikan berada dalam memori,

sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu

dibaca terlebih dahulu kemudian disimpan didalam memory. Jika pattern muncul

lebih dari sekali didalam teks, maka pencarian hanya akan memberikan keluaran

berupa lokasi pattern ditemukan pertama kali.

Algoritma Knuth , Morris dan Pratt memanfaatkan informasi yang diperoleh

dengan perbandingan simbol sebelumnya. Ini tidak pernah kembali membandingkan

simbol teks yang telah cocok simbol pattern.Ada beberapa definisi yang perlu

dipahami pada algoritma ini: Misalkan A adalah alfabet dan x = x1x2…xk adalah

(58)

Awalan (prefix) dari x adalah upa-string (substring) u dengan

u = x1x2…xj – 1 , j є{1, 2, …, k}

dengan kata lain, x diawali dengan u.

Akhiran (suffix) dari x adalah upa-string(substring) u dengan

u = xj – b xj – b + 1 …xk , j є {1, 2, …, k}

dengan kata lain, x di akhiri dengan v.

Pinggiran (border) dari x adalah upa-string r sedemikian sehingga

r = x1x2…xj – 1

dan

u = xj – b xj – b + 1 …xj , j є {1, 2, …, k}

dengan kata lain, pinggiran dari x adalah upastring yang keduanya awalan dan juga

akhiran sebenarnya dari x.

Misalkan A adalah alfabet dan x = x0 ..., bilangan elemen k - 1 xk

serangkaian panjang k atas A. Sebuah awalan x adalah substring u dengan u = x0 ...

xb - 1 di mana b elemen {0 , ... , k} yaitu x dimulai dengan u. Sebuah akhiran x adalah

substring u dengan u = xk - b ... xk - 1 di mana b elemen {0 , ... , k}

yaitu x berakhir dengan u.

Sebuah awalan u x atau akhiran u x disebut awalan yang tepat atau akhiran,

masing-masing, jika equalx Unot, yaitu jika panjang b kurang dari k.

Sebuah perbatasan x adalah r substring dengan r = x0 ... xb - 1 dan r = xk - b ... xk - 1

di mana b elemen {0 , ... , k - 1}

Sebuah perbatasan x adalah substring yang baik awalan yang tepat dan akhiran yang

tepat x. Kami menyebutnya panjangnya b lebar perbatasan.

Contoh: Misalkan x = Abacab. Awalan yang tepat x adalah ε, a, ab, aba, Primero, abaca

Akhiran yang tepat x adalah ε, b, ab, taksi, ACAB, bacab Perbatasan x adalah

(59)

Perbatasan ε memiliki lebar 0, perbatasan ab memiliki lebar 2. The string kosong ε selalu perbatasan x, untuk semua x elemen A +. String kosong ε sendiri tidak memiliki

perbatasan.

Contoh berikut menggambarkan bagaimana jarak pergeseran algoritma Knuth -

Morris - Pratt ditentukan dengan menggunakan gagasan perbatasan string.

contoh :

0 1 2 3 4 5 6 7 8 9...

a b c a b c a b d

a b c a b d

a b c a b d

Simbol pada posisi 0,...,4 telah dicocokkan. Perbandingan c - d pada posisi 5

menghasilkan ketidakcocokan. Pattern bisa digeser oleh 3 posisi, dan perbandingan

yang kembali pada posisi 5.

Jarak pergeseran ditentukan oleh perbatasan terluas dari awalan pencocokan

p. Dalam contoh ini , awalan pencocokan abcab , panjangnya j = 5. Perbatasan terluas

adalah ab lebar b = 2. Jarak shift j - b = 5-2 = 3.

Pada tahap preprocessing, lebar perbatasan terluas setiap awalan dari pattern

ditentukan. Kemudian pada tahap pencarian, jarak pergeseran dapat dihitung sesuai

dengan awalan yang cocok .

Teorema : Biarkan r, s menjadi perbatasan string x, di mana | r | < | s |. Maka r adalah

perbatasan s.

Bukti : Gambar 1 menunjukkan string x dengan batas r dan s. Karena r adalah awalan

dari x, juga merupakan awalan yang tepat s, karena lebih pendek dari s. Tetapi r juga

merupakan akhiran x dan, oleh karena itu, akhiran yang tepat s. Dengan demikian r

adalah perbatasan s

(60)

Definisi: Misalkan x berupa string dan elemen A simbol . Sebuah r perbatasan x dapat

diperpanjang oleh , jika ra adalah perbatasan xa .

Gambar 4.2. Perpanjangan Perbatasan

Gambar 4.2 menunjukkan bahwa r perbatasan j lebar x dapat diperpanjang oleh , jika

xj = a .

Pada tahap preprocessing array b panjang m + 1 dihitung . Setiap entri b [ i ] berisi

lebar perbatasan terluas awalan panjang i dari pattern ( i = 0 , ... , m ) . Karena ε

awalan panjang i = 0 tidak memiliki perbatasan , dan menetapkan b [ 0 ] = -1 .

Gambar 4.3 : Awalan panjang i dari pattern dengan perbatasan lebar b [ i ]

Asalkan nilai b [ 0 ], ... , b [ i ] sudah diketahui, nilai b [ i + 1 ] dihitung dengan

memeriksa jika perbatasan p0 awalan ... pi - 1 dapat diperpanjang oleh simbol pi. Hal

ini terjadi jika pb [ i ] = pi ( Gambar 4.3 ). Perbatasan untuk diperiksa diperoleh dalam

urutan menurun dari nilai b [ i ], b [ b [ i ] ] dll

Algoritma preprocessing terdiri dari lingkaran dengan j variabel mengambil nilai-nilai

ini. Sebuah perbatasan lebar j dapat diperpanjang oleh pi, jika pj = pi. Jika tidak,

perbatasan berikutnya terluas diperiksa dengan menetapkan j = b [ j ]. Loop berakhir

(61)

Setelah meningkatkan j oleh pernyataan j++ dalam setiap kasus j adalah lebar

perbatasan terluas dari p0 ... pi. Nilai ini ditulis untuk b[ i + 1 ] (b [ i ] setelah

meningkat i dengan pernyataan i ++).

Proses Algoritma

while (j>=0 && p[i]!=p[j]) j=b[j]; // karakter berikutnya yang tidak cocok

i++; j++;// karakter berikutnya yang tidak cocok

b[i]=j;

}

}

Contoh : Untuk patternp = ababaa lebar dari perbatasan dalam array b memiliki nilai

berikut . Misalnya kita telah b [ 5 ] = 3 , karena ababa awalan panjang 5 memiliki

perbatasan lebar 3

.

j: 0 1 2 3 4 5 6

p[j]: a b a b a a

b[j]: -1 0 0 1 2 3 1

Secara konseptual , algoritma preprocessing di atas dapat diterapkan pada string pt

bukan p . Jika sampai batas lebar m dihitung saja, maka perbatasan m lebar beberapa

awalan x pt sesuai dengan perbandingan dari pattern di t (asalkan perbatasan tidak

self- overlapping ) ( Gambar 4.4 ) .

(62)

Hal ini menjelaskan kesamaan antara algoritma preprocessing dan algoritma pencarian

berikut .

Pencarian Algoritma

void kmpSearch()

{

int i=0, j=0;

while (i<n) // memindai teks dari kiri ke kanan

{

while (j>=0 && t[i]!=p[j]) j=b[j]; // karakter berikutnya yang tidak cocok

i++; j++; // karakter berikutnya yang tidak cocok

if (j==m) // Apakah semua Pattern cocok?

{

report(i-j);

j=b[j];

}

}

}

Keterangan :

Ketika di saat loop ketidakcocokan pada posisi j terjadi ,perbatasan terluas dari awalan

pencocokan panjang j dari parttern dianggap (Gambar 4.5). Melanjutkan perbandingan

pada posisi b [j], lebar perbatasan, menghasilkan pergeseran daripattern sehingga

perbatasan cocok. Jika lagi ketidakcocokan terjadi, perbatasan berikutnya terluas

dianggap, dan seterusnya, sampai tidak ada batas kiri (j = -1) atau simbol berikutnya

perbandingan. Kemudian kita memiliki awalan pencocokan baru dari pattern dan

(63)

Gambar 4.5 : Pergeseran Pattern Ketika Ketidakcocokan Pada Posisi j Terjadi

Jika semua simbol m dari pattern telah dicocokkan jendela teks yang sesuai (j = m),

laporan fungsi disebut untuk melaporkan perbandingan di posisi ij. Setelah itu, pattern

digeser sejauh perbatasan terluas memungkinkan.

Pada contoh berikut perbandingan yang dilakukan oleh algoritma pencarian

yang ditampilkan, di mana perbandingan diambil dalam warna hijau dan

ketidaksesuaian merah.

Contoh pada aplikasi pada kamus Komputer :

Teks : FAST ETHERNET

Pattern : THER

Teks :

F A S T E T H E R N E T

(64)

T H E R

Langkah 1:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[1], maka digeser satu langkah ke kanan.

Langkah 2:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[2], maka digeser 1 karakter ke kanan.

Langakah 3:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[3], maka Pettern digeser satu karakter ke kanan.

Langkah 4:

F A S T E T H E R N E T

T H E R

T H E R

T H E R

(65)

Pattern[1] cocok dengan Teks[4], maka dilanjutkan membandingkan Pattern[2]

dengan Teks[5].

Langkah 5:

F A S T E T H E R N E T

Pattern[2] ternyata tidak cocok dengan Teks[5]. Maka Pencocokan selanjutnya

dimulai lagi dari Pattern[1] dengan membandingkan Pattern[1] dengan Teks[6].

Langkah 6:

F A S T E T H E R N E T

Pattern[1] cocok dengan Teks[6], maka Patterntidak melakukan pergeseran dan

selanjutnya membandingkan Pattern[2] dengan Teks[7].

Langkah 7:

F A S T E T H E R N E T

Pattern[2] cocok dengan Teks[7], maka dilanjutkan membandingkan Pattern[3]

dengan Teks[8].

Langkah 8:

F A S T E T H E R N E T

Pattern[3] cocok dengan Teks[8], maka dilanjutkan membandingkan Pattern[4]

dengan Teks[9].

T H E R

T H E R

T H E R

Gambar

Gambar 3.1 Diagram Ishikawa Untuk Analisis Masalah
Gambar 3.3.Activity Diagram Pencocokan Panjang Teks dan Pattern
Gambar 3.4.Activity Diagram Proses Awal Menemukan Karakter
Gambar 3.5Activity Diagram Menghitung Nilai Pergeseran Karakter
+7

Referensi

Dokumen terkait

(3) Pelayanan Terpadu pada masing-masing lembaga yang temlasuk dalam sistent pelal'anan terpadu bersilat mengikat instansi, lembaga dan organisasi untuk melakukall

[r]

• Mencari prior art sebanyak-banyaknya yang terkait dengan bidang teknik invensi yang dimintakan perlindungan paten atau akan didaftarkan paten.. • Prior art

Dapat dilihat juga hasil dari peneliti lainnya yang melakukan pemurnian asap cair tempurung kelapa secara redistilasi pada suhu 100-125 o C menunujukkan kadar total fenol sebesar

Dari penelusuran dan penelitian hingga penulisan artikel ini, penulis menemukan identitas Islam yang dipengaruhi kawasan-kawasan tertentu di Indonesia: Islam Nusantara,

Dalam menyusun skripsi ini, digunakan metode penelitian hukum normatif yang bersifat deskriptif, dimana penelitian hukum normatif yaitu penelitian yang menganalisis

Bagian ini umumnya paling banyak di huni oleh hewan hutan hujan tropis.. Harpy eagle Toco toucan Wooly opossum Brazilian tapir Black-crowned antpitta Shrub layer Canopy Emergent

Based on Robert Redfied’s notion of great tradition and little tradition, I want to argue that the festival of Idul Fitri in Java is more happy, cheery, and merry rather than in