Tuesday, 10 March 2020

Hashing Table & Binary Tree

Hashing adalah proses memetakan sejumlah besar item data ke tabel yang lebih kecil dengan bantuan fungsi hashing.
Fungsi Hash adalah proses yang mengubah key ke hash keyFungsi ini mengambil key dan memetakannya ke nilai dengan panjang tertentu yang disebut hash value.
Hash Table adalah struktur data yang digunakan untuk menyimpan pasangan nilai kunci. Kumpulan item tersebut disimpan untuk mempermudah menemukannya nanti. Dengan menggunakan fungsi hash untuk menghitung indeks menjadi array of slot dari dimana nilai yang diinginkan dapat ditemukan.




Hash Value = Value%n(panjang arr)














Jika kita ingin insert angka 50 akan terjadi clash karena arr[0] sudah terisi dengan 70 maka kita harus mencari tempat lain dengan linear probing
P=50%10=0        //(70)
P=(50+1)%10=1 //(31)
P=(50+2)%10=2 //( v )




Binary Tree (dalam data structure) adalah kondisi dimana node maksimal hanya boleh memiliki 2 anak, anak kanan dan anak kiri. 













Binary tree menggambarkan node yang diberikan angka yang levelnya berurut dari kiri ke kanan. Indeks arraynya dimulai dari 1 yang diisi dengan node yang paling atas atau yang tidak mempunyai parent. Indeks 0 diisi dengan total jumlah node pada tree tersebut. Dan selanjutnya diisi dari node kiri ke node kanan.
Anak sebelah kiri < Parent < Anak sebelah kanan







Tuesday, 3 March 2020

LINKED LIST II


Intinya dalam membuat linked list head harus berada di paling depan, tail harus berada dipaling belakang dan harus selalu terhubung dan tidak boleh putus

*next = menyimpan alamat dari struct berikutnya(sehingga saling terhubung)

Fungsi insert untuk memasukkan data baru
  1. Pushdepan = data terbaru dihubungkan pada tail dan tail digeser ke data terbaru
  2. Pushbelakang = data terbaru dihubungkan pada head dan head digeser ke data terbaru
Fungsi delete untuk menghapus data sehingga memory dapat dipakai kembali(saat penghapusan isi alamat dari struct yang telah dihapus masih ada dan akan hilang jika ada data baru yang menggunakan memory tersebut)
Sebelum menghapus kita perlu menyelamatkan head dan tail terlebih dahulu agar masih tetap terhubung
  1. Popdepan = data yang dihapus data terakhir(posisi tail)
  2. Popbelakang = data yang dihapus data pertama(posisi head)

Berbeda dengan single link list, double link list selain mempunyai *next juga mempunyai *prev yang menyimpan alamat dari struct sebelumnya sehingga dalam double link list memungkinkan untuk kembali pada struct sebelumnya secara langsung tanpa perlu mencarinya dari head 

Circular link list = link list yang tail->next=head

Data Structure Semester 2 Final Summary

NIM: 2301894331 Nama: Irvan Djanitra Dosen : Henry Chong (D4460) - Ferdinand Ariandy Luwinda (D4522) Kelas : CB01 LINKED LIST Linked li...