1.2 Tujuan Penelitian
Tujuan dari penulisan tugas akhir ini adalah untuk memperoleh suatu aplikasi dengan tujuan untuk mencari lintasan terpendek antakota pada Jalur Lintas Sumatera di
Provinsi Sumatera Utara yang direpresentasikan dengan konsep graf dengan menggunakan Algoritma A.
1.3 Rumusan Masalah
Bagaimana membangun suatu aplikasi untuk menentukan rute terpendek pada jalur lintas sumatera di provinsi sumatera utara dengan menggunakan Algoritma A.
1.4 Batasan Masalah
Batasan masalah pada tugas akhir ini adalah sebagai berikut: 1.
Inputan berupa kota awal dan kota tujuan, tanpa harus melewati suatu kota tertentu.
2. Kota yang menjadi objek adalah kota di Provinsi Sumatera Utara yang terdapat
pada Sketsa Jalan Lintas Sumatera yang dilewati jalan yang diasumsikan sebagai Jalur Lintas Sumatra
3. Output yang dihasilkan dalam tampilan grafis dan disertai dengan keterangan
berupa teks. 4.
Aplikasi untuk implementasi algoritma dibuat menggunakan bahasa pemograman Matlab 7 .
1.5 Metode Penelitian
Langkah-langkah yang akan diambil dalam pengerjaan tugas akhir ini adalah sebagai berikut:
1. Studi Literatur. Pengerjaan tugas akhir ini dimulai dengan mengumpulkan
bahan-bahan sebagai referensi baik dari buku, paper, jurnal, makalah, forum, dan sumber-sumber lain yang berkaitan dan beberapa referensi lainnya untuk
menunjang pencapaian tujuan tugas akhir.
Universitas Sumatera Utara
2. Analisis. Pada tahap ini dilakukan analisis algoritma. Algoritma akan
dianalisis untuk perancangan sistem pencarian rute terpendek pada Jalur Lintas Sumatera di Provinsi Sumatera Utara.
3. Implementasi Algoritma. Algoritma akan diimplementasikan dalam bentuk
aplikasi dengan menggunakan bahasa pemrograman Delphi.
4. Pengujian. Pada tahap ini dilakukan pengujian terhadap sistem informasi
geografis yang telah dibangun serta menguji kebenaran dari algoritma Dijkstra untuk mencari lintasan terpendek.
5. Penyusunan Laporan dan Kesimpulan Akhir. Metode ini akan
dilaksanakan dengan melakukan pendokumentasian hasil analisis dan implementasi secara tertulis dalam bentuk laporan skripsi.
1.6 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB 1: PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi “Analisis Algoritma A dan Implementasinya dalam pencarian jalur terpendek pada Jalur Lintas
Sumatera di Provinsi Sumatera Utara”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2: TINJAUAN PUSTAKA
Bab ini akan membahas teori-teori yang berkaitan dengan sistem, graf, algoritma A, dan Bahasa Pemrograman Delphi.
BAB 3: ANALISIS ALGORITMA
Bab ini berisikan langkah-langkah penelitian yang dilakukan, serta analisis terhadap fokus permasalahan penelitian.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisikan hasil implementasi dari Algoritma A.
Universitas Sumatera Utara
BAB 5: KESIMPULAN DAN SARAN
Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat
bermanfaat dalam pengembangan selanjutnya.
Universitas Sumatera Utara
BAB 2
TINJAUAN PUSTAKA
2.1 Graf 2.1.1 Definisi Graf
Graf adalah pasangan himpunan V, E, dan ditulis dengan notasi G = V, E, V adalah himpunan tidak kosong dari verteks-verteks {v
1
, v
2
,…, v
n
} yang dalam hal ini verteks merupakan himpunan tidak kosong dari verteks-verteks vertices atau node
dan E adalah himpunan edge {e
1
, e
2
,…, e
n
} atau sisi yang menghubungkan sepasang verteks. Munir : 2009 Sebuah graf dimungkinkan tidak mempunyai edge satu buah
pun, tetapi verteksnya harus ada minimal satu. Graf yang hanya memiliki satu buah verteks tanpa sebuah edge pun dinamakan graf trivia.
2.1.2 Jenis-jenis Graf
Graf dapat dikelompokkan berdasarkan ada tidaknya edge nya yang paralel atau loop, jumlah verteksnya, berdasarkan ada tidaknya arah pada edge nya, adatidaknya bobot
pada edge nya, atau ada tidaknya hubungan dengan graf yang lain. Berikut ini adalah jenis graf berdasarkan ada tidaknya edge yang paralel atau loop.
1. Graf Sederhana
Graf sederhana adalah graf yang tidak mempunyai edge ganda dan atau loop, loop adalah edge yang menghubungkan sebuah verteks dengan dirinya
sendiri. Berikut adalah contoh graf sederhana :
Universitas Sumatera Utara
Gambar 2.1 Contoh Graf sederhana
2. Graf Tak-Sederhana
Graf tak-sederhana adalah graf yang memiliki edges ganda dan atau loop. Graf tak sederhana dapat dibagi dua yaitu:
• Graf Ganda multigraph, adalah graf yang mengandung edge ganda.
Sisi ganda yang menghubungkan sepasang verteks bisa lebih dari dua buah.
• Graf semu pseudograph, adalah graf yang mempunyi loop, termasuk
juga graf yang mempunyai loop dan edge ganda karena itu graf semu lebih umum daripada graf ganda, karena graf semu edge-nya dapat
terhubung dengan dirinya sendiri
Gambar 2.2 Contoh Graf Ganda
Gambar 2.3 Contoh Graf Semu
Universitas Sumatera Utara
Selain berdasarkan ada tidaknya edge yang paralel atau loop, graf dapat juga dikelompokkan berdasarkan orientasi arah atau panah.
1. Graf tak-berarah undirected graph
Graf tak berarah adalah graf yang edge nya tidak mempunyai orientasi arah atau panah. Pada graf ini, urutan pasangan verteks yang dihubungkan oleh
edge tidak diperhatikan. Jadi v
j
, v
k
= v
k
, v
j
adalah edge yang sama.
Gambar 2.4 Graf tak berarah
2. Graf Berarah directed graph atau digraph
Graf berarah adalah graf yang setiap edge nya memiliki orientasi arah atau panah. Pada graf berarah v
j
, v
k
≠ v
k
, v
j
.
Gambar 2.5 Contoh Graf berarah
Berdasarkan jumlah verteks pada suatu graf, maka secara umum graf dapat
digolongkan menjadi dua jenis:
1. Graf berhingga limited graph .
Graf berhingga adalah graf yang jumlah verteksnya, n, berhingga. Contoh 2.4 adalah graf berhingga
2. Graf tak-berhingga unlimited graph .
Graf tak-berhingga adalah graf yang jumlah verteksnya, n tidak berhingga.
Universitas Sumatera Utara
Gambar 2.6 Graf tag berhingga
2.1.3 Terminologi Dasar
Dibawah ini adalah beberapa terminologi istilah dasar yang berkaitan dengan graf.
1. Bertetangga Adjacent
Dua buah verteks pada graf tak berarah G dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah edge . Dengan kata lain, v
i
bertetangga dengan v
j
jika v
i
, v
j
adalah sebuah edge pada graf G.
Gambar 2.7 Graf G
1
Pada gambar 2.5. verteks v
1
betetangga dengan verteks v
2
, v
3
dan v
4
. Verteks v
2
bertetangga dengan v
1
dan v
4
, tetapi tidak bertetangga denga v
3.
2. Bersisian incident
Untuk sembarang edge e = v
j
, v
k
, edge e dikatakan bersisian dengan verteks v
j
dan verteks v
k
. Pada gambar 2.5 edge e
1
bersisian dengan verteks v
1
dan verteks v
2
edge e
5
bersisian dengan verteks v
3
dan verteks v
4
, tetapi tidak bersisian dengan v
2
.
Universitas Sumatera Utara
3. Derajat Degree
Derajat suatu verteks pada graf tak berarah adalah jumlah edge yang bersisian dengan verteks tersebut.
Pada graf berarah, derajat verteks v dinyatakan dengan d
in
v dan d
out
v, yang dalam hal ini:
d
in
v = derajat masuk in-degree = jumlah verteks yang masuk ke verteks v
d
out
v = derajat keluar out-degree = jumlah verteks yang keluar dari verteks v
Dan dv = d
in
v + d
out
v. Dalam hal ini dv menyatakan derajat verteks.
4. Lintasan path
Lintasan yang panjangnya n dari edge awal v ke verteks tujuan v
n
di dalam graf G ialah barisan berselang-seling verteks-verteks dan edge -edge yang
berbentuk v , e
1
, v
1
, e
2
, v
2
,…, v
n-1
, e
n
, v
n
sedemikian sehingga e
1
= v , v
1
, e
2
= v
1
, v
2
, … , e
n
= v
n-1
, v
n
adalah edge -edge dari graf G.
Sebuah lintasan dikatakan lintasan sederhana simple path jika semua verteksnya berbeda atau setiap edge yang dilalui hanya satu kali. Lintasan
yang berawal dan berakhir pada verteks yang sama disebut lintasan tertutup closed path sedangkan lintasan yang memiliki verteks awal dan verteks akhir
yang berbeda disebut lintasan terbuka open path. Pada gambar 2.5 lintasan v
1
, v
2
, v
4
, v
3
merupakan lintasan sederhana yang juga lintasan terbuka. Lintasan v
1
, v
2
, v
4
, v
3
, v
1
merupakan lintasan sederhana yang juga lntasan tertutup. Sedangkan lintasan v
2
, v
4
, v
3
, v
1
, v
4
bukan merupakan lintasan sederhana, tetapi lintasan terbuka.
5. Graf Berbobot Weighted Graph
Graf berbobot adalah graf yang setiap sisinya diberikan sebuah harga bobot. Bobot pada setiap sisi dapat menyatakan jarak antara dua buah kota, biaya
perjalanan, waktu tempuh, ongkos produksi, dan sebagainya.
Universitas Sumatera Utara
Dalam tugas akhir ini, bobot pada pada setiap graf menyatakan jarak antara dua buah kota dalam kilometer km.
Gambar 2.8 Contoh Graf Berbobot
6. Sirkuit Circuit atau Cycle
Dalam satu graf terdapat suatu sirkuit apabila terdapat lintasan path yang mempunyai verteks awal dan verteks akhir sama .
Gambar 2.9 Sirkuit v
1
-v
2
-v
3
-v
1
Sebuah sirkuit dikatakan sirkuit sederhana simple circuit jika sirkuit
tersebut tidak memuatmelewati edge yang sama dua kali setiap edge yang
dilalui hanya satu kali. Sebuah sirkuit dikatakan sirkuit dasar elementary
circuit jika sirkuit tersebut tidak memuatmelewati verteks yang sama dua kali setiap verteks yang dilalui hanya satu kali, verteks awal dan akhir boleh
sama.
2.1.4 Beberapa Graf Khusus
Terdapat beberapa jenis graf sederhana khusus. Berikut ini adalah beberapa graf khusus yang sering ditemui:
1. Graf Lengkap Complete Graph
Graf lengkap merupakan graf sederhana yang setiap verteksnya mempunyai edge ke semua verteks lainnya. Graf lengkap dengan n buah verteks
Universitas Sumatera Utara
dilambangkan dengan K
n
. Setiap verteks pada K
n
berderajat n-1. Jumlah edge pada graf lengkap yang terdiri dari n buah verteks adalah
n n - 12.
Gambar 2.10 Contoh Graf Lengkap
2. Graf Lingkaran
Graf Lingkaran adalah graf sederhana yang setiap verteksnya berderajat dua. Graf lingkaran dengan n verteks dilambangkan dengan C
n
.
Gambar 2.11 Contoh Graf Lingkaran
3. Graf Teratur Regular Graphs
Graf teratur adalah graf yang setiap verteksnya mempunyai derajat yang sama. Apabila derajat setiap simpunya adalah r, maka graf tersebut disebut juga graf
teratur derajat r. Graf lengkap K
n
dan graf lingkaran juga merupakan graf teratur. Graf K
n
berderajat n-1 sedangkan graf lingkaran berderajat 2. Jumlah sisi pada graf teratur berderajat r dengan n buah verteks adalah nr2.
iGraf berderajat 4 ii Graf berderajat 2
Gambar 2.12 Graf teratur derajat 4 dan 2
Universitas Sumatera Utara
4. Graf Bipartit Bipartite Graph
Suatu graf sederhana G dikatakan Bipartit jika himpunan verteks-verteksnya V dapat dipecah menjadi dua himpunan bagian yang saling asing, X
1
dan X
2
sedemikian hinga setiap edge dalam grap G terhubung dengan sebuah verteks dalam V1 dan sebuah verteks lainnya dalam V2. Dengan demikian tidak ada
edge dalam G yang terhubung dengan 2 verteks dalam V1 atau dua verteks dalam V2.
Gambar 2.13 Contoh Graf Bipartit
5. Graf Isomorfik Isomorphic Graph
Dua bua graf, G
1
dan G
2
dikatakan isomorfik jika terdapat korespondensi satu- satu antara verteks-verteks keduanya dan antara sisi-sisi keduanya sedemikian
sehingga jika sisi e bersisian dengan verteks u dan v di G
1
, maka sisi e’ yang berkorespon di G
2
juga harus bersisian dengan verteks u’ dan v’ di G
2
.
i Graf G
1
ii Graf G
2
Gambar 2.14 Contoh Graf yang Isomorfik
Syarat-syarat dua buah graf dikatakan graf isomorfik : a.
Mempunyai jumlah verteks yang sama. b.
Mempunyai jumlah edge yang sama c.
Mempunyai jumlah verteks yang sama berderajat tertentu.
Universitas Sumatera Utara
6. Graf Planar
Graf planar adalah suatu graf yang digambar dalam bidang datar denga edge - edge nya tidak ada yang saling memotong.
a b
Gambar 2.15 Contoh Graf Planar K
4
Pada contoh graf G K
4
diatas, K
4
dapat digambar kembali tanpa ada edge - edge nya yang berpotongan, maka graf K
4
adalah suatu Graf Planar.
2.1.5 Representasi Graf
Pada penjelasan sebelumnya, graf ditampilkan dengan cara menggambarkannya. Namun apabila graf hendak diproses dengan program komputer, maka graf harus
direpresentasikan di dalam memori. Ada beberapa metode yang dapat digunakan dalam merepresentasikan graf, berikut ini adalah metode yang dapat dgunakan dalam
merepresentasikan graf : 1.
Matriks Ketetanggaan Adjacency Matrix Misalkan G = V, E merupakan suatu graf dengan n verteks, n 1. Maka,
matriks ketetanggaan A dari G adalah matriks n x n dimana A = [a
ij
], untuk hal ini berlaku [a
ij
] menjadi 1 bila verteks i dan j bertetangga dan [a
ij
] menjadi 0 bila verteks i dan j tidak bertetangga.
Jumlah elemen matriks bertetanggaan untuk graf dengan n verteks adalah n
2
. Jika tiap elemen membutuhkan ruang memori sebesar p, maka ruang memori yang diperlukan seluruhnya adalah pn
2
.
Universitas Sumatera Utara
Keuntungan representasi dengan matriks ketetanggaan adalah kita dapat mengakses elemen matriksnya langsung dari indeks. Selain itu, kita juga
dapat menentukan dengan langsung apakah verteks i dan verteks j bertetangga.
Pada graf berbobot, a
ij
menyatakan bobot tiap sisi yang menghubungkan verteks i dengan verteks j. Bila tidak ada sisi dari verteks i ke
verteks j atau dari verteks j ke verteks i, maka, a
ij
diberi nilai tak berhingga ∞.
Gambar 2.16 Graf G
Bentuk matriks ketetanggaan dari graf pada gambar 2.13 adalah v
1
v
2
v
3
v
4
v
5
v
1
1 1
v
2
1 1
1 v
3
1 1
1 v
4
1 v
5
1 1
1 1
2. Matriks Insiden incidency matriks
Matriks insiden menyatakan kebersisian verteks dengan edge . Misalkan G = V, E adalah graf dengan n verteks dan m edge , maka matriks
kebersisian A dari G adalah matriks berukuran m x n dimana A = [a
ij
], [a
ij
] menjadi 1 bila verteks i dan edge j bersisian dan [aij] menjadi 0 bila verteks i
dan edge j tidak bersisian.
Universitas Sumatera Utara
Gambar 2.17 Graf A
Berikut adalah matriks insiden untuk graf pada gambar 2.14. e
1
e
2
e
3
e
4
e
5
e
6
e
7
v
1
1 1
v
2
1 1
1 v
3
1 1
1 v
4
1 v
5
1 1
1 1
Pada matriks diatas, sebuah kolom e
7
dapat diwakilkan sebagai loop. Pada sebuah graf tanpa loop, masing-masing kolom mempunyai dua entri 1, dan jumlah
dari sebuah baris menyatakan derajat dari verteks yang didefinisikan dengan baris tersebut.
2.2 Lintasan Terpendek Shortest Path