Posts

AVL Tree

Image
Pada pertemuan kali ini, kita membahas mengenai AVL Tree. AVL Tree ini merupakan Balanced Binary Tree yang pertama kali diciptakan oleh Adelson-Velsky dan Landis sehingga dinamakan AVL.  AVL Tree merupakan Self Balancing Binary Tree, artinya tree ini akan menyeimbangkan banyak data (Node) kiri dan kanan dengan sendirinya supaya tidak berat sebelah. Pada gambar diatas merupakan contoh dari AVL Tree, lalu apa maksud dari angka yang berada diatas masing-masing Node? Angka tersebut merupakan Balanced Factor yang menghitung selisih anak kiri terbanyak dan anak kanan terbanyak dari Node tersebut. Pada AVL Tree, Balanced Factor dari setiap Node nya tidak boleh melebihi -1 atau 1. Contoh gambar dibawah. Pada gambar diatas ini, data yang diinsert adalah 3, 1, dan 2 secara berurutan, sehingga menghasilkan tree paling kiri. Ternyata Balanced Factor dari Node dengan nomor 3 adalah 2, sudah melanggar syarat AVL yang tidak boleh diatas -1 atau 1. Oleh karena itu akan di rotate/putar nod...

Summary Data Structure

Image
Untuk post kali saya hanya akan meng-review kembali post saya yang sebelum-sebelumnya. Dan pada akhir review akan ada contoh program yang bekerja pada cashier dengan menggunakan Linked List. SINGLE LINKED LIST Single Linked-List merupakan Barisan Data yang disambung hanya dengan 1 arah, yaitu next. Jadi anggap kita dari kota B merupakan next dari kota A, jika kita dari kota A pergi ke kota B maka kita tidak dapat kembali lagi ke kota A. Seperti itulah Single Linked-List. Contoh-contoh code saya berikan dalam bahasa C. Hari ini saya mempelajari hal-hal dibawah ini : 1. Create Node     Function ini biasanya kita gunakan untuk mengalokasikan memori baru menampung data yang baru. Berikut contoh codenya. (Create Node hanya penamaan saja, kalian boleh ubah nama function sesuka kalian ya.) #include<stdio.h> #include<string.h> #include<stdlib,h>       //Library ini digunakan untuk malloc, bisa juga dengan malloc.h struct Mahasiswa { ...

Binary Search Tree

Hari ini saya akan membagikan tentang Binary Search Tree, apa bedanya dengan Binary Tree biasa?? Nah pada pemrograman Binary Tree biasa, kita hanya perlu menginput value dari node tersebut dimanapun. Pada Binary Search Tree (BST) value yang kita input kan akan dilihat dari lebih kecil atau lebih besar dari node utamanya dan posisinya pun bergantung dari lebih kecil lebih besar tersebut. Nah kita mulai saja contoh code nya ya Seperti biasa kita membuat struct nya terlebih dahulu, struct Tree { char name[21]; int age; Tree *left, *right; } *root; Setelah itu kita membuat fungsi untuk mengalokasikan memori baru, Tree *createTree(char *name, int age) { Tree *temp = (Tree*) malloc (sizeof(Tree)); strcpy(temp -> name, name); temp -> age = age; temp -> left = temp -> right = NULL; return temp; }   nah setelah kita memiliki objek nya dan fungsi untuk mengalokasikan memorinya, kita harus membuat fungsi dimana dia melihat v...

Hashing, Hash Table & Binary Tree

Image
HASHING & HASHTABLE Hashing merupakan Data Structures yang menggunakan function yang biasa disebut Hash Function, Hashing digunakan karena dapat mengakses alamat lebih cepat dengan di tandai menggunakan key. Contoh Gambar : Gambar disamping salah satu contoh hashing dengan function x % 10. Jika salah satu value dari list disamping 19, maka hashing akan menyimpan value tersebut di Hash Table ke 9. Lalu bagaimana dengan String?? Akan dicontohkan dibawah ini. Yang pertama kita buat terlebih dahulu struct atau tables yang nanti akan menampung value. Seperti Linked List, disini juga ada Head dan Tail. struct Node{ char name[100]; char age[100]; char key[205]; Node *next; } *tableHead, *tableTail; lalu ada Create Node, seperti Linked List, function ini menambah data baru dengan memesan memori untuk si data baru ini. Node *createNode(char name[100], char age[100]){ Node *temp = (Node *)malloc(sizeof(Node)); strcpy(temp->name, name); strcpy(temp->ag...

Single Linked List

Single Linked-List merupakan Barisan Data yang disambung hanya dengan 1 arah, yaitu next. Jadi anggap kita dari kota B merupakan next dari kota A, jika kita dari kota A pergi ke kota B maka kita tidak dapat kembali lagi ke kota A. Seperti itulah Single Linked-List. Contoh-contoh code saya berikan dalam bahasa C. Hari ini saya mempelajari hal-hal dibawah ini : 1. Create Node     Function ini biasanya kita gunakan untuk mengalokasikan memori baru menampung data yang baru. Berikut contoh codenya. (Create Node hanya penamaan saja, kalian boleh ubah nama function sesuka kalian ya.) #include #include #include       //Library ini digunakan untuk malloc, bisa juga dengan malloc.h struct Mahasiswa {      char nama[21];      int ID;      Mahasiswa *next; } *head, *tail; void createNode(char *name, int ID) {          Mahasiswa *temp = (Mahasiswa*) malloc (sizeof(Mahasiswa));   ...

Circular Linked List

Image
Pada Single dan Double Linked List kita mempelajari bagaimana data yang satu saling berhubungan dengan data selanjutnya atau sebelumnya. Pada materi hari ini, saya akan menjelaskan Double Circular Linked List, Single dan Double. Circular Linked List, mirip seperti Linked List. Perbedaannya yaitu pada Data/Node terakhir tidak menunjuk next adalah NULL, tetapi Data/Node terakhir (Tail) menunjuk nextnya adalah Data/Node pertama (Head). Jadi pada Circular Linked List tidak ada pointer yang menunjuk NULL. Lalu apa perbedaannya antara Single dan Double ?? Circular Single Linked List hanya dapat mengakses Data selanjutnya atau disebut next, namun tidak dapat mengakses data sebelumnya. Pada circular, Tail dapat mengkases Head, tapi Head tidak dapat mengakses Tail. Gambar disamping merupakan penggambarannya. Sedangkan pada Circular Double Linked List, masing-masing Node/Data dapat mengakses data selanjutnya (Next) dan sebelumnya, biasa kita sebut Prev. Pada contoh gambar disamping menunj...