BAB 2 LANDASAN TEORI
2.1 Teori Graph
Graph didefinisikan dengan G = V, E, di mana V adalah himpunan berhingga tidak kosong dari vertex-vertex =
dan E himpunan sisi edges atau arcs yang menghubungkan sepasang vertex
. Vertex dalam graph pada tulisan ini merupakan kota dan edge atau sisi merupakan rute atau jalan yang
menghubungkan antar kota.
a b
c d
Gambar 2.1. Graph dengan Empat Vertex
Keterangan Gambar: G adalah graph dengan:
V = { a, b, c, d } E = { a, b, a, c, a,d, c, a, c, d, b,b, b, d, d, b }
= { e1, e2, e3, e4, e5, e6, e7, e8 }
Secara umum graph dapat dibedakan atas dua jenis: 1. Graph tak-berarah undirected graph adalah graph yang edge-ya tidak
memiliki arah tertentu.
Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008
Gambar 2.2. Graph Tak-Berarah
2. Graph berarah directed graph atau digraph adalah graf yang semua edge-nya memiliki arah tertentu.
Gambar 2.3. Graph Berarah
2.2 Graph Hamilton
Lintasan Hamilton ialah lintasan yang melalui tiap vertex di dalam graph tepat satu kali. Bila lintasan itu kembali ke vertex asal membentuk lintasan tertutup sirkuit,
maka lintasan tertutup itu dinamakan sirkuit Hamilton. Jadi, sirkuit Hamilton ialah sirkuit yang melalui tiap vertex di dalam graph tepat satu kali. Graph yang memiliki
sirkuit Hamilton dinamakan graph Hamilton, sedangkan yang memiliki lintasan Hamilton disebut graph semi-Hamilton.
Teorema 2.1. Setiap graph lengkap adalah graph Hamilton.
b
a
d c
b a
a b
d
c
d
c
a b
c
Gambar 2.4. Penggambaran Graph Hamilton
Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008
Keterangan gambar: a graph yang memiliki lintasan Hamilton misal:c, b, a, d
b graph yang memiliki sirkuit Hamilton a, b, c, d, a c graph yang tidak memiliki lintasan maupun sirkuit Hamilton
2.3 Representasi Graph Pada Komputer
Untuk mengimplementasikan suatu graph dalam bahasa pemrograman komputer, dibutuhkan suatu cara untuk menterjemahkan bentuk graph ke dalam bentuk lain yang
dikenal oleh komputer, sebab komputer tidak dapat mengenal graph dalam bentuk gambar graph biasa. Matriks dapat digunakan untuk menyatakan suatu graph, jika
graph dinyatakan sebagai matriks maka perhitungan-perhitungan yang diperlukan dapat dilakukan dengan mudah. Representasi graph pada komputer dapat dilakukan
dengan beberapa cara, yaitu:
1. Matriks Adjacency Matriks adjacency didefinisikan sebagai berikut, misalkan A matriks berordo nxn
n baris dan n kolom. Jika antara dua vertex terhubung adjacent maka elemen matriks bernilai 1, dan sebaliknya jika tidak terhubung bernilai 0. Contoh dari
matriks adjacency:
A = ⎟⎟
⎟ ⎟
⎟
⎠ ⎞
⎜⎜ ⎜
⎜ ⎜
⎝ ⎛
1 1
1 1
1 1
1 1
1 1
1 1
Jika graph yang diberikan adalah graph berbobot maka elemen matriks yang terhubung antara vertex adalah bobot graph.
2. Matriks Incidency Matriks incidency atau matriks bersisian adalah matriks yang merepresentasikan
hubungan antara vertex dan edge. Misalkan B adalah matriks dengan m baris untuk setiap vertex dan n kolom untuk setiap edge. Jika vertex terhubung dengan
Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008
edge, maka elemen matriks bernilai 1. Sebaliknya, jika vertex tidak terhubung dengan edge maka elemen matriks bernilai 0. Contoh matriks bersisian adalah:
B = ⎟⎟
⎟ ⎟
⎟
⎠ ⎞
⎜⎜ ⎜
⎜ ⎜
⎝ ⎛
1 1
1 1
1 1
1 1
1 1
1 1
1 1
Seperti halnya matriks kedekatan untuk matriks berbobot, untuk matriks bersisian
elemen dari matriks juga merupakan bobot dari setiap edge dari graph.
2.4 Permasalahan Optimasi