Anda di halaman 1dari 85

PERBANDINGAN ALGORITMA BREADTH FIRST

SEARCH DAN DIJKSTRA UNTUK PENENTUAN


RUTE TERPENDEK PENGIRIMAN BARANG
UNILEVER (Studi Kasus Kabupaten Pamekasan)

TUGAS AKHIR

Disusun Oleh :

KHOLILUR RAHMAN
2009.02.01.0.0064

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS ISLAM MADURA
2013
i

LEMBAR PERSETUJUAN
PERBANDINGAN ALGORITMA BREADTH FIRST SEARCH
DAN DIJKSTRA UNTUK PENENTUAN RUTE TERPENDEK
PENGIRIMAN BARANG UNILEVER
(Studi Kasus Kabupaten Pamekasan)

TUGAS AKHIR
Diajukan Guna Memenuhi Salah Satu Persyaratan
Untuk Memperoleh Gelar Sarjana Komputer (S.Kom)
Pada
Program Studi Teknik Informatika
Universitas Islam Madura

Pamekasan, 28 Juni 2013

Mengetahui/Menyetujui,
Dosen Pembimbing I

Dosen Pembimbing II

Dr. Hozairi, SST., MT


NP. 130 488 504

Akhmad Arif Kurdianto, SST., MT


NP. 130 488 557

Dekan Fakultas Teknik

Muhsi, ST.,MT
NP.130 488 401

ii

LEMBAR PENGESAHAN
PERBANDINGAN ALGORITMA BREADTH FIRST SEARCH
DAN DIJKSTRA UNTUK PENENTUAN RUTE TERPENDEK
PENGIRIMAN BARANG UNILEVER
(Studi Kasus Kabupaten Pamekasan)
Nama : Kholilur Rahman
NPM : 2009.02.01.0.0064
Dipertahankan Di Depan Tim Penguji Tugas Akhir
Program Studi Teknik Informatika
Universitas Islam Madura

Tanggal : 07 Juli 2013

1.

Prof. Dr. M. Isa Irawan, MT


NIP. 1963 1225 1989 031001

................................................

2.

Muhsi, ST.,MT
NP. 130 488 401

................................................

3.

Dr. Hozairi, SST.,MT


NP. 130 488 504

................................................

Mengetahui,
Dekan Fakultas Teknik

Muhsi, ST.,MT
NP. 130 488 401

iii

MOTTO

pa yang kita kerjakan saat ini adalah untuk kita sendiri


dimasa yang akan datang bukan untuk orang lain.

Janganlah menjadi orang merugi karena waktu dia


sekarang sama dengan waktu dia kemarin.

iv

HALAMAN PERSEMBAHAN

ugas akhir ini saya persembahkan kepada kedua orang


tua ku yang senantiasa selalu mendoakan ku dalam
setiap kesulitan yang aku hadapi, memberiku semangat
untuk menjadi orang yang lebih baik, ibu kasih mu takkan pernah
terbalaskan sampai kapan pun .
_ Thaks Mom _

Mau bilang terima kasih sama istri gak punya, boro-boro istri pacar
aja gak punya. Ya sudah aku tambahin aja bilang terima kasih buat
temen-temen ku yang sudah banyak membantu dan mensuport aku
selama ini.

KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah
memberikan rahmat-Nya sehingga penulis berkesempatan untuk dapat
menyelesaikan laporan Tugas Akhir ini dengan judul
PERBANDINGAN ALGORITMA BREADTH FIRST SEARCH
DAN DIJKSTRA UNTUK PENENTUAN RUTE TERPENDEK
PENGIRIMAN BARANG UNILEVER. Sebagai syarat untuk
menyelesaikan program Sarjana S-1 Teknik Informatika Fakultas
Tekink Universitas Islam Madura.
Pada kesempatan ini penulis ingin mengucapkan terima kasih yang
sebesar-besarnya kepada :
1.

2.
3.

4.

5.
6.

Kami ucapkan rasa syukur kepada Allah SWT yang telah


melimpahkan rahmat dan hidayat-nya kepada kita sekalian sehingga
kami dapat melaksanakan kewajiban dan tugas-tugas kita dalam
keadaan sehat wal-afiat.
Bapak Muhsi,ST,.M.T. Selaku Dekan Fakultas Teknik Universitas
Islam Madura.
Bapak Hozairi, SST,.M.T. dan Bapak Akhmad Arif Kurdianto, SST
selaku dosen Pembimbing 1 penulis yang telah banyak memberikan
bimbingan dalam penyusunan laporan Tugas Akhir ini.
Bapak Akhmad Arif Kurdianto, SST. Selaku dosen pembimbing II
penulis yang telah banyak memberikan bimbingan
dalam
penyusunan laporan tugas akhir ini.
Dosen-dosen Staf Pengajar pada Fakultas Teknik Universitas Islam
Madura Pamekasan.
Tak lupa penulis juga mengucapkan terima kasih kepada kedua
orang tua yang selalu memberi dukungan baik secara moral, fikiran
maupun materi serta teman-teman yang telah banyak meberikan
bimbingan, doa dan dorongan semangat kepada penulis sehingga
terselesaikannya laporan Tugas Akhir ini.

vi

Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari
kesempurnaan. Oleh karena itu, penulis berharap kepada semua pihak
untuk dapat memberikan kritik dan saran yang bersifat membangun
guna perbaikan di masa yang akan datang.
Demikianlah laporan tugas akhir ini penulis buat, semoga
bermanfaat bagi semua pihak yang membaca dan menggunakannya.
Pamekasan, 27 Juni 2013

Kholilur Rahman
2009.02.01.0.0064

vii

ABSTRAK
PERBANDINGAN ALGORITMA BREADTH FIRST SEARCH
DAN DIJKSTRA UNTUK PENENTUAN RUTE TERPENDEK
PENGIRIMAN BARANG UNILEVER
(Studi Kasus Kabupaten Pamekasan)
Nama
NPM

: Kholilur Rahman
: 2009.02.01.0.0064

Pembimbing I
Pembimbing II

: Dr. Hozairi, SST., MT


: Akhmad Arif Kurdianto, SST, MT

Algoritma Breadth First Search dan Dijkstra merupakan algoritma


untuk menentukan rute terpedek dari suatu verteks ke verteks yang
lainnya pada suatu graph yang berbobot dimana jarak antar verteks
adalah bobot atau nilai dari tiap edge atau arc pada graph tersebut.
Algoritma Breadth First Search dan Dijkstra merupakan algoritma yang
setiap langkahnya mengambil edge atau arc yang berbobot minimum
yang menghubungkan sebuah verteks yang sudah terpilih dengan
verteks lain yang belum terpilih, dan implementasinya dengan
menggunakan bahasa pemrograman Web PhpMySql dengan studi kasus
pengiriman barang dari Unilever.
Perbandingan dari algoritma Breadth First Search dan Dijkstra
dilakukan dengan membandingkan hasil akumulasi jarak dan rute yang
dilewati.
Dari percobaan yang telah dilakukan jarak denga menggunakan
Breadth First Search lebih kecil dengan rute yang dilewati lebih sedikit
berbeda dengan Dijkstra yang menghasilkan jarak lebih besar dengan
rute yang lebih banyak.
Kata Kunci : Breadth First Search, Dijkstra, graph, edge, arc,
Unilever.

viii

DAFTAR ISI
Halaman
Halaman Sampul ................................................................
Lembar Persetujuan ..........................................................
Lembar Pengesahan ...........................................................
Motto ...................................................................................
Halaman Persembahan ......................................................
Kata Pengantar ..................................................................
Abstrak ...............................................................................
Daftar Isi .............................................................................
Daftar Tabel .......................................................................
Daftar Gambar ...................................................................
Daftar Lampiran ................................................................

i
ii
iii
iv
v
vi
viii
ix
xii
xiii
xv

BAB I PENDAHULUAN ...................................................


1.1 Latar Belakang ....................................................
1.2 Rumusan Masalah ...............................................
1.3 Batasan Masalah .................................................
1.4 Tujuan Dan Manfaat ...........................................
1.4.1 Tujuan ........................................................
1.4.2 Manfaat ......................................................
1.5 Metodelogi ..........................................................
1.6 Sistematika Penulisan .........................................

1
1
2
2
3
3
3
3
4

BAB II LANDASAN TEORI ............................................


2.1 Kajian Pustaka ....................................................
2.2 Teori Dasar Graph ..............................................
2.2.1 Graph Berarah ............................................
2.2.2 Graph Tidak Berarah ..................................
2.2.3 Graph Berbobot ..........................................
2.3 Algoritma Breadth First Search (BFS) ................
2.3.1 Implementasi Algoritma BFS .....................
2.4 Algoritma Dijkstra ..............................................
2.4.1 Implementasi Algorima Dijkstra ................
2.5 Travelling Salesman Problem .............................
2.6 Perograman Web .................................................

5
5
11
11
12
12
13
15
16
17
19
19

ix

2.7 Basis Data (Database) ..........................................


2.8 Software Pendukung ............................................
2.9 Unilever ...............................................................

20
20
21

BAB III PERANCANGAN SISTEM ................................


3.1 Perancangan Proses .............................................
3.1.1 Diagram Konteks ........................................
3.1.2 Data Flow Diagram Level 1 ........................
3.2 Perancangan Database .........................................
3.3 Flowchart .............................................................
3.3.1 Flowchart Algoritma BFS ...........................
3.3.2 Flowchart Algoritma Dijkstra .....................
3.3.3 Flowchart Login Admin ..............................
3.3.4 Flowchart Menu Admin ..............................
3.3.5 Flowchart Menu User .................................
3.4 Desain Antar Muka ..............................................
3.4.1 Desain Halaman User .................................
3.4.2 Desain Halaman Admin ..............................
3.4.2.1 Desain Form Input Titik ..................
3.4.2.2 Desain Form Daftar Titik ................
3.4.2.3 Desain Form Tambah Rute ..............
3.4.2.4 Desain Form Daftar Rute .................

23
23
23
25
27
29
30
31
33
34
35
36
37
38
39
40
41
42

BAB IV HASIL DAN PEMBAHASAN ............................


4.1 Implementasi .......................................................
4.2 Pembahasan Program ..........................................
4.2.1 Halaman Utama ...........................................
4.2.2 Form Login .................................................
4.2.3 Halaman Admin ..........................................
4.2.3.1 Form Input Titik ..............................
4.2.3.2 Form Daftar Titik ............................
4.2.3.3 Form Pengolahan Rute ....................
4.2.3.4 Form Daftar Rute .............................
4.2.4 Halaman Proses Pencarian Rute .................
4.2.4.1 Proses Pencarian BFS ......................
4.2.4.2 Proses Pencarian Dijkstra ................

43
43
43
43
44
46
46
47
47
48
48
50
55

BAB V PENUTUP ..............................................................


5.1 Kesimpulan .........................................................
5.2 Saran ...................................................................

61
61
62

DAFTAR PUSTAKA ..........................................................


LAMPIRAN-LAMPIRAN ...................................................

63
64

xi

DAFTAR TABEL
Halaman
Tabel 2.1 Perbandingan Studi Pustaka ..................................
Tabel 3.1 Deskripsi Proses Login .........................................
Tabel 3.2 Deskripsi Proses Input Titik .................................
Tabel 3.3 Deskripsi Proses Hapus Data Titik .......................
Tabel 3.4 Deskripsi Proses Edit Data Titik ...........................
Tabel 3.5 Deskripsi Proses Tambah Rute .............................
Tabel 3.6 Deskripsi Proses Hapus Rute ................................
Tabel 3.7 Deskripsi Proses Pencarian BFS ...........................
Tabel 3.8 Deskripsi Proses Pencarian Dengan Dijkstra ........
Tabel 3.9 Rancangan Tabel User ..........................................
Tabel 3.10 Rancangan Tabel Titik ........................................
Tabel 3.11 Rancangan Tabel Rute ........................................
Tabel 3.12 Rancangan Tabel Cek .........................................
Tabel 4.1 Keterangan Titik-titik Pada Graph ........................
Tabel 4.2 Tabel Keterangan Pengecekan BFS .......................
Tabel 4.3 Tabel Keterangan Pengecekan Dijkstra ................
Tabel 4.4 Tabel Perbandingan Hasil Jarak Kedua Algoritma

xii

7
25
26
26
26
26
26
27
27
27
28
28
29
50
52
56
60

