Perbandingan Algoritma Brute-Force dan Algoritma A* Untuk Mencari Rute Terpendek Antar Klinik Kecantikan di Kota Medan

(1)

LAMPIRAN

LISTING PROGRAM Kode Program Algoritma Brute-Force:

public class Bruteforce {

List<Node> semuaNode; Node nodeTujuan, nodeAsal;

public float jarakMinimum; public List<Node> hasil; public TimeSpan runningTime;

public Bruteforce(List<Node> semuaNode) {

this.semuaNode = semuaNode;

this.jarakMinimum = float.PositiveInfinity; this.hasil = new List<Node>();

}

private void rekursif_bruteforce(List<Node> sampel, List<Node> populasi){ if(sampel.Count > 0){

float jarakTemp = nodeAsal.cariJarakKe(sampel[0].getId()); for(int i = 0; i < sampel.Count - 1; i++){

jarakTemp += sampel[i].cariJarakKe(sampel[i+1].getId()); }

if(jarakTemp == float.PositiveInfinity){ return;

}


(2)

if(sampel[sampel.Count-1].getId() ==

nodeTujuan.getId() && jarakTemp < jarakMinimum){ jarakMinimum = jarakTemp;

hasil = new List<Node>(sampel); hasil.Insert(0, nodeAsal);

} }

List<Node> temp = new List<Node>(sampel);

foreach(Node node in populasi){ if(sampel.IndexOf(node) == -1){ sampel = new List<Node>(temp); sampel.Add(node); rekursif_bruteforce(sampel, populasi); } } }

public bool cariRuteTerpendek(Node asal, Node tujuan){ var stopwatch = System.Diagnostics.Stopwatch.StartNew();

this.nodeTujuan = tujuan; this.nodeAsal = asal;

List<Node> populasi = new List<Node>(semuaNode); populasi.Remove(asal);

rekursif_bruteforce(new List<Node>(), populasi);

stopwatch.Stop();


(3)

if(jarakMinimum == float.PositiveInfinity) return false; return true; } } }

Kode Program Algoritma A*: public class AStar

{

class Elemen { public Node node; public Elemen dari; public float g, h;

public Elemen(Node node, Node nodeTujuan){ this.node = node;

this.g = 0;

this.h = hitungJarakHeuristik(node, nodeTujuan); this.dari = null;

}

public float getF(){ return g + h; }

float deg2rad(float deg){ return (float) (deg * (Math.PI / 180)); }

float hitungJarakHeuristik(Node node_a, Node node_b){ var R = 6371;

var dLat = deg2rad(node_b.getLat()-node_a.getLat()); var dLon = deg2rad(node_b.getLng()-node_a.getLng()); var a =

Math.Sin(dLat/2) * Math.Sin(dLat/2) +


(4)

())) *

Math.Sin(dLon/2) * Math.Sin(dLon/2) ;

var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1-a)); var d = R * c;

return (float) d; }

}

public List<Node> hasil; public TimeSpan runningTime; public float totalJarak;

public AStar() {

hasil = new List<Node>();

runningTime = new TimeSpan(); totalJarak = float.PositiveInfinity; }

private Elemen cariElemenDenganNilaiTerkecil(List<Elemen> open){ float nilaiFTerkecil = float.PositiveInfinity;

Elemen result = null;

foreach(Elemen elemen in open){ if(elemen.getF() < nilaiFTerkecil){ nilaiFTerkecil = elemen.getF(); result = elemen;

} } return result; }

public bool cariRuteTerpendek(Node asal, Node tujuan){

var stopwatch = System.Diagnostics.Stopwatch.StartNew(); List<Elemen> open = new List<Elemen>();

List<Elemen> closed = new List<Elemen>();

Elemen elemen_mulai = new Elemen(asal, tujuan);


(5)

while(open.Count > 0){

Elemen curr = cariElemenDenganNilaiTerkecil(open); if(curr.node.getId() == tujuan.getId()){ totalJarak = curr.g;

while(curr != null){ hasil.Add(curr.node); curr = curr.dari; }

stopwatch.Stop();

runningTime = stopwatch.Elapsed; return true; } open.Remove(curr); closed.Add(curr);

foreach(Hubungan hub in curr.node.getHubungan()){ Elemen tetangga = new Elemen(hub.getNode(), tujuan); tetangga.g = curr.g + hub.getJarak();

tetangga.dari = curr;

bool adaDalamOpen = false, adaDalamClosed = false; foreach(Elemen elemen in closed){

if(elemen.node.getId() == tetangga.node.getId()){ adaDalamClosed = true;

break; }

}

if(adaDalamClosed) continue;

int posisiDiOpen = 0; foreach(Elemen elemen in open){

if(elemen.node.getId() == tetangga.node.getId()){ adaDalamOpen = true;

break;


(6)

posisiDiOpen++; }

if(adaDalamOpen){

if(open[posisiDiOpen].g > tetangga.g){ Elemen update = open[posisiDiOpen];

update.g = tetangga.g; update.h = tetangga.h; update.dari = curr; }

} else {

open.Add(tetangga); }

} }

return false; }

} }


(7)

CURRICULUM VITAE

Data Diri

Nama : Syindy Wulandari Tempat/Tanggal Lahir : Medan/ 24 Maret 1994

Alamat Sekarang : Jl.Polonia Gg.Mushollah Medan

Alamat Orang Tua : Jl. Polonia Gg.Mushollah Medan Polonia Agama : Islam

Jenis Kelamin : Perempuan Nomor Hp : 082299982962

Email : wulandari.syindy@yahoo.com

Riwayat Pendidikan

2000 – 2006 : SD Angkasa Lanud Medan 2006 – 2009 : SMP Angkasa Lanud Medan 2009 – 2012 : SMA Negeri 2 Medan

2012 – Sekarang : S1 Ilmu Komputer Universitas Sumatera Utara, Medan

Keahlian


(8)

Bahasa Pemrograman : C#,

DBMS : MySQL

Multimedia : Adobe Flash

Design : Photoshop

Perkantoran : Microsoft Office, Microsoft Excel

Pengalaman Bekerja

2015 : Praktik Kerja Lapangan di PTPN III (Persero)

Seminar

2016 : Seminar Nasional “ OPEN SOURCE BASE TRANSCEIVER STATION”


(9)

DAFTAR PUSTAKA

Abdeen,A,R. 2011. An Algorithm For String Search Based on Brute-Force Algorithm. International Journal of Computer Science and Network Security , hal. 24.

Adipranata, Rudy. Handojo, Andreas. Setiawan. Happy. 2007. Aplikasi pencari rute optimum pada peta guna Meningkatkan efisiensi waktu tempuh pengguna jalan Dengan metode A* dan Best First Search. Jurnal informatika vol 8, no. 2, Nopember 2007, hal.100 – 108.

Burad, R., Bodhale, R. & Chandak, A. 2016. Optimal shortest path using HAS, A star and Djikstra algorithm. Imperial Journal of Interdisciplinary Research , hal. 978.

Giorgio, Gallo & Steffano, Pallotino. 1998. Shortest Path Algorithm. Pisa: J.C. Baltzer AG. Scientific Publishing Company.

Harianja, F. 2013. Penerapan Algoritma A* Pada Permasalahan Optimasi Pencarian Solusi Dynamic Water Jug. Pelita Informatika Budi Darma , hal. 48-49. Hartono, Tony Bagio,2007, Algoritma Dan Pemograman. Universitas Narotama Surabaya, hal. 1-7.

Mediputra, Andika, 2010, Aplikasi Shortest Path dengan Menggunakan Graf Dalam Kehidupan Sehari-hari, struktur diskrit, Institut Teknologi Bandung ,hal. 1-3 Munir, R. 2007. Matematika Diskrit Edisi Ketiga. Bandung: Institut Teknologi Bandung.


(10)

Mutiana, V., Amastini, F. & Mutiara, N. 2013. Optimasi Pencarian Jalur Dengan Metode A-Star. Program Studi Teknik Informatika Universitas Multimedia Nusantara Tanggerang Indonesia , hal.43.

Prayoga, M. Zulfikar Eka. Purnama, I Ketut Eddy, Hariadi, Mochammad. 2008. Sistem Pencarian Rute Alternatif Dinamis Dengan Smart Routing System Menggunakan A* Algorithm Berbasiskan WEB. Proceeding Penelitian Jurusan Teknik Elektro ITS Surabaya , hal. 3-4.

Prama, irvan.Dkk, 2010, Algoritma Greedy untuk Menentukan Lintasan Terpendek. Institut Teknologi Bandung.

Pramudita, E, K. 2011. Brute Force Attack dan Penerapannya Pada Password Cracking. Program Studi Teknik Informatika Institut Teknologi Bandung.


(11)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan tahapan yang menjelaskan beberapa permasalahan yang akan membantu proses perancangan model sistem yang nantinya akan diimplementasikan dan menjadi penyelesaian dari masalah yang dikaji. Aplikasi Pencarian Klinik Kecantikan Terdekat Di Kota Medan ini merupakan aplikasi untuk menentukan rute terpendek yang paling efektif untuk mencapai tempat tersebut.Pembuatan aplikasi ini melalui beberapa tahapan untuk mempermudah perancangan dan pembuatannya.

3.1.1 Analisis Masalah

Banyak cara untuk mencapai suatu tempat yang diinginkan dengan mudah, dalam hal ini untuk menuju Klinik Kecantikan yang diinginkan diperlukan suatu cara yang cepat dalam mencari rute terpendeknya dan dapat memilih solusi yang paling optimal, sehingga dapat menghemat waktu dan membuat perjalanan lebih efektif dan efisien. Dengan dasar ini penulis mencari suatu cara untuk mencari Klinik Kecantikan terdekat di Kota Medan dengan menggunakan dua buah algoritma yaitu algoritma Brute Force dan A*.

