Anda di halaman 1dari 15

MODUL PERKULIAHAN

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

Graph adalah salah satu struktur linier di


 Mahasiswa dapat mengetahui macam-
pemrograman.
macam graph dan penerapannya
 Mahasiswa dapat merepresentasikan
graph berarah

2019 Algoritma dan Struktur Data


2 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
PEMBAHASAN
Pengertian Graph
Graf termasuk struktur non linier. Graf adalah kumpulan titik yang tidak dihubungkan maupun dihubungkan
dengan garis. Seberapa besar titik itu digambarkan ataupun seberapa panjang garis yang menghubungkan titik-
titik itu tidak dipermasalahkan.

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 :

V = { v1 , v2 , v3 , v4 , v5 } dibaca : V terdiri dari v1 , v2 , v3 , v4 ,v5

Dalam matematik : V adalah himpunan dengan anggota v1 , v2 , v3 , v4 ,v5

Busur = Arc, Edge

Istilah Edge dilambangkan dengan E


2019 Algoritma dan Struktur Data
3 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
E = { e1 , e2 , e3 , e4 , e5 , e6 , e7 }

Busur adalah 2 buah simpul yang berpasangan. Untuk menyatakan sebuah busur yang merupakan pasangan
simpul v1 dan v2 biasanya ditulis sebagai berikut :

E(v1,v2) atau e1,2 atau (1,2)

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).

1. Graph tak berarah dan berarah

Dilihat dari bentuk busur (urutan penyebutan pasangan 2 buah simpul), graf dapat dibedakan menjadi 2
macam :

A. Graf Tak Berarah (Undirected Graf atau Non Directed Graf)


Contoh:

Pada graf Tak Berarah :


2019 Algoritma dan Struktur Data
4 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
 Urutan simpul dalam sebuah busur tidak dipentingkan. Busur e1 dapat disebut busur A,B atau B,A.
 Identik dengan sebuah jalan yang menghubungkan dua buah titik, yang dapat dilalui dari dua arah.
 Pada gambar diatas terlihat bahwa dari A dapat ke B, dan dari B dapat ke A melalui jalan yang
sama.

B. Graf Berarah (Directed Graf atau sering ditulis Digraf)


Contoh :

Pada Graf Berarah :


Urutan Simpul mempunyai arti.
Pada gambar di atas terlihat busur A,B adalah busur e1. Sedangkan busur B,A adalah busur e8.
Identik dengan : kalau dari A ke B hanya dapat menggunakan jalan e1, sedangkan dari B ke A hanya
menggunakan jalan e8.
Pada gambar juga terlihat tidak ada jalan langsung dari simpul D ke simpul A.

2. GRAF BERBOBOT (WEIGHTED GRAPH)


Apabila setiap busur mempunyai sebuah nilai yang menyatakan hubungan antara dua buah simpul, maka
busur tersebut dikatakan mempunyai bobot, dan graf disebut graf berbobot (Weighted Graph).
Bobot sebuah busur dapat menyatakan panjang sebuah jalan antara dua buah titik, atau
jumlah rata-rata kendaraan perhari yang melalui sebuah jalan atau mungkin saja selisih nilai
antara dua buah simpul dan sebagainya.

Graph Berbobot tak berarah

2019 Algoritma dan Struktur Data


5 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Graph Berbobot berarah

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 :

2019 Algoritma dan Struktur Data


6 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
4. Sub graf
Sub graf adalah bagian dari graf. Bahkan graf itu sendiri merupakan sub graf dari dirinya sendiri.
Contoh :

2019 Algoritma dan Struktur Data


7 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
G2 dan G3 merupakan subgraf yang membentuk struktur pohon sehingga disebut Spanning Tree.
Spanning Tree adalah sub graph yang membentuk pohon dengan jumlah simpul sama dengan yang
dimiliki oleh graf aslinya. Tree adalah graf tak berarah terhubung yang tidak mengandung sirkuit.
G4 dan G5 juga merupakan sub graf dengan jumlah simpul yang lebih sedikit dari jumlah simpul graf
aslinya. Dari gambar di atas terlihat bahwa :
1. Jumlah simpul suatu sub graf mungkin sama atau mungkin juga lebih sedikit dari jumlah simpul graf
aslinya
2. Jumlah busur suatu sub graf selalu lebih sedikit dari jumlah busur graf aslinya.

