SlideShare a Scribd company logo
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
BAGIAN IVBAGIAN IV
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
Merupakan tipe data abstrak yang
mempunyai hubungan antar elemen:
One to many.
Hubungan one to many meliputi:
1. Hubungan one to one.
2. Hubungan one to zero.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
Karakteristik Tree
1. Terdapat satu node yang unik, yang tidak
memiliki predecessor. Node ini disebut Root.
2. Terdapat satu atau beberapa node yang tidak
memiliki successor. Node-node tersebut disebut
Leaf.
3. Setiap node kecuali Root, pasti memiliki satu
predecessor yang unik.
4. Setiap node kecuali Leaf, pasti memiliki satu
atau lebih successor
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
Hubungan Parent-Child
• PARENT adalah predecessor langsung dari
suatu node.
• CHILD adalah successor langsung dari
suatu
node.
• Node-node yang memiliki Parent yang sama
disebut SIBLING.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
B
A
E
F G I K
C D
JH
Root
Leaf Leaf LeafLeafLeaf Leaf
Leaf
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
B
A
E
F G I K
C D
JH
Root
Leaf Leaf LeafLeafLeaf Leaf
Leaf
Level 1
Level 2
Level 3
Path
Path-length=2
Tree-heigth = 3
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Binary tree adalah bentuk khusus dari tree
dimana setiap node hanya diperbolehkan
memiliki maksimum dua anak.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Bentuk khusus binary-tree:
1. Full binary-tree
Semua node, kecuali leaf memliki dua anak dan
memiliki path-length yang sama.
2. Complete binary-tree
Semua node, kecuali leaf memiliki dua anak.
3. Skewed binary-tree
Semua node, kecuali leaf memiliki satu anak.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Sifat rekursif pada Binary tree
1. Suatu Binary tree dapat berupa tree kosong.
2. Bila tree tidak kosong, tree memiliki satu node, yang disebut
Root node, beserta Subtree kiri dan Subtree kanan.
3. Subtree kiri dan Subtree kanan dapat berupa tree kosong.
Bila Subtree tidak kosong, Subtree memiliki satu node - disebut
Root node – beserta Subtree kiri dan Subtree kanan.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
ROOT
SUBTREE KIRI SUBTREE KANAN
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Tree Traversal
Akses pada suatu node pada tree
tidak semudah seperti pada linked
list,
karena sejak masuk ke root node,
ada dua jalur yang harus dipilih:
left child atau right child.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Tiga macam traversal yang dapat digunakan
untuk mengakses node-node didalam Binary tree:
INORDER : Left – Root – Right.
PREORDER : Root – Left – Right.
POSTORDER : Left – Right – Root.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
ROOT
Traversal Inorder : B
– A – C
Traversal Preorder : A – B –
C
Traversal Postorder : B – C –
A
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E
ROOT
Traversal Inorder : D – B – E – A – C
Traversal Preorder : A – B – D – E – C
Traversal Postorder : D – E – B – C – A
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E
ROOT
Traversal Inorder : B – A – D – C – E
Traversal Preorder : A – B – C – D – E
Traversal Postorder : B – D – E – C – A
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E F G
ROOT
Traversal Inorder : D – B – E – A – F – C – G
Traversal Preorder : A – B – D – E – C – F – G
Traversal Postorder : D – E – B – F – G – C – A
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Operasi-operasi pada Binary tree
1. Create( )
Menciptakan Binary tree baru dalam keadaan kosong.
2. Insert(elemen_type e, relative_pos r, bool fail)
Menambahkan satu elemen ke dalam Binary tree
pada
posisi relatif terhadap current pointer. Posisi current
pindah ke node baru.
Relative position pada perintah Insert:
Root : Insert node baru sebagai Root
Left : Insert node baru sebagai Left child.
Right : Insert node baru sebagai Right child.
Parent : Insert node baru sebagai Parent. (selalu Fail)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
3. DeleteSub( )
Subtree yang ditunjuk oleh current akan dihapus,
posisi current pindah ke parent dari node yang
dihapus.
4. Find(relative_pos rel, bool fail)
Memindahkan current ke posisi rel.
5. Empty( )
Memeriksa apakah Binary tree kosong.
6. Clear( )
Menghapus seluruh Binary tree.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Relative position pada perintah Find:
Root : Memindahkan pointer Current ke Root
Left : Memindahkan pointer Current ke Left child.
Right : Memindahkan pointer Current ke Right child.
Parent : Memindahkan pointer Current ke Parent.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
7. Update(elemen_type e)
Isi node yang ditunjuk oleh current akan
diganti oleh isi dari e.
8. Retrieve(elemen_type *e)
Menyalin isi node yang ditunjuk oleh current
ke variabel e.
9. Traversal(order ord)
Melaksanakan traversal sesuai dengan ord,
yaitu: Inorder, Preorder atau Postorder.
Posisi current tidak berubah.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-TreeContoh Operasi pada Binary-Tree
1. Create();1. Create();
2. Insert(‘A’, Root, Fail);2. Insert(‘A’, Root, Fail);
Binary TreeBinary Tree
R C
NULL NULL
R = Root, C = Current
A
R
C
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
3. Insert(‘B’, Left , Fail); 4. Insert(’C’, Left,3. Insert(‘B’, Left , Fail); 4. Insert(’C’, Left,
Fail);Fail);
Binary TreeBinary Tree
A
R
C B
A
R
C
B
C
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
5. Find(Parent , Fail); 6. Insert(’D’, Left,5. Find(Parent , Fail); 6. Insert(’D’, Left,
Fail);Fail);
Binary TreeBinary Tree
A
R
C B
C
A
R
C B
C
Fail = true
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
7. Insert(‘D’, Right, Fail); 8. Find(Root,7. Insert(‘D’, Right, Fail); 8. Find(Root,
Fail);Fail);
Binary TreeBinary Tree
A
R
C
B
C
A
R
B
C D C D
atau
Find(Parent,Fail);
2x
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, Right,9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, Right,
Fail);Fail);
Binary TreeBinary Tree
A
R
B
C D
C E
A
R
B
C D C
E
F
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
12. Traversal(Inorder); 13.12. Traversal(Inorder); 13.
Traversal(Postorder);Traversal(Postorder);
Binary TreeBinary Tree
A
R
B
C D
C E
C B D A E
A
R
B
C D
C E
C D B E A
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
14. Update(‘B’); 15. Find(Parent,14. Update(‘B’); 15. Find(Parent,
Fail);Fail);
Binary TreeBinary Tree
A
R
B
C D
C B
A
R
B
C D
C
B
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
 Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
