• Tidak ada hasil yang ditemukan

Analisis Algoritma A* Dan Implementasinya Dalam Pencarian Rute Terpendek Pada Jalur Lintas Sumatera Di Provinsi Sumatera Utara

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisis Algoritma A* Dan Implementasinya Dalam Pencarian Rute Terpendek Pada Jalur Lintas Sumatera Di Provinsi Sumatera Utara"

Copied!
61
0
0

Teks penuh

(1)

ANALISIS ALGORITMA A STAR (A*) DAN IMPLEMENTASINYA

DALAM PENCARIAN JALUR TERPENDEK PADA JALUR

LINTAS SUMATERA DI PROVINSI SUMATERA UTARA

SKRIPSI

DEWI YUSRA AINI

061401053

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

ANALISIS ALGORITMA A STAR (A*) DAN IMPLEMENTASINYA DALAM PENCARIAN JALUR TERPENDEK PADA JALUR LINTAS SUMATERA

DI PROVINSI SUMATERA UTARA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

DEWI YUSRA AINI 061401053

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : ANALISIS ALGORITMA A* DAN IMPLEMENTASINYA DALAM PENCARIAN RUTE TERPENDEK PADA JALUR LINTAS

SUMATERA DI PROVINSI SUMATERA UTARA

Kategori : SKRIPSI

Nama : DEWI YUSRA AINI

Nomor Induk Mahasiswa : 061401053

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA

Dian Rachmawati, S.Si, M.Kom Maya Silvi Lydia, B.Sc, M.Sc NIP.198307232009122004 NIP. 197401272002122001 Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer FMIPA USU Ketua,

(4)

PERNYATAAN

ANALISIS ALGORITMA A* DAN IMPLEMENTASINYA DALAM PENCARIAN RUTE TERPENDEK PADA JALUR LINTAS SUMATERA

DI PROVINSI SUMATERA UTARA

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 19 Desember 2010

(5)

PENGHARGAAN

Assalamu’alaikum Wr.Wb

Rasa syukur yang tidak terhingga penulis ucapkan kepada Allah SWT, Pencipta alam semesta yang memberikan rahmad dan karunia-Nya kepada Penulis sehingga akhirnya atas izin Allah SWT Penulis dapat menyelesaikan tugas akhir ini dengan baik. Shalawat dan salam kepada Nabi Muhammad SAW yang telah membawa pencerahan bagi umat manusia dalam menjalani hidup dan kehidupan.

Dalam menyelesaikan tugas akhir ini penulis telah banyak menerima bimbingan, arahan, masukan, serta dorongan semangat dari berbagai pihak. Untuk itu penulis mengucapkan terima kasih yang tak terhingga kepada :

1. Buat ayah dan ibu penulis tercinta yang terus memberikan curahan kasih sayangnya, terus memotivasi penulis dalam menyelasaikan tugas akhir ini, cinta kalian akan terus terpatri dalam jiwa penulis, Terima kasih Ayah dan Ibu penulis.

2. Ibu Maya Silvi Lydia, B.Sc, M.Sc dan Ibu Dian Rachmawati,S.Si,M.Kom sebagai Dosen Pembimbing penulis yang telah banyak memberikan masukan, bimbingan, motivasi dan perhatian kepada penulis sehingga skripsi ini dapat selesai dengan baik.

3. Bapak Prof. Dr. Iryanto,M.Si dan Bapak Drs. H. Agus Salim Harahap,M.Si sebagai Dosen Penguji yang juga telah banyak memberi masukan, kritik maupun saran dalam penulisan skripsi ini

4. Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus S.Si, M.IT selaku ketua dan sekretaris Departemen Ilmu Komputer S-1 Universitas Sumatera Utara.

5. Seluruh Dosen dan Asisten lab di lingkungan S1 Ilmu Komputer USU yang telah banyak memberikan ilmu kepada penulis mulai dari penulis menginjakkan kaki di kampus tercinta ini sampai pada penulis menyelesaikan kuliah.

6. Seluruh staf pegawai yang telah banyak membantu selama perkuliahan.

7. Buat teman-teman tersayang, Tuil (Rifnatul), Moly (Asmaina), Jannah, ipeh (iva/shareefah/iva kitty/sarifah/sarivah), pipit (pipyd atau fitri), koko Hadi, makasih atas tawaran dan dorongannya, walau g’ jadi, dan teman-teman lainnya Winda, Riri, Icha, Ara, Alvin, komting kom A (Rifki) dan kom B (Reza) dan teman-teman yang lainnya .

8. Buat anak-anak ’06 semuanya, semoga kebersamaan kita selama 4 tahun menjadi hari-hari yang tak terlupakan.

9. Buat seluruh mahasiswa ilkom, anak-anak musholla Al-Khwarizmi, terima kasih semuanya.

(6)

menjaga nama baik dan mencintai almamater FMIPA USU, Maju terus Ilmu Komputer USU dalam mendidik mahasiswa yang berprestasi dan berbudi pekerti. Wassalmu’alaikum warahmatullahi wabarakatuh

Medan, Desember 2010 Penulis,

(7)

ABSTRAK

(8)

ANALYSIS A STAR (A*) ALGORITHM AND ITS IMPLEMENTATION IN SHORTEST PATH SEARCHING IN TRANS-SUMATERAN

HIGHWAY IN PROVINCE OF NORTH SUMATERA

ABSTRACT

