Aplikasi kamus Bahasa Dayak Ngaju Indonesia berbasis android menggunakan metode Hash

(1)

i

APLIKASI KAMUS BAHASA DAYAK NGAJU

INDONESIA

BERBASIS ANDROID MENGGUNAKAN METODE HASH

SKRIPSI

Diajukan untuk memenuhi salah satu syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

Henfriyandie

065314057

JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS dan TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(2)

ii

DAYAK NGAJU

INDONESIAN APPLICATION DICTIONARY

BASED ON ANDROID USING HASH METHOD

A THESIS

Presented as Partial Fulfillment of the Requirments To Obtain the Sarjana Komputer Degree

In Informatic Engineering Department

By :

Henfriyandie

065314057

DEPARTEMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA


(3)

iii

HALAMAN PERSETUJUAN

SKRIPSI

APLIKASI KAMUS BAHASA DAYAK NGAJU – INDONESIA

BERBASIS ANDROID MENGGUNAKAN METODE HASH

Oleh : Henfriyandie NIM : 065314057

Telah disetujui oleh :

Dosen Pembimbing Tugas Akhir


(4)

iv

HALAMAN PENGESAHAN SKRIPSI

APLIKASI KAMUS BAHASA DAYAK NGAJU – INDONESIA

BERBASIS ANDROID MENGGUNAKAN METODE HASH

Dipersiapkan dan ditulis oleh : Henfriyandie

NIM : 065314057

Telah dipertahankan di depan Panitia Penguji Pada Tanggal 10 Mei 2013

Dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua JB. Budi Darmawan, S.T., M.Sc. ………

Sekertaris Eko Hari Parmadi, S.Si., M.Kom. ……… Anggota Puspaningtyas Sanjoyo Adi, S.T., M.T. ………

Yogyakarta , ………

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Dekan


(5)

v

HALAMAN PERSEMBAHAN

“If A is success in life, then A = x + y + z. Work

is x; y is

play; and z is keeping your mouth shut “

- Albert Einstein -

Skripsi ini saya persembahkan untuk Tuhan Yesus Kristus. Almarhum Papah di surga, Mamah, 3 Adek saya. Teman hidup saya nanti. Sahabat dalam susah juga duka dan teman teman.


(6)

vi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya orang lain kecuali telah disebutkan dalam kutipan atau daftar pustaka, sebagaimana layaknya karya ilmiah

Yoyakarta, 18 Juli 2013 Penulis,


(7)

vii

PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Henfriyandie

NIM : 065314057

Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas

Sanata Dharma karya ilmiah saya yang berjudul :

Aplikasi Kamus Bahasa Dayak Ngaju – Indonesia Berbasis Android Menggunakan Metode Hash

Berserta perangkat yang diperlukan(bila ada). Dengan demikian saya memberikan kepada

Perpustakaan Universitas Sanata Dharma hak untuk menyimpan mengalihkan dalam bentuk media

lain, mengelola dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan

mempublikasikanya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin

dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai

penulis.

Demikian pernyataan ini saya buat dengan sebenarnya

Dibuat di Yogyakarta

Pada tanggal : 18 Juli 2013

Yang menyatakan,


(8)

viii

ABSTRAK

APLIKASI KAMUS BAHASA DAYAK NGAJU - INDONESIA BERBASIS ANDROID MENGGUNAKAN METODE HASH

Sistem operasi android adalah salah satu sistem operasi mobile phone yang sedang berkembang saat ini. Sistem operasi ini bersifat open source, sehingga aplikasi ini dapat dibuat dan dikembangkan sendiri. Sehingga kita dapat membuat sendiri aplikasi yang dapat membantu kita, contohnya kamus dan aplikasi pembelajaran lainnya.

Pada skripsi penulis ini mencoba memecahkan bagaimana menangani masalah yaitu memanfaatkan teknologi mobile yang mulai berkembang untuk membuat aplikasi kamus yang dapat mempermudah kita dalam mempelajari bahasa dayak Ngaju. Dalam pembuatan aplikasi ini penulis menggunakan metode hash, proses penyusunan kamus pada aplikasi ini menggunakan fungsi hash metode pembagian sisa string (division remainder method) sedangkan untuk penanganan tabrakan pada penyusunan kamus menggunakan metode double hashing. Fungsi Hash bertugas untuk menghitung indeks array yang berasal dari perhitungan kunci (indeks array dari perhitungan kunci disebut kode hash).

Aplikasi yang dibangun tersebut dapat mempermudah melakukan pencarian kata dan padanan kata yang ingin dicari. Hasil pengujian software dengan fungsi hash metode pembagian sisa string dari 2500 data kata, yang terdapat pada kamus Dayak Ngaju – Indonesia dan kamus Indonesia - Dayak Ngaju, terdapat sekitar kurang dari setengah kata dari 2500 kata yang mengalami tabrakan pada saat penyusunan kamus tersebut dari panjang hashtable sebesar 2507. Berdasarkan pengujian dengan mengubah panjang hashtable, jumlah tabrakan semakin berkurang jika panjang


(9)

ix

ABSTRACT

APPLICATION DAYAK NGAJU – INDONESIAN DICTIONARY BASED ON

ANDROID USING HASH METHOD

Android operating system is one of mobile phone operating system that is being developed at this time. This operating systemis open source, so that these applications can be created and independently developed. So we can create our own applications that can helpus. For example, dictionaries Application and other eLearning applications.

In this thesis author is trying to figure out how to handle problems that take advantage of emerging mobile technologies to create a dictionary application that can facilitate us to study Dayak Ngaju language. Within manufacture this application author use hash method, the process of preparing dictionaries application's uses hash function division remainder string method and for collision handling in the preparation of dictionaries using method double hashing. Hash functions assigned to calculate array index are derived from calculations of key (index array from key calculation called the hash code)

Applications built to facilitate searching and matching search terms. Results of software testing with division remainder string hash function method from 2500 words of data contained in Dayak Ngaju dictionaries - Indonesian and Indonesian dictionaries - Dayak Ngaju, There are about less from a half words from 2500 words that in a collision during the preparation of the dictionaries with hashtable length is 2507. Based on testing by changing hashtable length, the amount of collision will decreasing if the length hashtable gets larger.


(10)

x

KATA PENGANTAR

Puji syukur kepada Tuhan Yesus Kristus yang telah memberikan karunia dan

kesempatan sehingga penulis dapat menyelesaikan skripsi dengan judul “Aplikasi

Kamus Bahasa Dayak Ngaju Indonesia Berbasis Android Menggunakan Metode

Hash”

Penyusunan skripsi ini tidak lepas dari semua pihak yang turut memberikan dukungan dan doa, semangat yang sangat bermanfaat bagi penulis. Pada kesempatan ini penulis mengucapkan terima kasih sebesar – besarnya kepada :

1. Bapak Puspaningtyas Sanjoyo Adi S.T.,M.T. Selaku dosen pembimbing senantiasa memberikan masukan dan bantuan dalam membimbing penulis untuk menyelesakan skripsi ini.

2. Segenap dosen Universitas Sanata Dharma yang telah membantu memberikan bekal pengetahuan kepada penulis .

3. Bapak Makikit S.P., MMA(Alm), Ibu Maryatie S.Pd terima kasih atas semngat dan dukunganya serta pejuanganya.

4. Adik – adik yang dengan tulus memberikan perhatian, doa dan dukungan yang sangat besar.(Nani, Melan, Septi).

5. Erita Marlina Naibaho terima kasih atas semangat dan telah membantu saya untuk bangun pagi setiap hari.

6. Anak – Anak telat gaul Kost Monjali, Khususnya Andrew, Igma, Mas Titis, Johanes Calvin dan seluruh sahabat yang tidak dapat penulis sebutkan satu persatu


(11)

xi

7. Teman teman TIM ANDROID Siska, Putri, Itha, Laurin atas kerja sama dan masukan – masukanya

8. Teman teman angkatan 06, terutama Yosefa, Margareta Korlina, Kristi Wahyu, Angga, dan juga Rangga. Terima kasih atas dukungan dan inpirasi semangat kalian

9. Teman teman angkatan 07,08,09, dan anak – anak nongkrong di lab Basis Data Multimedia serta rekan – rekan yang tidak dapat penulis sebutkan atas kesediaanya dalam memberikan masukan, menemani dan mendengarkan keluh kesah dari penulis.

Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada skripsi ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga bermanfaat.

Yogyakarta, 18 Juli 2013

Penulis


(12)

xii

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... vi

PERNYATAAN PERSETUJUAN ... vii

ABSTRAK ... ix

KATA PENGANTAR ... x

DAFTAS ISI ... xii

DAFTAR GAMBAR ... xiii

BAB I PENDAHULUAN ... 1

1.1Latar Belakang Masalah ... 1

1.2Rumusan Masalah ... 2

1.3Batasan Masalah ... 2

1.4Tujuan ... 2

1.5Manfaat ... 3

1.6Metodologi Penelitian ... 3

1.7Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 8

2.1Bahasa Pemrograman Java ... 8

2.2Metode Hash ... 9

2.3Kamus ... 22

2.4Bahasa Dayak Ngaju ... 31

2.5Bentuk Susunan Kamus Bahasa Dayak Ngaju ... 32

2.6Android ... 37

BAB III ANALISIS DAN DESAIN ... 50


(13)

xiii

3.2Fungsi Hash Yang Digunakan ... 51

3.3Pseudocode Metode hash ... 55

3.4Diagram Alir ... 59

3.5Arsitektur Aplikasi ... 61

3.6Use Case Diagram ... 62

3.7Diagram Aktivitas ... 66

3.8Sequence Diagram ... 71

3.9Diagram Kelas ... 76

3.10 Model Desain Antar Muka Aplikasi ... 77

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 86

4.1Spesifikasi Perangkat Keras dan Lunak ... 87

4.2Implementasi Desain Antar Muka ... 88

4.3Implementasi Diagram Kelas ... 88

4.4Pengujian ... 110

BAB V KESIMPULAN DAN SARAN ... 119

5.1Kesimpulan ... 119

5.2Saran ... 120

DAFTAR PUSTAKA ... 122

LAMPIRAN ... 123

Lampiran I ... 123

Lampiran II ... 127


(14)

xiv

DAFTAR GAMBAR

Gambar 2.1 Keungulan Bahasa Pemrograman java ... 9

Gambar 2.2 Contoh Linear Probing ... 14

Gambar 2.3 Contoh Double Hashing ... 16

Gambar 2.4 Metode Chaining ... 18

Gambar 2.5 Karakter ASCII ... 21

Gambar 3.1 Contoh data yang dimasukan ke dalam Tabel Hash ... 53

Gambar 3.2 Struktur Data Hash Table setelah dilakukan proses Double Hashing ... 54

