Anda di halaman 1dari 42

GRAPH

DEFINISI GRAPH
 Graph adalah struktur data yang memiliki relasi many to many, yaitu tiap
element dapat memiliki 0 atau lebih dari 1 cabang.
 Graph terbentuk dari 2 bagian, yaitu node dan edge.
 Node : digunakan untuk menyimpan data
 Edge : cabang, untuk menghubungkan node satu
dengan node lain.
DEFINISI GRAPH CONT…

 Graph adalah kumpulan dari simpul dan busur yang


secara matematis dinyatakan sebagai :

G = (V, E)

Dimana
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
GRAPH

 Sebuah graph mungkin hanya terdiri dari satu


simpul
 Sebuah graph belum tentu semua simpulnya
terhubung dengan busur
 Sebuah graph mungkin mempunyai simpul yang
tak terhubung dengan simpul yang lain
 Sebuah graph mungkin semua simpulnya saling
berhubungan
CONTOH GRAPH
 Jaringan pertemanan pada
Facebook.
Nina

Firda

Riza

Toni

Joko
Ale

Graph dengan 6 node dan 7 edge yang merepresentasikan jaringan


pertemanan pada Facebook
PENJABARAN
 Jika => G = (N,E)

 Dimana : G adalah Graph, N adalah Node, dan E adalah Edge.

 Sehingga dari contoh graph facebook tersebut dapat dijabarkan:

N = {Nina, Toni, Ale, Riza, Joko, Firda}


E = {{Nina,Toni},{Toni,Riza},{Nina, Riza}, {Toni,Ale},
{Ale,Joko},{Riza,Joko},{Firda,Joko}}

*N: para anggota Facebook


E : pertemanan antara member satu dengan yang lain.
ISTILAH PADA
GRAPH
Incident
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w
yang ditulis e=(v,w), maka v dan w disebut “terletak” pada e, dan
e disebut incident dengan v dan w.

Degree (derajat)
Degree sebuah simpul adalah jumlah busur yang incident
dengan
simpul tersebut.
ISTILAH PADA GRAPH CONT…

Indegree
Jumlah busur yang kepalanya incident dengan simpul tersebut, atau
jumlah busur yang “masuk” atau menuju simpul tersebut.

Outdegree
Jumlah busur yang ekornya incident dengan simpul tersebut, atau
jumlah busur yang “keluar” atau berasal dari simpul tersebut.
ISTILAH PADA GRAPH
CONT..
Pada graph tidah berarah, 2 buah simpul disebut adjacent
bila ada busur yang menghubungkan kedua simpul
tersebut. Simpul v dan w disebut adjacent.

Pada graph berarah, simpul v disebut adjacent dengan


simpul w bila ada busur dari w ke v.
e
w
v

e w

v
ISTILAH PADA GRAPH
CONT..
Successor dan Predecessor
Pada graph berarah, bila simpul v adjacent dengan simpul w, maka simpul v adalah
successor simpul w, dan simpul w adalah predecessor dari simpul v.

Path
Sebuah path adalah serangkaian simpul-simpul yang berbeda, yang adjacent secara
berturut-turut dari simpul satu ke simpul berikutnya.

1 2 1 2 1 2 1 2

3 4 4 3 4 3 4

3
CONTOH GRAPH

vertex v2
B V terdiri dari v1, v2, …, v5
e1 e3 E terdiri dari e1, e2, … , e7
e4
v1 A edge C v3

e2 e5 e7

E
v4 D e6 v5

Undirected graph
JENIS GRAPH

 Graph dibedakan menjadi beberapa jenis, antara lain :


1. Undirected Graph
2. Directed Graph (Digraph)
3. Weight Graph
UNDIRECTED GRAPH
 Biasa disingkat : undi-graph.
 Yaitu graph yang tidak memiliki arah.
 Setiap sisi berlaku dua arah.
 Misalkan : {x,y}
Arah bisa dari x ke y, atau y ke x.
 Secara grafis sisi pada undigraph tidak memiliki mata panah
dan
secara notasional menggunakan kurung kurawal.

U V {U,V} atau {V,U}


GAMBAR UNDI-GRAPH
Notasional

G = {V, E}
V = {A, B, C, D, E, F, G, H, I,J, K, L, M}
E = { {A,B},{A,C}, {A,D}, {A,F}, {B,C}, {B,H}, {C,E}, {C,G}, {C,H}, {C,I}, {D,E},
{D,F}, {D,G}, {D,K}, {D,L}, {E,F}, {G,I}, {G,K}, {H,I}, {I,J}, {I,M},
{J,K},
{J,M}, {L,K}, {L,M}}.
Contoh Undi-Graph

2
3

4
5

6
7
Directed Graph
 Biasa disingkat : Di-graph.
 Yaitu graph yang memiliki arah.
 Setiap edge Digraph memiliki anak panah yang mengarah ke node
tertentu.
 Secara notasi sisi digraph ditulis sebagai vektor (u, v).
u = origin (vertex asal)
v = terminus (vertex tujuan)

u v
Gambar Digraph
Notasional
Contoh Digraph

2
3

4
5

6
7
GRAPH BERARAH DAN GRAPH TAK BERARAH

v2
v2
B e9 B
e8
e3 e1 e3
e1
e4 v3 e4
v1 A C v1 A C v3
e10
e2 e5 e7 e5 e7
e2

D e6 E v5 E
v4 v4 D e6 v5

Directed graph Undirected


graph

Dapat dilihat dari bentuk busur yang artinya


urutan penyebutan pasangan 2 simpul.
GRAPH BERBOBOT (WEIGHTED GRAPH)
 Jika setiap busur mempunyai nilai yang menyatakan hubungan
