Hashing (Tabel Hash)


🧭 1. Pengertian Hashing

https://images.openai.com/static-rsc-4/HpWQ1nF-nb2VdNzWPHKvdPQXPmhTjO0wNt4zz36Cg3kXgH8TrFdr6Rht2iJf0arNVV_FVTKU5ipUo9-qPc_HQYXPIe_3DdTfrxIFG0RhK0JmfbNJdC12wfcQVs5BStUrWNzhaanQ9DMZpmettVxiwSF6xmTuLqFeQNQZy4odSMMTUJMFfr-a4_uVo2VPbVaL?purpose=fullsize
https://images.openai.com/static-rsc-4/Ys8mkSHCHrmpAYfpjRSwzLjnXDHj1ldFLietlrGCyCL4ldCCJony3y1AZwaJfcmiB4VU4--myLuEzlRO41RnwrqxUurib_D5BusFBxHaAX3JgJQzVp4I2aoFcUL1-GODlPoTcz_0Tf1Mu3JRECc0blmlS8meuJc0aD_Kx1twQWvISAcPAeHZqIFE6kg61s2O?purpose=fullsize
https://images.openai.com/static-rsc-4/IBEzxzlLcSd64YAu8bN6204QTzc5BSYOqduHMxD7pKmop3XrZ8zWeRhae_xp4epZXZ0DDiNgrCcHWwBY-lyNLod9OxkLiZoDE8oPk47RDTo85LBtRNn3g9IHB9hWGwvESq3CB4KSaFNMyKmvxeszTe0JVSBTjYBMf3wS2xbJDHzT0HPeJ8mAMwEDjC2XJyBS?purpose=fullsize

6

πŸ“– Definisi

Hashing adalah teknik untuk mengubah data (key) menjadi indeks pada struktur data (biasanya array) menggunakan fungsi hash, sehingga pencarian data menjadi sangat cepat.


🧠 Narasi Konseptual

Bayangkan kamu mencari buku di perpustakaan:

  • Tanpa hashing β†’ cari satu per satu
  • Dengan hashing β†’ langsung ke rak tertentu berdasarkan kode

➑️ Hashing membuat akses data menjadi sangat cepat seperti β€œjalan pintas”.


🎯 2. Tujuan Hashing

πŸ“Š Tabel Tujuan

TujuanPenjelasan
Akses cepatMencapai O(1) rata-rata
Pencarian efisienTidak perlu traversal
Penyimpanan dataKey-value mapping
Database indexingMempercepat query

🧠 Narasi

Hashing digunakan ketika kita butuh akses data super cepat tanpa harus mencari satu per satu.


βš™οΈ 3. Komponen Hashing

πŸ“Š Tabel Komponen

KomponenPenjelasan
KeyData input
Hash FunctionFungsi konversi key β†’ index
Hash TableArray penyimpanan
BucketSlot tempat data disimpan

πŸ”’ 4. Hash Function

https://images.openai.com/static-rsc-4/IBEzxzlLcSd64YAu8bN6204QTzc5BSYOqduHMxD7pKmop3XrZ8zWeRhae_xp4epZXZ0DDiNgrCcHWwBY-lyNLod9OxkLiZoDE8oPk47RDTo85LBtRNn3g9IHB9hWGwvESq3CB4KSaFNMyKmvxeszTe0JVSBTjYBMf3wS2xbJDHzT0HPeJ8mAMwEDjC2XJyBS?purpose=fullsize
https://images.openai.com/static-rsc-4/7fBftEP3ZDo4VQuNgWrtYw5ApTXvR0DnME5vrvYjANy4lU7fZPsKfziddp655_fIO1_w3U6j-dA1d5HmVZBWf1LuXr94SoyTFIMWVgTqzDKoOo5rRw-CuG75OusftUkym2PYZs33dg0U4h0ocqcjY0HsfWUBz-n6RGUx8j80MLZ-QuKowKNpMO_JzIKbUsnA?purpose=fullsize
https://images.openai.com/static-rsc-4/oKP9hvMQ8Jq6ryRGdddiLl8W0dTr-ecCtSv8i4NCBGs317_PQeKXH82lGDB5t3Z_ZJ3yccIFmSjSmmGcI2zbKP3ZP6GIxbZYrSx93mz9L3bRyQ-i5SD46csccKZzDKqxHMZi4XpwvxXIptGT_TAlSFvA_wac-7h43XerlV5HIZtGCFvHxErnRqfZ2LLCqxw_?purpose=fullsize

9

πŸ“– Definisi

Hash function adalah fungsi yang mengubah key menjadi indeks dalam hash table.