Gambar 3.3 Diagram Alir Penyusunan Kamus Bahasa Dayak Ngaju ... 59

Gambar 3.4 Diagram Alir Penyusunan Kamus Bahasa Indonesia ... 60

Gambar 3.5 Arstektur Aplikasi Kamus Bahasa Dayak Ngaju – Indonesia... 62

Gambar 3.6 Diagram Use Case Kamus ... 63

Gambar 3.7 Diagram Aktifitas Mencari arti kata ... 66

Gambar 3.8 Diagram Aktifitas Mengupdate Database Kamus ... 67

Gambar 3.9 Diagram Aktifitas Menganti Modulu ... 68

Gambar 3.10 Diagram Aktifitas Menganti Konstanta ... 69

Gambar 3.11 Diagram Aktifitas Tampil Tabrakan ... 70

Gambar 3.12 Sequence Diagram Mencari Arti Kata Dayak – Indonesia ... 71

Gambar 3.13 Sequence Diagram Mencari Arti Kata Indonesia – Dayak ... 71

Gambar 3.14 Sequence Diagram Mengupdate Database Kamus ... 72

Gambar 3.15 Sequence Diagram Ganti Modulu ... 73

Gambar 3.16 Sequence Diagram Ganti Konstanta ... 74

Gambar 3.17 Sequence Diagram Tampil Tabrakan Kata Bahasa Dayak ... 75

Gambar 3.18 Sequence Diagram Tampil Tabrakan Kata Bahasa Indonesia ... 75

Gambar 3.19 Diagram Kelas User ... 76

Gambar 3.20 Diagram Kelas Admin ... 77


(15)

xv

Gambar 3.19 Desain Tampilan Kamus ... 79

Gambar 3.20 Desain Tampilan Update ... 80

Gambar 3.21 Desain Tampilan Ganti Modulu ... 81

Gambar 3.22 Desain Tampilan Menu Utama ... 82

Gambar 3.23 Desain Tampilan Kamus ... 83

Gambar 3.24 Desain Tampilan Update ... 84

Gambar 3.25 Desain Tampilan Tentang ... 85

Gambar 4.1 Grafik Tabrakan Kata Dayak Ngaju ... 113


(16)

1

BAB I

PENDAHULUAN

1.1Latar Belakang Masalah

Komunikasi adalah salah satu dari kemampuan alamiah manusia.Kemampuan komunikasi manusia ini kemudian ditunjang oleh alat untuk berkomunikasi yaitu bahasa.Manusia dapat saling berkomunikasi dengan baik apabila menggunakan bahasa yang sama atau saling memahami bahasa yang digunakan satu sama lain. Masalah yang di hadapi dalam berkomunikasi adalah ketika dua orang yang berbeda bahasa dan berkomunikasi dalam bahasa mereka sendiri. Jalan keluarnya adalah dengan belajar mengerti bahasa yang digunakan oleh orang lain tersebut.

Berdasarkan masalah penulis ingin membuat suatu aplikasi Kamus Bahasa

Dayak Ngaju Indonesia yang dapat membantu dapat berkomunikasi

menggunakan bahasa Dayak Ngaju maupun bahasa Indonesia.Bahasa Indonesia dan Bahasa Dayak Ngaju penulis pilih dikarenakan bahasa Indonesia adalah bahasa resmi, sedangkan bahasa Dayak Ngaju adalah pengantar yang digunakan masyarakat Kalimantan Tengah.

Perkembangan teknologi mobile phone tersebut juga diiringi dengan perkembangan teknologi sistem operasi pada mobile phonetersebut.Sistem operasi


(17)

linux.Sistem operasi android bersifat open source, Android menyediakan platform yang terbuka bagi pengembang untuk membuat sendiri aplikasi yangmereka inginkan.Beberapa aplikasi android yang populer banyak di kembangkan sendiri oleh pengembang dan dapat digunakan di sistem operasi mobile phone berbasis android.

Metode Hash adalah salah satu metode yang menggunakan pengalokasian kunci pada proses pencarian, penyimpanan dan penghapusan pada elemen – elemen data.Hash digunakan untuk menyimpan data yang cukup besar pada

Abstract Data Type(ADT) yang di sebutHash Table.

Aplikasi Kamus Bahasa Dayak Ngaju Bahasa Indonesia ini dibuat dengan menggunakan Metode Hash dalam proses penyusunan dan pencarian terjemahan dari katayang akan diterjemahkan. Metode ini akan sangat membantu karena struktur data dalam hash menggunakan pengalokasian kunci dan dengan kunci tersebut kita dapat mencari nilai(value) berdasarkan kunci tersebut.

1.2Rumusan Masalah

Berdasarkan latar belakangmasalah yang ada, dapat disimpulkan rumusan masalah pada tugas akhir ini adalah

1. Bagaimanakah membuat “Aplikasi Kamus Bahasa Dayak Ngaju

Indonesia Berbasis AndroidMenggunakan Metode Hash”?

2. Bagaimana Algoritma Hash dapat memberikan solusi untuk proses


(18)

1.3Batasan Masalah

Batasan masalah yang untuk Tugas Akhir ini adalah sebagai berikut :

a. Program yang dipergunakan untuk aplikasi ini adalah Eclipse Juno 4.0 dan Android SDK Tools.

b. Penulis membatasi bahasa Dayak yang digunakan dalam aplikasi ini, penulis hanya menggunakan bahasa Dayak Ngaju dan Bahasa Indonesia. c. Penulis membatasi jumlah data kata yaitu sebanyak 2500 data kata Bahasa

Dayak Ngaju dan Bahasa Indonesia untuk di teliti.

d. Aplikasi ini akan menangani penterjemahan kata bahasa Indonesia ke dalam Bahasa Dayak Ngaju dan penterjemahan kata dari bahasa Dayak Ngaju ke dalam bahasa Indonesia.

e. Proses pencarian akan menggunakan Metode Hashpada aplikasi kamus bahasa Dayak Ngaju – Indonesia.

f. Proses pencarian akan menggunakan Metode Hash pada aplikasi kamus bahasa Indonesia – Dayak Ngaju.

g. Pengguna/User tidak dapat menambahkan kata baru ke dalam database.

h. Aplikasi ini akan diuji coba dengan menggunakan Smartphone


(19)

1.4Tujuan

Tujuan yang ingin di capai dalam penulisan tugas akhir ini adalah sebagai berikut

1. Membuat “Aplikasi Kamus Bahasa Dayak Ngaju – Indonesia Berbasis Android 2.2 Menggunakan Metode Hash” yang dapat membantu pengguna aplikasi tersebut untuk memahami bahasa Dayak Ngaju secara mudah dan jelas.

2. Melakukan riset untuk mengetahui banyaknya tabrakan kata dalam penyusunan kamus menggunakan metode Hash pada studi kasus Kamus Bahasa Dayak Ngaju - Indonesia

3. Melakukan riset menggunakan metode Hash dalam pembuatan aplikasi kamus bahasa Dayak Ngaju – Indonesia berbasis Android.

1.5Manfaat

Manfaat yang di dapat dari penulisan Tugas Akhir ini adalah sebagai berikut : a. Bagi pengguna

Hasil dari aplikasi ini dapat digunakan sebagai kamus digital berbahasa Dayak Ngaju dan digunakan untuk mempelajari bahasa dayak itu sendiri, b. Bagi penulis

Mendapatkan bahan serta data dalam pembuatan “Aplikasi Kamus Bahasa Dayak Ngaju – Indonesia Berbasis Android Menggunakan Metode Hash” serta mengembangkannya menjadi lebih baik.


(20)

c. Bagi Akademik

Hasil dari penulisan tugas akhir ini dapat digunakan sebagai referensi dalam penyusunan tugas akhir selanjutnya.

1.6Metodologi Penelitian

a. Survei mengenai informasi apa saja yang berkaitan tentang metode

Hashing dan Bahasa Dayak Ngaju tersebut.

b. Studi Litelatur

i. Mempelajari literlatur – literlatur yang dapat membantu dalam membuat Aplikasi ini, seperti buku, majalah, Karya Tulis Ilmiah, dan website – website yang dapat membantu dalam pembuatan aplikasi ini.

ii. Mempelajari kendala – kendala yang akan dihadapi dalam pembuatan aplikasi ini.

iii. Mempelajari pengunaan Eclipse Indigo dan Android SDK Tools. c. Analisa Sistem

Menganalisa kebutuhan sistem dan mengidentifikasi kebutuhan sistem dalam pembuatan aplikasi ini, berdasaikan survei dan studi litelatur yang telah dilakukan sebelumnya.

d. Merancang dan Mengimplementasi

Merancang dan mengimplementasi aplikasi yang akan dibuat agar sesuai dengan yang diharapkan.


(21)

e. Pengujian

Pengujian akan dilakukan aplikasi ini sudah berjalan dengan baik, cepat, akurat, serta membantu masyarakat dalam menterjemahkan bahasa Dayak Ngaju dan bahasa Indonesia.

1.7Sistematika Penulisan

BAB I PENDAHULUAN

Pada bab ini berisi tentang latar belakang masalah, rumusan masalah, tujuan penelitian, batasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Pada bab ini, akan dibahas tentang berbagai landasan teori yang mempengaruhi dan mendasari pembuatan “Aplikasi Kamus Bahasa

Dayak Ngaju – Indonesia Berbasis AndroidMenggunakan Metode Hash

BAB III ANALISIS DAN DESAIN SISTEM

Pada bab ini, penulis akan menjelaskan proses – proses analisa dan

perancangan dari “Aplikasi Kamus Bahasa Dayak Ngaju

Indonesia Berbasis Android Menggunakan Metode Hash”. Analisa sistem meliputi analisa kebutuhan aplikasi, desain aplikasi, Proses


(22)

Aplikasi, Arsitektur Aplikasi, use case diagram dan perancangan aplikasi.

BAB IV IMPLEMENTASI SISTEM DAN ANALISA

Bab ini berisi tentang cara kerja dari perancangan sistem yang telah dibuat, yang meliputi implementasi pembuatan aplikasi, dan implementasi antarmuka(user interface) dari aplikasi yang di buat. Pada bab ini akan disajikan hasil analisa implementasi dari aplikasi yang dibuat dan telah diuji pada pengguna atau user.

BAB V PENUTUP

Bab ini dibahas tentang kesimpulan dari hasil pengujian dan analisa

serta saran –saran yang disampaikan dalam menyempurnakan


(23)

8

BAB II

LANDASAN TEORI

2.1Bahasa Pemrograman Java a. Sejarah Java

Bahasa Pemrograman Java dikembangkan oleh Sun Microsystem pada tahun 1991. Pada awalnya Java bernama Oak(Object Application Kernel), Oak lahir dikarenakan oleh ketidakpuasan seorang insinyur di Sun

