Daur Hidup Service Analisis Kebutuhan Aplikasi .1 Analisis Fungsional Fungsi Hash Yang Digunakan

- 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 memanggil context.startServiceintent. 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 mematikan service apabila telah tidak lagi klien yang memulai.

h. Kelebihan Android

Banyak sekali platform untuk perangkat seluler saat ini, termasuk di dalamnya S ymbian, 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 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 menggunakan OpenGL 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 disesuaikan dengan program. 50

BAB III ANALISIS DAN DESAIN

Pada bab ini akan dijelaskan analisis dan desain Sistem aplikasi Kamus Bahasa Dayak Ngaju – Bahasa Indonesia yang akan dikembangkan.

3.1 Analisis 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. d. Terdapat metode untuk mengupdate kosakata baru, baik kosakata Bahasa Dayak Ngaju dan Kosakata Bahasa Indonesia.

3.2 Fungsi 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 dari key menggunakan fungsi hash. fungsi hash yang akan digunakan adalah Metode Pembagian Sisa String atau Division – Remainder String Method. Jika terdapat nilai key yang samaterjadi tabrakan antar key dan akan digunakan metode double hashing untuk menangani masalah tabrakan tersebut . Proses hitung nilai katanilai 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‟ = 10913 mod 10128+ 101 mod 10128 + 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 . : 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 incrementjarak lommpatan jika terjadi tabrakan pada key. Index = 8 mod 10 Index = 8 Index Key Value . . . 1 tege v ada 8 9 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 G ambar 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 1 3 2 4 5 7 ijuk n sapu 6 8 9 ijuk tege v mandi 3.3 Pseudocode Metode hash Pada pseudocode metode hash ini akan dijelaskan Proses Hitung Nilai kata, Metode Pembagian sisa, Metode double hashing , serta proses pencarian kata. Selanjutnya untuk pseudocode proses hitung nilai katanilai key , metode pembagian sisa, metode double hashing, dan pencarian dijelaskan dengan pseudocode berikut ini : a. Pseudocode Hitung nilai katanilai key Pseudocode 3.1 Pada Pseudocode 3.1 diawali 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 = tegeContoh 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 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 = tegeContoh 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 11 iTabel [hasilBagi] = kata 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 lompataniJarak 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 12 iJarak = 0 13 hasilBagi = nilaiKeyMod ukuranTabel 14 iJarak = M - nilaiKey Mod M 15 whileindex[hasilBagi] = null 16 hasilBagi = hasilBagi + iJarak 17 hasilBagi = hasilBagi ukuranTabel 18 end while 19 iTabel [hasilBagi] = kata 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 [] 11 iJarak = 0 12 hasilBagi = nilaiKeyMod ukuranTabel 13 iJarak = M - nilaiKey Mod M 14 whileindex[hasilBagi] = null 15 ifindex[hasilBagi].key = iKataInput 16 Return Index[hasilBagi].value 17 hasilBagi = hasilBagi + iJarak 18 hasilBagi = hasilBagi ukuranTabel 19 end while

3.4 Diagram Alir