πŸ“Œ Contoh Fungsi Hash

h(k) = k mod m

🧠 Narasi

Seperti mesin sortir otomatis:

  • Input: barang (key)
  • Output: rak penyimpanan (index)

🧱 5. Hash Table

https://images.openai.com/static-rsc-4/IBEzxzlLcSd64YAu8bN6204QTzc5BSYOqduHMxD7pKmop3XrZ8zWeRhae_xp4epZXZ0DDiNgrCcHWwBY-lyNLod9OxkLiZoDE8oPk47RDTo85LBtRNn3g9IHB9hWGwvESq3CB4KSaFNMyKmvxeszTe0JVSBTjYBMf3wS2xbJDHzT0HPeJ8mAMwEDjC2XJyBS?purpose=fullsize
https://images.openai.com/static-rsc-4/9E6KOJzPO3Mn1UWf12zF7lnXCW9q3GF078QhRUqNYeTQ71bn08h-9Qrir1zafJBcNgEXdoO4WuZGJs3wFLTUzq1ogydWUtd5qJQED-ioHPkKwNyP0YE1H_O2eWwqEUbcnzkY1qm9G-BUpMSc_UcYeZbOWXU4Vc9Z8APV039WToTvrKRYiXwiIga69qF_9yMY?purpose=fullsize
https://images.openai.com/static-rsc-4/sc79j73XV2yKo9ekpeBJxU9gAyh03n5BLJazcBWufjYfhnw8x6PJyS3tU5wpNQSEabLNBYMsRd4ZI_Ru4DV_x1KZfG3IAuPq7fXNMgOgsDUh17bzHmc8Yrki8Zcl-Ud1LRQpuK0ZQizgrym8wsVmZYDjOdh48pD5T9tKbWETm-B_mcQQYIJsHA3Cxs4wsneU?purpose=fullsize

7

πŸ“– Definisi

Hash table adalah struktur data array yang menyimpan data berdasarkan hasil hash function.


🧠 Narasi

Hash table seperti:

  • Lemari dengan banyak laci
  • Setiap laci punya nomor unik

⚠️ 6. Collision (Tabrakan Hash)

https://images.openai.com/static-rsc-4/rHFJMMs1lFC2PvNo_R5RCVEQCQTwx-aH-iYwOcKk9Dtm28-qFqlpXLKGAUew7lEcgrGaEEUZPzpMsCclOI7IGIcDh8dHUGfQZovfuxhkNx0KmOJ7RirqkhlSYd83qSTaEBv8VhDKYJ22GWEL8tdiRgmgmLtkGA-oawZV6uGMvRvienU9SgwpxAdkZHm3aqDM?purpose=fullsize
https://images.openai.com/static-rsc-4/4S3RDPUiCSvTtxXs6ArykhRiuZszn0aoMzxA0E60GQFTKFonwqv-oR05_3n-LEgDoyivThE1vq45KLHw3V-Ku1mJW4XrhZoFqetFrMhLeiKd1iMQqOfo8PmLwv44QMQTH_qBws2RtNMzjS7SBNtk168j6Zqf5aG4JR3ZWoCpAHe9Z1P2jHacVs42KonzWgUw?purpose=fullsize
https://images.openai.com/static-rsc-4/TuM4OTOwm_umnFuPj41Hb5-mh__ZeTMoF6m5eRXIOzGaPJRbekSWdb4k8ktpgVAmBrw-tHf5mas39wYggKjck0vb4e3P7geATAkPSi5ny6WTbtEnDvDhqh4YftOCDCnG3wLyPxfmxRcZxtzd_oRbmiUNwgmA6ben_iiVDLajN1j1lgNtfLIURU8RkVwRzi-W?purpose=fullsize

6

πŸ“– Definisi

Collision terjadi ketika dua key berbeda menghasilkan indeks yang sama.


🧠 Narasi

Seperti dua orang mendapat nomor loker yang sama:

  • Harus ada cara untuk menyelesaikannya

πŸ”„ 7. Penanganan Collision


πŸ”Ή A. Chaining