(9)

Daftar Isi

BAB 3 ANALISIS ALGORITMA 3.1 Analisa Algoritma A* 24

(10)

3.3 Perancangan Antarmuka 34

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

4.5.1 Pengujian Pencarian Rute atau Lintasan Terpendek dari Aplikasi yang Telah Dibuat 40

(11)

DAFTAR TABEL

(12)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh Graf Sederhana 6

Gambar 2.2 Contoh Graf Ganda 6

Gambar 2.3 Contoh Graf Semu 6

Gambar 2.4 Graf Tak Berarah 7

Gambar 2.5 Contoh Graf Berarah 7

Gambar 2.6 Graf Tak Berhingga 8

Gambar 2.7 Graf G1 8

Gambar 2.8 Contoh Graf Berbobot 10

Gambar 2.9 Sirkuit v1-v2-v3-v1 10

Gambar 2.10 Contoh Graf Lengkap 11

Gambar 2.11 Contoh Graf Lingkaran 11

Gambar 2.12 Graf teratur derajat 4 dan 2 11

Gambar 2.13 Contoh Graf Bipartit 12

Gambar 2.14 Contoh Graf yang Isomorfik 12

Gambar 2.15 Contoh Graf Planar K4 13

Gambar 2.16 Graf G 14

Gambar 2.17 Graf A 15

Gambar 2.18 Tree untuk Breadth First Search 17

Gambar 2.19 Tree untuk Depth First Search 18

Gambar 2.20 Tampilan awal Matlab 23

Gambar 2.21 Tampilan Gui Matlab 23

Gambar 3.1 Graf 1 26

Gambar 3.8 Flowchart pencarian lintasan terpendek dengan algoritma A* 33

Gambar 3.9 Gambaran sistem antarmuka 34

Gambar 4.1 Tampilan Awal Aplikasi 37

Gambar 4.2 Tampilan Pemilihan Verteks 38

Gambar 4.3 Tampilan Pencarian Lintasan 38

Gambar 4.4 Tampilan Lintasan Terpendek 39

Gambar 4.5 Pesan Peringatan 40

Gambar 4.6 Penginputan/pemilihan verteks awal dan verteks akhir 40

Gambar 4.7 Hasil Proses Pencarian 41

Gambar 4.8 Pemilihan Kota Medan dan Lima Puluh 42

(13)

ABSTRAK

(14)

ANALYSIS A STAR (A*) ALGORITHM AND ITS IMPLEMENTATION IN SHORTEST PATH SEARCHING IN TRANS-SUMATERAN

HIGHWAY IN PROVINCE OF NORTH SUMATERA

ABSTRACT

(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Dalam kehidupan sehari-hari sangat lazim bila kita berpergian dari satu tempat ke tempat tujuan dengan melewati jalan yang kita anggap merupakan jalan terpendek untuk sampai di tujuan. Yang menjadi masalah adalah banyak dari kita yang tidak menyadari bahwa jalan yang kita anggap merupakan lintasan yang paling pendek untuk mencapai titik tujuan, bukanlah lintasan yang terpendek yang merupakan lintasan minimum yang diperlukan untuk mencapai suatu titik dari titik tertentu.

Untuk menyelesaikan masalah diatas maka diperlukan suatu sistem yang dapat membantu dalam mencari dan menentukan lintasan terpendek sehingga didapat suatu jalur yang paling minimum untuk mencapai suatu kota. Dalam tugas akhir ini akan dibuat sebuah perangkat lunak yang dapat menyelesaikan permasalahan diatas yaitu suatu perangkat lunak yang dapat memberikan rute jarak paling mimimum pada sebuah peta dengan menggunakan metode Algoritma A*. Pencarian ini akan direpresentasikan dalam bentuk graf berbobot dimana setiap vertex digambarkan dengan koordinat dua dimensi serta bobot edge nya adalah jarak antara vertek yang bersesuaian.

(16)

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:

(17)

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

(18)

BAB 5: KESIMPULAN DAN SARAN

(19)

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, v2,…, vn} yang dalam hal ini verteks merupakan himpunan tidak kosong dari verteks-verteks (vertices atau node) dan E adalah himpunan edge {e

1, e2,…, en} 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

(20)

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

(21)

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 (vj, vk) = (vk, vj) 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 (vj, vk) ≠ (vk, vj).

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

(22)

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, vi bertetangga dengan vj jika (vi, vj) adalah sebuah edge pada graf G.

Gambar 2.7 Graf G1

Pada gambar 2.5. verteks v1 betetangga dengan verteks v2, v3 dan v4. Verteks v2 bertetangga dengan v1 dan v4, tetapi tidak bertetangga denga v3.

2. Bersisian (incident)

Untuk sembarang edge e = ( vj, vk), edge e dikatakan bersisian dengan verteks vj dan verteks vk.

(23)

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 din(v) dan dout(v), yang dalam hal ini:

din(v) = derajat masuk (in-degree)

= jumlah verteks yang masuk ke verteks v dout(v) = derajat keluar (out-degree)

= jumlah verteks yang keluar dari verteks v Dan

d(v) = din(v) + dout(v).

Dalam hal ini d(v) menyatakan derajat verteks.

4. Lintasan (path)

Lintasan yang panjangnya n dari edge awal v0 ke verteks tujuan vn di dalam graf G ialah barisan berselang-seling verteks-verteks dan edge -edge yang berbentuk v0 , e1 , v1 , e2 , v2 ,…, vn-1 , en , vn sedemikian sehingga

