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.2 Metode 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 Applications
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
hk = k mod m
,
k
adalah nilai kunci dan
m
adalah jumlah lokasi memori yang tersedia pada
array
larik.
Fungsi hash ini akan menempatkan record dengan kunci
k
pada lokasi memori yang memiliki alamat
hk
. 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
hk = 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 :
hk= l
nilai
l
diperoleh dengan menghapus digit – digit angka pada dua sisi dari
k
2
,
dengan catatan bahwa banyak digit di sebelah kiri dan sebelah kanan harus sama. Jika jumlah digit tidak sama, jika tidak sama maka digit
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
k
tersebut kemudian mengambil nilai tengah dari hasil dari
k
2
tersebut.
k
= 65314057
k
2
= 4265926|04|1799249
hk = 04
b.
Resolusi Collision
Tabrakan
Dalam memasukan nilai kunci ke alamat dapat timbul kemungkinan bahwa rekamanrecord 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
hashm
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 :
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
h+1 mod m
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