https://images.openai.com/static-rsc-4/4S3RDPUiCSvTtxXs6ArykhRiuZszn0aoMzxA0E60GQFTKFonwqv-oR05_3n-LEgDoyivThE1vq45KLHw3V-Ku1mJW4XrhZoFqetFrMhLeiKd1iMQqOfo8PmLwv44QMQTH_qBws2RtNMzjS7SBNtk168j6Zqf5aG4JR3ZWoCpAHe9Z1P2jHacVs42KonzWgUw?purpose=fullsize
https://images.openai.com/static-rsc-4/Ys8mkSHCHrmpAYfpjRSwzLjnXDHj1ldFLietlrGCyCL4ldCCJony3y1AZwaJfcmiB4VU4--myLuEzlRO41RnwrqxUurib_D5BusFBxHaAX3JgJQzVp4I2aoFcUL1-GODlPoTcz_0Tf1Mu3JRECc0blmlS8meuJc0aD_Kx1twQWvISAcPAeHZqIFE6kg61s2O?purpose=fullsize
https://images.openai.com/static-rsc-4/mHeF29VMAD3-3NOacYKkOqPC-aewqL63MoQjzNvgS8YpyX7akcGkwxK2QIJJfXXo-hap8JmZzSkHpezCxcZtqOops-unV7kamsjuqRZkUBaXbCXRRER8RO2fzLOhPML3gopfAH0HVaYfMSn0jvYLbO0sYRLoLblLV8L5iRB51IVNlKzr87yhkNC_syJSxk1m?purpose=fullsize

7

πŸ“– Konsep

Setiap bucket menyimpan linked list jika terjadi collision.


🧠 Narasi

Seperti satu laci berisi beberapa kotak kecil.


πŸ”Ή B. Open Addressing

https://images.openai.com/static-rsc-4/ItvXhiNPXoepahQrHdlJRNm7dJkZ9TPw0J-B834DeGk6L4HmEkpIHsDsy9tp2Ikqw1WSLkC4HgHVAkioaNqYGzTDUqXCeGsADBZF7mPu1vI7R32ojcgOPofv5yj8djhRFV03kQPkfpCBSE3-D6ATnZ3qlIDs07SJBt6ic8pyYU48I6KsyY2giHj8WeGv5ips?purpose=fullsize
https://images.openai.com/static-rsc-4/mlgKSaV2J96p_xOiYKlxn7mwW0IMA_pJg2GitrmgqNvszWpOzQ29lY2hP6PYzww_MaM9g75EtA0cLm--bBCcorabGhHOmMuW0mpV5c0WUP0zEsq7AhIE_WDh1IlhuQ4Ik-JfOhcHXC-js5C5yvjM35bKX5jCWDwJtEF4sLcnXzSuEftWV5Nbh7HrtRpC5mXV?purpose=fullsize
https://images.openai.com/static-rsc-4/VDH9VlwfF7-eSSWVg-OHg-3w7P6c8rwh8wgmr20y_AV3_S4TyxqUvM9p4JtXrMZp1IHxmLMPghw7_OqO0alzUvnN1UpvKYkWIUsW5uzs83ObVI6kEWSRdCJxU8TqvHSIp17YOsTfI6YX1g-qJ5qn1G3ILiibcT2R4W0xrkIWiyi61hhGRzknUH19OCzcpNws?purpose=fullsize

6

πŸ“– Konsep

Jika terjadi collision, cari slot kosong lain dalam array.


πŸ“Œ Metode:

  • Linear Probing
  • Quadratic Probing
  • Double Hashing

βš™οΈ 8. Operasi Hashing

πŸ“Š Tabel Operasi

OperasiPenjelasan
InsertMenambahkan data
SearchMencari data
DeleteMenghapus data

πŸ” 9. Proses Searching pada Hash Table

https://images.openai.com/static-rsc-4/pvlKzcw26aJialVXTeVEUL9Zojsh9gk-dAKGb2KIWeON1bFi3alY58N6dK8NS-2ZjAaJvs15MC6fYp7cC-cJPbHofzB1WmByONGapYSMXDBr3R2BO0Ubm9Hqy22nvV2bbq3v9RPI4w5C3gRF2h5suxsNvZDBkhiUdDOimRLrnkDykEMNi2bwc4O82Wec4igD?purpose=fullsize
https://images.openai.com/static-rsc-4/TuM4OTOwm_umnFuPj41Hb5-mh__ZeTMoF6m5eRXIOzGaPJRbekSWdb4k8ktpgVAmBrw-tHf5mas39wYggKjck0vb4e3P7geATAkPSi5ny6WTbtEnDvDhqh4YftOCDCnG3wLyPxfmxRcZxtzd_oRbmiUNwgmA6ben_iiVDLajN1j1lgNtfLIURU8RkVwRzi-W?purpose=fullsize
https://images.openai.com/static-rsc-4/nQgjzhnGUmhC0q-DsZ067C-nayLb6bMexoIKL6BjCHeTJg0-ZpShbA0eJpQxdq9GqYR5y5xtuhxo6_XwdjidpObWu_wZ1KWy0Q8z0jYG3urVIMhREDUkGSQTeggQNDhn5TRvjncM4-gMuxlMLRKsybFAgxgdKxM9cG5i-eLwETWz27k4awKFRbedH1Lebsg0?purpose=fullsize