DAFTAR GAMBAR
Halaman
Gambar 2.1 Graph Berarah ..................................................
Gambar 2.2 Graph Tak Berarah ...........................................
Gambar 2.3 Graph Berbobot ................................................
Gambar 2.4 Ilustrasi Kunjungan Simpul BFS ......................
Gambar 2.5 Prosedur BFS ....................................................
Gambar 2.6 Pengimplementasian BFS Dalam Graph ..........
Gambar 2.7 Pengimplentasian Dijkstra Dalam Graph .........
Gambar 3.1 Diagram Konteks ..............................................
Gambar 3.2 DFD Level 1 .....................................................
Gambar 3.3 Flowchart BFS ..................................................
Gambar 3.4 Flowchart Dijkstra ............................................
Gambar 3.5 Flowchart Login ...............................................
Gambar 3.6 Flowchart Menu Admin ...................................
Gambar 3.7 Flowchart Menu User .......................................
Gambar 3.8 Desain Halaman User .......................................
Gambar 3.9 Desain Halaman Admin ...................................
Gambar 3.10 Desain Form Input Titik .................................
Gambar 3.11 Desain Form Daftar Titik ...............................
Gambar 3.12 Desain Form Tambah Rute .............................
Gambar 3.13 Desain Form Daftar Rute ...............................
Gambar 4.1 Halaman Utama ................................................
Gambar 4.2 Form Login .......................................................
Gambar 4.3 Halaman Admin ...............................................
Gambar 4.4 Form Input Titik ...............................................
Gambar 4.5 Form Daftar Titik .............................................
Gambar 4.6 Form Pengolahan Rute .....................................
Gambar 4.7 Form Daftar Rute .............................................
Gambar 4.8 Simulasi Graph Rute Pengiriman .....................
Gambar 4.9 Form Proses Pencarian BFS .............................
Gambar 4.10 Form Hasil Pencarian BFS .............................
Gambar 4.11 Proses Iterasi Pengecekan BFS ......................
Gambar 4.12 Iterasi Penentuan Rute BFS ............................
xiii

11
12
13
13
14
15
18
24
25
30
31
33
34
35
37
38
39
40
41
42
44
44
46
46
47
47
48
49
50
51
52
53

Gambar 4.13 Ilustrasi Proses BFS Pada Graph .....................


Gambar 4.14 Form Proses Pencarian Dijkstra ......................
Gambar 4.15 Form Output Proses Dijkstra ...........................
Gambar 4.16 Iterasi Pengecekan Dijkstra .............................
Gambar 4.17 Iterasi Penentuan Rute Dijkstra .......................
Gambar 4.18 Ilustrasi Proses Dijkstra Pada Graph ...............
Gambar 4.19 Grafik Perbandingan Jarak ..............................

xiv

54
55
55
56
57
59
60

DAFTAR LAMPIRAN
Halaman
Listing Program ...................................................................

xv

64

BAB I
PENDAHULUAN
1.1 Latar Belakang
Unilever merupakan pihak yang bertanggung jawab menyalurkan
produk-produk atau barang ke distributor-distributor, sering
mengalami
keterlambatan
dalam
melakukan
pengiriman.
Keterlambatan ini dapat menyebabkan distributor juga tidak dapat
melayani permintaan konsumen secara maksimal. Penyebab dari
keterlambatan ini adalah karena tidak adanya rute pengiriman barang
yang jelas dan terstruktur, sedangkan selama ini ditentukan
berdasarkan pengalaman dari orang yang mengirim barang
(dropper), padahal tidak semua dropper memiliki kemampuan yang
sama dalam menentukan rute pengiriman, apalagi kebanyakan para
pengirim barang berasal dari luar kota Pamekasan bahkan dari luar
pulau yang tidak paham dengan rute jalan di daerah Pamekasan
sehingga tidak jarang proses pengiriman barang menjadi terlambat
atau ditunda keesokan harinya.
Banyak jalan atau rute menuju distribotor membuat layanan
unilever yang belum mengetahui tata jalan di Kota Pamekasan akan
bingung dan kesulitan menentukan rute menuju distributor yang
optimal (terpendek) untuk mencapai ke semua tujuan sesuai jadwal.
Oleh karena itu, dibutuhkan solusi yang dapat mengatasi penentuan
rute mana yang tepat untuk mencapai tempat-tempat tujuan yang
telah dijadwalkan serta mampu mencapai tujuan tersebut dengan rute
yang terpendek.
Penulis membuat sebuah sistem aplikasi yang dapat menentukan
jarak optimal yang nantinya dapat ditempuh oleh para dropper atau
pengirim barang dengan mengimplentasikan sebuah algoritma
metode kedalam sistem tersebut yang berbasis Web PhpMySql.
Algoritma Breadth First Search dan Dijkstra merupakan salah
satu algoritma yang digunakan untuk menyelesaikan masalah dalam
penentuan rute terpendek. Untuk menyelesaikan masalah penentuan
rute terpendek tersebut kita dapat mempresentasikan masalah yang
ada menjadi struktur graph, dimana titik menyatakan kota dan sisi
menyatakan jalur yang menghubungkan dua buah kota. Setiap sisi
1

yang ada diberikan bobot yang menyatakan jarak antara kedua kota
tersebut.
Antara kedua algoritma yaitu Breadth First Search dan Dijkstra
mempunyai ide yang hampir mirip maka dari itu nantinya akan di
lakukan perbandingan dengan alasan mencari algoritma yang paling
tepat dalam memecahkan masalah penentuan rute terpendek dalam
pengiriman barang, yang termasuk pada maslah Travelling Salesman
Problems.
Sistem yang dibangun berupa sebuah sistem yang nantinya dapat
memberikan suatu solusi bagi para dropper atau pengirim barang
dengan memberikan hasil perhitungan jarak yang nantinya akan
menjadi pengambilan keputusan bagi dropper jalan mana yang lebih
optimal untuk dilewati.
1.2 Rumusan Masalah
Perumusan masalah dalam tugas akhir ini adalah sebagai berikut :
1. Bagaimana membuat sistem penentuan rute terpendek dengan
implementasi algoritma Breadth First Search dan Dijkstra.
2. Membandingkan kedua algoritma tersebut sehingga diperoleh
algoritma yang tepat dan akurat dalam penyelesaian masalah rute
terpendek.
1.3 Batasan Masalah
Agar ruang lingkup tugas akhir ini tidak menyipang dari tujuan,
maka penulis memberi batasan terhadap permasalahan yang di
angkat, yaitu :
1) Menggunakan bahasa pemrograman Web dengan database
MySql.
2) Metode yang dijadikan perbandingan untuk menyelesaikan
masalah rute terpendek adalah Breadth First Search dan Dijkstra
.
3) Studi kasus dalam tugas akhir ini yaitu Unilever Kota
Pamekasan. Dengan asumsi start keberangkatan dari kantor
pusat.

1.4 Tujuan Dan Manfaat


1.4.1 Tujuan
Adapun tujuan yang ingin dicapai dari tugas akhir ini adalah :
1) Membuat sebuah perangkat lunak untuk menentukan jarak
tependek pada lintasan transportasi di daerah Kabupaten
Pamekasan untuk pengiriman barang Unilever.
2) Melakukan perbandingan antara algoritma Breadth First
Search dan Dijkstra.
1.4.2 Manfaat
a. Bagi Universitas
Sebagai tolak ukur bagi universitas untuk mengetahui
sejauh mana penyerapan keilmuan yang telah dicapai oleh
mahasiswa.
b. Bagi Unilever
1. Dengan adanya sistem ini dropper (pengirim barang)
dapat lebih cepat untuk sampai pada tujuan.
2. Dropper dapat menentukan jarak mana yang lebih
efektif dan optimal untuk dilewati.
1.5 Metodelogi
Metodologi yang digunakan dalam penyelesaian tugas akhir ini
meliputi :
1) Studi Literatur
Mencari dan mempelajari berbagai macam literatur ataupun
sumber informasi baik dari buku, artikel, jurnal, majalah
maupun dari situs internet yang berhubungan dengan sistem
yang akan dibangun.
2) Perancangan Sistem
Merancang sistem dan menyusun sistem yang akan dibuat
sesuai dengan literatur-literatur yang telah dipelajari serta hasil
lapangan yang telah diperoleh.
3) Pembuatan dan Implementsi Sistem
Membuat atau mengimplementasikan sistem yang telah selesai
dirancang.
4) Pengujian dan Analisa
3

Setelah selesai membuat dan implementasi sistem selanjutnya


melakukan pengujian dan analisa tugas akhir.
5) Penyusunan Laporan
Tahap terakhir dari tugas akhir ini adalah menyusun laporan
selama mengerjakan tugas akhir tersebut sesuai dengan tahaptahap diatas.
1.6 Sistematika Penulisan
Sistematika penulisan dalam pembuatan tugas akhir ini meliputi :
BAB I

: PENDAHULUAN
Dalam bab ini membahas latar belakang yang
menjadi alasan pemilihan judul tugas akhir, selain
itu dalam bab ini juga berisi tujuan, perumusan
masalah, batasan masalah, dan metodologi tugas
akhir.

BAB II

: LANDASAN TEORI
Dalam bab ini berisi tentang dasar-dasar teori yang
dijadikan sebagai literatur pembuatan tugas akhir
dan menjelaskan perbandigan teori-teori atau
penelitian-penelitian terdahalu dengan teori-teori
pada tugas akhir yang akan dibuat.

BAB III

: ANALISA DAN PERANCANGAN


Dalam bab ini akan menjelaskan perancangan dan
pembuatan tugas akhir.

BAB IV

: HASIL DAN PEMBAHASAN


Dalam bab ini memberikan penjelasan mengenai
implementasi dan pengujian serta analisa terhadap
tugas akhir yang telah dibuat.

BAB V

: PENUTUP
Dalam bab ini berisi kesimpulan dan saran dari
penulis selama membuat tugas akhir tersebut.

BAB II
LANDASAN TEORI
2.1 Kajian Pustaka
Ella Madanella Dwi Mustika (2007) dalam penelitian membahas
tentang analisis penggunaan algoritma Pencarian Melebar (BFS) dan
algoritma Pencarian Mendalam (DFS) dalam teori Graph pada graph
berarah ,tidak berarah dan berbobot. Makalah ini menjelaskan cara
kerja Algoritma BFS dan Algoritma DFS dan menjelaskan pencarian
jalur terpendek pada simulasi komponen terhubung dalam suatu
graph, berasarkan kelebihan dan kelemahan masing Algoritma ,
untuk mendapatkan suatu kesimpulan kegunaan BFS dan DFS dalam
pemecahan suatu masalah.
Aswin Juari (2007) dalam papernya menganalisa keefektivan
algoritma BFS pada graph tak berbobot dalam mencari jalur
terpendek. Dalam penelitian algoritma BFS pada graph tak berbobot
di realisasikan dalam sebuah mantriks dalam pencarian jalur
terpendek. Penggunaan graph tak berbobot digunakan sebagai tolak
ukur untuk mencapai suatu simpulan.
Henny Syahrial Lubis (2009) dalam penelitiannya membahas
masalah penentuan rute terpendek dengan mengambil algoritma dari
Dikstra dan Greedy yang diimplementasikan kedalam sebuah
pemrograman komputer. Dalam jurnal ini jarak antar titik, arah dan
titik atau bisa disebut dengan node dijadikan data pendukung utama
sebagai parameter dalam penganalisaan dalam penerapan kedua
algoritma. Sistem ini memanfaatkan perbandigan antara kedua
metode tersebut untuk mencapai sebuah kesimpulan.
Yudi Retanto (2009) dalam papernya menjelaskan penggunaan
atau perbandingan antara Algoritma Dijkstra dan Bellman-Ford
dalam pencarian jalur terpendek, dalam makalah ini algoritma
Dijkstra dijelaskan untuk mencapai titik tujuan dari keberangkatan
yaitu dengan selalu mengambil jarak terpendek dari titik satu ke titik
selanjutnya sampai mencapai tujuan akhir atau gol State. Algoritma
Bellman-Ford , algoritma ini sangat mirip dengan algoritma dijkstra
namun algoritma ini mampu menangani bobot negatif pada
5

pencarian jalur terpendek pada sebuah graph berbobot. Makalah ini


