Data structure materi struktur data Tree.ppt

ErnaPiantari2 0 views 72 slides Oct 09, 2025
Slide 1
Slide 1 of 72
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72

About This Presentation

Materi struktur data tree


Slide Content

STRUKTUR DATA
Tree (Pohon)

OUTLINE
1.Pengertian Tree Structure?
2.Binary Tree & implementasinya
3.Tree Traversal
4.Implementasi tree (selain binary tree)

APAKAH TREE STRUCTURE ITU ?
Konsep struktur data yang terdiri dari akar dan simpul-simpul yang berada di bawahnya
Struktur data yang menunjukkan hubungan bertingkat (memiliki hierarkhi)
Contoh: struktur organisasi, silsilah keluarga
Warek I Warek II Warek III
Rektor

APAKAH TREE STRUCTURE ITU ?
Contoh: direktori/folder pada windows
My PicturesMy Music Struktur data
Pointer & StructureLinked list
My Document
Tree

KOMPONEN PADA TREE
1
3
7
10
2
4 5 6
8 9
node root
leaf
leaf
leaf
node
node
leaf
leaf
leafleaf
leaf
subtree

HUBUNGAN ANTAR KOMPONEN
Hubungan antar elemen: parent-
child, father-son, mother-daughter
Nama node: nama(angka) yang
dipakai untuk membedakan sebuah
node dengan node yang lain. Dalam
kuliah ini adalah angka yang tertulis
dalam lingkaran.
Label: nilai yang diingat oleh sebuah
node     
Tree vs Graph
Tree: setiap node kecuali root
hanya memiliki sebuah parent
Graph: dapat memiliki lebih dari
sebuah parent
1
3
7
10
4 5 6
8 9
node
root
leaf
leaf
leafleaf
leaf
node
node
2
Contoh graph

HUBUNGAN ANTAR KOMPONEN
sibling:node-node yang
memiliki parent yang sama
Ancestor dari node x:
node yang ditemukan, ketika
menyusuri tree ke atas
dari node x
Descendant dari node x:
node yang ditemukan ketika
menyusuri tree ke bawah
dari node x
1
3
7
10
2
4 5 6
8 9
node
root
leaf
leaf
leafleaf
leaf
node
node

HUBUNGAN ANTAR KOMPONEN
sibling:node-node
yang memiliki parent
yang sama
Ancestor dari node x:
node yang ditemukan,
ketika menyusuri tree ke
atas dari node x
Descendant dari node
x: node yang
ditemukan ketika
menyusuri tree ke
bawah dari node x
1
3
7
10
2
4 5 6
8 9
node
root
leaf
leaf
leafleaf
leaf
node
node

HUBUNGAN ANTAR KOMPONEN
sibling:node-node yang
memiliki parent yang sama
Ancestor dari node x:
node yang ditemukan,
ketika menyusuri tree ke
atas dari node x
Descendant dari node
x: node yang
ditemukan ketika
menyusuri tree ke bawah
dari node x
1
3
7
10
2
4 5 6
8 9
node
root
leaf
leaf
leafleaf
leaf
node
node

LEVEL
1
3
7
10
2
4 5 6
8 9
0
1
2
3

DERAJAT
1
3
7
10
2
4 5 6
8 9
3
2
1
0

DEFINISI TREE
Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara
recursive oleh kedua rule berikut:
1.Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini
berfungsi sebagai root maupun leaf.
2.Dari k buah tree T
1
~T
k
, dan masing-masing memiliki root n
1
~n
k
.
3.Jika node n adalah parent dari node n
1
~n
k
, akan diperoleh sebuah
tree baru T yang memiliki root n. Dalam kondisi ini, tree T
1~
T
kmenjadi sub-tree dari tree T. Root dari sub-tree n
1~n
kadalah
child dari node n .
1
Tree
leaf
root
node

DEFINISI TREE
Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara
recursive oleh kedua rule berikut:
1.Sebuah node adalah sebuah tree. Node satu-satunya pada tree
ini berfungsi sebagai root maupun leaf.
2.Dari k buah tree T
1~T
k , dan masing-masing memiliki root n
1~
n
k.Jika node n adalah parent dari noden
1~n
k, akan diperoleh
sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree
T
1~T
kmenjadi sub-tree dari tree T. Root dari sub-tree n
1~
n
kadalah child dari node n .

2 3 4
5 6
T1 n1 T2
n2 1
2
3
1
T3
n3 n4
T4
2
1
3

