Anda di halaman 1dari 34

STRUKTUR DATA

Struktur Data Graf

Arif Harjanto
Teknik Elektro Universitas Mulawarman
GRAPH

• 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
Contoh graph :

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

e2 e5 e7

v4 D e6
E
v5

Undirected graph (Graph tak berarah)


• 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
Graph Berarah dan Graph Tak Berarah :
v2
v2
B e9 B
e8
e3 e1 e3
e1
e4 v3 e4
v1
v1 A C A C v3
e10
e2 e5 e7 e2 e5 e7

D e6 E v5 v4 D E
v4 e6 v5

Directed graph Undirected graph

Dapat dilihat dari bentuk busur yang artinya urutan penyebutan


pasangan 2 simpul.
• Graph tak berarah (undirected graph atau
non-directed graph) :
• Urutan simpul dalam sebuah busur tidak
dipentingkan. Mis busur e1 dapat disebut
busur AB atau BA

• Graph berarah (directed graph) :


• Urutan simpul mempunyai arti. Mis busur AB
adalah e1 sedangkan busur BA adalah e8.
• 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 Berbobot :
v2
v2
B 7 B
4
3 5 3
5
12 v3 v1 12
v1 A C A C v3
10
e2 6 4 8 6
8
D 3 E v5 v4 D E
v4 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.
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), indegree dan outdegree
Degree sebuah simpul adalah jumlah busur
yang incident dengan simpul tersebut.
Indegree sebuah simpul pada graph berarah
adalah jumlah busur yang kepalanya
incident dengan simpul tersebut, atau jumlah
busur yang “masuk” atau menuju simpul
tersebut.

Outdegree sebuah simpul pada graph


berarah adalah jumlah busur yang
ekornya incident dengan simpul tersebut,
atau jumlah busur yang “keluar” atau berasal
dari simpul tersebut.
3. Adjacent
Pada graph tidah berarah, 2 buah simpul
disebut adjacent bila ada busur yang
menghubungkan kedua simpul tersebut.
Simpul v dan w disebut adjacent.
e
w
v

Pada graph berarah, simpul v disebut


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

v
4. 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.
5. 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
Representasi Graph dalam
bentuk matrix
Representasi Graph dalam
bentuk matrix
• Adjacency Matrix Graph tak berarah
Urut abjad A B C D E
0 1 2 3 4
B
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
E 4 0 1 1 1 0
Graph

Degree simpul : 3
Representasi Graph dalam
bentuk matrix
• Matrik yang terbentuk adalah matrik bujur sangkar n x n,
dimana n = jumlah simpul yang ada dalam graf tersebut.
Matrik ini menyatakan hubungan antara simpul satu
dengan simpul lainnya.
• Matrik yang terbentuk adalah matrik simetris dengan
sumbu simetris adalah diagonal dari titik kiri atas ke titik
kanan bawah.
• Data yang tedapat baik dalam baris maupun kolom, dapat
menyatakan degree sebuah simpul. Contoh : baik pada
baris D maupun kolom D jumlah angka 1 nya adalah 3
buah, dimana jumlah ini menyatakan degree simpul D.
Representasi Graph dalam
bentuk matrix
Representasi Graph dalam
bentuk matrix
• Adjacency Matrix Graph berarah
ke A B C D E
dari 0 1 2 3 4
B
0
A
0 1 0 1 0
out
A C
B 1 1 0 1 0 1
C 2 0 1 0 1 1
D E D 3 0 0 1 0 1
Graph
E 4
0 0 0 0 0

in
Representasi Graph dalam
bentuk matrix

• Matrik yang terbentuk adalah matrik bujur sangkar


n x n, dimana n = jumlah simpul yang ada dalam
graf tersebut. Matrik ini menyatakan hubungan
antara simpul satu dengan simpul lainnya.
• Matrik yang terbentuk mungkin simetris mungkin
juga tidak simetris. Menjadi
• Simetris bila hubungan antara dua buah simpul (v1
dan v2) terdapat busur dari v1 ke v2 dan juga
sebaliknya.
Representasi Graph dalam
bentuk matrix
• Hal pokok yang dinyatakan oleh matrik ini adalah : busur
yang ’keluar’ dari suatu simpul. Dengan demikian, data yang
terdapat dalam suatu baris, dapat menyatakan outdegree
simpul yang bersangkutan.
Contoh : Jumlah elemen yang nilainya = 1 pada baris B ada 3
elemen,ini menyatakan jumlah outdegree simpul B adalah 3
buah.
• Data yang terdapat dalam suatu kolom, dapat menyatakan
indegree simpul bersangkutan.
Contoh : Jumlah elemen yang nilainya 1 pada kolom B ada 2
elemen, ini menyatakan indegree simpul B adalah 2 buah.
Adjacency Matrik Graf
Berbobot Tak Berarah
Adjacency Matrik Graf
Berbobot Tak Berarah
Adjacency Matrik Graf
Berbobot Tak Berarah

• Nilai yang ada dalam tiap elemen matrik, menyatakan


bobot busur yang menghubungkan dua buah simpul
yang bersangkutan.
• Dua buah simpul yang tidak berhubungan langsung oleh
sebuah busur, maka dianggap dihubungkan oleh
sebuah busur yang nilai bobotnya tidak terhingga.
• Pada gambar simpul A dan C tidak berhubungan
langsung melalui sebuah busur, maka untuk elemen
matrik yang bersangkutan diisi dengan nilai
999karena nilai 999 dalam kasus ini cukup mewakili nilai
tidak terhingga.
Representasi Graph dalam
bentuk Linked List
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 simpul berhubungan dengan
yang ada. simpul vertex asal.
Adjacency List
• Dari ilustrasi sederhana tersebut terlihat
ada 5 buah simpul A,B,C,D,dan E yang
dibariskan dari atas kebawah.
• Masing-masing simpul ’keluar’ pointer
kearah kanan yang menunjuksimpul-
simpul lain. Salah satu contoh, yang dapat
dilihat pada gambar 
• Dalam Adjacency List, kita perlu membedakan antara
simpul-vertex dan simpul-edge. Simpul-vertex untuk
menyatakan simpul atau vertex, dan simpul-edge untuk
menyatakan hubungan antar simpul yang biasa
disebut busur. 
• Struktur keduanya bisa sama, bisa juga tidak
sama,tergantung kebutuhan.Untuk memudahkan
pembuatan program, struktur kedua macam simpul dibuat
sama seperti yang digambarkan pada gambar.
• Yang membedakan antara simpul-vertex dan simpul-edge,
adalah anggapan terhadap simpul tersebut.
•KASUS
Contoh : untuk vertex A, memiliki 2
edge yang terhubung yaitu e1 dan e2.
Langkah (1)

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 :
(Langkah 2)

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 (Langkah 3)

B A B D

B A C
A C C E

D C E

D E E B
Graph berarah dan
berbobot (Langkah 4)

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

Anda mungkin juga menyukai