Postingan

Final Review

Gambar
AVL Tree AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan. Insertion Di dalam AVL Tree ketika melakukan insertion terdapat 2 metode yaitu Single Rotation dan Double Rotation. Single Rotation(Insertion) Single Rotation dilakukan apabila searah, left-left atau right-right dan Single rotation di lakukan hanya sekali dalam sebuah tree sesuai dengan namanya. Double Rotation(Insertion) Double Rotation dilakukan apabila berbeda arah/tidak searah, left-right atau right-left dan Double rotation adalah rotasi yang dilakukan lebih dari sekali. Deletion Jika node yang akan dihapus berada pada posisi leaf atau node tanpa anak, maka dapat langsung di hapus. Jika node yang akan dihapus memiliki anak, maka proses penghapusannya harus di cek kembali untu...

Heap and Tries

Gambar
Heap Heap sort adalah sebuah metode sorting (pengurutan) angka pada sebuah array dengan cara menyerupai binary tree, yaitu dengan cara memvisualisasikan sebuah array menjadi sebuah binary tree yang nantinya pada binary tree tersebut nilai pada masing-masing index array akan diurutkan.  Heap tree terbagi menjadi 2 jenis yaitu  Max-Heap  dan  Min-Heap , dimana max-heap adalah kondisi heap tree yang memiliki nilai tertinggi berada di node root dan setiap child node memiliki nilai yang lebih kecil dari nilai yang dimiliki parent nodenya. Sedangkan pada min-heap adalah kondisi kebalikan dengan max-heap, pada min-heap nilai terkecil berada di node root dan setiap child node memiliki nilai yang lebih besar dari nilai yang dimiliki parent nodenya. Kemudian ada pula yang diberi nama Min-Max Heap yaitu  min-heap dan max-heap levelnya saling bergantian pada tree Min Heap Di dalam konsep Min Heap, node yang berada dibawahnya atau parent nilainya akan lebih kecil dib...

AVL Tree

Gambar
AVL Tree AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan. Insertion Di dalam AVL Tree ketika melakukan insertion terdapat 2 metode yaitu Single Rotation dan Double Rotation. Single Rotation(Insertion) Single Rotation dilakukan apabila searah, left-left atau right-right dan Single rotation di lakukan hanya sekali dalam sebuah tree sesuai dengan namanya. Double Rotation(Insertion) Double Rotation dilakukan apabila berbeda arah/tidak searah, left-right atau right-left dan Double rotation adalah rotasi yang dilakukan lebih dari sekali. Deletion Jika node yang akan dihapus berada pada posisi leaf atau node tanpa anak, maka dapat langsung di hapus. Jika node yang akan dihapus memiliki anak, maka proses penghapusannya harus di cek kembali untuk m...

Review 1

Gambar
1. Linked List Linked List  adalah suatu struktur data linier. Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk secara dinamik. Pada saat awal program dijalankan elemen linked list belum data. Dalam pembelajaran struktur data, kita akan lebih sering mengenal dengan istilah : Push  untuk menambah data. PushHead  – Menambah data ke barisan paling awal PushTail  – Menambah data ke barisan paling akhir PushMid  – Menambah data ke barisan di tengah (sorting) Pop  untuk menghapus data. PopHead  – Menghapus data paling awal PopTail  – Menghapus data paling akhir PopMid  – Menghapus data ditengah (sesuai parameter value) Circular Single Linked List Circular Single Linked List  adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Double Linked List Doubly Linked List  merupakan Linked List dimana setiap simpul dibagi ...

Hashing Table dan Binary Tree

Gambar
Hashing Table Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record(baris) menjadi angka(hash) lokasi record tersebut dalam sebuah tabel. Adapun kelebihan dari hashing table antara lain sebagai berikut : - Hash table relatif lebih cepat - Kecepatan dalam insertions, deletions, maupun searching relatif sama Berikut adalah fungsi hash yang umum digunakan : Division Remainder Method (Metode Pembagian Bersisa) Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai hashnya.   Metode ini sering menghasilkan nilai  hash   yang sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusi bentrokan.        2. Mid Sq...

Data Structure 3 Maret 2020

Pada pembelajaran tanggal 3 Maret 2020, saya belajar mengenai Linked List terkhususnya Single Linked List. Adapun di dalam Linked List terdapat beberapa fungsi seperti push dan pop . Push terbagi menjadi 3 yaitu : Push Depan(Push Head) Push depan memiliki fungsi yaitu menambahkan data dari depan, adapun contohnya sebagai berikut void pushDepan(int v) { struct data *curr; curr = (struct data *) malloc(sizeof(struct data) ); curr->value = v; curr->next = NULL; if (head == NULL){ head = tail = curr; } else{ curr->next = head; head = curr; } } Push Belakang(Push Tail) Push belakang memiliki fungsi yaitu menambahkan data dari belakang, adapun contohnya sebagai berikut void pushBelakang(int v) { struct data *curr; curr = (struct data *) malloc(sizeof(struct data) ); curr->value = v; curr->next = NULL; if (head == NULL){ head = tail = curr; } else{ tail->next = curr; tail = curr; } ...

Linked List II

Gambar
Linked List Linked List adalah suatu struktur data linier. Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk secara dinamik. Pada saat awal program dijalankan elemen linked list belum data. Elemen linked list (disebut node) dibentuk sambil jalan sesuai instruksi. Apabila setiap elemen array dapat diakses secara langsung dengan menggunakan indeks, sebuah node linked list diakses dengan menggunakan pointer yang mengacu (menunjuk) ke node tersebut. Awal atau kepala linked list harus diacu sebuah pointer yang biasa diberi nama head. Pointer current (disingkat curr) digunakan untuk memindahkan pengacuan kepada node tertentu. Dalam pembelajaran struktur data, kita akan lebih sering mengenal dengan istilah : Push  untuk menambah data. PushHead  – Menambah data ke barisan paling awal PushTail  – Menambah data ke barisan paling akhir PushMid  – Menambah data ke barisan di tengah (sorting) Pop ...