DEFINISI TREE
2.Dari k buah tree T
1
~T
k
, dan masing-masing memiliki root
n
1
~n
k
.Jika node n adalah parent dari noden
1
~n
k
, akan
diperoleh sebuah tree baru T yang memiliki root n. Dalam
kondisi ini, tree T
1~T
kmenjadi sub-tree dari tree T. Root
dari sub-tree n
1
~n
k
adalah child dari node n .
2
6 7 8
12 13
T1 n1 T2
n2
5
T3
n3 n4
T4
n
T
4
11
14
9 10
3
1

ORDERED VS UNORDERED TREE
Ordered tree
Antar sibling terdapat urutan “usia”
Node yang paling kiri berusia paling tua (sulung), sedangkan
node yang paling kanan berusia paling muda (bungsu)
Posisi node diatur atas urutan tertentu
Unordered tree
Antar sibling tidak terdapat urutan tertentu

OUTLINE
1.Pengertian Tree Structure?
2.Binary Tree & implementasinya
3.Tree Traversal
4.Implementasi tree (selain binary tree)

DEFINISI BINARY TREE
1.Sebuah tree yang kosong juga merupakan sebuah binary tree
2.Binary tree harus memenuhi salah satu syarat berikut
Tidak memiliki anak
Memiliki subtree di sebelah kiri (left subtree)
Memiliki subtree di sebelah kanan (right subtree)
Memiliki baik left subtree maupun right subtree
a a
b
a
b
a
cb
a
b
HATI-HATI DALAM MENGGAMBAR BINARY TREE

IMPLEMENTASI BINARY TREE DALAM
BAHASA C
ERNA PIANTARI
10/09/25

leftrightlabelstruct node {
struct node *left;
struct node *right;
mydata label;
}
a
cb
a
b c
IMPLEMENTASI BINARY TREE

CONTOH
A
H
B
C
F
D
E
G
A
H
B
C
F
D
E
G
1418A
2638B H
C 5678D
100 E F
G
10
14 18
26 38
56 78
100
10
14
18
26 38
56 78
100

LATIHAN 1
Gambarkan implementasi dari binary tree berikut
DC
G
A
F
E
JI
H
B
10
20
30
40 50 60 70
80
90
100

OUTLINE
1.Pengertian Tree Structure?
2.Binary Tree & implementasinya
3.Tree Traversal
4.Implementasi tree (selain binary tree)

DEFINISI TREE TRAVERSAL
Teknik menyusuri tiap node dalam sebuah tree secara
sistematis, sehingga semua node dapat dan hanya satu
kali saja dikunjungi
Ada tiga cara traversal
preorder
inorder
postorder
Untuk tree yang kosong, traversal tidak perlu dilakukan

PREORDER
1.Visit the root
2.Traverse the left subtree
3.Traverse the right subtree
A
H
B
C
F
D
E
G
A
H
B
C
F
D
E
G
A→B→C→D→E→G→F→H

struct node {
struct node *left;
struct node *right;
char label;
}
void preorder(struct node *p)
{
if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa
printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi
preorder(p->left); traverse the left subtree
preorder(p->right);     traverse the right subtree
}

INORDER
1.Traverse the left subtree
2.Visit the root
3.Traverse the right subtree
A
H
B
C
F
D
E
G
A
H
B
C
F
D
E
G

IMPLEMENTASI DALAM BAHASA C
struct node {
struct node *left;
struct node *right;
char label;
}
void inorder(struct node *p)
{
if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa
inorder(p->left); traverse the left subtree
printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi
inorder(p->right);     traverse the right subtree
}

POSTORDER
1.Traverse the left subtree
2.Traverse the right subtree
3.Visit the root
A
H
B
C
F
D
E
G
A
H
B
C
F
D
E
G

IMPLEMENTASI DALAM BAHASA C
struct node {
struct node *left;
struct node *right;
char label;
}
void postorder(struct node *p)
{
if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa
postorder(p->left); traverse the left subtree
postorder(p->right);     traverse the right subtree
printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi
}

1. Visit the root
2. Traverse the left subtree
3. Traverse the right
subtree
1. Traverse the left
subtree
2. Visit the root
3. Traverse the right
subtree
1. Visit the root
2. Traverse the left subtree
3. Traverse the right
subtree

10/09/25

LATIHAN-2
A
B
C
G
D
E
F H
LK
I
J
Tuliskan hasil preorder, inorder dan postorder traversal
untuk binary tree berikut.

OUTLINE
1.Apakah Tree Structure itu ?
2.Binary Tree & implementasinya
3.Tree Traversal
4.Implementasi tree (selain binary tree)