menjelaskan kelemahan dan kelebihan antara kedua algoritma.
Kelemahan, kelebihan dan bobot pada graph menjadikan acuan
untuk penarikan kesimpulan pada makalah ini.
Yuniansyah (2010) dalam makalahnya bersama para rekannya
yang membahas masalah graph, kegunaan graph pada simulasi
penentuan jalur terpendek dengan pengaplikasian pada metodemetode pencarian verteks yang umumnya terjadi dalam masalah
Travelling Salesman Problems dalam pengiriman barang. Dijelaskan
bahwa graph terdiri dari beberapa jenis diantaranya Digraph,
Undirect Graph dan Weight Graph yang dapat diaplikasikan dalam
bentuk matriks . makalah ini juga membahas jenis-jenis metode
pencarian verteks seperti halnya DFS, BFS, Shortest Path, Algoritma
Dijkstra ,Dynamic Programmnig dll. Dalam makalah ini yang
menjadikan suatu kesimpulan adalah pemahaman mengenai graph
dan metode-metode yang baik dan optimal dalam penggunaannya.
Nur Aulia (2011) dalam penelitiannya menjelaskan penggunaan
atau pengimplementasian algoritma semut (Antcolony) pada
pencarian jalur terpendek dalam pengiriman barang dari suatu CV ke
beberapa distributor-distributor yang sudah ditentukan dengan jarak
yang sudah ada, dengan mengangkat permasalahan pada TSP.

No

Tabel 2.1 Perbandingan Studi Pustaka


Nama

Judul

1 Ella
Madan
ella
Dwi
Mustik
a, 2007

Analisis
Penggun
aan
Algoritm
a Bfs
Dan Dfs
Dalam
Teori
Graph

2 Aswin
Juari,
2007

Pemafaat
an
Algoritm
a Bfs
Pada
Graph
Tak
Berbobot
Untuk
Mencari
Jalur
Terpende
k
Simulasi
Lintasan
Jalur
Terpende
k
Algoritm

3 Aris
Puji
Widod
o, 2007

Objek
Penelitian
Menganalisa
antara BFS
dan DFS
dalam
memecahkan
masalah
jalur
terpendek.
Berdasarkan
kelebihan
dan
kelemahan
masingmasing
metode.

Metode
Penelitian
Depth First
Search dan
Breadth
First
Search

Menganalisa
Keefektifan
Bfs Dalan
Mencari
Jalur
Terpendek
Pada Graph
Tak
Berbobot

Breadth
First
Search

hasil
analisa
metode bfs
kurang
baik dalam
memecahk
an masalah
mencari
jalur
terpendek

Memecahka
n masalah
pengambilan
keputusan
pada
optimasi

Algoritma
Dijkstra

Menghasil
kan sebuah
perangkat
lunak
sebagagai
alat bantu

Hasil
Mengetahu
i metode
mana yang
labih tepat
dalam
menyelesai
kan
masalah
klasik
seperti
TSP

a
Dijkstra
Berbasis
Extensibl
e Markup
Languag
e (Xml)

4 Hafid
Inggian
towi,
2008

5 Henny
Syahriz
a
Lubis,
2009

Perbandi
ngan
Algoritm
a
Penelusu
ran Dfs
Dan Bfs
Pada
Graph
Serta
Aplikasi
nya.
Perbandi
ngan
Algoritm
a Greedy
Dan
Dijkstra
Untuk
Menetuk
an
Lintasan

dalam
pengambil
an
keputusan
masalah
optimasi.
Dengan
keputusan
yang
seminimal
mungkin

Tentang
bagaimana
melewati
suatu daerah
tepat satu
kali
perjalanan
dan kembali
lagi
ketempat
semula.

Depth First
Search dan
Breadth
First
Search

Cara kerja
algoritma
BFS dan
DFS dalam
mengatasi
masalah
Seperti
TSP

Mengimple
mentasikan
algoritma
Greedy dan
Dijkstra
sehingga
didapatkan
algoritma
yang tepat
dalam

Algoritma
dijkstra
dan
Greedy
dengan
menguraik
an konsep
ke dua
algoritma
tersebut

Hasil
algoritma
greedy
menghasil
kan jarak
yang lebih
besar
karena
tidak
beroprasi

Terpende
k

meneyelesai
kan masalah
lintasan
terpendek.

dalam
menentuka
n lintasan
terpendek

6 Nita
Novian
sah,
dkk,
2009

Makalah
Teori
Graph
TSP

Penyelesaian
Tsp Pada N
Buah Kota
Yang Di
Implentasika
n Dalam
Bentuk Grap
Dengan
Menemukan
Sirkuit
Hamilton
Dengan
Bobot Paling
Minimum

Algoritma
exhaustive
dengan
menentuka
n sirkuit
hamilton
dengan
bobot
minimum

7 Yudi
Retanto
, 2009

Makalah
Algoritm
a
Dijkstra
Dan

Pembahasan
Mengenai
Algoritman
Dijkstra dan
Bellman-

Dijkstra
dan
BellmanFord

secara
menyeluru
h terhadap
semua
fungsi
yang ada.
hasil dari
makalah
ini bahwa
tsp
merupakan
suatu
problem
dalam
menentuka
n jalur
terpendek
dengan
implement
asi
algoritma
exhaustive
dg mencari
kombinasi
yg
mungkin
terjadi
kemudian
memilih
kombinasi
perjalanan
dengan
jarak
terdekat
Menguraik
an
kelebihan
dijkstra
dengan

BellmanFord
Dalam
Pencaria
n Jalur
Terpende
k

Ford

8 Wijana
rto,
2010

Algoritm
a Bfs
Dan Dfs

9 Yunias
yah,
2010

Makalah
Graph

Pembahasan
mengenai
algoritma
BFS dan
DFS dalam
pencarian
solusi
Pembahasan
tentang teori
graph
dalama
sebuah
metode
pencarian
verteks dan
shortest
path(jalur
terpendek)
yang sering
digunakan
dalam
masalah
pengiriman
barang.

10

Metode
Bfs dan
Dfs

Metode
pencarian
verteks(bfs
,dfs) dan
shortest
path(dijkst
ra,dinamik
programin
g,algoritma
prim)

kompleksit
as waktu
terpendekn
ya dan
BellmanFord
dengan
kehandalan
menangani
sisi yang
bernilai
negatif.
Pemahama
n terhadap
alur kedua
algoritma
tersebut

Pemahama
n terhadap
teori graph
yang
sering
digunakan
dalam
mencari
jalur
terpendek

2.2 Teori Dasar Graph


Sebuah graph G didefinisikan sebagai pasangan himpunan (V,E)
di mana V=himpunan verteks {v1,v2,......vn} dan E=himpunan
edge(arc) yang menghubungkan verteks-verteks {e1,e2,......en} atau
dapat ditulis dengan notasi G=(V,E) (Rinaldi Munir, 2006 hal : 291).
Berdasarkan orientasi arah pada sisi, graph dapat dibedakan atas dua
jenis (Rinaldi Munir, 2006 hal : 294) yaitu :
2.2.1 Graph Berarah (directed graph atau digraph)
Pada graph tak berarah elemen dari E disebut dengan edge,
sedangkan pada graph berarah elemen dari E(A) disebut dengan
arc. Graph berarah G terdiri dari suatu himpunan V dari verteksverteks dan suatu himpunan E(A) dari arc sedemikian rupa
sehingga setiap arc a A menghubungkan pasangan verteks
terurut. Jika terdapat sebuah arc a yang menghubungkan pasangan
verteks terurut (v,w) dari verteks-verteks, maka dapat ditulis
dengan a=(v,w) yang menyatakan sebua arc dari v ke w.
v1

v4
a4

a5

v5

a1

a3
a6

v2

a2

v3

Gambar 2.1 Graph Berarah


Digraph pada Gambar 2.1 adalah graph berarah dengan
himpunan verteks verteks V(G)={v1,v2,v3,v4,v5}dan himpunan arcarc A(G)={a1,a2,a3,a4,a5,a6} yaitu pasangan terurut dari
{(v1,v2),(v2,v3),(v3,v4),(v4,v5),(v5,v1),(v2,v5)}.
Pada suatu graph jika dua buah verteks v1 dan v2 dihubungkan
oleh suatu edge(arc), maka kedua verteks tersebut dikatakan
adjacent. Pada Gambar 2.1 verteks v1 adjacent (bertetangga)
dengan verteks v2. Semetara itu, arc a1 dikatakan incident
(bersisian) dengan verteks v1 dan verteks v2. (Henny Syahriza
Lubis, 2009, Perbandingan Dijkstra & Greedy)
11

2.2.2 Graph Tak Berarah (Undirected Graph)


Graph tak berarah G terdiri dari suatu himpunan V dari
verteks-verteks dan suatu himpunan E dari edge-edge sedemikian
rupa sehingga setiap sisi e E dikaitkan dengan pasangan verteks
tak terurut. Jika terdapat sebuah edge e yang menghubungkan
verteks v dan w, maka dapat dituliskan dengan e = (v,w) atau e =
(w,v) yang menyatakan sebuah edge antara v dan w.
v1

v4
e4

e5

v5

e1

e3
a6

v2

e2

v3

Gambar 2.2 Graph Tak Berarah


Pada Gambar 2.2. Adalah graph tak berarah dengan himpunan
verteks-verteks V(G) = {v1,v2,v3,v4,v5} dan himpunan sisi E(G)
= {e1,e2,e3,e4,e5,e6} yaitu pasangan beturut-turut dari
{(v1,v2),(v2,v3),(v3,v4),(v4,v5),(v5,v2)}.
2.2.3 Graph Berbobot (Weight Graph)
Dalam memodelkan suatu masalah ke dalam graph, ada
informasi yang ditambahkan pada arc graph. Misalanya graph
yang menggambarkan peta jalan raya antara kota-kota, dapat
ditambahkan sebuah bilangan pada arc untuk menunjukan jarak
antara kedua kota yang dihubungkan oleh arc tersebut.
Graph berbobot (weighted graph) adalah suatu graph tanpa arc
paralel dimana setiap arc-nya berhubungan dengan suatu bilangan
riil tak negatif yang menyatakan bobot arc (w(a)) tersebut. (Jong
Jek Siang, 2002, Hal : 262).

12

v1
2

3
v2

4
2

4
v3
2

v5

v4

Gambar 2.3 Graph Berbobot


2.3 Algoritma Breadth First Search
Breadth First Search (BFS) melakukan proses searching pada
semua node yang berada pada level atau hirarki yang sama terlebih
dahulu sebelum melanjutkan proses searching pada node di level
berikutnya.
Algoritma pencarian melebar (BFS) mengunjungi setiap simpul
dalam graf mulai dari simpul akar, lalu dilanjutkan dengan
mengunjungi simpul-simpul yang bertetangga dengan simpul akar
tersebut. Setelah itu, untuk stiap simpul yang sudah dikunjungi,
demikian seterusnya sampai seluruh simpul berhasil dikunjungi.
Berikut gambar yang mengilustrasikan urutan simpul yang
dikunjungi pada algoritma BFS :

Gambar 2.4 Ilustarsi Kunjungan Simpul BFS


13

Breadth First Search menguji semua keadaan dalam pohon


pelacakan dalam waktu yang sama. Dari kiri ke kanan dari atas ke
bawah satu tingkat pada waktu yang sama. Mulai dari keadaan awal,
Breadth First Search memperhatikan semua keadaan pada tiap
tingkat sebelum meneruskan ke tingkat lebih bawah berikutnya.
Langkah-langkah Algoritma Breadth First Search adalah sebagai
berikut :
1. Menentukan node asal dan node tujuan.
2. Pencarian dimulai dari node asal, node yang ada pada setiap
tingkat seluruhnya diuji sebelum pindah ketingkat berikutnya.
3. Jika node tujuan ditemukan maka berhenti, tapi jika belum
ditemukan maka dilanjutkan ke node yang ada di level 1. Node
yang berada di level 1 adalah node yang bertetangga dengan
node asal.
4. Jika langkah tiga masih belum sampai ke tujuan, maka
pencarian dilakukan ke node di level 2 yaitu node yang
bertetangga dengan masing-masing yang di level 1. Demikian
seterusnya, proses dilanjutkan sampai tujuan ditemukan.
Prosedur Breadth First Search (BFS) merupakan pencarian yang
dilakukan dengan mengunjungi tiap-tiap node secara sistematis pada
setiap level hingga keadaan tujuan (goal state) ditemukan. Atau
dengan kata lain, penulusuran yang dilakukan adalah dengan
mengunjungi tiap-tiap node pada level yang sama hingga ditemukan
goal state-nya.

