• Tidak ada hasil yang ditemukan

Module 7 Algoritma & Struktur Data (Binary Tree)

N/A
N/A
Protected

Academic year: 2019

Membagikan "Module 7 Algoritma & Struktur Data (Binary Tree)"

Copied!
69
0
0

Teks penuh

(1)

Binary Tree

Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik 2010-2011

(2)

Sub Topik

Penjelasan Tree

Istilah pada tree

Binary Tree

Jenis Binary Tree

(3)
(4)

Real World

root

branches

(5)

Computer Scientist’s View

branches

leaves

root

(6)

Definisi

Kumpulan node yang saling terhubung

secara hirarki.

Hirarki = bertingkat.

Tiap node dapat berisi data dan link

(penghubung) ke node lainnya

Tiap node memiliki satu induk, kecuali

node root (akar) yang tidak memiliki induk.

Tiap node dapat memiliki anak dalam

(7)

Linked list dan Tree

Linked list  linear/serial data

Contoh : nama-nama mahasiswa dalam

satu kelas.

Tree  non linear/hierachically data

Contoh : tingkatan pegawai dalam

(8)

Contoh Tree

Mis. : Struktur organisasi sebuah

(9)

Contoh Tree

(10)

Contoh Tree

(11)

Tree (Pohon)

Root adalah node yang memiliki

hirarki tertinggi.

Subtree (pohon anak) adalah

(12)

Root and Subtrees

Object

Number Throwable OutputStream

Integer Double Exception FileOutputStream

RuntimeException

(13)

Tree (Pohon)

Level adalah posisi hirarki dari

sebuah node. Untuk root bisa diberikan level 0 atau 1.

Leaf (Daun) adalah node yang tidak

memiliki anak atau node yang

berada pada hirarki paling bawah.

Height (tinggi)/depth adalah jumlah

(14)

Leaves

Object

Number Throwable OutputStream

Integer Double Exception FileOutputStream

(15)

Node Degree

Object

Number Throwable OutputStream

Integer Double Exception FileOutputStream

RuntimeException

3

2 1 1

0 0 1 0

(16)

Level

Level 3

Object

Number Throwable OutputStream

Integer Double Exception FileOutputStream

RuntimeException

Level 4

Level 2 Level

1

Level 3

Level 4

(17)

17

Contoh Tree (Pohon)

Level 0

Level 1

Level 2

Level 3

(18)
(19)

Latihan

Ancestor (F)?

Descendant (B)? Parent (I)?

Child (C)? Sibling (G)? Size?

Height? Root? Leaf?

(20)

Tree (Pohon)

Dimana,

Ancestor (F) = C,A

Descendant (B) = D,E Parent (I) = H

(21)
(22)
(23)

Binary Tree

Tiap node pada binary tree hanya

boleh memiliki paling banyak dua child.

Sehingga hanya ada dua subtree pada

(24)

Tree dan Binary Tree

Pada binary tree nilai degree tidak

lebih dari 2, sedangkan pada tree tidak terbatas.

Sub tree pada binary harus terurut

(25)

Jenis Binary Tree

Berdasarkan subtree binary tree

dibedakan menjadi 4 jenis:

Full Binary Tree

Complete Binary Tree

Incomplete Binary Tree (Unbalanced

Tree)

(26)

Jenis Tree

(Full Binary Tree)

Semua node (kecuali leaf) memiliki nol

atau 2 anak dan tiap subtree memiliki panjang path yang sama.

(27)
(28)

Jenis Tree

(Complete Binary Tree)

Seluruh node sebelah kiri terisi

(29)

Complete Binary Tree

H

D K

B F J L

(30)

Incomplete Binary Tree

(31)

Jenis Tree

(Skewed Binary Tree)

Binary tree yang semua nodenya

(kecuali leaf) hanya memiliki satu anak.

Disebut juga minimum binary tree.

(32)

Binary Tree

(33)

Representation

Array representation

(34)

ADT BinaryTree

