<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://inibudi.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Fungsi_Hash_%28Hash_Functions%29</id>
	<title>Fungsi Hash (Hash Functions) - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://inibudi.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Fungsi_Hash_%28Hash_Functions%29"/>
	<link rel="alternate" type="text/html" href="https://inibudi.or.id/wiki/index.php?title=Fungsi_Hash_(Hash_Functions)&amp;action=history"/>
	<updated>2026-04-22T02:08:34Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://inibudi.or.id/wiki/index.php?title=Fungsi_Hash_(Hash_Functions)&amp;diff=23086&amp;oldid=prev</id>
		<title>Budi: ←Membuat halaman berisi &#039;&#039;&#039;&#039;Fungsi hash&#039;&#039;&#039; (bahasa Inggris: &#039;&#039;hash function&#039;&#039;) adalah sebarang algoritma atau subrutin yang memetakan data dengan ukuran sembarang (variabel) ke data dengan ukuran tetap. Nilai yang dikembalikan oleh fungsi hash disebut sebagai &#039;&#039;&#039;nilai hash&#039;&#039;&#039;, &#039;&#039;kode hash&#039;&#039;, &#039;&#039;digest&#039;&#039;, atau sederhananya &#039;&#039;hash&#039;&#039;. Nilai-nilai ini biasanya digunakan untuk mengindeks tabel hash berukuran tetap yang disebut tabel hash. Penggunaan fungsi ini sangat luas dalam bidang ilmu...&#039;</title>
		<link rel="alternate" type="text/html" href="https://inibudi.or.id/wiki/index.php?title=Fungsi_Hash_(Hash_Functions)&amp;diff=23086&amp;oldid=prev"/>
		<updated>2025-12-16T22:24:41Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;&amp;#039;&amp;#039;&amp;#039;Fungsi hash&amp;#039;&amp;#039;&amp;#039; (bahasa Inggris: &amp;#039;&amp;#039;hash function&amp;#039;&amp;#039;) adalah sebarang algoritma atau subrutin yang memetakan data dengan ukuran sembarang (variabel) ke data dengan ukuran tetap. Nilai yang dikembalikan oleh fungsi hash disebut sebagai &amp;#039;&amp;#039;&amp;#039;nilai hash&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;kode hash&amp;#039;&amp;#039;, &amp;#039;&amp;#039;digest&amp;#039;&amp;#039;, atau sederhananya &amp;#039;&amp;#039;hash&amp;#039;&amp;#039;. Nilai-nilai ini biasanya digunakan untuk mengindeks tabel hash berukuran tetap yang disebut &lt;a href=&quot;/wiki/index.php?title=Tabel_hash&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Tabel hash (halaman belum tersedia)&quot;&gt;tabel hash&lt;/a&gt;. Penggunaan fungsi ini sangat luas dalam bidang ilmu...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Fungsi hash&amp;#039;&amp;#039;&amp;#039; (bahasa Inggris: &amp;#039;&amp;#039;hash function&amp;#039;&amp;#039;) adalah sebarang algoritma atau subrutin yang memetakan data dengan ukuran sembarang (variabel) ke data dengan ukuran tetap. Nilai yang dikembalikan oleh fungsi hash disebut sebagai &amp;#039;&amp;#039;&amp;#039;nilai hash&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;kode hash&amp;#039;&amp;#039;, &amp;#039;&amp;#039;digest&amp;#039;&amp;#039;, atau sederhananya &amp;#039;&amp;#039;hash&amp;#039;&amp;#039;. Nilai-nilai ini biasanya digunakan untuk mengindeks tabel hash berukuran tetap yang disebut [[tabel hash]]. Penggunaan fungsi ini sangat luas dalam bidang ilmu komputer, mulai dari pencarian data yang cepat hingga verifikasi integritas data.&lt;br /&gt;
