ALGORITMA DAN
STRUKTUR DATA
Pratikum – Graph
Online
Kode Mata Kuliah: W4119004
13
Fakultas: Teknik
Disusun Oleh: Eri Dariato, ST, MTI
Program Studi: Teknik Informatika
ABSTRAK TUJUAN
Titik dalam graf disebut simpul, vertex, node, atau point, dan kumpulan titik disebut dengan vertices (nodes atau
points). Garis yang menghubungkan vertex disebut dengan edge dan kumpulan garis yang ada di graf disebut
dengan edges.
Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik)
Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi)
Notasi : G(V,E)
Dimana : G = Graph
V = simpul atau vertex, atau node, atau titik.
E = Busur atau Edge, atau arc
Contoh sebuah graf :
Busur adalah 2 buah simpul yang berpasangan. Untuk menyatakan sebuah busur yang merupakan pasangan
simpul v1 dan v2 biasanya ditulis sebagai berikut :
Sebuah graf mungkin hanya terdiri dari satu simpul (gambar 1.). sebuah graf belum tentu semua simpulnya
terhubung dengan busur (gambar 2). Dalam sebuah graf mungkin saja ada simpul yang tak terhubung dengan
simpul lainnya oleh busur (gambar 3). Dalam sebuah graf kemungkinan semua simpul saling berhubungan
(gambar 4).
Dilihat dari bentuk busur (urutan penyebutan pasangan 2 buah simpul), graf dapat dibedakan menjadi 2
macam :
3. GRAF SEDERHANA (SIMPLE GRAPH) dan GRAF TAK SEDERHANA (COMPLEX GRAPH)
Graf sederhana adalah graf yang mempunyai busur (hubungan antara dua buah simpul) paling
banyak hanya satu ‘macam’. Contoh-contoh gambar graf di atas adalah contoh graf sederhana, baik
berarah atau tidak berarah, berbobot atau tak berbobot.
Apabila dalam suatu graf ada paling sedikit dua buah simpul yang mempunyai hubungan lebih dari
satu macam, atau ada busur yang membentuk loop (busur yang keluar dari dan masuk ke simpul yang
sama), atau yang menyatakan hubungan di dalam simpul itu sendiri, maka graf tersebut dikatakan graf
tidak sederhana (complex graph), atau sering juga disebut multi graph.
Contoh graf tidak sederhana :
Suatu Graf disebut full connected graf apabila setiap simpul dalam graf tersebut saling berhubungan.
Pada full connected grapf berlaku :
m = n (n – 1) / 2
dimana : n = jumlah simpul, dan m = jumlah busur
contoh :
Dalam pemrograman, agar data yang ada dalam graf dapat diolah, maka graf harus dinyatakan dalam
suatu struktur data yang dapat mewakili graf tersebut. Dalam hal ini graf perlu dipresentasikan kedalam
bentuk array dua dimensi yang sering juga disebut matrix, atau direpresentasikan dalam bentuk linked-list.
Bentuk mana yang dipilih, biasanya tergantung kepada efisiensi dan kemudahan dalam membuat
program. Berikut ini beberapa bentuk representasi graph :
1. Adjacency Matrix
2. Inverse Adjacency Matrix (hanya untuk Graf berarah)
3. Incidence Matrix
4. Vector Matrix
II. Representasi graf dalam bentuk Linked List:
1. Adjacency List
2. Inverse Adjacency List (Hanya untuk Graf Berarah)
Matrix yang terbentuk adalah matrix bujur sangkar n * n, dimana n = jumlah simpul yang
ada dalam graf tersebut. Matrix ini menyatakan hubungan satu arah antara simpul satu
dengan simpul lainnya.
Matrix yang terbentuk mungkin symetris, mungkin juga tidak symetris. Menjadi symetris
jika hubungan antara dua buah simpul (v1 dan v2) terdapat busur dari v1 ke v2 dan juga
terdapat busur dari v2 ke v1.
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 outdegree simpul B = 3. Jadi yang keluar dari simpul B ada 3 busur yaitu
menuju simpul A, simpul C dan simpul E (lihat elemen yang berisi nilai 1).
Data yang terdapat dalam suatu kolom, dapat menyatakan indegree simpul yang
bersangkutan. Contoh : Jumlah elemen yang nilainya = 1 pada kolom B (kolom 1) ada 2
elemen, ini menyatakan indegree simpul B = 2. Jadi yang menuju simpul B ada 2 busur
yaitu dari simpul A dan dari simpul C (lihat elemen yang berisi nilai 1).
6.1.4 Adjacency Matrix Graf Berbobot Tak Berarah (Weighted Undirected Graph)
Contoh :
Vector matrix merepresentasikan hubungan simpul dan busur dengan cara lain, yang berbeda
dengan Incidence matrix.
Ukuran matrixnya : n * (n-1)
Dengan n = jumlah simpul, dan (n-1) = jumlah maksimum busur yang mungkin incidence
dengan sebuah simpul