Implimentasi dan Perbandingan Algoritma L-Deque dan Algoritma Floyd Dalam Pencarian Foto Studio Terdekat di Kota Medan
67
LISTING PROGRAM
Kode Program Algoritma L-Deque:
Public Class Ldeque
Public graph As New List(Of List(Of edge_))()
Private shortestDistances As New List(Of Double)()
Private predecessorVertex As New List(Of Double)()
Public totalJarak As Double
Public path As List(Of Integer)
Private watch As New Classes.Stopwatch()
Public elapsedTimeMs As Double = 0
Public Sub New(graph As List(Of List(Of edge_)))
Me.graph = graph
path = New List(Of Integer)()
End Sub
Public Sub LQueue(startIndex As Integer, toIndex As Integer)
watch.start()
path.Add(toIndex)
Dim INF As Double = Double.PositiveInfinity
Dim deque As New Deque()
For Each pair As List(Of edge_) In graph
shortestDistances.Add(INF)
predecessorVertex.Add(-1)
Next
shortestDistances(startIndex) = 0
deque.PushBack(startIndex)
While deque.Count 0
Dim u As Integer = deque.PopFront(Of Integer)
For Each pair As edge_ In graph(u)
Dim v As Integer = pair.toIndex
If shortestDistances(v) > shortestDistances(u) +
pair.cost Then
If Not deque.Contains(v) Then
If (shortestDistances(v) =
Double.PositiveInfinity) Then
deque.PushBack(v)
Else
deque.PushFront(v)
End If
End If
shortestDistances(v) = shortestDistances(u) +
pair.cost
predecessorVertex(v) = u
End If
Next
End While
getPath(startIndex, toIndex)
totalJarak = shortestDistances(toIndex)
elapsedTimeMs = watch.[stop]()
End Sub
Public Sub getPath(u As Integer, v As Integer)
Universitas Sumatera Utara
68
Dim k As Double
k = predecessorVertex(v)
If k = -1 OrElse u = v Then
Return
End If
path.Add(CInt(Math.Truncate(k)))
getPath(u, CInt(Math.Truncate(k)))
End Sub
End Class
Kode Program Algoritma Floyd :
Public Class Floyd
Public P As List(Of List(Of Double))
Public M As List(Of List(Of Double))
Public totalJarak As Double
Public startIndex As Integer
Public endIndex As Integer
Public result As List(Of Integer)
Public N As Integer
Private watch As New Classes.Stopwatch()
Public elapsedTimeMs As Double = 0
Public Sub init(inputTable As List(Of List(Of Double)), N As
Double)
Me.N = CInt(Math.Truncate(N))
P = New List(Of List(Of Double))()
result = New List(Of Integer)()
M = inputTable
For i As Integer = 0 To N - 1
P.Add(New List(Of Double)())
For j As Integer = 0 To N - 1
P(i).Add(-1)
Next
Next
End Sub
Public Function calculateShortestPath(startIndex As Integer,
endIndex As Integer) As List(Of Integer)
Me.startIndex = startIndex
Me.endIndex = endIndex
watch.start()
result.Add(startIndex)
FloydAlgo(M)
getPath(startIndex, endIndex)
Universitas Sumatera Utara
69
If totalJarak Double.PositiveInfinity Then
result.Add(endIndex)
End If
elapsedTimeMs = watch.[stop]()
Return result
End Function
Public Sub getPath(u As Integer, v As Integer)
Dim k As Double
k = P(u)(v)
If k = -1 Then
Return
End If
getPath(u, CInt(Math.Truncate(k)))
result.Add(CInt(Math.Truncate(k)))
getPath(CInt(Math.Truncate(k)), v)
End Sub
Public Function FloydAlgo(M As List(Of List(Of Double))) As
List(Of List(Of Double))
For k As Integer = 0 To N - 1
For i As Integer = 0 To N - 1
For j As Integer = 0 To N - 1
If M(i)(k) + M(k)(j) < M(i)(j) Then
M(i)(j) = M(i)(k) + M(k)(j)
P(i)(j) = k
End If
Next
Next
Next
totalJarak = M(startIndex)(endIndex)
Return M
End Function
Public Function min(i As Integer, j As Integer) As Integer
If i > j Then
Return j
End If
Return i
End Function
End Class
Universitas Sumatera Utara
70
CURRICULUM VITAE
Data Diri
Nama
: Kevin Irfanda
Tempat/Tanggal Lahir
: Medan, 20 November 1994
Alamat Sekarang
Medan 20127
: Jl. Binjai km 9,1 No. 17 Kp. Lalang,
Alamat Orang Tua
: Jl. Binjai km 9,1 No. 17 Kp. Lalang,
Medan 20127
Agama
: Islam
Jenis Kelamin
: Laki-Laki
Nomor Hp
: 082362675907
Email
: kevinirfanda20@gmail.com
Riwayat Pendidikan
2000 – 2006
: SD Swasta Supriyadi
2006 – 2009
: SMP Negeri 30 Medan
2009 – 2012
: SMK Negeri 9 Medan
2012 – Sekarang
: S1 Ilmu Komputer Universitas Sumatera Utara, Medan
Keahlian
Bahasa
: Indonesia, Inggris
Bahasa Pemrograman : C#, Visual Basic
DBMS
: MySQL
Multimedia
: Adobe Flash
Design
: Photoshop
Perkantoran
: Microsoft Office, Microsoft Excel
Universitas Sumatera Utara
71
Pengalaman Kepanitiaan
2012
: Anggota Publikasi Dekorasi dan Dokumentasi Dies Natalis IMILKOM
2013
: Anggota Dana Ilkom Goes To School 2013
2014
: Anggota Publikasi Dekorasi dan Dokumentasi Porseni IMILKOM
2014
: Anggota Publikasi Dekorasi dan Dokumentasi PMB 2014
2014
: Anggota Acara Meet & Greet Kam Rabbani
2014
: Anggota Acara ARTechno 2014
2014
: Anggota Acara Science Competition 2014
Pengalaman Organisasi
2014 – 2015
: Anggota Departemen Komunikasi dan Informasi Ikatan
Mahasiswa Ilmu Komputer USU (IMILKOM USU)
2015 – 2016
: Sekretaris Departemen Komunikasi dan Informasi Ikatan
Mahasiswa Ilmu Komputer USU (IMILKOM USU)
Pengalaman Bekerja
2011
: Praktik Kerja Industri di PT. Telekomunikasi Indonesia, Tbk
2015
: Praktik Kerja Lapangan di PT. Pertamina (Persero)
Seminar
2014
: Seminar Nasional Literasi Informasi “SENARAI”
Universitas Sumatera Utara
DAFTAR PUSTAKA
Gallo, G & Pallotino, S. 1986. Shortest Path Methods : A Unifying Approach.
Mathematical Programming Study 26: 38-64.
Harahap, R.C. 2015. Implimentasi Algoritma Floyd
Warshall Dalam
Menentukan Jarak Terpendek (Medan - Bandara Kuala Namu). Skripsi.
Universitas Sumatera Utara.
Hayati, E.N. & Yohanes, A. 2014. Pencarian Rute Terpendek Menggunakan
Algoritma Greedy. Prosiding Seminar Nasional IENACO 2014, pp. 391397.
Kriswanto, Y.R., Bendi, R.K.J. & Aliyanto, A. 2014. Penentuan Jarak Terpendek
Dengan Algoritma Floyd Warshall. Prosiding Seminar Nasional Teknologi
Informasi dan Komunasi Terapan 2014 (SEMANTIK 2014), pp. 209-216.
Munir, R. 2014. Matematika Diskrit. Edisi Revisi Kelima. Informatika Bandung:
Bandung.
Pinem, A. 2014. Analisis dan Perbandingan Algoritma A* Dan Kombinasi
Floyd-Warshall Dengan Bryte Force Pada Penentuan Jalur Monitoring Di
Badan Penanaman Modal Kota Medan. Skripsi. Universitas Sumatera
Utara.
Purwananto, Y., Purwitasari, D. & Wibowo, A.W. 2005. Implementasi dan
Analisis Algoritma Pencarian Rute Terpendek di Kota Surabaya. Jurnal
Penelitian dan Pengembangan TELEKOMUNIKASI Vol.10, No.2: 94-101.
Siang, J.J. 2006. Matematika Diskrit dan Aplikasinya Pada Ilmu Komputer.
Yogyakarta: Penerbit Andi.
Universitas Sumatera Utara
14
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 Foto Studio Terdekat
Di Kota Medan ini merupakan aplikasi untuk menentukan jarak 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 foto studio yang diinginkan diperlukan suatu cara yang cepat dalam
mencari jarak 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 foto studio terdekat di Kota Medan dengan
menggunakan dua buah algoritma yaitu algoritma L-Deque dan Algoritma Floyd.
Permasalahan pada penelitian ini, bukan hanya sebatas pencarian jarak terdekat
dengan dua buah algoritma L-Deque dan algoritma Floyd, tetapi juga dengan
membandingkan jarak, real running time time, dan hasil kerja kedua algoritma tersebut
dan dalam pengaplikasiannya graf dibentuk dengan mengikuti peta Kota Medan, dimana
vertex ditentukan berdasarkan beberapa nama foto studio besar yang telah di pilih yang
terdapat di Kota Medan, dan edge merupakan panjang jarak jalan yang akan dilalui
nantinya dari foto studio satu ke foto studio lainnya.
Universitas Sumatera Utara
15
Terdapat 10 nama foto studio besar di Kota Medan yang telah dipilih dan akan
diterapkan kedalam graf pada sistem yang dibuat, nama-nama foto studio yang
digunakan dapat dilihat pada Tabel 3.1 berikut:
Tabel 3.1 Nama-Nama Foto Studio yang Menjadi Vertex
No
Nama Foto Studio
1
My Studio Photography
2
Maripro
3
Topaz Hexagon
4
Lensa 10 Studio
5
Studio Bukkola
6
HW Photo Studio
7
Proffesional Photo Studio & Bridal
8
Raja Photo Studio - Bridal Medan
9
Quality Photo Studio
10
Junio Photo Studio
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 foto studio yang ada di Kota Medan.
Berikut peta rute/jalan dari 10 foto studio yang telah dipilih untuk menuju foto studio
yang diinginkan di Kota Medan dan dapat dilihat pada Gambar 3.1.
Universitas Sumatera Utara
16
Gambar 3.1 Peta atau Rute Foto Studio di Kota Medan
Universitas Sumatera Utara
17
Dalam representasi graf, penentuan hubungan antar simpul (vertex) dan sisi (edge) pada
graf foto studio 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 foto studio di Kota Medan yang telah
dipilih dapat lihat pada Tabel 3.2.
Tabel 3.2 Data Simpul (Vertex) Pada Graf Foto Studio di Kota Medan
No
Nama Vertex
1
My Studio Photography
2
Maripro
3
Topaz Hexagon
4
5
6
7
Lensa 10 Studio
Studio Bukkola
HW Photo Studio
Professional Photo Studio &
Bridal
Nama Tetangga
Maripro
Topaz Hexagon
My Studio Photography
Topaz Hexagon
HW Photo Studio
My Studio Photography
Maripro
Studio Bukkola
HW Photo Studio
Professional Photo Studio &
Bridal
Topaz Hexagon
Studio Bukkola
Raja Photo Studio - Bridal
Medan
Topaz Hexagon
Lensa 10 Studio
Professional Photo Studio &
Bridal
Raja Photo Studio – Bridal
Medan
Maripro
Topaz Hexagon
Professional Photo Studio &
Bridal
Topaz Hexagon
Studio Bukkola
HW Photo Studio
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
Bobot
3,2 km
3,9 km
1,9 km
4,8 km
6,3 km
4,1 km
3,6 km
7,0 km
3,0 km
3,6 km
4,7 km
2,6 km
5,2 km
5,0 km
1,6 km
4,9 km
3,7 km
4,4 km
2,5 km
0,6 km
2,4 km
6,4 km
1,3 km
7,3 km
7,6 km
Universitas Sumatera Utara
18
8
9
10
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
Junio Photo Studio
Lensa 10 Studio
Studio Bukkola
Professional Photo Studio &
Bridal
Quality Photo Studio
Junio Photo Studio
Professional Photo Studio &
Bridal
Raja Photo Studio – Bridal
Medan
Junio Photo Studio
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
5,0 km
4,5 km
7,5 km
8,7 km
5,5 km
4,1 km
5,8 km
5,6 km
4,6 km
5,8 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.
Material
Metode
Algoritma L-Deque
Jarak
Algoritma Floyd
Rute
Node Asal dan Tujuan
Informasi Tempat Studio Foto
Tidak Mengetahui Cara
Kerja Algoritma
User
Menampilkan Hasil Pencarian
dan Perbandingan Kedua Algoritma
Penentuan Pencarian Foto
Studio Terdekat Di Kota
Medan dengan Algoritma
L-Deque dan Floyd
Belum adanya aplikasi untuk
mencari tempat foto studio
terdekat di Kota Medan
Sistem
Gambar 3.2 Diagram Ishikawa
Universitas Sumatera Utara
19
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 L-Deque, algoritma Floyd dan Hsil 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 diaman user
sebelumnya user belum mengetahui cara kerja sistem. Sistem adalah hal yang akan
dilakukan atau dibuat yaitu dengan membuat aplikasi pencarian foto studio terdekat di
Kota Medan dengan menggunakan algoritma L-Deque dan algoritma Floyd, 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 jarak dan waktu pencarian foto studio
terdekat di Kota Medan dengan membandingkan dua buah algoritma yaitu L-Deque dan
Floyd, terdapat beberapa persyaratan fungsional antara lain:
1. Sistem ini menggunakan graf foto studio 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 foto studio 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 foto studio tersebut dengan menambahkannya pada fitur yang
telah tersedia.
4. Sitem ini mendapatkan hasil pencarian dengan graf menggunakan dua algoritma
yaitu L-Deque dan Floyd dapat diterapkan pada sistem.
5. Sistem menghasilkan real running time dengan menggunakan dua algoritma yaitu LDeque dan Floyd, sistem dapat menentukan kecepatan proses dari masing-masing
algoritma.
Universitas Sumatera Utara
20
6. Sistem mendapatkan hasil pada graf dengan menggunakan dua algoritma L-Deque
dan Floyd yang dapat menentukan rute mana saja yang akan dilalui yang diterapkan
dalam sistem.
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. Performa
Sistem atau perangkat lunak yang akan dibangun harus dapat menunjukkan hasil
running time dan rute foto studio dari algoritma yang diterapkan yaitu algoritma LDeque dan Floyd.
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, real running time, rute foto studio
yang akan dilalui dan hasil kerja dari kedua algoritma yang dibandingkan.
3.1.3 Analisis Proses
Pembangunan sistem menggunakan bahasa pemrograman Visual Basic 2010. Algoritma
yang digunakan untuk mencari foto studio terdekat di Kota Medan adalah L-Deque dan
Floyd, hasil kerja dari kedua algoritma tersebut akan dibandingkan untuk mendapatkan
hasil yang baik dari graf yang telah terbentuk.
Universitas Sumatera Utara
21
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.
3.1.4.1 Flowchart Sistem
Flowchart dari sistem yang dibangun dapat dilihat pada Gambar 3.3.
Gambar 3.3 Flowchart Sistem
Universitas Sumatera Utara
22
3.1.4.2 Flowchart Algoritma L-Deque
Flowchart dari algoritma L-Deque dapat dilihat pada Gambar 3.4.
Gambar 3.4 Flowchart Algoritma L-Deque
Keterangan:
P: Titik Awal
d(u): Jarak Awal
Q: Titik Tujuan
d(v): Jarak Tujuan
I: Panjang Jarak Awal ke Tujuan
Universitas Sumatera Utara
23
3.1.4.3 Flowchart Algoritma Floyd
Flowchart dari algoritma Floyd dapat dilihat pada Gambar 3.5.
Gambar 3.5 Flowchart algoritma Floyd
Keterangan:
i, j, k : indeks jarak
n: bilangan ke n
Universitas Sumatera Utara
24
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 dititikberatkan pada
fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian.
Berikut use case diagram dapat dilihat pada Gambar 3.6.
Gambar 3.6 Use Case Diagram
Universitas Sumatera Utara
25
3.2.2. Activity Diagram
Activity diagram dapat menggambarkan proses bisnis dan urutan aktivitas dalam sebuah
proses, serta dapat menggambarkan alir aktivitas kerja pada sistem yang sedang
dirancang ataupun berjalan, bagaimana masing-masing alur berawal, decision yang
mungkin terjadi, dan bagaimana berakhir.
3.2.2.1 Activity Diagram Cara Menampilkan Graf
Activity diagram pada gambar 3.7 menjelaskan proses kerja dari sistem untuk
menampilkan graf dari foto studio yang telah ditentukan. Activity diagram sistem pada
aplikasi yang dibuat dapat dilihat pada Gambar 3.7.
Gambar 3.7 Activity Diagram Cara Menampilkan Graf
3.2.2.2 Activity Diagram Cara Kerja Sistem
Activity diagram pada gambar 3.8 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.8.
Universitas Sumatera Utara
26
Gambar 3.8 Activity Diagram Cara Kerja Sistem
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.9
Universitas Sumatera Utara
27
Gambar 3.9 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, Foto Studio ke Foto Studio, 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.10
dan keterangan gambar rancangan halaman pada Tabel 3.3.
Universitas Sumatera Utara
28
Gambar 3.10 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 “Home” untuk menampilkan beranda sistem
3
Menu “Foto Studio Ke Foto Studio” untuk menampilkan graf , rute dan
perbandingan hasil algoritma
4
Menu “Pengaturan” untuk mengelola vertex dan edge
5
Menu “Bantuan” untuk menampilkan halaman pentunjuk penggunaan
sistem
6
Menu “Tentang” untuk menampilkan data dari penulis
7
Text Box untuk menampilkan judul skripsi, nama dan NIM
8
Picture Box untuk menampilkan logo Universitas Sumatera Utara
9
Text Box untuk menampilkan program studi
Universitas Sumatera Utara
29
3.3.2 Halaman Menu Foto Studio ke Foto Studio
Halaman Foto Studio Ke Foto Studio merupakan halaman yang tampil saat pengguna
memilih menu Foto Studio ke Foto Studio pada halaman utama Home. 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 Foto Studio ke Foto Studio dapat dilihat pada
Gambar 3.11 dan keterangan gambar rancangan halaman pada Tabel 3.4.
Gambar 3.11 Rancangan Antarmuka Halaman Menu Foto Studio ke Foto Studio
Universitas Sumatera Utara
30
Tabel 3.4 Keterangan Gambar Rancangan Antarmuka Halaman Foto Studio ke
Foto Studio
No
Keterangan
1
Menu “Home” untuk menampilkan beranda sistem
2
Menu “Foto Studio Ke Foto Studio” untuk menampilkan graf , rute
dan perbandingan hasil algoritma
3
Menu “Pengaturan” untuk mengelola vertex dan edge
4
Menu “Bantuan” untuk menampilkan halaman pentunjuk penggunaan
sistem
5
Menu “Tentang” untuk menampilkan data dari penulis
6
Label untuk Tentukan Rute
7
Material Flat Button untuk Dari
8
Material Flat Button untuk Ke
9
Combo Box untuk node asal
10
Combo Box untuk node tujuan
11
Combo Box untuk Pilihan Algoritma
12
Button untuk menampilkan Hasil
13
List View untuk menampilkan Rute
14
Material Flat Button untuk Total Jarak
15
Material Flat Button untuk Execution Time
16
WPF Element Host untuk menampilkan Graf
17
Button untuk menampilkan graf yang teracak
3.3.3 Halaman Menu Pengaturan
Halaman Pengaturan 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 Pengaturan dapat dilihat pada Gambar
3.12 dan keterangan gambar rancangan halaman pada Tabel 3.5.
Universitas Sumatera Utara
31
Gambar 3.12 Rancangan Antarmuka Halaman Menu Pengaturan
Tabel 3.5 Keterangan Gambar Rancangan Antarmuka Halaman Pengaturan
No
Keterangan
1
Tree View untuk menu root menampilkan vertex yang terdapat pada graf
2
Button untuk menghapus node yang dipilih
3
Button untuk Tag
4
Label untuk Tag
5
Button untuk nama node
6
Label untuk menampilkan nama node
7
Button untuk memberikan alamat node
8
Label untuk menampilkan alamat node
9
Combo Box untuk memilih vertex yang bisa ditambahkan
10 Button untuk menambahkan tetangga (neighbor) pada vertex
Universitas Sumatera Utara
32
11 List View untuk menampilkan tetangga , jarak dan rute
12 Button untuk menghapus sebuah tetangga (neighbor)
13 Text Field untuk menginputkan nama sebuah node (vertex) baru
14 Button untuk menghasilkan sebuah node baru
3.3.
4
Hal
ama
n
Men
15 Button untuk membuka direktori dan memilih graf
16 Button untuk menyimpan graf
u Bantuan
Halaman Bantuan merupakan halaman yang tampil saat pengguna memilih menu pada
menu bar. Pada halaman ini pengguna dapat melihat petunjuk penggunaan dari sistem.
Adapun rancangan halaman menu Bantuan dapat dilihat pada Gambar 3.13 dan
keterangan gambar rancangan halaman pada Tabel 3.6.
Gambar 3.13 Rancangan Antarmuka Halaman Menu Bantuan
Universitas Sumatera Utara
33
Tabel 3.6 Keterangan Gambar Rancangan Antarmuka Halaman Bantuan
No
Keterangan
1
Label untuk menampilkan judul petunjuk penggunaan system
2
Text Box untuk menampilkan urutan penggunaan system
3.3.5 Halaman Menu Tentang
Halaman Tentang merupakan halaman yang berisi biodata penulis dan penjelasan
lainnya, Adapun rancangan halaman menu Tentang dapat dilihat pada Gambar 3.14 dan
keterangan gambar rancangan halaman pada Tabel 3.7.
Gambar 3.14 Rancangan Antarmuka Halaman Menu Tentang
Tabel 3.7 Keterangan Gambar Rancangan Antarmuka Halaman Tentang
No
Keterangan
1
Label untuk menampilkan Tentang
2
Picture Box untuk menampilkan foto penulis
Universitas Sumatera Utara
34
3
Text Box untuk menampilkan data penulis
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem.
Sistem ini dibangun dengan menggunakan bahasa pemrograman Visual Basic 2015 dan
menggunakan Visual Studio 2015. Pada sistem ini terdapat 5 (lima) tampilan halaman,
yaitu Halaman Home, Halaman Foto Studio ke Foto Studio, Halaman Pengaturan,
Halaman Bantuan dan Halaman About.\
4.1.1 Tampilan Halaman Menu Home
Halaman home merupakan tampilan halaman yang muncul pertama sekali pada saat
sistem dijalankan. Halaman ini berisi judul sistem, nama dan nim penulis, logo
Universitas dan nama Pogram Studi. Tampilan halaman menu home dapat dilihat pada
gambar 4.1
Gambar 4.1 Tampilan Halaman Menu Home
Universitas Sumatera Utara
36
4.1.2 Tampilan Halaman Menu Foro Studio ke Foto Studio
Halaman menu Foto Studio ke Foto Studio merupakan halaman yang digunakan untuk
mengatur node awal dan node tujuan pada graf, menampilkan rute yang akan dilalui
serta menampilkan hasil total jarak dan execution time dari graf. Tampilan menu Foto
Studio ke Foto Studio dapat dilihat pada gambar 4.2.
Gambar 4.2 Tampilan Halaman Menu Foto Studio ke Foto Studio
4.1.3 Tampilan Halaman Menu Pengaturan
Tampilan halaman pengaturan merupakan halaman yang tampil saat pengguna memilih
menu pada menubar. 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). Tampilan halaman menu pengaturan dapat dilihat pada
gambar 4.3.
Universitas Sumatera Utara
37
Gambar 4.3 Tampilan Halaman Menu Pengaturan
4.1.4 Tampilan Halaman Menu Bantuan
Tampilan halaman Bantuan merupakan halaman yang tampil saat pengguna memilih
menu pada menu bar. Pada halaman ini pengguna dapat melihat petunjuk penggunaan
dari system. Tampilan halaman menu bantuan dapat dilihat pada gambar 4.4.
Gambar 4.4 Tampilan Halaman Menu Bantuan
Universitas Sumatera Utara
38
4.1.5 Tampilan Halaman Menu Tentang
Tampilan halaman menu tentang merupakan halaman yang berisi biodata penulis dan
penjelasan lainnya. Tampilan halaman menu tentang dapat dilihat pada gambar 4.5.
Gambar 4.5 Tampilan Halaman Menu Tentang
4.2 Pengujian
Pengujian sistem merupakan tahap lanjutan setelah implementasi sistem. Pengujian
sistem bertujuan untuk membuktikan sistem yang dibangun telah berjalan dengan baik.
Pengujian sistem ini dilakukan pada graf Foto Studio yang telah ditentukan dengan 10
buah simpul (vetex) dan 36 buah sisi (edge).
4.2.1 Pengujian Proses Implementasi
Untuk melakukan proses pengujian pertama kali yang harus dilakukan adalah klik load
graf, dengan cara menuju halaman Pengaturan. Tampilan load graf dapat dilihat pada
gambar 4.6.
Universitas Sumatera Utara
39
Gambar 4.6 Tampilan Load Graf
User hanya dapat membuka graf yang sudah dibuat terlebih dahulu atau telah tersedia
dalam hal ini graf Foto Studio yang telah ditentukan. Setelah user menekan button load
maka sistem akan menampilkan graf yang tersedia untuk dipilih dan dimasukkan ke
dalam proses pengujian. Kemudian graf dapat ditampilkan dalam sistem dengan
membuka halaman Foto Studio ke Foto Studio kemudian menekan button reload dapat
membantu untuk menampilkan graf yang lebih baik, graf yang telah di load dapat dilihat
pada gambar 4.7.
Gambar 4.7 Tampilan Hasil Graf yang Dimasukkan Dalam Sistem
Universitas Sumatera Utara
40
Setelah user memasukkan graf kemudian user dapat melihat nama setiap Foto Studio
dan Alamat setiap Foto Studio, dengan cara mengarahkan kursor ke node (vertex).
Tampilan tersebut dapat dilihat pada gambar 4.8
Gambar 4.8 Tampilan Nama dan Alamat Setiap Foto Studio
4.2.2 Pengujian Proses Algoritma L-Deque
Deque sebuah daftar yang menggabungkan sifat-sifat dari kedua antrian dan tumpukan
atau antrian. Sebuah deque adalah daftar di mana penambahan dan penghapusan yang
mungkin di kedua ujung. Proses pencarian Foto Studio dengan menggunakan algoritma
L-Deque dapat dilihat pada gambar 4.9.
Universitas Sumatera Utara
41
Gambar 4.9 Tampilan Pengujian Pencarian Foto Studio dengan Algoritma LDeque
4.2.2.1 Perhitungan Manual Algoritma L-Deque
Contoh pencarian lintasan terpendek dengan maenggunakan algoritma L-Deque dapat
dilihat pada gambar 4.11 berikut
Gambar 4.10 Graf Algoritma L-Deque
Tentukan node yang akan menjadi titik asal kemudian tentukan node yang akan
menjadi titik tujuan. Pencarian dilakukan dengan cara penempatan di dalam sebuah
array Deque dan menggunakan dua buah petunjuk yaitu LEFT dan RIGHT, yang
berturut-turut menunjuk pada sisi kiri dan sisi kanan deque.
Diketahui: Titik Asal = E, Titik Tujuan = B
Circular Deque dengan 4 array memori
Universitas Sumatera Utara
42
Maka dapat dilakukan pencarian dalam penempatan sebuah array
D
C
Dilakukan operasi berturut turut:
1. B ditambahkan ke kanan dari sebuah array/deque
2. 1 item dihapus yang paling kanan
3. E ditambahkan ke bagian kiri
4. B ditambahkan ke bagian paling kanan
5. Array telah penuh.
Jawab :
1. _, D, C, B
2. _, D, C, _
3. E, D, C, _
4. E, D, C, B
5. LEFT + RIGHT+1, Queue penuh dan terjadi OVERFLOW
4.2.3 Pengujian Proses Algoritma Floyd
Algoritma Floyd-Warshall adalah sebuah Algoritma Analisis graf untuk mencari bobot
minimum dari graf berarah. Algoritma Floyd-Warshall adalah matriks hubung graf
berarah berlabel, dan keluarannya adalah path terpendek dari semua titik ke titik yang
lain.
Proses pencarian jalur terpendek dengan algoritma floyd menggunakan
inisialisasi matriks dalam perhitungan manual nya. Matriks yang digunakan merupakan
representasi dari graf yang dipakai dalam pengujian, Dalam sistem ini 10 node yang
akan diuji maka matriks yang digunakan adalah matriks 10x10 dalam contoh pengujian
kali ini penulis menggunakan graf yang terdiri dari 10 node (a, b, c, d, e, f, g, h, i, j).
Dalam melakukan proses perhitungan inisialisasikan sebuah graf ke dalam matriks.
Tampilan pemilihan graf dapat dilihat pada gambar 4.11.
Universitas Sumatera Utara
43
Gambar 4.11 Tampilan Pemilihan Graf
Setelah graf di tampilkan, maka akan dilakukan pengujian terhadap graf untuk
menentukan lintasan terpendek dari satu node asal menuju node tujuan atau dalam hal
ini yaitu Foto Studio ke Foto Studio lainnya yang dapat ditentukan oleh user.
Gambar 4.12 Tampilan Pengujian Pencarian Foto Studio dengan Algoritma Floyd
4.2.3.1 Perhitungan Manual Algoritma Floyd
Langkah 1. Inisialisasi graph ke dalam matriks
Universitas Sumatera Utara
44
Gambar 4.13 Graf Floyd
Tabel 4.1 Inisialisasi Matriks
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
∞
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
∞
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Langkah 2. Mencari nilai jarak dengan perhitungan matriks
Dari matriks inisialisasi dapat dicari R0, R1, R2, R3, hingga R9. Dalam gambar Graf
4.11 diatas terdapat 10 buah titik, yaitu A, B, C, D, E, F, G, H, I, J, maka akan ada 10
proses yang akan dilewati sebagai hasil akhir, perlu diingat bahwa hasil dari sebuah
proses akan digunakan untuk proses berikutnya. Berdasarkan proses perhitungan baris
pertama kolom pertama pada matriks diatas, akan didapatkan hasil seperti berikut.
Universitas Sumatera Utara
45
Tabel 4.2 Matriks R0
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
∞
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
∞
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R0
Universitas Sumatera Utara
46
Tabel 4.3 Matriks R1
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
9,5
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
6,3
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R1
Universitas Sumatera Utara
47
Tabel 4.4 Matriks R2
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
∞
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
8,3
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
∞
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R2
Universitas Sumatera Utara
48
Tabel 4.5 Matriks R3
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
8,3
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
∞
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,8
13,3
9,7
5
4,5
12,7
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R3
Universitas Sumatera Utara
49
Tabel 4.6 Matriks R4
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
15,5
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
13,2
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
12,5
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R4
Universitas Sumatera Utara
50
Tabel 4.7 Matriks R5
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
6,9
15,5
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
13,2
∞
∞
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
12,5
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R5
Universitas Sumatera Utara
51
Tabel 4.8 Matriks R6
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
∞
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
15,1
∞
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,5
∞
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
∞
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
11,8
10,5
5,4
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R6
Universitas Sumatera Utara
52
Tabel 4.9 Matriks R7
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
18,2
17,7
14,1
9,6
9,1
13,4
12,1
4,6
5,8
0
Proses Perhitungan Jarak R7
Universitas Sumatera Utara
53
Tabel 4.10 Matriks R8
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
16,4
15,6
12,3
9,6
9,1
11,2
9,9
4,6
5,8
0
Proses Perhitungan Jarak R8
Universitas Sumatera Utara
54
Tabel 4.11 Matriks R9
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
16,4
15,6
12,3
9,6
9,1
11,2
9,9
4,6
5,8
0
Proses Perhitungan Jarak R9
Universitas Sumatera Utara
55
4.3 Real Running-Time
Untuk mencari real running time harus dilakukan proses pengujian sistem dengan
algoritma L-Deque dan algoritma Floyd dimana sebelum mengetahui real running timenya user harus memilih titik awal foto studio dia berada untuk menuju foto studio yang
akan dikunjungi. Akan dilakukan tiga kali proses pengujian. Proses pengujian pertama
akan dicari foto studio “A” ke foto studio “J” dengan menggunakan algoritma L-Deque
dan dapat dilihat pada gambar 4.14.
Gambar 4.14 Hasil Pengujian Pertama dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian pertama dengan algoritma Floyd
dapat dilihat pada gambar 4.15.
Universitas Sumatera Utara
56
Gambar 4.15 Hasil Pengujian Pertama dengan Algoritma Floyd
Dari pengujian pertama didapatkan total jarak dengan algoritma L-Deque yaitu 19,9 km
dan execution time yang didapat yaitu 0,0333ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 19,9km dan execution time yang didapat yaitu 0,2198ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk pengujian kedua, akan dilakukan perubahan yaitu dengan
Proses
pengujian yang dicari yaitu foto studio “I” ke foto studio “A” Hasil pengujian kedua
dengan menggunakan algoritma L-Deque dapat dilihat pada gambar 4.16.
Universitas Sumatera Utara
57
Gambar 4.16 Hasil Pengujian Kedua dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian kedua dengan algoritma Floyd
dapat dilihat pada gambar 4.17.
Gambar 4.17 Hasil Pengujian Kedua dengan Algoritma Floyd
Dari pengujian kedua didapatkan total jarak dengan algoritma L-Deque yaitu 9,8km dan
execution time yang didapat yaitu 0,0282ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 9,8km dan execution time yang didapat yaitu 0,2527ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
Universitas Sumatera Utara
58
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk pengujian ketiga, akan dilakukan perubahan yaitu dengan
Proses
pengujian yang dicari yaitu foto studio “F” ke foto studio “J” Hasil pengujian kedua
dengan menggunakan algoritma L-Deque dapat dilihat pada gambar 4.18.
Gambar 4.18 Hasil Pengujian Ketiga dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian kedua dengan algoritma Floyd
dapat dilihat pada gambar 4.19.
Universitas Sumatera Utara
59
Gambar 4.19. Hasil Pengujian Ketiga dengan Algoritma Floyd
Dari pengujian kedua didapatkan total jarak dengan algoritma L-Deque yaitu 13,4km
dan execution time yang didapat yaitu 0,0355ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 13,4km dan execution time yang didapat yaitu 0,2523ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk melihat hasil dari ketiga pengujian dengan menggunakan algoritma LDeque dan algoritma Floyd dapat dilihat pada Tabel 4.17.
Tabel 4.12 Hasil Dari Ketiga Pengujian
Pengujian (km/ms)
Pengujian Pertama
Pengujian Kedua
Pengujian Ketiga
Algoritma
Execution
Execution
Jarak
Jarak
Time
Execution
Jarak
Time
Time
L-Deque
19,9
0,0333
9,8
0,0282
13,4
0,0355
Floyd
19,9
0,2198
9,8
0,2527
13,4
0,2523
Universitas Sumatera Utara
60
Dari Tabel 4.17 tersebut dapat diambil kesimpulan bahwa algoritma L-Deque lebih
cepat karena menghasilkan execution time yang lebih kecil daripada Algoritma Floyd.
4.4 Kompleksitas
4.4.1 Kompleksitas Algoritma L-Deque
Perhitungan kompleksitas algoritma L-Deque dapat dilihat pada Tabel 4.24 berikut
Tabel 4.13 Kompleksitas Algoritma L-Deque
Code
C
#
C#
public Sub New(graph As List(Of List(Of edge_)))
C1
1
C1
Me.graph = graph
C2
1
C2
path = new List(Of Integer)();
C2
1
C2
C1
1
C1
Watch.start()
C3
1
C3
Path.Add(toIndex)
C4
1
C4
Dim INF As Double = Double.positiveInvinity
C2
1
C2
For Each pair As List(Of edge_) In graph
C5
1
C5
shortestDistance.Add(INF)
C6
1
C6
predecessorVertex.Add(-1)
C6
1
C6
shortestDistances(startIndex)=0
C2
1
C2
C7
1
C7
C7
1
C7
Dim u As Integer = deque.PopFront(OfInteger)
C2
1
C2
For Each pair As edge_ In graph(u)
C5
1
C5
Dim v As Integer = pair.toIndex
C2
1
C2
C8
N
C8N
C9
1
C9
public Sub LQueue(startIndex As Integer, toIndex
As Integer)
Deque.PushBack(startIndex)
While deque.Count0
if (shortestDistances(v) >
shortestDistances(u) + pair.cost Then
if Not deque.Contains(v) Then
If (shortestDistance(v) =
Double.PositiveInfinity) Then
deque.PushBack(v)
Else
Universitas Sumatera Utara
61
Deque.PushFront(v)
C7
1
C7
C10
2
2C10
C2
2
2C2
End If
C10
1
C10
End While
C10
1
C10
C11
1
C12
totalJarak=shortestDistances(toIndex)
C2
1
C2
elapsedTimeMs = watch.[stop]()
C2
1
C2
C10
1
C10
C1
1
C1
k=predecessorVertex(v)
C2
1
C2
If k= -1 OrElse u = v Then
C8
N
C8N
C7
1
C7
Path.Add(Cint(Math.Truncate(k)))
C3
1
C3
getPath(u, Cint(Math.Truncate(k)))
C11
1
C12
C10
1
C10
End If
End If
shortestDistance(v) =
shortestDistances(u)+pair.cost
predecessorVertex(v) = u
getPath(startIndex, toIndex)
End Sub
Public Sub getPath(u As Integer, v As Integer)
End If
End Sub
Dari perhitungan kompleksitas waktu pada Tabel 4.2 maka didapat T(|n|) yang
merupakan jumlah kolom C*# sebagai berikut:
Ʃ = T(n) = 2C1+11C2+2C3+C4+2C5+2C6+4C7+C9+6C10+2C11+2C8N
Ʃ = T(n) = Ɵ(N)
4.4.2 Kompleksitas Algoritma Floyd
Perhitungan kompleksitas algoritma Floyd dapat dilihat pada Tabel 4.25
Tabel 4.14 Kompleksitas Algoritma Floyd
Code
C
Public Sub init(inputTable As List(Of Double)), N
C1
#
C#
1
C1
Universitas Sumatera Utara
62
As Double)
Me.N = Cint(Math.Truncate(N))
C2
1
C2
P = New List(Of List(Of Double))()
C2
1
C2
result = New List (Of Integer)()
C2
1
C2
M =inputTable
C2
N
C2N
For i As Integer = 0 To N – 1
C3
N
C3N
P.Add(New List(Of Double)())
C4
N
C4N
For j As Integer = 0 To N - 1
C3
N²
C3N²
Next
C5
2
2C5
End Sub
C6
1
C6
Public Function calculateShortestPath(startIndex
As Integer, endIndex As Integer) As List(Of
Integer)
C1
1
C1
Me.startIndex = startIndex
C2
1
C2
Me.endIndex = endIndex
C2
1
C2
Watch.start()
C7
1
C7
Result.Add(startIndex)
C8
1
C8
getPath(startIndex, endIndex)
C9
1
C9
If totalJarak Double.PositiveInfinity Then
C10
1
C10
End if
C6
1
C6
elapsedTimeMs = watch.[stop]()
C2
1
C2
End Function
C6
1
C6
C1
1
C1
Dim k As Double
C11
1
C11
k = P(u)(v)
C2
1
C2
If k = -1 Then
C10
1
C10
End If
C6
1
C6
getPath(u, Cint(Math.Truncate(k)))
C9
1
C9
Result.Add(Cint(Math.Truncate(k)))
C3
1
C3
getPath(CInt(Math.Truncate(k)), v)
C9
J
C9
C6
1
C6
Next
Public Sub getPath(u As Integer, v As Integer)
End Sub
Universitas Sumatera Utara
63
C1
1
C1
For k As Integer = 0 To N – 1
C3
N
C3N
For i As Integer = 0 To N -1
C3
N2
C3N2
For j Integer = 0 To N – 1
C3
N
C10
1
C10
C6
1
C6
C2
1
C2
End Function
C6
1
C6
Public Function min(i As Integer, j As Integer)
As Integer
C1
1
C1
If i > j Then
C3
1
C3
C6
3
3C6
Public Function FloydAlgo(M As List(Of Double)))
As List(Of List(Of Double))
If M(i)(k) + M(k)(j)
LISTING PROGRAM
Kode Program Algoritma L-Deque:
Public Class Ldeque
Public graph As New List(Of List(Of edge_))()
Private shortestDistances As New List(Of Double)()
Private predecessorVertex As New List(Of Double)()
Public totalJarak As Double
Public path As List(Of Integer)
Private watch As New Classes.Stopwatch()
Public elapsedTimeMs As Double = 0
Public Sub New(graph As List(Of List(Of edge_)))
Me.graph = graph
path = New List(Of Integer)()
End Sub
Public Sub LQueue(startIndex As Integer, toIndex As Integer)
watch.start()
path.Add(toIndex)
Dim INF As Double = Double.PositiveInfinity
Dim deque As New Deque()
For Each pair As List(Of edge_) In graph
shortestDistances.Add(INF)
predecessorVertex.Add(-1)
Next
shortestDistances(startIndex) = 0
deque.PushBack(startIndex)
While deque.Count 0
Dim u As Integer = deque.PopFront(Of Integer)
For Each pair As edge_ In graph(u)
Dim v As Integer = pair.toIndex
If shortestDistances(v) > shortestDistances(u) +
pair.cost Then
If Not deque.Contains(v) Then
If (shortestDistances(v) =
Double.PositiveInfinity) Then
deque.PushBack(v)
Else
deque.PushFront(v)
End If
End If
shortestDistances(v) = shortestDistances(u) +
pair.cost
predecessorVertex(v) = u
End If
Next
End While
getPath(startIndex, toIndex)
totalJarak = shortestDistances(toIndex)
elapsedTimeMs = watch.[stop]()
End Sub
Public Sub getPath(u As Integer, v As Integer)
Universitas Sumatera Utara
68
Dim k As Double
k = predecessorVertex(v)
If k = -1 OrElse u = v Then
Return
End If
path.Add(CInt(Math.Truncate(k)))
getPath(u, CInt(Math.Truncate(k)))
End Sub
End Class
Kode Program Algoritma Floyd :
Public Class Floyd
Public P As List(Of List(Of Double))
Public M As List(Of List(Of Double))
Public totalJarak As Double
Public startIndex As Integer
Public endIndex As Integer
Public result As List(Of Integer)
Public N As Integer
Private watch As New Classes.Stopwatch()
Public elapsedTimeMs As Double = 0
Public Sub init(inputTable As List(Of List(Of Double)), N As
Double)
Me.N = CInt(Math.Truncate(N))
P = New List(Of List(Of Double))()
result = New List(Of Integer)()
M = inputTable
For i As Integer = 0 To N - 1
P.Add(New List(Of Double)())
For j As Integer = 0 To N - 1
P(i).Add(-1)
Next
Next
End Sub
Public Function calculateShortestPath(startIndex As Integer,
endIndex As Integer) As List(Of Integer)
Me.startIndex = startIndex
Me.endIndex = endIndex
watch.start()
result.Add(startIndex)
FloydAlgo(M)
getPath(startIndex, endIndex)
Universitas Sumatera Utara
69
If totalJarak Double.PositiveInfinity Then
result.Add(endIndex)
End If
elapsedTimeMs = watch.[stop]()
Return result
End Function
Public Sub getPath(u As Integer, v As Integer)
Dim k As Double
k = P(u)(v)
If k = -1 Then
Return
End If
getPath(u, CInt(Math.Truncate(k)))
result.Add(CInt(Math.Truncate(k)))
getPath(CInt(Math.Truncate(k)), v)
End Sub
Public Function FloydAlgo(M As List(Of List(Of Double))) As
List(Of List(Of Double))
For k As Integer = 0 To N - 1
For i As Integer = 0 To N - 1
For j As Integer = 0 To N - 1
If M(i)(k) + M(k)(j) < M(i)(j) Then
M(i)(j) = M(i)(k) + M(k)(j)
P(i)(j) = k
End If
Next
Next
Next
totalJarak = M(startIndex)(endIndex)
Return M
End Function
Public Function min(i As Integer, j As Integer) As Integer
If i > j Then
Return j
End If
Return i
End Function
End Class
Universitas Sumatera Utara
70
CURRICULUM VITAE
Data Diri
Nama
: Kevin Irfanda
Tempat/Tanggal Lahir
: Medan, 20 November 1994
Alamat Sekarang
Medan 20127
: Jl. Binjai km 9,1 No. 17 Kp. Lalang,
Alamat Orang Tua
: Jl. Binjai km 9,1 No. 17 Kp. Lalang,
Medan 20127
Agama
: Islam
Jenis Kelamin
: Laki-Laki
Nomor Hp
: 082362675907
: kevinirfanda20@gmail.com
Riwayat Pendidikan
2000 – 2006
: SD Swasta Supriyadi
2006 – 2009
: SMP Negeri 30 Medan
2009 – 2012
: SMK Negeri 9 Medan
2012 – Sekarang
: S1 Ilmu Komputer Universitas Sumatera Utara, Medan
Keahlian
Bahasa
: Indonesia, Inggris
Bahasa Pemrograman : C#, Visual Basic
DBMS
: MySQL
Multimedia
: Adobe Flash
Design
: Photoshop
Perkantoran
: Microsoft Office, Microsoft Excel
Universitas Sumatera Utara
71
Pengalaman Kepanitiaan
2012
: Anggota Publikasi Dekorasi dan Dokumentasi Dies Natalis IMILKOM
2013
: Anggota Dana Ilkom Goes To School 2013
2014
: Anggota Publikasi Dekorasi dan Dokumentasi Porseni IMILKOM
2014
: Anggota Publikasi Dekorasi dan Dokumentasi PMB 2014
2014
: Anggota Acara Meet & Greet Kam Rabbani
2014
: Anggota Acara ARTechno 2014
2014
: Anggota Acara Science Competition 2014
Pengalaman Organisasi
2014 – 2015
: Anggota Departemen Komunikasi dan Informasi Ikatan
Mahasiswa Ilmu Komputer USU (IMILKOM USU)
2015 – 2016
: Sekretaris Departemen Komunikasi dan Informasi Ikatan
Mahasiswa Ilmu Komputer USU (IMILKOM USU)
Pengalaman Bekerja
2011
: Praktik Kerja Industri di PT. Telekomunikasi Indonesia, Tbk
2015
: Praktik Kerja Lapangan di PT. Pertamina (Persero)
Seminar
2014
: Seminar Nasional Literasi Informasi “SENARAI”
Universitas Sumatera Utara
DAFTAR PUSTAKA
Gallo, G & Pallotino, S. 1986. Shortest Path Methods : A Unifying Approach.
Mathematical Programming Study 26: 38-64.
Harahap, R.C. 2015. Implimentasi Algoritma Floyd
Warshall Dalam
Menentukan Jarak Terpendek (Medan - Bandara Kuala Namu). Skripsi.
Universitas Sumatera Utara.
Hayati, E.N. & Yohanes, A. 2014. Pencarian Rute Terpendek Menggunakan
Algoritma Greedy. Prosiding Seminar Nasional IENACO 2014, pp. 391397.
Kriswanto, Y.R., Bendi, R.K.J. & Aliyanto, A. 2014. Penentuan Jarak Terpendek
Dengan Algoritma Floyd Warshall. Prosiding Seminar Nasional Teknologi
Informasi dan Komunasi Terapan 2014 (SEMANTIK 2014), pp. 209-216.
Munir, R. 2014. Matematika Diskrit. Edisi Revisi Kelima. Informatika Bandung:
Bandung.
Pinem, A. 2014. Analisis dan Perbandingan Algoritma A* Dan Kombinasi
Floyd-Warshall Dengan Bryte Force Pada Penentuan Jalur Monitoring Di
Badan Penanaman Modal Kota Medan. Skripsi. Universitas Sumatera
Utara.
Purwananto, Y., Purwitasari, D. & Wibowo, A.W. 2005. Implementasi dan
Analisis Algoritma Pencarian Rute Terpendek di Kota Surabaya. Jurnal
Penelitian dan Pengembangan TELEKOMUNIKASI Vol.10, No.2: 94-101.
Siang, J.J. 2006. Matematika Diskrit dan Aplikasinya Pada Ilmu Komputer.
Yogyakarta: Penerbit Andi.
Universitas Sumatera Utara
14
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 Foto Studio Terdekat
Di Kota Medan ini merupakan aplikasi untuk menentukan jarak 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 foto studio yang diinginkan diperlukan suatu cara yang cepat dalam
mencari jarak 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 foto studio terdekat di Kota Medan dengan
menggunakan dua buah algoritma yaitu algoritma L-Deque dan Algoritma Floyd.
Permasalahan pada penelitian ini, bukan hanya sebatas pencarian jarak terdekat
dengan dua buah algoritma L-Deque dan algoritma Floyd, tetapi juga dengan
membandingkan jarak, real running time time, dan hasil kerja kedua algoritma tersebut
dan dalam pengaplikasiannya graf dibentuk dengan mengikuti peta Kota Medan, dimana
vertex ditentukan berdasarkan beberapa nama foto studio besar yang telah di pilih yang
terdapat di Kota Medan, dan edge merupakan panjang jarak jalan yang akan dilalui
nantinya dari foto studio satu ke foto studio lainnya.
Universitas Sumatera Utara
15
Terdapat 10 nama foto studio besar di Kota Medan yang telah dipilih dan akan
diterapkan kedalam graf pada sistem yang dibuat, nama-nama foto studio yang
digunakan dapat dilihat pada Tabel 3.1 berikut:
Tabel 3.1 Nama-Nama Foto Studio yang Menjadi Vertex
No
Nama Foto Studio
1
My Studio Photography
2
Maripro
3
Topaz Hexagon
4
Lensa 10 Studio
5
Studio Bukkola
6
HW Photo Studio
7
Proffesional Photo Studio & Bridal
8
Raja Photo Studio - Bridal Medan
9
Quality Photo Studio
10
Junio Photo Studio
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 foto studio yang ada di Kota Medan.
Berikut peta rute/jalan dari 10 foto studio yang telah dipilih untuk menuju foto studio
yang diinginkan di Kota Medan dan dapat dilihat pada Gambar 3.1.
Universitas Sumatera Utara
16
Gambar 3.1 Peta atau Rute Foto Studio di Kota Medan
Universitas Sumatera Utara
17
Dalam representasi graf, penentuan hubungan antar simpul (vertex) dan sisi (edge) pada
graf foto studio 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 foto studio di Kota Medan yang telah
dipilih dapat lihat pada Tabel 3.2.
Tabel 3.2 Data Simpul (Vertex) Pada Graf Foto Studio di Kota Medan
No
Nama Vertex
1
My Studio Photography
2
Maripro
3
Topaz Hexagon
4
5
6
7
Lensa 10 Studio
Studio Bukkola
HW Photo Studio
Professional Photo Studio &
Bridal
Nama Tetangga
Maripro
Topaz Hexagon
My Studio Photography
Topaz Hexagon
HW Photo Studio
My Studio Photography
Maripro
Studio Bukkola
HW Photo Studio
Professional Photo Studio &
Bridal
Topaz Hexagon
Studio Bukkola
Raja Photo Studio - Bridal
Medan
Topaz Hexagon
Lensa 10 Studio
Professional Photo Studio &
Bridal
Raja Photo Studio – Bridal
Medan
Maripro
Topaz Hexagon
Professional Photo Studio &
Bridal
Topaz Hexagon
Studio Bukkola
HW Photo Studio
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
Bobot
3,2 km
3,9 km
1,9 km
4,8 km
6,3 km
4,1 km
3,6 km
7,0 km
3,0 km
3,6 km
4,7 km
2,6 km
5,2 km
5,0 km
1,6 km
4,9 km
3,7 km
4,4 km
2,5 km
0,6 km
2,4 km
6,4 km
1,3 km
7,3 km
7,6 km
Universitas Sumatera Utara
18
8
9
10
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
Junio Photo Studio
Lensa 10 Studio
Studio Bukkola
Professional Photo Studio &
Bridal
Quality Photo Studio
Junio Photo Studio
Professional Photo Studio &
Bridal
Raja Photo Studio – Bridal
Medan
Junio Photo Studio
Raja Photo Studio – Bridal
Medan
Quality Photo Studio
5,0 km
4,5 km
7,5 km
8,7 km
5,5 km
4,1 km
5,8 km
5,6 km
4,6 km
5,8 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.
Material
Metode
Algoritma L-Deque
Jarak
Algoritma Floyd
Rute
Node Asal dan Tujuan
Informasi Tempat Studio Foto
Tidak Mengetahui Cara
Kerja Algoritma
User
Menampilkan Hasil Pencarian
dan Perbandingan Kedua Algoritma
Penentuan Pencarian Foto
Studio Terdekat Di Kota
Medan dengan Algoritma
L-Deque dan Floyd
Belum adanya aplikasi untuk
mencari tempat foto studio
terdekat di Kota Medan
Sistem
Gambar 3.2 Diagram Ishikawa
Universitas Sumatera Utara
19
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 L-Deque, algoritma Floyd dan Hsil 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 diaman user
sebelumnya user belum mengetahui cara kerja sistem. Sistem adalah hal yang akan
dilakukan atau dibuat yaitu dengan membuat aplikasi pencarian foto studio terdekat di
Kota Medan dengan menggunakan algoritma L-Deque dan algoritma Floyd, 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 jarak dan waktu pencarian foto studio
terdekat di Kota Medan dengan membandingkan dua buah algoritma yaitu L-Deque dan
Floyd, terdapat beberapa persyaratan fungsional antara lain:
1. Sistem ini menggunakan graf foto studio 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 foto studio 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 foto studio tersebut dengan menambahkannya pada fitur yang
telah tersedia.
4. Sitem ini mendapatkan hasil pencarian dengan graf menggunakan dua algoritma
yaitu L-Deque dan Floyd dapat diterapkan pada sistem.
5. Sistem menghasilkan real running time dengan menggunakan dua algoritma yaitu LDeque dan Floyd, sistem dapat menentukan kecepatan proses dari masing-masing
algoritma.
Universitas Sumatera Utara
20
6. Sistem mendapatkan hasil pada graf dengan menggunakan dua algoritma L-Deque
dan Floyd yang dapat menentukan rute mana saja yang akan dilalui yang diterapkan
dalam sistem.
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. Performa
Sistem atau perangkat lunak yang akan dibangun harus dapat menunjukkan hasil
running time dan rute foto studio dari algoritma yang diterapkan yaitu algoritma LDeque dan Floyd.
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, real running time, rute foto studio
yang akan dilalui dan hasil kerja dari kedua algoritma yang dibandingkan.
3.1.3 Analisis Proses
Pembangunan sistem menggunakan bahasa pemrograman Visual Basic 2010. Algoritma
yang digunakan untuk mencari foto studio terdekat di Kota Medan adalah L-Deque dan
Floyd, hasil kerja dari kedua algoritma tersebut akan dibandingkan untuk mendapatkan
hasil yang baik dari graf yang telah terbentuk.
Universitas Sumatera Utara
21
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.
3.1.4.1 Flowchart Sistem
Flowchart dari sistem yang dibangun dapat dilihat pada Gambar 3.3.
Gambar 3.3 Flowchart Sistem
Universitas Sumatera Utara
22
3.1.4.2 Flowchart Algoritma L-Deque
Flowchart dari algoritma L-Deque dapat dilihat pada Gambar 3.4.
Gambar 3.4 Flowchart Algoritma L-Deque
Keterangan:
P: Titik Awal
d(u): Jarak Awal
Q: Titik Tujuan
d(v): Jarak Tujuan
I: Panjang Jarak Awal ke Tujuan
Universitas Sumatera Utara
23
3.1.4.3 Flowchart Algoritma Floyd
Flowchart dari algoritma Floyd dapat dilihat pada Gambar 3.5.
Gambar 3.5 Flowchart algoritma Floyd
Keterangan:
i, j, k : indeks jarak
n: bilangan ke n
Universitas Sumatera Utara
24
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 dititikberatkan pada
fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian.
Berikut use case diagram dapat dilihat pada Gambar 3.6.
Gambar 3.6 Use Case Diagram
Universitas Sumatera Utara
25
3.2.2. Activity Diagram
Activity diagram dapat menggambarkan proses bisnis dan urutan aktivitas dalam sebuah
proses, serta dapat menggambarkan alir aktivitas kerja pada sistem yang sedang
dirancang ataupun berjalan, bagaimana masing-masing alur berawal, decision yang
mungkin terjadi, dan bagaimana berakhir.
3.2.2.1 Activity Diagram Cara Menampilkan Graf
Activity diagram pada gambar 3.7 menjelaskan proses kerja dari sistem untuk
menampilkan graf dari foto studio yang telah ditentukan. Activity diagram sistem pada
aplikasi yang dibuat dapat dilihat pada Gambar 3.7.
Gambar 3.7 Activity Diagram Cara Menampilkan Graf
3.2.2.2 Activity Diagram Cara Kerja Sistem
Activity diagram pada gambar 3.8 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.8.
Universitas Sumatera Utara
26
Gambar 3.8 Activity Diagram Cara Kerja Sistem
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.9
Universitas Sumatera Utara
27
Gambar 3.9 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, Foto Studio ke Foto Studio, 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.10
dan keterangan gambar rancangan halaman pada Tabel 3.3.
Universitas Sumatera Utara
28
Gambar 3.10 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 “Home” untuk menampilkan beranda sistem
3
Menu “Foto Studio Ke Foto Studio” untuk menampilkan graf , rute dan
perbandingan hasil algoritma
4
Menu “Pengaturan” untuk mengelola vertex dan edge
5
Menu “Bantuan” untuk menampilkan halaman pentunjuk penggunaan
sistem
6
Menu “Tentang” untuk menampilkan data dari penulis
7
Text Box untuk menampilkan judul skripsi, nama dan NIM
8
Picture Box untuk menampilkan logo Universitas Sumatera Utara
9
Text Box untuk menampilkan program studi
Universitas Sumatera Utara
29
3.3.2 Halaman Menu Foto Studio ke Foto Studio
Halaman Foto Studio Ke Foto Studio merupakan halaman yang tampil saat pengguna
memilih menu Foto Studio ke Foto Studio pada halaman utama Home. 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 Foto Studio ke Foto Studio dapat dilihat pada
Gambar 3.11 dan keterangan gambar rancangan halaman pada Tabel 3.4.
Gambar 3.11 Rancangan Antarmuka Halaman Menu Foto Studio ke Foto Studio
Universitas Sumatera Utara
30
Tabel 3.4 Keterangan Gambar Rancangan Antarmuka Halaman Foto Studio ke
Foto Studio
No
Keterangan
1
Menu “Home” untuk menampilkan beranda sistem
2
Menu “Foto Studio Ke Foto Studio” untuk menampilkan graf , rute
dan perbandingan hasil algoritma
3
Menu “Pengaturan” untuk mengelola vertex dan edge
4
Menu “Bantuan” untuk menampilkan halaman pentunjuk penggunaan
sistem
5
Menu “Tentang” untuk menampilkan data dari penulis
6
Label untuk Tentukan Rute
7
Material Flat Button untuk Dari
8
Material Flat Button untuk Ke
9
Combo Box untuk node asal
10
Combo Box untuk node tujuan
11
Combo Box untuk Pilihan Algoritma
12
Button untuk menampilkan Hasil
13
List View untuk menampilkan Rute
14
Material Flat Button untuk Total Jarak
15
Material Flat Button untuk Execution Time
16
WPF Element Host untuk menampilkan Graf
17
Button untuk menampilkan graf yang teracak
3.3.3 Halaman Menu Pengaturan
Halaman Pengaturan 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 Pengaturan dapat dilihat pada Gambar
3.12 dan keterangan gambar rancangan halaman pada Tabel 3.5.
Universitas Sumatera Utara
31
Gambar 3.12 Rancangan Antarmuka Halaman Menu Pengaturan
Tabel 3.5 Keterangan Gambar Rancangan Antarmuka Halaman Pengaturan
No
Keterangan
1
Tree View untuk menu root menampilkan vertex yang terdapat pada graf
2
Button untuk menghapus node yang dipilih
3
Button untuk Tag
4
Label untuk Tag
5
Button untuk nama node
6
Label untuk menampilkan nama node
7
Button untuk memberikan alamat node
8
Label untuk menampilkan alamat node
9
Combo Box untuk memilih vertex yang bisa ditambahkan
10 Button untuk menambahkan tetangga (neighbor) pada vertex
Universitas Sumatera Utara
32
11 List View untuk menampilkan tetangga , jarak dan rute
12 Button untuk menghapus sebuah tetangga (neighbor)
13 Text Field untuk menginputkan nama sebuah node (vertex) baru
14 Button untuk menghasilkan sebuah node baru
3.3.
4
Hal
ama
n
Men
15 Button untuk membuka direktori dan memilih graf
16 Button untuk menyimpan graf
u Bantuan
Halaman Bantuan merupakan halaman yang tampil saat pengguna memilih menu pada
menu bar. Pada halaman ini pengguna dapat melihat petunjuk penggunaan dari sistem.
Adapun rancangan halaman menu Bantuan dapat dilihat pada Gambar 3.13 dan
keterangan gambar rancangan halaman pada Tabel 3.6.
Gambar 3.13 Rancangan Antarmuka Halaman Menu Bantuan
Universitas Sumatera Utara
33
Tabel 3.6 Keterangan Gambar Rancangan Antarmuka Halaman Bantuan
No
Keterangan
1
Label untuk menampilkan judul petunjuk penggunaan system
2
Text Box untuk menampilkan urutan penggunaan system
3.3.5 Halaman Menu Tentang
Halaman Tentang merupakan halaman yang berisi biodata penulis dan penjelasan
lainnya, Adapun rancangan halaman menu Tentang dapat dilihat pada Gambar 3.14 dan
keterangan gambar rancangan halaman pada Tabel 3.7.
Gambar 3.14 Rancangan Antarmuka Halaman Menu Tentang
Tabel 3.7 Keterangan Gambar Rancangan Antarmuka Halaman Tentang
No
Keterangan
1
Label untuk menampilkan Tentang
2
Picture Box untuk menampilkan foto penulis
Universitas Sumatera Utara
34
3
Text Box untuk menampilkan data penulis
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem.
Sistem ini dibangun dengan menggunakan bahasa pemrograman Visual Basic 2015 dan
menggunakan Visual Studio 2015. Pada sistem ini terdapat 5 (lima) tampilan halaman,
yaitu Halaman Home, Halaman Foto Studio ke Foto Studio, Halaman Pengaturan,
Halaman Bantuan dan Halaman About.\
4.1.1 Tampilan Halaman Menu Home
Halaman home merupakan tampilan halaman yang muncul pertama sekali pada saat
sistem dijalankan. Halaman ini berisi judul sistem, nama dan nim penulis, logo
Universitas dan nama Pogram Studi. Tampilan halaman menu home dapat dilihat pada
gambar 4.1
Gambar 4.1 Tampilan Halaman Menu Home
Universitas Sumatera Utara
36
4.1.2 Tampilan Halaman Menu Foro Studio ke Foto Studio
Halaman menu Foto Studio ke Foto Studio merupakan halaman yang digunakan untuk
mengatur node awal dan node tujuan pada graf, menampilkan rute yang akan dilalui
serta menampilkan hasil total jarak dan execution time dari graf. Tampilan menu Foto
Studio ke Foto Studio dapat dilihat pada gambar 4.2.
Gambar 4.2 Tampilan Halaman Menu Foto Studio ke Foto Studio
4.1.3 Tampilan Halaman Menu Pengaturan
Tampilan halaman pengaturan merupakan halaman yang tampil saat pengguna memilih
menu pada menubar. 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). Tampilan halaman menu pengaturan dapat dilihat pada
gambar 4.3.
Universitas Sumatera Utara
37
Gambar 4.3 Tampilan Halaman Menu Pengaturan
4.1.4 Tampilan Halaman Menu Bantuan
Tampilan halaman Bantuan merupakan halaman yang tampil saat pengguna memilih
menu pada menu bar. Pada halaman ini pengguna dapat melihat petunjuk penggunaan
dari system. Tampilan halaman menu bantuan dapat dilihat pada gambar 4.4.
Gambar 4.4 Tampilan Halaman Menu Bantuan
Universitas Sumatera Utara
38
4.1.5 Tampilan Halaman Menu Tentang
Tampilan halaman menu tentang merupakan halaman yang berisi biodata penulis dan
penjelasan lainnya. Tampilan halaman menu tentang dapat dilihat pada gambar 4.5.
Gambar 4.5 Tampilan Halaman Menu Tentang
4.2 Pengujian
Pengujian sistem merupakan tahap lanjutan setelah implementasi sistem. Pengujian
sistem bertujuan untuk membuktikan sistem yang dibangun telah berjalan dengan baik.
Pengujian sistem ini dilakukan pada graf Foto Studio yang telah ditentukan dengan 10
buah simpul (vetex) dan 36 buah sisi (edge).
4.2.1 Pengujian Proses Implementasi
Untuk melakukan proses pengujian pertama kali yang harus dilakukan adalah klik load
graf, dengan cara menuju halaman Pengaturan. Tampilan load graf dapat dilihat pada
gambar 4.6.
Universitas Sumatera Utara
39
Gambar 4.6 Tampilan Load Graf
User hanya dapat membuka graf yang sudah dibuat terlebih dahulu atau telah tersedia
dalam hal ini graf Foto Studio yang telah ditentukan. Setelah user menekan button load
maka sistem akan menampilkan graf yang tersedia untuk dipilih dan dimasukkan ke
dalam proses pengujian. Kemudian graf dapat ditampilkan dalam sistem dengan
membuka halaman Foto Studio ke Foto Studio kemudian menekan button reload dapat
membantu untuk menampilkan graf yang lebih baik, graf yang telah di load dapat dilihat
pada gambar 4.7.
Gambar 4.7 Tampilan Hasil Graf yang Dimasukkan Dalam Sistem
Universitas Sumatera Utara
40
Setelah user memasukkan graf kemudian user dapat melihat nama setiap Foto Studio
dan Alamat setiap Foto Studio, dengan cara mengarahkan kursor ke node (vertex).
Tampilan tersebut dapat dilihat pada gambar 4.8
Gambar 4.8 Tampilan Nama dan Alamat Setiap Foto Studio
4.2.2 Pengujian Proses Algoritma L-Deque
Deque sebuah daftar yang menggabungkan sifat-sifat dari kedua antrian dan tumpukan
atau antrian. Sebuah deque adalah daftar di mana penambahan dan penghapusan yang
mungkin di kedua ujung. Proses pencarian Foto Studio dengan menggunakan algoritma
L-Deque dapat dilihat pada gambar 4.9.
Universitas Sumatera Utara
41
Gambar 4.9 Tampilan Pengujian Pencarian Foto Studio dengan Algoritma LDeque
4.2.2.1 Perhitungan Manual Algoritma L-Deque
Contoh pencarian lintasan terpendek dengan maenggunakan algoritma L-Deque dapat
dilihat pada gambar 4.11 berikut
Gambar 4.10 Graf Algoritma L-Deque
Tentukan node yang akan menjadi titik asal kemudian tentukan node yang akan
menjadi titik tujuan. Pencarian dilakukan dengan cara penempatan di dalam sebuah
array Deque dan menggunakan dua buah petunjuk yaitu LEFT dan RIGHT, yang
berturut-turut menunjuk pada sisi kiri dan sisi kanan deque.
Diketahui: Titik Asal = E, Titik Tujuan = B
Circular Deque dengan 4 array memori
Universitas Sumatera Utara
42
Maka dapat dilakukan pencarian dalam penempatan sebuah array
D
C
Dilakukan operasi berturut turut:
1. B ditambahkan ke kanan dari sebuah array/deque
2. 1 item dihapus yang paling kanan
3. E ditambahkan ke bagian kiri
4. B ditambahkan ke bagian paling kanan
5. Array telah penuh.
Jawab :
1. _, D, C, B
2. _, D, C, _
3. E, D, C, _
4. E, D, C, B
5. LEFT + RIGHT+1, Queue penuh dan terjadi OVERFLOW
4.2.3 Pengujian Proses Algoritma Floyd
Algoritma Floyd-Warshall adalah sebuah Algoritma Analisis graf untuk mencari bobot
minimum dari graf berarah. Algoritma Floyd-Warshall adalah matriks hubung graf
berarah berlabel, dan keluarannya adalah path terpendek dari semua titik ke titik yang
lain.
Proses pencarian jalur terpendek dengan algoritma floyd menggunakan
inisialisasi matriks dalam perhitungan manual nya. Matriks yang digunakan merupakan
representasi dari graf yang dipakai dalam pengujian, Dalam sistem ini 10 node yang
akan diuji maka matriks yang digunakan adalah matriks 10x10 dalam contoh pengujian
kali ini penulis menggunakan graf yang terdiri dari 10 node (a, b, c, d, e, f, g, h, i, j).
Dalam melakukan proses perhitungan inisialisasikan sebuah graf ke dalam matriks.
Tampilan pemilihan graf dapat dilihat pada gambar 4.11.
Universitas Sumatera Utara
43
Gambar 4.11 Tampilan Pemilihan Graf
Setelah graf di tampilkan, maka akan dilakukan pengujian terhadap graf untuk
menentukan lintasan terpendek dari satu node asal menuju node tujuan atau dalam hal
ini yaitu Foto Studio ke Foto Studio lainnya yang dapat ditentukan oleh user.
Gambar 4.12 Tampilan Pengujian Pencarian Foto Studio dengan Algoritma Floyd
4.2.3.1 Perhitungan Manual Algoritma Floyd
Langkah 1. Inisialisasi graph ke dalam matriks
Universitas Sumatera Utara
44
Gambar 4.13 Graf Floyd
Tabel 4.1 Inisialisasi Matriks
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
∞
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
∞
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Langkah 2. Mencari nilai jarak dengan perhitungan matriks
Dari matriks inisialisasi dapat dicari R0, R1, R2, R3, hingga R9. Dalam gambar Graf
4.11 diatas terdapat 10 buah titik, yaitu A, B, C, D, E, F, G, H, I, J, maka akan ada 10
proses yang akan dilewati sebagai hasil akhir, perlu diingat bahwa hasil dari sebuah
proses akan digunakan untuk proses berikutnya. Berdasarkan proses perhitungan baris
pertama kolom pertama pada matriks diatas, akan didapatkan hasil seperti berikut.
Universitas Sumatera Utara
45
Tabel 4.2 Matriks R0
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
∞
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
∞
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R0
Universitas Sumatera Utara
46
Tabel 4.3 Matriks R1
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
∞
∞
9,5
∞
∞
∞
∞
B
1,9
0
4,8
∞
∞
6,3
∞
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
∞
∞
4,7
0
2,6
∞
∞
5,2
∞
∞
E
∞
∞
5
1,6
0
∞
4,9
3,7
∞
∞
F
6,3
4,4
2,5
∞
∞
0
0,6
∞
∞
∞
G
∞
∞
2,4
∞
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R1
Universitas Sumatera Utara
47
Tabel 4.4 Matriks R2
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
∞
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
∞
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
8,3
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
∞
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
∞
∞
∞
5
4,5
∞
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R2
Universitas Sumatera Utara
48
Tabel 4.5 Matriks R3
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
∞
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
8,3
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
∞
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,8
13,3
9,7
5
4,5
12,7
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R3
Universitas Sumatera Utara
49
Tabel 4.6 Matriks R4
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
8,4
15,5
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
13,2
∞
∞
G
6,5
6
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
12,5
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R4
Universitas Sumatera Utara
50
Tabel 4.7 Matriks R5
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
∞
∞
B
1,9
0
4,8
10,1
11,8
6,3
6,9
15,5
∞
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
∞
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
∞
∞
E
9,1
8,6
5
1,6
0
8
4,9
3,7
∞
∞
F
6,3
4,4
2,5
7,8
9,5
0
0,6
13,2
∞
∞
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
12,5
7,5
0
8,7
5,5
I
∞
∞
∞
∞
∞
∞
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R5
Universitas Sumatera Utara
51
Tabel 4.8 Matriks R6
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
∞
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
∞
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
∞
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
15,1
∞
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,5
∞
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
∞
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
∞
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
11,8
10,5
5,4
4,1
5,8
0
5,6
J
∞
∞
∞
∞
∞
∞
∞
4,6
5,8
0
Proses Perhitungan Jarak R6
Universitas Sumatera Utara
52
Tabel 4.9 Matriks R7
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
18,2
17,7
14,1
9,6
9,1
13,4
12,1
4,6
5,8
0
Proses Perhitungan Jarak R7
Universitas Sumatera Utara
53
Tabel 4.10 Matriks R8
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
16,4
15,6
12,3
9,6
9,1
11,2
9,9
4,6
5,8
0
Proses Perhitungan Jarak R8
Universitas Sumatera Utara
54
Tabel 4.11 Matriks R9
A
B
C
D
E
F
G
H
I
J
A
0
3,2
3,9
9,2
10,9
6,9
7,5
14,4
15,1
19,9
B
1,9
0
4,8
10,1
11,8
6,3
6,9
14,2
14,5
19,7
C
4,1
3,6
0
5,3
7
3
3,6
10,5
11,2
16
D
8,8
8,3
4,7
0
2,6
7,7
7,5
5,2
13,9
10,7
E
9,1
8,6
5
1,6
0
6,2
4,9
3,7
12,4
9,2
F
6,3
4,4
2,5
7,8
7
0
0,6
7,9
8,2
13,4
G
6,5
5,7
2,4
7,7
6,4
1,3
0
7,3
7,6
12,8
H
13,6
13,1
9,5
5
4,5
8,8
7,5
0
8,7
5,5
I
10,6
9,8
6,5
10,8
10,3
5,4
4,1
5,8
0
5,6
J
16,4
15,6
12,3
9,6
9,1
11,2
9,9
4,6
5,8
0
Proses Perhitungan Jarak R9
Universitas Sumatera Utara
55
4.3 Real Running-Time
Untuk mencari real running time harus dilakukan proses pengujian sistem dengan
algoritma L-Deque dan algoritma Floyd dimana sebelum mengetahui real running timenya user harus memilih titik awal foto studio dia berada untuk menuju foto studio yang
akan dikunjungi. Akan dilakukan tiga kali proses pengujian. Proses pengujian pertama
akan dicari foto studio “A” ke foto studio “J” dengan menggunakan algoritma L-Deque
dan dapat dilihat pada gambar 4.14.
Gambar 4.14 Hasil Pengujian Pertama dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian pertama dengan algoritma Floyd
dapat dilihat pada gambar 4.15.
Universitas Sumatera Utara
56
Gambar 4.15 Hasil Pengujian Pertama dengan Algoritma Floyd
Dari pengujian pertama didapatkan total jarak dengan algoritma L-Deque yaitu 19,9 km
dan execution time yang didapat yaitu 0,0333ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 19,9km dan execution time yang didapat yaitu 0,2198ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk pengujian kedua, akan dilakukan perubahan yaitu dengan
Proses
pengujian yang dicari yaitu foto studio “I” ke foto studio “A” Hasil pengujian kedua
dengan menggunakan algoritma L-Deque dapat dilihat pada gambar 4.16.
Universitas Sumatera Utara
57
Gambar 4.16 Hasil Pengujian Kedua dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian kedua dengan algoritma Floyd
dapat dilihat pada gambar 4.17.
Gambar 4.17 Hasil Pengujian Kedua dengan Algoritma Floyd
Dari pengujian kedua didapatkan total jarak dengan algoritma L-Deque yaitu 9,8km dan
execution time yang didapat yaitu 0,0282ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 9,8km dan execution time yang didapat yaitu 0,2527ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
Universitas Sumatera Utara
58
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk pengujian ketiga, akan dilakukan perubahan yaitu dengan
Proses
pengujian yang dicari yaitu foto studio “F” ke foto studio “J” Hasil pengujian kedua
dengan menggunakan algoritma L-Deque dapat dilihat pada gambar 4.18.
Gambar 4.18 Hasil Pengujian Ketiga dengan Algoritma L-Deque
Selanjutnya dilakukan pengujian dengan menggunakan algoritma Floyd. Titik awal foto
studio dan foto studio yang akan dikunjungi sama untuk pengujian di algoritma ini agar
dapat dilihat perbedaan hasilnya. Hasil dari pengujian kedua dengan algoritma Floyd
dapat dilihat pada gambar 4.19.
Universitas Sumatera Utara
59
Gambar 4.19. Hasil Pengujian Ketiga dengan Algoritma Floyd
Dari pengujian kedua didapatkan total jarak dengan algoritma L-Deque yaitu 13,4km
dan execution time yang didapat yaitu 0,0355ms dan total jarak dengan menggunakan
algoritma Floyd yaitu 13,4km dan execution time yang didapat yaitu 0,2523ms. Jadi
untuk percobaan pertama algoritma L-Deque dan algoritma Floyd menghasilkan total
jarak yang sama dan execution time yang berbeda yaitu algoritma L-Deque lebih cepat
dari algoritma Floyd.
Untuk melihat hasil dari ketiga pengujian dengan menggunakan algoritma LDeque dan algoritma Floyd dapat dilihat pada Tabel 4.17.
Tabel 4.12 Hasil Dari Ketiga Pengujian
Pengujian (km/ms)
Pengujian Pertama
Pengujian Kedua
Pengujian Ketiga
Algoritma
Execution
Execution
Jarak
Jarak
Time
Execution
Jarak
Time
Time
L-Deque
19,9
0,0333
9,8
0,0282
13,4
0,0355
Floyd
19,9
0,2198
9,8
0,2527
13,4
0,2523
Universitas Sumatera Utara
60
Dari Tabel 4.17 tersebut dapat diambil kesimpulan bahwa algoritma L-Deque lebih
cepat karena menghasilkan execution time yang lebih kecil daripada Algoritma Floyd.
4.4 Kompleksitas
4.4.1 Kompleksitas Algoritma L-Deque
Perhitungan kompleksitas algoritma L-Deque dapat dilihat pada Tabel 4.24 berikut
Tabel 4.13 Kompleksitas Algoritma L-Deque
Code
C
#
C#
public Sub New(graph As List(Of List(Of edge_)))
C1
1
C1
Me.graph = graph
C2
1
C2
path = new List(Of Integer)();
C2
1
C2
C1
1
C1
Watch.start()
C3
1
C3
Path.Add(toIndex)
C4
1
C4
Dim INF As Double = Double.positiveInvinity
C2
1
C2
For Each pair As List(Of edge_) In graph
C5
1
C5
shortestDistance.Add(INF)
C6
1
C6
predecessorVertex.Add(-1)
C6
1
C6
shortestDistances(startIndex)=0
C2
1
C2
C7
1
C7
C7
1
C7
Dim u As Integer = deque.PopFront(OfInteger)
C2
1
C2
For Each pair As edge_ In graph(u)
C5
1
C5
Dim v As Integer = pair.toIndex
C2
1
C2
C8
N
C8N
C9
1
C9
public Sub LQueue(startIndex As Integer, toIndex
As Integer)
Deque.PushBack(startIndex)
While deque.Count0
if (shortestDistances(v) >
shortestDistances(u) + pair.cost Then
if Not deque.Contains(v) Then
If (shortestDistance(v) =
Double.PositiveInfinity) Then
deque.PushBack(v)
Else
Universitas Sumatera Utara
61
Deque.PushFront(v)
C7
1
C7
C10
2
2C10
C2
2
2C2
End If
C10
1
C10
End While
C10
1
C10
C11
1
C12
totalJarak=shortestDistances(toIndex)
C2
1
C2
elapsedTimeMs = watch.[stop]()
C2
1
C2
C10
1
C10
C1
1
C1
k=predecessorVertex(v)
C2
1
C2
If k= -1 OrElse u = v Then
C8
N
C8N
C7
1
C7
Path.Add(Cint(Math.Truncate(k)))
C3
1
C3
getPath(u, Cint(Math.Truncate(k)))
C11
1
C12
C10
1
C10
End If
End If
shortestDistance(v) =
shortestDistances(u)+pair.cost
predecessorVertex(v) = u
getPath(startIndex, toIndex)
End Sub
Public Sub getPath(u As Integer, v As Integer)
End If
End Sub
Dari perhitungan kompleksitas waktu pada Tabel 4.2 maka didapat T(|n|) yang
merupakan jumlah kolom C*# sebagai berikut:
Ʃ = T(n) = 2C1+11C2+2C3+C4+2C5+2C6+4C7+C9+6C10+2C11+2C8N
Ʃ = T(n) = Ɵ(N)
4.4.2 Kompleksitas Algoritma Floyd
Perhitungan kompleksitas algoritma Floyd dapat dilihat pada Tabel 4.25
Tabel 4.14 Kompleksitas Algoritma Floyd
Code
C
Public Sub init(inputTable As List(Of Double)), N
C1
#
C#
1
C1
Universitas Sumatera Utara
62
As Double)
Me.N = Cint(Math.Truncate(N))
C2
1
C2
P = New List(Of List(Of Double))()
C2
1
C2
result = New List (Of Integer)()
C2
1
C2
M =inputTable
C2
N
C2N
For i As Integer = 0 To N – 1
C3
N
C3N
P.Add(New List(Of Double)())
C4
N
C4N
For j As Integer = 0 To N - 1
C3
N²
C3N²
Next
C5
2
2C5
End Sub
C6
1
C6
Public Function calculateShortestPath(startIndex
As Integer, endIndex As Integer) As List(Of
Integer)
C1
1
C1
Me.startIndex = startIndex
C2
1
C2
Me.endIndex = endIndex
C2
1
C2
Watch.start()
C7
1
C7
Result.Add(startIndex)
C8
1
C8
getPath(startIndex, endIndex)
C9
1
C9
If totalJarak Double.PositiveInfinity Then
C10
1
C10
End if
C6
1
C6
elapsedTimeMs = watch.[stop]()
C2
1
C2
End Function
C6
1
C6
C1
1
C1
Dim k As Double
C11
1
C11
k = P(u)(v)
C2
1
C2
If k = -1 Then
C10
1
C10
End If
C6
1
C6
getPath(u, Cint(Math.Truncate(k)))
C9
1
C9
Result.Add(Cint(Math.Truncate(k)))
C3
1
C3
getPath(CInt(Math.Truncate(k)), v)
C9
J
C9
C6
1
C6
Next
Public Sub getPath(u As Integer, v As Integer)
End Sub
Universitas Sumatera Utara
63
C1
1
C1
For k As Integer = 0 To N – 1
C3
N
C3N
For i As Integer = 0 To N -1
C3
N2
C3N2
For j Integer = 0 To N – 1
C3
N
C10
1
C10
C6
1
C6
C2
1
C2
End Function
C6
1
C6
Public Function min(i As Integer, j As Integer)
As Integer
C1
1
C1
If i > j Then
C3
1
C3
C6
3
3C6
Public Function FloydAlgo(M As List(Of Double)))
As List(Of List(Of Double))
If M(i)(k) + M(k)(j)