Permasalahan pada penelitian ini, bukan hanya sebatas pencarian rute terdekat dengan dua buah algoritma Brute Force dan A*, tetapi juga dengan membandingkan jarak dan hasil kerja kedua algoritma tersebut dan dalam pengaplikasiannya graf dibentuk dengan mengikuti peta Kota Medan, dimana vertex ditentukan berdasarkan beberapa nama Klinik Kecantikan yang telah di pilih yang terdapat di Kota Medan, dan edge merupakan panjang jarak jalan yang akan dilalui nantinya dari Klinik Kecantikan satu ke Klinik Kecantikan lainnya.

Terdapat 10 nama Klinik Kecantikan di Kota Medan yang telah dipilih dan akan diterapkan kedalam graf pada sistem yang dibuat, nama-nama Klinik Kecantikan yang digunakan dapat dilihat pada Tabel 3.1 berikut:

Tabel 3.1 Nama-Nama Klinik Kecantikan yang Menjadi Vertex No Nama Klinik Kecantikan


(12)

2 Natasha Skin Clinic Center 3 Miracle Aesthetic Clinic 4 Klinik Kusuma

5 Klinik Kecantikan EUROSKINLAB 6 Erhaclinic

7 Yasmin Skin Care 8 Skinos

9 Vernal Skin Solution 10 The Clinic Medan

Pada penelitian ini, penulis membatasi masalah hanya dengan 10 buah simpul (vertex), diharapkan akan ada penelitian lebih lanjut untuk menyelesaikan masalah yang serupa dengan memperbanyak jumlah simpul untuk Klinik Kecantikan yang ada di Kota Medan. Berikut peta rute/jalan dari 10 Klinik Kecantikan yang telah dipilih untuk menuju Klinik Kecantikan yang diinginkan di Kota Medan dan dapat dilihat pada Gambar 3.1.


(13)

(14)

(15)

Gambar 3.1 Peta atau Rute Klinik Kecantikan di Kota Medan

Dalam representasi graf, penentuan hubungan antar simpul (vertex) dan sisi (edge) pada graf Klinik Kecantikan di Kota Medan sangat diperlukan, dengan memperhatikan bobot agar dapat dilakukan proses yang lebih optimal, hubungan antar sebuah simpul (vertex) dengan simpul (vertex) lainnya saling berkaitan karna tiap simpul memiliki sisi (edge) yang menghubungkan sebuah simpul (vertex) dengan simpul (vertex) lainnya agar dapat membentuk graf. Data simpul (vertex) pada graf Klinik Kecantikan di Kota Medan yang telah dipilih dapat lihat pada Tabel 3.2.


(16)

Tabel 3.2 Data Simpul (Vertex) Pada Graf Klinik Kecantikan di Kota Medan

No Nama Vertex Nama Tetangga Bobot

1

Klinik Kecantikkan by dr. Erwin

Natasha Skin Clinic Center 6,1 km Miracle Aesthetic Clinic 7,6 km

2

Natasha Skin Clinic Center Klinik Kusuma 5,2 km Klinik Kecantikan

EUROSKINLAB

4,3 km

Klinik Kecantikkan by dr. Erwin

6,1 km

3

Miracle Aesthetic Clinic Yasmin Skin Care 4,7 km

Klinik Kusuma 3,3 km

Klinik Kecantikkan by dr. Erwin

7,6 km

4

Klinik Kusuma

Skinos 3,1 km

Erhaclinic 4,7 km

Miracle Aesthetic Clinic 4,3 km Natasha Skin Clinic Center 5,2 km

5 Klinik Kecantikan EUROSKINLAB

Erhaclinic 3,3 km

Natasha Skin Clinic Center 4,3 km

6 Erhaclinic

Vernal Skin Solution 2,3 km

Klinik Kusuma 4,7 km

Klinik Kecantikan

EUROSKINLAB 3,3 km

7 Yasmin Skin Care

Skinos 9,7 km


(17)

8 Skinos

The Clinic Medan 4,6 km Vernal Skin Solution 5,2 km

Klinik Kusuma 3,1 km

9 Vernal Skin Solution

The Clinic Medan 1,1 km

Erhaclinic 2,3 km

10 The Clinic Medan

Yasmin Skin Care 5,6 km

Skinos 4,6 km

Vernal Skin Solution 1,1 km

Dalam mengidentifikasi suatu masalah dapat menggunakan diagram Ishikawa (fishbone diagram). Diagram Ishikawa merupakan suatu alat visual untuk mengidentifikasi, mengeksplorasi, dan secara grafik menggambarkan secara detail semua penyebab yang berhubungan dengan suatu permasalahan. Diagram Ishikawa bentuknya menyerupai kerangka tulang ikan yang bagian-bagiannya meliputi kepala, sirip, dan duri dimana digambarkan seperti susunan tulang ikan yang terbagi atas dua bagian yaitu bagian kepala ikan yang merupakan masalah, bagian utama tulang belakang merupakan kemungkinan-kemungkinan penyebab masalah. Diagram Ishikawa sistem ini dapat dilihat pada Gambar 3.2.

Gambar 3.2 Diagram Ishikawa Sistem

User

Penentuan Rute Terpendek Klinik Kecantikan dengan Algoritma Jarak

Sulit Menentukan Metode Yang Tepat

Belum Adanya Aplikasi Untuk Mencari Tempat Klinik Kecantikan

Material Metode

Belum Mengetahui Informasi

li ik ik

Rute

Belum ada metode Yang Menampilkan Perbandingan Kedua Algoritma Node Asal dan Tujuan

Tidak Mengetahui Cara Kerja Algoritma


(18)

Diagram Ishikawa diatas terbagi atas 2 (dua) bagian yaitu head dan bone. Bone terdiri dari 4 aspek yaitu material, metode, user dan sistem. Material adalah apa saja yang diperlukan dalam menjalankan sistem yaitu jarak dan rute yang digunakan untuk mengetahui seberapa jauh jalan yang akan ditempuh dan rute yang akan dilalui. Metode adalah kebutuhan yang spesifik dari proses yang terdiri dari 3 (tiga) bagian yaitu bagian algoritma Brute Force, algoritma A* dan Hasil Pencarian dan Perbandingan kedua algoritma yang akan digunakan untuk menjalankan hasil graf yang terbentuk. User adalah apa saja yang akan diketahui dari sistem yang akan dikerjakan diamana user sebelumnya user belum mengetahui cara kerja sistem. Sistem adalah hal yang akan dilakukan atau dibuat yaitu dengan membuat aplikasi pencarian Klinik Kecantikan terdekat di Kota Medan dengan menggunakan algoritma Brute force dan algoritma A*, melakukan perbandingan dari hasil kerja kedua algoritma tersebut.

3.1.2 Analisis Persyaratan

Terdapat dua bagian pada analisis persyaratan, yaitu persyaratan fungsional dan persyaratan non-fungsional.

3.1.2.1 Persyaratan Fungsional

Analisis kebutuhan fungsional disini mendekripsikan tentang sistem yang disediakan. sistem ini melakukan perhitungan, perbandingan rute dan waktu pencarian Klinik Kecantikan terdekat di Kota Medan dengan membandingkan dua buah algoritma yaitu Brute Force dan A*, terdapat beberapa persyaratan fungsional antara lain:

1. Sistem ini menggunakan graf Klinik Kecantikan di Kota Medan yang telah dipilih dan dapat ditampilkan pada sistem sesuai dengan representasi graf yang telah ditentukan.

2. Sitem yang dibangun menggunakan simpul (vertex) dan sisi (edge) pada graf dan dapat ditampilkan pada sistem beserta nama, bobot, alamat dan rute yang akan dilalui menuju Klinik Kecantikan tersebut dari setiap sisi (edge) yang terhubung dengan simpul (vertex).

3. Sistem mampu menambahkan simpul (vertex) baru, sisi (edge), alamat dan rute yang akan dilalui menuju Klinik Kecantikan tersebut dengan menambahkannya pada fitur yang telah tersedia.

4. Sitem ini mendapatkan hasil pencarian dengan graf menggunakan dua algoritma yaitu Brute Force dan A* dapat diterapkan pada sistem.

5. Sistem mendapatkan hasil pada graf dengan menggunakan dua algoritma Brute Force dan A* yang dapat menentukan rute mana saja yang akan dilalui yang diterapkan


(19)

3.1.2.2 Persyaratan Non-Fungsional

Kebutuhan non-fungsional adalah kebutuhan yang berisi kinerja operasional dan performance dari suatu sistem. Terdapat beberapa persyaratan non-fungsional yang harus dipenuhi diantaranya :

1. User Friendly

Sistem yang akan dibangun harus mudah digunakan (user friendly), artinya sistem ini akan mudah digunakan oleh user dengan tampilan yang sederhana dan dapat dimengerti.

2. Kinerja

Sistem atau perangkat lunak yang akan dibangun harus dapat menunjukkan hasil jalan terpendek dan rute Klinik Kecantikan dari algoritma yang diterapkan yaitu algoritma Brute Force dan A*

3. Hemat Biaya

Sistem atau perangkat lunak yang digunakan tidak memerlukan perangkat tambahan yang dapat mengeluarkan biaya.

4. Manajemen Kualitas

Sistem atau perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu dapat menunjukkan perbandingan jarak, rute Klinik Kecantikan yang akan dilalui dan hasil kerja dari kedua algoritma yang dibandingkan.

3.1.3 Analisis Proses

Pembangunan sistem menggunakan bahasa pemrograman C#. Algoritma yang digunakan untuk mencari Klinik Kecantikan terdekat di Kota Medan adalah Brute Force dan A*, hasil kerja dari kedua algoritma tersebut akan dibandingkan untuk mendapatkan hasil yang baik dari graf yang telah terbentuk.

3.1.4 Flowchart

Flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.


(20)

3.1.4.1 Flowchart Sistem

