Summary / Rangkuman
Stephanie Kezia // 2301895214
Nama dosen : Henry Chong (D4460) & Ferdinand Ariandy Luwinda (D4522)
Saat belajar Data Structure, hal pertama yang di pelajari adalah soal pointer. Pointer merupakan variabel yang berisikan alamat memori. Pointer berisi alamat dari variabel yang mempunyai nilai tertentu.
Selanjutnya adalah Linked List. Linked List adalah struktur data linear. Linked List yang dipelajari adalah Single Linked List dan Double Linked List.
Selanjutnya adalah mengenai Hashing & Tree.
Hashing merupakan teknik menyimpan dan mengambil kunci dengan cepat.Hashing berarti mengambil string input dengan panjang berapa pun dan memberikan output dengan panjang tetap.
Jenis-jenis tree antara lain:
- Binary Search Tree
- AVL Tree
- B-Tree
- Red Black Tree
dan lainnya.
Yang terakhir adalah Heap & Tries. Heap adalah suatu struktur binary tree yang lengkap dan memiliki beberapa sifat tertentu yang meingimplementasikan priority queue. Tries adalah pohon struktur data yang terurut dan menyimpan karakter.
kejia's blog
Halo! kejia is here! ^^
Thursday, June 11, 2020
Friday, May 15, 2020
Heap & Tries
Heap
Heap adalah suatu struktur binary tree yang lengkap dan memiliki beberapa sifat tertentu yang mengimplementasikan priority queue, diimplementasikan bisa menggunakan linked-list, namun lebih mudah menggunakan array.
Penggunaan heap dibagi menjadi 3 tipe yaitu :
1. Min Heap
2. Max Heap
3. Min-Max Heap
Masing-masing heap memiliki cara insertion dan delete yang berbeda-beda dan beberapa perbedaan logic yang terbalik-balik
1. Min Heap
Pada pohon Min Heap, elemen paling kecil terletak pada root, dan elemen paling besar terletak pada salah satu node leave yang ada.
Contoh Min Heap :
Parent akan lebih kecil daripada childrennya, serta tidak ada hubungannya dengan unclenya.
Insertion : Bila memasukkan sebuah angka baru, maka dimasukkan ke node paling akhir, lalu bandingkan dengan parentnya. Jika parent lebih besar bisa lakukan swap, jika parent lebih kecil maka sudah benar.
Delete : Root dihilangkan lalu diganti dengan angka dari node terakhir lalu bandingkan. Jika children lebih kecil maka tukar sampai root adalah angka terkecil.
2. Max Heap
Pada pohon Max Heap, elemen paling besar terletak pada root, dan elemen paling kecil terletak pada salah satu node leave yang ada.
Contoh Max Heap :
Parent akan lebih besar daripada childrennya, serta tidak ada hubungannya dengan unclenya.
Insertion : Bila memasukkan sebuah angka baru, maka dimasukkan ke node paling akhir, lalu bandingkan dengan parentnya. Jika parent lebih kecil bisa lakukan swap, jika parent lebih besar maka sudah benar.
Delete : Root dihilangkan lalu diganti dengan angka dari node terakhir lalu bandingkan. Jika children lebih besar maka tukar sampai root adalah angka terbesar.
3. Min-Max Heap
Merupakan gabungan dari Min Heap dan Max Heap menjadi suatu heap yang unik. Urutannya selalu Min, lalu Max, lalu Min dan seterusnya. Level genap adalah Min, level ganjil adalah Max.
Contoh Min-Max Heap :
Insertion dan Delete sama seperti Min Heap dan Max Heap, tapi harus memperhatikan levelnya mana yang harus Max dan mana yang harus Min.
Tries
Tries adalah pohon struktur data yang terurut dan menyimpan karakter. Di gunakan untuk auto complete, searching, bubble words dll.
Contoh tries :
Kata bisa menjadi:
ASSOC
ALGO
ALL
ALSO
TRIE
TREE
Heap adalah suatu struktur binary tree yang lengkap dan memiliki beberapa sifat tertentu yang mengimplementasikan priority queue, diimplementasikan bisa menggunakan linked-list, namun lebih mudah menggunakan array.
Penggunaan heap dibagi menjadi 3 tipe yaitu :
1. Min Heap
2. Max Heap
3. Min-Max Heap
Masing-masing heap memiliki cara insertion dan delete yang berbeda-beda dan beberapa perbedaan logic yang terbalik-balik
1. Min Heap
Pada pohon Min Heap, elemen paling kecil terletak pada root, dan elemen paling besar terletak pada salah satu node leave yang ada.
Contoh Min Heap :
Parent akan lebih kecil daripada childrennya, serta tidak ada hubungannya dengan unclenya.
Insertion : Bila memasukkan sebuah angka baru, maka dimasukkan ke node paling akhir, lalu bandingkan dengan parentnya. Jika parent lebih besar bisa lakukan swap, jika parent lebih kecil maka sudah benar.
Delete : Root dihilangkan lalu diganti dengan angka dari node terakhir lalu bandingkan. Jika children lebih kecil maka tukar sampai root adalah angka terkecil.
2. Max Heap
Pada pohon Max Heap, elemen paling besar terletak pada root, dan elemen paling kecil terletak pada salah satu node leave yang ada.
Contoh Max Heap :
Insertion : Bila memasukkan sebuah angka baru, maka dimasukkan ke node paling akhir, lalu bandingkan dengan parentnya. Jika parent lebih kecil bisa lakukan swap, jika parent lebih besar maka sudah benar.
Delete : Root dihilangkan lalu diganti dengan angka dari node terakhir lalu bandingkan. Jika children lebih besar maka tukar sampai root adalah angka terbesar.
3. Min-Max Heap
Merupakan gabungan dari Min Heap dan Max Heap menjadi suatu heap yang unik. Urutannya selalu Min, lalu Max, lalu Min dan seterusnya. Level genap adalah Min, level ganjil adalah Max.
Contoh Min-Max Heap :
Tries
Tries adalah pohon struktur data yang terurut dan menyimpan karakter. Di gunakan untuk auto complete, searching, bubble words dll.
Contoh tries :
Kata bisa menjadi:
ASSOC
ALGO
ALL
ALSO
TRIE
TREE
Wednesday, April 29, 2020
AVL Tree
AVL Tree adalah binary tree yang diseimbangkan, yang dimana perbedaan tinggi antara kanan dan kiri subtree tidak boleh lebih dari satu.
Misalkan T adalah node yang harus diseimbangkan kembali,
-Kasus 1 : node terletak pada subtree kiri dari anak kiri T (Left - Left) / LL
-Kasus 2 : node terletak pada subtree kanan dari anak kanan T (Right - Right) / RR
-Kasus 3 : node terletak pada subtree kanan dari anak kiri T (Right - Left) / RL
-Kasus 4 : node terletak pada subtree kiri dari anak kanan T (Left - Right) / LR
Kasus-kasus diatas dapat diselesaikan dengan cara rotasi.
Kasus 1 & Kasus 2 = Single rotation
Kasus 3 & Kasus 4 = Double rotation
1. Single Rotation
Single rotation adalah : pengubahan node yang dilakukan bila node terletak searah
2. Double Rotation
Double rotation adalah : pengubahan node yang dilakukan bila node terletak tidak searah
Penghapusan node dalam AVL Tree
Cara:
1. Jika node yang akan dihapus berasa di posisi leaf, maka langsung hapus
2. Jika node yang akan dihapus memiliki anak, maka harus dilakukan penyeimbangan, supaya perbedaan tinggi maksimal satu.
Sunday, April 5, 2020
SUMMARY dan REVIEW
LINKED LIST
Linked List adalah sekumpulan data struktur linear yang disebut sebagai node yang tersimpan dalam suatu senarai supaya lebih efektif.
Head adalah elemen pertama linked list
Tail adalah elemen terakhir linked list
Tipe-tipe linked list:
-Single Linked List
-Double Linked List
-Circular Linked List
-Multiple Linked List
HASH
Hashing merupakan teknik menyimpan dan mengambil kunci dengan cepat.
Hashing berarti mengambil string input dengan panjang berapa pun dan memberikan output dengan panjang tetap.
Metode hash string menjadi key :
1. Mid-square
2. Division
3. Folding
4. Digit extraction
5. Rotating Hash
Linked List adalah sekumpulan data struktur linear yang disebut sebagai node yang tersimpan dalam suatu senarai supaya lebih efektif.
Head adalah elemen pertama linked list
Tail adalah elemen terakhir linked list
Tipe-tipe linked list:
-Single Linked List
-Double Linked List
-Circular Linked List
-Multiple Linked List
HASH
Hashing merupakan teknik menyimpan dan mengambil kunci dengan cepat.
Hashing berarti mengambil string input dengan panjang berapa pun dan memberikan output dengan panjang tetap.
Metode hash string menjadi key :
1. Mid-square
2. Division
3. Folding
4. Digit extraction
5. Rotating Hash
BINARY TREE
Binary tree adalah pohon struktur data yang dimana memiliki anak maksimal 2 atau 1 yang disebut daun.
Macam-macam binary tree:
- Binary tree penuh
- Binary tree lengkap
- Binary tree similer
- Binary tree miring
- Binary tree ekuivalen
BINARY SEARCH TREE
Binary search tree mirip dengan linked list. Binary search tree berbentuk pohon, linked list berbentuk linear.
Binary Tree dikelompokkan menjadi dua, yaitu :
- Binary Tree Terurut (Ordered Binary Tree)
- Binary Tree Tidak Berurut (Unordered Binary Tree)
- Binary Tree Terurut (Ordered Binary Tree)
- Binary Tree Tidak Berurut (Unordered Binary Tree)
References:
Friday, March 20, 2020
Binary Search Tree
Binary Tree
Binary Tree mirip dengan struktur data Linked List.
Yang membedakan antara Binary Tree dengan Linked List adalah Binary Tree berbentuk seperti pohon, sedangkan Linked List berbentuk seperti rantai yang linear.
Binary Tree dikelompokkan menjadi dua, yaitu :
- Binary Tree Terurut (Ordered Binary Tree)
- Binary Tree Tidak Berurut (Unordered Binary Tree)
Gambar binary tree berdasarkan kondisinya :
Gambaran binary tree yang terdiri dari 3 node :
Binary Search Tree
Binary Search Tree : Tree yang terurut (Ordered Binary Tree) yang memiliki kelebihan bila dibandingkan dengan struktur data lain.
Proses pengurutan dan pencarian dapat dilakukan bila data sudah tersusun dalam struktur data binary search tree.
Binary Tree mirip dengan struktur data Linked List.
Yang membedakan antara Binary Tree dengan Linked List adalah Binary Tree berbentuk seperti pohon, sedangkan Linked List berbentuk seperti rantai yang linear.
Binary Tree dikelompokkan menjadi dua, yaitu :
- Binary Tree Terurut (Ordered Binary Tree)
- Binary Tree Tidak Berurut (Unordered Binary Tree)
Gambar binary tree berdasarkan kondisinya :
Gambaran binary tree yang terdiri dari 3 node :
Binary Search Tree
Binary Search Tree : Tree yang terurut (Ordered Binary Tree) yang memiliki kelebihan bila dibandingkan dengan struktur data lain.
Proses pengurutan dan pencarian dapat dilakukan bila data sudah tersusun dalam struktur data binary search tree.
Tuesday, March 10, 2020
Hashing & Tree
HASHING
Hashing merupakan teknik menyimpan dan mengambil kunci dengan cepat.
Hashing berarti mengambil string input dengan panjang berapa pun dan memberikan output dengan panjang tetap.
Metode hash string menjadi key :
1. Mid-square
2. Division
3. Folding
4. Digit extraction
5. Rotating Hash
1. Mid-square
Langkah :
1. Ambil nilai awal
2. Kuadratkan nilai awal
3. Beberapa digit angka ditengah setelah dikuadratkan, diambil dan diekstrak menjadi nilai baru
Contoh :
3121 dikuadratkan menjadi 9740641. Nilai tengahnya adalah 406.
Binarinya adalah 1001 0100 1010 0001 0110 0001.
2. Divison
Divison menggunakan modulus.
Contoh :
Nilai asli = 5
Ukuran tabel = 4
(5 % 4)+1 = 1+1 = 2. Simpan 5 di lokasi 2.
3. Folding
Langkah :
1. Nilai dibagi menjadi beberapa bagian, tiap bagian memiliki jumlah digit yang sama
2. Lipat seperti kertas, lalu dijumlah
Contoh :
- 1234 = 12 + 34 = 46. Hash valuenya adalah 46.
- 123654 = 123 + 654 = 777. Hash valuenya adalah 777.
- 321456 = 321 + 456 = 777. Hash valuenya adalah 777.
Terjadi collision antara 123654 dan 321456.
Collision adalah peristiwa dimana ada dua atau lebih nilai asli yang memiliki hash value yang sama. Penyelesaiannya adalah dengan cara probing dan chaining.
4. Digit extraction
Digit yang ditentukan sebelumnya dari nomor yang diberikan dianggap sebagai alamat hash.
Contoh : 14568
Digit ke 1 adalah 1
Digit ke 3 adalah 5
Digit ke 5 adalah 8
Maka disimpan di 158.
5. Rotating
Hanya membalikkan nilai asli
Contoh : 12345 menjadi 54321. Hash codenya adalah 54321.
TREE
Tree adalah node tanpa pengulangan/looping.
Konsep tree
DEGREE of TREE = 3
Konsep binary tree
ROOT = 18
LEAVE = 9, 12, 10, 23
Macam-macam pohon binari:
1. Pohon binari penuh
Kunjungan secara inorder (symetric order), mempunyai urutan :
1. Kunjungi cabang kiri
2. Cetak isi simpul yang dikunjungi (simpul akar)
3. Kunjungi cabang kanan