N-TREE
STRUKTUR DATA
10/09/25ERNA PIANTARI

TEKNIK IMPLEMENTASI TREE LAINNYA
Binary tree hanya memiliki dua anak: kiri dan kanan. Karena
itu implementasinya hanya memerlukan dua buah pointer
untuk masing-masing subtree.
 Untuk implementasi tree yang memiliki sebarang anak,
dapat dilakukan dengan berbagai cara

CONTOH
1
2 6
3 54

1 23
IMPLEMENTASI 1 , LABEL || CHILD
1
2 6
3 54
2 77
3
4
5
6
5 37 35
1087 1595 25
3
5
10
15
25
35
23 37
77 87 95
labelchild
struktur yang
Merepresentasikan node
            
 
struktur yang merepresentasikan
koneksi antar node      
       

1
2 6
3 54
labelchildsibling
11001
210031002 6
1000
1001 1002
3 1004
1003
4 1005
1004
5
1005
Implementasi 2 memakai model binary-tree, label || child || sibling

1
2 6
3 54
IMPLEMENTASI MEMAKAI BINARY-TREE
11001
210031002 6
1000
1001 1002
3 1004
1003
4 1005
1004
5
1005

IMPLEMENTASI MEMAKAI BINARY-TREE
11001
210031002 6
1000
1001 1002
3 1004
1003
4 1005
1004
5
1005
1
2
6
3
5
4
Rotasi ke kanan 45°

LATIHAN
EC H
G
KJ
I
10
50
300
100 200 350 400
450 500
D150
F250
A
B
Jelaskan bagaimana proses
implementasi tree berikut!
a.Implementasi 1
b.Implementasi 2

SELESAI
10/09/25ERNA PIANTARI

10/09/25
JENIS-JENIS KHUSUS BINARY TREE
Full Binary Tree : Binary tree yang setiap nodenya memiliki dua clid dan setiap
subtree memiliki panjang path yang sama
Complete Binary Tree : Setiap node memiliki dua clid namun setiap subtree
boleh memiliki Panjang yang berbeda
Skewed Binary Tree : Binary tree yang semua nodenya hanya memiliki 1 child,
kecuali leaf

OPERASI TREE
Create : untuk membuat binary tree baru yang masih kosong
Insert ; memasukan node kedalam tree, bis sebagai root, left child atau right child,
jika sebagai root maka harus kosong
Clear : mengosongkan binary tree yang sudah ada
Empty : memeriksa apakah binary treenya kosong
Find ; mencari root, parent, left child atau right child
Update : mengubah isi dari node
Retrive : mengetahui isi node yang ditunjuk pointer current
deleteSub : menghapus subree (node beserta descendantnya)
Characteristic : mengetahui karakteristik dari tree (ukuran, height average length)
Transverse : mengunjungi node pada tree (pre orderm in order dan post order)
10/09/25

10/09/25
CREATE BINARY TREE
typedef struct {
struct node *left;
struct node *right;
int label;
}node;
void createTree ( node * T, int data) {
node *new;
new = (node *) malloc (sizeof (node));
new->label = data;
new->left = NULL;
new-> right = NULL;
T = new;
}

10/09/25
INSERT KIRI
void tambahKiri (tree *T, int dataBaru){
node *baru;
baru = (node *) malloc (sizeof (node));
baru -> data = dataBaru
baru->left = NULL;
baru->right =NULL;
if (T->left == NULL){
T->left = baru;
}
else {
tree * subtree;
subtree = T->left;
while (subtree->left !=NULL)
subtree = subtree->left;
subtree->left = baru;
}
}

10/09/25
Buat Insert Kanan!!

10/09/25
DELETE TREE
void delAll (node *root){
if (root!=NULL);
dellAll(root->left);
dellAll(root->right);
free (root);
}
void delKanan (simpul * root){
if (root!=NULL){
if (root->right !=NULL){
dellAll(root->right);
}
}
}

ILUSTRASI BINARY TREE UNTUK
ARITMATIKA
10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

10/09/25

BINARY SEARCH TREE
10/09/25

PENGERTIAN
Sama dengan ordered binary Tree
Untuk memudahkan proses pencarian, binary serach tree memiliki sifat bahwa
semua left child harus lebih kecil daripada right child dan parentnya. Juga semua
right child harus lebih besar dari left child serta parentnya. 
10/09/25

10/09/25
INSERT DALAM BINARY TREE

10/09/25
INSERT BINARY TREE
5
5
5

DELETE
10/09/25

DELETE
10/09/25