Posts

Showing posts from March, 2020

Binary Search Tree

Binary Search Tree: sebuah konsep penyimpanan data, dimana data disimpan dalam bentuk tree yang setiap node dapat memiliki anak maksimal 2 node. Aturan Binary Search Tree: Setiap anak node sebelah kiri harus lebih kecil nilainya daripada root nodenya. Setiap anak node sebelah kanan harus lebih besar nilainya daripada root nodenya. 3 jenis cara untuk melakukan penelusuran pada Binary Search Tree: Pre Order: Print data, telusur ke kiri, telusur ke kanan In Order: Telusur ke kiri, print data, telusur ke kanan Post Order: Telusur ke kiri, telusur ke kanan, print data Dalam Binary Search Tree, terdapat 3 operasi dasar, yaitu: Find(x) : mencari value x di dalam Binary Search Tree (Search) Insert(x) : memasukkan value baru x ke Binary Search Tree (Push) Remove(x) : menghapus key x dari Binary Search Tree (Delete) Operasi: Search Karena ada syarat di dalam Binary Search Tree, searching di dalam BST menjadi mudah. Misalkan key yang dicari adalah value X. Memu...

Hashing, Hash Tables, Trees & Binary Tree

Hashing & Hash Tables Hashing: transformasi string karakter menjadi nilai panjang tetap yang lebih pendek atau kunci yang mewakili string asli. Hash Table: 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. Ada beberapa fungsi hash yang digunakan, yaitu: Metode pembagian - sisa: metode yang memperkirakan ukuran jumlah item dalam tabel, lalu menggunakannya sebagai pembagi dalam setiap nilai atau kunci asli untuk mengekstrak hasil bagi dan sisa. Sisa tersebut adalah nilai hash. Metode lipat: membagi nilai asli menjadi beberapa bagian, menambahkan bagian - bagian bersama - sama, dan menggunakan 4 digit terakhir sebagai nilai hash. Metode transformasi radix: Jika kunci digital, basis angka dapat diubah menghasilkan urutan digit yang berbeda. Angka urutan tinggi dapat dibuang agar sesuai dengan nilai hash. Metode penata...

Stack and Queue

Stack and Queue 1. Stack Stack adalah suatu kumpulan data yang seolah - olah terlihat seperti ada data yang diletakkan di atas data yang lain. Stack menggunakan konsep LIFO (Last In First Out). Struktur data dari sebuah stack harus memiliki minimal 2 variabel, yaitu top dan max . Top untuk menyimpan alamat elemen paling atas, dan max untuk menyimpan jumlah maksimum elemen yang dapat ditampung stack. Stack biasa digunakan untuk mengubah urutan dari data, mengubah notasi infix menjadi postfix, mengubah notasi postfix menjadi infix, mengubah angka desimal menjadi bilangan binary, dan algoritma backtracking. Terdapat 2 operasi dasar pada stack, yaitu: Push: untuk memasukkan sebuah nilai atau data ke dalam stack dengan cara menaikkan posisi top satu level ke atas. Pop: untuk mengeluarkan atau menghapus nilai terakhir dari stack dengan cara menurunkan nilai  top satu level ke bawah. 2. Queue Queue adalah salah satu implementasi dari linked list. Queue adalah ...