Posts

AVL TREE

Image
AVL TREE & B- Tree AVL TREE AVL Tree merupakan subtype dari Binary Search Tree. AVL sendiri merupakan kepanjangan dari nama pembuat dari konsep AVL Tree ini, yaitu Adelson,Velskii dan Landis. Singkatnya,AVL Tree merupakan dynamic self balancing Binary Search Tree.AVL Tree dijamin memiliki perbedaan dalam subtree kanan dan subtree kiri antara 1,0, atau -1. Adanya AVL Tree ini mempercepat searching algorithm dari BST sendiri dengan waktu O(log n). Dalam AVL Tree ini terdapat beberapa kasus yaitu: LEFT LEFT CASE: left - left case ini terjadi apabila terjadi ketidakseimbangan di sebelah kiri child dari subtree kiri sehingga lakukan right rotation. Contoh LEFT LEFT Case dengan right rotation. LEFT RIGHT CASE: Left - right case ini terjadi apabila terjadi ketidakseimbangan di sebelah kanan child dari subtree kiri sehingga lakukan left rotation, lalu right rotation. Contoh Left Right rotation sehingga rotate kiri terlebih dahulu lalu rotate ka

Rangkuman Semester 2

Image
I.Pointer Pointer merupakan suatu tipe data yang digunakan untuk mengambil suatu address/alamat.Suatu variabel akan disimpan dalam memori RAM (Random Access Memory) dimana isi dari variabel tersebut akan disimpan sesuai dengan alamat dari variabel tersebut.Untuk mengakses data variabel tersebut,dibutuhkan pointer yang biasa ditandakan dengan aestrisk(*). A.Single Linked List Single Linked List merupakan struktur data yang terhubung satu sama lain melalui pointer dimana pointer tersebut akan menunjuk ke struktur data / node lainnya.  Ilustrasinya sebagai berikut : Contoh Single Linked List. disebut dengan Single Linked List karena hanya memiliki single link untuk menunjuk alamat ke struktur data / node selanjutnya. Node terakhir menunjuk alamat ke NULL dimana NULL digunakan sebagai kondisi berhenti saat pembacaan isi dari linked list tersebut.  Memasukan node ke awal barisan. Circular Single List terjadi saat node pertama yang diinput mengambil alamat node

Binary Search Tree

Image
Binary Search Tree Binary Search Tree (BST) merupakan sebuah struktur data yang digunakan untuk menyimpan suatu barang (seperti angka,nama dan lain lainnya) dalam suatu memori. Binary Search Tree menyimpan kunci mereka secara tersortir.Disebut Binary  Tree karena setiap tree nya memiliki maximum 2 anak / child dan disebut search tree karena dapat mencari suatu angka dalam waktu O(Log (n)).Yang membedakan dari Binary Search tree dan Binary Tree adalah,sebelah kiri sub tree dari suatu node harus lebih kecil dari node tersebut.Dan sebelah kanan sub tree dari suatu node harus lebih besar dari node tersebut.Terdapat operasi basic dari Binary Search Tree yaitu : a).Insert Memasukan sebuah data ke dalam BST.Apabila suatu data lebih kecil dari node data/key nya,maka melakukan pengecekan secara berulang.Sedangkan apabila suatu data lebih besar dari node data/key nya maka akan melakukan suatu pengecekan secara berulang.Ulangi sampai menemukan node yang kosong untuk dimasukan oleh dat

Hash Tables and Trees

Image
Hashing,Hash Tables,Trees and Binary Tree Hashing Hashing merupakan tehnik untuk menyimpan dan mengambil kunci dengan cepat.Hashing mengubah panjang input ke string dengan ukuran tetap.Artinya,seberapa banyak panjang input yang diberikan,dapat diubah menjadi array dari string dan angka melalui suatu algoritma.Pesan yang akan di hashing adalah input,algoritma yang akan digunakan untuk hashing disebut hash function dan hasilnya disebut hash value. Hash Tables Hash tables adalah suatu table / array  dimana tempat menyimpan string yang original.Ukuran hash table biasanya lebih sedikit dari jumlah string yang mungkin sehingga beberapa string memiliki hashed key yang sama. Hash Function Ada banyak cara untuk mengubah suatu string ke key,yaitu bisa dengan : a).Mid - square :  Mengkuadratkan suatu string,lalu gunakan digit tengah sebagai hash key.Seperti contohnya nilai = 3121. Di kuadratkan menjadi 9740641 lalu diambil digit tengah yaitu 406 sebagai hash keynya. b).Division

Stack & Queue

Image
Stack and Queue I.Stack Stack merupakan basic dari data structure yang merepresentasikan tumpukan /stack aslinya ,dimana yang terakhir dimasukan,keluar pertama kali.Sebagai ilustrasinya,dapat dibayangkan dengan tumpukan buku dimana kita hanya dapat mengambil buku teratas untuk memindahkan ke sesuatu tempat.Implementasi dari stack juga disebut dengan LIFO(Last In First Out). Konsep stack digunakan pada DFS(Depth First Search) yang merupakan algoritma untuk mencari suatu data pada trees. Terdapat 3 operan dasar di stack yaitu,push (memasukan suatu data),pop (delete data teratas) ,peek (melihat data teratas). Operan dasar di Stack. Sumber :https://cdn.journaldev.com/wp-content/uploads/2018/05/swift-stacks-diagram.png Implementasi nya dalam C sebagai berikut: #include <stdio.h> #include<stdlib.h> typedef struct LinkedList{ int data; struct LinkedList *next; }stackLinkedList; stackLinkedList *top = NULL; void push(int data){ stackLink

Single Linked List dan Double Linked List

Image
I.Pointer Pointer merupakan suatu tipe data yang digunakan untuk mengambil suatu address/alamat.Suatu variabel akan disimpan dalam memori RAM (Random Access Memory) dimana isi dari variabel tersebut akan disimpan sesuai dengan alamat dari variabel tersebut.Untuk mengakses data variabel tersebut,dibutuhkan pointer yang biasa ditandakan dengan aestrisk(*). A.Single Linked List Single Linked List merupakan struktur data yang terhubung satu sama lain melalui pointer dimana pointer tersebut akan menunjuk ke struktur data / node lainnya.  Ilustrasinya sebagai berikut : Contoh Single Linked List. disebut dengan Single Linked List karena hanya memiliki single link untuk menunjuk alamat ke struktur data / node selanjutnya. Node terakhir menunjuk alamat ke NULL dimana NULL digunakan sebagai kondisi berhenti saat pembacaan isi dari linked list tersebut.  Memasukan node ke awal barisan. Berikut Implementasi Single Linked List dalam suatu program C : #include<