Flowchart dari sistem yang dibangun dapat dilihat pada Gambar 3.3.

Gambar 3.3 Flowchart Sistem Menampilkan Hasil Lintasan Teependek Klinik Kecantikan Di

Kota Medan

Selesai

Masukkan Titik Awal dan Titik Tujuan

Membentuk Graf Rute Terpendek

Menampilkan graf, Nama dan Jarak Klinik

Kecantikan

Hasil : Total Jarak, Rute dan Running Time


(21)

3.2 Perancangan Sistem

Pada bagian ini digunakan Unified Modeling Languange (UML) sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem. Sistem ini dibangun dengan membuat use case diagram, sequence diagram dan activity diagram.

3.2.1 Use Case Diagram

Use case adalah gambaran fungsionalitas dari suatu sistem, sehingga user paham dan mengerti mengenai kegunaan sistem yang dibangun, dimana penggambaran sistem dari sudut pandang user itu sendiri sehingga use case lebih di titik beratkan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian.

Berikut use case diagram dapat dilihat pada Gambar 3.4.


(22)

3.2.2. Activity Diagram

Activity diagram dapat menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses, serta dapat menggambarkan alur aktivitas kerja pada sistem yang sedang dirancang atau pun berjalan, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana berakhir.

Activity diagram pada gambar 3.5 menjelaskan proses kerja dari sistem untuk proses menentukan titik awal dan akhir serta memilih algoritma yang akan digunakan oleh user. Activity diagram sistem pada aplikasi yang dibuat dapat dilihat pada Gambar 3.5.


(23)

3.2.3 Sequence Diagram

Sequence diagram mengilustrasikan bagaimana message dikirim dan diterina diantara objek, dan diurutan yang sama, sequence membantu untuk menggambarkan data yang masuk dan keluar sistem. Sequence diagram sistem ini dapat dilihat pada Gambar 3.6

Gambar 3.6 Sequence Diagram Sistem

3.3 Perancangan Antarmuka (Interface)

Perancangan antarmuka (interface) merupakan bagian penting dalam membangun sebuah sistem.Antarmuka yang baik perlu memperhatikan faktor pengguna dalam menggunakan sistem, selain untuk mempermudah pengguna dalam menggunakan sistem yang dibangun juga perlu diperhatikan kenyamanan dari pengguna dalam menggunakan sistem tersebut. Adapun antarmuka yang terdapat pada sistem ini adalah halaman menu Home, Klinik Kecantikan ke Klinik Kecantikan, Pengaturan, Bantuan dan Tentang.

3.3.1 Halaman Menu Home

Halaman Home merupakan halaman utama yang ditampilkan dari sistem ketika sistem dijalankan.Tampilan rancangan halaman menu Home dapat dilihat pada Gambar 3.7 dan keterangan gambar rancangan halaman pada Tabel 3.3.


(24)

Gambar 3.7 Rancangan Antarmuka Halaman Menu Home

Tabel 3.3 Keterangan Gambar Rancangan Antarmuka Halaman Home

No Keterangan

1 Label untuk menampilkan keterangan judul sistem

2 Menu “Pengujian” untuk menampilkan graf , rute dan perbandingan hasil algoritma

3 Menu “Pengolahan Data” untuk mengelola vertex dan edge

4 Menu “Bantuan” untuk menampilkan halaman petunjuk penggunaan sistem

5 Menu “Tentang” untuk menampilkan data dari penulis

6 Label untuk menampilkan nama dan NIM

7 Picture Box untuk menampilkan logo Universitas Sumatera Utara


(25)

3.3.2 Halaman Menu Pengujian

Halaman Pengujian merupakan halaman yang tampil saatpengguna memilih menu Pengujian pada halaman utama.Pada halaman ini pengguna dapat melihat graf yang akan ditampilkan, memilih algoritma yang akan digunakan, serta melihat hasil total jarak, rute dan execution time dari kedua algoritma tersebut. Rancangan halaman menu Pengujian dapat dilihat pada Gambar 3.8 dan keterangan gambar rancangan halaman pada Tabel 3.4.

Gambar 3.8 Rancangan Antarmuka Halaman Menu Pengujian

Tabel 3.4 Keterangan Gambar Rancangan Menu Pengujian

No Keterangan

1 Combo Box untuk node asal

2 Combo Box untuk node tujuan

3 Button untuk menampilkan hasil


(26)

5 Group Box untuk grup Brute Force

6 Check Box untuk menampilkan graf A*

7 Label untuk menampilkan hasil pengujian A*

8 Textbox untuk menampilkan rute A*

9 Check Box untuk menampilkan graf Brute Force

10 Label untuk menampilkan hasil pengujian Brute Force

11 Textbox untuk menampilkan rute Brute Force

12 WPF Element Host untuk menampilkan Graf

13 Button untuk mengembalikan pengaturan kesemula

3.3.3 Halaman Menu Pengolahan Data

Halaman Pengolahan Data merupakan halaman yang tampil saat pengguna memilih menu pada menubar. Pada halaman ini pengguna dapat mengelola graf yang akan ditampilkan, memasukkan graf, menambahkan node (vertex), menghapus node (vertex), mengubah tag, memasukkan nama dari node (vertex) dan memasukkan rute yang akan dilalui dari setiap node (vertex). Rancangan halaman menu Pengolahan Data dapat terbagi menjadi dua yaitu :

3.3.3.1 Tabel Node

Pada menu Tabel Node digunakan untuk menambah data node, menghapus atau mengubah data node yang akan diolah. Rancangan menu Tabel Node dapat dilihat pada gambar 3.9 dan keterangan dapat dilihat pada tabel 3.5


(27)

Gambar 3.9 Rancangan Antarmuka Tabel Node

Tabel 3.5 Keterangan Gambar Rancangan Antarmuka Tabel Node

No Keterangan

1 Data Gride View untuk menampilkan vertex yang telah ditambah

2 Textbox untuk mengisi nama tempat yang akan ditambah

3 Textbox untuk mengisi alamat tempat yang akan ditambah

4 Textbox untuk mengisi posisi X tempat yang akan ditambah

5 Textbox untuk mengisi posisi Y tempat yang akan ditambah

6 Textbox untuk mengisi latitude tempat yang akan ditambah

7 Textbox untuk mengisi longitude tempat yang akan ditambah

8 Button untuk menambahkan node

9 Textbox untuk menampilkan ID

10 Textbox untuk menampilkan nama tempat 11 Textbox untuk menampilkan alamat tempat 12 Textbox untuk menampilkan posisi X tempat


(28)

13 Textbox untuk menampilkan posisi Y tempat 14 Textbox untuk menampilkan latitude tempat 15 Textbox untuk menampilkan longitude tempat 16 Button untuk menghapus data node

17 Button untuk mengedit data node

3.3.3.2 Tabel Koneksi

Pada menu Tabel Koneks digunakan untuk menambah data vertext, menghapus atau mengubah data vertext yang akan diolah. Rancangan menu Tabel Vertex dapat dilihat pada gambar 3.10 dan keterangan dapat dilihat pada tabel 3.6

Gambar 3.10 Rancangan Antarmuka Tabel Vertex

Tabel 3.6 Keterangan Gambar Rancangan Antarmuka TabelVertext

No Keterangan

1 Data Gride View untuk menampilkan vertex yang telah tersedia 2 ComboBox untuk mengisi tempat asal


(29)

5 Button untuk menambah data dari tempat asal ke tempat tujuan

6 Textbox untuk menampilkan ID

7 ComboBox untuk menampilkan tempat asal

9 ComboBox untuk menampilkan tempat tujuan

9 Textbox untuk mengisi jarak antara tempat asal ke tempat tujuan

10 Button untuk mengedit data Vertex 11 Button untuk menghapus data Vertex

3.3.4 Halaman Menu Tentang Penulis

Halaman Tentang Penulis merupakan halaman yang tampil saat pengguna memilih menu Tentang pada halaman utama. Pada halaman ini pengguna dapat melihat biodata dari penulis. Rancangan halaman menu Tentang dapat dilihat pada Gambar 3.11dan keterangan gambar rancangan halaman pada Tabel 3.7.


(30)

Tabel 3.7 Keterangan Gambar Rancangan Antarmuka Tentang

No Keterangan

1 PictureBox menampilkan foto dari penulis

2 Texbox menampilkan nama dan NIM dari penulis

3 Texbox menampilkan judul dari penulis

3.3.5 Halaman Menu Bantuan

Halaman Bantuan merupakan halaman yang tampil saat pengguna memilih menu Bantuan pada halaman utama. Pada halaman ini pengguna dapat melihat bagaimana cara menggunakan aplikasi dari. Rancangan halaman menu Bantuan dapat dilihat pada Gambar 3.12 dan keterangan gambar rancangan halaman pada Tabel 3.8.


(31)

Tabel 3.8 Keterangan Gambar Rancangan Antarmuka Bantuan

No Keterangan

1 PictureBox menampilkan screenshot dari halaman Home

2 Label menampilkan isi dari penggunaan masing – masing menu

3 PictureBox menampilkan screenshot dari halaman pengolahan data

4 Label menampilkan isi dari penggunaan pengolahan data

5 PictureBox menampilkan screenshot dari halaman Pengujian


(32)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Pada penelitian ini, sistem dibangun dengan menggunakan bahasa pemrograman C# dengan bantuan perangkat lunak pengembang Sharp Develop. Implementasi dilakukan dengan mengikuti analisis yang sudah diuraikan pada bab sebelumnya.

4.1.1. Halaman awal

Halaman awal merupakan halaman yang berisi tautan ke halaman yang lain dan merupakan halaman pertama yang ditampilkan sistem. Halaman awal dapat dilihat pada Gambar 4.1.

Gambar 4.1 Implementasi Halaman Awal

4.1.2. Halaman Pengujian

