194
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh: Agustinus Wikrama Darmadipta 095314053 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013 i SYSTOOLS DEMO PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

  • Upload
    others

  • View
    37

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA

DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN

JALUR TERPENDEK PADA BUS TRANS JOGJA

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh:

Agustinus Wikrama Darmadipta

095314053

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2013

i

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

SKRIPSI

PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA

DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN

JALUR TERPENDEK PADA BUS TRANS JOGJA

Oleh:

Agustinus Wikrama Darmadipta

NIM: 095314053

Telah disetujui oleh:

Dosen Pembimbing Tugas Akhir

Sri Hartati Wijono, S.Si., M. Kom. Tanggal: ………………

ii

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

LEMBAR MOTTO

The dreams cannot come to you.

The only one who can make the distance between you and your dreams

getting closer is yourself.

SO GO CHASE IT!

iv

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

PUBLIKASI KARYA ILMIAH UNTUK KEPERLUAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:

Nama : Agustinus Wikrama Darmadipta

Nomor Mahasiswa : 095314053

Demi mengembangkan ilmu pengetahuan, saya memberikan kepada perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul:

PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN

ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN JALUR

TERPENDEK PADA BUS TRANS JOGJA

Beserta perangkat yang diperlukan. Dengan demikian saya memberikan kepada

Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam

bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan

secara terbatas, dan mempublikasikannya di Internet atau media lain untuk

kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan

royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yogyakarta, 22 Agustus 2013

Agustinus Wikrama Darmadipta

vi

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

ABSTRACT

The confusing about how to decide what trayek someone must take in the case

of Bus Trans Jogja has became a problem for the user that want to go to a destination

from the source that he wanted in Yogyakarta. That problem made the writer want to

solve it by making an Android based mobile application that can give an advice to the

user of Bus Trans Jogja about the trayek that he must take to get to a destination by

the shortest path .

The shortest path is calculated using two shortest path algorithms, Dijkstra

and Floyd-Warshall algorithm. Dijkstra algorithm, using greedy as its method, on the

other way Floyd-Warshall algorithm using dynamic programming as it method. The

reason why using those two algorithm is because this research want to know which

algorithm that more optimal to be implemented in the case of the shortest path search

in the route of Bus Trans Jogja.

Comparisons that be used to decide the optimal algorithm are complexity of

asimptotik time and the running time of each algorithm. The validity that have given

by each algorithm is also a thing that decide the optimality of each algorithm.

viii

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

tidak menyerah dan selalu bersemangat untuk menyelesaikan tugas

akhir ini dengan baik dan tepat waktu.

5. Fransiskus Ageng Widodo dan Audris Evan Utomo, selaku teman

penulis yang telah membantu dalam menyelesaikan permasalahan

coding yang penulis alami sewaktu pembuatan aplikasi.

6. Ardha, Eki, Aden, Yosi, Surya, dan Fidi yang selalu menghibur

penulis dalam menyelesaikan tugas akhir ini sehingga penulis dapat

selalu ceria ketika mengerjakan tugas akhir bersama-sama di

laboratorium komputer basis data.

Yogyakarta, 22 Agustus 2013

Agustinus Wikrama Darmadipta

Penulis

x

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

3.4. Diagram Aktivitas .................................................................................. 51

3.4.1. Diagram Aktivitas Menentukan Titik Awal .................................... 52

3.4.2. Diagram Aktivitas Menentukan Titik Tujuan ................................. 52

3.4.3. Diagram Aktivitas Mencari Halte ................................................... 53

3.4.4. Diagram Aktivitas Melihat Jalur Bus yang Ditempuh, Melihat Nilai

Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih, dan

Melihat Running Time Algoritma ................................................................. 54

3.4.5. Diagram Aktivitas Melihat Help ..................................................... 55

3.5. Diagram Sekuensial ................................................................................ 55

3.5.1. Diagram Sekuensial Menentukan Titik Awal ................................. 55

3.5.2. Diagram Sekuensial Menentukan Titik Tujuan .............................. 56

3.5.3. Diagram Sekuensial Mencari Halte ................................................ 56

3.5.4. Diagram Sekuensial Melihat Jalur Bus yang Ditempuh, Melihat

Nilai Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih,

dan Melihat Running Time Algoritma ........................................................... 57

3.5.5. Diagram Sekuensial Melihat Help .................................................. 58

3.6. Diagram Kelas ........................................................................................ 59

3.7. Kelas Analisis ......................................................................................... 60

3.8. Operasi dan Atribut Tiap Kelas .............................................................. 63

3.9. Cara Pengujian........................................................................................ 72

3.10. Skenario Pengujian ............................................................................. 73

3.11. Desain Antarmuka .............................................................................. 78

3.11.1. Desain Antarmuka Tampilan Awal ................................................. 79

3.11.2. Desain Antarmuka Jalur Terpendek Telah Ditemukan ................... 79

3.11.3. Desain Antarmuka Tampilan Details .............................................. 80

BAB IV : IMPLEMENTASI ............................................................................... 81

4.1. Spesifikasi Perangkat Keras dan Lunak ................................................. 81

4.2. Pengolahan Data ..................................................................................... 82

4.3. Implementasi Kelas Graph ..................................................................... 83

4.3.1. Implementasi Metode Greedy dengan Algoritma Dijkstra ............. 84

xii

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

Lampiran 8: Source Code Kelas TemporaryJalur_n_Jarak ............................. 154

Lampiran 9: Source Code Kelas PathOverlay ................................................. 155

Lampiran 10: Source Code Kelas SitesOverlay .............................................. 156

Lampiran 11: Source Code Kelas Help ........................................................... 166

Lampiran 12: Source Code Kelas MainActivity ............................................. 166

Lampiran 13: Source Code Kelas Map ........................................................... 168

xiv

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

Gambar 4.1 Gambar Source Code untuk Algoritma Dijkstra ............................. 87

Gambar 4.2 Gambar Source Code untuk Algoritma Floyd-Warshall ................. 89

Gambar 4.3 Gambar Source Code untuk Perpindahan Bus ................................ 92

Gambar 4.4 Gambar Source Code untuk Penghitungan Running Time Algoritma

............................................................................................................................... 93

Gambar 4.5 Tampilan Halaman Menu ................................................................ 94

Gambar 4.6 Title.xml .......................................................................................... 95

Gambar 4.7 Tampilan Halaman Peta ................................................................... 97

Gambar 4.8 activity_main.xml ............................................................................ 98

Gambar 4.9 mydropdownstle.xml ....................................................................... 99

Gambar 4.10 Tampilan Halaman Details .......................................................... 100

Gambar 4.11 Source Code Halaman Details ..................................................... 100

Gambar 4.12 Tampilan Halaman Help .............................................................. 101

Gambar 4.13 help.xml ...................................................................................... 108

Gambar 5.1 Source Code Method getMin ......................................................... 116

Gambar 5.2 Source Code Method adjust_sPath ................................................ 117

Gambar 5.3 Source Code Method displayPaths ................................................ 118

Gambar 5.4 Source Code Method findIndex ..................................................... 119

Gambar 5.5 Source Code Method dijkstra ........................................................ 120

Gambar 5.6 Source Code Method findIndex ..................................................... 121

Gambar 5.7 Source Code Method deepCopyIntMatrix ..................................... 122

Gambar 5.8 Source Code Method Floyd ........................................................... 124

xvi

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

Tabel 3.10 Tabel Tanggung Jawab Kelas Analisis .................................................... 63

Tabel 3.11 Tabel Operasi dan Atribut Kelas Graph ................................................... 66

Tabel 3.12 Tabel Operasi dan Atribut Kelas Halte .................................................... 67

Tabel 3.13 Tabel Operasi dan Atribut Kelas TemporaryJalur_n_Jarak ..................... 68

Tabel 3.14 Tabel Operasi dan Atribut Kelas MainActivity ....................................... 68

Tabel 3.15 Tabel Operasi dan Atribut Kelas Map ...................................................... 70

Tabel 3.16 Tabel Operasi dan Atribut Kelas PathOverlay ......................................... 70

Tabel 3.17 Tabel Operasi dan Atribut Kelas SitesOverlay ........................................ 72

Tabel 3.18 Tabel Operasi dan Atribut Kelas Help ..................................................... 72

Tabel 3.19 Skenario Pengujian ................................................................................... 78

Tabel 5.1 Tabel Hasil Pengujian .............................................................................. 114

Tabel 5.2 Tabel Hasil Pengujian Running Time Kedua Algoritma .......................... 126

xviii

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

2

penelitian ini adalah algoritma yang masing-masing menggunakan

strategi/cara berpikir greedy dan dynamic programming (pemrograman

dinamis). Algoritma Dijkstra merupakan salah satu algoritma yang digunakan

dalam penelitian ini di mana cara kerja algoritma tersebut adalah

menggunakan strategi greedy. Algoritma jalur terpendek yang juga digunakan

dalam penelitian ini yang menggunakan strategi pemrograman dinamis adalah

algoritma Floyd – Warshall. Alasan digunakannya kedua algoritma tersebut

adalah kedua algoritma tersebut telah sering digunakan untuk kasus pencarian

jalur terpendek. Sebagai contoh algoritma Dijkstra pernah dilakukan dalam

penilitian kasus pencarian jalur terpendek yang ditempuh oleh sebuah taksi

(Noviani, Enik., dkk., 2012) dan pencarian jalur terpendek yang ditempuh

oleh dua transportasi umum di Jakarta, yakni Bus Trans Jakata dan KRL

commuter line (Arifianto, Sofyan., 2012). Algoritma Floyd – Warshall juga

telah sering digunakan dalam beberapa penlitian mengenai pencarian jalur

terpendek, seperti pada penilitian pencarian rute terpendek di kota Surabaya

(Purwananto, Yudhi., dkk., 2005) dan pencarian rute terpendek antar gedung

di suatu kampus (Fanani, Lutfi., 2012).

Kasus pencarian jalur terpendek yang digunakan dalam penelitian ini

adalah kasus pencarian jalur terpendek pada Bus Trans Jogja. Kasus Bus

Trans Jogja sesuai digunakan untuk pencarian jalur terpendek karena Bus

Trans Jogja memiliki total enam trayek di mana masing-masing trayek

memiliki jalur-jalur perjalanan yang berbeda untuk menuju suatu tempat

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

4

para pengguna tidak mengalami kebingungan dalam menentukan Bus Trans

Jogja yang harus dipakai guna mencapai suatu tujuan tertentu.

1.2. Rumusan Masalah

Seberapa optimal dan efisienkah penggunaan strategi berpikir greedy

(algoritma Dijkstra) dan pemrograman dinamis (algoritma Floyd – Warshall)

dalam kasus penentuan jalur terpendek yang ditempuh oleh Bus Trans Jogja?

Rumusan masalah di atas diselesaikan dengan mencari nilai dari Big

Oh dan waktu yang ditempuh oleh setiap algoritma dalam menyelesaikan

kasus pencarian jalur terpendek pada Bus Trans Jogja. Nilai Big Oh dan waktu

yang diperoleh kemudian akan dibandingkan satu sama lain untuk

menentukan algoritma mana yang paling optimal untuk kasus tersebut.

1.3. Tujuan Penelitian

Tujuan yang ingin dicapai dari penelitian ini adalah:

1. Untuk mendapatkan kompleksitas waktu asimtotik dan nilai kecepatan

waktu dari algoritma greedy dan pemrograman dinamis pada kasus

pencarian jalur terpendek pada Bus Trans Jogja.

1.4. Batasan Masalah

Batasan masalah dari penelitian ini adalah:

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

6

Trans Jogja. Kesesuaian tersebut diukur berdasarkan perbandingan dari Big

Oh dan waktu penyelesaian yang dihasilkan oleh masing-masing algoritma.

Manfaat yang lain yang diperoleh dari penelitian ini adalah sebuah

aplikasi berbasis android yang dapat digunakan oleh para pengguna Bus Trans

Jogja dalam menentukan bus yang harus dipakai dalam menuju ke suatu

tujuan tertentu. Aplikasi tersebut akan mampu memberikan keluaran berupa

saran kepada pengguna mengenai bus dengan trayek mana yang harus dipakai

guna menuju suatu tempat dengan cepat. Aplikasi tersebut diharapkan

memberi pertolongan kepada masyarakat pengguna Bus Trans Jogja, terutama