Microsystem bernama James Gosling. Ia tidak puas dengan compiler C++

karena dinilai terlalu banyak menghasilkan bug, berbiaya besar, sangat tergantung pada platform, James Gosling kemudian membuat sebuah compiler baru sebagai solusi terhadap sejumlah kelemahan pada C++ tersebut. Pada Januari 1994,nama Oak di rasa kurang komersil dan diganti menjadi Java.

Java memiliki sifat multiplatform, yang artinya java dapat dijalankan pada berbagai platform yang berbeda - beda. Program java yang dibuat bisa dijalankan pada komputer dengan platform yang berbeda, asalkan Java

Virtual Machine sudah terinstal pada platform tersebut. Jika program yang

dibuat pada platform window, maka program tersebut juga dapat dijalankan pada linux, Unix, Machintos dan lain – lain.


(24)

Java juga dapat digunakan untuk membuat program yang berjalan diberbagai mobile device (dengan menggunakan J2ME), PDA, embedded system, dan lain – lain

Gambar di bawah ini memperlihatkan keunggulan dari bahasa pemrograman java.

Gambar 2.1 Keunggulan Bahasa Pemrograman Java

2.2Metode Hash

Sekarang telah banyak algoritma dan metode – metode pencarian yang digunakan untuk pengolahan data, terutama jika data tersebut tersedia dalam jumlah banyak. Salah satu metode yang dipergunakan saat ini adalah Metode

Hash. Metode Hash atau Hashing adalah proses untuk melakukan kalkulasi pencarian posisi dari kunci pada table yang didasarkan pada nilai dari kunci

Java Secure Applications Multiplatform Applications Web Applications

GUI - Based Applications

Distributed networking Applications

Mission - Critical Applications Multithreaded

Applications Object - Oriented


(25)

tersebut (Adam Drozdek, 2008). Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar proses penyimpanan data, pencarian data dan penghapusan data dapat dilakukan dengan cepat. Pada hashing ini terjadi proses menghitung posisi record yang di cari dalam array, bukan membandingkan record yang ada dengan isi array.

Proses untuk mengkonversi nilai kunci (key) ke posisi larik atau array di sebut fungsi hash. Sedangkan array atau larik yang digunakan untuk menyimpan data di sebut table hash.

a. Fungsi Hash

Fungsi Hash (dilambangkan dengan h) bertugas untuk menghitung indeks array yang berasal dari perhitungan kunci (indeks array dari perhitungan kunci disebut kode hash). Untuk mencari kunci di dalam tabel hash kita perlu menghitung kode hash kunci tersebut. Ada beberapa fungsi hash yang banyak digunakan saat ini

1. Metode Pembagian Sisa (Division remainder method)

Metode pembagian sisa menggunakan jumlah lokasi memori yang tersedia sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa bagi. Sisa bagi tersebut adalah nilai hashnya. Secara umum rumus dari fungsi hash ini adalah h(k) = k mod m, k adalah nilai kunci dan m adalah jumlah lokasi memori yang tersedia pada array(larik).


(26)

Fungsi hash ini akan menempatkan record dengan kunci (k) pada lokasi memori yang memiliki alamat (h(k)).

Sebagai contoh, jika kita ingin menempatkan nomor mahasiswa dengan nomor mahasiswa 65314057 ke dalam table hash. Misalkan memori memiliki 100 buah alamat yang masing – masing alamat terdiri

dari 2 karakter : 00…99. Untuk menentukan alamat dari NIM tersebut kita pilih bilangan prima yang dekat dengan 99, misalkan m = 97. Dengan menggunakan fungsi h(k) = k mod m, diperoleh h(65314057) = 77. Dengan demikian, nomor mahasiswa 65314057 akan disimpan dalam alamat 77.

2. Metode Midsquare

Dalam metode ini, kunci yang diketahui dikuadratkan dan nilai tengah dari hasil kuadrat dari kunci tersebut diambil angka tengahnya sebagai alamat. Rumus untuk metode midsquare adalah sebagai berikut :

h(k)= l

nilai l diperoleh dengan menghapus digit – digit angka pada dua sisi dari

k2, dengan catatan bahwa banyak digit di sebelah kiri dan sebelah kanan harus sama. Jika jumlah digit tidak sama, jika tidak sama maka digit


(27)

angka disebelah kiri seolah – olah ditambahkan dengan angka nol. Sehingga menghasilkan alamat yang benar.

Sebagai contoh, ketika ingin menentukan alamat untuk nilai k = 65314057, adalah dengan mengkuadratkan nilai ktersebut kemudian mengambil nilai tengah dari hasil dari k2 tersebut.

k = 65314057

k2= 4265926|04|1799249

h(k) = 04

b. Resolusi Collision(Tabrakan)

Dalam memasukan nilai kunci ke alamat dapat timbul kemungkinan bahwa rekaman(record) dengan nilai kunci yang sama dimasukan pada satu alamat rekaman yang sama. Kita harus memiliki satu cara untuk mengatasi tabrakan yang mungkin terjadi, yang disebut dengan collision resolution. Cara yang baik untuk mengatasi adanya tabrakan antarai lain dengan perbandingan banyaknya data kunci (n) dalam k, dan banyaknya alamat hash(m) dalam

l(array atau larik). Perbandingan ini memiliki rumus, . kemampuan

fungsi hash yang dilengkapi dengan prosedur untuk mengatasi tabrakan diukur dengan adanya perbandingan kunci yang diperlukan untuk mencari alamat dari rekaman yang mempunyai kunci k. efesiensi terhadap faktor beban dan diukur menggunakan dua besaran berikut ini :


(28)

B() = rata – rata probe untuk pencarian yang berhasil

G() = rata – rata probe untuk pencarian yang gagal

1. Open Addressing (Pengalamatan Terbuka)

Di dalam metode pengalamatan terbuka, ketika kunci bertabrakan dengan kunci yang lain. Tabrakan dapat diselesaikan dengan menemukan tabel alamat hash yang kosong. Jika ternyata alamat hash sudah terisi, maka harus dicari alamat lain yang masih kosong. Ada beberapa cara yang digunakan untuk mengatasi tabrakan dengan open addressing sebagai berikut :

a. Linear probing

Cara termudah adalah dengan menggunakan linear probing, yaitu dengan mencari alamat berikutnya yang masih kosong. Dengan rumus :

Keterangan :

h = Index pada table hash

m = Panjang table hash


(29)

Berikut adalah contoh kasus untuk LinearProbing, jika data 7, 13, 25, 27 ingin dimasukan ke dalam table hash dengan m = 13.

Gambar 2.2 Contoh Linear Probing

Tabrakan yang terjadi pada data 39 di indeks 0 diselesaikan dengan bergeser ke indeks 1. Karena indeks 1 juga telah terisi maka data 39 bergeser ke indeks 2. Karena indeks 2 masih kosong maka data 39 dapat dimasukkan.

b. Quadratic Probing

Quadratic Probing mencari alamat baru untuk ditempati

dengan proses perhitungan kuadratik yang lebih kompleks. Tidak ada rumus baku pada quadratic probing. Kita dapat menentukan sendiri rumus yang akan digunakan.

c. Double Hashing

Double hashing adalah salah satu metode pengalamatan terbaik


(30)

permutasi yang dihasilkan mempunyai banyak karakteristik permutasi yang terpilih secara acak(Thomas H. Cormen, 2009).

Double Hashing menggunakan fungsi hash kedua dan

menangani tabrakan dengan menempatkan item di dalam kolom yang tersedia(kosong). Fungsi hash kedua yang digunakan setelah alamat yang didapat dari fungsi hashawal telah terisi. Syarat dari metode ini

adalah ukuran table hashmerupakan bilangan prima, untuk

menghindari siklus pencarian slot yang sama.

Contoh fungsi hash adalah h1 = k mod m, dimana k adalah nilai kunci dan m adalah panjang tablehash. Jika hasil dari h1 mengalami tabrakan kunci pada table hash maka dapat menggunakan fungsi hash kedua

Keterangan :

h2 = Fungsi hash ke – dua

k = Indeks table hash yang mengalami tabrakan

s = Nilai jarak lompatan

m = Panjang table hash


(31)

Dengan s didapat dari rumus berikut :

c adalah konstanta dengan syarat nilai c harus bilangan prima dan lebih kecil dari panjang table hash. Contoh kasus untuk double

hashing adalah sebagai berikut :

Jika data 76, 93, 40, 47, 10, dan 55 ingin dimasukan ke dalam

tablehash dengan m = 7 dan nilai kontanta = 5.

