Review materi data struktur di semester 2


Assalamualaikum! Dengan meningkatnya kasus COVID-19 di Indonesia ini mendingan kita belajar di blog ini, lumayan lah itung2 nambah ilmu dan membantu para dokter juga dengan #Dirumahaja. Semoga kalian sehat-sehat saja yaa!

LINKED LIST
Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian. Dan linked list saling terhubung dengan bantuan variabel pointer Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field. berikut gambaran kecil mengenai linked list.
 



Didalam Linked List terdapat beberapa bagian lagi
1. Linked List Circular Double Linked List        
Pengertian secara umumnya DLLC itu Linked list yang menggunakan pointer, dimana setiap node memiliki 3 field, yaitu:
1 field pointer yang menunjuk pointer berikutnya "next",
1 field menunjuk pointer sebelumnya " prev ",
1 field yang berisi data untuk node tersebut .
Double Linked List Circular pointer next dan prev nya menunjuk ke dirinya sendiri secara circular. Bentuk Node nya.



2. Linked List Non Circular Double Linked List Non Circular (DLLNC)            
adalah Double Linked List yang memiliki 2 buah pointer yaitu pointer next dan prev. Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya.

 Single Linked List Non Circular (SLLNC)          
Adalah Linked List yang pointer nya selalu mengarah ke Node yang menampung *next bernilai NULL, jadi arahnya tidak menunjuk pointer didepannya sehingga tidak dapat kembali ke pointer - pointer sebelumnya. SLLNC ini juga memiliki 2 bagian, ada Tambah dan ada Hapus, masing - masing bagian ini juga masih meliputi 3 fungsi lain yaitu Belakang, Tengah, dan depan.

Oke kita lanjut ke materi kedua tentang Stack & Queue
STACK
adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah pushDan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.
2. Push () 
digunakan untuk menempatkan beberapa elemen data ke dalam tumpukan atau membuat simpul baru dengan nilai apa pun dan menempatkannya di kepala daftar yang ada. Push di bagi menjadi 2, yaitu PushDepan (head) dan PushBelakang (tail). PushDepan berarti data yg paling baru dimasukkan akan berada di depan data lainnya, dan begitu pula sebaliknya dgn PushBelakang berarti data yang paling bary akan berada di belakang data lainnya.
3. Peek()
berfungsi untuk melihat data yang berada pada tumpukan paling atas (akan dikeluarkan).
4. isEmpty()
berfungsi untuk menguji apakah stack masih kosong.
5. isFull()
berfungsi untuk menguji apakah stack telah penuh.

QUEUE (ANTRIAN)
          Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang bebeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagian belakang (Rear). Elemen-elemen di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur. Dan Sistem pada pengaksesan pada Queue menggunakan sistem FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue.
Operasi-operasi pada Queue
1. Create Queue (Q) : membuat antrian baru Q, dengan jumlah elemen kosong.
2. Make NullQ (Q) : mengosongkan antrian Q, jika ada elemen maka semua elemen dihapus.
3. EnQueue : berfungsi memasukkan data kedalam antrian.
4. DeqQueue : berfungsi mengeluarkan data terdepan dari antrian.
5. Clear : Menghapus seluruh Antrian
6. IsEmpty : memeriksa apakah antrian kosong
7. IsFull : memeriksa apakah antrian penuh.

HASH TABLE
adalah untuk mempercepat pencarian kembali dari banyak data yang disimpan. Hash table menggunakan suatu teknik penyimpanan sehingga waktu yang dibutuhkan untuk penambahan data (insertions), penghapusan data (deletions), dan pencarian data (searching) relatif sama dibanding struktur data atau algoritma yang lain.
Kelebihan dari hash table antara lain sebagai berikut :
·         Hash table relatif lebih cepat
·         Kecepatan dalam insertions, deletions, maupun searching relatif sama
Jadi hash function merupakan suatu fungsi sederhana untuk mendapatkan hash value dari key value suatu data. Yang perlu diperhatikan untuk membuat hash function adalah:
            ukuran array/table size(m),
            key value/nilai yang didapat dari data(k),
            hash value/hash index/indeks yang dituju(h).
Operasi Pada Hash Tabel
Insert                    : diberikan sebuah key dan nilai, insert nilai dalam tabel
find                        : diberikan sebuah key, temukan nilai yang berhubungan dengan key
remove                : diberikan sebuah key,temukan nilai yang berhubungan dengan key, kemudian hapus nilai tersebut
getIterator          : mengambalikan iterator,yang memeriksa nilai satu demi satu.
inary tree
adalah sebuah pohon struktur data dimana setiap simpul memiliki paling banyak 2 anak, secara khusus anaknya dinamakan dengan kiri dan kanan. Dan binary tree sendiri ada 3 jenis yaitu : Full Binary Tree, Complete Binary Tree, Skewed Binary Tree

1.       Full binary tree
Adalah binary tree yang tiap nodenya (kecuali leaf) memiliki dua anak dan tiap subtree harus mempunyai Panjang path yang sama.

2.       Complete Binary Tree
Mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang  path yang berbeda. Node kecuali leaf memiliki 0 atau 2 anak.

3.       Skewed Binary Tree
Adalah Binary tree yang semua nodenya (kecuali leaf) hanya memiliki satu anak.
Oke kita lanjut ke Binary search tree

BINARY SEARCH TREE
Merupakan suatu konsep penyimpanan data dimana data disimpan melalui tree yang setiap node memiliki maksimal 2 anak node.

Aturan di Binary Search Tree
1.       Setiap anak node sebelah kiri harus lebih kecil nilainya daripada root nodenya.
2.       Setiap anak node sebelah kanan harus lebih besar nilainya daripada root nodenya
Dan berikut insert dari binary search tree :
 








Komentar