e1 = ( v0 , v1 ) , e2 = ( v1 , v2 ) , … , en = ( vn-1 , vn ) 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 v1, v2 , v4, v3 merupakan lintasan sederhana yang juga lintasan terbuka. Lintasan v1, v2, v4, v3, v1 merupakan lintasan sederhana yang juga lntasan tertutup. Sedangkan lintasan v2, v4, v3, v1, v4 bukan merupakan lintasan sederhana, tetapi lintasan terbuka.

5. Graf Berbobot (Weighted Graph)

(24)

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 v1-v2-v3-v1

Sebuah sirkuit dikatakan sirkuit sederhana (simple circuit) jika sirkuit tersebut tidak memuat/melewati edge yang sama dua kali (setiap edge yang dilalui hanya satu kali). Sebuah sirkuit dikatakan sirkuit dasar (elementary

circuit) jika sirkuit tersebut tidak memuat/melewati 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

(25)

dilambangkan dengan K

n. Setiap verteks pada Kn berderajat n-1. Jumlah edge pada graf lengkap yang terdiri dari n buah verteks adalah

n (n - 1)/2.

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 Kn dan graf lingkaran juga merupakan graf teratur. Graf Kn berderajat (n-1) sedangkan graf lingkaran berderajat 2. Jumlah sisi pada graf teratur berderajat r dengan n buah verteks adalah nr/2.

(i)Graf berderajat 4 (ii) Graf berderajat 2

(26)

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, X1 dan X2 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 G2 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 G2 .

(i) Graf G1 (ii) Graf G2

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

(27)

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 K4

Pada contoh graf G (K4) diatas, K4 dapat digambar kembali tanpa ada edge

-edge nya yang berpotongan, maka graf K4 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 = [aij], untuk hal ini berlaku [aij] menjadi 1 bila verteks i dan j bertetangga dan [aij] menjadi 0 bila verteks i dan j tidak bertetangga.

(28)

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, aij 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, aij diberi nilai tak berhingga (∞).

Gambar 2.16 Graf G

Bentuk matriks ketetanggaan dari graf pada gambar 2.13 adalah v1 v2 v3 v4 v5

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

(29)

Gambar 2.17 Graf A

Berikut adalah matriks insiden untuk graf pada gambar 2.14. e1 e2 e3 e4 e5 e6 e7

Pada matriks diatas, sebuah kolom e7 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)

Dalam Jurnal Pawitri (2007) disebutkan bahwa Lintasan Terpendek (Shortest Path) merupakan lintasan minimum yang diperlukan untuk mencapai suatu titik dari titik tertentu. Dalam pencarian lintasan terpendek masalah yang dihadapi adalah mancari lintasan mana yang akan dilalui sehingga didapat lintasan yang paling pendek dari satu verteks ke verteks yang lain.

Ada beberapa macam persoalan lintasan terpendek, antara lain : 1. Lintasan terpendek antara dua buah verteks.

2. Lintasan terpendek antara semua pasangan verteks.

(30)

4. Lintasan terpendek antara dua buah verteks yang melalui beberapa verteks tertentu.

Pada tugas akhir ini persoalan lintasan terpendek yang menjadi masalah adalah lintasan terpendek antara dua buah verteks dimana bobot pada setiap edge graf

digunakan untuk menyatakan jarak antar kota dalam satuan Kilometer (Km).

2.3Metode Pencarian

Ada banyak metode yang dapat digunakan untuk pencarian jalur terpendek pada suatu graf. Metode pencarian tersebut dapat dikelompokkan ke dalam dua jenis, yaitu pencarian buta/tanpa informasi (blind atau un-informed search) dan pencarian heuristik/dengan informasi (heuristic atau informed search).

2.3.1 Pencarian Buta (Blind Search/Un-informed Search)

Dikatakan pencarian buta, karena pada pencarian ini tidak ada informasi awal. Disini hanya akan dibahas dua metode pencarian, yaitu Breadth First Search dan Depth First

Search.

2.3.1.1Breadth First Search (BFS)

(31)

Gambar 2.18 Tree untuk Breadth First Search

2.3.1.2 Depth First Search (DFS)

Pencarian dilakukan pada satu verteks dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada verteks sebelah kanan. Verteks yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan).

(32)

Gambar 2.19 Tree untuk Depth First Search

2.3.2 Pencarian Heuristik

Pada metode pencarian buta, tidak dimiliki pengetahuan khusus tentang permasalah yang dihadapi sehingga metode tersebut tidak efisien untuk banyak kasus karena bias saja metode tersebut tidak complete dan atau tidak optimal dalam mendapatkan solusi, optimal disini adalah tidak menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi yang berbeda. Menggunakan informasi khusus yang spesifik untuk suatu masalah tertentu akan sangat memperbaiki kecepatan pencarian solusi, karena teknik ini membantu memutuskan kemungkinan solusi mana yang pertama kali perlu di evaluasi. Pencarian heuristik digunakan untuk mengeliminasi beberapa kemungkinan solusi, tanpa harus mengeksplorasinya secara penuh.

Berikut akan dijelaskan beberapa algoritma pencarian dengan informasi

(informed search algorithm) yang menggunakan fungsi heuristik dalam mencari