Gambar 2.3 Contoh Double Hashing (Sumber : https://www.cs.washington.edu)

Kelemahan dari open addressing adalah ukuran array(table hash) yang disediakan harus lebih besar dari jumlah data. Selain itu dibutuhkan memori yang lebih besar untuk meminimalkan terjadinya collision.


(32)

Separate Chaining(Pengandengan)

Metode pengandengan merupakan metode lain yang digunakan untuk mengatasi kemungkinan adanya tabrakan alamat hash. Metode ini memanfaatkan senarai berantai yang dipasang pada setiap alamat hash yang diketahui. Pada metode pengandengan ini, jumlah elemen yang dapat disimpan hanya dibatasi oleh kapasistas memori komputer yang tersedia.

Jika kita memiliki sebuah alamat hash lengkap dan senarai menyimpan rekaman – rekaman yang mempunyai alamat hash yang sama, maka kita akan melihat adanya sebuah senarai tunggal berkepala.

Sebagai contoh, jika kita mempunyai rekaman – rekaman yang kunci rekamanya dituliskan sebagai berikut :

35 56 15 50 91 100 28 11 29 79

83 43

Fungsi hash yang digunakan adalah k mod 10. Dengan demikian, alamat hashakan terdiri dari 10 buah alamat yang memiliki nomor 0 sampai 9.


(33)

Gambar dibawah ini menunjukan alamat hash lengkap dengan senarai berantainya untuk menyimpan rekaman - rekaman di atas.

Gambar 2.4 Metode Chaining(Pengandengan)

c. Fungsi Hash Metode Pembagian Sisa Pada String

Penanganan tipe data String pada fungsi hash adalah mengubah nilai karakter pada String diubah menjadi nilai char berdasarkan kode ASCII. Dan dilakukan proses untuk menghitung nilai kunci, dan akan diperoleh nilai kunci yang unik, dari beberapa String yang memiliki karakter kata yang sama tetapi akan di peroleh nilai kunci yang berbeda.

Alamat Hash Rekaman

0 1 2 3 4 5 6 7 8 9 35 56 15 50 91 100 28 11

29 79


(34)

Penanganan ukuran kunci haruslah dilakukan secara hati – hati, hal ini dilakukan untuk membuat ukuran kunci hasil transformasi menjadi tidak terlalu besar sehingga sulit untuk disimpan di memori. Ini dapat diselesaikan dengan memecah kunci transformasi menjadi potongan – potongan nilai, dan kemudian mengkombinasikan potongan – potongan nilai itu (Adi Nugroho, 2008).

Penggunaan fungsi hash pada String menggunakan fungsi hash metode pembagian sisa(Division Remainder) yang diperbaharui dengan menambahkan proses penanganan tipe data String. Fungsi hash metode pembagian sisa(Division Remainder) String tersebut ditunjukan dengan rumus sebagai berikut :

Keterangan :

NK = Nilai Kunci

A = Nilai karakter kata pada String

X = Jumlah keseluruhan karakter pada ASCII yaitu 128

h = Panjang table hash

Pada rumus di atas terlebih dahulu nilai dari karakter kata akan dikalikan dengan X, kemudian akan dilakukan modulu. Nilai dari karakter kata


(35)

yang telah di modulu tersebut akan dikalikan dengan X dan kemudian nilainya akan ditambahkan dengan nilai karakter kata selanjutnya kemudian akan modulukan lagi. Proses tersebut akan terus berlanjut sampai dengan karakter kata habis, Setelah semua proses selesai maka akan didapat hasil dari nilai Kunci dari kata tersebut. Setiap katakter kata sebelum ditambahkan dengan karakter kata selanjutnya akan dikalikan dengan 128, hal tersebut dilakukan untuk mendapatkan nilai karakter yang unik. Dan selesai penambahan karakter kata akan dilakukan modulu panjang table hash, hal tersebut dilakukan agar nilai kunci tidak terlalu besar dari pada panjang table hash.

Untuk mempermudah pemahaman tentang penangangan String di atas, disertakan contoh, jika ada 2 buah kata yaitu kau dan aku. Dua kata tersebut memiliki karakter yang sama. Dengan menggunakan penanganan string biasa kita hanya akan menambahkan nilai karakter kata tersebut(berdasarkan kode ASCII) sehingga menghasilkan nilai dari kata tersebut.


(36)

Gambar 2.5 Karakter ASCII

Untuk Karakter kau memiliki 3 karakter kata yaitu k,a,u. dan untuk aku memiliki 3 karakter kata a,k,u. Jika dilakukan penanganan string dengan biasa akan di dapat hasil sebagai berikut :

Nilai Kata 1 = „k‟+‟a‟+‟u‟, setiap karakter diubah berdasarkan kode ASCII = 107+ 97+ 117

= 321

Nilai Kata 2 = „a‟+‟k‟+‟u‟ setiap karakterdiubah berdasarkan kode ASCII = 97+ 107+ 117

= 321

Dari hasil di atas didapatkan bahwa kedua kata tersebut memiliki nilai kata yang sama sehingga kita di lakukan fungsi hash, maka kedua kata tersebut akan mengalami tabrakan.


(37)

Maka dari itu akan dilakukan penanganan string yang lebih unik yaitu dengan menggunakan rumus di atas, agar nilai String yang dihasilkan menjadi lebih unik.

Nilai Kata 1 = ((((k*128)Mod 13)*128+ a)Mod 13)*128+ u)Mod 13 ( setiap karakter diubah berdasarkan kode ASCII)

= ((((107*128)Mod 13)*128+ 97)Mod 13)*128+ 117)Mod 13

= 3

Nilai Kata 2 = ((((a*128)Mod 13)*128+ k)Mod 13)*128+ u)Mod 13 (setiap karakterdiubah berdasarkan kode ASCII)

= ((((97*128)Mod 13)*128+ 107)Mod 13)*128+ 117)Mod 13

= 11

Dari hasil diatas di dapat bahwa dengan menggunakan penanganan string yang lebih khusus akan menghasilkan nilai kata yang lebih unik.

2.3 Kamus

Kamus secara etimologi, kata kamus berasal dari kata dalam bahasa arab, yaitu qamus. Bahasa Arab menyerap kata qamus dari bahasa yunani kuno,

okeanos, yang berarti lautan. Jika kita mencoba memahami sejarah kata itu maka

jelaslah bahwa kata kamus memiliki makna dasar “wadah pengetahuan”.

Khususnya, pengetahuan bahasa yang tidak terhingga dalam dan luas.

Beberapa pakar telah memberikan definisi mengenai kamus. Di antaranya di sebutkan sebagai berikut;


(38)

[1] Kamus adalah buku referensi yang memuat daftar kata atau gabungan kata dengan keterangan mengenai pelbagai segi maknanya dan penggunaanya dalam bahasa; biasanya disusun menurut abjad(dalam tradisi Yunani – Romawi menurut urutan abjad Yunani – Romawi), kemudian menurut abjad bahasa bersangkutan; dalam tradisi Arab menurut urutan jumlah konsonan (Kridalaksanan. 1982).

[2] Kamus adalah buku berisi kumpulan kata –kata sebuah bahasa yang disusun secara alfabetis diikuti dengan definisi atau terjemahannya dalam bahasa lain (Pirre Labrouse, 1977).

[3] Menurut kamus besar Bahasa Indonesia, kamus adalah buku acuan yang memuat kata, saran dan ungkapan yang disusun menurut abjad berikut keterangan tentang maknanya, pemakainya atau terjemahannya.

Menurut penulis, Kamus adalah kumpulan kata satu bahasa atau lebih yang disusun secara alfabetis beserta dengan arti, definisi ke dalam satu bahasa atau lebih, dan dimuat ke dalam sebuah buku baik dalam bentuk digital dan tertulis.

2.3.1 Fungsi Kamus

Kamus merupakan hasil akhir dari kerja leksikografi adalah himpunan semua kosakata yang ada di dalam suatu bahasa. Berikut di bawah ini adalah fungsi – fungsi praktis dari kamus tersebut :


(39)

(1) Makna Kata

Fungsi sebuah kamus yang pertama adalah menjelaskan makna atau arti sebuah kata. Namun, tidak semua kamus dapat memberikan informasi mengenai makna sebuah kata. Kamus besar atau kamus yang ideal mungin dapat memberi informasi makna semua kata yang ada dalam kamus suatu bahasa, tetapi mungkin juga tidak karena isi kamus terbatas.

(2) Lafal Kata

Sebuah kamus yang ideal juga berfungsi untuk menjelaskan lafal atau ucapan sebuah kata, yang baku atau tidak baik. Pada bahasa – bahasa yang sistem pengejaan katanya tidak ideal seperti bahasa inggris. Maka di dalam kamusnya setiap kata tentu disertai dengan ejaan fonetis untuk menunjukan lafal – lafal kata – kata itu.

(3) Ejaan Kata

Sebuah kamus yang ideal memiliki fungsi memberi petunjuk bagaimana ejaan yang benar dari setiap kata saat ini untuk bahasa

Indonesia, ejaan yang berlaku adalah Ejaan Yang

Disempurnakan(EYD).

(4) Penyukuan Kata

Kamus juga memiliki fungsi agar kita bisa mengetahui suku kata, dengan membuka kamus kita dapat mengetahui suku kata yang kita cari atau ingin kita ketahui pada sebuah kamus. Contohnya :


(40)

- Lab – rak atau la – brak

- Ge – og – ra – fi atau ge – o – gra – fi

Untuk mengetahui pemengalan yang benar, kita dapat melihatnya ke dalam kamus yang ideal.

(5) Kebakuan Kata

Sebuah kamus yang ideal dapat menunjukan mana kata yang baku dan mana pula yang tidak baku, misalnya dengan cara memberi tanda rujuk silang, artinya kata – kata yang tidak baku tetap didaftar sebagai lema, tetapi mengetahui makna dan informasi lainnya.

2.3.2 Cara Penyusunan Kamus

Cara penyusunan kamus terbagi menjadi beberapa tahapan penting sebagai berikut :

1. Perancangan

2. Pembinaan data korpus

3. Pengisian dan Pengabjadan data 4. Pengolahan data

5. Pemberian makna

2.3.3 Berbagai Masalah Dalam Perkamusan a. Tujuan Kamus


(41)

Tujuan dari kamus disusun, menyangkut masalah kamus tersebut ditujukan kepada siapa dan seberapa besar ruang lingkupnya.Jika kamus tersebut di tujukan kepada pemilik bahasa itu sendiri, maka yang akan disusun adalah kamus ekabahasa. Jika kamus tersebut disusun bukan untuk orang yang bukan pemilik bahasa itu, maka yang harus disusun adalah kamus dwibahasa.

Ruang lingkup kamus mengenai seberapa besar lema – lema yang akan dimuat, dan seberapa jauh makna serta definisi yang akan diberikan. Tujuan dari kamus diharapkan dapat memberikan semua informasi berkenaan dengan kosakata suatu bahasa.

b. Korpus Data

Kalau tujuan penyusunan sebuah kamus sudah ditentukan, maka masalah kedua yang muncul adala korpus data, yakni sumber yang akan digunakan untuk mengumpulkan data. Korpus data menyangkut masalah subtansi bahasa sumber, bahasa sasaran, dan ruang lingkup kamus yang akan dibuat. Jika bahasa sumbernya belum mempunyai ragam bahasa tulis, maka satu – satunya jalan untuk mendapatkan korpus data itu adalah merekam bahasa tersebut dari pertuturan yang dilakukan oleh para penutur bahasa itu. Jika bahasa sumber telah mempunyai ragam bahasa tulis, maka korpus data diambil dari naskah, buku, Koran, majalah atau terbitan lain tergantung dari tujuan kamus yang akan dibuat.


(42)

Data untuk kamus dwi bahasa, kita dapat mengambilnya dari kamus bahasa sumber yang sudah ada dan kualitasnya cukup memadai. Kemudian kita tinggal mencari padanan kata dari bahasa sasaran.

c. Pengumpulan Data

Setelah masalah korpus telah diatasi, masalah selajutnya yang akan muncul adalah mengenai pengumpulan data. Misalnya saja yang disusun adalah kamus ekabahasa Indonesia. Maka data yang akan di kumpulkan bisa berupa kata kasar, kata berimbuhan, kata berulang, kata gabung, bentuk – bentuk idiomatik, ungkapan dan pribahasa.

d. Susunan Lema dan Sublema

Data yang dikumpulkan dari korpus akan menjadi lema dan sublema dalam kamus yang akan disusun. Lema dalam bahasa Indonesia berupa morfem dasar, baik yang bebas (seperti batu, pergi,

dan pulang) maupun yang terikat (esperti juang, henti, dan abai).