Gambar 2.5 Prosedur BFS


14

2.3.1 Implementasi Algoritma Breadth First Search


Pengimplementasian
BFS
dapat
ditelusuri
dengan
menggunakan daftar (list), open, dan closed, untuk menelusuri
gerakan pencarian di dalam ruang keadaan. Prosedur untuk
Breadth First Search dapat dituliskan sebagai berikut:

Gambar 2.6 Pengimplementasian BFS dalam Graph


Pada graph diatas, state 21 merupakan tujuannya (goal) sehingga
bila ditelusuri
menggunakan prosedur Breadth First Search,
diperoleh:
1) Open = [1]; closed = [ ].
2) Open = [2, 3, 4]; closed = [1].
3) Open = [3, 4, 5, 6]; closd = [2, 1].
4) Open = [4, 5, 6, 7, 8]; closed = [3, 2, 1].
5) Open = [5, 6, 7, 8, 9, 10]; closed = [4, 3, 2, 1].
6) Open = [6, 7, 8, 9, 10, 11, 12]; closed = [5, 4, 3, 2, 1].
7) Open = [7, 8, 9, 10, 11, 12, 13] (karena 12 telah diopen);
8) closed = [6, 5, 4, 3, 2, 1].
9) Open = [8, 9, 10, 11, 12, 13, 14]; closed = [7, 6, 5, 4, 3, 2, 1].
10) Dan seterusnya sampai state 21 diperoleh atau open = [ ].
Ada beberapa keuntungan menggunakan algoritma Breadth
First Search ini, diantaranya adalah :
1. Tidak akan menemui jalan buntu dan
15

2.
3.
4.
5.
6.

7.
8.

Jika ada satu solusi maka Breadth First Search akan


menemukannya, dan
Jika ada lebih dari satu solusi maka solusi minimum akan
ditemukan.
Namu disamping keutungan diatas ada tiga persoalan utama
berkenaan dengan Breadth First Search yaitu :
Membutuhkan memori yang lebih besar karena menyimpan
semua node dalam satu pohon.
Membutuhkan sejumlah besar pekerjaan, khususnya jika
lintasan solusi terpendek cukup panjang, karena jumlah node
yang perlu diperiksa bertambah secara eksponensial terhadap
panjang lintasan.
Tidak relevannya operator akan menambah jumlah node yang
harus diperiksa.
Oleh karena itu proses Breadth First Search mengamati node di
setiap level graph sebelum bergerak menuju ruang yang lebih
dalam maka mula-mula semua keadaan akan dicapai lewat
lintasan yang terpendek dari keadaan awal. Oleh sebab itu,
proses ini menjamin ditemukannya lintasan terpendek dar
keadaan awal ke tujuan (akhir). Lebih jauh karean mula-mula
semua keadaan ditemukan melalui lintasan terpendek sehingga
setiap keadaan yang ditemui pada kali kedua didapati pada
sepanjang sebuah lintasan yang sama atau lebih panjang.
Kemudian, jika tidak ada kesempatan ditemukannya keadaan
yang identik pada sepanjang lintasan yang lebih baik maka
algoritma akan menghapusnya. (Yuniansyah, 2010, Hal : 15)

2.4 Algoritma Dijkstra