solusi, yaitu Generate and test, hill climbing, dan Best First Search (greedy best first

(33)

2.3.2.1Generate and Test (bangkitkan dan Uji)

Metode Generate-and-Test adalah metode yang paling sederhana dalam pencarian

heuristic. Jika pembangkitan possible solution dikerjakan secara sistematis, maka

algoritma ini akan mencari solusinya, jika ada. Tetapi jika ruang masalahnya sangat luas, mungkin memerlukan waktu yang sangat lama. Algoritma Generate-and-Test menggunakan prosedur DFS karena solusi harus dibangkitkan secara lengkap sebelum dilakukan test. Algoritma ini berbentuk sistematis, pencarian sederhana yang mendalam dari ruang permasalahan. Generate & test juga dapat dilakukan dengan pembangkitan solusi secara acak, tetapi tidak ada jaminan solusinya akan ditemukan.

2.3.2.2Hill Climbing (Pendakian Bukit)

Hill Climbing berbeda Generate-and-Test, yaitu pada feedback dari prosedur test

untuk membantu pembangkit menentukan yang langsung dipindahkan dalam ruang pencarian. Dalam prosedur Generate & test , respon fungsi pengujian hanya ya atau

tidak. Tapi jika pengujian ditambahkan dengan atauran fungsi-fungsi yang

menyediakan estimasi dari bagaimana mendekati state yang diberikan ke state tujuan, prosedur pembangkit dapat mengeksplorasi ini sebagaimana ditunjukkan di bawah.

Hill Climbing sering digunakan jika terdapat fungsi heuristik yang baik untuk

mengevaluasi state. Sebagai contoh, anda berada di sebuah kota yang tidak dikenal, tanpa peta dan anda ingin menuju ke pusat kota. Cara sederhana adalah gedung yang tinggi. Fungsi heuristik-nya adalah jarak antara lokasi sekarang dengan gedung yang tinggi dan state yang diperlukan adalah jarak yang terpendek.

2.3.2.3 Best First Search (BFS)

Best first search merupakan kombinasi dari beberapa kelebihan Depth first search dan breadth first search. Pada pencarian dengan hill climbing tidak diperbolehkan untuk

kembali ke verteks pada level yang lebih rendah meskipun verteks pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, sedangkan pada best

first search, pencarian diperbolehkan untuk mengunjungi verteks yang berada pada

(34)

Best First Search membangkitkan verteks berikutnya dari sebuah verteks

(yang sejauh ini terbaik diantara semua leafnodes yang pernah dibangkitkan. Untuk menentuan verteks terbaik dapat dilakukan dengan menggunakan informasi berupa biaya perkiraan dari suatu verteks menuju ke goal atau gabungan antara biaya sebenarnya dan biaya perkiraan tersebut. Biaya perkiraan tersebut dapat diperoleh dengan menggunakan suatu fungsi yang disebut fungsi heuristik.

Terdapat dua jenis algoritma best first search, yaitu: 1) algoritma greedy best

first search,yang hanya memperhitungkan biaya perkiraan saja; dan 2) algoritma A*,

yang menghitung gabungan biaya antara biaya sebenarnya (actual cost) dan biaya perkiraan.

2.3.2.3.1 Greedy Best First Seach

Merupakan Best First Search dengan hanya mempertimbangkan harga perkiraan

(estimated cost) saja, yaitu f(n) = h(n). Sedangkan harga sesungguhnya tidak digunakan. Sehingga solusi yang dihasilkan tidak optimal, karena hanya memperhitungkan biaya perkiraan yang belum tentu kebenarannya.

2.3.2.3.2 Algoritma A*

Algoritma A* (A Star) adalah algoritma pencarian yang merupakan pengembangan dari algoritma Best First Search (BFS). Seperti halnya pada BFS, untuk menemukan solusi, A* juga ‘dituntun’ oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap verteks yang memandu A* mendapatkan solusi yang diinginkan.

(35)

Dengan fungsi heuristik Algoritma ini membangkitkan verteks yang paling mendekati solusi. Verteks ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, verteks pertama pada

list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List verteks ini disebut dengan

verteks terbuka (open node).

Verteks pada list bisa berasal dari kedalaman berapapun dari graf. Algoritma ini akan mengunjungi secara mendalam (mirip Depth First Search (DFS)) selama verteks tersebut merupakan verteks yang terbaik. Jika verteks yang sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah verteks awal untuk mencari verteks lainnya yang lebih menjanjikan dari pada verteks yang terakhir dikunjungi. Bila tidak ditemuka n juga, maka akan terus mengulang mencari ke arah verteks awal sampai ditemukan verteks yang lebih baik untuk dibangkitkan suksesornya. Strategi ini berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum pencarian secara melebar selesai. A* baru berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.

2.4Fungsi Heuristik

Dalam metode pencarian heuristik, digunakan suatu fungsi heuristik yang digunakan untuk mengevaluasi keadaan-keadaan masalah individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan. Suatu fungsi dapat diterima sebagai fungsi heuristik jika biaya perkiraan yang dihasilkan tidak melebihi dari biaya sebenarnya. Suatu fungsi heuristik dapat dikatakan sebagai fungsi heuristik yang baik, apabila dapat memberikan biaya perkiraan yang mendekati biaya sebenarnya. Semakin mendekati biaya sebenarnya, fungsi heuristik tersebut semakin baik.

(36)

jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik, yang bisa dihitung menggunakan rumus :

