Anda di halaman 1dari 8

MAKALAH MATEMATIKA DISKRIT

FUNGSI HASH

Dosen Pengasuh : Anggria Septiani M,M.pd


DISUSUN OLEH :
KELOMPOK 5

1. Era Dona Safitri NIM : 2016 121 060


2. Rena Hotmasari NIM : 2016 121 052
3. Kinanti Larasati NIM : 2016 121 047
4. Ikhtiara Pramudia NIM : 2016 121 071
5. Okta Vero NIM : 2013 121 153

FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN


PROGRAM STUDI PENDIDIKAN MATEMATIKA
UNIVERSITAS PGRI PALEMBANG
2017
Fungsi Hash

Data yang disimpan didalam memori computer perlu ditempatkan dalam


suatu cara sedemikian sehingga pencariannya dapat dilakukan dengan cepat.
Setiap data yang berupa record mempunyai field kunci yang unik yang
membedakan suatu record dengan record lainnya. Fungsi hash (hash function)
digunakan untuk menenempatkan suatu record yang mempunyai nilai k. fungsi
hash yang paling umum berbentuk.

h() =

yang dalam hal ini m adalah jumlah lokasi memori yang tersedia (misalkan
memori berbentuk sel sel yang diberi indeks 0 sampai m 1). Fungsi h di atas
menempatkan record dengan kunci k pada suatu lokasi memori yang beralamat h
(k).
Andaikan m = 11, sehingga kita mempunyai sel sel memori yang diberi
indeks 0 sampai 10. Kita akan menyimpan data record yang masing masing
mempunyai kunci 15, 558, 32, 132, 102, dan 5 [ JOH97 ]. Pada mulanya sel sel
meori dalam keadaan kosong.
Keenam data record tersebut masing masing disimpan pada lokasi yang
dihitung sebagai berikut :

(15) = 15 11 = 4
(558) = 558 11 = 8
(32) = 32 11 = 10
(132) = 132 11 = 0
(102) = 102 11 = 3
( 5 ) = 5 11 = 5

Keadaan sel sel memori setelah penyimpanan keenam data record


tersebut digambarkan seperti berikut ini :
Karena fungsi hash bukanlah fungsi satu kesatu ( beberapa nilai k yang
berbeda dapat menghasilkan nilai h (k) yang sama ), maka dapat terjadi bentrokan
(collision) dalam penempatan suatu data record. Misalkan kita kan menempatkan
data record dengan kunci 257. Perhitungan hash menghasilkan.

h( 257 ) = 257 mod 11 = 4

Padahal sel memori dengan lokasi 4 sudah terisi. Kita katakana telah
terjadi bentrokan ( collision resolution policy ). Satu kebijakan resolusi bentrokan
adalah mencari sel tak terisi tertinggi berikutnya ( dengan 0 diasumsikan
mengikuti 10 ). Jika kita terapkan kebijakan ini, maka data record dengan kunci
27 ditempatkan pada lokasi 6.
Jika kita ingin mencari data record tertentu, maka kita gunakan fungsi hash
kembali. Misalkan kita akan mencari data record dengan kunci p, maka kita
hitung h (p) = p mod 11, misalkan h (p) = q. Jika record p sama dengan isi sel
pada lokasi q, kita katakana lokasi record p ditemukan. Sebaliknya, jika record p
tidak sama dengan isi sel pada lokasi q, maka kita melihat pada posisi tertinggi
berikutnya ( sekali lagi, 0 diasumsikan mengikuti 10 ) ; jika record p tidak berada
pada posisi ini, kita lihat lagi pada posisi berikutnya, demikian seterusnya. Jika
kita mencapai sel kosong atau kembali keposisi semula, kita simpulkan bahwa
record p tidak ada.

Aspek yang perlu dipertimbangkan dalam pemilihan Fungsi Hash adalah :

fungsi Hash harus mudah dan cepat dihitung


fungsi Hash sebisa mungkin mendistribusikan

Konsep-Konsep File Hash :

1. Organisasi file dengan metode akses langsung (direct acsess ), yang


menggunakan suatu fungsi untuk memetakan key menjadi address
2. fungsi yang digunakan disebut fungsi hash/KAT (key to address
transformation)
3. Address yang dihasilkan dari hasil perhitungan fungsi hash disebut dengan
istilah home address
4. Jadi, terdapat dua komponen file hash : Ruang rekord, yang terdiri atas m
slot address, Fungsi hash, yang mentransformasi key menjadi address
5. Transfomasi key akan mudah jika key telah berupa nilai integer, untuk key
berupa karakter alphanumerik terdapat proses prakondisi untuk mengubahnya
menjadi suatu nilai integer.

Hambatan KAT

1. Key umumnya sesuatu yang bersifat natural (nim/no_ktp/dll)