Halaman pengujian merupakan halaman dimana pengguna melakukan uji coba untuk mencari jarak terdekat dari rute asal menuju rute tujuan. Pengguna dapat melakukan pengujian dengan menggunakan algoritma Brute Force atau A* seperti yang tersedia pada Gambar 4.2.


(33)

Gambar 4.2. Implementasi Pengujian

4.1.3. Halaman Pengolah Data

Halaman pengolah data merupakan halaman yang digunakan untuk menambah, mengubah atau menghapus data dari tempat – tempat Klinik Kecantikan yang ada didaerah sekitar kota medan yang akan digunakan sebagai Node atau pun Vertex. Pada halaman menu pengolah data terbagi menjadi dua yaitu :

4.1.3.1 Tabel Node

Pada menu Tabel Node digunakan untuk menambah data node, menghapus atau mengubah data node yang akan diolah. Rancangan menu Tabel Node dapat dilihat pada gambar 4.3


(34)

Gambar 4.3. Implementasi Halaman Tabel Node

4.1.3.2 Tabel Koneksi

Pada menu Tabel Koneksi digunakan untuk menghubungkan dua buah data node, serta menghapus atau mengubah hubungan antara data node yang akan diolah. Rancangan menu Tabel Koneksi dapat dilihat pada gambar 4.4

Gambar 4.4. Implementasi Halaman Tabel Koneksi 4.1.4.Halaman Tentang

Halaman Tentang berisi informasi dari biodata penulis dan sistem yang dibangun sebagaimana terlihat pada gambar 4.5


(35)

Gambar 4.5 Implementasi Halaman Tentang

4.1.5.Halaman Bantuan

Halaman Bantuan merupakan halaman yang digunakan untuk memberikan informasi cara pemakaian sistem. Sistem yang dibangun sebagaimana terlihat pada gambar 4.6

Gambar 4.6 Implementasi Halaman Bantuan 4.2Pengujian

4.2.1 Data Node

Berikut ini adalah data node yang digunakan untuk sebagai sampel pada penelitian : Tabel 4.1 Data Keterangan Klinik Sebagai Node

No Nama Klinik Alamat Latitude Longitude 1 Klinik Kecantikkan by dr. Erwin Jl. Gatot Subroto 3,5969583 98,611345 2 Natasha Skin Clinic Center (Skin Care) Medan Plaza Plaza Medan Fair 3,5901958 98,6532813 3 Klinik Kecantikan EUROSKINLAB Medan Jl Perintis Kemerdekaan 3,597099 98,679077 4 Miracle Aesthetic Clinic Medan Jl. Hayam Wuruk 3,5816027 98,6615962 5 Klinik Kusuma Jalan H. Misbah 3,575614 98,682255


(36)

4.2.2. Pengujian Proses Algoritma A*

Proses pencarian Klinik Kecantikan dengan menggunakan algoritma A* dapat dilihat pada Gambar 4.7.

Gambar 4.7 Tampilan Pengujian Pencarian Klinik Kecantikan dengan Algoritma A* (Rute Orange)

Untuk perhitungan manual tentukan node yang akan menjadi titik asal kemudian tentukan node yang akan menjadi titik tujuan. Diketahui :

Titik Asal : A dan Titik Tujuan : H 1. List Open : Node A

G = 0; H = 9.645803; F = G + H = 9.645803 Elemen dengan nilai F terkecil : A

2. Node Aktif : A

Dari node yang aktif dicari node tetangga nya. Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil dari pada node yang sama yang berada dalam list open, maka nilai diupdate

List Open : Node B


(37)

Elemen dengan nilai F terkecil : B 3. Node aktif : B

Dari node yang aktif dicari node tetangga nya, Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil daripada node yang sama yang berada dalam list open, maka nilai diupdate

List Open : Node D

G = 7.6; H = 4.032881; F = G + H = 11.63288 Node E

G = 11.3; H = 2.085047; F = G + H =13.38505 Node C

G = 10.4; H = 2.3758; F = G + H = 12.7758 Elemen dengan nilai F terkecil : D

4. Node aktif : D

Dari node yang aktif dicari node tetangga nya, Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil daripada node yang sama yang berada dalam list open, maka nilai diupdate

List Open : Node E

G = 10.9; H = 2.085047; F = G + H = 12.98505 Node C

G = 10.4; H = 2.3758; F = G + H = 12.7758 Node G

G = 12.3; H = 7.919182; F = G + H = 20.21918 Elemen dengan nilai F terkecil : C

5. Node aktif : C

Dari node yang aktif dicari node tetangga nya, Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil daripada node yang sama yang berada dalam list open, maka nilai diupdate

LIST OPEN = NODE C

G = 10.9; H = 2.085047; F = G + H = 12.98505 NODE G


(38)

G = 12.3; H = 7.919182; F = G + H = 20.21918 NODE F

G = 13.7; H = 4.059044; F = G + H = 17.75904 Elemen dengan nilai F terkecil : E

6. Node aktif : E

Dari node yang aktif dicari node tetangga nya, Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil daripada node yang sama yang berada dalam list open, maka nilai diupdate

List Open : Node G

G = 12.3; H = 7.919182; F = G + H = 20.21918 NODE F

G = 13.7; H = 4.059044; F = G + H = 17.75904 NODE H

G = 14; H = 0; F = G + H = 14 Elemen dengan nilai F terkecil : H 7. Node aktif : H

Dari node yang aktif dicari node tetangga nya, Jika Node ada di list open, maka nilainya dicek

Jika nilai F dari tetangga lebih kecil daripada node yang sama yang berada dalam list open, maka nilai di update

H adalah node tujuan dengan nilai terkecil.

Sehingga Didapat total jarak adalah nilai G yang dimiliki oleh node tujuan yaitu : 14 Berdasarkan penjelasan diatas sehingga dapat dilihat hasilnya pada Tabel 4.2 berikut ini :


(39)

Tabel 4.2 Hasil Pengujian Klinik Kecantikan dengan Algoritma A*

No Node G H F

1 A 0 9.645803 9.645803

2 B 6.1 4.938026 11.03803

D 7.6 4.032881 11.63288

3 D 7.6 4.032881 11.63288

E 11.3 2.085047 13.38505

C 10.4 2.3758 12.7758

4 E 10.9 2.085047 12.98505

C 10.4 2.3758 12.7758

G 12.3 7.919182 20.21918

5 E 10.9 2.085047 12.98505

G 12.3 7.919182 20.21918

F 13.7 4.059044 17.75904

6 G 12.3 7.919182 20.21918

F 13.7 4.059044 17.75904

H 14 0 14

4.2.3 Pengujian Proses Algoritma Brute Force

Proses pencarian Klinik Kecantikan dengan menggunakan algoritma Brute force dapat dilihat pada Gambar 4.8.

Gambar 4.8 Tampilan Pengujian Pencarian Klinik Kecantikan dengan Algoritma Brute Force (Rute Hijau)


(40)

Untuk perhitungan manual tentukan node yang akan menjadi titik asal kemudian tentukan node yang akan menjadi titik tujuan. Diketahui pada gambar di atas titik asal dari Klinik Kecantikan dr.Erwin(A) menuju ke titik tujuan Klinik Kusuma (E) :

Titik Asal : A dan Titik Tujuan : E

Dalam algoritma brute force, dilakukan percobaan terhadap semua rute yang mungkin dilalui dari titik asal.

Pola 1 : dimulai dari node A

Terdapat 2 Node yang terhubung langsung dengan A yaitu node D dan node B, sehingga dari pola pertama dikembangkan menjadi

Pola 2 : A →D Pola 3: A→B

Dari dua pola di atas kembali dikembangkan, sebagai contoh proses pengembangan dari pola 2 adalah sebagai berikut :

Pola 2 : A→D

Ditinjau node yang terhubung dengan node D yaitu node E dan node G, sehingga didapatkan pola lanjutan

A→D→E A→D→G

Dilakukan proses yang sama sampai didapatkan hasil sebagai berikut :

Tabel 4.3 Hasil Pengujian Algoritma Brute Force

No Rute Jarak

1 AB 6.1

2 ABC 10.4

3 ABCD ∞

4 ABCE ∞

5 ABCF 13.7


(41)

7 ABCFE 18.4

8 ABCFG ∞

9 ABCFH ∞

10 ABCFI 16

11 ABCFID ∞

12 ABCFIE ∞

13 ABCFIG ∞

14 ABCFIH 21.2

15 ABCFIHD ∞

16 ABCFIHE 24.3

17 ABCFIHG 30.9

18 ABCFIHGD 35.6

19 ABCFIHGDE 38.9

20 ABCFIHGDJ ∞

21 ABCFIHGE ∞

22 ABCFIHGJ 36.5

23 ABCFIHGJD ∞

24 ABCFIHGJE ∞

25 ABCFIHJ 25.8

26 ABCFIHJD ∞

27 ABCFIHJE ∞

28 ABCFIHJG 31.4

29 ABCFIHJGD 36.1

30 ABCFIHJGDE 39.4

31 ABCFIHJGE ∞

32 ABCFIJ 17.1

33 ABCFIJD ∞


(42)

35 ABCFIJG 22.7

36 ABCFIJGD 27.4

37 ABCFIJGDE 30.7

38 ABCFIJGDH ∞

39 ABCFIJGE ∞

40 ABCFIJGH 32.4

41 ABCFIJGHD ∞

42 ABCFIJGHE 35.5

43 ABCFIJH 21.7

44 ABCFIJHD ∞

45 ABCFIJHE 24.8

46 ABCFIJHG 31.4

47 ABCFIJHGD 36.1

48 ABCFIJHGDE 39.4

49 ABCFIJHGE ∞

50 ABCFJ ∞

51 ABCG ∞

52 ABCH ∞

53 ABCI ∞

54 ABCJ ∞

55 ABD ∞

56 ABE 11.3

