Postingan

Heap

Heap dibagi 2 yaitu max heap(elemen anak dari node lebih kecil) dan min heap (elemen anak dari node lebih besar) . Heap bisa diimplementasi dengan menggunakan array. Penggunaan heap bisa dalam selection algorithm, Djikstra’s algorithm dan Prim algorithm. Untuk sorting juga ada Heap Sort. Elemen dari heap disimpan secara sekuensial dalam array dari atas ke bawah, kiri ke kanan. Root selalu ditempatkan di index ke 1 untuk memudahkan perhitungan. Cara menentukan node relasi dari node x. Parent= x/2, left-child = 2 * x, right-child = 2*x+1. Insert dalam Min-Heap 1.       Taruh node pada index terahir dari array 2.       Upheap node tersebut untuk memperbaiki property heap *Upheap : mencari elemen atas nya, jika elemen parentnya lebih besar maka elemen tersebut akan ditukar. Proses ini terjadi secara rekursif sampai kondisi tidak memenuhi(mencapai root atau elemen parent lebih kecil). Delete dalam Min-Heap 1.   ...

Tree AVL, RBT,

Tree adalah data struktur abstrak yang dapat menyimpan data dengan cara yang lebih efisien dan mengurangi waktu searching dan mengambil data. Tree memliki kumpulan node yang terhubung secara linear dan tidak memiliki relasi siklik.  Setiap node mengandung data dan ada nilai keynya. Dalam Tree ada beberapa istilah yang sering dipakai: -  Root: node inisial dari tree, node berapa di paling atas sebuah tree. -  Node: bagian dari tree yang diibaratkan bulatan yang terhubung -  Child: node yang terhubung ke node parent -  Parent: node yang terhubung ke node child Tipe - tipe Tree: 1. Binary tree: bentuk tree yang paling umum setiap node memiliki properti 2 pointer untuk terhubung ke node kiri dan kanan nya. Penempatan node pada binary tree tidak memiliki aturan. 2. Binary Search Tree: bentuk tree yang memiliki aturan dimana pada setiap node pointer sebelah kiri terhubung pada node dengan key-value yang lebih kecil dna pointer sebelah kanan terhubung pada no...

Summary Data Structure

Summary of Data Structure study material for half Semester Data Struktur   adalah format organisasi , menejemen dan penyimpanan data yang memberikan akses dan modifikasi yang lebih efisien. Struktur data adalah koleksi dari nilai data, hubungan antar data, dan fungsi dan operasi yang bisa diterapkan kedalam data. Dalam pembelajaran selama setengah semester ini struktur data yang dipelajari ada 3 bentuk yaitu Linked-list, Hash table, dan Binary Search Tree 1.       Linked-List Linked-list adalah struktur data yang yang memberikan data tambahan berupa pointer pada setiap satuan data   untuk menunjukkan hubungan antar data. Untuk menunjukkan posisi setiap data biasanya diberi penunjuk tambahan untuk menunjukkan awal dan akhir dari kumpulan data yang biasa kita menamakannya pointer head dan tail. Untuk penunjuk pada data yang pertama atau terakhir biasa nya akan diberikan penunjuk berupa NULL(linked-list biasa) atau penunjuk ke data awalnya (circ...

Binary Search Tree (BST)

Struktur data binary search tree memberikan fitur searching dan sorting yang lebih cepat. insert dan delete yang lebih mudah juga.  Aturan penempatan node :  1. Untuk node yang lebih kecil dari node yang dibandingkan maka node tersebut ditempatkan dikiri 2. Untuk node yang lebih besar dari node yang dibandingkan maka node tersebut ditempatkan dikanan 3. Setiap node nilainya berbeda 4. Perbandingan mulai dari root, terus turun sampai dapat tempat kosong Operasi pada BST 1. search(x) 2. insert(x) 3. remove(x) 1. Search Misalnya nilai yang mau kita cari adalah x  - Mulai dari root  - Jika root mengandung x maka proses selesai  - Jika x < nilai root cari secara rekursif pada subtree kiri, Jika tidak maka cari  secara rekursif pada subtree kanan 2. Insert  Misalnya nilai yang ingin kita masukkan adalah x  - Proses mulai dari root  -  Jika x < nilai root cari secara rekursif pada subtree kiri, Jika tidak maka cari...

Hash Table

1. Hash Table •  Hashing adalah teknik yang digunkan untuk menyimpan dan mengambil kunci dalam jangka waktu  yang cepat.  •  Dalam hashing, sebuah data misalnya string dapat diambil bagiannya(karakter) kemudian dijadikan key untuk disimpan pada table •  Hashing menggunakan indek untuk mengambil data pada penyimpanan untuk mempercepat pencaharian menggunakan hashed yang lebih pendek daripada nilai yang sebenarnya(lebih panjang). •  Hashing juga bisa disebut konsep mendistribusikan indeks kedalam sebuah  hash table menggunakan fungsi yang disebut  hash function . 2. Hash Function Ada banyak cara hashing string menjadi key. - Mid-Square - Division - Digit Extraction - Rotating Hash -Mid-Square     Key yang didapat dikudratkan kemudian diambil bagian tengah dari key     contohnya: key 3121 di kuadratkan menjadi 9740641 sehingga diambil bagian tengahnya 406    Penggunaan kuadrat agar address y...

Singly Linked List and Doubly Linked List

Singly Linked List Singly Linked List adalah struktur data yang cara kerjanya membuat node baru kemudian diberi tangan yang nunjuknya kesamping  yaitu pointer next. Variabel global yang dipakai adalah head untuk menunjukkan node pertama dari linked list, tail untuk menunjukkan node terakhir dari linked list, dan curr yang nantinya akan dipakai untuk berpindah-pindah dari node satu ke node yang lain. Kita bisa memasukkan node baru kedalam singly linked list dengan cara memasukkannya ke head,tail, atau mid dengan fungsi pushHead, pushTail, pushMid. -pushHead; Caranya adalah dengan mengecek kondisi terlebih dahulu, apabila headnya null maka pointer head dan tail menunjuk ke node itu. Jika headnya tidak null, maka kita akan memasukkan nilai next dari node adalah head dan kita pindahkan pointer head untuk menunjuk nodeyang tadi. -pushTail: Caranya adalah dengan mengecek kondisi terlebih dahulu, apabila headnya null maka pointer head dan tail menunjuk ke node itu. Jika headnya ti...

Linked List

1. Circular Single Linked List     Konsep dari circular single linked list ini mirip dengan single linked list biasa tetapi untuk pointer untuk node terakhir menunjuk pointer first, Sehingga tidak ada nilai null pointer. 2. Doubly Linked List    Doubly Linked list adalah Linked list 2 arah dimana setiap node memiliki 2 pointer yaitu next dan prev sehingga kita bisa bergerak kekiri maupun kekanan, sedangkan single linked list hanya setiap node hanya menunjuk ke satu arah saja.     Langkah dalam membuat doubly linked list adalah:      a. Insert          pertama kita harus membuat fungsi untuk mengenerate node baru dengan mengalokasikan memori sebesar node, kemudian memasukkan nilai nilai parameter kedalam node yang sudah dibuat. Jika kita ingin memasukkan node kita dibelakang tail cukup inisialisasi prev dari node adalah tail dan next dari tail adalah node. Karena tail letaknya selalu diujung maka inisialisasi ta...