16. Find(Left, Fail); 17. Deletesub(Parent,16. Find(Left, Fail); 17. Deletesub(Parent,
Fail);Fail);
Binary TreeBinary Tree
A
R
B
C D
C B
A
R
C
B
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi Binary tree dengan Array.
• Indeks pada array menyatakan nomor node.
• Indeks 0 adalah Root node.
• Indeks Left child dari node p adalah 2p + 1.
• Indeks Right child dari node p adalah 2p + 2.
• Indeks Parent dari node p adalah (p-1)/2.
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
B
A
C
D E F G
H I
Contoh Binary TreeContoh Binary Tree
Implementasi dengan arrayImplementasi dengan array
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9][10][11][12]
Posisi elemen/node dalam array.
A B C D E F G H I
Kerugian implementasi binary-tree dengan array ?Kerugian implementasi binary-tree dengan array ?
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi dengan Double Linked
list.
struct TNode
{
elemen_type data;
struct TNode *left;
struct TNode *right;
};
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi dengan Multiple Linked
list.
struct TNode
{
elemen_type data;
struct TNode *left;
struct TNode *right;
struct TNode *parent;
};

More Related Content

What's hot

Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
KuliahKita
 
Bab 5 komputer sederhana sap-1
Bab 5   komputer sederhana sap-1Bab 5   komputer sederhana sap-1
Bab 5 komputer sederhana sap-1
Universitas Putera Batam
 
Teknik Searching
Teknik SearchingTeknik Searching
Teknik Searching
Brigita Wensen
 
Algoritma dan Struktur Data - Array
Algoritma dan Struktur Data - ArrayAlgoritma dan Struktur Data - Array
Algoritma dan Struktur Data - Array
KuliahKita
 