antara 2 buah simpul, maka busur tersebut dinyatakan memiliki
bobot.

 Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari


2 buah titik, jumlah rata-rata kendaraan perhari yang melalui
sebuah jalan, dll.

 Graph yang memiliki bobot, yaitu pada tiap edge-nya memiliki


nilai.
CONTOH WEIGTH GRAPH

A
2
E

2
D
2
4 5

4
F
C
GRAPH BERBOBOT
v2
v2
B 7 B
4
3 5 3
5
12 v3 12
v1 A C v1 A C v3
10
e2 6 8 6
8 4

D 3 E v5 E
v4 v4 D 3 v5

Directed graph Undirected graph

Panjang busur (atau bobot) mungkin tidak digambarkan secara panjang yang
proposional dengan bobotnya. Misal bobot 5 digambarkan lebih panjang dari 7.
Representasi Graph

 Representasi graph dibedakan menjadi 2 :


1. Adjacency Matrix
dapat direpresentasikan dengan matriks (array 2 Dimensi).

2. Adjacency Lists
dapat direpresentasikan dengan array (bukan berupa matriks)
maupun linked list.
Adjacency Matrix
 Representasi Graph berupa Matrik ordo nxn. dimana n = node.
 Baris berisi Node asal, sedangkan kolom berisi Node tujuan.
 Jika graph tidak berbobot,maka nilai matriks diisi dengan 1
atau 0. nilai 1 jika ada edge, dan 0 jika tidak ada edge antar
node.
A(i,j) = 1, jika antara node i dan node j terdapat
edge/terhubung.
 Jika graph berbobot, maka nilai matriks diisi dengan bobot dari
edge. A(i,j) = nilai bobot.
Undi-graph j
1 2 3 4 5
2 1 0 1 0 1
3 0

1 2 1 0 0 0
1
3 0 0 0 0
4
5
i
1
4
•Diagonal entries are zero. 1 0 0 0
1
•Adjacency matrix of an5 undirected
0 1 graph
1 1 is
0
symmetric.
A(i,j) = A(j,i) for all i and j.
Adjacency Matrix
j
1 2 3 4
5
2 1 0 1 0 1 0
3
2 1 0 0 0 1
1
3 0 0 0 0 1

4
i 4 1 0 0 0 1
5
5 0 1 1 1 0
Di-graph j
1 2 3 4 5
2 1 0 0 0 1
3 0

1 2 1 0 0 0
1
3 0 0 0 0
4
5
i
0
4 0 0 0 0
 Dimungkinkan tidak simetris jika terdapat loop.
1

5 0 1 1 0
0
REPRESENTASI GRAPH DALAM BENTUK MATRIX

 Adjacency Matrix Graph tak berarah


Urut abjad
A B C D E
B 0 1 2 3 4

A 0 0 1 0 1 0
A C
B 1 1 0 1 0 1
C 2 0 1 0 1 1
D E D 3 1 0 1 0 1
Graph E 4 0 1 1 1 0
Degree simpul : 3
REPRESENTASI GRAPH DALAM BENTUK MATRIX

 Adjacency Matrix Graph berarah


ke A B C D E
dari 1 2 3
B
0 4
A 0
0 1 0 1 0
B 1 out
A C
1 0 1 0 1
C 2

D 3
0 1 0 1 1
D E
E 4 0 0 1 0 1
Graph 0 0 0 0 0

in
REPRESENTASI GRAPH DALAM
BENTUK LINKED LIST

 Adjency List graph tak berarah


 Digambarkan sebagai sebuah simpul yang memiliki 2 pointer.
 Simpul vertex : Simpul edge :

left right left right


info info
Menunjuk ke simpul
edge pertama Menunjuk ke
simpul edge
Menunjuk ke simpul Menunjuk ke simpul berikutnya, bila
vertex berikutnya, vertex tujuan yang masih ada.
dalam untaian berhubungan dengan
simpul yang ada. simpul vertex asal.
Adjacency List

 Direpresentasikan dengan linked list atau array.


 Array list : array dua dimensi namun tidak ber-ordo nxn.
 Linked list : array of single linked list
Array Lists

2
3
aList[1] = (2,4)
1 aList[2] = (1,5)
4 aList[3] = (5)
5
aList[4] = (5,1)
aList[5] = (2,4,3)
Adjacency Lists (Linked List)

2 aList [1] 2 4
3
[2] 1 5
1
[3] 5
4 [4] 5 1
5 [5] 2 4 3
 Define struct untuk sebuah simpul yang dapat digunakan sebagai
vertex maupun edge.

typedef struct tipeS {


tipeS *Left;
int INFO;
tipeS *Right;
};
tipeS *FIRST, *PVertex,
*PEdge;
CONTOH : UNTUK VERTEX A, MEMILIKI 2 EDGE YANG
TERHUBUNG YAITU E1 DAN E2.

B Urut abjad
e1 A e1 e2
e3
e4
A C B

e2 e5 e7 C

D E
e6
D
Graph
E
Gambar di atas dapat disusun dengan lebih sederhana,
sbb :

A B D
B
B A C E

C B D E
A C
D A C E

E B C D
D E

Graph
ADJENCY LIST GRAPH BERARAH

B A B D

B A C
A C C E

D C E

D E E B
GRAPH BERARAH DAN BERBOBOT

A B C D E

6 B 0 1 2 3 4
3
A 0 0 5 0 2 0
5
A 14 C
B 1 6 0 3 0 0
C 2 0 0 0 0 9
2 12 12
D 3 0 0 12 0 7
D 7 E E 4 0 14 0 0 0
Perhatikan pemilihan nilai 0.

Anda mungkin juga menyukai