Algortima ini ditemukan oleh Adsger W. Dikstra yang
merupakan salah satu varian bentuk algoritma popular dalam
pemecahan persoalan terkait dengan masalah optimasi dan bersifat
sederhana. Algortima ini menyelesaikan maslah mencari sebuah
lintasan terpendek (sebua lintasan yang mempunyai panjang
minimum dari verteks a ke z dalam graph berbobot, bobot tersebut
adalah bilangan positif jadi tidak dapat dilalui oleh node negatif,
namun jika terjadi demikian, maka penyelesaian yang diberikan
adalah infiniti (Tak Hingga).

16

Algoritma Dijkstra melibatkan pemasangan label pada verteks.


Misalkan L(v) menyatakan label dari verteks v. Pada setiap
pembahasan, beberapa verteks mempunyai label sementara dan yang
lain mempunyai label tetap. Misalnya T menyatakan himpunan
verteks yang mempunyai label sementara. Dalam menggambarkan
algoritma tersebut verteks-verteks yang mempunyai label tetap akan
dilingkari. Selanjutnya, jika L(v) adalah lavel tetap dari verteks v
maka L(v) merupakan panjang lintasan terpendek dari a ke v.
Sebelumnya semua verteks mempunyai label sementara. Setiap
iterasi dari algoritma tersebut mengubah status satu label dari
sementara ke tetap. Pada bagian ini L(z) merupakan panjang lintasan
terpendek dari a ke z. Pada algoritma Dijkstra node digunakan,
karena algoritma Dijkstra menggunakan graph berarah untuk
penentuan rute listasan terpendek.
Berikut ini dijelaskan langkah-langkah pada algoritma Dijkstra,
adai kita ingin menghitung jarak terpendek semua simpul terhadap
suatu simpul A maka :
1. Tetapkan jarak semua simpul terhadap simpul A, yaitu infinity
atau tak-hingga untuk simpul yang lain dan 0 untuk simpul A.
2. Tandai semua simpul dengan status belum dikunjungi. Jadikan
simpul awal sebagai simpul terkini.
3. Untuk node terkini, hitung jarak semua tetangga simpul ini
dengan menghitung jarak (dari awal simpul). Misalnya, jika saat
ini node (C) memiliki jarak dari simpul A sebesar 6, dan sisi
yang menghubungkannya dengan node lain (B) adalah 2, jarak
ke B melalui C akan menjadi 6 + 2 = 8. Jika jarak ini kurang
dari jarak yang sebelumnya (takhingga di awal) maka nilai jarak
simpul B dengan simpul A akan berubah.
4. Setelah selesai mengecek semua tetangga dari simpul terkini,
simpul terkini ditandai dangna status sudah dikunjungi.
5. Mengulang langkah tiga hingga lima, hingga semua simpul telah
dikunjungi.
2.4.1 Implementasi Algoritma Dijkstra
Algoritma ini bertujuan untuk menemukan jalur terpendek
berdasarkan bobot terkecil dari satu titik ke titk lainnya. Misalnya
titik mengambarkan gedung dan garis menggambarkan jalan, maka
17

algoritma Dijkstra melakukan kalkulasi


kemungkinan bobot terkecil dari setiap titik.

terhadap

semua

Gambar 2.7 Algoritma Dijkstra Dalam Graph


Pertama-tama tentukan titik mana yang akan menjadikan node
awal, lalu beri bobot jarak pada node pertama ke node terdekat satu
persatu, Dijkstra akan melakukan pengembangan pencarian dari
satu titik ke titik lain dan ke titik selanjutnya tahap demi tahap
inilah urutan logika dari algoritma Dijkstra :
1. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu
set nilai 0 pada node awal dan nilai tak hingga terhadap node
lain (belum terisi)
2. Set semua node Belum Terjamah dan set node awal sebagai
Node keberangkatan
3. Dari no keberangkatan, pertimbangkan node tetangga yang
belum terjamah dan hitung jaraknya dari titik keberangkatan.
Sebagai contoh, jika titik keberangkatan A ke B memiliki bobot
jarak 6 dan dari B ke node C berjarak 2, maka jarak ke C
melewati B menjadi 6+2=8. Jika jarak ini lebih kecil dari jarak
18

sebelumnya (yang telah terekam sebelumnya) hapus data lama,


simpan ulang data jarak dengan jarak yang baru.
4. Saat kita selesai mempertimbangkan setiap jarak terhadap node
tetangga, tandai node yang telah terjamah sebagai Node
terjamah. Node terjamah tidak akan pernah di cek kembali,
jarak yang disimpan adalah jarak terakhir dan yang paling
minimal bobotnya.
5. Set Node belum terjamah dengan jarak terkecil (dari node
keberangkatan) sebagai Node Keberangkatan selajutnya dan
lanjutkan dengan kembali ke step 3.
2.5 Travelling Salesman Problem
Travelling Salesman Problem (TSP) adalah problem untuk
mengoptimasi dan menemukan perjalanan (tour) yang paling pendek.
TSP adalah problem untuk menentukan urutan dari sejumlah kota
yang harus dilalui oleh salesman, setiap kota hanya boleh dilalui satu
kali dalam perjalanannya, dan perjalanan tersebut harus berakhir
pada kota keberangkatannya dimana salesma tersebut memulai
perjalanannya, dengan jarak antara setiap kota satu dengan yang
lainnya sudah diketahui. Salesman tersebut harus meminimalkan
pengeluaran biaya, dan jarak yang harus ditempuh untuk
perjalanannya tersebut.
Beberapa penerapan Travelling Salesman Problems (TSP) yang
muncul dalam kehidupan sehari-hari misalnya :
1. Efisiensi pengiriman surat dan barang
2. Perencanaan pemasangan saluran pipa
3. Masalah transportasi
4. Persoalan delivery order
5. Analisis rangkaian air atau listrik
Inti dari permasalahan Travelling Salesmen Problem (TSP)
adalah menemukan atau mencari jarak dan rute terpendek.
2.6 Pemrograman Web
Bahasa pemprogaraman web (web programing) adalah suatu
teknik intruksi untuk memerintah komputer. Bahasa pemprograman
web di gunakan untuk membuat program berbasis web, bahasa yang
19

di gunakan antara lain adalah HTML, CSS, XML, PHP, JavaScript,


Perl, ASP, WML, dan CFM.
Dalam sebuah program web bisa terdiri dari berbagai macam
bahasa pemprograman yang saling mendukung. Namun, tidak semua
bahasa pemprograman yang telah di sebut di pakai, dalam program
SIA-eLearning ini bahasa yang di gunakan adalah HTML, CSS, PHP
dan JavaScript.
2.7 Basis Data (Database)
Basis Data (bahasa Inggris: database), atau sering pula dieja
basisdata, adalah kumpulan informasi yang disimpan di dalam
komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data
tersebut. Perangkat lunak yang digunakan untuk mengelola dan
memanggil kueri (query) basis data disebut sistem manajemen basis
data (database management system, DBMS). Sistem basis data
dipelajari dalam ilmu informasi.
Konsep dasar dari basis data adalah kumpulan dari catatancatatan, atau potongan dari pengetahuan. Sebuah basis data memiliki
penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya:
penjelasan ini disebut skema. Skema menggambarkan obyek yang
diwakili suatu basis data, dan hubungan di antara obyek tersebut.
Ada banyak cara untuk mengorganisasi skema, atau memodelkan
struktur basis data: ini dikenal sebagai model basis data atau model
data. Model yang umum digunakan sekarang adalah model
relasional, yang menurut istilah layman mewakili semua informasi
dalam bentuk tabel-tabel yang saling berhubungan dimana setiap
tabel terdiri dari baris dan kolom (definisi yang sebenarnya
menggunakan terminologi matematika). Dalam model ini, hubungan
antar tabel diwakili denga menggunakan nilai yang sama antar tabel.
Model yang lain seperti model hierarkis dan model jaringan
menggunakan cara yang lebih eksplisit untuk mewakili hubungan
antar tabel.
Istilah basis data mengacu pada koleksi dari data-data yang
saling berhubungan, dan perangkat lunaknya seharusnya mengacu
20

sebagai sistem manajemen basis data (database management


system/DBMS). Jika konteksnya sudah jelas, banyak administrator
dan programer menggunakan istilah basis data untuk kedua arti
tersebut. (www.id.wikipedia.org)
2.8 Software Pedukung
HyperText Markup Language (HTML) adalah sebuah bahasa
markup yang digunakan untuk membuat sebuah halaman web dan
menampilkan berbagai informasi di dalam sebuah browser Internet.
HTML saat ini merupakan standar Internet yang didefinisikan dan
dikendalikan penggunaannya oleh World Wide Web Consortium
(W3C).
Personal Home Page (PHP) adalah bahasa pemrograman script
yang paling banyak dipakai saat ini. PHP pertama kali dibuat oleh
Rasmus Lerdorf pada tahun 1995. PHP biasanya berjalan pada
sistem operasi linux (PHP juga bisa dijalankan dengan hosting
windows).
Cascading Style Sheets (CSS) adalah suatu bahasa stylesheet
yang digunakan untuk mengatur tampilan suatu dokumen yang
ditulis dalam bahasa markup. Penggunaan yang paling umum dari
CSS adalah untuk memformat halaman web yang ditulis dengan
HTML dan XHTML. Walaupun demikian, bahasanya sendiri dapat
dipergunakan untuk semua jenis dokumen XML termasuk SVG dan
XUL. Spesifikasi CSS diatur oleh World Wide Web Consortium
(W3C).
Javascript adalah bahasa scripting yang handal yang berjalan
pada sisi client. JavaScript merupakan sebuah bahasa scripting yang
dikembangkan oleh Netscape. Untuk menjalankan script yang ditulis
dengan JavaScript kita membutuhkan JavaScript-enabled browser
yaitu browser yang mampu menjalankan JavaScript.
Notepad++ adalah sebuah penyunting teks dan penyunting kode
sumber yang berjalan di sistem operasi Windows. Notepad++
menggunakan komponen Scintilla untuk dapat menampilkan dan
menyuntingan teks dan berkas kode sumber berbagai bahasa
pemrograman. Didukung dalam hal ini adalah dimengerti dan
21

diterjemahkan menjadi teks oleh Notepad++. Misalnya pada C++,


fungsi-fungsinya akan di masukan kedalam daftar fungsi dan katakatanya akan berubah warna sesuai dengan makna kata tersebut di
C++.
2.9 Unilever
Unilever Indonesia telah tumbuh menjadi salah satu perusahaan
terdepan untuk produk Home and Personal Care serta Foods & Ice
Cream di Indonesia. Rangkaian
Produk Unilever Indonesia
mencakup brand-brand ternama yang disukai di dunia seperti
Pepsodent, Lux, Lifebuoy, Dove, Sunsilk, Clear, Rexona, Vaseline,
Rinso, Molto dan lain-lain.
Unilever merupakan perusahaan dimana berkerja untuk
menciptakan masa depan yang lebih baik setiap hari membuat para
pelanggannya merasa nyaman, berpenampilan baik dan lebih
menikmati kehidupan melalui brand dan jasa yang memberikan
manfaat untuk mereka maupun orang lain menginspirasi masyarakat
untuk melakukan tindakan kecil setiap harinya yang bila
digabungkan akan membuat perubahan besar bagi dunia dan
senantiasa mengembangkan cara baru dalam berbisnis yang
memungkinkan kami untuk tumbuh sekaligus mengurangi dampak
lingkungan.
Bagi unilever, sumber daya manusia dalam pusat dari seluruh
aktivitas perseroan. Kami memberikan prioritas pada mereka dalam
pengembangan profesionalisme, kesinambungan kehidupan, dan
kemampuana mereka untuk berkontribusi pada perusahaan. Terdapat
lebih dari 6000 karyawan terbesar di seluruh nusantara.

22

BAB III
PERANCANGAN SISTEM
Perancagan Sistem merupakan tahap awal dari perancangan
perangkat lunak. Perancangan sistem ini dilakukan untuk mengetahui
kondisi sistem secara umum.
Sistem yang dirancang merupakan sistem untuk mensimulasikan
suatu implementasi algoritma metode kedalam sebuah tool
pemrograman dimana nantinya akan dibandingkan antara kedua metode
tersebut. Program ini digunakan sebagai pencarian solusi rute terpendek
pengiriman barang Unilever dengan beberapa titik yang sudah
ditentukan pada masing-masing distributor dengan asumsi titik awal
adalah kantor pusat.
Program ini menggunakan dua interface yaitu Admin dan User
berikut kami jelaskan masing hak akses dari kedua pengguna adalah
sebagai berikut :
1. Admin
Pada level ini pengguna mempunyai hak akses penuh, admin dapat
melakukan penambahan data atau titik baru dan pengolahan rute
sebagai simulasi yang bisa diakses oleh user dengan outputnya.
2. User
Pada level ini pengguna hanya dapat menjalankan simulasi saja,
dan melihat output dari hasil simulasi user tidak mempunyai hak
akses untuk , input titik, delete dan mengolah data .
3.1 Perancangan Proses
3.1.1 Diagram Kontek
Diagram konteks merupakan aliran data yang memodelkan
hubungan antara sisem dengan entitas. Selain itu Diagram Konteks
merupakan diagram yang paling awal yang terdiri dari suatu proses
data dan menggambarkan ruang lingkup suatu sistem secara garis
besarnya. Aliran dalam diagram konteks memodelkan masukan ke
sistem dan keluaran dari sistem.

23

Hasil pencarian rute

User
Hapus rute
Olah Rute
Edit Titik
1

Input Titik

Sistem Penentuan
Rute Terpendek

Login

Tentukan tujuan
Proses cari rute

Info login
Info input titik
Admin

Info update titik


Info tambah rute

Gambar 3.1 Diagram Konteks.


Dari konteks diagram di atas dapat dijelaskan sebagai berikut :
a. User merupakan pengguna dari aplikasi penentuan rute
terpendek yaitu para dropper-dropper yang ingin
mendistribusikan barang ke para distributor. Pada entitas
pengguna (user) terdapat tiga aliran data, dimana tiga aliran
data dua aliran data menuju ke sistem, satu data output dari
sistem ke user, yaitu pilih tujuan distribusi, melakukan proses
pencarian, dan menerima hasil atau output dari sistem yang
berupa solusi.
b. Admin merupakan pengelola dari sistem aplikasi penentuan rute
terpendek. Pada entitas admin terdapat lima aliran data menuju
ke sistem yaitu login admin, input titik, edit titik, edit rute, dan
olah rute untuk proses pencarian rute.

24

3.1.2 Data Flow Diagram Level 1


Data flow diagram merupakan gambaran proses sistem yang
lebih rinci dan merupakan pengembangan dari Context Diagram.
Data flow diagram level 1 menjelaskan mengenai kegiatan arus
data yang terjadi dalam sistem penentuan rute terpendek. Pada
diagram ini terdapat dua entitas dan tiga proses, yaitu proses
pencarian rute, proses login admin untuk melakukan pengolahan
data. Serta data store yang masing-masing adalah table user, table
titik, table rute, dan table cek.
Hasil BFS
Tbl Cek

Pilih Tujuan

Tbl titik

Tbl titik

Informasi titik

Tbl rute

Proses BFS

Proses Dikjstra

Hapus rute

Tbl rute

Tambah rute

Login admin Login

Login

Dijkstra

Hasil Dijkstra

Edit/Hapus titik

Admin

User

Pilih Tujan

Sistem

Input titik

BFS

Informasi rute

verifikasi

Tbl user

Info login

Gambar 3.2 Data Flow Diagam (DFD) Level 1


Berikut adalah spesifikasi deskripsi dari tiap proses yang terdapat
pada DFD level 1 .
Tabel 3.1 Deskripsi Proses Login
Nama
Proses Login
Input
Username dan Password
Output
Informasi login admin kesalam sistem
Keterangan
Proses ini yaitu konfirmasi info login kepada
Proses
adamin dari sistem agar dapat melakukan
pengolahan data.

25

Tabel 3.2 Deskripsi Proses Input Titik


Proses Input Titik
Nama titik dan keterangan titik
Informasi titik dan data keseluruhan titik untuk
olah data.
Keterangan Proses ini adalah proses penambahan titik baru
Proses
yang digunakan nantinya untuk pengolahan
rute.
Nama
Input
Output

Tabel 3.3 Deskripsi Proses Hapus Data Titik


Nama
Proses hapus data titik
Input
Nama titik dan keterangan titik
Output
Info hapus data titik
Keterangan Proses ini berupa penghapusan data titik dari
Proses
daftar titik distribusi.
Tabel 3.4 Deskripsi Proses Edit Data Titik
Nama
Proses edit data titik
Input
Nama titik dan keterangan titik
Output
Info upadate dari data titik
Keterangan
Proses ini adalah proses edit atau update titik
Proses
dari daftar titik distribusi
Tabel 3.5 Deskripsi Proses Tambah Rute
Nama
Proses tambah rute
Input
Start keberangkatan tujuan dan jarak
Output
Informasi data rute baru
Keterangan
Proses ini adalah penambahan rute sebagai
Proses
jalur pengecekan dari proses pencarian rute.
Tabel 3.6 Deskripsi Proses Hapus Rute
Nama
Proses hapus rute
Input
Start keberangkatan tujuan dan jarak
Output
Informasi penghapusan rute dari daftar rute.
Keterangan
Proses ini adalah penghapusann data rute dari
Proses
daftar rute pengecekan yang ada untuk
membuat simulasi rute yang baru.
26

Tabel 3.7 Deskripsi Proses Pencarian BFS


Proses pencarian dengan bfs
Pilih tujuan distribusi
Hasil pencarian berupa rute yang dilewati dan
jumlah jarak
Keterangan
Proses ini adalan proses pencarian rute
Proses
terpendek yang menghasilkan rute atau jalur
dari pusat ke tujuan dengan akumulasi jumlah
jarak sesuai dengan algoritma bfs.
Nama
Input
Output

Tabel 3.8 Deskripsi Proses Pencarian Dengan Dijkstra


Nama
Proses pencarian dengan dijkstra
Input
Pilih tujuan distribusi
Output
Hasil pencarian berupa rute yang dilewati dan
jumlah jarak
Keterangan
Proses ini adalan proses pencarian rute
Proses
terpendek yang menghasilkan rute atau jalur
dari pusat ke tujuan dengan akumulasi jumlah
jarak sesuai dengan algoritma bfs.
3.2 Perancanga Database
Pembuatan ranncangan database program melalui Data Flow
Diagram dan Konteks Diagram dapat dibuat tabel-tabel database
yang akan dikelola dan digunakan untuk menjalankan aplikasi.
Aplikasi database yang digunakan dalam tugas akhir ini adalah
MySQL, file databasenya metode.sql.
Berikut ini nama-nama tabel yang digunakan beserta field-field
yang terdapat pada masing-masing tabel.
1.

Tabel user, ini berfungsi untuk menyimpan data admin.


N
o
1
2
3

Fiel
d
Id
User
Pass

Tabel 3.9 Rancangan Tabel User


Jenis
Panjan
Keterangan
g
INT
11
Auto_Increment
Vharcar
100
Vharcar
100
27

Berikut Penjelasan dari masing-masing field pada tabel user :


a. Id, digunakan sebagai primary key dengan tipe data integer
b. User, digunakan untuk menyimpan data nama usermane
dari admin.
c. Pass, digunakan untuk menyimpan password dari user.
2.

Tabel titik, ini berfungsi untuk menyimpan titik distribusi ata


kota.
Tabel 3.10 Rancangan Tabel Titik
No
Field
Jenis
Panjang
Keterangan
1 Id
Int
3
Auto_Increment
2 Nama
Vharcar
50
3 Alamat
Text
Berikut Penjelasan dari masing-masing field pada tabel titik :
a. Id, sebagai primary key sebagai relasi ke tabel-tabel yang
lain.
b. Nama, digunakan untuk menyimpan nama titik distribusi.
c. Alamat, digunakan untuk memberik keterangan titik.

3.

Tabel rute, ini berfungsi untuk meyimpan daftar rute dari


pengolahan rute.
No
1
2
3
4

Field
Id
Awal
Akhir
Jarak

Tabel 3.11 Rancangan Tabel Rute


Jenis
Panjang
Keterangan
Int
11
Auto_Increment
Int
3
Int
3
Int
4

Berikut Penjelasan dari masing-masing field pada tabel rute :


a. Id, digunakan sebagai primary key pada tabel rute.
b. Awal, digunakan sebagai penyimpanan rute awal atau
keberangkatan.
c. Akhir, digunakan sebagai penyimpanan rute tujuan.
d. Jarak, digunakan sebagai penyimpanan jarak.
4.

Tabel cek, ini berfungsi untuk menampung titik distribusi yang


dilalui ketika proses pencarian.
28

No
1
2
3
4
5
6
7
8

Tabel 3.12 Rancangan Tabel Cek


Field
Jenis
Panjang
Keterangan
Id
Int
100
Auto_Increment
Awal
Int
3
Akhir
Int
3
Jarak
Int
4
Status
Int
1
Status2
Int
1
Urut
Int
4
Urut2
Int
4

Berikut Penjelasan dari masing-masing field pada tabel cek :


a. Id, digunakan sebagai primary key di tabel cek
b. Awal, digunakan sebagai penampungan titik awal
pengecekan
c. Akhir, digunakan sebagai penampungan titik tujuan
pengecekan yang diambil dari tabel rute.
d. Jarak, digunakan sebagai penampungan data jarak
pengecekan.
e. Status, digunakan sebagai pengecekan status pencarian
rute yang sudah terlewati oleh proses.
f.
Status, digunakan sebagai pengecekan status pencarian
rute yang sudah terlewati pada proses atau jalur
selanjutnya.
g. Urut, digunakan sebagai pengurutan data dari proses rute
awal
h. Urut2, digunakan sebagai pegurutan data dari besar ke
yang kecil pada proses rute selanjutnya apabila masih ada
rute yang dicek.
3.3 Flowchart
Flowchart atau diagram alir merupakan sebuah diagram dengan
simbol-simbol grafis yang menyatakan aliran algoritma atau proses
yang menampilkan langkah-langkah yang disimbolkan dalam bentuk
kotak, beserta urutannya dengan menghubungkan masing-masing
langkah tersebut menggunakan tanda panah. Diagram ini bisa
memberi solusi selangkah demi selangkah untuk penyelesaian
masalah yang ada di dalam proses atau algoritma tersebut.
29

Berikut kami gambarkan diagram alir atau flowchart alur


algoritma BFS dan DIJKSTRA dari awal sampai pada akhir atau hasil
yang di inginkan oleh user. Dari kedua Flowchart tersebut kita juga
mengambil perbandingan dari masing-masing algoritma tersebut.
Berikut ini merupakan flowchart dari masing algortima yang
menunjukan alur kerja masing-masing dari awal hingga akhir .
3.3.1 Flowchart Algoritma BFS
Mulai

Tentukan
node awal
dan akhir

Apakah ada akses


langsung ?

YA

Cetak jalur dari awalakhir


Cetak total jarak

TIDAK
Menentuka
n node
selanjutny
a pada
level yang
sama

Selesai
YA

Apakah
titik pada sekarang
masih ada ?

TIDAK
Menentukan node
pada level selanjutnya

Gambar 3.3 Flowchart Algoritma Breadth First Search


Dari flowchat di atas, dapat dijelaskan langkah-langkah
proses algoritma yang terjadi adalah sebagai berikut.
Sebelum melakukan proses pencarian tentunya node awal dan
akhir sudah ditentukan, algoritma mengecek satu persatu dari level
yang paling dekat terdahulu ke level yang berada dibawahnya,
kemudian menyimpannya kedalam tabel cek dan mengecek apakah
node yang dilalui adalah sulusi, jika node yang dilalui adalah solusi
30

maka program akan berhenti dan mencetak jalur yang dilalui


dengan total jarak keseluruhan, namun apabila bukan solusi maka
algoritma melajutkan pengecekan ke simpul atau node pada level
selanjunya dan menyipan kembali kedalam tabel cek sampai tujuan
akhir tercapai. Proses pengecekan data dilakukan dengan cara
pengambilan data dari tabel rute menggunakan fungsi query sql
dan ditampung kedalam tabel cek sebagai media penampungan
sementara.
Untuk memenuhi proses algoritma seperti pada flowchart diatas
maka, dibutuhkan beberapa tabel sebagai media penyimpanan dan
pemprosesan data, yang diataranya adalah sebagai berikut, (tabel
titik, tabel rute, dan tabel cek)
3.3.2 Flowchat Algoritma Dijkstra
Mulai

Tentukan titik awal (vs)


dan tujuan (vt)
Jalur = 0 tentukan vs(V1) sebagai T-node permanen
Cari v2 sementara dengan bobot terkecil dan tetapkan
predecessor (node terpilih)

Ubah status v2 dengan bobot terkecil dan tetapkan T-node

T-node = vt ?

Y
Lintasan terpendek ditemukan

Cetak jalur dari node awal-akhir


Cetak jarak
Selesai

Gambar 3.4 Flowchart Algoritma Dijkstra


31

Berikut dapat dijelaskan proses yang terjadi dari flowchat pada


algoritma dijkstra diatas dari awal sampai akhir.
Pertama node asal (Vs) dan tujuan (Vt) ditentukan, kemudian
node asal atau (Vt) dengan jarak sama dengan 0 ditentuka sebagai
node permanen keberangkatan, kemudian algoritma mencari node
selanjutnya dengan jarak minimum (V2) dan menetapkan sebagai
node terpilih, simpan jalur yang dilalui kedalam tabel cek , maka
tandai (V2) ditetapkan sebagai node permanen dengan asumsi (V 2)
mempunyai jarak terkecil. Dari hasil itu program kembali
mengecek apakah sama dengan sulusi, jika iya lintasan terpendek
ditentukan dan cetak jalur dari awal ke akhir serta cetak total jarak
keseluruhan. Jika tidak sama dengan solusi maka kembali looping
ke bobot yang terkecil sampai tujuan tercapai.
Agar alur dalam flowchart diatas dapat terealisasikan maka
diperlukan beberapa tabel database sebagai penyimpanan data yang
akan diimputkan nantinya, diantaranya adalah, tabel titik, tabel
rute, dan tabel cek. Dengan fungsi-fungsi dari masing-masing tabel
tersebut seperti yang telah diuraikan dalam perancangan database
diatas.

32

3.3.3 Flowchart Login Admin

Mulai

Usename dan
Password

Tidak

Query : cari user dan password dari


tabel user

Validasi User dan


Password

YA
1

Gambar 3.5 Flowchart Login


Sebelum admin mengolah data, petama-tama admin harus login
terlebih dahulu dengan username dan password yang sudah ada di
tabel user, kemudian sistem melakukan proses query dengan
mencari username dan password yang telah dimasukkan pada tabel
user. Jika suda mendapatkan maka sistem akan melihat apakah
username dan password benar atau tidak. Apabila username dan
password tidak benar maka sistem tidak akan memunculkan
halaman admin. Akan tetapi jika benar proses berlanjut menuju
kondisi 1 yaitu flowchart menu admin.

33

3.3.4 Flowchart Menu Admin


1

Halaman
Admin

Input Titik

Tambah Rute

Daftar
Titik

Daftar
Rute

Hapus,
Edit Titik

Hapus
Rute

Keluar

Gambar 3.6 Flowchart Menu Admin


Flowchart program di atas, merupakan lanjutan proses dari
flowchart program login admin, dapat dijelaskan langkah-langkah
proses yang dilakukan adalah sebagaik berikut .
Setelah validasi pada proses login admin berhasil, maka sistem
akan menampilkan proses kehalaman admin, di halaman admin
terdapat menu-menu untuk proses input titik, hapus titik, edit titik,
input rute, hapus rute.
Kemudian proses berlanjut menuju pada kondisi nomor 2 yaitu
flowchart menu user.

34

3.3.5 Flowchart Menu User


2

Halaman
User

Pilih
Algoritma

BFS

Dikstra

Cari Rute

Cari Rute

Output

Output

Proses
Pembanding

Selesai

Gambar 3.7 Flowchart Menu User


Flowchart program di atas, merupakan lanjutan proses dari
flowchart menu admin, dapat dijelaskan langkah-langkah proses
pada sistem yang dilakukan adalah sebagai berikut :
Dari hasil titik dan rute yang telah di inputkan pada menu
admin, di halaman user akan dilakukan proses pencarian rute
terpendek dari masing-masing algoritma (Breadth First Search)
35

dan (Dijkstra), dari kedua algoritma tersebut program akan


menampilkan hasil dari masing-masing pencarian algoritma, yang
berupa rute yang sudah dilalui pengecekan dari tabel rute, dan total
jarak keseluruhan. Proses tersebut menggunakan proses
pengambilan data dari tabel rute dengan query sql. Dari hasil
pencarian pada masing-masing algoritma tersebut akan dapat
melakukan perbandingan, yaitu metode atau algoritma mana yang
paling tepat dalam menyelesaikan masalah rute terpendek.
3.4 Desain Antar Muka
Rancangan menu dibuat sebagai media perantara user dengan
aplikasi. Desain struktur menu ini hanya menjelaskan secara garis
besar dan minimum. Menu-menu ini yang nantinya diaplikasikan
sebagai tampilan pada halaman web. Fasilitas dan sturktur menu ini
terdiri dari :
Halaman Utama (User)
Halaman utama merupakan halaman yang pertama kali tampil.
Pada bagian ini terdapat menu navigasi disebelah kiri tedapat
link-link menuju halaman umun yang bisa diakses oleh siapa
saja, seperti halaman penjelasan BFS, Dijkstra, Graph,
Unilever, menu cari rute dengan BFS dan Dijkstra, serta menu
login admin.
Menu Login
Menulogin merupakan menu untuk login kedalam
administrator dengan hak akses hanya pada admin. Selanjutnya
akan tampil menu-menu dalam halaman admin.
1. Menu tambah titik
Menu ini merupakan menu untuk menginputkan titik
distribusi baru kedalam tabel titik.
2. Menu daftar titik
Menu ini merupakan menu untuk menampilkan daftar titik
distribusi yang sudah di inputkan.
3. Menu tambah rute
Menu ini digunakan untuk menambah rute atau jalur
untuk proses pencarian.
4. Menu daftar rute
Menu ini menampilkan daftar rute yang suda dibuat pada
menu tambah rute diatas.
36

3.4.1 Desain Halaman User

HEADER

MENU NAVIGASI
HALAMAN HOME
Matode 1

Tujuan
Proses
Matode 2
Tujuan

Proses
Login
User
Pass
Proses

FOOTER

Gambar 3.8 Desain Form User


Desain diatas merupakan halaman dimana user dapat mencari
rute minimum sebagai percobaan secara komputasi yang nantinya
akan menghasilkan titik yang harus dilewati dengan akumulasi
jarak dari titik keberangkatan sampai tujuan.
Berikut rancangan menu yang ada pada menu user antara lain :
1. Menu Simulasi Dijkstra
2. Menu Simulasi BFS
3. Login
4. Form Tampil Rute Hasil Proses

37

3.4.2 Desain Halaman Admin


HEADER

MENU NAVIGASI

HALAMAN DEPAN ADMIN

FORM CAR 1

FORM CAR 2

MENU ADMIN

WELCOME ADMIN

FOOTER

Gambar 3.9 Desain Form Admin


Desain ini merupakan halaman diamana pengguna dapat
melakukan pengolahan data atau pembuatan rute jalan yang
nantinya data tersebut dapat dimanfaatkan oleh user untuk
melakukan simulasi secara komputasi.
Terdapat beberapa form Pengolahan data dalam halaman admin
diataranya adalah sebagai berikut :
1) Form input
2) Daftar titik
3) Tambah rute
4) Daftar Rute

