Langsung ke konten utama

Postingan

Menampilkan postingan dari Maret, 2020

Binary Search Tree

BINARY SEARCH TREE Binary Search Tree adalah struktur data yang mengadopsi konsep Binary Tree namun terdapat aturan bahwa setiap clild node sebelah kiri selalu lebih kecil nilainya dari pada root node. Begitu pula sebaliknya, setiap child node sebelah kanan selalu lebih besar nilainya daripada root node. BST juga dikenal sebagai binary tree dengan versi terurut. Kenapa harus membedakan kiri dan kanan sesuai besaran nilainya? Tujuannya untuk memberikan efisiensi terhadap proses searching. Kalau struktur data tree sudah tersusun rapi sesuai aturan mainnya, proses search akan lebih cepat. Aturan dalam BST : 1. Setiap child node sebelah kiri harus lebih kecil nilainya daripada root nodenya. 2. Setiap child node sebelah kanan harus lebih besar nilainya daripada root nodenya. Terdapat 3 oeprasi dasar pada BST: 1. find(x) : untuk mencari key x dalam BST void find(Node **current, int value){ if((*current) != NULL){ if(value < (*current)->val){ find(&(*current)-...

Hashing and Tree

HASH TABLE DAN BINARY TREE Hashing adalah teknik dalam struktur data, dimana teknik ini digunakan untuk menyimpan dan mengambil / mencari kata kunci dengan cepat dan efisien. Dalam hashing, string akan ditransformasikan menjadi sebuah kunci yang mewakili string aslinya. Hashing digunakan untuk mengindeks dan menemukan suatu value dengan kata kunci yang lebih pendek. Hashing dilakukan untuk menyimpan data, mencari data, menambah data, dan menghapus data dengan lebih efisien. Hash Table adalah sebuah struktur data yang terdiri atas table dan fungsi yang digunakan untuk menyimpan / menaruh key value yang unik untuk setiap record (baris) menjadi angka (hash). Contoh simplenya : arr[ ] value 0 algo 1 bahaha 2 cat 3 NULL 4 NULL  5 fly 6 go … 25 zebra algo terletak pada arr[0] kar...

Rangkuman Week 3 - Stack and Queue

Stack Stack biasa disebut sebagai LIFO (Last In First Out), jadi data yang terakhir masuk akan di pop/ keluar duluan. Sebagai contoh seperti saat kita mencuci piring dan terdapat tumpukan piring, maka kita akan mengambilnya dari yang paling atas dahulu secara berurutan. Kurang lebih cara kerja stack seperti itu. Dalam stack umumnya terdapat 3 proses operasi yang dilakukan : a. push (x) : menumpuk item x diatas stack. b. pop( ) : menghapus / mengambil data paling atas. c. top ( ) : melihat item / value data paling atas pada stack. Sumber : wikipedia   Queue Queue biasa disebut sebagai FIFO (First In First Out), jadi data yang masuk pertama akan di pop/ keluarkan dahulu. Sebagai contoh seperti saat kita mengantri, tentu saja orang paling depan akan dilayani / dapat menggunakan fasilitas dahulu. Kurang lebih ara kerja Queue seperti itu. Dalam queue umumnya terdapat 3 proses operasi yang dilakukan : a. push(x) : menambah antrian data pada queue. b. pop( ) : m...

Week 1 and 2 Data Structures

Pointer and Array Pointer  adalah variable yang berisi alamat memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain,  pointer  berisi alamat dari variable yang mempunyai nilai tertentu. Setiap variable di bahasa C memiliki nama dan nilai tersendiri serta address / alamat yang menyimpan nilai tersebut. Pointer berperan sebagai variable yang menyimpan alamat memory tersebut. Deklarasi penggunaan pointer dapat dilakukan dengan meletakkan tanda * sebelum tipe data, seperti berikut :                    Array  adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama.  Array  merupakan konsep yang penting dalam pemrograman, karna  array  memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks.  Setiap jenis data dapat memiliki lebih dari 1 dimensi arr...