5. FULL CONNECTED GRAPH (Graf Terhubung Penuh)

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 :

2019 Algoritma dan Struktur Data


8 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
6. Representasi Graph

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 :

I. Representasi graf dalam bentuk matrix:

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)

6.1 Representasi Graf dalam bentuk Matrix


6.1.1 Adjacency Matrix Graf Tak Berarah (Undirected Graf)

2019 Algoritma dan Struktur Data


9 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
 Setiap elemen matrix diisi dengan angka 0 atau angka 1.
 Angka 1, menyatakan ada hubungan (ada busur) atau adjacent antara dua buah
simpul.
 Contoh angka 1 pada elemen (1,4) menyatakan ada hubungan antara simpul B dan
simpul E.
 Matrix yang terbentuk adalah matrix bujur sangkar n * n, dimana n = jumlah simpul yang
ada dalam graf tersebut. Matrix ini menyatakan hubungan antara simpul satu dengan
simpul lainnya (simpul-simpul yang adjacent).
 Matrix yang terbentuk adalah matrix symetris dengan sumbu symetris adalah diagonal
dari titik kiri atas ke titik kanan bawah. Terlihat bagian matrix sebelah atas sumbu
symetris sama dengan bagian matrix sebelah bawah sumbu symetris.
 Data yang terdapat dalam baris maupun kolom, dapat menyatakan degree sebuah
simpul. Contoh : Baris D (baris 3) maupun Kolom D (kolom 3) jumlah angka 1 = 3.

6.1.2 Adjacency Matrix Graf Berarah (Directed Graph)


Contoh :

2019 Algoritma dan Struktur Data


10 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Gambar 6.1.2 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.3 Inverse Adjacency Matrix Graf Berarah (Directed Graph

2019 Algoritma dan Struktur Data


11 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Perbedaan Inverse Adjacency Matrix dengan Adjacency Matrix adalah :
1. Data yang ada dalam suatu baris, menyatakan indegree, dan
2. Data yang ada dalam suatu kolom, menyatakan outdegree.

6.1.4 Adjacency Matrix Graf Berbobot Tak Berarah (Weighted Undirected Graph)
Contoh :

2019 Algoritma dan Struktur Data


12 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
 Nilai yang ada dalam tiap elemen matrix, menyatakan bobot busur yang
menghubungkan dua buah simpul yang bersangkutan.
 Untuk dua buah simpul yang tidak berhubungan langsung atau tidak dihubungkan
langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah busur yang nilai
bobotnya tidak terhingga.
 Dalam pemrograman, untuk menyatakan nilai tak terhingga dapat digunakan sebuah
nilai yang dipastikan lebh besar dari total bobot seluruh busur yang ada atau yang
mungkin ada. Contoh : simpul A dan simpul C tidak berhubungan langsung melalui
sebuah busur, maka elemen matrix yang bersangkutan diisi dengan nilai 999. Karena
nilai 999 dianggap cukup mewakili nilai tak terhingga.

6.1.5 Incidence Matrix Graf Tak Berarah

2019 Algoritma dan Struktur Data


13 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Incidence Matrix dari graf di atas adalah :

 Incidence matrix ini dengan ukuran n * m merepresentasikan hubungan antara simpul


dengan busur.
 Simpul yang dihubungkan oleh busur e2 adalah simpul A dan D. Kolom suatu incidence
matrix memperlihatkan hubungan antara dua buah simpul (hanya 2 buah simpul).
Sehingga dalam suatu kolom selalu ada dua angka ‘1’.
 Busur yang ada hubungan dengan simpul B adalah busur : e1, e3 dan e4. Dalam baris
B terdapat 3 buah angka ‘1’. Artinya: dari simpul B keluar 3 buah busur yaitu e1, e3 dan
e4.

6.1.6 Vector Matrix Graph Tak Berarah


Contoh :

2019 Algoritma dan Struktur Data


14 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id
Vector Matrix dari graf di atas adalah :

 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

2019 Algoritma dan Struktur Data


15 Eri Dariato, ST, MTI
Pusat Bahan Ajar dan eLearning
http://www.undira.ac.id

Anda mungkin juga menyukai