- 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