STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS
Literatur Sjukani Moh., (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema. dkk, (2007), Struktur Data (Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux), Graha Ilmu Hubbard Jhon, R., Ph.D, (2000), Schaum s Outline Of Theory and Problems of Data Structures With C++ McGraw-Hill Bambangworawan Paulus., (2004), Struktur Data Dengan C, Andi Yogyakarta
1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree 10. Heap dan B-Tree 11. Sorting 12. Search 13. Hashing 14. Graph Materi
TREE - POHON Pertemuan 10 2 SKS
Istilah Umum Dalam TREE 1. Tree (pohon) dan Graph (Graf) 2. Simpul (Vertex, Node) dan Busur (Edge, Arc) 3. Superordinat dan subordinat, father dan son, parent dan children 4. Root (akar) dan Leaf (daun) 5. Level (tingkat) dan Depth (kedalaman) 6. Degree (derajat) simpul dan degree pohon 7. M-ary tree dan binary tree 8. Link dan null-link
7a. M-ary Tree M atau K menyatakan derajat pohon Contoh : sebuah simpul pohon M-ary dimana M=3 digambarkan dengan Linked- List INFO Link1 Link2 Link3
7b. Binary Tree M atau K menyatakan derajat pohon Contoh : sebuah simpul pohon Binary Tree / Pohon Biner dimana M=2 digambarkan dengan Linked-List INFO Link1 Link2
Contoh Pohon Biner A B C D E F G H
8. Link, Null-Link dan Bukan Null-Link Link Pointer yang digunakan untuk menunjuk simpul subordinat Untuk contoh pohon biner adalah setiapsimpul mempynyai 2 link, sehingga jumlah link = n*2 Null-Link Link yang bernilai Null, yaitu link yang tidak menunjuk simpul subordinat Bukan Null-Link Link yang menunjuk simpul subordinat atau link yang menghubungkan dua buah simpul yang biasanya disebut dengan busur
Contoh Soal : M-ary Sebuah pohon M-ary dengan 10 buah simpul. Apabila M=3, Hitung berapa jumlah Null-Link nya? B A C D Pohon dengan M = 3 Jumlah simpul 10, maka n = 10 E F I G H J Jumlah Null-Link = n * (M-1) + 1 = 10 * (3-1) +1 = 10*2+1 = 21
Contoh Soal : Pohon Biner Sebuah pohon biner dengan 10 buah simpul. Apabila M=2, Hitung berapa jumlah Null-Link nya? B A C Pohon dengan M = 2 Jumlah simpul 10, maka n = 10 D G E H J F I Jumlah Null-Link = n * (M-1) + 1 = 10 * (2-1) +1 = 10*1+1 = 11
BINARY TREE POHON BINER
POHON BINER / BINARY TREE Sebuah pohon biner/binary tree adalah merupakan himpunan terbatas yang Mungkin kosong Terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang saling asing Dia humpunan yang saling asing tersebut adalah pohon biner pada sub pohon kiri (left) dan sub pohon kanan (right) Tergolong dalam pohon beraturan, yaitu pohon yang memperhatikan urutan hubungan antara satu simpul dengan simpul lain, dalam hal ini cabang kiri dibedakan dengan cabang kanan
POHON BINER / BINARY TREE Merupakan pohon M-ary dimana M=2, yang artinya setiap simpul paling banyak memiliki 2 simpul subordinat yang biasa disebut subordinat kiri (leftchild) dan subordinat kanan (right-child) INFO Left Right Father INFO Left Right
POHON BINER / BINARY TREE Strictly Binary Tree merupakan pohon biner yang semua simpulnya, (kecuali simpul leaf/daun) mempunyai lengkap simpul subordinat kiri dan subordinat kanan Sebuah pohon biner strictlybinary tree, apabila mempunyai n buah daun, maka akan mempunyai (2n-1) buah simpul A B C D E F G H I Jumlah daun/leaf = 5 Jumlah simpul = 2 * n - 1 = 2 * 5-1 = 9
COMPLETE BINARY TREE/FULL BINARY TREE/ ALMOST COMPLETE BINARY TREE Complete Binary Tree dengan kedalaman = d, merupakan pohon biner strictly binary treedimana semua daun hanya berada pada level d Pada pohon complete binary tree/full binary tree/almost complete binary tree berlaku : Pada leve k jumlah simpul n=2^k Untuk pohon dengan kedalaman d, maka jumlah seluruh simpul n = 2^(d+1)-1 Untuk pohon dengan kedalaman d, maka jumlah simpul daun n = 2^d
COMPLETE BINARY TREE/FULL BINARY TREE/ ALMOST COMPLETE BINARY TREE Pada pohon complete binary tree/full binary tree/almost complete binary tree berlaku : Untuk pohon dengan kedalaman d, maka jumlah simpul bukan daun n = (2^d)-1 Bila jumlah seluruh simpul = n, maka kedalaman pohon adalah d = log 2 (n+1)-1 Setiap simpul yang berada dibawah level d-1, mempunyai dua subordinat Bila pada level d-1 sub pohon kanan ada simpul yang mempunyai subordinat, maka setiap simpul pada level d- 1 subpohon kiri harus mempunyai subordinat kiri dan kanan
COMPLETE BINARY TREE/FULL BINARY TREE/ ALMOST COMPLETE BINARY TREE A A B C B C D E F G D E F G H I J K L M N H I J K L M N O Almost Complete Binary Tree dan Bukan Strictly Binary Tree karena simpul G hanya punya satu anak Almost Complete Binary Tree dan Strictly Binary Tree
COMPLETE BINARY TREE/FULL BINARY TREE/ ALMOST COMPLETE BINARY TREE H B A D E F I J K C Bukan Almost Complete Binary Tree karena simpul C hanya punya satu anak H H B B A A C D E F G I L M C D E F G Bukan Almost Complete Binary Tree Almost Complete Binary Tree dan tapi bukan Strictly Binary Tree
POHON BINER SEIMBANG BALANCED BINARY TREE (AVL)
POHON BINER SEIMBANG - AVL AVL diambil dari nama G.M. Adelson-Velskii dan E.M. Landis, 2 orang ahli matematika Rusia yang pertama kali (1962) memperkenalkan metode untuk membuat pohon biner selalu seimbang Pohon Biner Seimbang / Berimbang adalah pohon biner yang ketinggian subpohon kiri dan subpohon kanan untuk setiap simpul superordinat, paling banyak berselisih 1 Jadi pohon biner complete dan almost complete adalah pohon biner berimbang Pohon miring/skewed dengan ketinggian /depth lebih besar dari 1 adalah pohon biner tak seimbang
CONTOH : BALANCED BINARY TREE UNBALANCED BINARY TREE A A B C B C D E F G D E F G H I J K L M N H I J K L M N O Unbalanced Binary Tree Balanced Binary Tree
PENOMORAN SIMPUL POHON BINER Berdasarkan konversi dapat disepakati cara penomoran setiap simpul dalam pohon biner, yaitu: Bila sebuah simpul bernomor n, maka subordinat kiri bernomor 2n dan subordiat kanan bernomor 2n+1 Simpul akar, diberi nomor 1 A n A 1 B 2n C 2n+1 B 2 C 3 G 5 H 10 I 11
PENOMORAN SIMPUL POHON BINER Level (k) Maksimum jumlah simpul pada level 2^k Maksimum jumlah seluruh simpul sampai dengan level 2^(k+1)-1 0 1 1 1 2 3 2 4 7 3 4 5 6 7 8 9 10
BINARY TREE/POHON BINER Proses Pohon Biner (Binary Tree), adalah 1. Mendeklarasikan struktur simpul 2. Inisialisasi 3. Pembuatan sebuah simpul 4. Pembuatan simpul akar 5. Penambahan/melakukan insert simpul baru kedalam sebuah pohon 6. Pembacaan/penelusuran pohon biner
BINARY TREE/POHON BINER Proses Pohon Biner (Binary Tree), adalah 1. Deklarasi struktur simpul 2. Inisialisasi.
BINARY TREE/POHON BINER Proses Pohon Biner (Binary Tree), adalah 3. Pembuatan sebuah simpul
BINARY TREE/POHON BINER Proses Pohon Biner (Binary Tree), adalah 4. Pembuatan simpul Akar
BINARY TREE/ POHON BINER Proses Pohon Biner (Binary Tree), adalah 5. Penambahan /melakukan insert simpul baru kedalam sebuah pohon
BINARY TREE/POHON BINER Proses Pohon Biner (Binary Tree), adalah 6. Pembacaan/pene lusuran pohon biner