You are on page 1of 4

Struktur Hash table dengan Implemetasi Lookup Menggunakan

Algoritma Binary Search


Andresta Ramadhan1, Ibrahim Arief2, Andree Datta Adwitya3

Laboratorium Ilmu dan Rekayasa Komputasi


Departemen Teknik Informatika, Institut Teknolog i Bandung
Jl. Ganesha 10, Bandung

E-mail: if13030@students.if.itb.ac.id1, if13038@students.if.itb.ac.id2 ,


if13062@students.if.itb.ac.id3

Abstrak
Data yang disimpan di dalam memori komputer perlu ditempatkan dalam suatu
cara sedemikian sehingga
pencariannya dapat dilakukan dengan cepat. Struktur hash table merupakan
struktur yang dapat mempersingkat
waktu pencarian record (lookup) dalam sebuah tabel dengan cara
mengasosiasikan setiap record dengan sebuah
kunci yang unik dan menggunakan fungsi hash (hash function) untuk menentukan
lokasi record tersebut pada
tabel. Namun, karena fungsi hash bukanlah fungsi satu-ke-satu, dimungkinkan
terjadinya bentrokan (collision)
dalam penempatan suatu data record. Untuk mengatasi bentrokan diperlukan
Kata kunci: hash table, binary search, collision, collision resolution po licy, hash function, lookup, hash, divide
sebuah
and kebijakan resolusi bentrokan
conquer.
(collision resolution policy). Umumnya kebijakan ini menempatkan record pada
posisi berikutnya dari tabel jika
1. Pendahuluan
menentukan lokasi record dalam tabel.
posisi yang ditujunya sudah terisi. Untuk
Hash table adalah sebuah struktur data yang terdiri Umumnya kasus terbaik, kompleksitas algoritma
yang
atas dibutuhkan
sebuah tabel dan fungsiadalah konstan
yang bertujuan untuk kebijakan resolusi bentrokan adalah
memetakan
O(1), nilai
tapi kunci
untuk yang unik
kasus untuk setiap
terburuk dimana data yang hendak dicari tidak ditemukan,
record menjadi angka (hash) lokasi record tersebut dengan mencari
kompleksitasnya
dalam sebuah tabel. [1] dapat
lokasi tabel yang masih kosong pada
2. Hash table
mencapai O(n). Hal ini dikarenakan
Keunggulan dari struktur hash table ini adalah hash
2.1 table Hash
Struktur menggunakan
table algoritma sequential
search
waktu untuk
aksesnya yang mencari
cukup cepat,record
jika record yang lokasi setelah
dicari langsung berada pada angka hash lokasi
pada tabel jika record yang
penyimpanannya. Akan tetapi pada kenyataannya hendak lokasi
Hash table yang
dicari
asosiatif tidak
yang
berbentrokan.
menggunakan struktur data array
ditemukan
mengasosiasikan pada posisi yang
record dengan
dihitung
sering berdasar
sekali ditemukan
recordnya mempunyai hash
hash
angka
table function.
yang record-
hash yang sama
sebuah field kunci un ik berupa bilangan (hash) yang
merupakan representasi dari record tersebut.
Dengan mengubah struk tur hash table dengan cara mengelompokan hasil record
(bertabrakan).
dengan
Karena hasilhash
pemetaan hash function
function yang
yang digunakan
Misalnya, terdapat data berupa string yang hendak
disimpan dalam sebuah hash table. String tersebut
bertumpukan
bukanlah ke dalam
pemetaan satu-satu, sebuah
(antara struktur
dua record list berkaitdalam
direpresentasikan yangsebuah
terurut berdasar
field kunci k. Cara kuncinya,
yang tidak sama dapat dibangkitkan angka hash
pencarian
yang sama) maka record dapat
dapat terjadi bentrokan (collision) untuk mendapatkan field kunci ini sangatlah
beragam, namun hasil akhirnya adalah sebuah
dalam penempatan suatu data record. Untuk
menggunakan algoritma binary
mengatasi hal ini, maka perlu diterapkan kebijakan search yang lebih
bilangan efisien.
hash yang digunakan untuk menentukan
resolusi bentrokan (collision resolution policy) untuk lokasi record. Bilangan hash ini dimasukan ke

1
dalam hash function dan menghasilkan indeks lokasi 3. Binary Search
record dalam tabel. [1] 3.1 Algoritma Binary Search

