Hash: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Ezraryan (bicara | kontrib)
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan aplikasi seluler Suntingan aplikasi Android
Hash itu bukan hasil enkripsi. Enkripsi dan hash merupakan 2 hal yang berbeda. Enkripsi bisa dikembalikan ke bentuk semula dengan menggunakan metode dekripsi, sedangkan hash tidak.
 
(Satu revisi perantara oleh satu pengguna lainnya tidak ditampilkan)
Baris 1:
[[Berkas:Hash table 4 1 1 0 0 1 0 LL.svg|jmpl|240px|ka|Fungsi Hash yang memetakan nama-nama ke bilangan integer dari 0-15. Tampak adanya kolisi pada kunci "John Smith" dengan "Sandra Dee".]]
 
'''Hash''' adalah suatu [[kode]] dari hasilperhitungan enkripsimatematis yang umumnyaberbentuk terdiri dari huruf maupun angka yangkarakter acak.
Fungsi '''Hash''' banyak sekali digunakan untuk mempercepat pencarian dalam tabel data atau pembandingan data seperti di dalam [[basis data]], mencari duplikasi atau kesamaan (rekaman) di sebuah arsip komputer yang besar, menemukan goresan-goresan yang sama di sebuah [[DNA]], dan sebagainya.
 
Fungsi '''hash''' haruslah stabil (''referential transparent''). Artinya, jika ia dipanggil dua kali oleh masukan yang benar-benar sama (sebagai contoh, string yang mengandung sekuen karakter yang sama), maka haruslah ia memberi hasil yang sama pula. Ini adalah sebuah kontrak dalam banyak bahasa pemrograman yang membolehkan pengguna melakukan ''override'' pada kesamaan [[morfologi]] dan fungsi hash bagi sebuah objek; jika dua objek adalah sama, maka kode hash-nya pun sama. Ini menjadi hal yang sangat penting untuk menemukan sebuah elemen di dalam tabel hash dengan cepat, juga karena dua elemen yang sama akan sama-sama meng-hash ke slot yang sama.
 
Beberapa fungsi hash dapat memetakan dua atau lebih kunci ke nilai hash yang sama, menyebabkan terjadinya [[kolisi]]. Fungsi-fungsi hash ini mencoba memetakan kunci-kunci ke nilai hash seketat mungkin karena tabrakan-tabrakan (kolisi) akan semakin sering terjadi saat tabel hash semakin terisi penuh. Sehingga, nilai hash digit tunggal (jumlah dari ''probing'' setiap nilai hash dibagi dengan jumlah tabel hash) terbatas hanya di 80% ukuran tabel yang ada. Bergantung kepada algoritme yang digunakan, aturan-aturan yang lain mungkin diperlukan, seperti ''double hashing'' dan ''linear probing''.