Kunjungan secara postorder, mempunyai urutan :
1. Kunjungi cabang kanan
2. Kunjungi cabang kiri
3. Cetak isi simpul yang dikunjungi (simpul akar)
Hashing merupakan teknik menyimpan dan mengambil kunci dengan cepat.
Hashing berarti mengambil string input dengan panjang berapa pun dan memberikan output dengan panjang tetap.
Metode hash string menjadi key :
1. Mid-square
2. Division
3. Folding
4. Digit extraction
5. Rotating Hash
1. Mid-square
Langkah :
1. Ambil nilai awal
2. Kuadratkan nilai awal
3. Beberapa digit angka ditengah setelah dikuadratkan, diambil dan diekstrak menjadi nilai baru
Contoh :
3121 dikuadratkan menjadi 9740641. Nilai tengahnya adalah 406.
Binarinya adalah 1001 0100 1010 0001 0110 0001.
2. Divison
Divison menggunakan modulus.
Contoh :
Nilai asli = 5
Ukuran tabel = 4
(5 % 4)+1 = 1+1 = 2. Simpan 5 di lokasi 2.
3. Folding
Langkah :
1. Nilai dibagi menjadi beberapa bagian, tiap bagian memiliki jumlah digit yang sama
2. Lipat seperti kertas, lalu dijumlah
Contoh :
- 1234 = 12 + 34 = 46. Hash valuenya adalah 46.
- 123654 = 123 + 654 = 777. Hash valuenya adalah 777.
- 321456 = 321 + 456 = 777. Hash valuenya adalah 777.
Terjadi collision antara 123654 dan 321456.
Collision adalah peristiwa dimana ada dua atau lebih nilai asli yang memiliki hash value yang sama. Penyelesaiannya adalah dengan cara probing dan chaining.
4. Digit extraction
Digit yang ditentukan sebelumnya dari nomor yang diberikan dianggap sebagai alamat hash.
Contoh : 14568
Digit ke 1 adalah 1
Digit ke 3 adalah 5
Digit ke 5 adalah 8
Maka disimpan di 158.
5. Rotating
Hanya membalikkan nilai asli
Contoh : 12345 menjadi 54321. Hash codenya adalah 54321.
TREE
Tree adalah node tanpa pengulangan/looping.
Konsep tree
DEGREE of TREE = 3
DEGREE of C = 2
HEIGHT = 3
PARENT of C = A
CHILDREN of A = B, C, D
SIBILING of F = G
ANCESTOR of F = A, C
DESCENDANT of C = F, GKonsep binary tree
ROOT = 18
LEAVE = 9, 12, 10, 23
Macam-macam pohon binari:
1. Pohon binari penuh
2. Pohon binari lengkap
3. Pohon binari similer
4. Pohon binari ekuivalen
5. Pohon binari miring
PREFIX, INFIX & POSTFIX
1. Prefix
Kunjungan secara preorder (Depth First Order), mempunyai urutan :
1. Cetak isi simpul yang dikunjungi (simpul akar)
2. Kunjungi cabang kiri
3. Kunjungi cabang kanan
2. Infix
1. Kunjungi cabang kiri
2. Cetak isi simpul yang dikunjungi (simpul akar)
3. Kunjungi cabang kanan
3. Postfix


Kunjungan secara postorder, mempunyai urutan :
1. Kunjungi cabang kanan
2. Kunjungi cabang kiri
3. Cetak isi simpul yang dikunjungi (simpul akar)
Single Linked List (Push & Pop)
- Push :
- Push Depan : Menambahkan data baru di depan data lama.
- Push Belakang : Menambahkan data baru di belakang data lama.
- Pop :
- Pop Depan : Menghapus data mulai dari depan
- Pop Belakang : Menghapus data mulai dari belakang
Pengimplementasian Push dapat dilakukan saat menambah daftar lagu, sedangkan Pop dilakukan saat menghapus daftar lagu.
Subscribe to:
Posts (Atom)




