Rumus diatas adalah rumus untuk mencari garis lurus antara dua verteks, yaitu verteks a dan verteks b.

2.5MATLAB (Matrix Laboratory)

MATLAB merupakan sebuah bahasa pemrograman tingkat tinggi yang ditujukan untuk komputasi teknis. MATLAB mengintegrasikan kemampuan komputasi, visualisasi dan pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan. Matlab membertikan sistem interaktif yang menggunakan konsep array/matrik sebagai standar variabel elemennya tanpa membutuhkan pendeklarasian array seperti pada bahasa lainnya.

Dengan MATLAB kita dapat menemukan solusi dari berbagai masalah numerik secara cepat, misalnya sistem 2 persamaan dengan 2 variabel :

2x-3y=24 x+5y=15

(37)

Gambar 2.20 Tampilan awal Matlab

(38)

BAB 3

ANALISIS ALGORITMA

3.1 Analisis Algoritma A*

Algoritma A* digunakan dalam menemukan lintasan terpendek pada suatu graf dan merupakan pengembangan dari algoritma best first search. Sama seperti BFS, algoritma A* juga menggunakan fungsi heuristik. Biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matematika dituliskan sebagai berikut :

f(n) = g(n) + h(n)

Keterangan :

g(n) adalah total jarak yang didapat dari verteks awal ke verteks

sekarang(halangan)

h(n) adalah perkiraan jarak dari verteks sekarang (yang sedang dikunjungi) ke

verteks tujuan. Sebuah fungsi heuristik digunakan untuk membuat perkiraan seberapa jauh lintasan yang akan diambil ke verteks tujuan.

f(n) adalah jumlah dari g(n) dan h(n). ini adalah perkiraan jalur terpendek

sementara. f(n) adalah jalur terpendek yang sebenarnya yang tidak ditelusuri sampai Algoritma A* diselesaikan.

Untuk memperjelas pemahaman fungsi diatas, dapa kita lihat pada contoh berikut :

(39)

Dari ilustrasi diatas, jarak 100 km yang telah ditempuh oleh keluarga tersebut direpresentasikan dengan g(n), Perkiraan pengemudi, yaitu 130 km adalah h(n) Jadi

f(n) pasti 100 + 130 = 230 km.

Dengan perhitungan biaya seperti ini, algoritma A* adalah complete dan

optimal (Suyanto:2007). Hal ini berbeda dengan Greedy best-first search yang hanya

memperhitungkan biaya perkiraan saja, yaitu f(n) = h(n), biaya sebenarnya (actual

cost) tidah diperhitungkan. Dengan hanya menggunakan biaya perkiraan yang belum

tentu kebenaranya, maka algoritma ini tidak optimal.

Sama halnya seperti algoritma best first search, algoritma A* juga menggunakan dua antrian, yaitu OPEN dan CLOSED. Terdapat tiga kondisi bagi setiap suksesor yang dibangkitkan, yaitu : sudah berada di OPEN, sudah berada di CLOSED, dan tidak berada di OPEN maupun CLOSED. Pada ketiga kondisi tersebut diberikan penanganan yang berbeda-beda.

Verteks yang berada di OPEN merupakan verteks yang pernah dibangkitkan, dan nilai heuristiknya telah dihitung, tapi belum terpilih sebagai verteks terbaik (bestnode). Verteks yang berada di open memiliki peluang untuk terpilih sebagai verteks terbaik (peluang masih terbuka). Sebuah verteks akan disimpan di CLOSED jika verteks tersebut pernah terpilih sebagai bestnode. Dengan kata lain CLOSED berisi verteks yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup).

(40)

Jika suksesor sudah pernah berada di CLOSED, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka pebaruan nilai g dan f pada suksesor tersebut serta pada semua “anak cucunya” yang sudah pernah berada di OPEN. Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai verteks terbaik (bestnode).

Jika suksesor tidak berada di OPEN maupun CLOSED, maka suksesor tersebut dimasukkan ke dalam OPEN. Tambahkan suksesor tersebut sebagai suksesornya bestnode. Hitung biaya suksesor tersebut dengan rumus f(n)=g(n)+h(n).

Untuk memperjelas pemahaman tentang algoritma A* , maka akan diberikan contoh masalah pada gambar dibawah ini.

Gambar 3.1 Graf 1

(41)

Dengan menggunakan fungsi heuristik jarak Euclidian (jarak garis lurus dari verteks n menuju verteks G), maka didapat h(n) masing-m asing verteks sebagai berikut :

Tabel 3.1 Jarak Euclidian masing-masing verteks pada Graf 1

S A B C D E F G H I J K L M 120 100 95 100 100 110 87 0 50 50 80 30 30 45

Berikut adalah langkah-langkah unutk menyelesaikan permasalan lintasan terpendek dari verteks S ke verteks G dengan menggunakan Algoritma A*:

Gambar 3.2 Graf 1

Fungsi evaluasi:

f(A) = g(S) + g(S ke A) + h(A) = 0 + 22 + 105 = 127 f(B) = g(S) + g(S ke B) + h(B) = 0 + 38 + 95 = 133 f(C) = g(S) + g(S ke C) + h(C) = 0 + 35 + 100 = 135 f(D) = g(S) + g(S ke D) + h(D) = 0 + 40 + 100 =140 f(E) = g(S) + g(S ke E) + h(E) = 0 + 15 + 110 = 125