57 ABF ∞

58 ABG ∞

59 ABH ∞

60 ABI ∞


(43)

63 AD 7.6

64 ADB ∞

65 ADC ∞

66 ADE 10.9

67 ADF ∞

68 ADG 12.3

69 ADGB ∞

70 ADGC ∞

71 ADGE ∞

72 ADGF ∞

73 ADGH 22

74 ADGHB ∞

75 ADGHC ∞

76 ADGHE 25.1

77 ADGHF ∞

78 ADGHI 27.2

79 ADGHIB ∞

80 ADGHIC ∞

81 ADGHIE ∞

82 ADGHIF 29.5

83 ADGHIFB ∞

84 ADGHIFC 32.8

85 ADGHIFCB 37.1

86 ADGHIFCBE 42.3

87 ADGHIFCBJ ∞

88 ADGHIFCE ∞

89 ADGHIFCJ ∞


(44)

91 ADGHIFJ ∞

92 ADGHIJ 28.3

93 ADGHIJB ∞

94 ADGHIJC ∞

95 ADGHIJE ∞

96 ADGHIJF ∞

97 ADGHJ 26.6

98 ADGHJB ∞

99 ADGHJC ∞

100 ADGHJE ∞

101 ADGHJF ∞

102 ADGHJI 27.7

103 ADGHJIB ∞

104 ADGHJIC ∞

105 ADGHJIE ∞

106 ADGHJIF 30

107 ADGHJIFB ∞

108 ADGHJIFC 33.3

109 ADGHJIFCB 37.6

110 ADGHJIFCBE 42.8

111 ADGHJIFCE ∞

112 ADGHJIFE 34.7

113 ADGI ∞

114 ADGJ 17.9

115 ADGJB ∞

116 ADGJC ∞


(45)

119 ADGJH 22.5

120 ADGJHB ∞

121 ADGJHC ∞

122 ADGJHE 25.6

123 ADGJHF ∞

124 ADGJHI 27.7

125 ADGJHIB ∞

126 ADGJHIC ∞

127 ADGJHIE ∞

128 ADGJHIF 30

129 ADGJHIFB ∞

130 ADGJHIFC 33.3

131 ADGJHIFCB 37.6

132 ADGJHIFCBE 42.8

133 ADGJHIFCE ∞

134 ADGJHIFE 34.7

135 ADGJI 19

136 ADGJIB ∞

137 ADGJIC ∞

138 ADGJIE ∞

139 ADGJIF 21.3

140 ADGJIFB ∞

141 ADGJIFC 24.6

142 ADGJIFCB 28.9

143 ADGJIFCBE 34.1

144 ADGJIFCBH ∞

145 ADGJIFCE ∞


(46)

147 ADGJIFE 26

148 ADGJIFH ∞

149 ADGJIH 24.2

150 ADGJIHB ∞

151 ADGJIHC ∞

152 ADGJIHE 27.3

153 ADGJIHF ∞

154 ADH ∞

155 ADI ∞

156 ADJ ∞

157 AE ∞

158 AF ∞

159 AG ∞

160 AH ∞

161 AI ∞

162 AJ ∞

Dari percobaan di atas, didapatkan rute terpendek dari A ke E adalah A→D→E dengan jarak 10.9 km.

4.3 Real Running-Time

Untuk mencari real running time harus dilakukan proses pengujian sistem dengan algoritma A* dan algoritma Brute Force dimana sebelum mengetahui real running timenya user harus memilih titik awal Klinik Kecantikan dia berada untuk menuju Klinik Kecantikan yang akan dikunjungi. Akan dilakukan dua kali proses pengujian. Proses pengujian pertama akan dicari Klinik Kecantikan “A” ke Klinik Kecantikan “H” dengan menggunakan algoritma A* dan Brute Force dan dapat dilihat pada Gambar 4.9.


(47)

Gambar 4.9 Hasil Pengujian Pertama Pencarian Klinik Kecantikan

Dari pengujian pertama didapatkan total jarak dengan algoritma A* dan Brute Force yaitu 14 km dan execution time yang didapat algoritma A* yaitu 3.3643ms dan execution time yang didapat algoritma Brute Force yaitu 7.6715ms. Jadi untuk percobaan pertama algoritma A* dan algoritma Brute Force dengan total jarak yang sama dan execution time yang berbeda yaitu algoritma A* lebih cepat dari algoritma Brute Force.

Untuk pengujian kedua, akan dilakukan perbuahan yaitu proses pengujian yang dicari yaitu Klinik Kecantikan “A” ke Klinik Kecantikan “E” Hasil pengujian kedua dengan menggunakan algoritma A* dan Brute Force dapat dilihat pada gambar 4.10.


(48)

Gambar 4.10 Hasil Pengujian Kedua Pencarian Klinik Kecantikan

Dari pengujian kedua didapatkan total jarak dengan algoritma A* dan Brute Force yaitu 10,9 km dan execution time yang didapat algoritma A* yaitu 285.9306ms dan execution time yang didapat algoritma Brute Force yaitu 33594.9261ms. Jadi untuk percobaan pertama algoritma A* dan algoritma Brute Force dengan total jarak yang sama dan execution time yang berbeda yaitu algoritma A* lebih cepat dari algoritma Brute Force.

Setelah dilakukannya pengujian, maka hasil dari kesembilan pengujian dengan menggunakan algoritma Brute-Force dan algoritma A*, ditampilkan juga hasil rata-rata running time dari kedua algoritma dapat dilihat pada Tabel 4.4


(49)

Tabel 4.4 Hasil Running Time Dari Kedua Pengujian Algoritma Pengujian

Ke

Node

Algoritma Brute-Force

(ms)

Algoritma A* (ms)

1 A – J 1,4953 0,0356

2 B – J 1,4601 0,0271

3 C – J 0,9824 0,0158

4 D – J 0,9326 0,0222

5 E – J 0,8143 0,0198

6 F – J 1,4163 0,0117

7 G – J 3,9278 0,0076

8 H – J 0,8564 0,0081

9 I – J 4,9435 0,0076


(50)

BAB 5

KESIMPULAN DAN SARAN 5.1. Kesimpulan

Kesimpulan yang dapat diambil dari penelitian ini adalah:

1. Pencarian rute terpendek digambarkan kedalam graph yang hasilnya berupa jarak dan jalur dari satu node menuju node lainnya sampai node tujuan .

2. Terdapat dari hasil pengujian pencarian jarak terpendek untuk Klinik Kecantikan algoritma A* memiliki excecution time yang lebih cepat dalam pengujian dari pada algoritma Brute Force hal ini disebabkan karena algoritma Brute Force yang mencoba setiap jalan, sehingga menghasilkan waktu yang relatif lebih lama.

3. Proses pencarian rute terpendek dengan algoritma A* dan algoritma Brute Force selalu menghasilkan rute yang sama yaitu rute terdekat dari tempat tujuan asal mencapai daerah tujuan akhir.


(51)

5.2. Saran

Saran yang dapat diberikan pada penulis untuk pengembangan dan perbaikan sistem lebih lanjut adalah:

1. Sistem ini menggunakan dua jenis algoritma yaitu Brute-Force dan A* . Untuk pengembangan selanjutnya sebaiknya menggunakan lebih dari dua algoritma untuk lebih mengoptimalkan pencarian jarak terpendek dan mengetahui perbandingan kinerja tiap algoritma.

2. Sistem yang dirancang diharapkan dapat langsung menunjukkan lokasi melalu google map atau gambar peta yang dapat langsung dilihat oleh user.


(52)

BAB 2

LANDASAN TEORI

2.1. Pengertian Algoritma

Algoritma merupakan urutan langkah langkah untuk menyelesaikan masalah yang disusun secara sistematis, algoritma dibuat dengan tanpa memperhatikan bentuk yang akan digunakan sebagai implementasinya, sehingga suatu algoritma dapat menjelaskan “bagaimana” cara melaksanakan fungsi dapat diekspresikan dengan suatu program atau suatu komponen fisik (Hartono, 2007).

Menurut Donald E.Knuth, terdapat ciri-ciri algoritma yaitu:

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak ambiguous (tidak

berarti dua).

3. Algoritma memiliki nol atau lebih masukkan (input). Masukkan ialah besaran yang diberikan pada algoritma sebelum algoritma mulai bekerja.

4.

2.2. Lintasan Terpendek (Shortest Path)

Masalah jalan terpendek adalah salah satu masalah yang paling mendasar dalam kombinasi optimasi. Bahkan dalam rangka memecahkan masalah yang paling kombinatorial, baik perhitungan jalur terpendek disebut untuk, atau konsep yang dibuat menggunakan yang pertama kali dikembangkan dalam kerangka jalur terpendek.

2.3. Teori Dasar Graf

(Giorgio, 1998).

Lintasan minimum yang dimaksud dapat dicari dengan menggunakan graf. Graf yang digunakan adalah graf yang berbobot, yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Dalam kasus ini, bobot yang dimaksud berupa jarak dan waktu kemacetan terjadi (Prama, 2010).

Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan


(53)

ini kota dinyatakan sebagai bulatan sedangkan jalan dinyatakan sebagai garis (Mediputra, 2010).

2.3.1 Jenis – Jenis Graf

Berdasarkan ada atau tidaknya gelang atau busur ganda pada suatu graph maka secara umum graph dapat dikelompokkan menjadi dua jenis:

1. Graph sederhana (simple graph) yaitu graph yang tidak mengandung gelang maupun sisi-ganda. Pada graph sederhana, sisi adalah pasangan tak-terurut (unordered pairs). Jadi menuliskan sisi (u, v) sama saja dengan (v, u). Kita dapat juga mendefinisikan graph sederhana G = (V, E) terdiri dari himpunan tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut yang berbeda disebut sisi (Munir, 2007).