Sedangkan sublema berupa bentuk turunan, baik yang berimbuhan, berulang, maupun yang berkomposisi. Prinsip utama susunan lema dan sublema adalah mudah diikuti.Yang dimaksud mudah diikuti adalah kalau lema dan sublema itu disusun secara alfabetis, baik secara vertikal maupun horizontal.


(43)

Tujuan orang membuka kamus adalah untuk mengetahui makna kata. Oleh karena itu, sudah seharusnya makna dalam kamus dibuat baik dan selengkap mungkin. Hari hal itu, segala kemungkinan makna yang dimiliki oleh sebuah kata harus diterakan didalam kamus. Namun, dalam pemberian makna ini banyak masalah yang akan timbul antara lain :

(1) Apa patokan yang menyatakan bahwa sebuah kata telah diberi makna atau definisi. Pemberian makna dalam kamus dwibahasa terlihat lebih mudah sebab sudah dianggap memadai kalo hanya diberi padanan katanya saja. Misal kamus Inggris – Indonesia.

Table Meja Waterair Zip resleting.

(2) Sering kali sukar dalam memberikan makna untuk kata kerja. Misalnya kata duduk, makan, dan tidur. Kesulitan seperti ini biasanya diatas dengan memberikan contoh pemakaian kata tersebut.

(3) Banyak kata yang maknanya di suatu tempat tidak sama dengan tempat lain.

(4) Banyak kata yang maknanya telah berubah, baik total, meluas, maupun menyempit. Misalnya, dulu kata ceramah bermakna


(44)

sekarang bermakna bawel. Makal hal seperti ini diinformasikan dalam rumusan makna dalam kamus.

f. Label – label Informasi

Sebagai bagian dari penjelasan makna kata, maka pada setiap lema utama perlu diberi keterangan dalam bentuk singkatan yang berkenaan dengan :

(1) Kelas kata, yakni verba(v), nomina(n), adjektiva(a), adverbial(ad), numeralia(num) dan sebagainya.

(2) Asal - Usul Kata

Untuk kepentingan ilmiah kata – kata yang masih terasa asing perlu diberi keterangan mengenai asal – usulnya. Misalnya kata

ngaben dari bahasa bali. Kata – kata serapan yang sudah sangat

umum tidak perlu diberi label asal – usulnya. (3) Bidang Pemakaian

Kata – kata, terutama yang disebut istilah, perlu diberi keterangan

bidang pemakaianya. Misalnya kata fonem dari bidang

linguistik(ling), kata deposito dari bidang perbangkan(bank). (4) Kata – kata arkais

Kata – kata arkais adalah kata – kata yang saat ini tidak digunakan lagi dalam penuturan. Namun, kita bisa dapati saat kita membaca naskah – naskah lama. Misalnya kata tebuk, ungkai, oasik,


(45)

dansayhdan. Dibelakang kata – kata ini perlu diberi label ark(arkais).

2.3.4 Jenis Kamus

Berdasarkan lingkup isinya, Jenis kamus di bagi menjadi beberapa bagian sebagai berikut :

a. Kamus Umum, yaitu kamus yang memuat semua kata dalam sebuah bahasa, Misalnya Kamus Umum Bahasa Indonesia.

b. Kamus Khusus atau Kamus Istilah, yaitu kamus yang hanya memuat kata – kata dari bidang tertentu, contohnya kamus linguistic, kamus istilah kedokteran, kamus instilah teknologi dan banyak lagi.

c. Kamus Eka Bahasa, yaitu kamus yang memuat kata – kata dari satu bahasa , biasanya berisi definisi, sinonim, dan contoh penggunaan dalam kalimat. Misalnya Kamus Besar Bahasa Indonesia.

d. Kamus Dwibahasa yaitu kamus memuat dua bahasa, biasanya berisi kata dari sebuah bahasa yang makna atau definisinya dijelaskan dengan bahasa lain (Bahasa terjemahannya). Contohnya Kamus Bahasa Indonesia – Bahasa Inggris.

e. Kamus Multibahasa yaitu kamus yang memuat lebih dari dua bahasa. Misalnya Kamus Bahasa Prancis – Indonesia – Inggris.


(46)

Dalam dunia perkamusan dan leksikografi sangat disadari bahwa tidak akan ada kamus yang sempurna, yang dapat memberikan semua informasi mengenai kata dengan makna. Hal ini terjadi karena bahasa yang menjadi obyek kamus itu selalu berubah, seiring dengan perubahan sosial budaya dari masyarakat yang menggunakan kamus itu. Akibat dari hal tersebut, kamus yang ideal adalah kamus yang selalu terus – menerus direvisi agar kamus tersebut dapat terus – menerus mengupdate informasi yang diperlukan

2.4Bahasa Dayak Ngaju

Bahasa Dayak Ngaju atau bahasa Ngaju adalah bahasa yang tuturkan suku Dayak Ngaju dan suku – suku lain yang berada di provinsi Kalimantan Tengah. Jumlah penutur bahasa Dayak Ngaju ini lebih dari 1.000.000 orang, termasuk didalamnya yang berdialek Bakumpai, Mengkatip dan Mendawai.

Terdapat perbedaan dialek dalam sub etnis yang ada di dalam suku Dayak Ngaju, seperti pada dialek Kapuas dan Kahayan, Katingan dan Mentawai, Mendawai dan Mengkantip. Perbedaan ini umumnya pada pilihan kata dan pengucapan kata, namun memiliki arti yang berbeda.Walaupun begitu perbedaan ini mudah untuk dipahami oleh para penuturnya sendiri.

Menurut Tjilik Riwut, Pengguna bahasa ini adalah 54 anak suku Dayak Ngaju, antara lain adalah Balantikan, Kapuas, Rungan, Manuhing, Katingan, Saruyan, Mentobi, Mendawai, Bara-dia, Bara – Nio, Bara – ren, Mengkatip, Bukit, Berangas, dan Bakumpai.


(47)

Contoh dan perbandingan antara kosakata bahasa Dayak Ngaju berdialek Bakumpai, bahasa Dayak Ngaju Kahayan, serta Bahasa Indonesia.

Bakumpai Ngaju Indonesia

Jida Dia Tidak

Beken Beken Bukan

Kueh Kueh Mana

Si Kueh Bara Kueh Dari Mana

Hituh Hetuh Sini

Tukep/Parak Tukep Dekat

Mihup Mihop Minum

Batapas Bapukan Mencuci

Tabel 2.2 Kosakata 2.5Bentuk Susunan Kamus Bahasa Dayak Ngaju

Susunan lema di atur atas dasar pertimbangan :

1. Kemudahan

Kemudahan berarti bahwa kamus itu tidak menimbulkan kesulitan bagi pemakainya pada waktu penggunaan kamus.

2. Kepraktisan

Kepraktisan berarti kamus tidak rumit serta mudah dalam pemakaiannya. 3. Manfaat


(48)

Dari segi manfat, semoga dengan adanya kamus ini akan diperoleh banyak manfaat yang didapat dari pemakaian kamus ini.

4. Pembinaan dan Pengembangan Bahasa Dayak Ngaju

Dari segi pembinaan dan pengembangan bahasa, kamus bahasa Dayak Ngaju ini diharapkan dapat menunjang usaha dan pengembangan bahasa Dayak Ngaju.

Susunan Kamus Bahasa Dayak Ngaju - Indonesia disusun atas pokok pikiran berikut :

(1) Kata Dasar

Kata dasar atau bentuk dasar yang menjadi dasar pembentukan kata. Diberlakukan sebagai kata lema, sedangkan bentuk – bentuk derivasinya diberlakukan sebagai sub lema. Contoh kata dasar dan bentuk derivasinya adalah pukul dan kata mamukul, hapukul, rapukul, pamukul adalah bentuk derivasinya.

(2) Kata Ulang

Perlakukan terhadap kata ulang dalam Kamus Bahasa Dayak Ngaju

Indonesia adalah sebagai berikut :

- Bentuk kata ulang yang mennjukan jamak( kata benda) seperti huma

huma/ rumah – rumah, bua bua / buah – buah, tidak dimasukan

secara langsung ke dalam kamus. Karena dalam bahasa dayak jarang sekali mengunakan kata ulang dalam hal yang menyangkut kata benda.


(49)

- Bentuk kata yang seolah – olah merupaka bentu ulang, seperti andang

andangalamat, di muat sebagai lema.

- Bentuk ulang yang menunjukan jamak dalam proses, seperti

manampayah payah/ melihat – lihat, diberlakukan sebagai kata sub

lema dan di letakan langsung sesudah bentuk kata yang di ulang. Contoh :

Manampayah payah

Diletakan sesudah manampayah.

- Bentuk kata ulang seperti lulang luli/ bolak – balik, yang salah satu unsur pembentuk katanya mempunyai betuk kata lain seperti haluli diberlakukan sebagai kata sublema yang diletakan sesudah kata lema yang menjadi dasar bentuk ulang itu.

- Bentuk kata ulang seperti :birak biraiporak poranda, kanih kate / kacau balau, yang masing – masing unsure pembantuknya katana tidak berderivikasi diperlakukan sebagai kata lema.

Contoh :

Birak – birai 1 porak poranda; 2 cerai berai Kanih – kate 1 berhamburan; 2 berserakan

(3) Gabungan Kata

- Gabungan kata atau kelompok kata yang merupakan frasa idiomatic ataupun tidak, berakfit atau tidak, tidak berdevirasi tidak diberlakukan sebagai kata lema, atau kata sublema. Tetapi diberlakukan sebagai


(50)

contoh pemakaian yang berupa frasa yang diberi penjelasan. Letaknya langsung di bawa kata lema atau kata sublema yang berkaitan, yaitu kata pertama unsur pembentuk kata gabungan itu. Di susun berderet ke samping secara berurutan menurut abjad

Contoh :

Panjangapanjang,

- Lenge panjang tangan; orang yang suka mencuri

- Tampayah banyak pengalaman; orang perantauan

- Gabungan kata yang berdevirasi baik idiomatic maupun tidak seperti

campur aduk, himbing lenge, atau bahambin lenge, diberlakukan

sebagai kata lema dan diikuti bentuk – bentuk derivasinya sebagai sub lema.

Contoh

Campur aduk acampur aduk

- Bacampur aduk 1 - Macampur aduk 1

(4) Peribahasa

Peribahasa di perlakukan secara khusus, dicetak miring dan di tempatkan seem gabungan kata yang berupa frasa. Jika terdapat lebih dari satu peribahasa(dari sebuah kata lema), pribahasa itu di susun mernurut abjab dengan berpgang teguh pada huruf awal pada kata pertama peribahasa Contoh


(51)

Bakei nkera berekor panjang; bulu abu – abu; suka makan buah

- Kilau bakei bagai kera

Baliong nbeliung; alat perkakas tukang kayu