(42)

Gambar 3.3 Graf 1

Fungsi evaluasi

f(A) = 127 f(B) = 133 f(C) = 135

f(D) = g(E) + g(E ke D) + h(D) = 15 + 15 + 100 =130 f(E) = g(E) + g(E ke J) + h(J) = 15 + 40 + 80 = 135

(43)

Gambar 3.4 Graf 1

Fungsi evaluasi

f(G) = g(A) + g(A ke G) + h(G) = 22 + 130 + 0 = 152 f(B) = g(A) + g(A ke B) + h(B) = 22 + 10 + 95 = 127

f(C) = 135 f(D) = 130 f(E) = 125

(44)

Gambar 3.5 Graf 1

Fungsi Evaluasi :

f(G) = 152

f(F) = g(B) + g(B ke F) + h(F) = 32 + 10 + 87 = 129 f(K) = g(B) + g(B ke K) + h(K) = 32 + 80 + 30 = 142 f(C) = 135

f(D) = 130 f(E) = 135

Karena f(B) memiliki biaya terkecil, yaitu 127, maka B terpilih sebagai

bestnode, dan dipindahkan ke CLOSED. Lalu semua suksesor B dibangkitkan, yaitu F

dan K. Karena F dan K belum pernah berada di OPEN maupun di CLOSED, maka F dan K dimasukkan ke OPEN. Akhir dari langkah ini menghasilkan OPEN=[C,D,F,J,G,K] dan CLOSED=[S,E,A,B].

(45)

Fungsi Evaluasi :

Langkah selanjutnya, F dengan biaya terkecil, yaitu 129, terpilih sebagai

bestnode dan dipindahkan ke CLOSED. Selanjutnya, semua suksesor F dibangkitkan,

yaitu K. karena K sudah ada di OPEN, maka harus di cek apakah parent dari K perlu diganti atau tidak. Biaya dari S ke K melalui F ternyata lebih kecil daripada biaya dari S ke K dengan B sebagai parent-nya. Oleh karena itu, parent dari k harus diubah, yang semula B menjadi F. selanjutnya nilai g(K) yang semula 92 berubah menjadi 65, dan nilai f(K) yang semula 142 berubah menjadi 122. Akhirnya OPEN=[C,D, J,G,K] dan CLOSED=[S,E,A,B, F].

Berikutnya, K dengan biaya terkecil, yaitu 122 terpilih sebagai bestnode dan dipindahkan ke CLOSED. Selanjutnya, semua suksesor K dibangkitkan, yaitu verteks G. karena G sebelumnya telah berada di OPEN, maka terlebih dahulu harus diperiksa apakah parent dari G harus diganti atau tidak. Biaya dari S ke G melalui K ternyata lebih kecil daripadda biaya dari S ke G melalui parent lama (A). oleh karena itu,

parent dari G harus diubah yang semula A menjadi K. lalu nilai g(G) yang semula 152

diubah menjadi 122, dan nilai f(G) yang semula 152 menjadi 122. Dari langkah diatas didapat OPEN=[C,D,G,J] dan CLOSED=[S,E,B,A,F,K].

(46)

Fungsi Evaluasi :

f(G) = g(K) + g(K ke G) + h(G) = 102 + 30 + 0 = 122 f(C) = 135

f(D) = 130 f(E) = 135

G dengan biaya terkecil, yaitu 122 terpilih sebagai bestnode. Karena bestnode-nya sama dengan goal, berarti solusi telah ditemukan. Rute dan total biaya bias ditelusuri balik dari G menuju S, karena setiap verteks hanya memiliki satu parent dan setiap verteks memiliki informasi biaya yang sebenarnya (g). Penelusuran balik menghasilkan rute S-A-B-F-K-G dengan total jarak sama dengan 122, dan rute ini merupakan rute terpendek dari verteks S ke verteks G.

Pada kasus diatas A* membangkitkan dan menyimpan 10 (sepuluh) verteks dari 14 (empat belas) verteks yang ada pada graf.

3.2 Flowchart

Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan

prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

(47)
(48)

Pada flowchart diatas, user meng-input kota awal dan kota tujuan, lalu system akan mencari lintasan terpendek dari kota awal dan kota akhir dengan Algoritma A*. Selanjutnya setelah didapat, akan ditampilkan jalur terpendek dari kota awal, yaitu berupa daftar kota yang dilewati oleh lintasan tersebut.

3.3 Perancangan Antarmuka

Berikut adalah rancangan antarmuka untuk sistem pencarian lintasan terpendek dengan menggunakan algoritma A*.

Gambar 3.9 Gambaran sistem antarmuka

Keterangan :

1. Axes, untuk menampilkan graf

2. Pop up menu, untuk user memilih kota awal 3. Pop up menu, untuk user memilih kota tujuan

4. Button cari lintasan, merupakan tombol unutk mencari lintasan setelah user memilih kota awal dan kota tujuan

(49)

Untuk mendapatkan lintasan terpendek antar dua kota, user harus menginput/memilih kota yang ada pada pop up menu (2) sebagai verteks awal, dan menginput/memilih kota pada pop up menu (3) sebagai kota tujuan, lalu mengklik

button cari lintasan (4), lalu akan tampil graf pada property (1) beserta total jarak

(50)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi

Sistem pencarian lintasan terpendek dengan menggunakan Algoritma A* ini diimplementasikan dengan menggunakan bahasa pemrograman MATLAB. Sistem ini dibuat denga menggunakan GUI MATLAB. Dengan menggunakan GUI MATLAB maka interfacenya akan lebih user friendly.

Aplikasi ini bertujuan untuk mencari dan menampilkan jalur atau lintasan terpendek pada suatu jalur yaitu Jalur Lintas Sumatera di Provinsi Sumatera Utara yang di representasikan dalam bentuk graf. Pada sistem ini Aplikasi ini dibangun berbasiskan web dan dapat digunakan pada jaringan internet.

4.2 Spesifikasi Perangkat Lunak

Perangkat lunak yang digunakan dalam pembuatan aplikasi ini adalah MATLAB 7.5 yang memiliki aplikasi GUI yang sangat membantu dalam menampilkan tampilan yang lebih user friendly dari pada yang tidak GUI, serta kemudahan dalam proses input/output. Aplikasi ini dibangun pada sistem operasi Windows 7.

4.3 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang dibutuhkan untuk menjalankan program aplikasi ini adalah sebagai berikut:

(51)

3. Hard Disk 80 GB.

4. Monitor 14.1” dengan resolusi layar 1024 x 768 pixel. 5. Mouse dan keyboard.

4.4 Tampilan Aplikasi Sistem

Aplikasi sistem ini hanya memiliki satu tampilan halaman, seluruh aktifitas user berada pada halaman ini. Berikut adalah tampilan awal saat aplikasi dijalankan.

Gambar 4.1 Tampilan Awal Aplikasi

Pada tampilan ini akan ditampilkan peta Jalur Lintas Sumatera yang telah direpresentasikan dan disesuaikan dengan graf. Jarak antar verteks pada graf (aplikasi) diukur dam kilometer (km). Pada peta (graf) ini verteks dilabelkan dengan angka dan nama kota yang sebenarnya.

(52)

tersebut akan menjadi merah, sehingga user dapat melihat dengan jelas posisi dari masing-masing verteks.

Gambar 4.2 Tampilan Pemilihan Verteks

Selanjutnya tampilan, apabila user mengklik tombol cari lintasan

(53)

Setelah user mengklik tombol cari lintasan, maka lintasan hasil pencarian akan ditampilkan pada graf dengan warna magenta. Sehingga user dapat melihat kota mana saja yang dilalui oleh lintasan terpendek tersebut secara visual.

Gambar 4.4 Tampilan Lintasan Terpendek

Tapi tidak hanya pada itu saja, karena pada panel sebelah kiri bawah, terdapat

box yang berisikan daftar kota yang dilalui pada lintasan terpendek tersebut. Dimulai

dari verteks awalnya dan terurut hingga verteks akhirnya. Pada panel tersebut juga menampilkan total jarak lintasan terpendek dari verteks awal sampai verteks akhir. Untuk mencari ulang lintasan terpendek, user dapat mengklik tombol reset.

(54)

Gambar 4.5 Pesan Peringatan

4.5 Pengujian Sistem

Pengujian sistem ini dilakukan untuk melihat apakah algoritma A* dapat menentukan atau mencari lintasan terpendek pada sistem. Pengujian meliputi dua bagian, yaitu :

1. Pengujian pencarian rute atau lintasan terpendek dari aplikasi yang telah dibuat 2. Pengujian kesesuaian pemilihan jalur lintasan terpendek dengan jumlah total

jarak jalur yang ditempuh

4.5.1 Pengujian pencarian rute atau lintasan terpendek dari aplikasi yang telah

dibuat

Dalam pengujian ini, kita akan melihat kemampuan sistem dalam menampilkan hasil pencarian lintasan terpendek, dengan input berupa verteks awal dan verteks akhir.

(55)

Setelah dilakukan pemilihan verteks awal dan verteks akhir, maka dilakukan pencarian lintasan terpendek dengan mengklik tombol cari lintasan untuk mendapatkan lintasan terpendek

Gambar 4.7 Hasil Proses Pencarian

Dari gambar dan penjelasan diatas, maka dapat dilihat bahwa system ini dapat menampilkan/mencari lintasan terpendek pada graf.

4.5.2 Pengujian Kesesuaian Pemilihan Jalur Lintasan Terpendek dengan Jumlah

Total Jarak Jalur yang Ditempuh

Pada pengujian ini, dipilih verteks awal dan verteks akhir, lalu dicari jalur terpendeknya dan akan didapatkan total panjang lintasan yang dilalui oleh lintasan terpendek. Total panjang lintasan yang didapat dari sistem tersebut akan dibandingkan dengan panjang lintasan yang akan dicari secara manual.

(56)

Gambar 4.8 Pemilihan Kota Medan dan Lima Puluh

Setelan dilakukan pencarian lintasan, maka didapatkan hasik seperti tampilan di bawah ini:

(57)

Pada gambar diatas, dapat dilihat bahwa hasil pencarian diatas, didapat total jarak yaitu 123.123 km. Jarak ini merupakan total jarak dari Kota Medan-Lubuk Pakam-Tebing Tinggi-Lima puluh.

Total Jarak lintasan terpendek jika dicari secara manual :

1. Jarak Dari Medan(koordinat 200,687) -Lubuk Pakam (200.657), maka jarak antara kedua kota tersebut adalah

=

=

=30

