Hashing
adalah transformasi aritmatik sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasanya, hash berarti memenggal dan kemudian menggabungkan. Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat.
Ide dasarnya adalah menghitung posisi record yang dicari dalam array, bukan membandingkan record dengan isi pada array. Fungsi yang mengembalikan nilai atau kunci disebut fungsi hash (hash function) dan array yang digunakan disebut tabel hash (hash table). Hash table menggunakan struktur data array asosiatif yang mengasosiasikan record dengan sebuah field kunci unik berupa bilangan (hash) yang merupakan representasi dari record tersebut.
Secara teori, kompleksitas waktu (T(n)) dari fungsi hash yang ideal adalah O(1). Untuk mencapai itu setiap record membutuhkan suatu kunci yang unik. Fungsi hash menyimpan nilai asli atau kunci pada alamat yang sama dengan nilai hashnya. Pada pencarian suatu nilai pada tabel hash, yang pertama dilakukan adalah menghitung nilai hash dari kunci atau nilai aslinya, kemudian membandingkan kunci atuau nilai asli dengan isi pada memori yang beralamat nomor hashnya. Dengan cara ini, pencarian suatu nilai dapat dilakukan dengan cepat tanpa harus memeriksa seluruh isi tabel satu per satu.
Macam - Macam Fungsi Hash
Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) menjadi
suatu nilai dalam interval [0....X], dimana "X" adalah jumlah maksimum dari record-record
yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantung pada ruang memori yang
tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan bersifat random, agar dapat
menyebarkan semua key. Dengan key yang tersebar, berarti data dapat terdistribusi secara
seragam bentrokan dapat dicegah. Sehingga kompleksitas waktu model Hash dapat mencapai
O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain.
Ada beberapa macam fungsi hash yang relatif sederhana yang dapat digunakan dalam
penyimpanan database:
a. Metode Pembagian Bersisa (division-remainder method)
Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan
sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah
nilai hashnya. Secara umum, rumusnya h(k)= k mod m. Dalam hal ini m adalah jumlah lokasi
memori yang tersedia pada array. Fungsi hash tersebut menempatkan record dengan kunci k
pada suatu lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang
sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan
mekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusi bentrokan.
b. Melipat (folding)
Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian menambahkan
nilai-nilai tersebut, dan mengambil beberapa angka terakhir sebagai nilai hashnya.
c. Transformasi Radiks (radix transformation)
Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti sehingga
menghasilkan urutan angka-angka yang berbeda. Contohnya nilai desimal (basis 10) bisa
ditransformasikan kedalam heksadesimal (basis 16). Digit atas hasilnya bisa dibuang agar
panjang nilai hash dapat seragam.
d. Pengaturan ulang digit (digit rearrangement)
Metode ini mengubah urutan digit dengan pola tertentu. Contohnya mengambil digit ke
tiga sampai ke enam dari nilai aslinya, kemudian membalikan urutannya dan menggunakan digit
yang terurut terbalik itu sebagai nilai hash. Fungsi hash yang bekerja dengan baik untuk
penyimpanan pada database belum tentu bekerja dengan baik untuk keperluan kriptografi atau
pengecekan kesalahan. Ada beberapa fungsi hash terkenal yang digunakan untuk keperluan
kriptografi. Diantaranya adalah fungsi hash message-diggest, contohnya MD2, MD4, dan MD5,
digunakan untuk menghasilkan nilai hash dari tanda tangan digital yang disebut messagediggest.
Ada pula Secure Hash Algorithm (SHA), sebuah algoritma standar yang menghasilkan
message-diggest yang lebih besar (60-bit) dan serupa dengan MD4.
Originally created by: Adnan Satriyo
Follow my Twitter: @adnansemprul
TUGAS GLSC 1: “MEREVIEW KOMIK DIGITAL
BANGBLACK”
Dosen: Muhammad Ismail Kode Dosen: D4556
Sumber: www.facebook.com/bangblack
www.ngomik.com/mael
Twitter: @bangblackk
Review:
Berdasarkan
hasil review saya, situs ngomik.com ini sudah bagus dan sangat menarik,
terutama tingkat kreatifitas dalam cerita ini. Karena, ceritanya benar-benar
lucu, kocak dan sangat menghibur. Jadi, sesuai dengan teori 8 Golden Rules, situs ini masih
mengalami error, yaitu, pada saat saat saya ingin membuka chapter berikutnya
pada saat halaman pada chapter sebelumnya yang sudah habis, ia tidak mau
membuka chapter selanjutnya pada saat saya mengklik next page, ia malah kembali
ke halaman yang terakhir kita baca dan masih berada di chapter yang kita baca.
Di review oleh: (Adnan Satriyo) (1401123005)
(05 PQT)
Originally created by: Adnan Satriyo
Follow my Twitter: @adnansemprul


Tidak ada komentar:
Posting Komentar