- Hasundai baliong beliung bertemu kayu keras; bermusuhan

(5) Urutan Susunan Kata Lema

Kata lema di susun menurut abjad, baik secara horizontal maupun secara vertikal. Secara horizontal, misalnya kata lema yang mempunyai huruf

b.a.b.a.idiletakan sesudah kata lema yang mempunyai sesudah kata lema

yang memiliki deretan huruf b.a.b.a.h Contoh

Balik n ….

Babalik… Pambalik…. Tambalik….

Baling n……

Babaling…..

Baliong n…….

Balo …

Balua v…..

(6) Label dan Singkatan Kata 1. Label Kelas Kata


(52)

Label Arti

N Nomina / Kata Benda

V Verba / Kata kerja

A Adjective / Kata Sifat

Adv Adverbial / Kata Keterangan

Num Numeralia / Kata Bilangan

P Partikel / Kata Tugas

Pron Pronominal / Kata Ganti

Sangiang Bahasa Dayak Kuno

Alk Alkitab

2. Label – label lain

Label Arti

Akr Akronim

Cak Ragam

Hor ragam halus

Kas ragam kasar

Ki Kiasan

Pb Peribahasa

Np nama pohon


(53)

Nb nama binatang

Nt nama tumbuhan

2.6Android

a. Sejarah Android

Android adalah sebuah sistem operasi untuk perangkat mobileberbasis linux. Android dibuat dan dikembangkan oleh Android Inc, kemudian Google Inc membeli Android Inc tersebut. Kemudian untuk mengembangkan Android dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi, termasuk Google.Inc.

Pada Juli 2000, Google Inc bekerjasama dengan Android Inc, dalam pengembangan perangkat mobile ini. Pada saat itu banyak yang menganggap fungsi Android hanya sebagai perangkat mobile atau telepon seluler biasa.

Pada saat rilis perdana Android, 5 September 2007. Android bersama Open

Handset Alliance menyatakan mendukung pengembangan standar terbuka

pada perangkat seluler.

Pada 22 Oktober 2008, untuk pertama kalinya Google merilis Nexus One salah satu jenis smartphone yang menggunakan android sebagai sistem operasinya. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan android


(54)

b. Sistem Operasi Android

Android adalah sistem operasi untuk perangkat mobile yang open source. Android menyediakan platform bagi para pengembang untuk menciptakan dan mengembangkan sendiri aplikasinya. Google Inc merilis kode – kode android dibawah lisensi Apache, sebuah lisensi perangkat lunak yang standard Open Source.

c. Arsitektur Android

Arsitektur Sistem Operasi Android terdiri dari 5 bagian sebagai berikut :

1. Applications dan Widgets

Applications dan Widgets ini adalah layer dimana kita berhubungan

dengan aplikasi saja, dimana biasanya kita mendownload aplikasi kemudian kita melakukan instalasi dan menjalankan aplikasi tersebut. Layer ini terdapat aplikasi inti termasuk klien email, aplikasi sms, kalender, map, browser, kontak, dan lain – lain. Semua aplikasi ditulis menggunakan java programming language (Bahasa Pemograman Java)

2. Applications F rame works

Android memberikan kemampuan pada pengembang untuk membangun aplikasi yang bagus dan kreatif. Pengembang bebas mengakses perangkat keras, akses informasi, resources, menjalankan


(55)

notification, dan sebagainya. Pengembang memiliki akses penuh menuju

API framework seperti yang dilakukan oleh aplikasi kategori inti.

Arsiektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan

Application Frameworks ini adalah layer dimana para pembuat aplikasi

melakukan pengembangan atau pembuatan aplikasi yang akan dijalankan di sistem operasi android.

Komponen – komponen yang termasuk didalam Applications

Frameworks adalah sebagai berikut :

a) Views

b) Content Provider

c) Resource Manager

d) Notification Manager

e) Activity Manager

3. Libraries

Libraries adalah layer dimana fitur – fitur android berada, biasanya

para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, serta libraries lain sebagai berikut :

 Libraries media untuk memutar mp3 dan video.


(56)

 Libraries Graphics mengcakup SGL dan OpenGL untuk grafis 2D dan 3D.

 Libraries SQLite untuk dukungan database.

 Libraries SSL dan Webkits terintegrasi dengan web browserd an

security.

 Libraries LiveWebcoremencakup modern web browserdengan engine

embedded web view

4. Android Run Time

Android Run Time adalah layer yang membuat aplikasi android dapat

dijalankan di mana dalam prosesnya menggunakan implementasi Linux.

Dalvik Virtual Machine merupakan machine yang membentuk dasar

kerangka aplikasi Android. Di dalam Android Run Time di bagi menjadi dua bagian yaitu :

 Core Libraries : Aplikasi Android di bangun dalam bahasa java,

sementara Dalvik sebagai virtual mesinnya bukan virtual machine

java, sehingga di perlukan sebuah libraries yang berfungsi untuk

menterjemahkan bahasa java/c yang ditangani oleh Core Libraries

 Dalvik Virtual Machine (DVM): Virtual mesin berbasis register yang


(57)

dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah.

5. Linux Kernel

Linux Kernel adalah layer di mana inti dari Operating System dari

Android itu berada. Berisi file – file sistem yang mengatur sistem

processing memory, resource, drivers, dan sistem – sistem operasi

android lain. Linux kernel yang digunakan android adalah linux kernel release 2.6.

d. Fundamental Aplikasi Android

Aplikasi Android ditulis dalam bahasa pemrograman java. Kode java dikompilasi bersama dengan data file resource yang dibutuhkan oleh aplikasi, di mana proses di package oleh tools yang dinamakan “apt tools” ke dalam paket Android sehingga menghasilkan file dengan ekstensi apk.

Ada enam jenis komponen pada aplikasi android, yaitu :

a) Activities

Suatu activity akan menyajikan user interface (UI) kepada penggunanya, sehingga pengguna dapat melakukan interaksi. Satu activity biasanya akan dipakai untuk menampilkan aplikasi atau yang bertindak sebagai


(58)

dari satu activity ke activity lain kita dapat melakukan satu even, misalnya klik tombol, memilih opsi atau menggunakan triggers tertentu.

b) Service

Service tidak memiliki Graphics User Interface (GUI), tetapi service

berjalan secara background, sebagai contoh dalam memainkan musik, service mungkin memainkan music atau mengambil data dari jaringan, tetapi setiap service harus berada dalam kelas induknya.

c) Broadcast Receiver

Broadcast Receiver berfungsi menerima dan bereaksi untuk

menyampaikan notifikasi. Contoh broadcast seperti notifikasi zona waktu berubah, baterai low, gambar telah selesai diambil oleh camera, atau mengubah referensi bahasa yang digunakan. Aplikasi juga dapat menginisiasi broadcast missalanya memberikan informasi pada aplikasi lain bahwa ada data yang diunduh ke perangkat dan siap untuk digunakan.

Broadcast Receiver tidak memiliki User Interface (UI), tetapi memiliki

sebuah activity untuk merespon informasi yang mereka terima, atau mungkin menggunakan Notification Manager untuk memberitahukan kepada pengguna, seperti lampu latar atau vibrating dan lain sebagainnya.


(59)

d) Content Provider

Content Provider membuat kumpulan aplikasi data secara spesifik

sehingga digunakan oleh aplikasi lain. Data disimpan dalam file sistem seperti dataSQLite. Content Providermenyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity, misalnya ketika kita menggunakan aplikasi yang membutuhkan peta (Map) , atau aplikasi yang membutuhkan untuk mengakses data kontak dan navigasi, maka disinilah fungsi Content Provider

e. Android Versi 2.2 (Froyo : Frozen Yoghurt)

Android Versi 2.2 diluncurkan pada bulan Mei 2010. Android ini sekarang banyak beredar di pasaran, salah satunya adalah dipakai di Samsung FX tab yang sudah ada di pasaran. Fitur yang tersedia di Android versi ini sudah kompleks diantaranya adalah :

1. Kerangka aplikasi memungkinkan penggunaan dan pengahpusan

komponen yang tersedia.

2. Dalvik Virtual Machine dioptimalkan untuk perangkat mobile.

3. Grafik : grafik di 2D dan grafis 3D berdasarkan libraries OpenGL

4. SQLite untuk penyimpanan data

5. Mendukung media : audio, video, dan berbagai format gambar.

6. GSM, Bluetooth, EDGE, 3G, dan Wifi.


(60)

f. Siklus Hidup Activity

Activitymemiliki tiga status dasar :

1. Running

Status ini ketika activity berjalan di foreground, activity yang berkaitan aktif dengan pengguna.

2. Pause

Jika activity telah kehilangan focus tetapi masih dapat dilihat oleh pengguna yang berarti ada activity yang berjalan di atas activity ini, sebuah

activity yang transparan atau tidak menutupi layar penuh sehingga activity

dalam status pause dapat terlihat. Sebuah activity dalam status pause tetap hidup, yaitu android tetap mempertahankan semua informasi dan tetap melekat pada WIndowManager hingga akhirnya dapat dimatikan oleh sistem ketika memori sanggat rendah.

3. Stop

Activity benar – benar dihentikan karena ada activity yang lain memenuhi

layar. Semua informasi dipertahakan tetapi tidak dapat dlihat oleh pengguna sehingga jendela tersembuni dan dapat dimatikan oleh sistem ketika memori di butuhkan.

Metode yang terdapat pada Activity : - OnCreate ()


(61)

Dipanggil ketika activity pertama kali dibuat. Biasanya merupakan metode dimana view yang ingin ditampilkan dibuat, membuka data file, maupun menginisiasi activity. Saat memanggil OnCreate,kerangka Android melewati sebuah Bundle obyek yang mengandung state

activity yang disimpan ketika activity pertama dijalankan.

- OnStart()

Dipanggil sebelum activity terlihat pada layar. Ketika activity dapat

menjadi activity foredround , maka akan dipanggil method

OnResume() sedangkan jika tidak akan dipanggil method OnStop().

- OnResume()

Dipanggil setelah OnStart()apabila activity dapat menjadi foreground.

Saat ini, activity dapat bereaksi dengan pengguna. OnResume()juga akan dipanggil ketika activity ini tidak menjadi foreground karena ada

activity lain lalu activity lain akhirnya selesai dan activity kembali

menjadi foreground. - OnPause()

Dipanggil ketika activity lain dibawa ke foreground. Pada status ini

activity tidak memiliki asks ke layar.

- OnStop()

Dipanggil ketika activity tidak lagi terlihat karena adanya activity lain yang dibawa ke foreground atau activity ini dimatikan.


(62)

- OnDestroy()

Dipangil terakhir sebelum activity dimatikan ketika Androi membutuhkan smber daya ang digunakan oleh activity.

g. Daur Hidup Service