Modul teknik-digital
Modul teknik-digitalModul teknik-digital
Modul teknik-digital
ecko gmc
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
Rakhmi Khalida, M.M.S.I
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
dedidarwis
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
difa febri
 
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
KuliahKita
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
Bina Sarana Informatika
 
Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
I Komang Agustino
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
Kelinci Coklat
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
dedidarwis
 
Deadlock
DeadlockDeadlock
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
Kelinci Coklat
 
Dimensional Modelling
Dimensional ModellingDimensional Modelling
Dimensional Modelling
dedidarwis
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasi
daru2501
 
Data mining 2 exploratory data analysis
Data mining 2   exploratory data analysisData mining 2   exploratory data analysis
Data mining 2 exploratory data analysis
IrwansyahSaputra1
 

What's hot (20)

Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
 
Bab 5 komputer sederhana sap-1
Bab 5   komputer sederhana sap-1Bab 5   komputer sederhana sap-1
Bab 5 komputer sederhana sap-1
 
queue antrian
queue antrianqueue antrian
queue antrian
 
Teknik Searching
Teknik SearchingTeknik Searching
Teknik Searching
 
Algoritma dan Struktur Data - Array
Algoritma dan Struktur Data - ArrayAlgoritma dan Struktur Data - Array
Algoritma dan Struktur Data - Array
 
Modul teknik-digital
Modul teknik-digitalModul teknik-digital
Modul teknik-digital
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
 
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Deadlock
DeadlockDeadlock
Deadlock
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
Dimensional Modelling
Dimensional ModellingDimensional Modelling
Dimensional Modelling
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasi
 
Data mining 2 exploratory data analysis
Data mining 2   exploratory data analysisData mining 2   exploratory data analysis
Data mining 2 exploratory data analysis
 

Viewers also liked

Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
Georgius Rinaldo
 
Materi Struktur Data Tree
Materi Struktur Data TreeMateri Struktur Data Tree
Materi Struktur Data Tree
Meta N
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary Tree
Muhammad Iqbal
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
Georgius Rinaldo
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
Georgius Rinaldo
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
Georgius Rinaldo
 
Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
Georgius Rinaldo
 
Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur Data
Fajar Sany
 

Viewers also liked (8)

Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
 
Materi Struktur Data Tree
Materi Struktur Data TreeMateri Struktur Data Tree
Materi Struktur Data Tree
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary Tree
 
Algoritma dan Struktur Data - object
Algoritma dan Struktur Data - objectAlgoritma dan Struktur Data - object
Algoritma dan Struktur Data - object
 
Algoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructorAlgoritma dan Struktur Data - constructor dan destructor
Algoritma dan Struktur Data - constructor dan destructor
 
Algoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adtAlgoritma dan Struktur Data - adt
Algoritma dan Struktur Data - adt
 
Algoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methodsAlgoritma dan Struktur Data - methods
Algoritma dan Struktur Data - methods
 
Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur Data
 

More from Sunarya Marwah

Struktur data 10 (min max heap)
Struktur data 10 (min max heap)Struktur data 10 (min max heap)
Struktur data 10 (min max heap)Sunarya Marwah
 
Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)
Sunarya Marwah
 
Struktur data 08 (heap)
Struktur data 08 (heap)Struktur data 08 (heap)
Struktur data 08 (heap)Sunarya Marwah
 
Struktur data 07 (b tree)
Struktur data 07 (b tree)Struktur data 07 (b tree)
Struktur data 07 (b tree)
Sunarya Marwah
 
Struktur data 06 (red black tree)
Struktur data 06 (red black tree)Struktur data 06 (red black tree)
Struktur data 06 (red black tree)Sunarya Marwah
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Sunarya Marwah
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
Sunarya Marwah
 
Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)
Sunarya Marwah
 
Struktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked listStruktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked list
Sunarya Marwah
 

More from Sunarya Marwah (10)

Struktur data 10 (min max heap)
Struktur data 10 (min max heap)Struktur data 10 (min max heap)
Struktur data 10 (min max heap)
 
Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)
 
Struktur data 08 (heap)
Struktur data 08 (heap)Struktur data 08 (heap)
Struktur data 08 (heap)
 