&lt;br /&gt;
Dalam penerapannya, fungsi hash bertindak sebagai &amp;#039;&amp;#039;fingerprint&amp;#039;&amp;#039; atau sidik jari digital dari sebuah data. Jika input mengalami perubahan sekecil apa pun, maka output yang dihasilkan oleh fungsi hash akan berubah secara drastis. Sifat ini sangat krusial dalam dunia [[kriptografi]], di mana keamanan informasi bergantung pada kemampuan algoritma untuk mendeteksi perubahan atau manipulasi data yang tidak sah. Meskipun ada banyak jenis fungsi hash, semuanya berbagi tujuan matematis yang sama yaitu kompresi representasi data.&lt;br /&gt;
&lt;br /&gt;
== Definisi Matematis ==&lt;br /&gt;
&lt;br /&gt;
Secara matematis, fungsi hash &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; dapat didefinisikan sebagai pemetaan dari himpunan input &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; (kunci) ke himpunan output &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; (slot atau alamat), di mana ukuran himpunan output biasanya jauh lebih kecil daripada himpunan input. Notasi formalnya dapat dituliskan sebagai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;h: K \rightarrow S&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Di mana &amp;lt;math&amp;gt;|K| &amp;gt; |S|&amp;lt;/math&amp;gt;. Karena ukuran domain (input) lebih besar daripada kodomain (output), maka berdasarkan [[prinsip sarang burung merpati]], tabrakan hash (&amp;#039;&amp;#039;hash collision&amp;#039;&amp;#039;) tidak dapat dihindari sepenuhnya. Tabrakan terjadi ketika dua input berbeda, &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; dan &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt;, menghasilkan nilai hash yang sama, yaitu &amp;lt;math&amp;gt;h(x_1) = h(x_2)&amp;lt;/math&amp;gt; dengan &amp;lt;math&amp;gt;x_1 \neq x_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dalam konteks komputasi numerik, salah satu metode hashing yang paling sederhana adalah metode pembagian (&amp;#039;&amp;#039;division method&amp;#039;&amp;#039;). Metode ini memetakan sebuah kunci &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; ke dalam salah satu dari &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; slot dengan mengambil sisa pembagian kunci oleh ukuran tabel. Rumusnya dinyatakan sebagai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;h(k) = k \mod m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Meskipun sederhana, pemilihan nilai &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; sangat penting; biasanya dipilih bilangan prima yang tidak dekat dengan pangkat dua untuk meminimalkan pola tabrakan pada distribusi kunci tertentu.&lt;br /&gt;
&lt;br /&gt;
== Sifat-sifat Penting ==&lt;br /&gt;
&lt;br /&gt;
Fungsi hash yang baik harus memenuhi beberapa kriteria utama untuk memastikan efisiensi dan keamanan. Salah satu sifat yang paling mendasar adalah &amp;#039;&amp;#039;&amp;#039;determinisme&amp;#039;&amp;#039;&amp;#039;. Artinya, untuk input yang sama, fungsi hash harus selalu menghasilkan nilai output yang sama persis, kapan pun dan di mana pun fungsi tersebut dijalankan. Tanpa sifat ini, fungsi hash tidak akan berguna untuk pengambilan data atau verifikasi.&lt;br /&gt;
&lt;br /&gt;
Sifat selanjutnya adalah efisiensi komputasi. Sebuah algoritma hash harus mampu menghitung nilai hash dari sebuah input dengan cepat. Dalam aplikasi [[basis data]] atau sistem berkas, waktu yang dibutuhkan untuk menghasilkan hash tidak boleh menjadi &amp;#039;&amp;#039;bottleneck&amp;#039;&amp;#039; yang memperlambat kinerja sistem secara keseluruhan. Kompleksitas waktu ideal untuk menghitung hash adalah &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; jika panjang input dianggap konstan, atau &amp;lt;math&amp;gt;O(L)&amp;lt;/math&amp;gt; di mana &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; adalah panjang input.&lt;br /&gt;
&lt;br /&gt;
Efek longsoran (&amp;#039;&amp;#039;avalanche effect&amp;#039;&amp;#039;) juga merupakan karakteristik yang diinginkan, terutama dalam fungsi hash kriptografis. Sifat ini menjamin bahwa perubahan kecil pada input (misalnya, membalik satu [[bit]]) akan menyebabkan perubahan yang signifikan dan tidak dapat diprediksi pada output hash. Jika input &amp;quot;A&amp;quot; menghasilkan hash &amp;quot;123&amp;quot;, maka input &amp;quot;B&amp;quot; (yang sangat mirip dengan &amp;quot;A&amp;quot;) tidak boleh menghasilkan hash yang mirip seperti &amp;quot;124&amp;quot;, melainkan sesuatu yang acak seperti &amp;quot;892&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Fungsi Hash Kriptografis ==&lt;br /&gt;
&lt;br /&gt;
[[Fungsi hash kriptografis]] adalah kelas khusus dari fungsi hash yang memiliki properti keamanan tambahan. Fungsi ini dirancang untuk menahan serangan dari musuh yang mencoba menemukan dua input berbeda yang menghasilkan hash yang sama. Algoritma ini merupakan komponen fundamental dalam protokol keamanan modern seperti [[SSL/TLS]], tanda tangan digital, dan teknologi [[blockchain]].&lt;br /&gt;
&lt;br /&gt;
Secara umum, fungsi hash kriptografis harus memenuhi tiga kriteria keamanan utama berikut:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Resistensi pra-peta&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Pre-image resistance&amp;#039;&amp;#039;): Diberikan nilai hash &amp;lt;math&amp;gt;h(x)&amp;lt;/math&amp;gt;, haruslah sulit secara komputasi untuk menemukan nilai input asal &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;. Ini sering disebut sebagai sifat satu arah (&amp;#039;&amp;#039;one-way&amp;#039;&amp;#039;).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Resistensi pra-peta kedua&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Second pre-image resistance&amp;#039;&amp;#039;): Diberikan input &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;, haruslah sulit untuk menemukan input lain &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; di mana &amp;lt;math&amp;gt;x_1 \neq x_2&amp;lt;/math&amp;gt; namun &amp;lt;math&amp;gt;h(x_1) = h(x_2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Resistensi tabrakan&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Collision resistance&amp;#039;&amp;#039;): Haruslah sulit untuk menemukan dua input sembarang &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; dan &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; yang berbeda sedemikian rupa sehingga menghasilkan nilai hash yang sama.&lt;br /&gt;
&lt;br /&gt;
Contoh algoritma hash kriptografis yang populer meliputi keluarga [[SHA-2]] (seperti SHA-256) dan SHA-3. Algoritma yang lebih tua seperti [[MD5]] dan [[SHA-1]] kini dianggap tidak aman untuk tujuan kriptografi karena kelemahan yang telah ditemukan, yang memungkinkan penyerang menemukan tabrakan dengan sumber daya komputasi yang wajar.&lt;br /&gt;
&lt;br /&gt;
== Aplikasi dan Kegunaan ==&lt;br /&gt;
&lt;br /&gt;
Salah satu penggunaan paling umum dari fungsi hash adalah dalam [[struktur data]] yang dikenal sebagai tabel hash. Tabel hash menggunakan fungsi hash untuk menghitung indeks ke dalam array &amp;quot;bucket&amp;quot; atau slot. Dengan cara ini, komputer dapat menemukan lokasi penyimpanan nilai data berdasarkan kuncinya hampir secara instan, tanpa harus mencari melalui seluruh data satu per satu.&lt;br /&gt;
&lt;br /&gt;
Dalam penyimpanan kata sandi (&amp;#039;&amp;#039;password&amp;#039;&amp;#039;), sistem yang aman tidak pernah menyimpan kata sandi pengguna dalam bentuk teks biasa (&amp;#039;&amp;#039;plaintext&amp;#039;&amp;#039;). Sebaliknya, sistem menyimpan nilai hash dari kata sandi tersebut, sering kali ditambahkan dengan data acak yang disebut &amp;#039;&amp;#039;salt&amp;#039;&amp;#039;. Ketika pengguna mencoba masuk, sistem akan menghitung hash dari kata sandi yang dimasukkan dan membandingkannya dengan hash yang tersimpan. Jika cocok, akses diberikan.&lt;br /&gt;
&lt;br /&gt;
Fungsi hash juga digunakan untuk verifikasi integritas data, seperti &amp;#039;&amp;#039;checksum&amp;#039;&amp;#039;. Ketika sebuah berkas diunduh dari internet, pengguna dapat memverifikasi apakah berkas tersebut korup atau telah dimodifikasi dengan membandingkan hash berkas yang diunduh dengan hash asli yang disediakan oleh penerbit. Algoritma seperti CRC32 sering digunakan untuk deteksi kesalahan transmisi, meskipun bukan untuk tujuan keamanan.&lt;/div&gt;</summary>
		<author><name>Budi</name></author>
	</entry>
</feed>