public interface BinaryTree {

public boolean isEmpty(); public Object root();

public void makeTree(Object root, Object left, Object right);

public BinaryTree removeLeftSubtree(); public BinaryTree removeRightSubtree(); public void preOrder(Method visit);

(35)
(36)

Struktur Data - Tree 36

Akses Elemen

Posisi node dapat ditentukan

berdasarkan rumus berikut :

Anak kiri dari node i berada pada indeks

: 2*i+1

Anak kanan dari node i berada pada

(37)
(38)
(39)
(40)
(41)

Class BinaryTreeNode

class BinaryTreeNode {

Object element;

BinaryTreeNode leftChild; // left subtree

BinaryTreeNode rightChild;// right subtree

// constructors and any other methods come here

(42)
(43)
(44)

Definisi

Penelusuran seluruh node pada

binary tree.

Metode :

Preorder

Inorder

Postorder

(45)

Preorder Traversal

(46)

PreOrder Traversal

Preorder traversal

1. Cetak data pada root

2. Secara rekursif mencetak seluruh data pada subpohon kiri

(47)

Preorder Example (visit =

print)

(48)

Preorder Example (visit =

print)

(49)

Preorder Of Expression Tree

Gives prefix form of expression!

(50)

Inorder Traversal

(51)

InOrder Traversal

Inorder traversal

1.Secara rekursif mencetak seluruh data pada subpohon kiri

2.Cetak data pada root

(52)

Inorder Example (visit =

print)

a

b c

(53)

Inorder Example (visit =

print)

(54)
(55)

Inorder Of Expression Tree

Gives infix form of expression (sans parentheses)!

e

(56)

Postorder Traversal

(57)

Postorder Traversal

Postorder traversal

1.Secara rekursif mencetak seluruh data pada subpohon kiri

2.Secara rekursif mencetak seluruh data pada subpohon kanan

(58)

Postorder Example (visit =

print)

a

b c

(59)

Postorder Example (visit =

print)

(60)

Postorder Of Expression

Tree

Gives postfix form of expression!

(61)

Traversal Applications

• Determine height.

(62)
(63)

Latihan

Telusuri pohon biner berikut dengan

(64)
(65)
(66)
(67)
(68)

PreOrder, PostOrder,

InOrder

• Pre-order :

Node, left, right

Ekspresi Prefix : ++a*bc*+*defg

Post-order :

Node, left, right

Ekspresi Postfix : abc*+de*f+g*+

In-order :

Node, left, right

(69)

Pustaka

Sartaj Sahni , “Data Structures &

Algorithms”, Presentation L20-24.

Mitchell Waite, “Data Structures &

Gambar

Gambar Binary Trees
Gambar aGambar b

Referensi

Dokumen terkait

Ketika kita membuat suatu program tanpa prosedur maka seluruh statement yang terdapat di dalam program utama akan dieksekusi secara beruntun (sequential) dari

▪ Misalnya jika diurutkan secara Ascending, untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran

Dengan strategi ini, setiap masalah akan dipecah menjadi masalah-masalah yang lebih kecil yang serupa dan sama, kemudian secara rekursif diselesaikan; jawaban

 Jika X lebih kecil dari root, maka X harus diletakkan pada sub-tree sebelah kiri..  jika X lebih besar dari root, then X harus diletakkan pada sub-tree

Struktur data binary search tree yang mempunyai karakteristik berbeda dengan struktur data array akan mempunyai dampak pada saat diterapkan sebagai dictionary dalam LZW yakni

 Mahasiswa memahami tentang macam-macam tipe data dan penggunaannya  Mahasiswa memahami tentang prosedur dan fungsi, serta fungsi rekursif  Mahasiswa memahami tentang proses

Begitupun untuk worst case, terjadi peningkatan waktu pencarian jika data semakin banyak Sehingga dapat dikatakan bahwa analisis teoritis dan analisis eksperimental pada algoritma

Algoritma pada Binary Tree  Struktur data tree di definisikan / dilihat secara rekursif:  sebuah binary tree adalah tree kosong atau terdiri dari sebuah node dengan dua buah sub