38

3.4.2.1 Desain Form Input Titik


HEADER

INPUT TITIK

MENU NAVIGASI
NAMA TITIK

Matode 1

KET

Tujuan

Proses

Proses

Matode 2
Tujuan

Proses

MENU ADMIN

WELCOME ADMIN

FOOTER

Gambar 3.10 Desain Form Input Titik


Desain diatas merupakan rancangan output form input titik
distribusi baru, sebagai percobaan simulasi rute.

39

3.4.2.2 Desain Form Daftar Titik


HEADER

HALAMAN DAFTAR TITIK

MENU NAVIGASI
NO

NAMA

ALAMAT

UPDATE

Matode 1
Tujuan
Proses

Matode 2
Tujuan
Proses

MENU ADMIN

WELCOME ADMIN

FOOTER

Gambar 3.11 Desain Form Daftar Titik


Desain diatas merupakan rancangan dari form daftar titik sesuai
pengimputan dari form tambah titik dengan keterangan dari
masing-masing titik yang di inputkan oleh admin.

40

3.4.2.3 Desain FormTambah Rute


HEADER

OLAH RUTE

MENU NAVIGASI
TITIK AWAL
Matode 1

TUJUAN

Tujuan
Proses

JARAK

Matode 2

PROSES

Tujuan
Proses

MENU ADMIN

WELCOME ADMIN

FOOTER

Gambar 3.12 Desain Form Tambah Rute


Desain diatas merupakan rancangan form tambah rute. Rute di
ambil dari daftar titik yang telah di inputkan dan nantinya dapat
disesuaikan dengan simulasi graph.

41

3.4.2.4 Desain Form Daftar Rute


HEADER

HALAMAN OLAH RUTE

MENU NAVIGASI

NO

AWAL

AKHIR

JARAK

UPDATE

Matode 1
Tujuan
Proses
Matode 2
Tujuan
Proses

MENU ADMIN

WELCOME ADMIN

FOOTER

Gambar 3.13 Desain Form Daftar Rute


Desain diatas merupakan rancangan dari form daftar rute yang
akan dilalui oleh distributor, yang dibuat dari hasil pengolahan rute
atau penambahan rute.

42

BAB IV
HASIL DAN PEMBAHASAN
4.1 Implementasi
Implentasi merupakan tahap dimana sistem siap dioperasikan
pada tahap yang sebnarnya, sehingga akan diketahui apakah sistem
yang telah ddbuat benar-benar sesuai dengan apa yang telah
direncankan pada waktu perancangan. Pada implementasi perangkat
lunak ini akan dijelaskan bagaimana program Penentuaan Rute
Terpendek dengan Algoritma Dijkstra dan Breadth First Search
(BFS) ini bekerja, dengan menyisipkan tampilan-tampilan halaman
form yang dibuat sesuai dengan analisa kebutuhan proses serta
perancangan yang telah dijelaskan sebelumnya.
4.2 Pembahasan Program
Dalam pembahasan ini akan dijelaskan mengenai alur program
dan kegunaan yang akan dijelaskan dengan tampilan-tampilan desain
program, agar pengguna bisa mengetahui alur dan kegunaan dari
program ini. Berikut merupakan tampilan-tampilan form atau
halaman yang telah dibuat dalam sistem ini.
4.2.1 Halaman Utama (User)
Adalah halaman untuk user dimana terdapat beberapa menu
yang nantinya dapat dipergunakan oleh user untuk melakukan tes
pada simulasi graph yang telah ditampilakan pada halaman home.

43

Gambar 4.1 Halaman Utama


4.2.2 Form Login
Merupakan form dimana admin yang telah terdaftar, dapat
melakukan pengolahan data, seperti halnya input, update, dan
delete data.

Gambar 4.2 Form Login Administrator


Pada gambar diatas admin diminta login dengan user dan
password yang sudah ada dalam database, agara dapat melakukan
akses pada halamana admin. Berikut Pseudocode pada form login.

44

<?php
session_start();
include "file/konek.php";
$user=$_POST['user'];
$psw=md5($_POST['psw']);
$ambil=mysql_query("select * from user where
user='$user' and pass='$psw'");
$cek=mysql_fetch_array($ambil);
$cek2=mysql_num_rows($ambil);
if($cek2!=0)
{
$_SESSION['id']=$cek[0];
header("location:index.php");
}
else
{
header("location:index.php");
}
?>

45

4.2.3 Halaman Admin


Halaman ini adalah halaman dimana admin dapat malakukan
pengolahan data seperti halnya input, update dan delete. Berikut
tampilan pada halaman admin pada gambar dibawah ini.

Gambar 4.3 Halaman Admin


Pada halaman admin terdapat menu-menu pengolahan data
diantaranya adalah sebagai berikut :
4.2.3.1 Form Input Titik

Gambar 4.4 Form Input Titik


46

Untuk gambar 4.3 diatas merupakan tampilan dari form


pengimputan titik baru. Dimana admin diharuskan
mengimputkan data titik yang nantinya akan dijadikan sebuah
rute pada pengolahan rute.
4.2.3.2 Form Daftar Titik

Gambar 4.5 Daftar Titik


Pada gambar 4.4 diatas merupakan form daftar titik-titik
distribusi yang sudah terimputkan kedalam tabel titik denngan
nama titik dan alamat atau keterangan.
4.2.3.3 Form Pengolahan Rute

Gambar 4.6 Form Olah Titik


47

Pada menu ini merupakan form simulasi yang nantinya


digunakan untuk proses komputasi pencarian rute terpendek.
Dimana simulasi rute akan ditentukan terlebih dahulu, misalnya
dari PB dengan jarak 2 Km dan selanjutnya dapat kita
sesuaikan dengan rute yang ada pada simulasi graph.
4.2.3.4 Form Daftar Rute
Sama halnya dengan form daftar titik pada form ini hanya
menampilkan hasil pengolahan rute dari titik ke titik lainnya
sehingga membentuk sirkuit atau rute yang dapat dipergunakan
dalam proses komputasi, dengan jarak yang sudah ditentukan
juga. Berikut tampilan dari form daftar rute.

Gambar 4.7 Form Daftar Rute


4.2.4 Halaman Proses Pencarian Rute
Halaman ini merupakan halaman inti dari program ini, halaman
dimana proses pengimplementasian dari algoritma yang digunakan
pada sistem ini. Berikut form proses pencarian dari masing
algoritma yang diterapkan, dengan mengilustrasikan lintasan dan
titik kedalam bentuk simulasi graph seperti gambar dibawan ini.

48

Gambar 4.8 Gambar Simulasi Graph Rute Pengiriman


Gambar simulasi graph diatas merupakan ilustrasi rute dari
beberapa titik pengiriman barang yang akan dilewati nantinya, dalam
graph dijabarkan titik adalah tempat dan, sisi adalah jalan. Berikut
keterangan dari titik diatas.

49

Tabel 4.1 Keterangan Titik-titik pada Graph


Titik
P
A
B
C
D
E
F
G
H
I
J
K

Keterangan
Jl. Pintu Gerbang
Jl. Pademawu
Jl Trunojoyo
Jl. Raya Galis
Jl. Raya Larangan
Jl. Jelmak
Jl. Larangan Badung
Jl. Raya Palengaan
Jl. Raya Proppo
Jl. Raya Blumbungan
Jl. Raya Kanginan
Jl. Raya Tampung

4.2.4.1 Proses Pencarian BFS

Gambar 4.9 Form Proses Pencarian BFS


Pada gambar diatas pengguna memilih pada combo rute yang
akan dituju kemudian klik tombol cari sehingga menghasilkan
rute yang akan dilewati beserta jarak tempuhnya seperti gambar
dibawah ini.

50

Gambar 4.10 Form Hasil Pencarian BFS


Berikut pembahasan dari gambar diatas sehingga
menghasilkan output pada gambar. Start keberangkatan dari
simpul P ke simpul F, ( PF ).
1.

Iterasi Pengelompokan Rute Yang Berhubungan Dengan Titik


F
Program mencari secara keseluruhan atau melebar kemana
rute terpendek ke titik F, pertama-tama program mencari titik
yang mungkin berhubungan dengan titik F. Dari hasil pencarian
tersebut disimpan ke tabel cek dan beri nilai 1 untuk titik yang
sudah terpenuhi. Untuk lebih jelasnya berikut proses yang terjadi
di database selama proses iterasi pertama.

51

Gambar 4.11 Proses Iterasi Pengecekan BFS


Berikut keterangan dari gambar diatas agar user dapat lebih
memahami pada proses tersebut. Kami sajikan dalam bentuk
tabel keterangan titik dibawah ini .
Tabel 4.2 Tabel Keterangan Pengecekan BFS
Dari
Ke
A
2
7
F
G
13
7
F
C
4
7
F
P
1
2
A
A
2
13
G
B
3
4
C
D
5
4
C
P
1
4
C
P
1
2
A
P
1
3
B
B
3
5
D
P
1
3
B

52

2.

Iterasi Penentuan Rute Terpendek

Gambar 4.12 Iterasi Penentuan Rute BFS


Pada gambar diatas akan dijelaskan hasil dari rute terpendek
yang ditampilkan pada form tampil lintasan. Dari hasil iterasi
pertama pada field status terpenuhi secara keseluruhan pada 12
titik yang ada, sepertin yang sudah dijelaskan diatas. Pada iterasi
kedua di field status2 tidak semua titik tepenuhi, karena disini
merupakan proses pengecekan rute terpendek dari awal ke tujuan.
Pada iterasi kedua program mengecek PB = 2 km dari titik
B program ke titik C sehingga lintasanya menjadi PBC = 6
km. Dari titik C ada pecabangan yaitu F (C-F) dan ke E (C-E),
karena titk CF sudah dicek dan CE tidak ada jalur menuju
tujuan dan akan semakin jauh, maka program kembali looping ke
awal yaitu dari titi, PA = 1 km, dari titik AG sehingga
lintasanya menjadi PAG = 3 km, dari titik GF dengan
jarak 3 km dan lintasan bertambah menjadi PAGF
dengan total jarak keseluruhan 6 km.
Karena pada proses percobaan pertama ini menggunakan
algoritma Breadth First Search yang mencari lintasan terpendek
ke titik tujuan, maka program melakukan pengecekan kembali
53

dari titik PA = 1 km dari titik A ke titik F dan lintasannya


menjadi PAF dengan total jarak 4 km.
Berikut hasil pengecekan dari yang telah di uraikan diatas :
PA = 1
PAG = 3 km
PAGF = 6 km
PAF = 4 km
Dari lintasan yang terbentuk diatas maka akan diurutkan rute
yang menuju ke tujan dari yang terbesar ke terkecil, sehinggan
menghasilkan rute terpendek dari PF adalah PAF dengan
total jarak 4 km.
Berikut gambaran ilustrasi lintasan dalam bentuk simulasi
graph pada proses pencarian dengan BFS, seperti gambar
dibawah ini.

Gambar 4.13 Ilustrasi Proses BFS Pada Graph


54

4.2.4.2 Proses Pencarian Dijkstra

Gambar 4.14 Form Proses Pencarian Dijkstra


Sama halnya dengan proses pencarian dengan BFS, para
proses pencarian dengan Dijkstra pengguna hanya tinggal
memilih simpul tujuan. Hasil output dari proses Dijkstra pada
gambar dibawah ini.

Gambar 4.15 Form Output Proses Dikstra


Berikut pembahasan dari
keberangkatan dari PF.
1.

output

diatas,

dengan

start

Iterasi Pengecekan Rute Yang Berhubungan Dengan Titik


Tujuan F
Untuk proses pada algoritma dijkstra diambil terlebih dahulu
rute-rute yang memungkinkan ada jalur ke titik tujuan F, seperti
pada gambar dibawah ini.

55

Gambar 4.16 Iterasi Pengecekan Dijkstra


Pada gambar diatas nilai 1 adalah nilai dimana penandaan
titik yang terdapat jalur ke titik tujuan sudah terpenuhi dan nilai
0 belum terpenuhi. Berikut keterangan dari gambar 4.12 diatas
dalam bentuk tabel dibawah ini.
Tabel 4.3 Keterangan Pengecekan Dijkstra
Dari
A
G
C
P
A
B
D
P
P
P
B
P

Ke
2
13
4
1
2
3
5
1
1
1
3
1

7
7
7
2
13
4
4
4
2
3
5
3

56

F
F
F
A
G
C
C
C
A
B
D
B

2.

Iterasi Penentuan Rute Terpendek Dijkstra

Gambar 4.17 Iterasi Penentuan Rute Dijkstra


Pertama program mengecek mana simpul yang terpendek
antara simpul PB dengan jarak 2 km dan PA dengan jarak
1km, karena ini menggunakan algoritma Dijkstra yang
mengambil konsep jarak terpendek dari titik keberangkatan
ketitik selanjutnya maka otomatis program akan memilih rute
PA dengan jarak 1 km, dan tetapkan simpul A sebagai node
terpilih dan menjadi node keberangkatan selanjutnya. Dari
simpul A ada 2 percabangan yaitu AG dengan jarak 2 km dan
AF yang merupakan tujuan kita, dengan jarak 3 km, maka
otomatis program akan memilih jalur AG dengan jarak 2 km
dan tetapkan G sebagain node terpilih berikutnya, dari simpul G
ada tiga percabangan yaitu :
GJ = 6 km
GH = 3 km
GF = 3 km

57

Karena dari kedua cabang GJ dan GH tidak terdapat


jalur ke tujuan, simpul F maka program memilih GF dengan
jarak 3 km, dan menghasilkan rute PBEF dengan jarak 6
km. Berikut proses terbentuknya lintasan dari simpul awal ke
tujuan.
PA = 1 km
PAF = 4 km
PAG = 3 km
PAGF = 6 km
Karena pada pecobaan kedua menggunakan algoritma dijkstra
maka program akan menampilkan atau memilih lintasan
PAGF = 6 km, inilah konsep algoritma dijkstra yang
memilih jalur terpendek diantara beberapa simpul atau titik, dapat
membuat seseoran berputar lebih jauh padahal tujuan sudah
didepan mata.

58

Berikut gambaran ilustrasi lintasan dalam bentuk simulasi


graph pada proses pencarian dengan Dijkstra, seperti gambar
dibawah ini.

Gambar 4.18 Ilustrasi Proses Dijkstra Pada Graph


Dari hasil percobaan yang dilakukan untuk menentukan
perbedaan jarak lintasan atau rute terpendek pada algoritma
Breadth First Search dan Dijkstra untuk melakukan pengujian
dipilih beberapa titik tujuan dengan 12 titik rute, dan lintasan
yang sama.
Berikut hasil percobaan yang dilakukan pada masing-masing
algoritma dapat kita lihat pada tabel 4.4 dengan perbedaan jarak
lintasan dan rute yang harus dilalui .

59

Tabel 4.4 Perbandingan Hasil Jarak Kedua Algoritma


No
1
2
3
4
5

Rute

Dari - Ke
PF
PE
PJ
PI
PK

Bfs
P-A-F
P-B-C-E
P-A-G-J
P-B-D-I
P-A-G-J-K

Dijkstra
P-A-G-F
P-A-G-H-E
P-A-G-H-J
P-A-G-H-E-I
P-A-G-H-J-K

Jarak (Km)
Bfs
4
8
9
10
10

Dijkstra
6
11
9
14
10

Dari data pada tabel 4.4 diatas dapat kami sajikan kedalam
bentu grafik perbandingan jarak lintasan yang diperoleh dari
masing-masing algoritma, seperti pada gambar dibawah ini.

Gambar 4.19 Grafik Perbandingan Jarak


60

BAB V
PENUTUP
5.1 Kesimpulan
Dari penelitian dan implementasi mengenenai perbandingan
algoritma Breadth First Search dan Dijkstra berdasarkan jarak
lintasannya, algoritma Breadth First Search menghasilkan jarak
yang lebih kecil dengan rute atau lintasan yang terbentuk lebih
sedikit (P-A-F) seperti pada percobaan 1, dari titik P yaitu (kantor
pusat) ke F yaitu (larangan badung) jumlah jarak yang diperoleh
adalah sebesar 4 km, sedangkan pada algoritma Dijkstra jarak yang
diperoleh adalah 6 km dengan lintasan yang terbentuk lebih banyak
(P-A-G-F), algoritma Dijkstra melakukan proses pencarian dari titik
awal ketitik selanjutnya yang mempunyai bobot paling kecil
sehingga membuat akumulasi total jarak keseluruhan menjadi lebih
besar dari pada Breadth First Search dan mengasilkan rute lebih
banyak yang harus dikunjungi seseorang. Breadth First Search
mencari rute tercepat dari titik awal ke titik tujuan tanpa membuat
seseorang berputar-putar lebih lama sehingga menghasilkan jarak
yang lebih kecil dan rute yang harus dilewati lebih sedikit.
Jadi dapat kita ambil kesimpulan bahwa algoritma Breadth First
Search lebih baik untuk digunakan pada pengiriman barang dengan
satu tujuan, sedangkan algoritma Dikjstra lebih baik digunakan
untuk banyak tujuan dengan banyak tempat yang harus dikunjungi.
Berdasarkan data dari jumlah jarak yang dihasilkan dengan
menggunakan Breadth First Search 0,04 % lebih cepat dari Dijkstra
sedangkan Dijkstra 0,06 % lebih lama dari pada Breadth First Search
dengan hasil akumulasi jarak lebih besar.

61

5.2 Saran
Sebagai saran kepada para pembaca dan peneliti yang ingin
menentukan rute terpendek dengan menggunakan algoritma Breadth
First Search dan Dijkstra, agar dapat melakukan pengembangan
alplikasi ini dan menyelesaikan persoalan rute terpedek dalam ruang
lingkup yang lebih besar dan mengimplentasikannya dengan bahasa
pemrogrgaman yang berbeda dengan menggunakan dua algoritma
yang berbeda.
Untuk para adik tingkat tugas akhir ini dapat dijadikan
pertimbangan untuk penelitian selanjutnya dengan melakukan
perbandingan menggunakan algoritma yang berbeda dari salah satu
algoritma yang pada tugas akhir ini.

62

DAFTAR PUSTAKA

Ahmad Tanzeh. 2011. Metodologi Penelitian Praktis, Teras.


Yogyakarta.
Yuliawati, Yuyun R. 2002. Pencarian Jarak Terpendek Menggunakan
Metode
BFS dan Hill Climbing.
UNIKOM.
Juliansya, Agung. 2010, Ebook Struktur Data, Universitas International
Batam.
Batam.
Noviansah, Nita. 2009, Makalah Teori Graph Tavelling Salesman
Problem (TSP), Institute Teknologi Nasional.
Malang.
Syahriza Lubis, Henny. 2009, Perbandingan Algoritma Dijkstra dan
Greedy Untuk Lintasan Terpendek, USU
Universitas Sumatera Utara Medan.
Munir, Rinaldi. 2009, Makalah Teori Graph, Institute Teknologi
Bandung.
Bandung.
Inggiantowi, Hafid. 2008, Perbandingan Algoritma Penelusuran DFS
dan BFS pada Graph serta Aplikasinya, Institute Teknologi Bandung.
Bandung.
Maratul. 2011. Travelling-Salesman-Problem-tsp. www.blog.uad.ac.id
maratul/2013/04/12 Tanggal Akses :18 Mei 2013
Asyadiq, Hasbi. 2013, Metode Pencarian Jalur Terpendek (Dijkstra
Algorithm).
http://asyadeeq.wordpress.com Tanggal Akses : 31 Mei 2013.

63

LISTING PROGRAM

1.

Psedocode Proses BFS


<?php
include("konek.php");
$tujuan=$_POST['tujuan'];
if($tujuan==1)
{
echo("<h2>TUJUAN BELUM DITENTUKAN</h2>");
echo("<h3>Mau Kemana ???</h3>");
exit();
}
$name=mysql_query("select nama from titik where
id='$tujuan'"); // pilih node tujuan dari tabel titik
$myname=mysql_fetch_array($name);
$hapus=mysql_query("truncate table cek");
// kosongkan isi tabel cek sebelumnya
$masuk=mysql_query("insert into cek select '', awal, akhir,
jarak, 0, 0, 0, 0 from rute where akhir='$tujuan'");
//iterasi pemilihan rute yang mungkin ditempuh
$loop1=mysql_query("select awal, akhir, jarak, status from cek
where status=0");
while($hasil=mysql_fetch_array($loop1))
{
$masuk=mysql_query("insert into cek select '',awal, akhir,
jarak, 0, 0, 0, 0 from rute where akhir='$hasil[0]'") or
die("Gagal Masuk ");
$update=mysql_query("update cek set status=1 where
awal=$hasil[0] and akhir=$hasil[1]");
$loop1=mysql_query("select awal, akhir, jarak, status from cek
where status=0");
}
//iterasi pengelompokan rute
$loop2=mysql_query("select awal, akhir, jarak, status from cek
where status2=0");
64

$start=1; //keberangkatan
$no=1;
//sebagai nomer urut untuk dalam suatu rute
$no2=1;//sebagai nomer kelompok rute
while($hasil2=mysql_fetch_array($loop2))
{
$rute=mysql_query("select id, awal, akhir, jarak, status from
cek where status2=0 and awal=$start limit 0,1");//or die("Gagal
Masuk ");
if($rute)
{
$alur=mysql_fetch_array($rute);
$start=$alur[2];
$update=mysql_query("update cek set status2=1, urut=$no,
urut2=$no2 where id=$alur[0]");
$loop2=mysql_query("select awal, akhir, jarak, status from
cek where status2=0");
$no++;
if($alur[2]==$tujuan)
{
$no=1;
$no2=$no2+1;
$start=1;
}
}
}
//iterasi pengurutan jarak dari terpendek ke terdekat
$jumlah=mysql_query("select max(urut2) as jalur from cek");
$totalalur=mysql_fetch_array($jumlah);
$ulang=1;
$jarak=0;
$terpendek=10000;
$ruteterpendek="";
for($ulang=1;$ulang<$totalalur['jalur']+1;$ulang++)
{
$jarak=0;
$awal="";
$maju="";
65

$liat=mysql_query("select (select nama from titik where


id=awal) as mangkat,(select nama from titik where id=akhir) as
budih, jarak from cek where urut2='$ulang' order by urut asc");
while($hasilliat=mysql_fetch_array($liat))
{
if($awal==""){
$awal=$hasilliat[0];
}
$jarak=$jarak+$hasilliat[2];
$maju=$maju." ==> ".$hasilliat[1];
}
if($terpendek=="")
{
$terpendek=$jarak;
$ruteterpendek=$awal.$maju;
}
if($terpendek>$jarak)
{
$terpendek=$jarak;
$ruteterpendek=$awal.$maju;
}
}
/*
echo("<tr>
<td>$ulang</td>
<td>$ruteterpendek</td>
<td>$terpendek</td>
</tr>");
*/
?>
<h2>Jarak Terpendek Dengan Algoritma BFS</h2>
<h4>Rute Terpendek Dari Pusat Ke <?php
echo("$myname[0]");?> Adalah :</h4>
<h4>Jalur : <?php echo("$ruteterpendek");?> </h4>
<h4>Jarak : <?php echo("$terpendek");?> Km</h4>
66

2.

Psedocode Proses Dijktra


<?php
error_reporting (E_NOTICE ^ E_ALL);
include("konek.php");
$tujuan=$_POST['tujuan'];
if($tujuan==1)
{
echo("<h2>TUJUAN BELUM DITENTUKAN</h2>");
echo("<h3>Mau Kemana ???</h3>");
exit();
}
$start=1;
$name=mysql_query("select nama from titik where
id='$tujuan'");
$myname=mysql_fetch_array($name);
$hapus=mysql_query("truncate table cek");
$masuk=mysql_query("insert into cek select '', awal, akhir,
jarak, 0, 0, 0, 0 from rute where akhir='$tujuan'");
//iterasi pemilihan rute yang mungkin ditempuh/
$loop1=mysql_query("select awal, akhir, jarak, status from cek
where status=0");
while($hasil=mysql_fetch_array($loop1))
{
$masuk=mysql_query("insert into cek select '',awal, akhir,
jarak, 0, 0, 0, 0 from rute where akhir='$hasil[0]'") or
die("Gagal Masuk");
$update=mysql_query("update cek set status=1 where
awal=$hasil[0] and akhir=$hasil[1]");
$loop1=mysql_query("select awal, akhir, jarak, status from cek
where status=0");
}
//iterasi pengelompokan rute

67

$loop2=mysql_query("select awal, akhir, jarak, status from cek


where status2=0");
$no=1;
$no2=1;
while($hasil2=mysql_fetch_array($loop2))
{
$rute=mysql_query("SELECT id, awal, akhir, jarak FROM cek
WHERE awal='$start' order by jarak asc limit 0,1");
$alur=mysql_fetch_array($rute);
$update=mysql_query("update cek set status2=1, urut=$no
where id='$alur[0]'");
$update=mysql_query("update cek set status2=2 where
awal='$alur[1]' and id!='$alur[0]'");
$loop2=mysql_query("select awal, akhir, jarak, status from cek
where status2=0");
$start=$alur[2];
$no++;
if($alur[2]==$tujuan)
{
break;
}
}
//iterasi pengurutan jarak dari terpendek ke terdekat
$jarak=0;
$awal="";
$maju="";
$liat=mysql_query("select (select nama from titik where
id=awal) as mangkat,(select nama from titik where id=akhir) as
budih, jarak from cek where status2=1 order by urut asc");
while($hasilliat=mysql_fetch_array($liat))
{
if($awal==""){
$awal=$hasilliat[0];
}
68

$jarak=$jarak+$hasilliat[2];
$maju=$maju." ==> ".$hasilliat[1];
}
if($terpendek=="")
{
$terpendek=$jarak;
$ruteterpendek=$awal.$maju;
}
if($terpendek>$jarak)
{
$terpendek=$jarak;
$ruteterpendek=$awal.$maju;
}
?>
<h2>Jarak Terpendek Dengan Algoritma Dijkstra</h2>
<h4>Rute Terpendek Dari Pusat Ke <?php
echo("$myname[0]");?> Adalah :</h4>
<h4>Jalur : <?php echo("$ruteterpendek");?></h4>
<h4>Jarak : <?php echo("$terpendek");?> Km</h4>

69