2. Jarak Dari Lubuk Pakam (200.657), -Tebing Tinggi (200.607), maka jarak antara kedua kota tersebut adalah

=

=

=80

3. Jarak Dari Tebing Tinggi (200.607), -Lima Puluh (239.8,590.4), maka jarak antara kedua kota tersebut adalah

=

=

= =

=43.123

Dari perhitungan diatas, maka didapat total jarak

=(Medan-Lubuk Pakam) + (Lubuk Pakam+Tebing Tinggi) + (Tebing Tinggi-Lima Puluh)

(58)
(59)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu dan teori yang ada, maka dapat ditarik kesimpulan sebagai berikut:

1. Dalam mencari solusi yang optimal, Algoritma A* sangat bergantung kepada fungsi heuristik yang digunakan.

2. Algoritma A* merupakan algoritma yang dapat menjamin bahwa solusi yang ditemukan adalah optimal.

3. Aplikasi Sistem Pencarian Lintasan Terpendek dengan menggunakan Algoritma A* dapat menunjukkan jalur-jalur terpendek antara dua verteks yang diinginkan

5.2 Saran

Saran-saran yang dapat digunakan untuk pengembangan skripsi ini adalah:

1. Diharapkan aplikasi dapat dikembangkan, sehingga tidak hanya dapat mencari

shortest path pada jalur Lintas Sumatera saja.

2. Diharapkan gambar peta/graf dapat ditampilkan lebih menarik lagi, tidak hanya dalam bentuk koordinat cartesius saja.

(60)

DAFTAR PUSTAKA

Away, Gunaidi Abdia. 2010. The Shortcut of MATLAB Programming. Bandung : Informatika.

Chang, Liang Chang. 1990. Pengantar Teknik Kecerdasan Buatan (Artificial

Intelligence. Jakarta : Erlangga.

Etter, Dolores and David Kuncicky. 2002. Introduction to Matlab 6. Upper Saddle River : Prentice-Hall inc.

Desiani, Anita & Muhammad Arhami. 2006. Kecerdasan Buatan. Yogyakarta : Andi Offset.

Johnsonbaugh, Richard. 1997. Discrete Mathematics Fourth Edition. New Jersey : Prantice Hall.

Kristanto, Andri. 2004. Kecerdasan Buatan. Yogyakarta: Graha Ilmu.

Munir, Rinaldi. 2009. Matematika Diskrit Edisi Ketiga. Bandung : Informatika.

Pawitri, Kadek Ayu Yanti dan Joko Purwadi. 2007. Implementasi Algoritma

PHYSICAL-A* (PHA*) untuk menemukan Lintasan Terpendek,

17 Februari 2010

Patel, Amit. 2009. A*’s Use of the Heuristic Programming/ Heuristics.html#S4. Diakses tangggal 17 Juni 2010

Pearl, Judea. 1984. Heuristics, Intelligent Search Strategies for Computer Problem

Solving. Los Angeles : Addison Wesley.

Riftandi, Mohammad. 2007. VARIASI PENGGUNA FUNGSI HEURISTIK DALAM

PENGAPLIKASIAN ALGORITMA A*.

Diakses

(61)

Suyanto. 2007. Artificial Intelligence, Searching, Reasoning, Planning and Learning. Bandung: Informatika.

Winston, Patrick Henry. 1984. Artificial Intelligence Second Edition. Massachusetts : Addison Wesley.

Peta Jalur Lintas Sumatera. 2009.

. Diakses tanggal 21 Februari

Gambar

Gambar 2.3 Contoh Graf Semu
Gambar 2.5 Contoh Graf berarah
Gambar 2.6 Graf tag berhingga
Gambar 2.9 Sirkuit v1-v2-v3-v1
+7

Referensi

Dokumen terkait

Berdasarkan identifikasi masalah di atas, maka adapun yang menjadi rumusan masalah dalam penelitian ini adalah: “ Apakah Kolaborasi Model Pembelajaran Kooperatif

Bacalah skala yang ditunjukkan dengan cara: (1) penunjukan skala utama sebelum angka nol skala nonius, (2) penunjukan skala nonius yaitu skala yang tepat berimpit antara garis skala

Kentang yang cocok untuk industri keripik harus mempunyai kandungan gula <0,05%, bobot kering >20%, kandungan bahan padatnya tinggi ( ≥ 16,7%), bentuk umbi baik, dan

Untuk mengetahui perbedaan pengisian kuesioner penyesuaian diri pada saat Pre Test dan Post Test pada kelompok eksperimen maka dalam penelitian ini menggunakan teknik

“(Untuk mengetahui Kualitas Pelayanan Program Listrik Pintar PT. PLN Surabaya Selatan tentang Pelayanan Pasang Baru Listrik Prabayar Berdasarkan Indeks Kepuasan

Kondisi stress kerja terkait dengan suhu dapat dibedakan berdasarkan gangguan tubuh akibat suhu tempat kerja, gangguan suhu pada tubuh manusia terjadi pada kondisi

Faktor ekstrinsik merupakan faktor risiko yang dapat meningkatkan pemaparan (exposure) dari penjamu terhadap kuman penyebab yang terdiri atas 3 unsur yaitu

Hasil penelitian menunjukkan nilai MSY ikan pelagis kecil sebesar 31.630 ton/tahun dengan ( Fopt ) sebesar 88.097 trip/tahun, ikan pelagis besar sebesar 2.340 ton/tahun dengan