para wisatawan pengguna Bus Trans Jogja yang belum paham betul mengenai

jalur-jalur yang ditempuh oleh Bus Trans Jogja dalam mencapai suatu tujuan

tertentu.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

8

satu algoritma yang mampu digunakan untuk menyelesaikan satu masalah.

Masalah yang timbul dari hal tersebut kemudian adalah dalam memilih

algoritma manakah yang paling optimal atau yang terbaik dalam

menyelesaikan masalah yang dihadapi tersebut. Menurut Suryadi MT (1996),

pemilihan algoritma terbaik dapat dilakukan dengan memperhatikan kriteria-

kriteria berikut ini:

1. ada output

Berdasarkan pada definisi algoritma bahwa algoritma

digunakan untuk menyelesaikan suatu masalah, maka berarti

suatu algoritma haruslah mempunyai output. Output tersebut

merupakan sebuah solusi dari masalah yang dipecahkan.

2. efektivitas dan efisiensi

Efektivitas suatu algoritma dapat dilihat dari solusi yang

dihasilkan. Solusi tersebut dikatakan efektif bila sesuai dengan

masalah yang dipecahkan dan mampu memecahkan masalah

tersebut. Jadi dapat dikatakan bahwa suatu algoritma dikatakan

efektif jika tepat guna.

Efisiensi suatu algoritma diukur berdasarkan waktu proses dan

penggunaan memory dalam menyelesaikan suatu masalah.

Semakin kecil waktu proses dan memory yang dibutuhkan

dalam menyelesaikan suatu masalah, maka semakin efisien

pula suatu algoritma tersebut.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

10

tersusun dengan baik sehingga memudahkan untuk

dilakukannya pemeriksaan ulang terhadap algoritma tersebut.

Selain untuk hal tersebut, algoritma yang memiliki struktur

yang baik dapat memungkinkan memiliki waktu proses yang

relatif singkat.

Berdasarkan kelima hal di atas, maka algoritma yang baik dapat

didefinisikan sebagai suatu algoritma yang memiliki output yang tepat guna

(efektif) dalam waktu yang relatif singkat dan penggunaan memory yang

relative sedikit (efisien) dengan langkah yang berhingga dan prosesnya

berakhir dengan baik dalam keadaan diperoleh suatu solusi ataupun tidak

adanya solusi (Suryadi MT, 1996).

2.2. Pengertian Analisis Algoritma

Analisis algoritma dilakukan dengan memperhatikan dua hal, yaitu

waktu tempuh dan jumlah memory yang digunakan. Waktu tempuh memiliki

definisi sebagai waktu yang diperlukan suatu algoritma dalam mencari solusi

atas permasalahan yang diberikan. Waktu yang singkat memberi arti bahwa

algoritma yang digunakan efisien. Waktu tempuh yang diperlukan oleh suatu

algoritma menurut Suryadi MT (1996) dipengaruhi oleh beberapa hal, yaitu:

1. banyak langkah

Banyaknya langkah yang digunakan dalam suatu algoritma

akan menentukan cepat lambatnya proses yang dilakukan oleh

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

12

tidak sesuai, maka waktu tempuh yang digunakan algoritma

tersebut pun akan membesar (lambat).

Jumlah memory juga perlu diperhatikan dalam menganalisis suatu

algoritma agar suatu proses dapat berjalan lancar tanpa ada hambatan. Hal

yang mempengaruhi dalam pemakaian memory adalah jenis variable dan data

yang digunakan pada suatu algoritma. Oleh karena itu pengalokasian memory

perlu diperhitungan berdasarkan dua hal tersebut agar lambatnya waktu

tempuh yang terjadi karena kekurangan memory dapat dihindari.

Kompleksitas waktu asimtotik algoritma juga merupakan hal yang

peru diperhatikan dalam melakukan analisis terhadap suatu algoritma.

Kompleksitas waktu asimtotik algoritma dinyatakan dalam suatu fungsi F(N)

untuk kebutuhan waktu tempuh dan penyimpanan untuk sejumlah N masukan

data. Fungsi F(N) tersebutlah yang kemudian dinyatakan sebagai Big Oh. Jika

F(N) adalah fungsi Polinomial dalam N dengan derajat (tingkat) m, yang

ditulis dengan notasi:

F(N) = amNm + am-1Nm-1 + . . . + a1N + a0

maka Big Oh dari F(N) adalah Nm yang dinotasikan: F(N) = O(Nm) (Suryadi

MT, 1996). Berikut ini adalah pengelompokan algoritma berdasarkan notasi

Big Oh :

Kelompok

Algoritma Nama

O(1) Konstan

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

14

berikut ini. Graf ini menggambarkan hubungan dari suatu tempat ke tempat

yang lain. Node menggambarkan suatu tempat dan vertex menggambarkan

bobot atau jarak yang menghubungkan antar tempat.

Gambar 2.1 Contoh Graph (Dijkstra)

Langkah pertama yang dilakukan pada strategi ini adalah menentukan

titik awal dan titik tujuan (dalam kasus ini node satu adalah titik awal dan

node sepuluh adalah titik tujuan). Berangkat dari node satu, terdapat tiga jalur

yang dapat ditempuh yakni jalur dengan nilai jarak 300, 200, dan 350. Jalur

yang dipilih adalah jalur dengan nilai jarak 200 karena merupakan nilai yang

paling optimal (rendah) di antara ketiga nilai tersebut. Pemilihan jalur tersebut

menunjukkan bahwa node kedua yang dilalui adalah node tiga. Pada node

tiga, nilai jarak yang kemudian dipilih adalah nilai 280 yang kemudian

membawa menuju node enam dari nilai 350, 280, dan 410. Node delapan

kemudian menjadi tujuan berikutnya setelah melakukan pemilihan nilai jarak

yang paling optimal antara nilai 350 dan 380. Langkah berikutnya adalah

memilih satu-satunya nilai yang membawa ke tujuan akhir (node sepuluh),

yakni memilih jalur dengan nilai 380. Pencarian jalur terpendek menggunakan

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

16

7. d (7) = ?

8. d (8) = ?

9. d (9) = ?

10. d (10) = ?

1 - 3

Iterasi II (posisi awal di titik 3)

1. d(2) = min {d(2), d(3) + a(3,2)} = min (300, 200 + ?) = 300

2. d(4) = min {d(4), d(3) + a(3,4)} = min (350, 200 + ?) = 350

3. d(5) = min {d(5), d(3) + a(3,5)} = min (?, 200 + 350) = 550

4. d(6) = min {d(6), d(3) + a(3,6)} = min (?, 200 + 280) = 480

5. d(7) = min {d(7), d(3) + a(3,7)} = min (?, 200 + 410) = 610

6. d(8) = min {d(8), d(3) + a(3,8)} = min (?, 200 + ?) = ?

7. d(9) = min {d(9), d(3) + a(3,9)} = min (?, 200 + ?) = ?

8. d(10) = min {d(10), d(3) + a(3,10)} = min (?, 200 + ?) = ?

1 – 2

Iterasi III (posisi awal di titik 2)

1. d(4) = min {d(2), d(2) + a(2,4)} = min (350, 300 + ?) = 350

2. d(5) = min {d(5), d(2) + a(2,5)} = min (550, 300 + 320) = 550

3. d(6) = min {d(6), d(2) + a(2,6)} = min (480, 300 + 350) = 480

4. d(7) = min {d(7), d(2) + a(2,7)} = min (610, 300 + 400) = 610

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

18

Iterasi VI (posisi awal di titik 5)

1. d(7) = min {d(7), d(5) + a(5,7)} = min (550, 550 + ?) = 550

2. d(8) = min {d(8), d(5) + a(5,8)} = min (830, 550 + 210) = 760

3. d(9) = min {d(9), d(5) + a(5,9)} = min (860, 550 + 230) = 780

4. d(10) = min {d(10), d(5) + a(5,10)} = min (?, 550 + ?) = ?

1 – 4 – 7

Iterasi VII (posisi awal di titik 7)

1. d(8) = min {d(8), d(7) + a(7,8)} = min (760, 550 + 210) = 760

2. d(9) = min {d(9), d(7) + a(7,9)} = min (780, 550 + 290) = 780

3. d(10) = min {d(10), d(7) + a(7,10)} = min (?, 550 + ?) = ?

1 – 3 – 5 – 8

Iterasi VIII (posisi awal di titik 8)

1. d(9) = min {d(9), d(8) + a(8,9)} = min (780, 760 + ?) = 780

2. d(10) = min {d(10), d(8) + a(8,10)} = min (?, 760 + 380) = 1140

1 – 3 – 5 – 9

Iterasi IX (posisi awal di titik 9)

1. d(10) = min {d(10), d(9) + a(9,10)} = min (1140, 780 + 280) =

1060

1 – 3 – 5 – 9 – 10

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

20

nilai yang terdapat pada vertex-vertex tersebut menggambarkan nilai jarak

antara satu node ke node yang lain.

Gambar 2.2 Contoh Graph (Pemrograman Dinamis)

Langkah pertama yang dilakukan adalah ambil salah satu node sebagai

tujuan, dalam hal ini node dengan label sepuluh adalah tujuan yang ingin

dicapai. Berangkat dari hal tersebut dapat dilihat bahwa untuk mencapai node

sepuluh tersebut perlu melalui node delapan atau sembilan. Berdasarkan hal

tersebut maka dihasilkanlah sebuah table berikut ini yang menggambarkan

langkah pertama.

Langkah I

Node Nilai

Jarak

Jalur yang

Ditempuh

8 380 8-10

9 280 9-10

Tabel 2.2 Langkah I Strategi Pemrograman Dinamis

Langkah yang dilakukan berikutnya adalah menentukan jalur

terpendek untuk menuju node delapan dan sembilan yang kemudian menuju

ke node tujuan. Jika berangkat melalui node lima maka nilai jarak yang

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

22

870 (200+670). Oleh karena itu, nilai jarak yang dipilih kemudian adalah 810.

Tabel yang menggambarkan hasil dari langkah ini adalah tabel 2.4:

Langkah

III

Node Nilai

Jarak

Jalur yang

Ditempuh

2 830 2-5-9-10

3 860 3-5-9-10

4 810 4-5-9-10

Tabel 2.4 Langkah III Strategi Pemrograman Dinamis

Langkah keempat yang juga merupakan langkah terakhir untuk kasus

ini adalah menentukan nilai jalur terpendek jika melalui node satu. Nilai-nilai

jarak yang dihasilkan adalah 1130 (300+830), 1060 (200+860), dan 1160

(350+810). Berdasarkan nilai-nilai yang dihasilkan tersebut maka 1060 adalah

nilai yang dipilih. Tabel yang dihasilkan dari langkah ini adalah tabel 2.5:

Langkah

IV

Node Nilai

Jarak

Jalur yang

Ditempuh

1 1060 1-3-5-9-10

Tabel 2.5 Langkah IV Strategi Pemrograman Dinamis

Nilai tersebut merupakan nilai akhir yang didapat dari kasus ini. Nilai

1060 juga merupakan nilai jarak terpendek yang dihasilkan untuk mencapai

node sepuluh dari node satu. Hal tersebut menunjukkan bahwa jalur 1-3-5-9-

10 merupakan jalur yang harus ditempuh agar hasil yang dicapai adalah

optimal (jalur terpendek).

Salah satu algoritma pencarian jalur terpendek yang menggunakan

strategi pemrograman dinamis dalam cara penyelesaiannya adalah algoritma

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

24

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.7 Iterasi I Algoritma Floyd – Warshall

Iterasi II

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 620 650 700 ? ? ?

2 ? 0 ? ? 320 350 400 ? ? ?

3 ? ? 0 ? 350 280 410 ? ? ?

4 ? ? ? 0 300 250 200 ? ? ?

5 ? ? ? ? 0 ? ? 210 230 ?

6 ? ? ? ? ? 0 ? 350 380 ?

7 ? ? ? ? ? ? 0 290 400 ?

8 ? ? ? ? ? ? ? 0 ? 380

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.8 Iterasi II Algoritma Floyd – Warshall

Iterasi III

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 550 480 610 ? ? ?

2 ? 0 ? ? 320 350 400 ? ? ?

3 ? ? 0 ? 350 280 410 ? ? ?

4 ? ? ? 0 300 250 200 ? ? ?

5 ? ? ? ? 0 ? ? 210 230 ?