2. Graph tak-sederhana (unsimple graph) yaitu graph yang mengandung sisi ganda atau gelang dinamakan graph sederhana (unsimple graph). Ada dua macam graph tak-sederhana, yaitu graph ganda dan graph semu. Sisi pada graph dapat mempunyai orientasi arah. Menurut orientasi arah pada sisinya, graph dibagi menjadi dua jenis, yaitu:

8. Graph tidak berarah (undirected graph) adalah graph yang sisinya tidak mempunyai orientasi arah, pada graph ini, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Sebagai contoh graph tidak berarah dapat dilihat pada gambar 2.1 (Munir, 2007)

Gambar 2.1 Contoh Tidak Berarah

2. Graph berarah (directed graph) adalah graph yang setiap sisinya diberikan orientasi arah, graph berarah sering dipakai untuk menggambarkan aliran proses, peta lintas suatu kota, dan sebagainya (Munir, 2007).


(54)

Gambar 2.2 Contoh Graf Berarah 2.4. Algoritma Brute-Force

Algoritma Brute-Force adalah algoritma yang memecahkan masalah dengan sangat sederhana, langsung, dan dengan cara yang jelas/lempang. Algoritma Brute-Force adalah algoritma yang lempang atau apa adanya. Biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma Brute-Force seringkali lebih mudah di implementasikan dari pada algoritma yang lebih canggih, dan karena kesederhanaannya. (Pramudita, 2011)

Algoritma Brute Force, disebut juga “naif” yaitu algoritma yang paling sederhana yang dapat digunakan dalam pola mencari. Hal ini tidak memerlukan preprocessing dari pola atau teks. Maksudnya adalah bahwa pola dan teks dibandingkan karakter demi karakter dalam kasus ketidakcocokan, pola digeser satu posisi ke kanan dan perbandingan diulang, sampai kecocokan ditemukan atau akhir teks sudah tercapai. (Abdeen,A,R.2011)

2.5. 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 vertex yang memandu A* mendapatkan solusi yang diinginkan.

(Adipranata & Handojo 2007)

Persamaan yang digunakan dalam algoritma A* dapat dibagi menjadi dua bagian. Satu dapat disebut sebagai jalur jarak terakhir dan setengah lainnya dapat disebut sebagai jarak jalan yang selanjutnya. g (x) adalah jarak dari simpul dari mulai simpul sementara h (x) adalah nilai heuristik dari node. Nilai heuristik dari node tidak lain adalah jarak Euclidean dari node awal ke node tujuan atau node akhir. (Burad R dkk,2016)


(55)

Heuristik merupakan penilai yang memberi harga pada tiap vertex yang memandu A* mendapatkan solusi yang diinginkan. Heuristik yang paling umum digunakan adalah Manhattan Distance. Fungsi heuristik ini hanya akan menjumlahkan selisih nilai x dan nilai y dari dua buah titik. Heuristik ini dinamakan Manhattan karena di kota Manhattan di Amerika, jarak dari dua lokasi umumnya dihitung dari blok-blok yang harus dilalui saja dan tentunya tidak bisa dilintasi secara diagonal. (Prayoga dkk, 2008).

Fungsi heuristik sangat berpengaruh terhadap kelakuan Algoritma A*:

1. Apabila h(x) selalu bernilai 0, maka hanya g(x) yang akan berperan, dan A* berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan jalur terpendek.

2. Apabila h(x) selalu lebih rendah atau sama dengan ongkos perpindahan dari titik n ke tujuan, maka A* dijamin akan selalu menemukan jalur terpendek. Semakin rendah nilai h(x), semakin banyak titik-titik yang diperiksa A*, membuatnya semakin lambat.

3. Apabila h(x) tepat sama dengan ongkos perpindahan dari n ke tujuan, maka A* hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun titik lainnya, membuatnya sangat cepat. Walaupun hal ini belum tentu bisa diaplikasikan ke semua kasus, ada beberapa kasus khusus yang dapat menggunakannya.

4. Apabila h(x) kadangkala lebih besar dari ongkos perpindahan dari n ke tujuan, maka A* tidak menjamin ditemukannya jalur terpendek, tapi prosesnya cepat.

5. Apabila h(x) secara relatif jauh lebih besar dari g(x), maka hanya h(x) yang memainkan peran, dan A* berubah menjadi BFS.

Fungsi h(x) adalah hyphotesis cost atau heuristic cost atau estimasi cost terkecil dari node x ke tujuan, yang disebut juga sebagai future path-cost. Fungsi g(x) adalah geographical cost atau cost sebenarnya dari node x ke node tujuan, yang disebut juga sebagai past path-cost. Berdasarkan algoritma standar pencarian jalur terpendek sebelumnya, jika ditambahkan dengan metode A*, algoritma tersebut mengalami perubahan, khususnya saat perluasan node atau Node Expansion, yaitu saat memindai jalur atau link. (Mutiara,N,dkk.2013).


(56)

2.5.2 Cara Kerja Algoritma A* Mencari Rute Terpendek

Algoritma A* menggunakan dua senarai : 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. Jika suksesor sudah pernah berada di open, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak tergantung pada nilai g-nya melalui parent lama atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil, maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan juga perbaruan (update) nilai g dan f pada suksesor tersebut. Untuk terpilih sebagai simpul terbaik (best node). Jika suksesor sudah pernah berada di closed, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka dilakukan perbaruan nilai g dan f pada suksesor tersebut serta semua “ anak cucunya” yang sudah pernah berda di open.

Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik (best node). Jika suksesor tidak berada di open maupun di closed, maka suksesor tersebut dimasukkan ke dalam open. Tambahkan suksesor tersebut sebagai suksesornya best node. Hitung biaya suksesor Tersebut dangan rumus f’ = g + h’. (Harianja,F. 2013).


(57)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Memiliki wajah cantik, merupakan idaman setiap wanita. Dan Klinik Kecantikan merupakan tempat dimana para wanita bisa memiliki wajah cantik dan kulit yang putih bersinar. Permasalahan biaya dan waktu sudah menjadi hal yang paling diperhitungkan pada saat melakukan perjalanan. Seperti perjalanan mencari tempat Klinik Kecantikan , dikarenakan tidak semua orang mengetahui wilayah tempat yang akan mereka datangi. Akan tetapi ada keadaan dimana Klinik Kecantikan yang dituju sedang tidak buka atau tutup. Maka dari itu sulit untuk menemukan rute tercepat untuk menuju tempat Klinik Kecantikan yang lain. Untuk mencari rute terpendek antar Klinik Kecantikan tersebut, penulis akan menggunakan algoritma Brute-Force dan algoritma A*.

Kota Medan adalah salah satu kota metropolitan dengan lalu lintas kendaraan yang padat dan ramai, sehingga menyebabkan user membutuhkan waktu yang lama dan biaya yang tidak sedikit ketika melakukan perjalanan. Misalnya perjalanan menuju ke Klinik Kecantikan. Pencarian rute terpendek ini dibuat untuk memudahkan perjalanan, serta menghemat biaya sehingga user dapat mendatangi Klinik Kecantikan yang satu dan tempat lainnya dengan tepat waktu. Tanpa harus mencari jalan yang lain untuk cepat sampai ketujuan, yang terkadang menyebabkan salah jalan sehingga perjalanan yang mereka tempuh menjadi lebih lama.

Algoritma Brute-Force adalah sebuah pendekatan yang sangat jelas untuk memecahkan suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang dilibatkan. Cara kerjanya yaitu Evaluasi setiap kemungkinan solusi “satu per satu” dan simpan solusi terbaik yang ditemukan sampai sejauh ini (the best solusi found so

far). (Wicaksana,P,A. 2013).

Sedangkan Algoritma A* menyelesaikan masalah yang menggunakan graf untuk perluasan ruang statusnya. Dengan menerapkan suatu heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan. Algoritma A* membangkitkan simpul yang paling mendekati solusi. Simpul ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi


(58)

terbaik. Oleh sebab itu, algoritma ini cocok digunakan dalam menghadapi permasalahan Perhitungan jalur terpendek untuk menuju Klinik Kecantikan terdekat.(Harianja,F. 2013).

Dari pemaparan di atas, penulis melakukan penelitian yang berjudul “Perbandingan Algoritma Brute-Force Dan Algoritma A* Untuk Mencari Rute Terpendek Antar Klinik Kecantikan di Kota Medan”.

1.2 Rumusan Masalah

Rumusan masalah yang akan penulis teliti berdasarkan identifikasi masalah diatas adalah Bagaimana menentukan rute terpendek yang dapat diselesaikan dengan perbandingan algoritma Brute-Force dan algoritma A*,sehingga dapat mengetahui cara kerja kedua algoritma tersebut.

1.3 Ruang Lingkup Masalah

Ruang Lingkup masalah yang diangkat adalah sebagai berikut: 1. Graf yang digunakan hanya graf statis saja.

2. Bobot yang digunakan adalah jarak. 3. Memperhitungkan dua arah.

4. Titik tujuan yang akan dikunjungi sebanyak 10 titik yaitu pada Klinik Kecantikan di Medan.

5. Tidak memperhitungka n performansi algoritma. 6. Bahasa pemrograman yang digunakan adalah C#. 7.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menghasilkan rute terpendek dari jalur awal menuju jalur Klinik Kecantikan Kota Medan. Dengan menerapkan algoritma Brute-Force dan algoritma A*, penelitian ini dapat membantu mencari rute terpendek agar lebih efektif dan efisien dengan tujuan untuk menghemat waktu dan menghemat biaya.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dapat dihasilkan dari penelitian ini adalah untuk membantu user mengetahui perbandingan cara kerja algoritma Brute-Force dan algoritma A* dalam


(59)

pemecahan kasus jalur terpendek. Dan Saya menjadi lebih memahami algoritma mana yang lebih efektif untuk digunakan dalam teknik pencarian rute terpendek (shortest path).