Daur hidup service hamper sama dengan activity tetapi memiliki beberapa perbedaan detailnya.

Nama Service Keterangan

OnCreate() dan OnStart() Dipanggil apabila seseorag klien memanggilcontext.startService(intent). Jika service belum berjalan maka android aka membuatnya dan memanggil OnCreate() diikuti method OnStart(). Apabila service telah

berjalan android hanya akan memanggil

OnStart().

OnBind() Ketika klien membutuhkan koneksi ke serice maka akan dipanggil context.bind. pemanggilan ini akan mengakibatkan pembuatan service apabila service tidak sedang berjalan tanpa memanggil OnStart()

OnDestroy() Sama degan activity, method ini akan dipanggil ketika service akan dimatikan. Android akan


(63)

mematikan service apabila telah tidak lagi klien yang memulai.

h. Kelebihan Android

Banyak sekali platform untuk perangkat seluler saat ini, termasuk di dalamnya

Symbian, Iphone, Windows mobile, Blackberry, Java Mobile Edition, Linux

Mobile, dan banyak lain. Namun ada beberapa hal yang menjadi kelebihan

android. Walaupun beberapa fitur – fitur yang telah mucul sebelumnya pada

platform lain, android adalah yang pertama mengabungkan hal – hal berikut :

1. Keterbukaan, Bebas pengembangan tanpa dikenakan biaya terhadap sistem karena berbasiskan Linux dan open source. Pembuat perangkat menyukai hal ini karena dapat membangun platform yang sesuai yang diinginkan tanpa harus membayar royalti. Sementara pengembang softwaremenyukai karena Android dapat digunakan diperangkat manapun dan tanpa terikat oleh vendor manapun.

2. Arsitektur komponen dasar Android terinspirasi dari teknologi internet

Mashup. Bagian dalam sebuah aplikasi dapat digunakan oleh aplikasi

lainnya, bahkan dapat diganti dengan komponen lain yang sesuai dengan aplikasi yang dikembangkan.

3. Banyak dukungan service, kemudahan dalam menggunakan berbagai macam layanan pada aplikasi seperti penggunaan layanan pencarian lokasi, database SQL, browser dan penggunaan peta. Semua itu sudah


(64)

tertanam pada Android sehingga memudahkan dalam pengembanganaplikasi.

4. Siklus hidup aplikasi diatur secara otomatis, setiap program terjaga antara satu sama lain oleh berbagai lapisan keamanan, sehingga kerja sistem

menjadi lebih stabil. Pengguna tak perlu kawatir dalam

menggunakanaplikasi pada perangkat yang memorinya terbatas.

5. Dukungan grafis dan suara terbaik, dengan adanya dukungan 2D grafisdan

animasi yang diilhami oleh Flash menyatu dalam 3D

menggunakanOpenGL memungkinkan membuat aplikasi maupun game

yang berbeda.

6. Portabilitas aplikasi, aplikasi dapat digunakan pada perangkat yang ada saat ini maupun yang akan datang. Semua program ditulis dengan menggunakan bahasa pemrograman Java dan dieksekusi oleh mesin virtual

Dalvik, sehingga kode program portabel antara ARM, X86, dan arsitektur

lainnya. Sama halnya dengan dukungan masukan seperti penggunaan

Keyboard, layar sentuh, trackball dan resolusi layar semua dapat


(65)

50

BAB III

ANALISIS DAN DESAIN

Pada bab ini akan dijelaskan analisis dan desain Sistem aplikasi Kamus

Bahasa Dayak Ngaju Bahasa Indonesiayang akan dikembangkan.

3.1Analisis Kebutuhan Aplikasi

Analisis sistem adalah penjabaran dari suatu sistem yang utuh ke dalam bagian – bagian komponen dengan maksud mengidentifikasi dan mengevaluasi masalah dar sistem tersebut.

3.1.1 Analisis Fungsional

Analisis Fungsional merupakan gambaran mengenai fitur – fitur yang akan di masukan ke dalam aplikasi Kamus Bahasa Dayak Ngaju Bahasa

Indonesia. Fitur – fitur tersebut antara lain.

a. Mampu menampilkan berbagai kosakata Bahasa Dayak Ngaju ke dalam

Bahasa Indonesia.

b. Mampu menampilkan berbagai kosakata Bahasa Indonesia ke dalam Bahasa Dayak Ngaju.

c. Mampu menampilkan kosakata hasil pencarian Bahasa Dayak Ngaju dan kosakata hasil pencarian berbahasa Indonesia.


(66)

d. Terdapat metode untuk mengupdate kosakata baru, baik kosakata Bahasa Dayak Ngaju dan Kosakata Bahasa Indonesia.

3.2Fungsi Hash Yang Digunakan

Pada aplikasi Kamus Bahasa Dayak Ngaju Indonesia ini, digunakan media penyimpanan file untuk menyimpan data – datanya. Database yang dibuat pada aplikasi ini hanya memanfaatkan file teks yang akan disimpan pada notepad dengan ekstensi “*.txt”. Sehingga nantinya ada perintah yang mengintekgrasikan file txt tersebut ke dalam software. Basis data pada aplikasi ini dibagi menjadi dua macam yaitu basis data yang berisi padanan kata Bahasa Dayak Ngaju ke Bahasa Indonesia yang disimpan dengan nama

DayakIndo.txt dan basis data yang berisi padanan kata Bahasa Indonesia ke

Bahasa Dayak yang disimpan dengan nama IndoDayak.txt.

Proses pengolahan data dari txt ke dalam sistem adalah dengan mendapatkan key dan value yang berasal dari data txt. Proses tersebut dilakukan dengan memecah data – data menjadi lema serta padananya. kata yang menjadi lema akan menjadi key dan padananya akan menjadi value. Key tersebut akan dikonversi menjadi nilai key, nilai key tersebut diambil dari setiap karakter kata berdasarkan kode ASCII. Nilai key dari setiap karakter kata tersebut akan dihitung. Untuk memasukan key dan value ke dalam tabel hash terlebih dahulu harus dihitung index darikey menggunakan fungsi hash. fungsi hash yang akan digunakan adalah


(67)

Metode Pembagian Sisa String atau Division Remainder String Method. Jika terdapat nilai key yang sama(terjadi tabrakan antar key) dan akan digunakan metode double hashing untuk menangani masalah tabrakan tersebut.

Proses hitung nilai kata(nilai key) dan fungsi hash metode pembagian sisa string dapat dilihat dengan contoh sebagai berikut :

nilai key dari kata tege untuk dimasukan ke dalam tabel hash. Ukuran panjang tabel hash(N) untuk contoh ini, digunakan panjang N adalah 10, proses perhitungan menggunakan rumus fungsi hash metode pembagian sisa string adalah sebagai berikut :

Nilai key = „t‟+‟e‟+‟g‟+‟e‟

= ((((109*13) mod 10)*128+ 101 mod 10)*128 + 103 mod 10) *128+ 101 mod 10 = 8

Nilai key(Kunci) menjadi index pada tabel hash, Index = 8 mod 10

Index = 8

Maka didapatkan nilai index key untuk kata tege pada tabel hash, yaitu 8. Sehingga key dan value dapat dimasukan ke dalam tabel hash. Berikut ini adalah contoh gambaran data yang telah dimasukan ke dalam tabel hash. :


(68)

Gambar 3.1 Contoh data yang dimasukan ke dalam Tabel Hash

Untuk Metode Double Hashing menggunakan Fungsi hash yang ke – dua melibatkan nilai key yang telah di dapat, digunakan untuk mendapatkan jarak loncatan. Misal, kita ingin memasukan kata ijuk yang memiliki nilai key 8pada table hash, dengan metode pembagian sisa untuk nilai key 8 didapatkan index key - nya adalah 8. Maka terjadi tabrakan dengan key untuk kata tege.

Terhadap kata ijuk yang memiliki nilai key sama dengan kata tege, digunakan double hashing, contoh double hashing sebagai berikut :

Fungsi Hash ke - dua = 5 (8 mod 5) = 2

Fungsi di atas digunakan untuk mendapatkan increment(jarak lommpatan) jika terjadi tabrakan pada key.

Index = 8 mod 10 Index = 8

Index Key Value

. . .

0

1

tege (v) ada 8


(69)

Index 8 sudah memiliki key dan value, dengan menggunakan metode Double Hashing, bisa didapatkan posisi index yang baru

Index ke - 8 telah digunakan oleh key kata tege (Gambar 3.1) maka dilanjutkan perhitungan dengan melakukan double hashing untuk mendapatkan index posisi pada tabel hash untuk nilai key untuk kata ijuk . dijelaskan sebagai berikut :

Index = (8+ 2) mod 10 = 0.

Posisi 0 kosong sehingga didapat index key tersebut, key dan value dapat dimasukan ke tabel hash index 0.

Index Key Value

Gambar 3.2 Struktur Data HashTable setelah dilakukan proses Double Hashing

0

1

3 2

4

5

7

ijuk (n) sapu

6

8

9


(70)

3.3Pseudocode Metode hash

Pada pseudocode metode hash ini akan dijelaskan Proses Hitung Nilai kata, Metode Pembagian sisa, Metode double hashing, serta proses pencarian kata. Selanjutnya untukpseudocode proses hitung nilai kata(nilai key), metode pembagian sisa, metode double hashing, dan pencarian dijelaskan dengan pseudocode berikut ini :

a. Pseudocode Hitung nilai kata(nilai key)

Pseudocode 3.1

Pada Pseudocode 3.1diawali dengan variabel kata yang memiliki nilai

tege, terlebih dahulu Baris ke 1 sampai ke 3setiap karakter kata tege

dikonversi berdasarkan kode ASCII, kemudian dihitung dan dimasukan ke dalam array nilaiKata. Baris ke – 4 dilakukan perulangan berdasarkan panjang array dari nilaiKata. Baris ke – 5 dilakukan perhitungan setiap nilai katakter kata yang terdapat pada index array nilaiKata

1 kata = tege(Contoh Kata) 2 kata.tocharArray(); 3 NilaiKata = 0

4 for i = 0 to panjang array nilaiKata do

5 NilaiKata = (NilaiKata * 128 + kata[i]) % panjang array 6 end for


(71)

b. Pseudocode Metode Pembagian Sisa String atau Division Remainder String Method

Pseudocode 3.2

Pada Pseudocode 3.2 baris ke – 1 sampai baris ke – 6 (lihat Pseudocode 3.1) di awali dengan proses Hitung nilai kata. Metode Pembagian Sisa String terdapat Baris ke – 9 sampai baris ke – 10 dilakukan proses Modulu untuk mendapatkan nilai hasilBagi. Sehingga nilai variabel kata dapat di masukan ke dalam array iTabel dan index pada array iTabel untuk nilai variabel kata tersebut didapatkan dari nilai hasilBagi.