Struktur data 07 (b tree)
Struktur data 07 (b tree)Struktur data 07 (b tree)
Struktur data 07 (b tree)
 
Struktur data 06 (red black tree)
Struktur data 06 (red black tree)Struktur data 06 (red black tree)
Struktur data 06 (red black tree)
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
 
Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)
 
Struktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked listStruktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked list
 
Struktur dataquadtree
Struktur dataquadtreeStruktur dataquadtree
Struktur dataquadtree
 

Struktur data 04 (binary tree)

  • 1. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah BAGIAN IVBAGIAN IV
  • 2. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree
  • 3. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree Merupakan tipe data abstrak yang mempunyai hubungan antar elemen: One to many. Hubungan one to many meliputi: 1. Hubungan one to one. 2. Hubungan one to zero.
  • 4. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree Karakteristik Tree 1. Terdapat satu node yang unik, yang tidak memiliki predecessor. Node ini disebut Root. 2. Terdapat satu atau beberapa node yang tidak memiliki successor. Node-node tersebut disebut Leaf. 3. Setiap node kecuali Root, pasti memiliki satu predecessor yang unik. 4. Setiap node kecuali Leaf, pasti memiliki satu atau lebih successor
  • 5. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree Hubungan Parent-Child • PARENT adalah predecessor langsung dari suatu node. • CHILD adalah successor langsung dari suatu node. • Node-node yang memiliki Parent yang sama disebut SIBLING.
  • 6. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree B A E F G I K C D JH Root Leaf Leaf LeafLeafLeaf Leaf Leaf
  • 7. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah TreeTree B A E F G I K C D JH Root Leaf Leaf LeafLeafLeaf Leaf Leaf Level 1 Level 2 Level 3 Path Path-length=2 Tree-heigth = 3
  • 8. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Binary tree adalah bentuk khusus dari tree dimana setiap node hanya diperbolehkan memiliki maksimum dua anak.
  • 9. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree
  • 10. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Bentuk khusus binary-tree: 1. Full binary-tree Semua node, kecuali leaf memliki dua anak dan memiliki path-length yang sama. 2. Complete binary-tree Semua node, kecuali leaf memiliki dua anak. 3. Skewed binary-tree Semua node, kecuali leaf memiliki satu anak.
  • 11. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Sifat rekursif pada Binary tree 1. Suatu Binary tree dapat berupa tree kosong. 2. Bila tree tidak kosong, tree memiliki satu node, yang disebut Root node, beserta Subtree kiri dan Subtree kanan. 3. Subtree kiri dan Subtree kanan dapat berupa tree kosong. Bila Subtree tidak kosong, Subtree memiliki satu node - disebut Root node – beserta Subtree kiri dan Subtree kanan.
  • 12. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree ROOT SUBTREE KIRI SUBTREE KANAN
  • 13. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Tree Traversal Akses pada suatu node pada tree tidak semudah seperti pada linked list, karena sejak masuk ke root node, ada dua jalur yang harus dipilih: left child atau right child.
  • 14. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Tiga macam traversal yang dapat digunakan untuk mengakses node-node didalam Binary tree: INORDER : Left – Root – Right. PREORDER : Root – Left – Right. POSTORDER : Left – Right – Root.
  • 15. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree A B C ROOT Traversal Inorder : B – A – C Traversal Preorder : A – B – C Traversal Postorder : B – C – A
  • 16. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree A B C D E ROOT Traversal Inorder : D – B – E – A – C Traversal Preorder : A – B – D – E – C Traversal Postorder : D – E – B – C – A
  • 17. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree A B C D E ROOT Traversal Inorder : B – A – D – C – E Traversal Preorder : A – B – C – D – E Traversal Postorder : B – D – E – C – A
  • 18. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree A B C D E F G ROOT Traversal Inorder : D – B – E – A – F – C – G Traversal Preorder : A – B – D – E – C – F – G Traversal Postorder : D – E – B – F – G – C – A
  • 19. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Operasi-operasi pada Binary tree 1. Create( ) Menciptakan Binary tree baru dalam keadaan kosong. 2. Insert(elemen_type e, relative_pos r, bool fail) Menambahkan satu elemen ke dalam Binary tree pada posisi relatif terhadap current pointer. Posisi current pindah ke node baru. Relative position pada perintah Insert: Root : Insert node baru sebagai Root Left : Insert node baru sebagai Left child. Right : Insert node baru sebagai Right child. Parent : Insert node baru sebagai Parent. (selalu Fail)
  • 20. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree 3. DeleteSub( ) Subtree yang ditunjuk oleh current akan dihapus, posisi current pindah ke parent dari node yang dihapus. 4. Find(relative_pos rel, bool fail) Memindahkan current ke posisi rel. 5. Empty( ) Memeriksa apakah Binary tree kosong. 6. Clear( ) Menghapus seluruh Binary tree.
  • 21. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Relative position pada perintah Find: Root : Memindahkan pointer Current ke Root Left : Memindahkan pointer Current ke Left child. Right : Memindahkan pointer Current ke Right child. Parent : Memindahkan pointer Current ke Parent.
  • 22. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree 7. Update(elemen_type e) Isi node yang ditunjuk oleh current akan diganti oleh isi dari e. 8. Retrieve(elemen_type *e) Menyalin isi node yang ditunjuk oleh current ke variabel e. 9. Traversal(order ord) Melaksanakan traversal sesuai dengan ord, yaitu: Inorder, Preorder atau Postorder. Posisi current tidak berubah.
  • 23. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-TreeContoh Operasi pada Binary-Tree 1. Create();1. Create(); 2. Insert(‘A’, Root, Fail);2. Insert(‘A’, Root, Fail); Binary TreeBinary Tree R C NULL NULL R = Root, C = Current A R C
  • 24. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 3. Insert(‘B’, Left , Fail); 4. Insert(’C’, Left,3. Insert(‘B’, Left , Fail); 4. Insert(’C’, Left, Fail);Fail); Binary TreeBinary Tree A R C B A R C B C
  • 25. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 5. Find(Parent , Fail); 6. Insert(’D’, Left,5. Find(Parent , Fail); 6. Insert(’D’, Left, Fail);Fail); Binary TreeBinary Tree A R C B C A R C B C Fail = true
  • 26. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 7. Insert(‘D’, Right, Fail); 8. Find(Root,7. Insert(‘D’, Right, Fail); 8. Find(Root, Fail);Fail); Binary TreeBinary Tree A R C B C A R B C D C D atau Find(Parent,Fail); 2x
  • 27. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, Right,9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, Right, Fail);Fail); Binary TreeBinary Tree A R B C D C E A R B C D C E F
  • 28. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 12. Traversal(Inorder); 13.12. Traversal(Inorder); 13. Traversal(Postorder);Traversal(Postorder); Binary TreeBinary Tree A R B C D C E C B D A E A R B C D C E C D B E A
  • 29. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 14. Update(‘B’); 15. Find(Parent,14. Update(‘B’); 15. Find(Parent, Fail);Fail); Binary TreeBinary Tree A R B C D C B A R B C D C B
  • 30. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah  Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan) 16. Find(Left, Fail); 17. Deletesub(Parent,16. Find(Left, Fail); 17. Deletesub(Parent, Fail);Fail); Binary TreeBinary Tree A R B C D C B A R C B
  • 31. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Implementasi Binary tree dengan Array. • Indeks pada array menyatakan nomor node. • Indeks 0 adalah Root node. • Indeks Left child dari node p adalah 2p + 1. • Indeks Right child dari node p adalah 2p + 2. • Indeks Parent dari node p adalah (p-1)/2.
  • 32. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree B A C D E F G H I Contoh Binary TreeContoh Binary Tree Implementasi dengan arrayImplementasi dengan array
  • 33. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree [0] [1] [2] [3] [4] [5] [6] [7] [8] [9][10][11][12] Posisi elemen/node dalam array. A B C D E F G H I Kerugian implementasi binary-tree dengan array ?Kerugian implementasi binary-tree dengan array ?
  • 34. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Implementasi dengan Double Linked list. struct TNode { elemen_type data; struct TNode *left; struct TNode *right; };
  • 35. Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah Binary TreeBinary Tree Implementasi dengan Multiple Linked list. struct TNode { elemen_type data; struct TNode *left; struct TNode *right; struct TNode *parent; };