k(x) = fungsi pembangkit field kunci .... (1)Search adalah algoritma pencarian yang
Binary
lebih efisien daripada algorima Sequential Search.
h(x) = hash function .... (2) Hal ini dikarenak an algoritma in i tidak perlu
menjelajahi setiap elemen dari tabel. Kerugiannya
adalah algoritma ini hanya bisa digunakan pada tabel
Contohnya, terdapat data berupa string yang“abc”
elemennya dan
sudah terurut baik menaik maupun
“xyz” yang hendak disimpan dalam struktur menurun. [2]hash
Pada intinya, algoritma ini menggunakan prinsip
table. Lokasi dari record pada tabel dapat dihitung
divide and conquer, dimana sebuah masalah atau
dengan menggunakan h(k(“abc”)) dan h(k(“xyz”)).dengan cara mempartisi masalah
tujuan diselesaikan
menjadi bagian yang lebih kecil. Algoritma ini
membagi sebuah tabel menjadi dua dan memproses
satu bagian dari tabel itu saja.
Algoritma ini bekerja dengan cara memilih record
dengan indeks teng ah dari tabel dan
Gambar 1. Penempatan record pada hash table membandingkannya dengan record yang hendak
dicari. Jika record tersebut lebih rendah atau lebih
Jika hasil dari hash function menunjuk ke lokasi
tinggi, maka tabel tersebut dibagi dua dan bagian
memori yang sudah terisi oleh sebuah record, maka
tabel yang bersesuaian akan diproses kembali secara
dibutuhkan kebijakan resolusi bentrokan. Biasanya
rekursif.
recordini diselesaikan
masalah kosong berikutnya
dengan mencari lokasi secara
3.2 Kompleksitas Waktu
incremental.
Kompleksitas waktu terbaik algoritma ini adalah 1,
sedangkan kompleksitas waktu terburuknya 2 log n.
Kompleksitas waktu terburuk ini dicapai pada kasus
dimana record tidak ditemukan dalam tabel. Pada
kasus ini, algoritma melakukan pembagian tabel
hingga ukuran tabel sebesar 1 elemen. Jumlah
langkah tersebut adalah 2 log n. Karena pada setiap
langkah dilakukan perbandingan yang merupakan
Gambar 2. Resolusi bentrokan pada hash table basis dari penghitungan kompleksitas waktu
algoritma pencarian, maka kompleksitas waktu
2.2 Lookup pada Hash table terburuk algoritma ini adalah 2log n. [2]
2.2.1 Definisi Lookup
3.3 Keunggulan Binary Search
Salah satu keunggulan struktur hash table
dibandingkan dengan struktur tabel biasa adalah Keunggulan utama dari algoritma binary search
kecepatannya dalam mencari data. Terminologi
lookup mengacu pada proses yang bertujuan untuk algoritmanya yang lebih kecil
adalah kompleksitas
daripada kompleksitas algoritma sequential search.
mencari sebuah record pada sebuah tabel, dalam halwaktu yang dibutuhkan
Hal ini menyebabkan
ini adalah hash table. [3] recordbinary
algoritma dalam sebuah
search dalam tabel lebih kecil
mencari sebuah
2.2.2 Metode Lookup
daripada
Dengan menggunakan hash function, sebuah lokasi
dari record yang dicari bisa diperkirakan. Jika lokasi waktu yang dibutuhkan algoritma
4. Hash table dengan Implementasi Lookup
yang tersebut berisi record yang dicari, maka
pencarian berhasil. Inilah kasus terbaik dari
sequential search.
Binary Search
pencarian pada hash table. Namun, jika record yang
hendak dicari tidak ditemukan di lokasi yang 4.1 Struktur Hash table yang
diperkirakan, maka akan dicari lokasi berikutnya Mengimplementasikan Binary Search
sesuai dengan kebijakan resolusi bentrokan.
Pencarian akan berhenti jika record ditemukan, Hash table dengan implementasi binary search
pencarian bertemu dengan tabel kosong, atau menggunakan struktur yang hampir sama dengan
pencarian telah kembali ke lokasi semula.
2
hash table standar.
4.2 Implementasi LookupStrukturdenganpenyimpanan
Binary data tetap k(“abc”) = 472
5. Kesimpulan
berupa sebuah tabel dengan ukuran terbatas. k(“xyz”) = 212
Search Struktur hash table ini akan menghemat pencarian
Perbedaanya dengan struktur hash table biasa adalah
karena proses lookup-nya menggunakan algoritma
elemen dari tabel tersebut dan cara pengorganisasian binary Dan jika(pencarian
search dengan menggunakan
biner) yang rumus
terbukti(2) didapat :
lebih
Dalamrecord
proses dalam
pencarian record dalam hash table
tabel.
yang mengimplementasikan
Pada hash table standar, binary search,
elemen setiap tabelcepat dari
proses
dari pada sequential search (pencarian
h(472) = 3
akan tetap mencari
adalah recordangka hash dari
itu sendiri. record yang
Sedangkan beruntun).
pada hash table h(212) = 2
akan dicari terlebih dahulu. Runtu tan aktifitas
yang mengimplementasikan binary search, elemenPerubahan struktur membawa keuntungan tambahan
pencarian berikutnya adalah mencari lokasi
dari setiap tabel adalah pointer ke sebuah struktur denganMaka
penyimpanan yang sama dengan angka hash, lalu
dengan
tidakpenempatanlinked
terbatasnya record liststruktur
jumlah pada
record adalah
hash table sebagai
maksimum
linked list yang menyimpan record.
mengecek list yang ditunjuk oleh lokasi tersebut. berikut
yang dapat : oleh hash table. Selain itu
disimpan
Proses selanjutnya adalah mencari record didalam partisi tabel menjadi bagian-bagian yang diproses
list yang mempunyai nilai kunci sama dengan n ilai secara terpisah dan menggunakan hash function
kunci dari record yang dicari. Oleh karena elemen- sebagai selektor partisi merupakan penerapan lain
elemen list sudah terurut menaik berdasarkan dari strategi divide and conquer.
kuncinya, maka proses pencarian dilakukan dengan
metode binary search. Metode ini akan mencari Dapat disimpulkan bahwa struktur hash table yang
elemen tengah dari list dan membandingkannya memanfaatkan implementasi lookup dengan binary
dengan record yang akan dicari, jika tidak sama hash menggabungkan
search table dan algoritma
keunggulan dari binary
struktur search.
maka proses akan melakukan binary search secara
rekursif untuk kumpulan elemen yang ada di sebelah Daftar Pustaka
kiri atau kanan elemen tengah dari list tersebut.
4.3 Perbandingan dengan Hash table [1] Knuth, D. The Art of Computer
Programming, Volume 3 : Sorting and
Standar Searching,
Gambar Chapter 6.4.record
4. Penempatan Addison Wesley,
pada struktur hash
1973. table dengan linked list
Dalam hash table standar waktu yang dibutuhkan [2] Munir, R, Matematika Diskrit, Vol 2,
untuk menyimpan dan mencari record di dalam Penerbit
terjadiInformatika Bandung,
nilai2003.
array adalah sama. Dalam kasus terbaik proses record, maka kebijakan resolusi
Jika bentrokan antara
[3] Wikipedia (http://www.wikipedia.org/)
hash dari dua buah
lookup akan menghasilkan kompleksitas O(1) dan
pada kasus normal akan menghasilkan kompleksitas
bentrokan yang
entry on Hash table
(http://en.wikipedia.org/wiki/Hash_table)
O(n). Jarang sekali ditemukan hash table yang diambil adalah dengan menambahkan
proses lookupnya
Gambar 3.menghasilkan
Struktur hash kompleksitas
table dengan waktu
terbaik dikarenakan penggunaan hash table yang
linked list
record
biasanyaPada
denganyang
untuk jumlah
struktur
hashdimasukan,
record
linked
table yang disimpan
list,yang
selainbanyak.
menimplementasikan
disimpanBerbeda
tersebut pada struktur linked list yang
data record
binary
juga field kunci yang
search.dihasilkan
Hash table inirumus
dari mempercepat
(1). Metodewaktu aksesnya
penyimpanan berlokasi di
dalam pada
menyimpan
strukturdan
ini mencari recordmenaik
berupa terurut dalam berdasar
hash
field kunci
table untuk jumlahyang
recorddisimpan.
yang semakin besar jika lokasi tabel yang sama secara terurut.
dibandingkan dengan hash table standar. Untuk
Metodenormal,
penggunaan penyimpanan
hash table record pada struktur baru ini
ini cukup
agak berbeda
mempersingkat waktudengan
akses. metode
Hash tablepenyimpanan
ini pun pada
struktur batasan
tidak memiliki hash table standar,
jumlah namun
record metode ini masih
sebanyak
menggunakan
lebar lokasi keunggulan
penyimpanan, karenadari hash table yaitu
record-record
array
akan hashdi table,
pembangkitan
disimpan dalam listtidak
kunci dan
yang seperti
penggunaan
berada hash
hash
di luar table standar
function
untuk menentukan lokasi record dalam tabel.
yang menyimpan recordnya dalam array tersebut.
Contohnya, terdapat data berupa string “abc” dan
4.4 Keunggulan
“xyz” yang hendak disimpan dalam struktur hash
table ini.
Keunggulan Lokasi pada tabel yang bersesuaian dengan
recordddapat
ari implementasi hash
dihitung dengan table
menggunakan
menggunakan binary
h(k(“abc”)) dansearch tidak akan
h(k(“xyz”)). terlihat
Perbedaannya dengan
denganstruktur
jelas. Akan tetapi, pada kasus dengan
hash tabel standar adalah lokasijumlah
ini tidak
record yang sangat besar, lebar lokasi penyimpanan
berfungsi sebagai penyimpan record, namun sebagai
yang kecil, dan banyaknya record yang mempunyai Gambar 5. Resolusi bentrokan pada struktur hash
penunjuk ke struktur list berkait yang menyimpan
angka record.
hash yang sama, pengimplementasian binary table dengan linked list
search dapat mengefisienkan waktu dengan
perbedaan waktujika
Misalnya akses yang menggunakan
dengan lebih cepat daripada
rumus (1)
menggunakan
didapat : metode standar hash table.

4 3

You might also like