POHON DAN POHON BINER Defri Kurniawan defri kurniawandsn
POHON DAN POHON BINER Defri Kurniawan defri. kurniawan@dsn. dinus. ac. id Struktur Data 2019
Konten Tree Binary Tree Traversal Struktur Data 2019
Struktur Data Linier O U T 1 2 3 4 4 3 I 2 N 1 0 STACK 1 5 8 9 1 2 3 n • • Head Tail QUEUE 2 ARRAY 10 8 14 LINKED LIST Struktur Data 2019
Tree � Pohon adalah struktur data hirarki � Tree adalah struktur data yang terdiri dari entitas yang disebut node yang terkait melaui sebuah edge � Node paling atas disebut dengan root Struktur Data 2019
Tree � Pohon adalah struktur data hirarki � Tree adalah struktur data yang terdiri dari entitas yang disebut node yang terkait melaui sebuah edge � Node paling atas disebut dengan root Root Node Edge Node Struktur Data 2019
Struktur Data 2019
Tree � Node dengan pd posisi yg lebih tinggi disebut dg parent dan yang lebih rendah disebut children � Node dengan posisi yang sama disebut sibling � Node dengan posisi paling rendah disebut leaf 1 2 4 3 5 6 9 7 10 8 • • 1 adalah root 1 adalah parent dari 2 dan 3 adalah children dari 1 2 adalah parent dari 4, 5, dan 6 adalah sibling 7 dan 8 adalah children dari 3 7 dan 8 adalah sibling 9 dan 10 adalah leaf Struktur Data 2019
Tree � Tree mempunyai : � n node � n-1 edge 1 1 2 2 3 4 • Jumlah node adalah 10 • Jumlah edge adalah 9 3 4 5 5 6 8 9 9 10 6 7 7 8 Struktur Data 2019
Binary Tree (Pohon Biner) � Binary Tree adalah tree dimana setiap node mempunyai paling banyak 2 children � Children dari setiap node disebut left-child dan right-child Struktur Data 2019
Binary Tree �sebuah pengorganisasian secara hirarki dari beberapa buah simpul, dimana masing-masing simpul tidak mempunyai anak lebih dari 2. �Simpul yang berada di bawah sebuah simpul dinamakan anak dari simpul tersebut. �Simpul yang berada di atas sebuah simpul dinamakan induk dari simpul tersebut. Struktur Data 2019
Struktur Binary Tree �Masing-masing simpul dalam binary tree terdiri dari tiga bagian yaitu sebuah data dan dua buah pointer yang dinamakan pointer kiri dan kanan. Struktur Data 2019
Deklarasi Binary Tree typedef char type. Info; typedef struct Node tree; struct Node { type. Info info; tree *kiri; /* cabang kiri */ tree *kanan; /* cabang kanan */ }; Struktur Data 2019
Pembentukan Binary Tree �Perlu memperhatikan kapan suatu node akan dipasang sebagai node kiri dan kapan sebagai node kanan. �Misalnya ditentukan, node yang berisi info yang nilainya “lebih besar” dari parent akan ditempatkan di sebelah kanan dan yang “lebih kecil” di sebelah kiri. �Sebagai contoh jika kita memiliki informasi “HKACBLJ” maka pohon biner yang terbentuk Struktur Data 2019
Pembentukan Binary Tree - Lanjut Struktur Data 2019
Pembentukan Binary Tree - Lanjut � Binary tree dibentuk dengan node yang mempunyai dan dua buah pointer/link ( *Left dan *Right ) *L *L *L D D *R *L *R *R *L D D *R *L *L D Data D *R *L D *R *R Struktur Data 2019
Langkah-langkah Pembentukan Binary Tree 1. Siapkan node baru - alokasikan memory-nya (masukkan info-nya, set pointer kiri & kanan = NULL) 2. Sisipkan pada posisi yang tepat - penelusuran utk menentukan posisi yang tepat; info yang nilainya lebih besar dari parent akan ditelusuri di sebelah kanan, yang lebih kecil dari parent akan ditelusuri di sebelah kiri - penempatan info yang nilainya lebih dari parent akan ditempatkan di sebelah kanan, yang lebih kecil di sebelah kiri Struktur Data 2019
Metode Traversal �Salah satu operasi yang paling umum dilakukan terhadap sebuah tree adalah kunjungan (traversing) �Sebuah kunjungan berawal dari root, mengunjungi setiap node dalam tree tersebut tepat hanya sekali � Mengunjungi artinya memproses data/info yang ada pada node ybs �Kunjungan bisa dilakukan dengan 3 cara: 1. Preorder 2. Inorder 3. Postorder Struktur Data 2019
Binary Tree Traversal � Breadth First : Level order � Depth First : � Preorder � Inorder H � Postorder D K B A F C E J G L I Struktur Data 2019
Binary Tree Traversal � Breadth First � Level Order Traversal mengunjungi setiap node dari level teratas kemudian bergerak ke node sebelah kiri kemudian node sebelah kanan pada level dibawahnya. H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Breadth First � Level Order Traversal mengunjungi setiap node dari level teratas kemudian bergerak ke node sebelah kiri kemudian node sebelah kanan pada level dibawahnya. H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Breadth First � Level Order Traversal mengunjungi setiap node dari level teratas kemudian bergerak ke node sebelah kiri kemudian node sebelah kanan pada level dibawahnya. H–D–K–B–F–I–L–A–C–E–G–J H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal PRE-ORDER � Kunjungan preorder, juga disebut dengan depth first order, menggunakan urutan: � Cetak isi simpul yang dikunjungi � Kunjungi cabang kiri � Kunjungi cabang kanan Parent Left children Right children Struktur Data 2019
Binary Tree Traversal IN-ORDER � Kunjungan secara inorder, juga sering disebut dengan symmetric order, menggunakan urutan: � Kunjungi cabang kiri � Cetak isi simpul yang dikunjungi � Kunjungi cabang kanan Left children Parent Right children Struktur Data 2019
Binary Tree Traversal POST-ORDER � Kunjungan secara postorder menggunakan urutan: � Kunjungi cabang kiri � Kunjungi cabang kanan � Cetak isi simpul yang dikunjungi Left children Right children Parent Struktur Data 2019
Latihan � Cetak setiap data node pada binary tree traversal berikut: � Preorder traversal � Inorder traversal � Postorder traversal H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Preorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Data/parent Left children Right children H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Preorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Data/parent Left children Right children H–D–B–A–C–F–E–G–K–I–J–L H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Inorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Data/parent Right children H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Inorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Data/parent Right children H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Inorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Data/parent Right children A–B–C–D–E–F–G–H–I–J–K–L H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Postorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Right children Data/parent H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Postorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Right children Data/parent H D K B A F C E I G L J Struktur Data 2019
Binary Tree Traversal � Depth First � Postorder traversal mengunjungi node terbawah hingga mencapai setiap children node dengan urutan: Left children Right children Data/parent A–C–B–E–G–F–D–J–I–L–K–H H D K B A F C E I G L J Struktur Data 2019
Responsi Tulis jalur (path) untuk Pre Order, In Order, Post Order Struktur Data 2019
Jawaban �Pre � 7, �In Order 1, 0, 3, 2, 5, 4, 6, 9, 8, 10 Order � 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 �Post � 0, Order 2, 4, 6, 5, 3, 1, 8, 10, 9, 7 Struktur Data 2019
TUGAS PENGGANTI (TGL 25 DES) � Buatlah program dari contoh pohon biner di atas untuk dapat melakukan cetak dengan penelusuran PRE ORDER, IN ORDER & POST ORDER Struktur Data 2019
TERIMA KASIH Struktur Data 2019
- Slides: 37