1 kata = tege(Contoh kata) 2 kata.tocharArray(); 3 NilaiKata = 0

4 for i = 0 to panjang array nilaiKata do

5 NilaiKata = (NilaiKata * 128 + kata[i]) % panjang array 6 end for

7 nilaiKey = NilaiKata

9 ukuranTabel = 10 (Contoh ukuran table hash = 10) 8 iTabel []

9 hasilBagi = 0

10 hasilBagi = nilaiKey Mod ukuranTabel 11iTabel [hasilBagi] = kata


(72)

c. Pseudocode Metode Double Hashing

Pseudocode 3.3

Pada Pseudocode 3.3 baris ke – 1 sampai baris ke – 6 (lihat Pseudocode 3.1) di awali dengan proses Hitung nilai kata. Baris ke – 9 nilai M digunakan untuk proses mendapatkan jarak lompatan(iJarak) dan nilai M tersebut diambil sembarang dengan syarat nilai M harus bilangan prima dan nilainya harus lebih kecil dari panjang penyimpanan index. Baris ke – 13 dilakukan proses Modulu untuk mendapatkan nilai hasilBagi. Sehingga nilai variabel kata dapat dimasukan ke dalam array iTabel dan index pada array iTabel untuk nilai variabel kata tersebut didapatkan dari nilai hasilBagi. Baris ke – 14 dilakukan proses fungsi hash kedua untuk mendapatkan nilai iJarak. Proses ke – 15 sampai ke –

1 kata = ijuk (Contoh kata) 2 kata.tocharArray(); 3 NilaiKata = 0

4 for i = 0 to panjang array nilaiKata do

5 NilaiKata = (NilaiKata * 128 + kata[i]) % panjang array

6 end for

7 nilaiKey = NilaiKata 8 ukuranTabel = 10 9 M = 7

10 iTabel [] 11 hasilBagi = 0 12iJarak = 0

13 hasilBagi = nilaiKeyMod ukuranTabel 14 iJarak = M - (nilaiKey Mod M) 15 while(index[hasilBagi] != null)

16 hasilBagi = hasilBagi + iJarak 17 hasilBagi = hasilBagi % ukuranTabel 18 end while


(73)

17 adalah proses Double Hashing yang dilakukan saat nilai dari index

array iTabel tidak sama dengan null atau index tersebut sudah terisi.

d. Pseudocode Proses Pencarian kata

Pseudocode 3.4

Pada Pseudocode 3.4 baris ke – 2 sampai baris ke – 6 di awali dengan proses Hitung nilai kata. Baris ke – 11, dari nilai hasilBagi akan didapatkan index pada iTabel. Baris ke – 14 terjadi proses membandingkan isi(key) dari nilai array iTable yang memiliki index dari hasilBagi apakah sama dengan iKataInput. Jika sama nilai value akan dikembalikan. Jika tidak, akan dilakukan proses baris ke – 16 dan 17 untuk mendapatkan hasilBagi untuk index dari nilai array iTable yang lain kemudian dijalankan kembali ke proses baris ke – 15.

1 Read iKataInput

2 iKataInput.tocharArray(); 3 iJumlah = 0

4 for i = 0 to panjang array nilaiKata do

5 iJumlah = (iJumlah * 128 + iKataInput[i]) % panjang array 6 end for

7 nilaiKey = iJumlah 8 ukuranTabel = 10 9 M = 7

10 iTabel [] 11iJarak = 0

12 hasilBagi = nilaiKeyMod ukuranTabel 13iJarak = M - (nilaiKey Mod M)

14 while(index[hasilBagi] != null)

15 if(index[hasilBagi].key = iKataInput)

16 Return Index[hasilBagi].value

17 hasilBagi = hasilBagi + iJarak 18 hasilBagi = hasilBagi % ukuranTabel 19 end while


(74)

3.4 Diagram Alir

Diagram alir merupakan bagan – bagan yang mengambarkan aliran program Berikut adalah diagram Alir Penyusunan Kamus Bahasa Dayak - Indonesia:

Gambar 3.3 Diagram Alir Penyusunan Kamus Bahasa Dayak Ngaju Indonesia

Hasil Jumlah Nilai Kata(nilai key)

Ukuran Tabel = N

F ungsi Hash Index = key mod N

Data Pada Tabel Hash Kosong ?

Simpan key dan value

Selesai

F ungsi Hash2

Hash2 = M (key mod M)

Index = key mod N

Index = (Index+ Hash2) mod N

Mulai

Baca File

Hitung Nilai Kata (nilai key)

Tidak


(75)

Gambar 3.4 Diagram Alir Pencarian Panadan Kata Pada Kamus Bahasa Dayak Ngaju Indonesia

Mulai

Input Kata

Ukuran Tabel = N

Pencarian ke - 1 Index = Nilai Kata Input mod N

Data pada Index = Kata Input

Output = value

Selesai

Pencarian ke 2 Hash2= M (key mod M)

Index = key mod N

Index = (Index+ Hash ke dua) mod N

Index Tabel = null

Kata tidak ditemukan

Jumlah Nilai Kata Input Hitung Nilai Kata Input

Tidak

Ya

Tidak


(76)

Penjelasan Diagram Alir

Penjelasan diagram alir ini digunakan untuk menjelaskan proses yang terjadi pada Diagram Alir Penyusunan Kamus Bahasa Dayak Ngaju – Indonesia dan Diagram Alir Pencarian Padanana Kata Pada Kamus Bahasa Dayak Ngaju – Indonesia. Penjelasan tentang Diagram Alir di atas dapat dilihat pada lampiran I.

3.5Arsitektur Aplikasi

Aplikasi ini akan dibuat menjadi 2 aplikasi berbeda, Untuk User(Pengguna Biasa) dan admin untuk melakukan riset. Aplikasi untuk user akan ada proses penyusunan kamus, pencarian padanan kata dan pembaharuan database kamus. Aplikasi untuk admin akan ada proses penyusunan kamus, pencarian padanan kata, menganti modulu pembagi penyusunan kamus dan pembaharuan database kamus. Pada aplikasi untuk admin akan menampilkan jumlah tabrakan kata dan jumlah kata yang mengalami tabrakan, yang digunakan untuk keperluan riset

Pada aplikasi ini metode hash proses penyusunan kamus dan pencarian padanan kata dilakukan di dalam aplikasi. Pada awal program data kata serta padananya diambil dari database yang berada didalam aplikasi. Untuk proses update isi database kamus userdan admin akan terhubung dengan server melalui jaringan internet. Aplikasi tidak terhubung langsung dengan internet(offline) kecuali untuk proses pengupdatetan database.


(77)

WebServer Aplikasi

Gambar 3.5 Arstektur Aplikasi Kamus Bahasa Dayak Ngaju - Indonesia

3.6Use Case Diagram

Use Case diagram merupakan pemodelan untuk behavior aplikasi yang

akan dibuat. Use Case mendekripsikan sebuah interaksi satu atau lebih aktor dengan aplikasi yang akan dibuat. Secara umum, Use Case dibuat untuk mengetahui fungsi apa saja yang ada di dalam sebuah aplikasi dan siapa saja yang berhak menggunakan fungsi – fungsi dalam aplikasi tersebut.

user


(1)

android:layout_weight="5.19" android:background="#ff9900" android:gravity="center" android:orientation="vertical"> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="40dp"> <LinearLayout android:id="@+id/linearLayout3" android:layout_width="135sp" android:layout_height="40sp"> <TextView android:id="@+id/textViewDayak" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:text="@string/textDayak" android:textColor="#ffffff" android:textSize="25sp"/> </LinearLayout>

<LinearLayout android:id="@+id/linearLayout4" android:layout_width="50sp" android:layout_height="40sp"> <Button android:id="@+id/buttonGanti" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/arrow"/> </LinearLayout>

<LinearLayout android:id="@+id/linearLayout5" android:layout_width="135sp" android:layout_height="40sp"> <TextView android:id="@+id/textViewIndo" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:text="@string/textIndo"


(2)

android:textColor="#ffffff"

android:textSize="25sp"/> </LinearLayout>

</LinearLayout>

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/editKata" android:layout_width="250dp" android:layout_height="wrap_content" android:ems="10" android:hint="@string/textHint" android:singleLine="true"> <requestFocus/>

</EditText>

<Button android:id="@+id/btnCari" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/btnCari"/> </LinearLayout>

</LinearLayout>

<ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="95.44"> <LinearLayout android:id="@+id/layout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textViewKey" android:layout_width="wrap_content" android:layout_height="wrap_content"

android:text="@string/textHasil"android:textAppearance="?android: attr/textAppearanceLarge"

android:textStyle="bold"/> <TextView


(3)

android:id="@+id/textViewHasil"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/textHasil"android:textAppearance="?android: attr/textAppearanceLarge"

android:textStyle="italic"/> </LinearLayout>

</ScrollView>

<LinearLayout

android:id="@+id/layout3"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:gravity="center"> <Button

android:id="@+id/btnHasilHitung"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="@string/btnLihatHasil"/> </LinearLayout>

</LinearLayout>


(4)

4.

Implementasi Antar Muka Menu Update

Antar muka kamu adalah tampilan untuk melakukan update database

kata Bahasa Dayak Ngaju

Indonesia dan Bahasa Indonesia

Dayak

Ngaju. Antar muka ini diakses setelah

admin

mengakses antar muka menu

utama. Kode program untuk tampilan antar muka kamus adalah sebagai

berikut :

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/an droid"

android:id="@+id/LinearLayoutUtama"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical"

android:background="@drawable/background1"> <Button

android:id="@+id/btnDownloadFile"

android:layout_width="wrap_content"

android:layout_height="wrap_content"


(5)

</LinearLayout>

Tampilan Implementasi Antar Muka :

5.

Implementasi Antar Muka Ganti Modulu

Antar muka kamu adalah tampilan untuk menginputkan modulu

pembagi yang akan digunakan dalam penyusunan kamus Dayak Ngaju -

Indonesia. Antar muka ini diakses setelah

admin

mengakses antar muka

menu utama.

Admin

harus melakukan klik “

menu

pada hardware button

android

terlebih dahulu agar menu freference dapat ditampilkan. Kode

program untuk tampilan antar muka kamus adalah sebagai berikut :

<?xmlversion="1.0"encoding="utf-8"?>

<PreferenceScreenxmlns:android="http://schemas.android.com/apk/re s/android">

<EditTextPreference

android:key="konstanta"

android:summary="Input Konstanta"

android:title="Konstanta" />

<EditTextPreference

android:key="mod"

android:summary="Input Modulu"

android:title="Modulu"/> </PreferenceScreen>


(6)