6 ? ? ? ? ? 0 ? 350 380 ?

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

26

5 ? ? ? ? 0 ? ? 210 230 ?

6 ? ? ? ? ? 0 ? 350 380 ?

7 ? ? ? ? ? ? 0 290 400 ?

8 ? ? ? ? ? ? ? 0 ? 380

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.11 Iterasi V Algoritma Floyd – Warshall

Iterasi VI

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 550 480 550 760 780 ?

2 ? 0 ? ? 320 350 400 530 550 ?

3 ? ? 0 ? 350 280 410 560 580 ?

4 ? ? ? 0 300 250 200 510 530 ?

5 ? ? ? ? 0 ? ? 210 230 ?

6 ? ? ? ? ? 0 ? 350 380 ?

7 ? ? ? ? ? ? 0 290 400 ?

8 ? ? ? ? ? ? ? 0 ? 380

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.12 Iterasi VI Algoritma Floyd – Warshall

Iterasi VII

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 550 480 550 760 780 ?

2 ? 0 ? ? 320 350 400 530 550 ?

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

28

1 0 300 200 350 550 480 550 760 780 1060

2 ? 0 ? ? 320 350 400 530 550 830

3 ? ? 0 ? 350 280 410 560 580 860

4 ? ? ? 0 300 250 200 490 530 810

5 ? ? ? ? 0 ? ? 210 230 510

6 ? ? ? ? ? 0 ? 350 380 660

7 ? ? ? ? ? ? 0 290 400 670

8 ? ? ? ? ? ? ? 0 ? 380

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.15 Iterasi IX Algoritma Floyd – Warshall

Iterasi X

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 550 480 550 830 860 1060

2 ? 0 ? ? 320 350 400 530 550 830

3 ? ? 0 ? 350 280 410 560 580 860

4 ? ? ? 0 300 250 200 490 530 810

5 ? ? ? ? 0 ? ? 210 230 510

6 ? ? ? ? ? 0 ? 350 380 660

7 ? ? ? ? ? ? 0 290 400 670

8 ? ? ? ? ? ? ? 0 ? 380

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.16 Iterasi X algoritma Floyd – Warshall

Hasil jalur terpendek yang dihasilkan oleh algoritma ini untuk jalur

terpendek yang ditempuh dari node satu ke node sepuluh adalah 1060.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

30

1. Jalur 1A

Tempat-tempat yang dilalui oleh jalur ini adalah Candi

Prambanan - Bandar Udara Adisutjipto - Jembatan Layang

Janti - Ambarrukmo Plaza - UIN Sunan Kalijaga - Saphir

Square - Bioskop XXI, Jl. Solo - Rumah Sakit Bethesda, Toko

Buku Gramedia, Hotel Novotel - Hotel Santika, Pizza Hut

Tugu Jogja - Kantor Kedaulatan Rakyat - Stasiun Tugu –

Jogjakarta - Jalan Malioboro (ada 3 buah halte) - Kantor Pos

Besar, Kraton, Alun-Alun Utara, Monumen 1 Maret, Benteng

Vredeburg - Taman Pintar, Taman Parkir Bank - Indonesia,

Pasar Beringhardjo, Gondomanan - Pasar Sentul (Jl. Taman

Siswa) - Taman Makan Pahlawan Kusumanegara - Balaikota

Jogjakarta - Kebun Binatang - Gembira Loka - Jogja Expo

Center - Jembatan Janti (kembali ke arah Kalasan, Bandar

Udara Adisutjipto sampai Terminal Prambanan)

2. Jalur 1B

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Prambanan – Kalasan - Bandara Adisucipto – Maguwoharjo -

Janti (lewat bawah) - Blok O – JEC - Babadan Gedongkuning -

Gembira Loka – SGM - Pasar Sentul – Gondomanan - Kantor

Pos Besar - RS.PKU Muhammadiyah - Pasar Kembang –

Badran - Bundaran SAMSAT – Pingit – Tugu – Gramedia -

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

32

5. Jalur 3A

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Giwangan – Tegalgendu - HS-Silver - Jl. Nyi Pembayun -

Pegadaian Kotagede – Basen – Rejowinangun - Babadan

Gedongkuning – JEC - Blok O - Janti (lewat atas) – Janti –

Maguwoharjo - Bandara ADISUCIPTO – Maguwoharjo -

Ringroad Utara - Terminal Condongcatur – Kentungan - MM

UGM – MirotaKampus – Gondolayu – Tugu – Pingit -

Bundaran SAMSAT – Badran – PasarKembang - Stasiun

TUGU – Malioboro - Kantor Pos Besar - RS PKU

Muhammadiyah – Ngabean - Jokteng Kulon - Plengkung

Gading - Jokteng Wetan – Tungkak – Wirosaban – Tegalgendu

- Terminal Giwangan.

6. Jalur 3B

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Giwangan – Tegalgendu – Wirosaban – Tungkak - Jokteng

Wetan - Plengkung Gading - Jokteng Kulon – Ngabean - RS

PKU Muhammadiyah - Pasar Kembang – Badran - Bundaran

SAMSAT – Pingit – Tugu – Gondolayu - Mirota Kampus -

MM UGM – Kentungan - Terminal Condong Catur - Ringroad

Utara – Maguwoharjo - Bandara Adisucipto – Maguwoharjo -

JANTI (lewat bawah) - Blok O – JEC - Babadan

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

BAB III

ANALISA DAN PERANCANGAN SISTEM

Pada bab ini akan dijelaskan mengenai analisa dan perancangan sistem yang

digunakan dalam penelitian ini.

3.1. Deskripsi Kasus

Kasus penggunaan Bus Trans Jogja yang mungkin dihadapi oleh para

penumpangnya adalah ketidaktahuan untuk menentukan jalur Bus Trans Jogja

yang harus ditempuh guna mencapai tujuan yang dikehendaki. Selain hal itu,

penumpang bahkan juga mungkin tidak tahu trayek apa yang harus

ditumpangi dan perpindahan bus yang harus dilakukan guna mencapai titik

tujuannya dengan cepat. Berdasarkan hal tersebut salah satu solusi yang dapat

diberikan adalah membuat sebuah aplikasi untuk mencari jalur terpendek rute

Bus Trans Jogja dari satu titik awal ke satu titik tujuan. Selain kemampuan

mencari jalur terpendek, aplikasi yang dibuat juga harus mampu memberikan

saran berupa bus yang harus digunakan beserta perpindahan yang harus

dilakukan untuk menempuh jalur terpendek yang telah ditemukan.

Aplikasi akan dibuat untuk smartphone bersistem operasi Android.

Hal tersebut dilakukan agar aplikasi yang dibuat lebih optimal dalam

membantu penumpang karena mampu membantu penumpang pemilik

smartphone Android menentukan Bus Trans Jogja yang harus digunakan

secara mobile. Pertimbangan hal tersebut muncul karena dengan ukuran

34

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

36

gambar graph yang terbentuk berdasarkan posisi halte dan jarak antar halte

yang ada.

Gambar 3.1 Graph Rute Bus Trans Jogja

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

38

Gambar 3.2 Posisi Halte Bus Trans Jogja

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

40

12. Untuk int i = 1, selama i < jumlah vertex lakukan langkah dua

belas hingga langkah lima belas.

13. Jika vertex ke – i belum dikunjungi dan sPath ke – i <

jarakTerpendek maka lakukan langkah tiga belas dan empat

belas.

14. jarakTerpendek = sPath[i].getjarak().

15. minIndeks = i.

16. i++.

17. Buat dan inisialisasi variabel “min” = minIndeks.

18. Buat dan inisialisasi varaibel “minDist” =

sPath[min].getJarak().

19. Jika minDist = infinite, maka break. Jika tidak lakukan langkah

dua puluh dan 21.

20. vertSekarang = minIndeks.

21. jarakAwalKini = sPath[min].getJarak().

22. Tandai vertex sekarang bahwa dirinya sudah dikunjungi.

23. jumGraph++.

24. Buat dan inisialisasi variabel int “kolom” = 0.

25. Selama kolom < jumlah vertex, lakukan langkah 26 hingga 31.

26. Jika vertex dengan index kolom sudah dikunjungi, maka

kolom++ dan continue.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

42

5. Untuk int i = 0, selama i < path.length lakukan langkah enam

hingga langkah sembilan.

6. Untuk int j = 0, selama j < path.length lakukan langkah tujuh

hingga langkah delapan.

7. Jika “jarak” sama dengan infinite, maka path[i][j] = -1, jika

tidak maka path[i][j] = i.

8. j++.

9. i++.

10. Untuk int i = 0, selama i < jumlah halte, lakukan langkah

sebelas hingga langkah dua belas.

11. path[i][i] = 1.

12. i++.

13. Untuk int i = 0, selama i < path.length lakukan langkah empat

belas hingga langkah 21.

14. Untuk int j = 0, selama j < path.length lakukan langkah lima

belas hingga langkah dua puluh.

15. Untuk int k = 0, selama k < path.length lakukan langkah enam

belas hingga langkah sembilan belas.

16. Jika jarak[j][i] + jarak[i][k] < jarak[j][k], lakukan langkah

tujuh belas dan delapan belas.

17. jarak[j][k] = jarak[j][i] + jarak[i][k].

18. path[j][k] = path[i][k].

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

44

9. Masukkan ke daftarTrayek edgeTrayek untuk nilai awal dan

tujuan yang telah ditentukan pada langkah tujuh dan delapan.

10. i++.

11. Inisialisasi bantu yang bertipe List<String> yang merupakan

nilai dari variabel daftarTrayek ke-0.

12. Inisialisasi variabel bertipe String baru dan perpindahanBus

bernilai empty string.

13. Untuk int i = 1, selama i kurang dari jalurPilihan.size maka

lakukan langkah empat belas hingga langkah 29.

14. Ubah nilai variabel baru menjadi empty string.

15. Untuk int j = 0, selama j kurang dari bantu.size, lakukan

langkah enam belas hingga sembilan belas.

16. Untuk int k = 0, selama k kurang dari daftarTrayek.get(i).size

lakukan langkah tujuh belas hingga delapan belas.

17. Jika nilai variabel bantu sama dengan daftarTrayek.get(i).get(k)

maka baru = baru + bantu.get(j).

18. j++.

19. j++.

20. Jika nilai variabel baru sama dengan empty String maka

lakukan langkah 21 hingga 25, jika tidak lakukan langkah 26.

21. Untuk j = 0, selama j kurang dari bantu.size lakukan langkah

22 hingga 24.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

46

dengan solusi yang diperoleh melalui penghitungan manual. Kemiripan solusi

yang diberikan oleh sistem dengan solusi yang didapat secara manual akan

menjadi nilai ukur kebenaran dari solusi yang diberikan oleh sistem. Semakin

mirip solusi dari sistem dengan solusi yang didapat dari perhitungan manual,

maka semakin benar pula solusi yang diberikan oleh sistem. Penghitungan

manual akan dilakukan dengan cara:

1. Menentukan semua kemungkinan jalur yang mampu ditempuh dari

titik awal dan tujuan yang telah ditentukan, kemudian menghitung

jarak untuk setiap kemungkinan jalur yang didapat.

2. Membandingkan semua jarak untuk semua kemungkinan jalur yang

telah didapat.

3. Jalur dengan nilai jarak terkecillah yang kemudian dijadikan sebagai

solusi dalam penghitungan manual tersebut.

Hal terakhir yang kemudian dilakukan adalah membandingkan

kompleksitas waktu asimtotik dari masing-masing algoritma dan running

time-nya. Hal ini dilakukan untuk menentukan algoritma mana yang paling

optimal untuk digunakan dalam aplikasi yang dibuat. Algoritma yang palling

optimallah yang akan benar-benar digunakan dalam aplikasi yang akan dibuat

sehingga aplikasi benar-benar siap untuk dipublikasi dan digunakan oleh

masyarakat umum.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

48

3. Aktor menyentuh kembali titik awal yang telah ditentukan sebelumnya.

2. Sistem telah menandai lokasi awal yang telah ditentukan oleh aktor.

4. Sistem memunculkan dialog apakah titik awal yang telah ditentukan sebelumnya oleh actor akan dibatalkan atau tidak.

Tabel 3.1 Tabel Use Case Menentukan Titik Awal

b. Nama Use Case : Menentukan titik tujuan

Aktor : User (pengguna aplikasi)

