Perbandingan penggunaan algoritma dijkstra dan algoritma floyd-warshall untuk pencarian jalur terpendek pada bus trans jogja.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
EM
O
ABSTRAK
Kebingungan dalam menentukan trayek Bus Trans Jogja yang harus
digunakan menjadi masalah bagi para pengguna bus yang akan mencapai lokasi
tujuan tertentu dari lokasi awal yang dikehendaki di dalam kota Yogyakarta. Masalah
tersebut membuat penulis kemudian ingin memberi solusi dengan cara membuat
sebuah aplikasi mobile berbasis Android yang mampu memberi saran kepada
berdasarkan jarak terpendek.
D
pengguna mengenai trayek bus yang harus diambil guna mencapai suatu lokasi tujuan
Jarak terpendek dihitung dengan menggunakan dua algoritma jarak terpendek,
LS
yakni algoritma Dijkstra dan Floyd-Warshall. Algoritma Dijkstra dalam prakteknya
menggunakan metode greedy dan algoritma Floyd-Warshall menggunakan metode
pemrograman dinamis. Alasan aplikasi dibuat dengan dua algoritma adalah untuk
O
menentukan algoritma mana yang paling optimal untuk diaplikasikan dalam kasus
pencarian jalur terpendek pada rute Bus Trans Jogja.
O
Pembanding yang digunakan untuk menentukan algoritma yang paling
optimal adalah kompleksitas waktu asimtotik dan running time dari masing-masing
SY
ST
algoritma. Kebenaran dari solusi yang diberikan oleh masing-masing algoritma juga
menjadi satu hal yang menentukan keoptimalan dari masing-masing algoritma.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA
DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN
Skripsi
EM
O
JALUR TERPENDEK PADA BUS TRANS JOGJA
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
O
LS
D
Program Studi Teknik Informatika
Oleh:
Agustinus Wikrama Darmadipta
O
095314053
SY
ST
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2013
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SKRIPSI
EM
O
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA
DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN
JALUR TERPENDEK PADA BUS TRANS JOGJA
Oleh:
D
Agustinus Wikrama Darmadipta
LS
NIM: 095314053
O
O
Telah disetujui oleh:
SY
ST
Dosen Pembimbing Tugas Akhir
Sri Hartati Wijono, S.Si., M. Kom.
Tanggal: ………………
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR MOTTO
The dreams cannot come to you.
EM
O
The only one who can make the distance between you and your dreams
getting closer is yourself.
SY
ST
O
O
LS
D
SO GO CHASE IT!
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PUBLIKASI KARYA ILMIAH UNTUK KEPERLUAN AKADEMIS
Nama
: Agustinus Wikrama Darmadipta
Nomor Mahasiswa
: 095314053
EM
O
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Demi mengembangkan ilmu pengetahuan, saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul:
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN
D
ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN JALUR
TERPENDEK PADA BUS TRANS JOGJA
LS
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
O
kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan
royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
O
Demikian pernyataan ini saya buat dengan sebenarnya.
SY
ST
Yogyakarta, 22 Agustus 2013
Agustinus Wikrama Darmadipta
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
EM
O
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
D
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
LS
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
O
in the route of Bus Trans Jogja.
Comparisons that be used to decide the optimal algorithm are complexity of
O
asimptotik time and the running time of each algorithm. The validity that have given
SY
ST
by each algorithm is also a thing that decide the optimality of each algorithm.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
tidak menyerah dan selalu bersemangat untuk menyelesaikan tugas
akhir ini dengan baik dan tepat waktu.
EM
O
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
LS
laboratorium komputer basis data.
D
selalu ceria ketika mengerjakan tugas akhir bersama-sama di
Yogyakarta, 22 Agustus 2013
SY
ST
O
O
Agustinus Wikrama Darmadipta
x
Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih, dan
Melihat Running Time Algoritma ................................................................. 54
3.4.5.
3.5.
Diagram Aktivitas Melihat Help ..................................................... 55
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
D
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
Diagram Kelas ........................................................................................ 59
3.7.
Kelas Analisis ......................................................................................... 60
3.8.
Operasi dan Atribut Tiap Kelas .............................................................. 63
3.9.
Cara Pengujian........................................................................................ 72
LS
3.6.
Skenario Pengujian ............................................................................. 73
3.11.
Desain Antarmuka .............................................................................. 78
O
3.10.
3.11.1. Desain Antarmuka Tampilan Awal................................................. 79
O
3.11.2. Desain Antarmuka Jalur Terpendek Telah Ditemukan ................... 79
3.11.3. Desain Antarmuka Tampilan Details .............................................. 80
BAB IV : IMPLEMENTASI ...............................................................................81
Spesifikasi Perangkat Keras dan Lunak ................................................. 81
SY
ST
4.1.
4.2.
Pengolahan Data ..................................................................................... 82
4.3.
Implementasi Kelas Graph ..................................................................... 83
4.3.1.
Implementasi Metode Greedy dengan Algoritma Dijkstra ............. 84
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
SY
ST
O
O
LS
D
EM
O
Lampiran 13: Source Code Kelas Map ........................................................... 168
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
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
D
Gambar 4.13 help.xml ...................................................................................... 108
Gambar 5.1 Source Code Method getMin ......................................................... 116
LS
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
O
Gambar 5.7 Source Code Method deepCopyIntMatrix ..................................... 122
SY
ST
O
Gambar 5.8 Source Code Method Floyd ........................................................... 124
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
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
D
Tabel 3.19 Skenario Pengujian ................................................................................... 78
Tabel 5.1 Tabel Hasil Pengujian .............................................................................. 114
SY
ST
O
O
LS
Tabel 5.2 Tabel Hasil Pengujian Running Time Kedua Algoritma .......................... 126
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
penelitian
ini
adalah
algoritma
yang
masing-masing
menggunakan
strategi/cara berpikir greedy dan dynamic programming (pemrograman
EM
O
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
D
jalur terpendek. Sebagai contoh algoritma Dijkstra pernah dilakukan dalam
penilitian kasus pencarian jalur terpendek yang ditempuh oleh sebuah taksi
LS
(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
O
terpendek, seperti pada penilitian pencarian rute terpendek di kota Surabaya
(Purwananto, Yudhi., dkk., 2005) dan pencarian rute terpendek antar gedung
O
di suatu kampus (Fanani, Lutfi., 2012).
Kasus pencarian jalur terpendek yang digunakan dalam penelitian ini
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
para pengguna tidak mengalami kebingungan dalam menentukan Bus Trans
1.2.
EM
O
Jogja yang harus dipakai guna mencapai suatu tujuan tertentu.
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
D
Oh dan waktu yang ditempuh oleh setiap algoritma dalam menyelesaikan
kasus pencarian jalur terpendek pada Bus Trans Jogja. Nilai Big Oh dan waktu
LS
yang diperoleh kemudian akan dibandingkan satu sama lain untuk
menentukan algoritma mana yang paling optimal untuk kasus tersebut.
1.3.
Tujuan Penelitian
O
Tujuan yang ingin dicapai dari penelitian ini adalah:
1. Untuk mendapatkan kompleksitas waktu asimtotik dan nilai kecepatan
O
waktu dari algoritma greedy dan pemrograman dinamis pada kasus
SY
ST
pencarian jalur terpendek pada Bus Trans Jogja.
1.4.
Batasan Masalah
Batasan masalah dari penelitian ini adalah:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
Trans Jogja. Kesesuaian tersebut diukur berdasarkan perbandingan dari Big
Oh dan waktu penyelesaian yang dihasilkan oleh masing-masing algoritma.
EM
O
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
D
memberi pertolongan kepada masyarakat pengguna Bus Trans Jogja, terutama
para wisatawan pengguna Bus Trans Jogja yang belum paham betul mengenai
SY
ST
O
O
tertentu.
LS
jalur-jalur yang ditempuh oleh Bus Trans Jogja dalam mencapai suatu tujuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
satu algoritma yang mampu digunakan untuk menyelesaikan satu masalah.
Masalah yang timbul dari hal tersebut kemudian adalah dalam memilih
EM
O
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 kriteriakriteria berikut ini:
1. ada output
Berdasarkan
pada
definisi
algoritma
bahwa
algoritma
D
digunakan untuk menyelesaikan suatu masalah, maka berarti
suatu algoritma haruslah mempunyai output. Output tersebut
LS
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
O
masalah yang dipecahkan dan mampu memecahkan masalah
tersebut. Jadi dapat dikatakan bahwa suatu algoritma dikatakan
O
efektif jika tepat guna.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
tersusun
dengan
baik
sehingga
memudahkan
untuk
dilakukannya pemeriksaan ulang terhadap algoritma tersebut.
EM
O
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
D
relative sedikit (efisien) dengan langkah yang berhingga dan prosesnya
berakhir dengan baik dalam keadaan diperoleh suatu solusi ataupun tidak
2.2.
LS
adanya solusi (Suryadi MT, 1996).
Pengertian Analisis Algoritma
Analisis algoritma dilakukan dengan memperhatikan dua hal, yaitu
O
waktu tempuh dan jumlah memory yang digunakan. Waktu tempuh memiliki
definisi sebagai waktu yang diperlukan suatu algoritma dalam mencari solusi
O
atas permasalahan yang diberikan. Waktu yang singkat memberi arti bahwa
algoritma yang digunakan efisien. Waktu tempuh yang diperlukan oleh suatu
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
tidak sesuai, maka waktu tempuh yang digunakan algoritma
tersebut pun akan membesar (lambat).
EM
O
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.
D
Kompleksitas waktu asimtotik algoritma juga merupakan hal yang
peru diperhatikan dalam melakukan analisis terhadap suatu algoritma.
LS
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
O
ditulis dengan notasi:
F(N) = a m Nm + a m-1 Nm-1 + . . . + a 1 N + a 0
O
maka Big Oh dari F(N) adalah Nm yang dinotasikan: F(N) = O(Nm) (Suryadi
MT, 1996). Berikut ini adalah pengelompokan algoritma berdasarkan notasi
SY
ST
Big Oh :
Kelompok
Algoritma
O(1)
Nama
Konstan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
berikut ini. Graf ini menggambarkan hubungan dari suatu tempat ke tempat
yang lain. Node menggambarkan suatu tempat dan vertex menggambarkan
EM
O
bobot atau jarak yang menghubungkan antar tempat.
D
Gambar 2.1 Contoh Graph (Dijkstra)
Langkah pertama yang dilakukan pada strategi ini adalah menentukan
LS
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
O
paling optimal (rendah) di antara ketiga nilai tersebut. Pemilihan jalur tersebut
menunjukkan bahwa node kedua yang dilalui adalah node tiga. Pada node
O
tiga, nilai jarak yang kemudian dipilih adalah nilai 280 yang kemudian
membawa menuju node enam dari nilai 350, 280, dan 410. Node delapan
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7.
d (7) = ?
8.
d (8) = ?
9.
d (9) = ?
EM
O
16
10. d (10) = ?
1-3
Iterasi II (posisi awal di titik 3)
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 + ?) = ?
O
LS
D
1.
O
1–2
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Iterasi VI (posisi awal di titik 5)
1. d(7) = min {d(7), d(5) + a(5,7)} = min (550, 550 + ?) = 550
EM
O
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)
D
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
LS
3. d(10) = min {d(10), d(7) + a(7,10)} = min (?, 550 + ?) = ?
1–3–5–8
Iterasi VIII (posisi awal di titik 8)
O
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
SY
ST
O
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
nilai yang terdapat pada vertex-vertex tersebut menggambarkan nilai jarak
EM
O
antara satu node ke node yang lain.
D
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
LS
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
O
langkah pertama.
SY
ST
O
Langkah I
Nilai
Jalur yang
Jarak
Ditempuh
8
380
8-10
9
280
9-10
Node
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Jalur yang
EM
O
Nilai
Node
Jarak
Ditempuh
2
830
2-5-9-10
3
860
4
810
3-5-9-10
4-5-9-10
Tabel 2.4 Langkah III Strategi Pemrograman Dinamis
Langkah keempat yang juga merupakan langkah terakhir untuk kasus
D
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
Langkah
IV
LS
nilai yang dipilih. Tabel yang dihasilkan dari langkah ini adalah tabel 2.5:
Node
1
Nilai
Jalur yang
Jarak
Ditempuh
1060
1-3-5-9-10
O
Tabel 2.5 Langkah IV Strategi Pemrograman Dinamis
Nilai tersebut merupakan nilai akhir yang didapat dari kasus ini. Nilai
O
1060 juga merupakan nilai jarak terpendek yang dihasilkan untuk mencapai
node sepuluh dari node satu. Hal tersebut menunjukkan bahwa jalur 1-3-5-9-
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
9
?
?
?
?
?
?
?
?
0
280
10
?
?
?
?
?
?
?
?
?
0
Iterasi II
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
LS
D
1
EM
O
Tabel 2.7 Iterasi I Algoritma Floyd – Warshall
O
Tabel 2.8 Iterasi II Algoritma Floyd – Warshall
Iterasi III
2
O
1
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
?
ST
SY
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
?
?
?
?
0
?
?
210
230
?
6
?
?
?
?
?
0
?
350
380
?
7
?
?
?
?
?
?
0
290
400
?
8
?
?
?
?
?
?
?
0
?
380
9
?
?
?
?
?
?
?
?
0
280
10
?
?
?
?
?
?
?
?
?
0
8
9
10
EM
O
5
Tabel 2.11 Iterasi V Algoritma Floyd – Warshall
Iterasi VI
2
3
4
5
6
7
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
O
LS
D
1
O
Tabel 2.12 Iterasi VI Algoritma Floyd – Warshall
SY
ST
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
?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
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
EM
O
1
D
Tabel 2.15 Iterasi IX Algoritma Floyd – Warshall
Iterasi X
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
?
?
?
?
?
?
?
?
?
0
O
ST
SY
10
LS
2
O
1
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
1. Jalur 1A
Tempat-tempat yang dilalui oleh jalur ini adalah Candi
EM
O
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
D
Besar, Kraton, Alun-Alun Utara, Monumen 1 Maret, Benteng
Vredeburg - Taman Pintar, Taman Parkir Bank - Indonesia,
LS
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
O
Udara Adisutjipto sampai Terminal Prambanan)
2. Jalur 1B
O
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
SY
ST
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 -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
5. Jalur 3A
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
EM
O
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 -
D
Bundaran SAMSAT – Badran – PasarKembang - Stasiun
TUGU – Malioboro - Kantor Pos Besar - RS PKU
LS
Muhammadiyah – Ngabean - Jokteng Kulon - Plengkung
Gading - Jokteng Wetan – Tungkak – Wirosaban – Tegalgendu
- Terminal Giwangan.
6. Jalur 3B
O
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
Giwangan – Tegalgendu – Wirosaban – Tungkak - Jokteng
O
Wetan - Plengkung Gading - Jokteng Kulon – Ngabean - RS
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
EM
O
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
D
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
LS
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
O
mencari jalur terpendek, aplikasi yang dibuat juga harus mampu memberikan
saran berupa bus yang harus digunakan beserta perpindahan yang harus
O
dilakukan untuk menempuh jalur terpendek yang telah ditemukan.
Aplikasi akan dibuat untuk smartphone bersistem operasi Android.
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
gambar graph yang terbentuk berdasarkan posisi halte dan jarak antar halte
SY
ST
O
O
LS
D
EM
O
yang ada.
Gambar 3.1 Graph Rute Bus Trans Jogja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SY
ST
O
O
LS
D
EM
O
38
Gambar 3.2 Posisi Halte Bus Trans Jogja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
12. Untuk int i = 1, selama i < jumlah vertex lakukan langkah dua
belas hingga langkah lima belas.
EM
O
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++.
18. Buat
dan
D
17. Buat dan inisialisasi variabel “min” = minIndeks.
inisialisasi
“minDist”
=
LS
sPath[min].getJarak().
varaibel
19. Jika minDist = infinite, maka break. Jika tidak lakukan langkah
dua puluh dan 21.
20. vertSekarang = minIndeks.
O
21. jarakAwalKini = sPath[min].getJarak().
22. Tandai vertex sekarang bahwa dirinya sudah dikunjungi.
O
23. jumGraph++.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
5. Untuk int i = 0, selama i < path.length lakukan langkah enam
hingga langkah sembilan.
EM
O
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++.
D
10. Untuk int i = 0, selama i < jumlah halte, lakukan langkah
sebelas hingga langkah dua belas.
12. i++.
LS
11. path[i][i] = 1.
13. Untuk int i = 0, selama i < path.length lakukan langkah empat
belas hingga langkah 21.
O
14. Untuk int j = 0, selama j < path.length lakukan langkah lima
belas hingga langkah dua puluh.
O
15. Untuk int k = 0, selama k < path.length lakukan langkah enam
SY
ST
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
9. Masukkan ke daftarTrayek edgeTrayek untuk nilai awal dan
tujuan yang telah ditentukan pada langkah tujuh dan delapan.
EM
O
10. i++.
11. Inisialisasi bantu yang bertipe List 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
D
lakukan langkah empat belas hingga langkah 29.
14. Ubah nilai variabel baru menjadi empty string.
LS
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.
O
17. Jika nilai variabel bantu sama dengan daftarTrayek.get(i).get(k)
maka baru = baru + bantu.get(j).
O
18. j++.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
dengan solusi yang diperoleh melalui penghitungan manual. Kemiripan solusi
yang diberikan oleh sistem dengan solusi yang didapat secara manual akan
EM
O
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
D
jarak untuk setiap kemungkinan jalur yang didapat.
2. Membandingkan semua jarak untuk semua kemungkinan jalur yang
LS
telah didapat.
3. Jalur dengan nilai jarak terkecillah yang kemudian dijadikan sebagai
solusi dalam penghitungan manual tersebut.
Hal terakhir yang kemudian dilakukan adalah membandingkan
O
kompleksitas waktu asimtotik dari masing-masing algoritma dan running
time-nya. Hal ini dilakukan untuk menentukan algoritma mana yang paling
O
optimal untuk digunakan dalam aplikasi yang dibuat. Algoritma yang palling
optimallah yang akan benar-benar digunakan dalam aplikasi yang akan dibuat
SY
ST
sehingga aplikasi benar-benar siap untuk dipublikasi dan digunakan oleh
masyarakat umum.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
EM
O
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
: Menentukan titik tujuan
Aktor
: User (pengguna aplikasi)
Kondisi Awal
: Titik awal telah ditentukan
Skenario
:
D
Nama Use Case
LS
b.
Aksi Aktor
Reaksi Sistem
1. Aktor touch titik
tujuan yang berupa
icon halte Bus Trans
Jogja.
O
O
2. Sistem menandai lokasi yang
telah ditentukan dan kemudian
menampilkan jalur
yang
menghubungkan tiap halte.
Tabel 3.2 Tabel Use Case Menentukan Titik Tujuan
SY
ST
c.
Nama Use Case
: Melihat jalur bus yang ditempuh
Aktor
: User (pengguna aplikasi)
Kondisi Awal
: Titik awal dan tujuan telah ditentukan
Skenario
:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Dipilih
Nama Use Case
: Melihat running time algoritma
Aktor
: User
Kondisi Awal
: Titik awal dan tujuan telah ditentukan
Skenario
:
Aksi Aktor
1. Aktor touch tombol
“Details”.
D
f.
EM
O
bus yang harus dipilih aktor
berdasarkan jalur terpendek
yang telah diperoleh sistem.
Tabel 3.5 Tabel Use Case Melihat Saran Trayek Bus yang Harus
Reaksi Sistem
Nama Use Case
: Mencari halte
Aktor
: User
O
g.
LS
2. Sistem menampilkan running
time aloritma.
Tabel 3.6 Tabel Use Case Melihat Running Time Algoritma
:-
Skenario
:
SY
ST
O
Kondisi Awal
Aksi Aktor
1. Aktor
mengisi
textfield yang ada
dengan nama halte
yang ingin dicari.
2. Aktor touch tombol
“Cari”.
Reaksi Sistem
3. Sistem menunjukkan halte
yang dicari jika ada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Diagram Aktivitas Menentukan Titik Awal
EM
O
3.4.1.
Gambar 3.4 Diagram Aktivitas Menentukan Titik Awal
D
Diagram Aktivitas Menentukan Titik Tujuan
LS
3.4.2.
SY
ST
O
O
Gambar 3.5 Diagram Aktivitas Menentukan Titik Tujuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
3.4.4.
Diagram Aktivitas Melihat Jalur Bus yang Ditempuh,
EM
O
Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek
Bus yang Harus Dipilih, dan Melihat Running Time
SY
ST
O
O
LS
D
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Diagram Sekuensial Menentukan Titik Tujuan
D
EM
O
3.5.2.
Diagram Sekuensial Mencari Halte
SY
ST
O
O
3.5.3.
LS
Gambar 3.10 Diagram Sekuensial Menentukan Titik Tujuan
Gambar 3.11 Diagram Sekuensial Mencari Halte
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
D
EM
O
58
LS
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-
O
Warshall
Diagram Sekuensial Melihat Help
SY
ST
O
3.5.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
O
LS
D
EM
O
60
3.7.
O
Gambar 3.16 Diagram Kelas Perancangan Keseluruhan
Kelas Analisis
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
EM
O
double jarak
private int from
MapView mapView
MapController
mapController
SitesOverlay sitesOverlays
SitesOverlay sitesOverlay2
Graph graph
Button buttonDetails
List daftarHalte
InputStream data
Sheet sheet
Sheet sheet2
Sheet sheet3
ArrayList trayek
String param
String[] namaHalte
GeoPoint pointHalte1
AutoCompleteTextView
autoText
Projection projection
ArrayList
ppoint
List items
Drawable marker
Drawable markerStart
Drawable markerEnd
Drawable markerChange
Context context
O
LS
D
TemporaryJalur_n_Jarak Membantu untuk
menyimpan jarak
dan jalur secara
sementara
yang
digunakan dalam
pencarian
jalur
terpendek dengan
menggunakan
algoritma dijkstra.
MainActivity
Menampilkan
halaman judul.
Map
Menampilkan
tampilan peta.
Membuat halte dan
jarak antar halte.
Membuat posisiposisi halte dan
pengguna
pada
peta.
O
PathOverlay
SY
ST
SitesOverlay
Membuat
terpendek
peta.
Menampilkan
posisi-posisi
dan pengguna
peta.
Menampilkan
terpendek
jalur
pada
halte
pada
jalur
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
findIndex(String index)
public
Digunakan
mencari
node
untuk
index
yang
dicari
masukan
EM
O
dengan
dari
berupa nama node.
getMin()
public
Digunakan
mencari
untuk
jalur
terpendek
yang
dengan
membandingkan
dua
buah jalur. Fungsi ini
D
digunakan
dalam
pencarian
jalur
terpendek
dengan
algoritma Dijkstra.
public
O
LS
adjust_sPath()
displayPaths(int
tujuan,
int public
O
ST
untuk
membentuk
jalur
terpendek
pada
pencarian
jalur
terpendek
dengan
algoritma Dijkstra.
awal)
SY
Digunakan
Digunakan
untuk
menampilkan
jarak
terpendek dan jalur
yang harus ditempuh
dalam pencarian jalur
terpendek
dengan
algoritma Dijkstra.
dijkstra(String
awal,
String public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
diperoleh.
Visibility
Tipe
INFINITE
private
integer
edge
package
double[][]
edgeTrayek
package
daftarVertex
package
jumlah_vertex
package
tujuan
package
sPath
package
EM
O
Nama Atribut
ArrayList[][]
Halte[]
integer
List
TemporaryJalur_n_Jar
jumGraph
package
vertSkrg
D
ak[]
mulaiSmpSkrg
integer
package
integer
package
double
LS
Tabel 3.11 Tabel Operasi dan Atribut Kelas Graph
Visibility
Keterangan
getNama()
public
Digunakan
O
b. Kelas Halte
Nama Operasi
O
setNama(String nama)
SY
ST
isInGraph()
untuk
mengambil nama dari
halte.
public
Digunakan
untuk
memberi nama sebuah
halte.
public
Digunakan
untuk
mengambil tanda sebuah
halte
apakah
sudah
dikunjungi atau belum.
setInGraph(boolean
public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
node
asal
sementara.
Visibility
Tipe
jarak
private
double
from
private
EM
O
Nama Atribut
integer
Tabel 3.13 Tabel Operasi dan Atribut Kelas TemporaryJalur_n_Jarak
d. Kelas MainActivity
Nama Operasi
Visibility
Keterangan
onCreate(Bundle
public
Digunakan
untuk
memanggil
dan
savedInstanceState)
D
menampilkan
halaman
judul.
-
Visibility
LS
Nama Atribut
Tipe
Tabel 3.14 Tabel Operasi dan Atribut Kelas MainActivity
Visibility
protected Digunakan
untuk
memanggil
dan
onCreateOptionsMenu(Menu
public
onCreate(Bundle
O
savedInstanceState)
menampilkan peta.
ST
menu)
SY
Keterangan
O
e. Kelas Map
Nama Operasi
onBackPressed()
Digunakan
membuat
untuk
menu
pada
aplikasi.
public
Digunakan
untuk
memberi action apa yang
harus dilakukan ketika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
autoText
package
AutoCompleteTextView
Tabel 3.15 Tabel Operasi dan Atribut Kelas Map
EM
O
f. Kelas PathOverlay
Nama Operasi
Visibility
Keterangan
draw(Canvas canvas, public
Digunakan
membuat gambar path
MapView mapView,
boolean
untuk
shadow,
yang akan ditampilkan
long when)
di peta.
Visibility
projection
private
ppoint
private
Tipe
Projection
ArrayList
D
Nama Atribut
Tabel 3.16 Tabel Operasi dan Atribut Kelas PathOverlay
Visibility
Keterangan
createItem(int index)
protected
Digunakan
untuk
membuat
objek
O
LS
g. Kelas SitesOverlay
Nama Operasi
SY
ST
O
size()
addItem(OverlayItem
public
gambar
(posisi
dan
halte).
Digunakan
untuk
mengambil jumlahnya
objek
gambar
yang
dibuat.
public
item)
Digunakan
untuk
menambahkan
objek
gambar.
addFlag(int[] itemSize)
public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
int counter3 = -1
package
integer
mapView
package
MapView
param
package
String
EM
O
Tabel 3.17 Tabel Operasi dan Atribut Kelas SitesOverlay
h. Kelas Help
Nama Operasi
Visibility
Keterangan
onCreate(Bundle
public
Digunakan
untuk
memanggil
dan
savedInstanceState)
menampilkan
halaman
Help.
-
Visibility
Tipe
D
Nama Atribut
3.9.
Cara Pengujian
LS
Tabel 3.18 Tabel Operasi dan Atribut Kelas Help
Pengujian dilakukan dengan dua macam. Pengujian pertama dilakukan
O
untuk menguji dari kebenaran sistem atau aplikasi yang telah dibuat.
Pengujian ini dilakukan dengan memberikan sejumlah kasus terhadap aplikasi
O
yang telah dibuat. Hasil yang diperoleh berdasarkan setiap kasus yang
diberikan kemudian akan dibandingkan dengan perhitungan manual untuk
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
titik awal.
pada peta.
disentuh
akan
ditandai dengan ikon
awal.
2
Membatalkan
Halte bus yang telah Muncul
titik awal.
ditentukan
titik
awal
awal akan dibatalkan atau
sebelumnya.
3
pesan
sebagai apakah
titk
titik
EM
O
baru sebagai
tidak.
Menentukan
Halte bus yang ada Halte
titik tujuan.
pada
peta
bus
(selain disentuh
yang
akan
sebagai titik awal).
D
yang telah ditandai ditandai dengan ikon
baru sebagai
titik
tujuan.
Muncul garis pada
LS
peta
yang
menghubungkan
Melihat
jalur Tombol
bus
yang disentuh.
O
4
O
antar
SY
ST
ditempuh.
5
yang
merupakan
jalur
tempuh
titik
dari
awal ke titik tujuan.
“Details” Rute jalur terpendek
yang harus ditempuh
menggunakan
bus
akan muncul berupa
poin-poin.
Melihat
nilai Tombol
jarak
yang disentuh.
ditempuh.
halte
“Details” Tampil total nilai
jarak terpendek yang
harus
ditempuh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
(KENTUNGAN)
SUGIYONO
2 User diarahkan ke
(MUSEUM
posisi
PERJUANGAN)
SUGIYONO
EM
O
halte
2
(MUSEUM
PERJUANGAN)
9
Mencari halte.
“”
Tampil pesan bahwa
halte
yang
dicari
TINUS
D
tidak diketahui.
Tampil pesan bahwa
halte
yang
dicari
LS
tidak diketahui.
SEMBARANG
Tampil pesan bahwa
halte
yang
dicari
tidak diketahui.
Menguji
Awal: SUDIRMAN Jarak: 4,604 km
O
10
kebenaran jarak 2 (BUMI PUTERA)
terpendek
-SUDIRMAN
2
(BUMI PUTERA)
algoritma
-MANGKUBUMI 1
O
masing-masing
ST
SY
Tujuan: NGABEAN
Jalur:
(TUGU)
-MANGKUBUMI 2
(PLN)
-MALIOBORO
(GARUDA)
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Naik 2B.
HARYONO
(SMA 7)
MT Jarak: 4,299 km
2 Jalur:
-MT HARYONO 2
EM
O
Awal:
Tujuan: TENTARA (SMA 7)
PELAJAR 1 (SMP -TEJOKUSUMAN
14)
-NGABEAN
-
COKROAMINOTO
(SMA 1)
D
-SMPN 11
-TENTARA
PELAJAR 1 (SMP
14)
LS
Saran:
Naik 3B – pindah ke
2B di Ngabean.
3.11.
O
Tabel 3.19 Skenario Pengujian
Desain A
EM
O
ABSTRAK
Kebingungan dalam menentukan trayek Bus Trans Jogja yang harus
digunakan menjadi masalah bagi para pengguna bus yang akan mencapai lokasi
tujuan tertentu dari lokasi awal yang dikehendaki di dalam kota Yogyakarta. Masalah
tersebut membuat penulis kemudian ingin memberi solusi dengan cara membuat
sebuah aplikasi mobile berbasis Android yang mampu memberi saran kepada
berdasarkan jarak terpendek.
D
pengguna mengenai trayek bus yang harus diambil guna mencapai suatu lokasi tujuan
Jarak terpendek dihitung dengan menggunakan dua algoritma jarak terpendek,
LS
yakni algoritma Dijkstra dan Floyd-Warshall. Algoritma Dijkstra dalam prakteknya
menggunakan metode greedy dan algoritma Floyd-Warshall menggunakan metode
pemrograman dinamis. Alasan aplikasi dibuat dengan dua algoritma adalah untuk
O
menentukan algoritma mana yang paling optimal untuk diaplikasikan dalam kasus
pencarian jalur terpendek pada rute Bus Trans Jogja.
O
Pembanding yang digunakan untuk menentukan algoritma yang paling
optimal adalah kompleksitas waktu asimtotik dan running time dari masing-masing
SY
ST
algoritma. Kebenaran dari solusi yang diberikan oleh masing-masing algoritma juga
menjadi satu hal yang menentukan keoptimalan dari masing-masing algoritma.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA
DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN
Skripsi
EM
O
JALUR TERPENDEK PADA BUS TRANS JOGJA
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
O
LS
D
Program Studi Teknik Informatika
Oleh:
Agustinus Wikrama Darmadipta
O
095314053
SY
ST
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2013
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SKRIPSI
EM
O
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA
DAN ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN
JALUR TERPENDEK PADA BUS TRANS JOGJA
Oleh:
D
Agustinus Wikrama Darmadipta
LS
NIM: 095314053
O
O
Telah disetujui oleh:
SY
ST
Dosen Pembimbing Tugas Akhir
Sri Hartati Wijono, S.Si., M. Kom.
Tanggal: ………………
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR MOTTO
The dreams cannot come to you.
EM
O
The only one who can make the distance between you and your dreams
getting closer is yourself.
SY
ST
O
O
LS
D
SO GO CHASE IT!
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PUBLIKASI KARYA ILMIAH UNTUK KEPERLUAN AKADEMIS
Nama
: Agustinus Wikrama Darmadipta
Nomor Mahasiswa
: 095314053
EM
O
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Demi mengembangkan ilmu pengetahuan, saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul:
PERBANDINGAN PENGGUNAAN ALGORITMA DIJKSTRA DAN
D
ALGORITMA FLOYD-WARSHALL UNTUK PENCARIAN JALUR
TERPENDEK PADA BUS TRANS JOGJA
LS
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
O
kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan
royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
O
Demikian pernyataan ini saya buat dengan sebenarnya.
SY
ST
Yogyakarta, 22 Agustus 2013
Agustinus Wikrama Darmadipta
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
EM
O
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
D
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
LS
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
O
in the route of Bus Trans Jogja.
Comparisons that be used to decide the optimal algorithm are complexity of
O
asimptotik time and the running time of each algorithm. The validity that have given
SY
ST
by each algorithm is also a thing that decide the optimality of each algorithm.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
tidak menyerah dan selalu bersemangat untuk menyelesaikan tugas
akhir ini dengan baik dan tepat waktu.
EM
O
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
LS
laboratorium komputer basis data.
D
selalu ceria ketika mengerjakan tugas akhir bersama-sama di
Yogyakarta, 22 Agustus 2013
SY
ST
O
O
Agustinus Wikrama Darmadipta
x
Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih, dan
Melihat Running Time Algoritma ................................................................. 54
3.4.5.
3.5.
Diagram Aktivitas Melihat Help ..................................................... 55
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
D
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
Diagram Kelas ........................................................................................ 59
3.7.
Kelas Analisis ......................................................................................... 60
3.8.
Operasi dan Atribut Tiap Kelas .............................................................. 63
3.9.
Cara Pengujian........................................................................................ 72
LS
3.6.
Skenario Pengujian ............................................................................. 73
3.11.
Desain Antarmuka .............................................................................. 78
O
3.10.
3.11.1. Desain Antarmuka Tampilan Awal................................................. 79
O
3.11.2. Desain Antarmuka Jalur Terpendek Telah Ditemukan ................... 79
3.11.3. Desain Antarmuka Tampilan Details .............................................. 80
BAB IV : IMPLEMENTASI ...............................................................................81
Spesifikasi Perangkat Keras dan Lunak ................................................. 81
SY
ST
4.1.
4.2.
Pengolahan Data ..................................................................................... 82
4.3.
Implementasi Kelas Graph ..................................................................... 83
4.3.1.
Implementasi Metode Greedy dengan Algoritma Dijkstra ............. 84
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
SY
ST
O
O
LS
D
EM
O
Lampiran 13: Source Code Kelas Map ........................................................... 168
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
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
D
Gambar 4.13 help.xml ...................................................................................... 108
Gambar 5.1 Source Code Method getMin ......................................................... 116
LS
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
O
Gambar 5.7 Source Code Method deepCopyIntMatrix ..................................... 122
SY
ST
O
Gambar 5.8 Source Code Method Floyd ........................................................... 124
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
EM
O
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
D
Tabel 3.19 Skenario Pengujian ................................................................................... 78
Tabel 5.1 Tabel Hasil Pengujian .............................................................................. 114
SY
ST
O
O
LS
Tabel 5.2 Tabel Hasil Pengujian Running Time Kedua Algoritma .......................... 126
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
penelitian
ini
adalah
algoritma
yang
masing-masing
menggunakan
strategi/cara berpikir greedy dan dynamic programming (pemrograman
EM
O
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
D
jalur terpendek. Sebagai contoh algoritma Dijkstra pernah dilakukan dalam
penilitian kasus pencarian jalur terpendek yang ditempuh oleh sebuah taksi
LS
(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
O
terpendek, seperti pada penilitian pencarian rute terpendek di kota Surabaya
(Purwananto, Yudhi., dkk., 2005) dan pencarian rute terpendek antar gedung
O
di suatu kampus (Fanani, Lutfi., 2012).
Kasus pencarian jalur terpendek yang digunakan dalam penelitian ini
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
para pengguna tidak mengalami kebingungan dalam menentukan Bus Trans
1.2.
EM
O
Jogja yang harus dipakai guna mencapai suatu tujuan tertentu.
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
D
Oh dan waktu yang ditempuh oleh setiap algoritma dalam menyelesaikan
kasus pencarian jalur terpendek pada Bus Trans Jogja. Nilai Big Oh dan waktu
LS
yang diperoleh kemudian akan dibandingkan satu sama lain untuk
menentukan algoritma mana yang paling optimal untuk kasus tersebut.
1.3.
Tujuan Penelitian
O
Tujuan yang ingin dicapai dari penelitian ini adalah:
1. Untuk mendapatkan kompleksitas waktu asimtotik dan nilai kecepatan
O
waktu dari algoritma greedy dan pemrograman dinamis pada kasus
SY
ST
pencarian jalur terpendek pada Bus Trans Jogja.
1.4.
Batasan Masalah
Batasan masalah dari penelitian ini adalah:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
Trans Jogja. Kesesuaian tersebut diukur berdasarkan perbandingan dari Big
Oh dan waktu penyelesaian yang dihasilkan oleh masing-masing algoritma.
EM
O
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
D
memberi pertolongan kepada masyarakat pengguna Bus Trans Jogja, terutama
para wisatawan pengguna Bus Trans Jogja yang belum paham betul mengenai
SY
ST
O
O
tertentu.
LS
jalur-jalur yang ditempuh oleh Bus Trans Jogja dalam mencapai suatu tujuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
satu algoritma yang mampu digunakan untuk menyelesaikan satu masalah.
Masalah yang timbul dari hal tersebut kemudian adalah dalam memilih
EM
O
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 kriteriakriteria berikut ini:
1. ada output
Berdasarkan
pada
definisi
algoritma
bahwa
algoritma
D
digunakan untuk menyelesaikan suatu masalah, maka berarti
suatu algoritma haruslah mempunyai output. Output tersebut
LS
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
O
masalah yang dipecahkan dan mampu memecahkan masalah
tersebut. Jadi dapat dikatakan bahwa suatu algoritma dikatakan
O
efektif jika tepat guna.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
tersusun
dengan
baik
sehingga
memudahkan
untuk
dilakukannya pemeriksaan ulang terhadap algoritma tersebut.
EM
O
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
D
relative sedikit (efisien) dengan langkah yang berhingga dan prosesnya
berakhir dengan baik dalam keadaan diperoleh suatu solusi ataupun tidak
2.2.
LS
adanya solusi (Suryadi MT, 1996).
Pengertian Analisis Algoritma
Analisis algoritma dilakukan dengan memperhatikan dua hal, yaitu
O
waktu tempuh dan jumlah memory yang digunakan. Waktu tempuh memiliki
definisi sebagai waktu yang diperlukan suatu algoritma dalam mencari solusi
O
atas permasalahan yang diberikan. Waktu yang singkat memberi arti bahwa
algoritma yang digunakan efisien. Waktu tempuh yang diperlukan oleh suatu
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
tidak sesuai, maka waktu tempuh yang digunakan algoritma
tersebut pun akan membesar (lambat).
EM
O
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.
D
Kompleksitas waktu asimtotik algoritma juga merupakan hal yang
peru diperhatikan dalam melakukan analisis terhadap suatu algoritma.
LS
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
O
ditulis dengan notasi:
F(N) = a m Nm + a m-1 Nm-1 + . . . + a 1 N + a 0
O
maka Big Oh dari F(N) adalah Nm yang dinotasikan: F(N) = O(Nm) (Suryadi
MT, 1996). Berikut ini adalah pengelompokan algoritma berdasarkan notasi
SY
ST
Big Oh :
Kelompok
Algoritma
O(1)
Nama
Konstan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
berikut ini. Graf ini menggambarkan hubungan dari suatu tempat ke tempat
yang lain. Node menggambarkan suatu tempat dan vertex menggambarkan
EM
O
bobot atau jarak yang menghubungkan antar tempat.
D
Gambar 2.1 Contoh Graph (Dijkstra)
Langkah pertama yang dilakukan pada strategi ini adalah menentukan
LS
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
O
paling optimal (rendah) di antara ketiga nilai tersebut. Pemilihan jalur tersebut
menunjukkan bahwa node kedua yang dilalui adalah node tiga. Pada node
O
tiga, nilai jarak yang kemudian dipilih adalah nilai 280 yang kemudian
membawa menuju node enam dari nilai 350, 280, dan 410. Node delapan
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7.
d (7) = ?
8.
d (8) = ?
9.
d (9) = ?
EM
O
16
10. d (10) = ?
1-3
Iterasi II (posisi awal di titik 3)
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 + ?) = ?
O
LS
D
1.
O
1–2
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Iterasi VI (posisi awal di titik 5)
1. d(7) = min {d(7), d(5) + a(5,7)} = min (550, 550 + ?) = 550
EM
O
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)
D
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
LS
3. d(10) = min {d(10), d(7) + a(7,10)} = min (?, 550 + ?) = ?
1–3–5–8
Iterasi VIII (posisi awal di titik 8)
O
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
SY
ST
O
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
nilai yang terdapat pada vertex-vertex tersebut menggambarkan nilai jarak
EM
O
antara satu node ke node yang lain.
D
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
LS
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
O
langkah pertama.
SY
ST
O
Langkah I
Nilai
Jalur yang
Jarak
Ditempuh
8
380
8-10
9
280
9-10
Node
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
Jalur yang
EM
O
Nilai
Node
Jarak
Ditempuh
2
830
2-5-9-10
3
860
4
810
3-5-9-10
4-5-9-10
Tabel 2.4 Langkah III Strategi Pemrograman Dinamis
Langkah keempat yang juga merupakan langkah terakhir untuk kasus
D
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
Langkah
IV
LS
nilai yang dipilih. Tabel yang dihasilkan dari langkah ini adalah tabel 2.5:
Node
1
Nilai
Jalur yang
Jarak
Ditempuh
1060
1-3-5-9-10
O
Tabel 2.5 Langkah IV Strategi Pemrograman Dinamis
Nilai tersebut merupakan nilai akhir yang didapat dari kasus ini. Nilai
O
1060 juga merupakan nilai jarak terpendek yang dihasilkan untuk mencapai
node sepuluh dari node satu. Hal tersebut menunjukkan bahwa jalur 1-3-5-9-
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
9
?
?
?
?
?
?
?
?
0
280
10
?
?
?
?
?
?
?
?
?
0
Iterasi II
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
LS
D
1
EM
O
Tabel 2.7 Iterasi I Algoritma Floyd – Warshall
O
Tabel 2.8 Iterasi II Algoritma Floyd – Warshall
Iterasi III
2
O
1
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
?
ST
SY
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
?
?
?
?
0
?
?
210
230
?
6
?
?
?
?
?
0
?
350
380
?
7
?
?
?
?
?
?
0
290
400
?
8
?
?
?
?
?
?
?
0
?
380
9
?
?
?
?
?
?
?
?
0
280
10
?
?
?
?
?
?
?
?
?
0
8
9
10
EM
O
5
Tabel 2.11 Iterasi V Algoritma Floyd – Warshall
Iterasi VI
2
3
4
5
6
7
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
O
LS
D
1
O
Tabel 2.12 Iterasi VI Algoritma Floyd – Warshall
SY
ST
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
?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
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
EM
O
1
D
Tabel 2.15 Iterasi IX Algoritma Floyd – Warshall
Iterasi X
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
?
?
?
?
?
?
?
?
?
0
O
ST
SY
10
LS
2
O
1
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
1. Jalur 1A
Tempat-tempat yang dilalui oleh jalur ini adalah Candi
EM
O
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
D
Besar, Kraton, Alun-Alun Utara, Monumen 1 Maret, Benteng
Vredeburg - Taman Pintar, Taman Parkir Bank - Indonesia,
LS
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
O
Udara Adisutjipto sampai Terminal Prambanan)
2. Jalur 1B
O
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
SY
ST
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 -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
5. Jalur 3A
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
EM
O
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 -
D
Bundaran SAMSAT – Badran – PasarKembang - Stasiun
TUGU – Malioboro - Kantor Pos Besar - RS PKU
LS
Muhammadiyah – Ngabean - Jokteng Kulon - Plengkung
Gading - Jokteng Wetan – Tungkak – Wirosaban – Tegalgendu
- Terminal Giwangan.
6. Jalur 3B
O
Tempat-tempat yang dilalui oleh jalur ini adalah Terminal
Giwangan – Tegalgendu – Wirosaban – Tungkak - Jokteng
O
Wetan - Plengkung Gading - Jokteng Kulon – Ngabean - RS
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
EM
O
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
D
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
LS
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
O
mencari jalur terpendek, aplikasi yang dibuat juga harus mampu memberikan
saran berupa bus yang harus digunakan beserta perpindahan yang harus
O
dilakukan untuk menempuh jalur terpendek yang telah ditemukan.
Aplikasi akan dibuat untuk smartphone bersistem operasi Android.
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
gambar graph yang terbentuk berdasarkan posisi halte dan jarak antar halte
SY
ST
O
O
LS
D
EM
O
yang ada.
Gambar 3.1 Graph Rute Bus Trans Jogja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SY
ST
O
O
LS
D
EM
O
38
Gambar 3.2 Posisi Halte Bus Trans Jogja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
12. Untuk int i = 1, selama i < jumlah vertex lakukan langkah dua
belas hingga langkah lima belas.
EM
O
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++.
18. Buat
dan
D
17. Buat dan inisialisasi variabel “min” = minIndeks.
inisialisasi
“minDist”
=
LS
sPath[min].getJarak().
varaibel
19. Jika minDist = infinite, maka break. Jika tidak lakukan langkah
dua puluh dan 21.
20. vertSekarang = minIndeks.
O
21. jarakAwalKini = sPath[min].getJarak().
22. Tandai vertex sekarang bahwa dirinya sudah dikunjungi.
O
23. jumGraph++.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
5. Untuk int i = 0, selama i < path.length lakukan langkah enam
hingga langkah sembilan.
EM
O
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++.
D
10. Untuk int i = 0, selama i < jumlah halte, lakukan langkah
sebelas hingga langkah dua belas.
12. i++.
LS
11. path[i][i] = 1.
13. Untuk int i = 0, selama i < path.length lakukan langkah empat
belas hingga langkah 21.
O
14. Untuk int j = 0, selama j < path.length lakukan langkah lima
belas hingga langkah dua puluh.
O
15. Untuk int k = 0, selama k < path.length lakukan langkah enam
SY
ST
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].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
9. Masukkan ke daftarTrayek edgeTrayek untuk nilai awal dan
tujuan yang telah ditentukan pada langkah tujuh dan delapan.
EM
O
10. i++.
11. Inisialisasi bantu yang bertipe List 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
D
lakukan langkah empat belas hingga langkah 29.
14. Ubah nilai variabel baru menjadi empty string.
LS
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.
O
17. Jika nilai variabel bantu sama dengan daftarTrayek.get(i).get(k)
maka baru = baru + bantu.get(j).
O
18. j++.
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
dengan solusi yang diperoleh melalui penghitungan manual. Kemiripan solusi
yang diberikan oleh sistem dengan solusi yang didapat secara manual akan
EM
O
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
D
jarak untuk setiap kemungkinan jalur yang didapat.
2. Membandingkan semua jarak untuk semua kemungkinan jalur yang
LS
telah didapat.
3. Jalur dengan nilai jarak terkecillah yang kemudian dijadikan sebagai
solusi dalam penghitungan manual tersebut.
Hal terakhir yang kemudian dilakukan adalah membandingkan
O
kompleksitas waktu asimtotik dari masing-masing algoritma dan running
time-nya. Hal ini dilakukan untuk menentukan algoritma mana yang paling
O
optimal untuk digunakan dalam aplikasi yang dibuat. Algoritma yang palling
optimallah yang akan benar-benar digunakan dalam aplikasi yang akan dibuat
SY
ST
sehingga aplikasi benar-benar siap untuk dipublikasi dan digunakan oleh
masyarakat umum.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
EM
O
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
: Menentukan titik tujuan
Aktor
: User (pengguna aplikasi)
Kondisi Awal
: Titik awal telah ditentukan
Skenario
:
D
Nama Use Case
LS
b.
Aksi Aktor
Reaksi Sistem
1. Aktor touch titik
tujuan yang berupa
icon halte Bus Trans
Jogja.
O
O
2. Sistem menandai lokasi yang
telah ditentukan dan kemudian
menampilkan jalur
yang
menghubungkan tiap halte.
Tabel 3.2 Tabel Use Case Menentukan Titik Tujuan
SY
ST
c.
Nama Use Case
: Melihat jalur bus yang ditempuh
Aktor
: User (pengguna aplikasi)
Kondisi Awal
: Titik awal dan tujuan telah ditentukan
Skenario
:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Dipilih
Nama Use Case
: Melihat running time algoritma
Aktor
: User
Kondisi Awal
: Titik awal dan tujuan telah ditentukan
Skenario
:
Aksi Aktor
1. Aktor touch tombol
“Details”.
D
f.
EM
O
bus yang harus dipilih aktor
berdasarkan jalur terpendek
yang telah diperoleh sistem.
Tabel 3.5 Tabel Use Case Melihat Saran Trayek Bus yang Harus
Reaksi Sistem
Nama Use Case
: Mencari halte
Aktor
: User
O
g.
LS
2. Sistem menampilkan running
time aloritma.
Tabel 3.6 Tabel Use Case Melihat Running Time Algoritma
:-
Skenario
:
SY
ST
O
Kondisi Awal
Aksi Aktor
1. Aktor
mengisi
textfield yang ada
dengan nama halte
yang ingin dicari.
2. Aktor touch tombol
“Cari”.
Reaksi Sistem
3. Sistem menunjukkan halte
yang dicari jika ada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Diagram Aktivitas Menentukan Titik Awal
EM
O
3.4.1.
Gambar 3.4 Diagram Aktivitas Menentukan Titik Awal
D
Diagram Aktivitas Menentukan Titik Tujuan
LS
3.4.2.
SY
ST
O
O
Gambar 3.5 Diagram Aktivitas Menentukan Titik Tujuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
3.4.4.
Diagram Aktivitas Melihat Jalur Bus yang Ditempuh,
EM
O
Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek
Bus yang Harus Dipilih, dan Melihat Running Time
SY
ST
O
O
LS
D
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Diagram Sekuensial Menentukan Titik Tujuan
D
EM
O
3.5.2.
Diagram Sekuensial Mencari Halte
SY
ST
O
O
3.5.3.
LS
Gambar 3.10 Diagram Sekuensial Menentukan Titik Tujuan
Gambar 3.11 Diagram Sekuensial Mencari Halte
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
D
EM
O
58
LS
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-
O
Warshall
Diagram Sekuensial Melihat Help
SY
ST
O
3.5.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
O
LS
D
EM
O
60
3.7.
O
Gambar 3.16 Diagram Kelas Perancangan Keseluruhan
Kelas Analisis
SY
ST
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
EM
O
double jarak
private int from
MapView mapView
MapController
mapController
SitesOverlay sitesOverlays
SitesOverlay sitesOverlay2
Graph graph
Button buttonDetails
List daftarHalte
InputStream data
Sheet sheet
Sheet sheet2
Sheet sheet3
ArrayList trayek
String param
String[] namaHalte
GeoPoint pointHalte1
AutoCompleteTextView
autoText
Projection projection
ArrayList
ppoint
List items
Drawable marker
Drawable markerStart
Drawable markerEnd
Drawable markerChange
Context context
O
LS
D
TemporaryJalur_n_Jarak Membantu untuk
menyimpan jarak
dan jalur secara
sementara
yang
digunakan dalam
pencarian
jalur
terpendek dengan
menggunakan
algoritma dijkstra.
MainActivity
Menampilkan
halaman judul.
Map
Menampilkan
tampilan peta.
Membuat halte dan
jarak antar halte.
Membuat posisiposisi halte dan
pengguna
pada
peta.
O
PathOverlay
SY
ST
SitesOverlay
Membuat
terpendek
peta.
Menampilkan
posisi-posisi
dan pengguna
peta.
Menampilkan
terpendek
jalur
pada
halte
pada
jalur
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
findIndex(String index)
public
Digunakan
mencari
node
untuk
index
yang
dicari
masukan
EM
O
dengan
dari
berupa nama node.
getMin()
public
Digunakan
mencari
untuk
jalur
terpendek
yang
dengan
membandingkan
dua
buah jalur. Fungsi ini
D
digunakan
dalam
pencarian
jalur
terpendek
dengan
algoritma Dijkstra.
public
O
LS
adjust_sPath()
displayPaths(int
tujuan,
int public
O
ST
untuk
membentuk
jalur
terpendek
pada
pencarian
jalur
terpendek
dengan
algoritma Dijkstra.
awal)
SY
Digunakan
Digunakan
untuk
menampilkan
jarak
terpendek dan jalur
yang harus ditempuh
dalam pencarian jalur
terpendek
dengan
algoritma Dijkstra.
dijkstra(String
awal,
String public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
diperoleh.
Visibility
Tipe
INFINITE
private
integer
edge
package
double[][]
edgeTrayek
package
daftarVertex
package
jumlah_vertex
package
tujuan
package
sPath
package
EM
O
Nama Atribut
ArrayList[][]
Halte[]
integer
List
TemporaryJalur_n_Jar
jumGraph
package
vertSkrg
D
ak[]
mulaiSmpSkrg
integer
package
integer
package
double
LS
Tabel 3.11 Tabel Operasi dan Atribut Kelas Graph
Visibility
Keterangan
getNama()
public
Digunakan
O
b. Kelas Halte
Nama Operasi
O
setNama(String nama)
SY
ST
isInGraph()
untuk
mengambil nama dari
halte.
public
Digunakan
untuk
memberi nama sebuah
halte.
public
Digunakan
untuk
mengambil tanda sebuah
halte
apakah
sudah
dikunjungi atau belum.
setInGraph(boolean
public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
node
asal
sementara.
Visibility
Tipe
jarak
private
double
from
private
EM
O
Nama Atribut
integer
Tabel 3.13 Tabel Operasi dan Atribut Kelas TemporaryJalur_n_Jarak
d. Kelas MainActivity
Nama Operasi
Visibility
Keterangan
onCreate(Bundle
public
Digunakan
untuk
memanggil
dan
savedInstanceState)
D
menampilkan
halaman
judul.
-
Visibility
LS
Nama Atribut
Tipe
Tabel 3.14 Tabel Operasi dan Atribut Kelas MainActivity
Visibility
protected Digunakan
untuk
memanggil
dan
onCreateOptionsMenu(Menu
public
onCreate(Bundle
O
savedInstanceState)
menampilkan peta.
ST
menu)
SY
Keterangan
O
e. Kelas Map
Nama Operasi
onBackPressed()
Digunakan
membuat
untuk
menu
pada
aplikasi.
public
Digunakan
untuk
memberi action apa yang
harus dilakukan ketika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
autoText
package
AutoCompleteTextView
Tabel 3.15 Tabel Operasi dan Atribut Kelas Map
EM
O
f. Kelas PathOverlay
Nama Operasi
Visibility
Keterangan
draw(Canvas canvas, public
Digunakan
membuat gambar path
MapView mapView,
boolean
untuk
shadow,
yang akan ditampilkan
long when)
di peta.
Visibility
projection
private
ppoint
private
Tipe
Projection
ArrayList
D
Nama Atribut
Tabel 3.16 Tabel Operasi dan Atribut Kelas PathOverlay
Visibility
Keterangan
createItem(int index)
protected
Digunakan
untuk
membuat
objek
O
LS
g. Kelas SitesOverlay
Nama Operasi
SY
ST
O
size()
addItem(OverlayItem
public
gambar
(posisi
dan
halte).
Digunakan
untuk
mengambil jumlahnya
objek
gambar
yang
dibuat.
public
item)
Digunakan
untuk
menambahkan
objek
gambar.
addFlag(int[] itemSize)
public
Digunakan
untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
int counter3 = -1
package
integer
mapView
package
MapView
param
package
String
EM
O
Tabel 3.17 Tabel Operasi dan Atribut Kelas SitesOverlay
h. Kelas Help
Nama Operasi
Visibility
Keterangan
onCreate(Bundle
public
Digunakan
untuk
memanggil
dan
savedInstanceState)
menampilkan
halaman
Help.
-
Visibility
Tipe
D
Nama Atribut
3.9.
Cara Pengujian
LS
Tabel 3.18 Tabel Operasi dan Atribut Kelas Help
Pengujian dilakukan dengan dua macam. Pengujian pertama dilakukan
O
untuk menguji dari kebenaran sistem atau aplikasi yang telah dibuat.
Pengujian ini dilakukan dengan memberikan sejumlah kasus terhadap aplikasi
O
yang telah dibuat. Hasil yang diperoleh berdasarkan setiap kasus yang
diberikan kemudian akan dibandingkan dengan perhitungan manual untuk
SY
ST
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
titik awal.
pada peta.
disentuh
akan
ditandai dengan ikon
awal.
2
Membatalkan
Halte bus yang telah Muncul
titik awal.
ditentukan
titik
awal
awal akan dibatalkan atau
sebelumnya.
3
pesan
sebagai apakah
titk
titik
EM
O
baru sebagai
tidak.
Menentukan
Halte bus yang ada Halte
titik tujuan.
pada
peta
bus
(selain disentuh
yang
akan
sebagai titik awal).
D
yang telah ditandai ditandai dengan ikon
baru sebagai
titik
tujuan.
Muncul garis pada
LS
peta
yang
menghubungkan
Melihat
jalur Tombol
bus
yang disentuh.
O
4
O
antar
SY
ST
ditempuh.
5
yang
merupakan
jalur
tempuh
titik
dari
awal ke titik tujuan.
“Details” Rute jalur terpendek
yang harus ditempuh
menggunakan
bus
akan muncul berupa
poin-poin.
Melihat
nilai Tombol
jarak
yang disentuh.
ditempuh.
halte
“Details” Tampil total nilai
jarak terpendek yang
harus
ditempuh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
(KENTUNGAN)
SUGIYONO
2 User diarahkan ke
(MUSEUM
posisi
PERJUANGAN)
SUGIYONO
EM
O
halte
2
(MUSEUM
PERJUANGAN)
9
Mencari halte.
“”
Tampil pesan bahwa
halte
yang
dicari
TINUS
D
tidak diketahui.
Tampil pesan bahwa
halte
yang
dicari
LS
tidak diketahui.
SEMBARANG
Tampil pesan bahwa
halte
yang
dicari
tidak diketahui.
Menguji
Awal: SUDIRMAN Jarak: 4,604 km
O
10
kebenaran jarak 2 (BUMI PUTERA)
terpendek
-SUDIRMAN
2
(BUMI PUTERA)
algoritma
-MANGKUBUMI 1
O
masing-masing
ST
SY
Tujuan: NGABEAN
Jalur:
(TUGU)
-MANGKUBUMI 2
(PLN)
-MALIOBORO
(GARUDA)
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Naik 2B.
HARYONO
(SMA 7)
MT Jarak: 4,299 km
2 Jalur:
-MT HARYONO 2
EM
O
Awal:
Tujuan: TENTARA (SMA 7)
PELAJAR 1 (SMP -TEJOKUSUMAN
14)
-NGABEAN
-
COKROAMINOTO
(SMA 1)
D
-SMPN 11
-TENTARA
PELAJAR 1 (SMP
14)
LS
Saran:
Naik 3B – pindah ke
2B di Ngabean.
3.11.
O
Tabel 3.19 Skenario Pengujian
Desain A