7

πŸ“– Konsep

  • Key β†’ hash function β†’ index β†’ data ditemukan

🧠 Narasi

Tidak seperti searching biasa:

  • Tidak perlu cek satu per satu
  • Langsung ke lokasi data

⏱️ 10. Kompleksitas Hashing

πŸ“Š Tabel Kompleksitas

OperasiBest CaseWorst Case
SearchO(1)O(n)
InsertO(1)O(n)
DeleteO(1)O(n)

🧠 11. Kelebihan Hashing

πŸ“Œ Narasi

Hashing sangat kuat karena:

  • Sangat cepat (O(1) rata-rata)
  • Cocok untuk database
  • Digunakan di sistem modern

⚠️ 12. Kekurangan Hashing

πŸ“Š Tabel

KekuranganPenjelasan
CollisionBisa terjadi tabrakan
Tidak terurutData tidak sorted
Memori borosJika table besar

🌐 13. Aplikasi Hashing dalam Dunia Nyata

πŸ“Œ Contoh Penggunaan

BidangContoh
DatabaseIndexing
PasswordHash password
CacheWeb caching
CompilerSymbol table
BlockchainCryptographic hash

πŸ” 14. Hashing dalam Keamanan

https://images.openai.com/static-rsc-4/4Ibs4JuDpOLNxAwqLcU1gMumcGNU4fEnn3p4dJHb0o2GRnCG4U0Id7RKokb2VvIv1fjkGnSObgHVCP8eRmHAYuhRUKappM0Yp04k0kKO4TzV8el0gA2ggDP3koZCHJRKvKHDubcX-a5X8VnUWk62OAqMa2Dks_pogEbcH3vE9jv7F7qbX1bcFd51w-5CNOPM?purpose=fullsize
https://images.openai.com/static-rsc-4/UnMNTaTiIXkJppVMEDpuujb9bxfIm8HcloFJwNJY4RcBLTFw9LDQSI1lky5e6lXzwVNW6khDZV1cYYYf6JGEM2oWZKDq20RnHknIwuwQb_wzQFWV_j0OqRAN37DH11KOJI2CEF-t8tEkrILI3OQz3Eo5EXjcavAlAVzJz2FiZawt74UnL-2eOOntuZDfX2G3?purpose=fullsize
https://images.openai.com/static-rsc-4/UmnArLxiOLEEfoxztj2aKW8CtNmF40fxKKpSxHqW_X5A78RpeR1Q6lTnM_DvK7yEE6BaYRAEIEKVAPv_gWltHpUBawctB9FxaKh7p0RkwEkYyf_4UOhHkelg0hdxqJ-gnDlP5xfWSXxyaheekNTVLYQT1bNYb_gKwU_sA7cTzWGrrhsV8shca-EAad0Pv3fX?purpose=fullsize

6

πŸ“– Konsep

Password tidak disimpan langsung, tetapi dalam bentuk hash.


🧠 Narasi

Jika database bocor:

  • Password asli tetap aman (tidak langsung terlihat)

πŸ’» 15. Contoh Implementasi Hash Table (C++)

#include <iostream>
using namespace std;#define SIZE 10int hashFunction(int key){
return key % SIZE;
}int main(){
int hashTable[SIZE] = {0}; int key = 25;
int index = hashFunction(key); hashTable[index] = key; cout << "Data disimpan di index: " << index;
}

πŸ“Š 16. Perbandingan Hashing vs Searching

πŸ“Š Tabel

AspekHashingLinear SearchBinary Search
KecepatanSangat cepatLambatCepat
StrukturHash tableArraySorted array
KompleksitasO(1) avgO(n)O(log n)

πŸ“š 17. Ringkasan Materi

  • Hashing adalah teknik mapping key β†’ index
  • Menggunakan hash function
  • Struktur utama: hash table
  • Masalah utama: collision
  • Solusi: chaining & open addressing
  • Sangat cepat untuk pencarian data

πŸ“ 18. Latihan / Diskusi

✏️ Soal Teori

  1. Jelaskan pengertian hashing
  2. Apa itu collision?
  3. Sebutkan metode penanganan collision

πŸ’» Soal Praktikum

  1. Buat hash function sederhana
  2. Implementasi hash table
  3. Simulasi collision handling

🎯 Penutup

Hashing adalah salah satu teknik paling penting dalam struktur data modern, karena:

  • Digunakan di database
  • Digunakan di keamanan sistem
  • Digunakan di sistem caching dan blockchain