Skip to main content

Hashtable dan Binary Tree

10 Maret 2020

Hashing adalah sebuah peng-imputtan data dengan fungsi yang spesial yaitu disebut dengan 'Hash Table' dengan pencarian dengan sebuah tektik dari sebuah kunci untuk mempercepat pencarian sesuai lokasi record yang telah tersimpan dari sebuah tabel.
Keunggulan yang dapat kita dapatkan dari hash table ini ada waktu untuk pengakses yang cepat, dan tiap penyimpanan yang dilokasi kan sesuai pada table penyimpanannya. Tetapi kebanyakan kasus dimana sering sekali ditemukan hash table yang tiap lokasi nya mempunyai angka hash(tabel) yang sama dimana hal ini dapat menyembabkan tabrakkan.
Operasi pada hash table yaitu:

  1. Insert: peng-inputtan sebuah key maupun nilai
  2. Find: peng-inputtan sebuah key, dimana akan terhubungkan dengan hash table tersebut
  3. Remove: peng-inputtan sebuah key, dimana akan berhubungan dengan nilai table pada hashtable, kemudian penghapusan nilai yang sama dengan key akan terhapus
  4. getIterator: memberitahu isi table satu per satu, dengan memeriksa nilai tiap tablenya
Untuk case collusion dimana ada dua angka yang dimasukkan ke dalam fungsi hash menghasilkan nilai yang sama.
Contoh:
Input angka 5,25;
Hash(5) = 5%20 = 5;
Hash(25)=25%20=5;
Disana kita dapat melihat bahwa dari dua angka tersebut menghasilkan nilai yang sama, ini tentu akan menyebabkan tabrakkan. Disini juga kita dapat mengatasi hal ini dengan 2 cara:
    1. Linear Probing
    Dimana ini akan mengecek terus tempat yang belum terisi dan akan memasukkan nya kedalam.
    2. Quadratic Probing
    Penanganannya mirip dengan cara linear probing, hanya pencariannya tidak satu-satu, tetapi quadratic(12, 22, 32, 42, ...)

Binary Search Tree

Binary Search Tree atau dapat disebut dengan (BST) biasanya dapat ditemukan ciri-ciri seperti:
  1. Tidak ada node yang tidak memiliki nilai
  2. Nilai node cabang kiri lebih kecil daripada nilai node cabang kanan
  3. Nilai node cabang kanan lebih besar daripada nilai node cabang kiri
  4. Cabang kiri maupun kanan dapat memiliki anak(leaf) secara rekursif

Comments

Popular posts from this blog

Heap and Tries

Heap adalah struktur data berbasis tree yang khusus di mana tree itu adalah pohon biner lengkap. Heap sendiri memiliki keunikkan nya sendiri yaitu dia lebih berfungsi dalam penginsertan karena bagian akar kita dapat lihat lebih teratur dan seimbang. Penginsertan nya memiliki kecepatan 0(1) dan worst case nya 0(log n)    Ciri - ciri heap sendiri yaitu : - Bagian akar memiliki nilai yang paling besar - Menghapus akar pada tree akan sangat cepat - Anak memiliki nilai yang lebih rendah daripada orang tua Heap dapat dibedakan menjadi dua jenis yaitu: 1. Max-Heap: Dalam Max-Heap key yang di input akan simpul akar harus paling besar di antara kunci yang ada di semua anak-anak itu. Pengrekursif untuk semua sub-tree tersebut. 2. Min-Heap: Dalam Min-Heap kunci yang ada di simpul akar harus lebih kecil dari antara kunci yang ada di semua anak-anak itu. Rekursif juga di implimentasikan pada semua sub-tree tersebut.   Tries ...

Data Structure

3 Maret 2020 Dalam pembelajaran data structure ini, kita dapat mengimplementasikan konsep linked list maupun double linked list sesuai kebutuhan. Dalam memasukkan data kita dapat mengunakan pushHead maupun pushTail tergantung kebutuhan dan penghapusan data dapat menggunakan popHead maupun popTail. Langkah - langkah yang dapat dilakukan adalah: Buat struct yang anda perlukan sesuai dengan data types Lalu buat fungsi pushHead dan pushTail Lalu buat fungsi popHead dan popTail Setelah semua itu panggil semua fungsi di dalam main sesuai kebutuhan Tips untuk membuatnya yaitu lihat alur selalu gunakan malloc pada saat yang dibutuhkan gunakan arrow operation untuk mengakses pointer karna kita menggunakan alamat