Kondisi Awal : Titik awal telah ditentukan

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor touch titik tujuan yang berupa icon halte Bus Trans Jogja.

2. Sistem menandai lokasi yang telah ditentukan dan kemudian menampilkan jalur yang menghubungkan tiap halte.

Tabel 3.2 Tabel Use Case Menentukan Titik Tujuan

c. Nama Use Case : Melihat jalur bus yang ditempuh

Aktor : User (pengguna aplikasi)

Kondisi Awal : Titik awal dan tujuan telah ditentukan

Skenario :

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

50

bus yang harus dipilih aktor berdasarkan jalur terpendek yang telah diperoleh sistem.

Tabel 3.5 Tabel Use Case Melihat Saran Trayek Bus yang Harus

Dipilih

f. Nama Use Case : Melihat running time algoritma

Aktor : User

Kondisi Awal : Titik awal dan tujuan telah ditentukan

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor touch tombol “Details”.

2. Sistem menampilkan running time aloritma.

Tabel 3.6 Tabel Use Case Melihat Running Time Algoritma

g. Nama Use Case : Mencari halte

Aktor : User

Kondisi Awal : -

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor mengisi textfield yang ada dengan nama halte yang ingin dicari.

2. Aktor touch tombol “Cari”.

3. Sistem menunjukkan halte yang dicari jika ada.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

52

3.4.1. Diagram Aktivitas Menentukan Titik Awal

Gambar 3.4 Diagram Aktivitas Menentukan Titik Awal

3.4.2. Diagram Aktivitas Menentukan Titik Tujuan

Gambar 3.5 Diagram Aktivitas Menentukan Titik Tujuan

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

54

3.4.4. Diagram Aktivitas Melihat Jalur Bus yang Ditempuh,

Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek

Bus yang Harus Dipilih, dan Melihat Running Time

Algoritma

Gambar 3.7 Diagram Akivitas Melihat Jalur Bus yang

Ditempuh, Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek

Bus yang Harus Dipilih, dan Melihat Running Time Algoritma

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

56

3.5.2. Diagram Sekuensial Menentukan Titik Tujuan

Gambar 3.10 Diagram Sekuensial Menentukan Titik Tujuan

3.5.3. Diagram Sekuensial Mencari Halte

Gambar 3.11 Diagram Sekuensial Mencari Halte

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

58

Gambar 3.13 Diagram Sekuensial Melihat Jalur Bus yang

Ditempuh, Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek

Bus yang Harus Dipilih, dan Melihat Running Time Algoritma Floyd-

Warshall

3.5.5. Diagram Sekuensial Melihat Help

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

60

Gambar 3.16 Diagram Kelas Perancangan Keseluruhan

3.7. Kelas Analisis

Tabel 3.9 dan 3.10 adalah tabel kelas-kelas analisis yang digunakan

pada sistem. Tabel ini menunjukkan jenis-jenis setiap kelas yang digunakan

dan tanggung jawab dari setiap kelas. Daftar attribut setiap kelas juga

dimasukkan dalam tabel ini.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

62

TemporaryJalur_n_Jarak Membantu untuk menyimpan jarak dan jalur secara sementara yang digunakan dalam pencarian jalur terpendek dengan menggunakan algoritma dijkstra.

double jarak private int from

MainActivity Menampilkan halaman judul.

Map Menampilkan tampilan peta.

Membuat halte dan jarak antar halte.

Membuat posisi-posisi halte dan pengguna pada peta.

MapView mapView MapController

mapController SitesOverlay sitesOverlays SitesOverlay sitesOverlay2 Graph graph Button buttonDetails List<String> daftarHalte InputStream data Sheet sheet Sheet sheet2 Sheet sheet3 ArrayList<String> trayek String param String[] namaHalte GeoPoint pointHalte1 AutoCompleteTextView

autoText PathOverlay Membuat jalur

terpendek pada peta.

Projection projection ArrayList<GeoPoint>

ppoint SitesOverlay Menampilkan

posisi-posisi halte dan pengguna pada peta.

Menampilkan jalur terpendek pada

List<OverlayItem> items Drawable marker Drawable markerStart Drawable markerEnd Drawable markerChange Context context

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

64

findIndex(String index) public Digunakan untuk

mencari index dari

node yang dicari

dengan masukan

berupa nama node.

getMin() public Digunakan untuk

mencari jalur yang

terpendek dengan

membandingkan dua

buah jalur. Fungsi ini

digunakan dalam

pencarian jalur

terpendek dengan

algoritma Dijkstra.

adjust_sPath() public Digunakan untuk

membentuk jalur

terpendek pada

pencarian jalur

terpendek dengan

algoritma Dijkstra.

displayPaths(int tujuan, int

awal)

public Digunakan untuk

menampilkan jarak

terpendek dan jalur

yang harus ditempuh

dalam pencarian jalur

terpendek dengan

algoritma Dijkstra.

