HpiM4 Jurnal DW TeoriGraph
HpiM4 Jurnal DW TeoriGraph
Dian Wirdasari
Program Studi Ilmu Komputer, Universitas Sumatera Utara
dianws@gmail.com
ABSTRAK: Makalah ini membahas tentang pokok bahasan dalam matematika diskrit yaitu
teori graph dan implementasinya dalam ilmu komputer. Teori graph merupakan konsep yang sudah
cukup lama dipakai dan diterapkan pada banyak bidang. Makalah ini menyajikan bagaimana tataran
konseptual graph, yaitu tentang gambaran umum, definisi graph, hingga sampai pada tataran
implementasi, yaitu bagaimana konsep tersebut diterapkan dalam bidang ilmu komputer khususnya
dalam Struktur Data dan menentukan minimum spanning tree (MST) yang banyak diaplikasikan
dalam masalah TSP (Traveling Salesman Problem).
Z
Gambar 2. Representasi Multigraph Jembatan
Konigsberg
Gambar 1. Jembatan Konigsberg
Titik-titik yang diberi label X, Y, Z, dan W
Sebuah metode untuk mencari solusi dari pada Gambar 2 itulah yang disebut verteks, dan
masalah ini adalah dengan membentuk model garis yang menghubungkan antar titik itulah
23
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
yang disebut dengan edge. Euler menetapkan Definisi 1. Sebuah simple graph (undirected
sebuah aturan yang bisa dipakai disemua graph) adalah pasangan dari G = (V , E )
multigraph, untuk mencari solusi dari masalah dimana:
pada jembatan Konigsberg, aturan ini disebut 1. V adalah himpunan berhingga dari
dengan Eulerian path, yang berbunyi: elemen yang disebut verteks
2. E adalah sebuah relasi yang irrefleksif
dan simetri pada V.
“Andaikan kita mempunyai sebuah
multigraph sehingga untuk beberapa pasang Pasangan berurutan pada E disebut edge
verteks terdapat sebuah path (lintasan) dari graph. Lebih spesifik, jika e = (u, v ) Î E ,
diantara verteks-verteks tersebut. dikatakan bahwa edge e adalah antara u dan v
Multigraph tersebut memiliki Eulerian path (dan juga antara v dan u ), dan dikatakan bahwa
jika dan hanya jika terdapat 0 atau 2 verteks
u adjacent ke v . Lebih jauh, dapat dikatakan
yang mana banyak edge yang meninggalkan
bahwa e incident ke u (dan juga v ). Karena E
verteks tersebut berjumlah ganjil.”
simetri, maka kita dapat menotasikan e sebagai
pasangan tak berurut {u , v} .
Multigraph pada jembatan Konigsberg
memiliki empat verteks, yang mana keempat Andaikan G = (V , E ) sebuah graph.
verteks tersebut memiliki edge yang Dengan u , v verteks. Degree dari v , dinotasikan
meninggalkan verteks tersebut berjumlah ganjil.
dengan d( v ) , adalah jumlah edge yang incident
Maka multigraph jembatan Konigsberg tidak
memiliki Eulerian path. Multigraph yang ke v . Karena sebuah edge harus incident ke dua
ditunjukkan pada Gambar 3a tidak memiliki verteks, maka muncullah Teorema 1.
panah, sehingga disebut dengan undirected
graph (graph tak berarah). Sebaliknya, Teorema 1. Andaikan G = (V , E )
multigraph yang memiliki panah disebut dengan
directed graph (graph berarah) (Gambar 3b). å
vÎ V
d(v) = 2 | E |
b
Sebuah subgraph dari graph G = (V , E ) adalah
sebuah graph G ' = (V ', E ') sehingga V ' Í V
a c
dan E ' Í E . Subgraph G ' = (V ', E ') disebut
sebagai spanning subgraph jika V = V ' .
Gambar 4 menunjukkan dua subgraph, G1 dan
G2 dari graph G .
d e
b
Gambar 3a. Graph Tak Berarah
b
a c c
a c b
d e a c e
G G1 G2
d e Gambar 4. Graph G dan dua subgraphnya G1 dan
Gambar 3b. Graph Berarah
G2
24
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
Sebuah graph G = (V , E ) dikatakan komplit adalah sama disebut sebagai Eulerian cycle
jika untuk setiap verteksnya u , v Î V {u , v} Î E . (Eulerian Sirkuit).
Sebuah komplit graph dengan n verteks Contoh 1
dinotasikan sebagai K n . Setiap graph adalah Tunjukkanlah graph pada Gambar 5 memiliki
spanning subgraph dari sebuah komplit graph. Eulerian path tetapi tidak memiliki Eulerian
sirkuit. Tentukanlah Eulerian pathnya.
C. EULERIAN PATH d e
1
Teorema 2. Sebuah graph terhubung Gambar 6. Graph dengan Eulerian path
(connected) dengan sekurang-kurangnya dua
verteks memiliki Eulerian path jika dan hanya
jika terdapat 0 atau 2 verteks yang berdegree D. HAMILTONIAN CYCLE
ganjil. Sebuah path adalah cycle jika dan hanya
jika setiap verteksnya mempunyai degree genap. Masalah yang sama untuk mencari Eulerian
Sebuah Eulerian path, yang pathnya adalah sirkuit adalah masalah untuk mencari
cycle sehingga verteks awal dan akhirnya Hamiltonian sirkuit (Hamiltonian cycle).
25
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
8 1. Adjacency List
Dalam teori graph, adjacency list
A B
merupakan bentuk representasi dari seluruh sisi
atau busur dalam suatu graph sebagai suatu
7 10 senarai. Simpul-simpul yang dihubungkan sisi
6 atau busur tersebut dinyatakan sebagai simpul
C yang saling terkait. Dalam implementasinya,
D hash table digunakan untuk menghubungkan
sebuah simpul dengan senarai berisi simpul-
8
simpul yang saling terkait tersebut.
27
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
3 4
2 5
verteks pada G .
(3) G terhubung (connected) dan m = n - 1 . e7
(4) G terhubung (connected) dan menghapus
e8
salah satu edge menyebabkan G tidak
terhubung (disconnected).
(5) G acyclic (tidak memiliki cycle) dan Gambar 14. Graph untuk Contoh 3
m = n - 1.
(6) G acyclic (tidak memiliki cycle) dan
Penyelesaian:
penambahan sebuah edge menyebabkan
terbentuknya cycle. Karena memiliki 8 buah edge dan enam verteks,
Teorema di atas dapat digunakan untuk maka kita harus menghilangkan tiga edge.
memperlihatkan bahwa setiap graph yang Selanjutnya, sebarang edge dapat dihapus.
connected (terhubung) berisi sebuah spanning Pertama, hapuslah e3 . Kemudian sebarang edge
tree (tree yang merentang), yang mana sebuah yang lain, tetapi bukan e2 , hapuslah e4 .
spanning tree dari sebuah graph adalah sebuah
tree. Selanjutnya sebarang edge boleh dihapus tetapi
Terdapat dua cara untuk membentuk sebuah bukan e1 dan e2 , hapuslah e7 . Kita sampai di
spanning tree dari sebuah graph. Pertama mulai keadaan dimana jika menghapus salah satu edge
dengan menghilangkan beberapa edge sehingga akan menyebabkan graph menjadi tidak
pada akhirnya akan menghasilkan sebuah terhubung (disconnect), subgraph hasil inilah
subgraph yang tetap terhubung (connected), yang disebut spanning tree, ditunjukkan pada
sehingga jika dihapus salah satu edge akan Gambar 15. Subgraph tersebut mempunyai lima
menyebabkan subgraph menjadi tidak buah edge, sesuai dengan pernyataan di bagian
terhubung. Sesuai dengan bagian (4) dari (3) dari Teorema 3.
Teorema 3, subgraph akhir ini adalah sebuah e1
spanning tree. Perhatikan bahwa, spanning tree
akan memiliki jumlah edge sebanyak n- 1
edge, dengan n adalah jumlah verteks yang e2 e6
dimiliki oleh graph semula. e5
Cara yang kedua, mulai menggambarkan
graph dengan tanpa edge (hanya verteks-
verteksnya saja), dan tambahkan edge satu e8
persatu sehingga setiap verteksnya terhubung,
dan tidak terdapat cycle, sehingga jika
menambahkan salah satu edge akan Gambar 15. Spanning tree untuk graph Contoh 3
menyebabkan terbentuknya cycle. Graph yang
dibentuk disebut dengan tree.
1. Minimal Spanning Tree
Contoh 3 Minimal spanning tree (disebut juga
Gunakan cara pertama di atas untuk mencari dengan MST) adalah mencari sebuah spanning
sebuah spanning tree dari graph pada Gambar tree dengan jumlah bobot (weight) minimal dari
14 berikut. sebuah graph yang terhubung (connected).
29
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
Masalah ini sama seperti pada traveling verteks pada rooted tree mempunyai dua
salesman problem. Algoritma untuk mencari subtree, maka tree yang seperti ini disebut
minimal spanning tree adalah sebagai berikut. dengan binary tree. Rooted tree biasanya
Algoritma untuk Mencari Minimal Spanning digambarkan dengan root di atasnya dan subtree
Tree terbuka ke bawah ke arah daun (leave), yang
begin merupakan verteks terjauh dari root. Leave
e ¬ sebuah edge di E dengan bobot harus berdegree 1.
paling kecil. Contoh 4
T ¬ {e} Terdapat sebuah permainan sederhana sebagai
E ' ¬ E - {e} berikut: Seseorang memikirkan sebuah angka
while E ' ¹ Æ antara 1 sampai 31. Anda harus menebak angka
begin dengan benar. Anda bertanya, ”Apakah
e ' ¬ sebuah edge Î E ' dengan angkanya x?” kemudian orang tersebut
bobot paling kecil. menjawab dengan ”Ya”,”Lebih kecil dari x”,
T ¬ T È {e '} atau ”Lebih besar dari x”. Tunjukkan bahwa
E ' ¬ himpunan edge di E '- T Anda mampu menebak angka tersebut tidak
yang penambahannya ke dalam lebih dari 5 kali tebakan.
T tidak menyebabkan
terbentuknya cycle Penyelesaian:
end Petunjuknya adalah dengan selalu menebak
end. angka yang menjadi titik tengah dari jangkauan
Sebuah rooted tree adalah sebuah tree angka yang tersisa. Kemudian, jika tebakan
dengan himpunan verteks V sehingga sebuah salah akan mengurangi separuh angka, hingga
verteks v Î V ditandai sebagai akar (root) dari akhirnya akan tersisa satu angka. Gambar 16
tree tersebut. Untuk sebarang verteks u pada memperlihatkan bagaimana proses tebakan
tree, terdapat path dari v ke u . Panjang path ini berlangsung, mulai dari 16. setiap verteks
disebut tingkatan (level) verteks u . Verteks adalah titik yang memutuskan nilai benar atau
pada level 1, menunjukkan verteks tersebut salah, jika salah maka nilai tersebut berada di
adjacent ke root, disebut sebagai descendant salah satu subtree dari dua subtree. Subtree pada
(keturunan/anak) dari root. Selanjutnya, sisi kiri berisi nilai yang lebih kecil, dan subtree
descendant dari root dapat dianggap sebagai pada sisi kanan berisi nilai yang lebih besar.
root bagi subtree yang diperoleh dengan Tree yang terbentuk hanya empat level, maka
menghapus root dari tree. diperlukan tidak lebih dari 5 kali tebakan.
Panjang dari path yang terpanjang dari root
disebut tingkatan (level) dari root. Jika setiap
16
8 24
4 12 20 28
2 6 10 14 18 22 26 30
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Adjacency Map
Ke Valu
d e
a d c e
b a
31
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
C C C
5 5
B B B
5 5 5
A A A
10
F F F
D E E E
D D
C C
5 5
B B
5 5
A A
20
10 10
F F
10 10
D E D E
32
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
33
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011
Dian Wirdasari: Teori Graph dan Implementasinya dalam …
34
Jurnal SAINTIKOM
Vol. 10 / No. 1 / Januari 2011