Upload
setia-jul-ismail
View
568
Download
2
Embed Size (px)
Citation preview
STRUKTUR DATA 2
TREE DAN GRAPH
Struktur Data
Struktur Data
Sederhana
Record
Array
Majemuk
Linier
Stack
Queue
List
Non linier
Tree
Graph
Struktur Data Majemuk
Struktur Data Majemuk
Linier
Linked List
Stack
Queue
Non Linier
Tree
Graph
TREE
Definisi Tree
Struktur data yang terdiri dari akar (root), dan
subpohon-subpohon dalam susunan berhirarki
A
B C
D E HGF
I J
ROOT
Simpul/
Node/V
ertex
Node root dalam sebuah tree adalah suatu node yang memiliki hiarki tertinggi dandapat juga memiliki node-node anak. Semua node dapatditelusuri dari node root tersebut.
Node-node lain di bawah node root saling terhubung satusama lain dan disebutsubtree/Simpul/Node/Vertex
Tingkat (Level) dan Kedalaman (Depth) pada
Tree
Tingkat dimulai dari 0, 1, 2 dst
Kedalaman dimulai dari 1, 2, 3, dst (tingkat + 1)
A
B C
D E HGF
I J
Level 0
Level 1
Level 2
Level 3
ROOT
Simpul/
Node/V
ertex
Derajat Simpul Pada Tree
Derajat = jumlah anak yang dimiliki sebuah simpul
A
B C
D E HGF
I J
Level 0
Level 1
Level 2
Level 3
Derajat
2
Derajat
2
Setiap node hanya punya satu parent
Node Internal dan Node Eksternal
Node Internal = node yang memiliki anak
Node eksternal = node yang tidak memiliki anak (daun)
A
B C
D E HGF
I J
Level 0
Level 1
Level 2
Level 3
Node
Internal
Node
Internal
Setiap node dapat memiliki atau tidak children
TREE
Kamus Data Pohon Biner
Type Btree = record <
Kiri : Btree
Info : char
Kanan : Btree>
P : BTree
Kiri InfoKana
n
Fisik Pohon Biner
FISIK POHON BINER
POHON BINER TERURUT
Procedure SisipUrutBTree(input/output P:BTree, input N:integer)
If EmptyTree(P) then
CreateTree(P)
InsertTree(P,N) {untuk info(P)}
Else If N < info(P) then
SisipUrutBTree(P.kiri,N)
else
SisipUrutBTree(P.kanan,N)
Endif
Endif
menyisipkan simpul dgn aturan : simpul yang lebih kecil
diletakkan di sebelah kiri simpul
BUAT POHON BINER TERURUT Struktur Data Pohon
2, 3, 4, 5, 50, 10,
15, 13, 20, 12, 10,
5, 7
LATIHAN NOTASI POHONStruktur Data Pohon
2
2, 3, 4, 5, 50, 10, 15,
13, 20, 12, 10, 5, 7
3
4
5
5
01
0 1
5
1
3
2
0
1
21
0
5
7
SEARCH
Tujuan : memahami proses tracing algoritma
pencarian.
Jenis algoritma searching :
Sequential search
Indexed sequential search
Binary search
BINARY SEARCH TREE
Nilai Parent
lebih besar dari subtree sebelah kiri
lebih kecil dari subtree sebelah kanan
X > Y
X < Z
X
ZY
Contoh Binary Search Tree
5
10
30
2 25 45
5
10
30
2
25
45
10 > 2, left
5 > 2, left
2 = 2, found
5 > 2, left
2 = 2, found
Find ( root, 2 )
Contoh Binary Searches
Find (root, 25 )
5
10
30
2 25 45
5
10
30
2
25
45
10 < 25, right
30 > 25, left
25 = 25, found
5 < 25, right
45 > 25, left
30 > 25, left
10 < 25, right
25 = 25, found
Operasi Dasar Tree
Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadielemen root.
Find: mencari node di dalam Tree secara rekursif sampainode tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak bolehkosong.
Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akandikunjungi sekali.
Count: menghitung jumlah node dalam Tree Height : mengetahui kedalaman sebuah Tree Find Min dan Find Max : mencari nilai terkecil dan
terbesar pada Tree Child : mengetahui anak dari sebuah node (jika punya)
Binary Search Tree - Menyisipkan
Algoritma
1. Dicari suatu nilai X
2. Jika X < Y, sisipkan nilai baru sebagai subtree sebelah
kiri
3. Jika X > Y,sisipkan nilai baru sebagai subtree sebelah
kanan
4. Sisipkan nilai X di kiri
Data yang lebih kecil dari data node root akan masuk
dan menempati node kiri dari node root, sedangkan
jika lebih besar dari data node root, akan masuk dan
menempati node di sebelah kanan node root.
Contoh penyisipan
Insert ( 20 )
5
10
30
2 25 45
10 < 20, right
30 > 20, left
25 > 20, left
Insert 20 on left
20
Binary Search Tree – Menghapus
Algoritma
1. Cari Nilai X sebagai Leaf dan hapus
a. Jika X> Y kanan
b. Jika X< Y kiri
c. Jika X= X hapus
Contoh hapus
Delete ( 25 )
5
10
30
2 25 45
10 < 25, right
30 > 25, left
25 = 25, delete
5
10
30
2 45
GRAPH
GRAPH
Perbedaan graf denganpohon :
- graf mungkin terjadisiklus (cycle)
- graf dapat terdiri lebihdari satu sambungan
Graf adalah kumpulan simpul (vertices atau nodes)
yang dihubungkan satu sama lain melalui sisi /
busur (edges)
GRAPH
Graph G terdiri dua himpunan :
Verteks(simpul) : V = himpunan simpul yang
terbatas dan tidak kosong
Edge(sisi/busur): E = himpunan busur yang
menghubungkan sepasang simpul
Jenis : Weighted/ non weighted graph
Directed/ non directed graph
Graph Berarah dan Tak Berarah
Weighted/ non weighted graph
Graph Data Contoh implementasi : rute penerbangan,rute jaringan komputer,
rangkaian listrik
Contoh Rute penerbangan
Bandung
Jakarta
Semarang
Surabaya
JogjaDenpasar
Minimum Spanning Tree ( MST )
• minimum spanning tree adalah subgraph dari
suatu undirected weighted graph G
• Berupa tree
• Meliputi semua node/ vertices V
• total cost dikaitkan dengan tree adalah nilai minimum
yang masih mungkin
contoh
a
c
e
d
b
2
45
9
5
4
5
6
Keterangan ada 5 komputer terhubung
Kapasitas trafik dinyatakan dalam edge
Carilah MST dari jaringan ini
Bagaimana mencari MST
Algoritma Prim:
Initialisasi
a. tentukan vertex r menjadi root
b. Buat D(r) = 0, parent(r) = null
c. Untuk semua vertices v V, v r, atur D(v) =
d. semua vertice menjadi prioritas antrian P,
dengan kapasitas trafik sebagai kunci
e a b c d
0
Vertex Parent
e -
d b c a
4 6 5
Vertex Parent
e -
b e
c e
d e
a c b
2 4 5
Vertex Parent
e -
b e
c d
d e
a d
d b c a
4 6 5
Vertex Parent
e -
b e
c e
d e
a c b
2 4 5
Vertex Parent
e -
b e
c d
d e
a d
c b
4 5
Vertex Parent
e -
b e
c d
d e
a d
c b
4 5
Vertex Parent
e -
b e
c d
d e
a d
b
5
Vertex Parent
e -
b e
c d
d e
a d
b
5
Vertex Parent
e -
b e
c d
d e
a d
Vertex Parent
e -
b e
c d
d e
a d
Hasil MST
a
c
e
d
b
2
45
9
6
4
5
5