1.6 Metode Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut: 1. Studi Literatur

Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian ini.

2. Pengumpulan dan Analisis Data

Pada tahap ini dilakukan pengumpulan dan analisa data yang berhubungan dengan penelitian ini seperti fungsi algoritma Brute-Force dan A*, serta data jarak klinik. 3. Perancangan Sistem

Pada tahap ini dilakukan perancangan user interface, Unified Modeling Language (UML), dan struktur program sistem pengamanan teks.

4. Implementasi Sistem

Sistem diimplementasikan dengan menggunakan Algoritma Brute-Force dan A*.

5. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan.

6. Dokumentasi Sistem

Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).


(60)

1.7 Sistematika Penulisan

Setelah uraian di bab satu ini, penyajian selanjutnya disampaikan dengan sistematika berikut :

BAB 1: PENDAHULUAN

Bab ini berisi mengenai latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan skripsi.

BAB 2: LANDASAN TEORI

Bab ini berisi mengenai teori-teori yang berkaitan dengan enkripsi, dekripsi dan pengamanan menggunakan algoritma Brute-Force dan A*.

BAB 3: ANALISIS DAN PERANCANGAN SISTEM

Bab ini terdiri dari tahap analisis sitem dan desain perancangan dari program yang akan dibuat, dalam hal ini termasuk juga algoritma dan program tersebut.

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi ulasan dan pengujian terhadap program yang telah diimplementasikan dengan menggunakan bahasa C#.

BAB 5: KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil penelitian yang telah selesai dilakukan,juga saran atau rekomendasi guna penelitian lebih lanjut.


(61)

ABSTRAK

Antusiasme masyarakat kota Medan pada Klinik Kecantikan cukup tinggi. Klinik Kecantikan melayani sesuai keluhan dan perawaatan konsumen, termasuk konsultasi masalah kulit, pengobatan dan lain sebagainya. Banyak pilihan dapat diambil untuk sampai ke lokasi Klinik Kecantikan terdekat yang diinginkan, akan tetapi ada keadaan dimana Klinik Kecantikan yang dituju sedang tidak buka atau tutup. Sehingga dibutuhkan rute terpendek untuk menuju Klinik Kecantikan yang lain. Data yang berupa jarak dan rute untuk menuju Klinik Kecantikan yang diinginkan diambil dari Google maps, dengan jumlah simpul (vertex) sebanyak 10 untuk kemudian diterapkan kedalam sebuah graf. Untuk memecahkan masalah graf maka digunakan algoritma, dalam hal ini algoritma A*, dan algoritma Brute Force digunakan untuk memecahkan masalah pencarian rute terpendek, Berdasarkan Hasil penelitian Klinik Kecantikan terdekat yang dicari dengan menggunakan algoritma A* dan algoritma Brute Force menghasilkan total jarak yang bernilai sama dan running time yang berbeda di mana algoritma A* memiliki nilai running time yang lebih cepat dibandingkan algoritma Brute Force. Namun Brute-Force menghasilkan jarak optimum sementara A* sub optimum


(62)

COMPARISON ALGORITHM BRUTE-FORCE AND A* ALGORITHM TO FIND THE SHORTEST ROUTE BETWEEN BEAUTY CLINIC IN MEDAN CITY

ABSTRACT

Public enthusiasm for beauty clinic is particularly high in Medan city. Beauty Clinic serves the appropriate complaints and treatment for consumers , including consultation skin problems, treatment, etc Many options can be taken to get to the location of the nearest desired Beauty Clinic,but there’s a condition when the Beauty Clinic on the go is not open or closed. The Data of distance and the route to the location Are desirable taken from Google maps, with the number of nodes about 10 and it will be implemented into a graph . To solving a graf problem it also need algorithms, in this case A* algorithm, and Brute Force algorithm are used to solve the searching shortest path problem, Based on the results the nearby Beauty Clinic that found using the A* algorithm and Brute Force algorithm produces the same total distance but with a different running times which is the A* algorithm is faster

than brute force algorithm. However Brute-Force produces the optimum distance while the

A* is optimum.


(63)

PERBANDINGAN ALGORITMA BRUTE-FORCE DAN ALGORITMA A* UNTUK MENCARI RUTE TERPENDEK ANTAR

KLINIK KECANTIKAN DI KOTA MEDAN

SKRIPSI

SYINDY WULANDARI

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2017

121401103


(64)

PERBANDINGAN ALGORITMA BRUTE-FORCE DANALGORITMA A*

UNTUK MENCARI RUTE TERPENDEK ANTAR KLINIK KECANTIKAN

DI KOTA MEDAN

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

SYINDY WULANDARI 121401103

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2017


(65)

PERSETUJUAN

Judul : PERBANDINGAN ALGORITMA BRUTE-FORCE DAN ALGORITMA A* UNTUK MENCARI RUTE TERPENDEK ANTAR KLINIK KECANTIKAN DI KOTA MEDAN

Kategori : SKRIPSI

Nama : SYINDY WULANDARI

Nomor Induk Mahasiswa : 121401103

