slide minggu 3 pertemuan 1 (struktur data1) [repariert]

40
STRUKTUR DATA 2 TREE DAN GRAPH

Upload: setia-jul-ismail

Post on 22-Jan-2018

567 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

STRUKTUR DATA 2

TREE DAN GRAPH

Page 2: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Struktur Data

Struktur Data

Sederhana

Record

Array

Majemuk

Linier

Stack

Queue

List

Non linier

Tree

Graph

Page 3: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Struktur Data Majemuk

Struktur Data Majemuk

Linier

Linked List

Stack

Queue

Non Linier

Tree

Graph

Page 4: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

TREE

Page 5: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 6: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 7: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 8: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 9: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

TREE

Page 10: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Kamus Data Pohon Biner

Type Btree = record <

Kiri : Btree

Info : char

Kanan : Btree>

P : BTree

Kiri InfoKana

n

Page 11: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Fisik Pohon Biner

Page 12: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

FISIK POHON BINER

Page 13: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 14: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

BUAT POHON BINER TERURUT Struktur Data Pohon

2, 3, 4, 5, 50, 10,

15, 13, 20, 12, 10,

5, 7

Page 15: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 16: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

SEARCH

Tujuan : memahami proses tracing algoritma

pencarian.

Jenis algoritma searching :

Sequential search

Indexed sequential search

Binary search

Page 17: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

BINARY SEARCH TREE

Nilai Parent

lebih besar dari subtree sebelah kiri

lebih kecil dari subtree sebelah kanan

X > Y

X < Z

X

ZY

Page 18: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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 )

Page 19: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 20: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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)

Page 21: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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.

Page 22: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Contoh penyisipan

Insert ( 20 )

5

10

30

2 25 45

10 < 20, right

30 > 20, left

25 > 20, left

Insert 20 on left

20

Page 23: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 24: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Contoh hapus

Delete ( 25 )

5

10

30

2 25 45

10 < 25, right

30 > 25, left

25 = 25, delete

5

10

30

2 45

Page 25: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

GRAPH

Page 26: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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)

Page 27: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 28: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Graph Berarah dan Tak Berarah

Page 29: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Weighted/ non weighted graph

Page 30: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Graph Data Contoh implementasi : rute penerbangan,rute jaringan komputer,

rangkaian listrik

Contoh Rute penerbangan

Bandung

Jakarta

Semarang

Surabaya

JogjaDenpasar

Page 31: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 32: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

contoh

a

c

e

d

b

2

45

9

5

4

5

6

Page 33: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Keterangan ada 5 komputer terhubung

Kapasitas trafik dinyatakan dalam edge

Carilah MST dari jaringan ini

Page 34: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 35: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 36: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 37: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 38: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

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

Page 39: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

b

5

Vertex Parent

e -

b e

c d

d e

a d

Vertex Parent

e -

b e

c d

d e

a d

Page 40: Slide minggu 3 pertemuan 1 (struktur data1) [repariert]

Hasil MST

a

c

e

d

b

2

45

9

6

4

5

5