π§ 1. Pengertian Hashing
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
| Tujuan | Penjelasan |
|---|---|
| Akses cepat | Mencapai O(1) rata-rata |
| Pencarian efisien | Tidak perlu traversal |
| Penyimpanan data | Key-value mapping |
| Database indexing | Mempercepat query |
π§ Narasi
Hashing digunakan ketika kita butuh akses data super cepat tanpa harus mencari satu per satu.
βοΈ 3. Komponen Hashing
π Tabel Komponen
| Komponen | Penjelasan |
|---|---|
| Key | Data input |
| Hash Function | Fungsi konversi key β index |
| Hash Table | Array penyimpanan |
| Bucket | Slot tempat data disimpan |
π’ 4. Hash Function
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
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)
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
7
π Konsep
Setiap bucket menyimpan linked list jika terjadi collision.
π§ Narasi
Seperti satu laci berisi beberapa kotak kecil.
πΉ B. Open Addressing
6
π Konsep
Jika terjadi collision, cari slot kosong lain dalam array.
π Metode:
- Linear Probing
- Quadratic Probing
- Double Hashing
βοΈ 8. Operasi Hashing
π Tabel Operasi
| Operasi | Penjelasan |
|---|---|
| Insert | Menambahkan data |
| Search | Mencari data |
| Delete | Menghapus data |
π 9. Proses Searching pada Hash Table
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
| Operasi | Best Case | Worst Case |
|---|---|---|
| Search | O(1) | O(n) |
| Insert | O(1) | O(n) |
| Delete | O(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
| Kekurangan | Penjelasan |
|---|---|
| Collision | Bisa terjadi tabrakan |
| Tidak terurut | Data tidak sorted |
| Memori boros | Jika table besar |
π 13. Aplikasi Hashing dalam Dunia Nyata
π Contoh Penggunaan
| Bidang | Contoh |
|---|---|
| Database | Indexing |
| Password | Hash password |
| Cache | Web caching |
| Compiler | Symbol table |
| Blockchain | Cryptographic hash |
π 14. Hashing dalam Keamanan
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
| Aspek | Hashing | Linear Search | Binary Search |
|---|---|---|---|
| Kecepatan | Sangat cepat | Lambat | Cepat |
| Struktur | Hash table | Array | Sorted array |
| Kompleksitas | O(1) avg | O(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
- Jelaskan pengertian hashing
- Apa itu collision?
- Sebutkan metode penanganan collision
π» Soal Praktikum
- Buat hash function sederhana
- Implementasi hash table
- 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