Program Studi : SARJANA(S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di

Medan, Maret 2017 Komisi Pembimbing :

Dosen Pembimbing II Dosen Pembimbing I

M. Andri Budiman,S.T.,M.Comp.Sc.,M.E.M Prof. Dr. Muhammad Zarlis, M.Sc NIP. 197510082008011011 NIP. 195707011986011003

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(66)

PERNYATAAN

PERBANDINGAN ALGORITMA BRUTE-FORCE DAN ALGORITMA A* UNTUK MENCARI RUTE TERPENDEK ANTAR KLINIK

KECANTIKAN DI KOTA MEDAN

SKRIPSI

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

Medan, Maret 2017

Syindy Wulandari 121401103


(67)

PENGHARGAAN

Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar–besarnya kepada :

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Opim Salim Sitompul, M.Sc., selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Dr. Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak Prof.Dr. Muhammad Zarlis,M.Sc, selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran, masukan dan dukungan kepada penulis dalam pengerjaan skripsi ini.

6. Bapak M.Andri Budiman S.T, M.Comp.Sc,M.E.M, selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran, masukan dan dukungan kepada penulis dalam pengerjaan skripsi ini.

7. Bapak Dr.Poltak Sihombing,M.Kom, selaku Dosen Pembanding I yang memberikan kritik dan saran untuk penyempurnaan skripsi ini.

8. Ibu Sri Melvani Hardi,S.Kom.,M.Kom, selaku Dosen Pembanding II yang memberikan kritik dan saran untuk penyempurnaan skripsi ini.


(68)

10. Teristimewa Ayahanda Suyono dan Ibunda Sri Rahayu yang tidak henti-hentinya memberikan doa, dukungan dan motivasi yang selalu menjadi semangat penulis untuk meyelesaikan skripsi ini.

11. Abang tersayang Syindu Pratama dan Adik tercinta Muhammad Fauzi yang terus memotivasi penulis untuk menyelesaikan skripsi ini.

12. Teman-teman yang luar biasa Subur Hadi Santoso, Septy Putri Utami, Desi Purnama Sari Sebayang, Dhika Handayani , M.Khairun Abdillah, Bagus Rangga, M.Eriyadi, Dody Prana yang telah memberikan doa, dukungan dan membantu penulis dalam menyelesaikan skripsi ini.

13. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.

Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan berkat yang melimpah dari Allah SWT

Medan, Maret 2017 Penulis ,


(69)

ABSTRAK

Antusiasme masyarakat kota Medan pada Klinik Kecantikan cukup tinggi. Klinik Kecantikan melayani sesuai keluhan dan perawaatan konsumen, termasuk konsultasi masalah kulit, pengobatan dan lain sebagainya. Banyak pilihan dapat diambil untuk sampai ke lokasi Klinik Kecantikan terdekat yang diinginkan, akan tetapi ada keadaan dimana Klinik Kecantikan yang dituju sedang tidak buka atau tutup. Sehingga dibutuhkan rute terpendek untuk menuju Klinik Kecantikan yang lain. Data yang berupa jarak dan rute untuk menuju Klinik Kecantikan yang diinginkan diambil dari Google maps, dengan jumlah simpul (vertex) sebanyak 10 untuk kemudian diterapkan kedalam sebuah graf. Untuk memecahkan masalah graf maka digunakan algoritma, dalam hal ini algoritma A*, dan algoritma Brute Force digunakan untuk memecahkan masalah pencarian rute terpendek, Berdasarkan Hasil penelitian Klinik Kecantikan terdekat yang dicari dengan menggunakan algoritma A* dan algoritma Brute Force menghasilkan total jarak yang bernilai sama dan running time yang berbeda di mana algoritma A* memiliki nilai running time yang lebih cepat dibandingkan algoritma Brute Force. Namun Brute-Force menghasilkan jarak optimum sementara A* sub optimum


(70)

COMPARISON ALGORITHM BRUTE-FORCE AND A* ALGORITHM TO FIND THE SHORTEST ROUTE BETWEEN BEAUTY CLINIC IN MEDAN CITY

ABSTRACT

Public enthusiasm for beauty clinic is particularly high in Medan city. Beauty Clinic serves the appropriate complaints and treatment for consumers , including consultation skin problems, treatment, etc Many options can be taken to get to the location of the nearest desired Beauty Clinic,but there’s a condition when the Beauty Clinic on the go is not open or closed. The Data of distance and the route to the location Are desirable taken from Google maps, with the number of nodes about 10 and it will be implemented into a graph . To solving a graf problem it also need algorithms, in this case A* algorithm, and Brute Force algorithm are used to solve the searching shortest path problem, Based on the results the nearby Beauty Clinic that found using the A* algorithm and Brute Force algorithm produces the same total distance but with a different running times which is the A* algorithm is faster

than brute force algorithm. However Brute-Force produces the optimum distance while the

A* is optimum.


(71)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Ruang Lingkup Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori

2.1 Pengertian Algoritma 6

2.2 Lintasan Terpendek (Shortest Path) 6

2.3 Teori Dasar Graf 7

2.3.1 Jenis-Jenis Graf 7

2.4 Algoritma Brute-Force 8

2.5 Algoritma A* 8

2.5.1 Fungsi Heuristik A* 9

2.5.2 Cara Kerja Algoritma A* 10


(72)

3.1 Analisis Sistem 11

3.1.1 Analisis Masalah 11

3.1.2 Analisis Persyaratan 18

3.1.2.1 Persyaratan Fungsional 18

3.1.2.2 Persyaratan Non-Fungsional 18

3.1.3 Analisis Proses 19

3.1.4 Flowchart 19

3.1.4.1 Flowchart Sistem 20

3.2 Perancangan Sistem 21

3.2.1 Use Case Diagram 21

3.2.2 Activity Diagram 22

3.2.3 Sequence Diagram 23

3.3 Perancangan Antarmuka (Interface) 23

3.3.1 Halaman Menu Home 24

3.3.2 Halaman Menu Pengujian 25

3.3.3 Halaman Menu Pengolahan Data 26

3.3.3.1 Tabel Node 27

3.3.3.2 Tabel Koneksi 28

3.3.4 Halaman Menu Tentang Penulis 30

3.3.5 Halaman Menu Bantuan 31

Bab 4 Implementasi dan Pengujian

4.1 Implementasi 32

4.1.1 Halaman Awal 32

4.1.2 Halaman Pengujian 33

4.1.3 Halaman Pengolahan Data 33

4.1.3.1 Tabel Node 33

4.1.3.2 Tabel Koneksi 34


(73)

4.2 Pengujian 36

4.2.1 Data Node 36

4.2.2 Pengujian Proses Algoritma A* 36 4.2.3 Pengujian Proses Algoritma Brute-Force 39

4.3 Real Running-Time 45

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 48

5.2. Saran 49

Daftar Pustaka 50


(74)

DAFTAR TABEL

Halaman

Tabel 3.1 Nama-Nama Klinik Kecantikan yang Menjadi Vertex 12 Tabel 3.2 Data Simpul (Vertex) Pada Graf Klinik Kecantikan di Kota Medan 16 Tabel 3.3 Keterangan Gambar Rancangan Antarmuka Halaman Home 24 Tabel 3.4 Keterangan Gambar Rancangan Menu Pengujian 26 Tabel 3.5 Keterangan Gambar Rancangan Antarmuka Tabel Node 28 Tabel 3.6 Keterangan Gambar Rancangan Antarmuka Tabel Vertex 29 Tabel 3.7 Keterangan Gambar Rancangan Antarmuka Tentang 30 Tabel 3.8 Keterangan Gambar Rancangan Antarmuka Bantuan 31

Tabel 4.1 Data Keterangan Klinik Sebagai Node 36

Tabel 4.2 Hasil Pengujian Klinik Kecantikan Dengan Algoritma A* 39 Tabel 4.3 Hasil Pengujian Algoritm Brute Force 41 Tabel 4.4 Hasil Dari Kedua Pengujian Algoritma 47


(75)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh Graf Tidak Berarah 7

Gambar 2.2 Contoh Graf Berarah 8

Gambar 3.1 Peta Atau Rute Klinik Kecantikan Dikota Medan 15

Gambar 3.2 Diagram Ishikawa 17

Gambar 3.3 Flowchart Sistem 20

Gambar 3.4 Use Case Diagram 21

Gambar 3.5 Activity Diagram Cara Kerja Sistem 22

Gambar 3.6 Sequence Diagram Sistem 23

Gambar 3.7 Rancangan Antarmuka Halaman Menu Home 24

Gambar 3.8 Rancangan Antarmuka Menu Pengujian 25

Gambar 3.9 Rancangan Antarmuka Tabel Node 27

Gambar 3.10 Rancangan Antarmuka Tabel Vertex 29

Gambar 3.11 Rancangan Antarmuka Tentang 30

Gambar 3.12 Rancangan Antarmuka Bantuan 31

Gambar 4.1 Implementasi Halaman Awal 32

Gambar 4.2 Implementasi Pengujian 33

Gambar 4.3 Implementasi Halaman Tabel Node 34

Gambar 4.4 Implementasi Halaman Tabel Koneksi 34

Gambar 4.5 Implementasi Halaman Tentang 35

Gambar 4.6 Implementasi Halaman Bantuan 35

Gambar 4.7 Tampilan Pengujian Klinik Kecantikan algoritma A* 36 Gambar 4.8 Tampilan Pengujian Klinik Kecantikan Brute-Force 40 Gambar 4.9 Hasil Pengujian Pertama Pencarian Klinik Kecantikan 45 Gambar 4.10 Hasil Pengujian Kedua Pencarian Klinik Kecantikan 46


(76)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Listing Program A-1


(1)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

Bab 1 Pendahuluan

1.1Latar Belakang 1

1.2Rumusan Masalah 2

1.3Ruang Lingkup Masalah 2

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Metode Penelitian 3

1.7Sistematika Penulisan 4

Bab 2 Landasan Teori

2.1 Pengertian Algoritma 6

2.2 Lintasan Terpendek (Shortest Path) 6

2.3 Teori Dasar Graf 7

2.3.1 Jenis-Jenis Graf 7

2.4 Algoritma Brute-Force 8

2.5 Algoritma A* 8

2.5.1 Fungsi Heuristik A* 9

2.5.2 Cara Kerja Algoritma A* 10


(2)

3.1 Analisis Sistem 11

3.1.1 Analisis Masalah 11

3.1.2 Analisis Persyaratan 18

3.1.2.1 Persyaratan Fungsional 18

3.1.2.2 Persyaratan Non-Fungsional 18

3.1.3 Analisis Proses 19

3.1.4 Flowchart 19

3.1.4.1 Flowchart Sistem 20

3.2 Perancangan Sistem 21

3.2.1 Use Case Diagram 21

3.2.2 Activity Diagram 22

3.2.3 Sequence Diagram 23

3.3 Perancangan Antarmuka (Interface) 23

3.3.1 Halaman Menu Home 24

3.3.2 Halaman Menu Pengujian 25

3.3.3 Halaman Menu Pengolahan Data 26

3.3.3.1 Tabel Node 27

3.3.3.2 Tabel Koneksi 28

3.3.4 Halaman Menu Tentang Penulis 30

3.3.5 Halaman Menu Bantuan 31

Bab 4 Implementasi dan Pengujian

4.1Implementasi 32

4.1.1 Halaman Awal 32

4.1.2 Halaman Pengujian 33

4.1.3 Halaman Pengolahan Data 33

4.1.3.1 Tabel Node 33


(3)

4.2 Pengujian 36

4.2.1 Data Node 36

4.2.2 Pengujian Proses Algoritma A* 36

4.2.3 Pengujian Proses Algoritma Brute-Force 39

4.3 Real Running-Time 45

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 48

5.2. Saran 49

Daftar Pustaka 50


(4)

DAFTAR TABEL

Halaman

Tabel 3.1 Nama-Nama Klinik Kecantikan yang Menjadi Vertex 12

Tabel 3.2 Data Simpul (Vertex) Pada Graf Klinik Kecantikan di Kota Medan 16 Tabel 3.3 Keterangan Gambar Rancangan Antarmuka Halaman Home 24

Tabel 3.4 Keterangan Gambar Rancangan Menu Pengujian 26

Tabel 3.5 Keterangan Gambar Rancangan Antarmuka Tabel Node 28 Tabel 3.6 Keterangan Gambar Rancangan Antarmuka Tabel Vertex 29

Tabel 3.7 Keterangan Gambar Rancangan Antarmuka Tentang 30

Tabel 3.8 Keterangan Gambar Rancangan Antarmuka Bantuan 31

Tabel 4.1 Data Keterangan Klinik Sebagai Node 36

Tabel 4.2 Hasil Pengujian Klinik Kecantikan Dengan Algoritma A* 39

Tabel 4.3 Hasil Pengujian Algoritm Brute Force 41


(5)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh Graf Tidak Berarah 7

Gambar 2.2 Contoh Graf Berarah 8

Gambar 3.1 Peta Atau Rute Klinik Kecantikan Dikota Medan 15

Gambar 3.2 Diagram Ishikawa 17

Gambar 3.3 Flowchart Sistem 20

Gambar 3.4 Use Case Diagram 21

Gambar 3.5 Activity Diagram Cara Kerja Sistem 22

Gambar 3.6 Sequence Diagram Sistem 23

Gambar 3.7 Rancangan Antarmuka Halaman Menu Home 24

Gambar 3.8 Rancangan Antarmuka Menu Pengujian 25

Gambar 3.9 Rancangan Antarmuka Tabel Node 27

Gambar 3.10 Rancangan Antarmuka Tabel Vertex 29

Gambar 3.11 Rancangan Antarmuka Tentang 30

Gambar 3.12 Rancangan Antarmuka Bantuan 31

Gambar 4.1 Implementasi Halaman Awal 32

Gambar 4.2 Implementasi Pengujian 33

Gambar 4.3 Implementasi Halaman Tabel Node 34

Gambar 4.4 Implementasi Halaman Tabel Koneksi 34

Gambar 4.5 Implementasi Halaman Tentang 35

Gambar 4.6 Implementasi Halaman Bantuan 35

Gambar 4.7 Tampilan Pengujian Klinik Kecantikan algoritma A* 36 Gambar 4.8 Tampilan Pengujian Klinik Kecantikan Brute-Force 40 Gambar 4.9 Hasil Pengujian Pertama Pencarian Klinik Kecantikan 45 Gambar 4.10 Hasil Pengujian Kedua Pencarian Klinik Kecantikan 46


(6)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Listing Program A-1