dijkstra(String awal, String public Digunakan untuk

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

66

diperoleh.

Nama Atribut Visibility Tipe

INFINITE private integer

edge package double[][]

edgeTrayek package ArrayList<String>[][]

daftarVertex package Halte[]

jumlah_vertex package integer

tujuan package List<Halte>

sPath package TemporaryJalur_n_Jar

ak[]

jumGraph package integer

vertSkrg package integer

mulaiSmpSkrg package double

Tabel 3.11 Tabel Operasi dan Atribut Kelas Graph

b. Kelas Halte Nama Operasi Visibility Keterangan

getNama() public Digunakan untuk

mengambil nama dari

halte.

setNama(String nama) public Digunakan untuk

memberi nama sebuah

halte.

isInGraph() public Digunakan untuk

mengambil tanda sebuah

halte apakah sudah

dikunjungi atau belum.

setInGraph(boolean public Digunakan untuk

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

68

asal node

sementara.

Nama Atribut Visibility Tipe

jarak private double

from private integer

Tabel 3.13 Tabel Operasi dan Atribut Kelas TemporaryJalur_n_Jarak

d. Kelas MainActivity Nama Operasi Visibility Keterangan

onCreate(Bundle

savedInstanceState)

public Digunakan untuk

memanggil dan

menampilkan halaman

judul.

Nama Atribut Visibility Tipe

-

Tabel 3.14 Tabel Operasi dan Atribut Kelas MainActivity

e. Kelas Map Nama Operasi Visibility Keterangan

onCreate(Bundle

savedInstanceState)

protected Digunakan untuk

memanggil dan

menampilkan peta.

onCreateOptionsMenu(Menu

menu)

public Digunakan untuk

membuat menu pada

aplikasi.

onBackPressed() public Digunakan untuk

memberi action apa yang

harus dilakukan ketika

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

70

autoText package AutoCompleteTextView

Tabel 3.15 Tabel Operasi dan Atribut Kelas Map

f. Kelas PathOverlay Nama Operasi Visibility Keterangan

draw(Canvas canvas,

MapView mapView,

boolean shadow,

long when)

public Digunakan untuk

membuat gambar path

yang akan ditampilkan

di peta.

Nama Atribut Visibility Tipe

projection private Projection

ppoint private ArrayList<GeoPoint>

Tabel 3.16 Tabel Operasi dan Atribut Kelas PathOverlay

g. Kelas SitesOverlay Nama Operasi Visibility Keterangan

createItem(int index) protected Digunakan untuk

membuat objek

gambar (posisi dan

halte).

size() public Digunakan untuk

mengambil jumlahnya

objek gambar yang

dibuat.

addItem(OverlayItem

item)

public Digunakan untuk

menambahkan objek

gambar.

addFlag(int[] itemSize) public Digunakan untuk

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

72

int counter3 = -1 package integer

mapView package MapView

param package String

Tabel 3.17 Tabel Operasi dan Atribut Kelas SitesOverlay

h. Kelas Help Nama Operasi Visibility Keterangan

onCreate(Bundle

savedInstanceState)

public Digunakan untuk

memanggil dan

menampilkan halaman

Help.

Nama Atribut Visibility Tipe

-

Tabel 3.18 Tabel Operasi dan Atribut Kelas Help

3.9. Cara Pengujian

Pengujian dilakukan dengan dua macam. Pengujian pertama dilakukan

untuk menguji dari kebenaran sistem atau aplikasi yang telah dibuat.

Pengujian ini dilakukan dengan memberikan sejumlah kasus terhadap aplikasi

yang telah dibuat. Hasil yang diperoleh berdasarkan setiap kasus yang

diberikan kemudian akan dibandingkan dengan perhitungan manual untuk

kasus yang sama. Perbandingan tersebut dilakukan untuk menguji akurasi

kebenaran atas solusi jalur terpendek yang diberikan aplikasi. Setelah

perbandingan untuk mengetahui tingkat kebenaran dilakukan maka hal

berikutnya yang dilakukan adalah menghitung nilai kompleksitas waktu

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

74

titik awal. pada peta. disentuh akan

ditandai dengan ikon

baru sebagai titik

awal.

2 Membatalkan

titik awal.

Halte bus yang telah

ditentukan sebagai

titk awal

sebelumnya.

Muncul pesan

apakah titik awal

akan dibatalkan atau

tidak.

3 Menentukan

titik tujuan.

Halte bus yang ada

pada peta (selain

yang telah ditandai

sebagai titik awal).

Halte bus yang

disentuh akan

ditandai dengan ikon

baru sebagai titik

tujuan.

Muncul garis pada

peta yang

menghubungkan

antar halte yang

merupakan jalur

tempuh dari titik

awal ke titik tujuan.

4 Melihat jalur

bus yang

ditempuh.

Tombol “Details”

disentuh.

Rute jalur terpendek

yang harus ditempuh

menggunakan bus

akan muncul berupa

poin-poin.

5 Melihat nilai

jarak yang

ditempuh.

Tombol “Details”

disentuh.

Tampil total nilai

jarak terpendek yang

harus ditempuh

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

76

SUGIYONO 2

(MUSEUM

PERJUANGAN)

(KENTUNGAN)

User diarahkan ke

posisi halte

SUGIYONO 2

(MUSEUM

PERJUANGAN)

9 Mencari halte. “ ”

TINUS

SEMBARANG

Tampil pesan bahwa

halte yang dicari

tidak diketahui.

Tampil pesan bahwa

halte yang dicari

tidak diketahui.

Tampil pesan bahwa

halte yang dicari

tidak diketahui.

10 Menguji

kebenaran jarak

terpendek

masing-masing

algoritma

Awal: SUDIRMAN

2 (BUMI PUTERA)

Tujuan: NGABEAN

Jarak: 4,604 km

Jalur:

-SUDIRMAN 2

(BUMI PUTERA)

-MANGKUBUMI 1

(TUGU)

-MANGKUBUMI 2

(PLN)

-MALIOBORO 1

(GARUDA)

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

78

Naik 2B.

Awal: MT

HARYONO 2

(SMA 7)

Tujuan: TENTARA

PELAJAR 1 (SMP

14)

Jarak: 4,299 km

Jalur:

-MT HARYONO 2

(SMA 7)

-TEJOKUSUMAN

-NGABEAN

-

COKROAMINOTO

(SMA 1)

-SMPN 11

-TENTARA

PELAJAR 1 (SMP

14)

Saran:

Naik 3B – pindah ke

2B di Ngabean.

Tabel 3.19 Skenario Pengujian

3.11. Desain Antarmuka

Gambar-gambar berikut adalah rancangan dari antarmuka untuk sistem

yang akan dibuat.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

80

3.11.3. Desain Antarmuka Tampilan Details

Gambar 3.19 Desain Antarmuka Tampilan Details

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

82

4.2. Pengolahan Data

Data diperoleh dari Dinas Perhububungan Komunikasi dan

Informatika. Berdasarkan dari data yang diperoleh tersebut terdapat enam

trayek Bus Trans Jogja yang beroperasi hingga pada saati ini. Trayek tersebut

adalah trayek 1A, 1B, 2A, 2B, 3A, dan 3B. Halte yang aktif terdapat seratus

satu buah.

Data yang dibutuhkan adalah nama halte, posisi halte, dan jarak tiap

halte yang ditelusuri oleh masing-masing trayek. Data disimpan pada file

excel yang mengandung 3 sheet. Berikut ini adalah penjelasan dari kegunaan

masing-masing sheet:

1. Sheet I (Halte)

Sheet ini digunakan untuk menyimpan nama asli setiap halte.

Nama asli halte inilah yang kemudian akan dibentuk menjadi

node-node pada graph yang dibentuk. Sheet ini terdiri satu

kolom yang berisi nama-nama asli setiap halte.

2. Sheet II (Jarak)

Sheet ini digunakan untuk menyimpan jarak tiap halte. Pada sheet

ini terdapat lebih dari empat kolom. Kolom pertama digunakan

untuk menyimpan titik awal halte. Kolom kedua digunakan untuk

menyimpan titik tujuan halte. Kolom ketiga digunakan untuk

menyimpan jarak dari titik awal halte ke titik tujuan halte. Kolom

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

84

algoritma Dijkstra dan Floyd-Warshall. Penghitungan perpindahan bus

dilakukan pada gambar source code 4.3.3.

4.3.1. Implementasi Metode Greedy dengan Algoritma Dijkstra

Source code pada gambar 4.1 adalah source code dari yang

digunakan untuk mengimplementasikan algoritma dijkstra ke dalam

aplikasi. Source code menunjukkan bahwa dibutuhkan tiga method

bantuan dalam pengimplementasian algoritma dijkstra ke dalam

aplikasi. Tiga method bantuan yang digunakan, yakni method

getMin(), adjust_sPath(), dan displayPaths(int tujuan, int awal).

Method getMin() digunakan untuk menemukan nilai jarak

terpendek sementara untuk setiap node yang ada dalam graph. Jarak

terpendek ini digunakan sebagai pembanding dalam rangka

menemukan jarak terpendek setiap node yang sebenarnya. Method

adjust_sPath() digunakan untuk memberntuk jalur berdasarkan

jarak terpendeknya. Terakhir adalah method displayPaths(int tujuan,

int awal) yang digunakan untuk menampilkan hasil yang berupa

jarak terpendek bersama dengan jalur terpendek yang harus

ditempuh.

public int getMin() {

double jarakTerpendek = INFINITE;

int minIndeks = 0;

for (int i = 1; i < jumlah_vertex; i++) {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

86

bantu = new

DecimalFormat("#.###").format(sPath[tujuan].getJarak())+":";

while (tujuan != awal) {

paths = daftarVertex[tujuan].getNama()

+ "\n" + paths;

tujuan =

findIndex(daftarVertex[sPath[tujuan].getFrom()]

.getNama());

}

paths = daftarVertex[awal].getNama() + "\n"

+ paths;

paths = bantu + paths;

}

return paths;

}

public String dijkstra(String awal, String tujuan) {

int a = findIndex(awal);

int b = findIndex(tujuan);

daftarVertex[a].setInGraph(true);

jumGraph = 1;

for (int i = 0; i < jumlah_vertex; i++) {

double jarakSementara = edge[a][i];

sPath[i] = new TemporaryJalur_n_Jarak(a,

jarakSementara);

}

while (jumGraph < jumlah_vertex) {

int minIndeks = getMin();

double minDist =

sPath[minIndeks].getJarak();

if (minDist == INFINITE) {

break;

} else {

vertSkrg = minIndeks;

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

88

int finish = findIndex(tujuan);

String paths, bantu;

int[][] path = new int[jumlahHalte][jumlahHalte];

for (int i = 0; i < path.length; i++) {

for (int j = 0; j < path.length; j++) {

if (jarak[i][j] == INFINITE) {

path[i][j] = -1;

} else {

path[i][j] = i;

}

}

}

for (int i = 0; i < jumlahHalte; i++) {

path[i][i] = i;

}

for (int i = 0; i < jarak.length; i++) {

for (int j = 0; j < jarak.length; j++) {

for (int k = 0; k < jarak.length; k++) {

if (jarak[j][i] + jarak[i][k] <

jarak[j][k]) {

jarak[j][k] = jarak[j][i] +

jarak[i][k];

path[j][k] = path[i][k];

}

}

}

}

bantu =

newDecimalFormat("#.###").format(jarak[start][finish])+":";

paths = daftarVertex[finish].getNama();

while (path[start][finish] != start) {

paths =

daftarVertex[path[start][finish]].getNama() + "\n" + paths;

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

90

public List<String> perpindahanBus2(StringTokenizer

stoken) {

List<String> answer = new ArrayList<String>();

List<String> jalurPilihan = new

ArrayList<String>();

while (stoken.hasMoreElements()) {

jalurPilihan.add(stoken.nextToken("\n"));

}

List<List> daftarTrayek = new ArrayList<List>();

for (int i = 0; i < jalurPilihan.size(); i++) {

if (i != 0) {

int awal =

findIndex(jalurPilihan.get(i - 1));

int tujuan =

findIndex(jalurPilihan.get(i));

daftarTrayek.add(edgeTrayek[awal][tujuan]);

}

}

List<String> bantu = daftarTrayek.get(0);

String baru = "";

String perpindahanHalte = "";

for (int i = 1; i < daftarTrayek.size(); i++) {

baru = "";

for (int j = 0; j < bantu.size(); j++) {

for (int k = 0; k <

daftarTrayek.get(i).size(); k++) {

if

(bantu.get(j).equals(daftarTrayek.get(i).get(k))) {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

92

answer.add("Naik bus trayek: " +

bantu.get(i));

}

}

answer.add(perpindahanHalte);

return answer;

}

Gambar 4.3 Gambar Source Code untuk Perpindahan Bus

4.4. Implementasi Penghitungan Running Time Sebuah Algoritma pada

Kelas SitesOverlay

Penghitungan running time algoritma dilakukan pada kelas

SitesOverlay dengan memanfaatkan syntax System.nanoTime() yang

diletakkan di awal sebelum pemanggilan algoritma dan di akhir sesudah

pemanggilan algoritma. Hal ini dilakukan untuk memeperoleh waktu mulai

dan waktu selesai jalannya sebuah algoritma. Waktu selesai kemudian harus

dikurangi dengan waktu mulai agar mendapatkan lawa waktu yang diperlukan

bagi sebuah algoritma untuk melakukan penghitungan. Lama waktu yang

didapat kemudian dibagi dengan satu juta untuk mendapatkan waktu dalam

satuan milliseconds. Gambar 4.4 adalah gambar yang berisi source code untuk

penghitungan running time setiap algoritma yang digunakan dalam sistem.

startTime = System.nanoTime();

bantuToken = new StringTokenizer(graph.dijkstra(awal[i],

tujuan[j]),":");

finishTime = System.nanoTime();

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

94

belakang, sedangkan tiga button digunakan untuk mengakses

halaman peta dan Help. Gambar 4.5 adalah gambar dari hasil

halaman menu yang telah dibuat dan gambar 4.6 adalah source

code yang digunakan untuk membuat halaman menu.

Gambar 4.5 Tampilan Halaman Menu

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/androi

d"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<ImageView

android:id="@+id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:src="@drawable/title" />

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

96

menggunakan MapView dari Google yang telah diisi API Key-

nya. Pada halaman ini juga digunakan AutoCompleteTextView

yang digunakan untuk menginputkan nama halte yang akan

dicari oleh pengguna. File “activity_main.xml” juga

menggunakan file xml lain yang bernama

“mydropdownstyle.xml” yang digunakan untuk merubah warna

text dan latar belakang pada AutoCompleteTextView yang

digunakan. Berikut ini adalah gambar 4.7, 4.8, dan 4.9 yang

merupakan tampilan dari halaman peta dan source code dari

file xml dari “activity_main.xml” dan “mydropdownstyle.xml”.

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

98

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:text="@string/Detail" />

<LinearLayout

android:id="@+id/zoomControls1"

android:layout_width="wrap_content"

android:layout_height="100dp"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:orientation="vertical" >

</LinearLayout>

<AutoCompleteTextView

android:id="@+id/editText1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:layout_toLeftOf="@+id/button1"

android:textColor="#000000"

android:ems="10"

android:text="@string/empty" />

<requestFocus />

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:text="@string/search" />

</RelativeLayout>

Gambar 4.8 activity_main.xml

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

100

Gambar 4.10 Tampilan Halaman Details

AlertDialog.Builder dialog = new

AlertDialog.Builder(context);

dialog.setTitle("Details by "+ param + "

Algorithm");

dialog.setMessage("JARAK: "+ jarak

+ " km\nTIME ELAPSED: "

+ new DecimalFormat("#.###").format((finishTime -

startTime) / 1000000)

+ " ms\n-------"

+ "\nJALUR:\n" + paths

+ "\n-------\nSARAN:\n"

+ sarans);

dialog.setPositiveButton("OK", null);

dialog.show();

Gambar 4.11 Source Code Halaman Details

4.5.4. Implementasi Halaman Help

Tampilan halaman “Help” dibuat dengan membuat

sebuah file xml bernama “help.xml”. Halaman ini

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

102

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/howTo"

android:textAppearance="?android:attr/textAppearanceLarg

e" />

<ImageView

android:id="@+id/imageView4"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:scaleType="center"

android:src="@drawable/title_screen" />

<TextView

android:id="@+id/textView17"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/judul"

android:textAppearance="?android:attr/textAppearanceMedi

um" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content" >

<TextView

android:id="@+id/textView19"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/one" />

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

104

android:layout_height="wrap_content"

android:text="@string/menu3" />

</LinearLayout>

<TextView

android:id="@+id/textView25"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/emptySource" />

<ImageView

android:id="@+id/imageView5"

android:layout_width="match_parent"

android:layout_height="170dp"

android:src="@drawable/map" />

<TextView

android:id="@+id/textView18"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/halamanMap"

android:textAppearance="?android:attr/textAppearanceMedi

um" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content" >

<TextView

android:id="@+id/textView12"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/one" />

<TextView

android:id="@+id/textView13"

android:layout_width="wrap_content"

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

106

android:layout_height="wrap_content"

android:paddingLeft="15dp"

android:text="@string/cancelSource" />

<TextView

android:id="@+id/textView8"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/emptySource" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content" >

<TextView

android:id="@+id/textView7"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/three" />

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/howToAddDest"

/>

</LinearLayout>

<ImageView

android:id="@+id/imageView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingLeft="15dp"

android:src="@drawable/end_point" />

<TextView

android:id="@+id/textView9"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

108

android:text="@string/pindahHalte"

/>

</LinearLayout>

<ImageView

android:id="@+id/imageView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingLeft="15dp"

android:src="@drawable/halte_change" />

</LinearLayout>

</ScrollView>

</LinearLayout>

Gambar 4.13 help.xml

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

110

2 Membatalka

n titik awal.

Halte bus yang

telah ditentukan

sebagai titk awal

sebelumnya.

Muncul pesan

apakah titik awal

akan dibatalkan

atau tidak.

Muncul pesan

apakah titik awal

akan dibatalkan

atau tidak.

3 Menentukan

titik tujuan.

Halte bus yang ada

pada peta (selain

yang telah ditandai

sebagai titik awal).

Halte bus yang

disentuh akan

ditandai dengan

ikon baru sebagai

titik tujuan.

Muncul garis pada

peta yang

menghubungkan

antar halte yang

merupakan jalur

tempuh dari titik

awal ke titik

tujuan.

Halte bus yang

disentuh akan

ditandai dengan

ikon baru

sebagai titik

tujuan.

Muncul garis

pada peta yang

menghubungkan

antar halte yang

merupakan jalur

tempuh dari titik

awal ke titik

tujuan.

4 Melihat

jalur bus

yang

ditempuh.

Tombol “Details”

disentuh.

Rute jalur

terpendek yang

harus ditempuh

menggunakan bus

akan muncul

berupa poin-poin.

Rute jalur

terpendek yang

harus ditempuh

menggunakan

bus akan muncul

berupa poin-

poin.

5 Melihat

nilai jarak

yang

Tombol “Details”

disentuh.

Tampil total nilai

jarak terpendek

yang harus

Tampil total nilai

jarak terpendek

yang harus

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

112

RINGROAD

UTARA

(KENTUNGAN)

SUGIYONO 2

(MUSEUM

PERJUANGAN)

User diarahkan ke

posisi halte

RINGROAD

UTARA

(KENTUNGAN)

User diarahkan ke

posisi halte

SUGIYONO 2

(MUSEUM

PERJUANGAN)

ke posisi halte

RINGROAD

UTARA

(KENTUNGAN)

User diarahkan

ke posisi halte

SUGIYONO 2

(MUSEUM

PERJUANGAN)

9 Mencari

halte.

“ ”

TINUS

SEMBARANG

Tampil pesan

bahwa halte yang

dicari tidak

diketahui.

Tampil pesan

bahwa halte yang

dicari tidak

diketahui.

Tampil pesan

bahwa halte yang

dicari tidak

diketahui.

Tampil pesan

bahwa halte

yang dicari tidak

diketahui.

Tampil pesan

bahwa halte

yang dicari tidak

diketahui.

Tampil pesan

bahwa halte

yang dicari tidak

diketahui.

1 Menguji Awal: Jarak: 4,604 km Dijkstra:

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

114

KOREM) -SANATA

DHARMA

-JL. COLOMBO

(SAMIRONO)

-JL. COLOMBO

(PANTI RAPIH)

-CIK DI TIRO 1

(MUSEUM

KOREM)

Saran:

Naik 2B.

luaran yang

diharapkan.

Awal: MT

HARYONO 2

(SMA 7)

Tujuan:

TENTARA

PELAJAR 1 (SMP

14)

Jarak: 4,299 km

Jalur:

-MT HARYONO

2 (SMA 7)

-TEJOKUSUMAN

-NGABEAN

-

COKROAMINOT

O (SMA 1)

-SMPN 11

-TENTARA

PELAJAR 1 (SMP

14)

Saran:

Naik 3B – pindah

ke 2B di Ngabean.

Dijkstra:

Sama dengan

luaran yang

diharapkan.

Floyd:

Sama dengan

luaran yang

diharapkan.

Tabel 5.1 Tabel Hasil Pengujian

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

116

public int getMin() {

double jarakTerpendek = INFINITE; O(1)

int minIndeks = 0; O(1)

for (int i = 1; i < jumlah_vertex; i++) { n

if (!daftarVertex[i].isInGraph()&&

sPath[i].getJarak() < jarakTerpendek){

jarakTerpendek = sPath[i].getJarak(); O(1)

minIndeks = i; O(1)

}

}

return minIndeks; O(1)

}

Gambar 5.1 Source Code Method getMin

Berdasarkan gambar 5.1 method getMin memiliki

kompleksitas waktu asimtotik O(n). Hal tersebut diperoleh melalui

perhitungan berikut:

O(1)+O(1)+(n.(O(1)+O(1)))+ O(1)

= O(1)+O(1)+(n.O(1))+O(1)

= O(1)+O(1)+O(n)+O(1)

= O(n)

Gambar 5.2 adalah hasil penghitungan kompleksitas waktu

asimtotik tiap baris source code yang dimiliki oleh method

adjust_sPath.

public void adjust_sPath() {

int kolom = 0; O(1)

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

118

bantu = new

DecimalFormat("#.###").format(sPath[tujuan].getJarak())+":";O(1)

while (tujuan != awal) { n

paths = daftarVertex[tujuan].getNama() + "\n" +

paths; O(1)

tujuan =

findIndex(daftarVertex[sPath[tujuan].getFrom()] .getNama());O(1)

}

paths = daftarVertex[awal].getNama() + "\n" +

paths; O(1)

paths = bantu + paths; O(1)

}

return paths; O(1)

}

Gambar 5.3 Source Code Method displayPaths

Kompleksitas waktu asimtotik dari method displayPaths adalah:

O(1)+O(1)+(O(1)+(n.(O(1)+O(1)))+O(1)+O(1))+O(1)

= O(1)+O(1)+(O(1)+O(n)+O(1)+O(1))+O(1)

= O(1)+O(1)+O(n)+O(1)

= O(n)

public int findIndex(String index) {

int a = 0; O(1)

while (a < jumlah_vertex) { n

if

(index.equals(daftarVertex[a].getNama())) {

return a; O(1)

} else {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

120

sPath[i] = new TemporaryJalur_n_Jarak(a,

jarakSementara); O(1)

}

while (jumGraph < jumlah_vertex) { n

int minIndeks = getMin(); O(n)

double minDist =

sPath[minIndeks].getJarak(); O(1)

if (minDist == INFINITE) {

break;

} else {

vertSkrg = minIndeks; O(1)

mulaiSmpSkrg =

sPath[minIndeks].getJarak();O(1)

}

daftarVertex[vertSkrg].setInGraph(true);O(1)

jumGraph++; O(1)

adjust_sPath(); O(n)

}

jumGraph = 0; O(1)

for (int i = 0; i < jumlah_vertex; i++) { n

daftarVertex[i].setInGraph(false); O(1)

}

return displayPaths(b, a); O(n)

}

Gambar 5.5 Source Code Method dijkstra

Penghitungan kompleksitas waktu asimtotik algoritma

Dijkstra berdasarkan gambar 5.3 adalah O(n2). Penghitungan yang

dilakukan untuk memperoleh hasil tersebut adalah:

O(n)+O(n)+O(1)+O(1)+(n.(O(1)+O(1)))+(n.(O(n)+O(1)+(O(1)

+O(1))+O(1)+O(1)+O(n)))+O(1)+(n.O(1))+O(n)

= O(n)+O(n)+O(1)+O(1)+O(n)+O(n2)+O(1)+O(n)+O(n)

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

122

Kompleksitas waktu asimtotik untuk method findIndex

berdasarkan pada gambar 5.6 adalah O(1)+n.O(1)+O(1) = O(n).

Analisis hasil nilai Big Oh untuk setiap baris source code

yang dimiliki oleh method deepCopyIntMatrix tertuang pada

gambar 5.7

public static double[][] deepCopyIntMatrix(double[][] input) {

if (input == null)

return null; O(1)

double[][] result = new double[input.length][]; O(1)

for (int r = 0; r < input.length; r++) { n

result[r] = input[r].clone(); O(1)

}

return result;

}

Gambar 5.7 Source Code Method deepCopyIntMatrix

Kompleksitas waktu asimtotik untuk method deepCopyMatrix

berdasarkan pada gambar 5.7 adalah O(1) + O(1) + n.O(1) = O(n).

Setelah memperoleh nilai Big Oh dari method findIndex

dan deepCopyIntMatrix, penghitungan nilai Big Oh method floyd

dilakukan. Penghitungan nilai Big Oh dari method floyd dilakukan

dengan melihat gambar 5.8.

public String floyd(String awal, String tujuan) {

double[][] jarak = this.deepCopyIntMatrix(edge);O(n)

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

124

}

paths = daftarVertex[start].getNama() + "\n" + paths; O(1)

paths = bantu + paths; O(1)

return paths;

O(1)

}

Gambar 5.8 Source Code Method Floyd

Dengan menggunakan gambar 5.8, penghitungan kompleksitas

waktu asimtotik dari algoritma Floyd-Warshall adalah:

O(n)+O(n)+O(n)+O(1)+(n.(n.(O(1)+O(1))))+(n.O(1))+(n.O(1))+(n

.(n.(n.((O(1)+O(1))))))+O(1)+O(1)+n.(O(1)+O(1))+O(1)+O(1)+O

(1)

=

O(n)+O(n)+O(n)+O(1)+O(n2)+O(n)+O(n)+O(n3)+O(1)+O(n)+O(1

))+O(1)+O(1)+O(1)

= O(n3)

5.3. Pengujian dan Analisa Hasil Perbandingan Running Time Algoritma

Dijkstra dan Floyd-Warshall

Pengujian running time masing-masing algoritma dilakukan dengan

menggunakan sepuluh kasus. Pengujian direpresentasikan melalui tabel 5.2.

Kolom pertama adalah nomor uji, kolom kedua merupakan titik awal, kolom

kedua merupakan titik tujuan, kolom keempat merupakan running time

algoritma Dijkstra, dan kolom terakhir merupakan running time algoritma

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 145: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

126

UTARA (INSTIPER

1/INSTIPER 2)

(TAMAN

PINTAR/TAMAN

SENOPATI)

6. TERMINAL

CONDONGCATUR

GIWANGAN 16 ms 233 ms

7. SUDIRMAN 3

(GONDOLAYU)

JL. COLOMBO

(KOSUDGAMA)

9 ms 220 ms

8. MT HARYONO 2

(SMA 7)

RINGROAD

UTARA

(INSTIPER

1/INSTIPER 2)

9 ms 222 ms

9. MANGKUBUMI 1

(TUGU)

AHMAD YANI

(BENTENG

VREDEBURG)

8 ms 222 ms

10 MT HARYONO 2

(SMA 7)

KATAMSO 2

(IMMACULATA)

9 ms 225 ms

Tabel 5.2 Tabel Hasil Pengujian Running Time Kedua Algoritma

Berdasarkan tabel 5.2, dari sepuluh kasus yang diberikan, algoritma

Dijkstra mampu memberikan solusi lebih cepat dari algoritma Floyd-

Warshall untuk semua kasus yang diberikan. Hal tersebut dikarenakan

algoritma Dijkstra mempunyai kompleksitas waktu asimtotik (Big Oh) yang

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 146: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 147: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

BAB VI

KESIMPULAN DAN SARAN

Pada bab ini akan dibahas mengenai kesimpulan dan saran dari penelitian

yang telah dibuat.

6.1. Kesimpulan

Kesimpulan dari penelitian yang telah dilakukan adalah:

1. Penggunaan metode greedy dan metode pemrograman dinamis yang

masing-masing diwakili oleh algoritma Dijkstra dan Floyd-Warshall

mampu memberikan solusi yang tepat pada kasus pencarian jalur

terpendek pada Bus Trans Jogja.

2. Algoritma Dijkstra dan algoritma Floyd-Warshall mampu

diimplementasikan dalam sistem pencarian jalur terpendek untuk kasus

Bus Trans Jogja karena mampu memberikan solusi jalur terpendek yang

tepat.

3. Running time dari algoritma Dijkstra lebih cepat daripada running time

dari algoritma Floyd-Warshall dalam memberikan solusi kepada

pengguna. Hal tersebut juga Nampak pada kompleksitas waktu asimtotik

dari algoritma Dijkstra yang lebih sederhana, yakni O(n2) dibandingkan

dengan kompleksitas waktu asimtotik dari algoritma Floyd-Warshall

yang adalah O(n3).

128

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 148: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 149: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

DAFTAR PUSTAKA

Arifianto, Sofyan. (2012). Sistem Aplikasi Penentuan Rute Terpendek Pada

Jaringan Multi Moda Transportas Umum Menggunakan Algoritma Dijkstra.

Tesis S-2 pada Universitas Diponegoro Semarang: tidak diterbitkan.

Bell, Donalds. (2004). UML Basics: The Class Diagram. Online. Tersedia:

http://www.ibm.com/developerworks/rational/library/content/RationalEdge/se

p04/bell/. 28 Mei 2013.

Bell, Rob. (2009). A Beginner’s Guide to Big O Notation. Online. Tersedia:

http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/. 5 Juni 2013.

Cooper, Leon dan Mary W. Cooper. (1981). Introduction to Dynammic

Programming. Dallas: Pergamon Press.

Denardo, Eric V. (2003). Dynamic Programming Models and Applications.

New York: Dover Publications, Inc.

Fanani, Lutfi. (2012). Rancang Bangun Aplikasi Web Pencarian Rute

Terpendek Antar Gedung di Kampus Menggunakan Algoritma Floyd-

Warshall. Journal Basic Science And Technology. 1(3), 7-11.

130

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 150: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 151: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

LAMPIRAN

Lampiran 1: User Manual

1. Sentuh tombol “Algoritma Dijkstra” untuk masuk ke halaman “Map” dan

kemudian melakukan pencarian jalur terpendek dengan menggunakan

algoritma Dijkstra.

2. Sentuh tombol “Algoritma Floyd-W” untuk masuk ke halaman “Map” dan

kemudian melakukan pencarian jalur terpendek dengan menggunakan

algoritma Floyd-Warshall.

3. Sentuh tombol “Help” untuk masuk ke halaman “Help” yang berisi cara

penggunaan sistem.

132

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 152: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 153: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

134

Lampiran 2: Gambar Peta Jalur dan Halte Bus Trans Jogja

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 154: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 155: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

136

RINGROAD UTARA (MONJALI 2) RINGROAD UTARA (STIKES GUNA BANGSA) RINGROAD UTARA (UPN) RS AU DR. S. HARDJOLUKITO RS DR YAP RSI HIDAYATULAH RSUP DR. SARDJITO SANATA DHARMA SANTREN SENOPATI 1 (TAMAN SENOPATI) SENOPATI 2 (TAMAN PINTAR) SMP 5 YOGYAKARTA SMPN 11 SOROGENEN (NITIKAN) SOROGENEN (WIROSABAN) SUDIRMAN 2 (BUMI PUTERA) SUDIRMAN 3 (GONDOLAYU) SUDRIMAN 1 (BETHESDA) SUGIYONO 1 (SD PUJOKUSUMAN) SUGIYONO 2 (MUSEUM PERJUANGAN) SUSTERAN NOVISIAT TEGAL GENDU 1 TEGAL GENDU 2 TEGALTURI 1 TEGALTURI 2 TEJOKUSUMAN TENTARA PELAJAR 1 (SMP 14) TENTARA PELAJAR 2 (SAMSAT) TERMINAL CONDONGCATUR TERMINAL JOMBOR UNY URIP SUMOHARJO (LPP)

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 156: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 157: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

138

SENOPATI 1 (TAMAN SENOPATI) TENTARA PELAJAR 1 (SMP 14) 2.84 1B RS DR YAP JL. COLOMBO (KOSUDGAMA) 0.905 1B JL. COLOMBO (UNY) JL. SOLO (DE BRITTO) 1.47 1B JL. SOLO (DE BRITTO) JL. SOLO (AMBARUKMO) 0.941 1B JL. SOLO (AMBARUKMO) JANTI FLYOVER 1.16 1B JANTI FLYOVER JL. SOLO (JANTI) 0.611 1B RINGROAD UTARA (MONJALI 1) AM. SANGAJI 2 (JETIS) 3.155 2A AM. SANGAJI 2 (JETIS) MANGKUBUMI 1 (TUGU) 0.999 2A SENOPATI 2 (TAMAN PINTAR) KATAMSO 1 (PURAWISATA) 0.981 2A KATAMSO 1 (PURAWISATA) SUGIYONO 1 (SD PUJOKUSUMAN) 0.791 2A SUGIYONO 1 (SD PUJOKUSUMAN) RSI HIDAYATULAH 1.984 2A RSI HIDAYATULAH NGEKSIGONDO (DIKLAT PU) 1.302 2A NGEKSIGONDO (DIKLAT PU) GEDONG KUNING (DEP.KEHUTANAN) 0.764 2A GEDONG KUNING (DEP.KEHUTANAN) KUSUMANEGARA (GEMBIRALOKA) 2.27 2A KUSUMANEGARA (GEMBIRALOKA) KUSUMANEGARA 4 (SGM) 0.598 2A 1B KUSUMANEGARA 4 (SGM) KENARI 2 (MANDALA KRIDA) 1.676 2A KENARI 2 (MANDALA KRIDA) SMP 5 YOGYAKARTA 2.601 2A SMP 5 YOGYAKARTA SUDRIMAN 1 (BETHESDA) 0.981 2A SUDRIMAN 1 (BETHESDA) RS DR YAP 0.533 2A RS DR YAP JL. COLOMBO (KOSUDGAMA) 0.905 2A JL. COLOMBO (KOSUDGAMA) JL. COLOMBO (UNY) 0.916 2A 1B JL. COLOMBO (UNY) UNY 0.512 2A UNY SANTREN 0.958 2A SANTREN TERMINAL CONDONGCATUR 1.249 2A RINGROAD UTARA (MANGGUNG RINGROAD UTARA (MONJALI 2) 2.198 2A TERMINAL JOMBOR RINGROAD UTARA (MONJALI 1) 0.949 2B 2A

SYSTOOLS DEMOPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 158: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 159: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

140

GEDONG KUNING (DEP.KEHUTANAN) GEDONG KUNING (JEC) 2.395 3A GEDONG KUNING (JEC) JL. SOLO (JANTI) 2.566 3A 1A JL. SOLO (JANTI) JL. SOLO (ALFA) 0.902 3A 1A 1B JL. SOLO (ALFA) JL. SOLO (MAGUWO) 0.905 3A 1A 1B JL. SOLO (MAGUWO) BANDARA ADISUCIPTO 1.071 3A 1A 1B 3B BANDARA ADISUCIPTO RINGROAD UTARA (DISNAKER) 2.966 3A RINGROAD UTARA (DISNAKER) RINGROAD UTARA (INSTIPER 2) 1.17 3A RINGROAD UTARA (INSTIPER 2) RINGROAD UTARA (UPN) 1.774 3A RINGROAD UTARA (UPN) TERMINAL CONDONGCATUR 1.612 3A TERMINAL CONDONGCATUR RINGROAD UTARA (MANGGUNG) 1.381 3A 2A RINGROAD UTARA (MANGGUNG) FK-UGM 2.467 3A FK-UGM JL. KALIURANG (KOPMA UGM) 0.991 3A JL. KALIURANG (KOPMA UGM) CIK DI TIRO 1 (MUSEUM KOREM) 1.128 3A SMP 5 YOGYAKARTA KOTABARU 0.819 3A KOTABARU SUDIRMAN 2 (BUMI PUTERA) 0.383 3A SUDIRMAN 2 (BUMI PUTERA) DIPONEGORO 0.773 3A DIPONEGORO TENTARA PELAJAR 2 (SAMSAT) 0.678 3A TENTARA PELAJAR 2 (SAMSAT) JLAGRAN 0.692 3A JLAGRAN MALIOBORO 1 (GARUDA) 1.138 3A MALIOBORO 1 (GARUDA) MALIOBORO 2 (KEPATIHAN) 0.492 3A 1A 2A MALIOBORO 2 (KEPATIHAN) AHMAD YANI (BENTENG VREDEBURG) 0.517 3A 1A 2A AHMAD YANI (BENTENG VREDEBURG) KHA DAHLAN 1 (PAPPMI) 0.668 3A NGABEAN MT HARYONO 1 (JOKTENG) 1.182 3A MT HARYONO 1 (JOKTENG) SUGIYONO 1 (SD PUJOKUSUMAN) 1.416 3A SUGIYONO 1 (SD PUJOKUSUMAN) LOWANU 1.132 3A LOWANU SOROGENEN (WIROSABAN) 0.662 3A

SYSTOOLS DEMOPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 160: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 161: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

142

GEDONG KUNING (BANGUNTAPAN) TEGAL GENDU 1 3.201 3B GEDONG KUNING (WONOCATUR) GEDONG KUNING (BANGUNTAPAN) 1.411 3B TEGAL GENDU 1 GIWANGAN 1.412 3B

SYSTOOLS DEMOPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 162: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 163: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

144

JL. SOLO (DE BRITTO) JL. SOLO (DE BRITTO) -7.782995 110.394005 JL. SOLO (GEDUNG WANITA) JL. SOLO (GEDUNG WANITA) -7.783346 110.393972 JL. SOLO (JANTI) JL. SOLO (JANTI) -7.783101 110.411439 JL. SOLO (KALASAN) JL. SOLO (KALASAN) -7.75981 110.477357 JL. SOLO (KR.1) JL. SOLO (KR.1) -7.766571 110.472465 JL. SOLO (KR.2) JL. SOLO (KR.2) -7.775458 110.461006 JL. SOLO (MAGUWO) JL. SOLO (MAGUWO) -7.783176 110.430729 JLAGRAN JLAGRAN -7.789505 110.360195 KARANGJATI KARANGJATI -7.757004 110.369468 KATAMSO 1 (PURAWISATA) KATAMSO 1 (PURAWISATA) -7.809835 110.369318 KATAMSO 2 (IMMACULATA) KATAMSO 2 (IMMACULATA) -7.803011 110.368974 KENARI 1/KENARI 2 (MANDALA KRIDA) KENARI 1 (MANDALA KRIDA);KENARI 2 (MANDALA KRIDA) -7.797541 110.383836

KHA DAHLAN (PAPPMI/NGADIWINATAN) KHA DAHLAN 1 (PAPPMI);KHA DAHLAN 2 (NGADIWINATAN) -7.80119 110.358703

KOTABARU KOTABARU -7.784524 110.371334 KUSUMANEGARA (GEDUNG JUANG 45) KUSUMANEGARA (GEDUNG JUANG 45) -7.802283 110.400589 KUSUMANEGARA (GEMBIRALOKA) KUSUMANEGARA (GEMBIRALOKA) -7.802325 110.398715 KUSUMANEGARA (SGM) KUSUMANEGARA 3 (SGM);KUSUMANEGARA 4 (SGM) -7.802144 110.393551

KUSUMANEGARA 1 (TMP) KUSUMANEGARA 1 (TMP) -7.801865 110.383544 KUSUMANEGARA 2 (STPP) KUSUMANEGARA 2 (STPP) -7.801868 110.381746 LOWANU LOWANU -7.823185 110.378072 MALIOBORO 1 (GARUDA) MALIOBORO 1 (GARUDA) -7.790999 110.366142 MALIOBORO 2 (KEPATIHAN) MALIOBORO 2 (KEPATIHAN) -7.794975 110.365648

SYSTOOLS DEMOPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 164: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 165: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

146

RS DR YAP RS DR YAP -7.78105 110.375036 RSI HIDAYATULAH RSI HIDAYATULAH -7.815511 110.387803 RSUP DR. SARDJITO RSUP DR. SARDJITO -7.770118 110.373346 SENOPATI (TAMAN PINTAR/TAMAN SENOPATI) SENOPATI 2 (TAMAN PINTAR);SENOPATI 1 (TAMAN SENOPATI) -7.801523 110.367655

SMP 5 YOGYAKARTA SMP 5 YOGYAKARTA -7.787327 110.375353 SMPN 11 SMPN 11 -7.793417 110.353187 SOROGENEN (NITIKAN) SOROGENEN (NITIKAN) -7.824928 110.379467 SOROGENEN (WIROSABAN) SOROGENEN (WIROSABAN) -7.824673 110.379499 SUDIRMAN 2 (BUMI PUTERA) SUDIRMAN 2 (BUMI PUTERA) -7.783112 110.369425 SUDIRMAN 3 (GONDOLAYU) SUDIRMAN 3 (GONDOLAYU) -7.782708 110.369017 SUDRIMAN 1 (BETHESDA) SUDRIMAN 1 (BETHESDA) -7.783154 110.377847 SUGIYONO 1 (SD PUJOKUSUMAN) SUGIYONO 1 (SD PUJOKUSUMAN) -7.814697 110.369077 SUGIYONO 2 (MUSEUM PERJUANGAN) SUGIYONO 2 (MUSEUM PERJUANGAN) -7.814921 110.370215 SUSTERAN NOVISIAT/SANTREN SUSTERAN NOVISIAT;SANTREN -7.766008 110.392159 TEGAL GENDU 1 TEGAL GENDU 1 -7.825614 110.391296 TEGAL GENDU 2 TEGAL GENDU 2 -7.825513 110.391215 TEGALTURI 1 TEGALTURI 1 -7.825821 110.388458 TEGALTURI 2 TEGALTURI 2 -7.82547 110.388082 TEJOKUSUMAN TEJOKUSUMAN -7.807858 110.355949 TENTARA PELAJAR 1 (SMP 14) TENTARA PELAJAR 1 (SMP 14) -7.786365 110.359812 TENTARA PELAJAR 2 (SAMSAT) TENTARA PELAJAR 2 (SAMSAT) -7.78713 110.359941 TERMINAL CONDONGCATUR TERMINAL CONDONGCATUR -7.757684 110.39556 TERMINAL JOMBOR TERMINAL JOMBOR -7.747478 110.362086

SYSTOOLS DEMOPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 166: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 167: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

148

Lampiran 6: Source Code Kelas Graph

package com.entity; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class Graph { private final int INFINITE = 1000000; double edge[][]; ArrayList<String> edgeTrayek[][]; Halte daftarVertex[]; int jumlah_vertex, jumlahHalte; int jumGraph; int vertSkrg; double mulaiSmpSkrg; TemporaryJalur_n_Jarak sPath[]; public Graph(int jumlahHalte) { this.jumlahHalte = jumlahHalte; edge = new double[jumlahHalte][jumlahHalte]; edgeTrayek = new ArrayList[jumlahHalte][jumlahHalte]; daftarVertex = new Halte[jumlahHalte]; jumlah_vertex = 0; jumGraph = 0; for (int i = 0; i < jumlahHalte; i++) { for (int j = 0; j < jumlahHalte; j++) { edge[i][j] = INFINITE; edgeTrayek[i][j] = null; } } sPath = new TemporaryJalur_n_Jarak[112]; } public void insertHalte(String vortex) { Halte a = new Halte(vortex); daftarVertex[jumlah_vertex] = a; jumlah_vertex++; } public void insertJarak(String a, String b, double nilai, ArrayList<String> trayek) { int x = findIndex(a); int y = findIndex(b); if (x != -1 && y != -1) { edge[x][y] = nilai;

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 168: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 169: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

150

String paths = ""; String bantu = ""; if (sPath[tujuan].getJarak() != INFINITE) { // paths.push(String.valueOf(sPath[tujuan].getJarak())); bantu = new DecimalFormat("#.###").format(sPath[tujuan].getJarak())+":";//String.valueOf(sPath[tujuan].getJarak()) + ":"; while (tujuan != awal) { // /paths.push(daftarVertex[tujuan].getNama()); paths = daftarVertex[tujuan].getNama() + "\n" + paths; tujuan = findIndex(daftarVertex[sPath[tujuan].getFrom()] .getNama()); } paths = daftarVertex[awal].getNama() + "\n" + paths; paths = bantu + paths; // paths.push(daftarVertex[awal].getNama()); } return paths; } public String dijkstra(String awal, String tujuan) { int a = findIndex(awal); int b = findIndex(tujuan); daftarVertex[a].setInGraph(true); jumGraph = 1; for (int i = 0; i < jumlah_vertex; i++) { double jarakSementara = edge[a][i]; sPath[i] = new TemporaryJalur_n_Jarak(a, jarakSementara); } while (jumGraph < jumlah_vertex) { int minIndeks = getMin(); double minDist = sPath[minIndeks].getJarak(); if (minDist == INFINITE) { break; } else { vertSkrg = minIndeks; mulaiSmpSkrg = sPath[minIndeks].getJarak(); } daftarVertex[vertSkrg].setInGraph(true); jumGraph++; adjust_sPath(); }

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 170: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 171: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

152

paths = daftarVertex[start].getNama() + "\n" + paths; paths = bantu + paths; return paths; } public static double[][] deepCopyIntMatrix(double[][] input) { if (input == null) return null; double[][] result = new double[input.length][]; for (int r = 0; r < input.length; r++) { result[r] = input[r].clone(); } return result; } public List<String> perpindahanBus2(StringTokenizer stoken) { List<String> answer = new ArrayList<String>(); List<String> jalurPilihan = new ArrayList<String>(); while (stoken.hasMoreElements()) { jalurPilihan.add(stoken.nextToken("\n")); } List<List> daftarTrayek = new ArrayList<List>(); for (int i = 0; i < jalurPilihan.size(); i++) { if (i != 0) { int awal = findIndex(jalurPilihan.get(i - 1)); int tujuan = findIndex(jalurPilihan.get(i)); daftarTrayek.add(edgeTrayek[awal][tujuan]); } } List<String> bantu = daftarTrayek.get(0); String baru = ""; String perpindahanHalte = ""; for (int i = 1; i < daftarTrayek.size(); i++) { baru = ""; for (int j = 0; j < bantu.size(); j++) { for (int k = 0; k < daftarTrayek.get(i).size(); k++) { if (bantu.get(j).equals(daftarTrayek.get(i).get(k))) {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 172: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 173: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

154

private boolean isInGraph; public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public boolean isInGraph() { return isInGraph; } public void setInGraph(boolean isInGraph) { this.isInGraph = isInGraph; } public Halte(String nama) { this.nama = nama; this.isInGraph = false; } }

Lampiran 8: Source Code Kelas TemporaryJalur_n_Jarak

package com.entity; public class TemporaryJalur_n_Jarak { private double jarak; private int from; public double getJarak() { return jarak; } public void setJarak(double jarak) { this.jarak = jarak; } public int getFrom() { return from; } public void setFrom(int from) { this.from = from; } public TemporaryJalur_n_Jarak(int from, double jarak) { super();

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 174: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 175: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

156

Point p1 = new Point(); Point p2 = new Point(); Path path2 = new Path(); projection.toPixels(ppoint.get(i), p1); projection.toPixels(ppoint.get(i-1), p2); path2.moveTo(p2.x, p2.y); path2.lineTo(p1.x, p1.y); canvas.drawPath(path2, mPaint); } return false; } }

Lampiran 10: Source Code Kelas SitesOverlay

package com.view; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.entity.Graph; import com.google.android.maps.GeoPoint; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.MapView; import com.google.android.maps.OverlayItem; import com.google.android.maps.Projection; public class SitesOverlay extends ItemizedOverlay<OverlayItem> { private List<OverlayItem> items = new ArrayList<OverlayItem>();

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 176: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 177: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

158

public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); boundCenterBottom(marker); } public void addItem(OverlayItem item) { items.add(item); populate(); } public void addFlag(int[] itemSize) { this.itemSize = itemSize; } protected boolean onTap(final int i) { if (items.get(i).getTitle().equals("Lokasi Anda")) { Toast.makeText(context, items.get(i).getTitle(), Toast.LENGTH_SHORT) .show(); } else { if (itemSize[i] == 0) { AlertDialog.Builder dialog = new AlertDialog.Builder(context); z = items.get(i).getTitle(); dialog.setTitle(z); if (status == 0) { dialog.setMessage("Halte awal"); x = items.get(i).getSnippet(); } else { dialog.setMessage("Halte tujuan?"); y = items.get(i).getSnippet(); } dialog.setNegativeButton("Tidak", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); itemSize[i] = 0; } });

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 178: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 179: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

160

buttonDetails.setVisibility(View.GONE); } else { counter2 = i; ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>(); status = 0; items.get(i).setMarker(markerEnd); boundCenterBottom(markerEnd); mapView.invalidate(); String[] results = new String[2]; StringTokenizer stoken, stokenAwal, stokenTujuan, bantuToken; stokenAwal = new StringTokenizer(x, ";"); String[] awal = new String[stokenAwal.countTokens()]; for (int i = 0; i < awal.length; i++) { awal[i] = new String(); awal[i] = stokenAwal.nextToken(); } stokenTujuan = new StringTokenizer(y, ";"); String[] tujuan = new String[stokenTujuan .countTokens()]; for (int i = 0; i < tujuan.length; i++) { tujuan[i] = new String(); tujuan[i] = stokenTujuan.nextToken(); } double bantuJarak = -1; if (param.equals("DIJKSTRA")) { for (int i = 0; i < awal.length; i++) {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 180: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 181: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

162

for (int i = 0; i < awal.length; i++) { for (int j = 0; j < tujuan.length; j++) { startTime = System.nanoTime(); bantuToken = new StringTokenizer(graph .floyd(awal[i], tujuan[j]), ":"); finishTime = System.nanoTime(); String jarak=bantuToken.nextToken(); jalur=bantuToken.nextToken(); if (bantuJarak == -1) {

bantuJarak = Double.parseDouble(jarak); stoken = bantuToken; results[0] = String .valueOf(bantuJarak); results[1] = jalur; } else { if (bantuJarak > Double .parseDouble(jarak)) { bantuJarak = Double .parseDouble(jarak); stoken = bantuToken; results[0] = String .valueOf(bantuJarak); results[1] = jalur; } } } } }

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 182: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 183: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

164

if (bantu.equals(items.get(i).getTitle())) { items.get(i).setMarker(markerChange); boundCenterBottom(markerChange); counter3 = i; } } } String saran = ""; for (int i = 0; i < trayeks.size() - 1; i++) { saran = saran + trayeks.get(i) + "\n"; } final String paths = path; final String jarak = results[0]; final String sarans = saran; buttonDetails.setVisibility(View.VISIBLE); buttonDetails .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub AlertDialog.Builder dialog = new AlertDialog.Builder( context); dialog.setTitle("Details by " + param + " Algorithm"); dialog.setMessage("JARAK: " + jarak + " km\nTIME ELAPSED: "

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 184: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 185: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

166

@Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }); dialog.show(); } } return true; } }

Lampiran 11: Source Code Kelas Help

package com.example.skripsi; import android.app.Activity; import android.os.Bundle; public class Help extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.help); } @Override public void onBackPressed() { // TODO Auto-generated method stub finish(); System.exit(0); super.onBackPressed(); } }

Lampiran 12: Source Code Kelas MainActivity

package com.example.skripsi; import android.app.Activity; import android.content.Intent;

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 186: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 187: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

168

} }); } }

