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



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)