2. Natural key biasanya panjang (nim=10 digit)

Persyaratan KAT:

Ukuran key harus diperpendek agar sesuai dengan slot address (relative
address)
Slot address yang dihasilkan harus unix
Algoritma untuk membuat kat sangat banyak

Ada Beberapa Fungsi Hash Yang Dapat di Gunakan :

1. Key Mod N, dengan N =jumlah slot address (ukuran tabel data). Contoh : 10
mod 4 = 2
2. Key Mod P, dengan P = bilangan prima terkecil yang >= N
3. Truncation/ /substringing, cara transformasi yang dilakukan dengan
mengambil hanya sebagian digit dari key misal jika key = 123 --45 6789 akan
dipetakan pada address yang terdiri atas 1000 slot, maka dapat dilakukan
pengambilan tiga digit (secara acak atau terurut) dari key tersebut untuk
menentukan addressnya.
4. Folding
Folding by boundary
Contohjikakey = 123456789, makatransformasike3 digit address dengan
teknik folding by boundary dapat dilakukan dengan membagi digit key tsb dengan
cara seolah-olah melipat batas pembagian digit
321
456
987 +
654

Folding by shifting
Contoh jika key = 123456789, makatransformasike3 digit address dengan
teknik folding by boundary dapat dilakukan dengan membagi digit key tsb dengan
cara seolah-olah menggeser batas pembagian digit
123
456
789 +
258

Komponen Hashed File:


File Space
1. Terbagi dalam slot-slot
2. Tiap slot menyimpan sebuah record

Rumus:
Menghasilkan slot address, dihitung berdasarkan key dari sebuah record
Sifat Fungsi Hash :

Sifat baku fungsi hash


Fungsi hash memiliki sifat-sifat sebgai berikut:
1. Preimage resistant: jika diberikan suatu nili hash y akan sulit
mencari x sedemikian sehingga h(x)=y
2. Second preimage resistant: jika diberikan sebuah masukan x,
akan sulit mencari sedemikian sehingga h(x) = h( )
3. Collision resistant : akan sulit untuk mencari x dan
sedemikian sehingga h(x) = h( )

Pemanfaatan Fungsi Hash Lemah :

Sebuah fungsi hash yang lemah adalah fungsi hash yang dapat ditemukan
cara untuk mematahkan satu atau lebih sifat diatas.
Kelemahan fungsi hash tersebut dapat dimanfaatkan, diantaranya:

1. Memanfaatkan preimage resistance yang lemah: jika kita bisa bekerja


mundur atau menghasilkan data dari suatu nilai hash, maka kita dapat
menggunakannya untuk mengalahkan sistem hash password. Kita tidak
perlu tahu password sebenarnya, karena cukup dengan memiliki data
dengan nilai hash yang sesuai, kita bisa mendapat akses. Disini
bentrokan dapat diartikan lebih daru satu password yang bisa
diterima.
2. Memanfaatkan seconf preimage resistance yang lemah: jik dapat
menghasilkan data baru yang memiliki nilai hash yang samadengan
data asli, maka kita dapat membuat seolah olah data kita adalah data
yang asli. Umumnya dilakukan untuk menyebarkan perangkat lunak
yang bermasalah.
3. Memanfaatkan collision resistance yang lemah: jika dapat membuat
dua buah data memiliki nilai hash yang sama, maka kita dapat
mengganti data yang asli dengan data lain. Misalnya data berisi
perjanjian setelah disetujui kita ganti dengan data perjanjian yang
berbeda.
Contoh :
Data : 15, 558,32, 132, 102, 5 dan 257 diletakkan kedalam 11 sel H(n)=n
mod 11
Jawab:
H(15)= 15 mod 11 = 4
H(32)= 32 mod 11 =10
H(132)= 132 mod 11 = 0
H(102)= 102 mod 11 = 3
H(5)= 5 mod 11 = 5
H(257) = 257 mod 11= 4 6 terjadilah bentrokan ( collision)

Latihan Soal :
1. Misalkan f adalah fungsi dari A = 0,1 2, 3, 4 ke A. yang didenifinisikan
oleh f (x) = 4x mod 5
a. Tentukan f sebagai himpunan pasangan terurut
b. Apakah f satu satu atau pada ?

2. Tentukan fungsi hash H(x) = ( 2 + ) mod 17


Sel sel diberi indeks 0 hingga 1, dengan data 114, 631, 26, 373, 775,
906, 509, 2023, 42, 4, 136, 1028.
Tentukan bagaimanakah data tersebut bias disipkan dalam urutan yang
yang diberikan pada sel kosong sebelumnya.
DAFTAR PUSTAKA

http://angganova16.blogspot.co.id/2012/10/hashing.html
Munir, Rinaldi. 2016. Matematika Diskrit. Bandung: Informatika Bandung.

Anda mungkin juga menyukai