Lampiran 13: Source Code Kelas Map

package com.example.skripsi; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.LinearLayout; import com.entity.Graph; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.MapView.LayoutParams; import com.google.android.maps.MyLocationOverlay; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; import com.view.SitesOverlay; public class Map extends MapActivity { MapView mapView = null; MyLocationOverlay me = null; MapController mapController; SitesOverlay sitesOverlays, sitesOverlay2; Graph graph; Button buttonDetails;

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 188: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 189: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

170

for (int i = 3; i < sheet2.getColumns(); i++) { trayek.add(sheet2.getCell(i, j).getContents()); } graph.insertJarak(sheet2.getCell(0, j).getContents(), sheet2 .getCell(1, j).getContents(), Double.parseDouble(sheet2 .getCell(2, j).getContents()), trayek); } } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } autoText = (AutoCompleteTextView) findViewById(R.id.editText1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.mydropdownstyle, namaHalte); autoText.setThreshold(1); autoText.setAdapter(adapter); Button cariButton = (Button) findViewById(R.id.button1); cariButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub int flag = -1; for (int i = 0; i < sitesOverlay2.size(); i++) { if (sitesOverlay2.getItem(i).getTitle() .equalsIgnoreCase(autoText.getText().toString())) { flag = 1; mapController.animateTo(sitesOverlay2.getItem(i) .getPoint()); autoText.setText(""); break; } } System.out.println(flag); if (flag == -1) {

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 190: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 191: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

172

Drawable iconChangeHalte = getResources().getDrawable( R.drawable.halte_change); iconHalte.setBounds(0, 0, iconHalte.getIntrinsicWidth(), iconHalte.getIntrinsicHeight()); iconStart.setBounds(0, 0, iconStart.getIntrinsicWidth(), iconStart.getIntrinsicHeight()); iconEnd.setBounds(0, 0, iconEnd.getIntrinsicWidth(), iconEnd.getIntrinsicHeight()); iconChangeHalte.setBounds(0, 0, iconChangeHalte.getIntrinsicWidth(), iconChangeHalte.getIntrinsicHeight()); sitesOverlay2 = new SitesOverlay(iconHalte, iconStart, iconEnd, graph, buttonDetails, Map.this, mapView, param, iconChangeHalte); for (int j = 0; j < sheet3.getRows(); j++) { Double latitudeHalte1 = Double.parseDouble(sheet3.getCell(2, j) .getContents()) * 1E6; Double longitudeHalte1 = Double.parseDouble(sheet3.getCell(3, j) .getContents()) * 1E6; GeoPoint pointHalte1 = new GeoPoint(latitudeHalte1.intValue(), longitudeHalte1.intValue()); OverlayItem halte1 = new OverlayItem(pointHalte1, sheet3.getCell(0, j).getContents(), sheet3.getCell(1, j).getContents()); sitesOverlay2.addItem(halte1); } int[] items = new int[sitesOverlay2.size()]; for (int i = 0; i < items.length; i++) { items[i] = 0; } sitesOverlay2.addFlag(items); overlays = mapView.getOverlays(); overlays.add(sitesOverlay2); String provider = locationManager.getBestProvider(criteria, true);

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 192: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 193: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

174

Overlay bantu2=null; // System.out.println(overlays.get(0); if (overlays.size() == 2) { overlays.remove(1); overlays.add(sitesOverlays); } else if (overlays.size() == 3) { bantu = overlays.get(2); overlays.remove(2); overlays.remove(1); overlays.add(sitesOverlays); overlays.add(bantu); } else { overlays.add(sitesOverlays); } mapController.animateTo(myPoint); System.out.println(overlays.size()); } } private final LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub updateNewLocation(null); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub updateNewLocation(location); } }; @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub

SYSTOOLS DEMO

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 194: PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA ...PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN ALGORITMA FLOYD -WARSHALL UNTUK PENCARIAN JALUR TERPENDEK PADA BUS TRANS JOGJA Skripsi

���������������� ���� ������� ������

���

������� � � ������������������ ��

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI