Implementasi algoritma Depth First Search (DFS) pada rute bus AKAP AKDP berbasis android.

(1)

i

PADA RUTE BUS AKAP AKDP

BERBASIS ANDROID

Halaman Judul Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

Oleh:

Fransisca Endar Subagyo 08 5314 037

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(2)

ii

OF DEPTH FIRST SEARCH (DFS) ALGORITHM

ON AKAP AKDP BUS ROUTES

A Thesis

Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Komputer Degree

in Informatics Engineering

By

Fransisca Endar Subagyo 08 5314 037

DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA


(3)

(4)

(5)

v

Skripsi ini saya persembahkan untuk

Tuhan Yesus Kristus,

Keluarga, Sahabat, dan Teman –Teman


(6)

vi

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian dari karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 22 Februari 2013 Penulis


(7)

vii

IMPLEMENTASI ALGORITMA DEPTH FIRST SEARCH(DFS)

PADA RUTE BUS AKAP AKDP

BERBASIS ANDROID

ABSTRAK

Bus umum merupakan salah satu alat transportasi darat yang masih banyak digunakan oleh masyarakat. Bus umum memiliki jalur atau rute tertentu dalam mencapai suatu tempat. Masalah yang dihadapi oleh penumpang adalah bagaimana menentukan rute yang singkat dan murah. Penumpang bus perlu mempertimbangkan jalur yang dilalui oleh bus, untuk mencari jarak terpendek dalam mencapai suatu tempat. Pemilihan jalur yang tepat dapat meringankan biaya transportasi. Skripsi ini menyediakan informasi tentang rekomendasi rute / jalur beserta harga yang diperlukan. Sistem ini dikembangkan berbasis mobile dan berbasis web. Aplikasi mobile

ditujukan untuk penumpang bus yang akan mencari jalur yang ada dari suatu terminal ke terminal lain

Dalam pencarian semua kemungkinan jalur yang ada, digunakan algoritma Depth First

Search (DFS). DFS merupakan salah satu algoritma yang dapat digunakan untuk memilih semua

kemungkinan jalur. Kelebihan algoritma ini dapat menampilkan berbagai alternatif jalur yang ada, saat tersedia banyak kemungkinan. Data yang dipergunakan adalah data yang diperoleh dari Dinas Hubkominfo (Dinas Perhubungan, Komunikasi dan Informatika). Hasil perhitungan DFS dapat divisualisasikan dalam peta yang terintegrasi dengan Google Map.

Rekomendasi yang diberikan sistem disusun berdasar jumlah terminal yang dilalui oleh suatu bus tertentu berdasar jalur yang ada. Semakin sedikit jumlah terminal yang dilalui maka akan berada pada puncak rekomendasi. Jumlah rekomendasi berbanding lurus dengan waktu yang diperlukan sistem dalam mendapatkan semua kemungkinan jalur yang ada dari suatu terminal ke terminal lain. Proses pengujian sistem adalah dengan mencocokan hasil perhitungan manual dengan hasil yang ditampilkan oleh sistem. Berdasarkan pengujian tersebut jalur yang ditemukan oleh sistem sama dengan hasil perhitungan manual.


(8)

viii

THE ANDROID-BASED IMPLEMENTATION

OF DEPTH FIRST SEARCH (DFS) ALGORITHM

ON AKAP AKDP BUS ROUTES

ABSTRACT

A public bus is one of road transportations, which is still widely used by the societies. A public bus has certain traffic lanes or routes to reach a destination. The problem faced by the passengers is how to determine the brief and cheap route. They need to consider the traffic lanes passed by the bus and to look for the shortest distance in order to reach a destination. Choosing the proper traffic lane can diminish the transportation cost. This research provides some information about the recommendation of bus routes/traffic lanes and the costs needed. The system was developed based on mobile and web. Mobile application is targeted to the bus passengers who will look for the traffic lanes from one bus station to another.

In searching for all the possible traffic lanes, the Depth First Search (DFS) algorithm is used. DFS is one of algorithms that can be used to choose the shortest route among all the possible traffic lanes. The strength of this algorithm is the ability to present various route alternatives where there are many possibilities of routes. The data used is the one obtained from Dinas Hubkominfo (Dinas Perhubungan, Komunikasi, dan Informatika). The calculation result of DFS can be visualized on a map that is integrated with Google Map.

The recommendation given by the system is arranged based on the numbers of stations passed by certain buses according to the traffic lanes. The lower the numbers of the bus stations that are passed, the higher the possibility to reach the top of recommendation. The numbers of recommendation are proportional to the time needed by the system in obtaining all possible routes from one station to another. The system examination process was conducted by comparing the result of the manual calculation to the result presented by the system. Based on the examination, the routes found by the system matched those in manual calculation.


(9)

ix

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Fransisca Endar Subagyo

NIM : 08 5314 037

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:

Implementasi Algoritma Depth First Search(DFS) Pada Rute Bus AKAP AKDP

Berbasis Android

Dengan demikian saya memberikan kepada Universitas Sanata Dharma hak untuk menyiapkan, mengalihkan dalam bentuk media lain, mengelola dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di internet atau media lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun memberi royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta

Pada Tanggal: 22 Februari 2013 Yang menyatakan,


(10)

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena hanya dengan berkat dan karunia-Nya, serta campur tangan-Nya, penulis dapat menyelesaikan skripsi yang berjudul “Implementasi Algoritma Depth First

Search(DFS) Pada Bus AKAP AKDP Berbasis Android” dengan baik.

Pada kesempatan ini penulis juga ingin mengucapkan rasa terima kasih kepada:

1. Bapak Puspaningtyas Sanjoyo Adi S.T., M.T., selaku dosen pembimbing yang sudah meluangkan waktu dan dengan sabar membimbing penulis, sehingga skripsi ini dapat diselesaikan dengan baik.

2. Ibu Ridowati Gunawan S.Kom., M.T. selaku ketua program studi Teknik Informatika

3. Pihak sekretariat dan laboran Fakultas Sains dan Teknologi yang turut membantu penulis dalam menyelesaikan tugas akhir ini.

4. Kepada kedua orang tua, Bapak Anton Subagyo dan Ibu M. Andaryati S.Pd., yang selalu memberikan kasih sayang, semangat, dukungan serta doa yang melimpah kepada penulis.

5. Segenap saudara, terutama Kak Yasinta Endar Subagyo, dan Dik Jonathan Ongky Subagyo yang selalu memberi semangat, motivasi, serta memberikan hiburan ketika penulis merasa bosan dan putus asa.


(11)

xi

6. Teman – teman kuliah Putri, Petra, Ita, Angga, Reza, Endro, Surya, Bebeth, Tista, Wulan, Ocak, Ndul, Esy, Devi, Gadis, Carla, Widya, Ancel, Ika, serta teman – teman TI 08 lainnya atas kebersamaan dan dukungan yang selalu diberikan kepada penulis.

7. Teman- teman kost 202B Sari, Winas, Evi, Ken, Ela, yang senatiasa menemani dan memberikan dukungan serta menjadi motivasi bagi penulis dalam menyelesaikan tugas akhir ini.

8. Semua pihak yang tidak dapat disebutkan satu persatu, yang telah membantu sehingga penulis dapat menyelesaikan skripsi ini.

Akhirnya penulis berharap semoga skripsi ini dapat berguna bagi para pembaca.

Penulis,


(12)

xii

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... vi

ABSTRAK... vii

ABSTRACT ... viii

LEMBAR PERNYATAAN ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xviiii

DAFTAR TABEL ... xix

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 3

1.3 Tujuan ... 4

1.4 Batasan Masalah ... 4

1.5 Metodologi Penelitian ... 5

1.6 Sistematika Penulisan ... 6

BAB II LANDASAN TEORI ... 7

2.1 Graf ... 7

2.2 Graf Tak-Berarah (Undirected Graph) ... 8

2.3 Graf Berarah (Digraph) ... 9

2.4 Lintasan (Path) dan Rangkaian (Circuit) ... 10

2.4.1 Lintasan (Path) ... 10

2.4.2 Rangkaian (Circuit) ... 11

2.5 Algoritma DFS ... 12


(13)

xiii

2.7.1 Arsitektur Android ... 15

2.7.2 Komponen Dasar ... 17

2.7.3 Daur Hidup Activity ... 18

2.7.4 Daur Hidup Service ... 20

2.8 Location Based Service (LBS) dan Google Maps ... 21

2.9 Sistem Infromasi ... 23

2.10 Sistem Informasi Geografis ... 24

2.10.1 Definisi Sistem Informasi Geografis ... 24

2.10.2 Manfaat Sistem Informasi Geografis ... 24

2.10.3 Cara Kerja Sistem Informasi Geografis ... 25

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 26

3.1 Analisa Sistem ... 26

3.2 Sumber Data... 27

3.3 Perhitungan DFS ... 28

3.4 Arsitektur Sistem ... 30

3.4.1 Arsitektur Sistem berbasis mobile ... 30

3.4.2 Arsitektur Sistem berbasis Web ... 34

3.5 Gambaran Umum Sistem ... 36

3.5.1 Use Case ... 36

3.5.1.1.Use Case Berbasis Mobile ... 36

3.5.1.1 Use Case Berbasis Web ... 37

3.5.2 Narasi Use Case ... 39

3.5.3. Diagram Aktifitas ... 39

3.5.4. Model Analisis ... 39

3.5.5 Diagram Kelas ... 40

3.5.6 Desain Basis Data ... 41

3.5.7 Perancangan Basis Data ... 42

3.6 Model Desain ... 44

3.7 Model Pengujian ... 44


(14)

xiv

4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak ... 45

4.1.2 Implementasi Diagram Kelas ... 45

4.2 Pengujian... 46

4.2.1 Penyelesaian Rumusan Masalah ... 46

4.2.2 Pengukuran Kinerja Sistem ... 75 4.2.3 Kelebihan dan Kekurangan Sistem... 77 BAB V PENUTUP ... 78

5.1 Kesimpulan ... 78

5.2 Saran ... 79

DAFTAR PUSTAKA ... 80

LAMPIRAN 1 ... 81

1.1 Travice web server ... 81

1.1.1 Login ... 81

1.1.2 Tambah Data Terminal ... 82

1.1.3 Ubah Data Terminal ... 83

1.1.4 Hapus Data Terminal ... 84

1.1.5 Tambah Data Jalur ... 84

1.1.6 Ubah Data Jalur ... 85

1.1.7 Hapus Data Jalur ... 82

1.1.8 Tambah Data Trayek ... 86

1.1.9 Ubah Data Trayek ... 87

1.1.10 Hapus Data Trayek ... 88

1.1.11 Logout ... 89

1.2 Travice mobile ... 89

1.2.1 Login ... 89

1.2.2 Tambah Data Terminal ... 90

1.2.3 Ubah Data Terminal ... 91

1.2.4 Hapus Data Terminal ... 92

1.2.5 Logout ... 93


(15)

xv

2.1 Travice web server ... 95

2.1.1 Login ... 95

2.1.2 Tambah Data Terminal ... 96

2.1.3 Ubah Data Terminal ... 97

2.1.4 Hapus Data Terminal ... 98

2.1.5 Tambah Data Jalur ... 99

2.1.6 Ubah Data Jalur ... 100

2.1.7 Hapus Data Jalur ... 101

2.1.8 Tambah Data Trayek ... 102

2.1.9 Ubah Data Trayek ... 103

2.1.10 Hapus Data Trayek ... 104

2.1.11 Logout ... 104

2.2 Travice mobile ... 105

2.2.1 Login ... 105

2.2.2 Tambah Data Terminal ... 106

2.2.3 Ubah Data Terminal ... 107

2.2.4 Hapus Data Terminal ... 108

2.2.5 Logout ... 108

2.2.6 Cari Jalur... 109

LAMPIRAN 3 ... 110

3.1 Travice web server ... 110

3.1.1 Login ... 110

3.1.2 Tambah Data Terminal ... 111

3.1.3 Ubah Data Terminal ... 113

3.1.4 Hapus Data Terminal ... 114

3.1.5 Tambah Data Jalur ... 115 3.1.6 Ubah Data Jalur ... 117 3.1.7 Hapus Data Jalur ... 119

3.1.8 Tambah Data Trayek ... 120


(16)

xvi

3.1.11 Logout ... 124

3.2 Travice mobile ... 126

3.2.1 Login ... 126

3.2.2 Tambah Terminal ... 128

3.2.3 Ubah Terminal ... 129

3.2.4 Hapus Terminal ... 131

3.2.5 Logout ... 132

3.2.6 Cari Jalur... 133

LAMPIRAN 4 ... 135

4.1 Travice web server ... 135

4.1.1 Login ... 135

4.1.2 Tambah Data Terminal ... 136

4.1.3 Ubah Data Terminal ... 136

4.1.4 Hapus Data Terminal ... 137

4.1.5 Tambah Data Jalur ... 137

4.1.6 Ubah Data Jalur ... 138

4.1.7 Hapus Data Jalur ... 138

4.1.8 Tambah Data Trayek ... 138

4.1.9 Ubah Data Trayek ... 139

4.1.10 Hapus Data Trayek ... 140

4.1.11 Logout ... 140

4.2 Travice mobile ... 140

4.2.1 Login ... 140

4.2.2 Tambah Terminal ... 140

4.2.3 Ubah Terminal ... 141

4.2.4 Hapus Terminal ... 142

4.2.5 Logout ... 142

4.2.6 Cari Jalur... 142

LAMPIRAN 5 ... 143


(17)

xvii

5.1.2 Tambah Data Terminal ... 144

5.1.3 Ubah Data Terminal ... 147

5.1.4 Hapus Data Terminal ... 147 5.1.5 Tambah Data Jalur ... 148

5.1.6 Ubah Data Jalur ... 149

5.1.7 Hapus Data Jalur ... 150

5.1.8 Tambah Data Trayek ... 150

5.1.9 Ubah Data Trayek ... 151

5.1.10 Hapus Data Trayek ... 152

5.1.11 Logout ... 153

5.2 Travice mobile ... 153

5.2.1 Login ... 154

5.2.2 Tambah Terminal ... 155

5.2.3 Ubah Terminal ... 155

5.2.4 Hapus Terminal ... 156

5.2.5 Logout ... 156

5.2.6 Cari Jalur... 157

LAMPIRAN 6 ... 158

6.1 Travice web server ... 158


(18)

xviii

Gambar 2.1 Graf sederhana ... 8

Gambar 2.2 Graf ganda ... 9

Gambar 2.3 Graf semu ... 9

Gambar 2.4Directed Graph ... 10

Gambar 2.5 Graf G dengan empat titik dan empat sisi ... 11

Gambar 2.6 Graf G dan sirkuitnya ... 12

Gambar 2.7 Graf ... 13

Gambar 2.8 Arsitektur Android ... 15

Gambar 3.1 Gambar Graf... 28

Gambar 3.2 Arsitektur Sistem berbasis mobile ... 30

Gambar 3.3 Arsitektur Aplikasi Sistem untuk User ... 32

Gambar 3.4 Arsitektur Aplikasi Sistem untuk Admin ... 33

Gambar 3.5 Arsitektur Sistem berbasis Web ... 34

Gambar 3.6 Arsitektur Aplikasi Sistem untuk Admin ... 35

Gambar 3.7 Use Case Diagram... 36

Gambar 3.8 Package Kelola Data untuk Admin ... 37

Gambar 3.9Use Case Diagram... 38

Gambar 3.10 Package Kelola Data untuk Admin ... 38

Gambar 3.11 Diagram kelas Travice web server ... 40

Gambar 3.12 Diagram kelas Travice mobile ... 40


(19)

xix

Tabel 2.1 Isi Stack dalam DFS ... 13

Tabel 3.1 Matrik ketetanggaan ... 28

Tabel 3.2 Isi Stack dalam DFS : ... 29

Tabel 3.3 Struktur tabel terminal ... 42

Tabel 3.4 Struktur tabel Jalur ... 43

Tabel 3.5 Struktur tabel PO_Bus ... 43


(20)

1

BAB I PENDAHULUAN

1 Bab I Pendahuluan

1.1 Latar Belakang

Transportasi adalah pemindahan manusia atau barang dari satu tempat ke tempat lainnya dengan menggunakan sebuah kendaraan yang digerakkan oleh manusia atau mesin. Transportasi digunakan untuk memudahkan manusia dalam melakukan aktivitas sehari-hari. Alat transportasi ada bermacam-macam. Bus umum merupakan salah satu alat transportasi darat yang masih banyak digunakan oleh masyarakat. Bus umum memiliki jalur atau rute tertentu dalam mencapai suatu tempat. Jalur atau rute ini, merupakan daftar tempat yang dilalui oleh bus tersebut. Penumpang bus bisa mendapatkan informasi mengenai jalur bus dari teman, keluarga, ataupun dari website. Informasi ini memudahkan penumpang bus dalam memilih rute yang akan digunakan.

Penumpang bus harus memilih bus yang tepat dalam bertransportasi. Penumpang bus perlu mempertimbangkan jalur yang dilalui oleh bus, untuk mencari jarak terpendek dalam mencapai suatu tempat. Semakin singkat jarak untuk mencapai tujuan yang diinginkan, maka biaya transportasi yang perlu dikeluarkan juga semakin kecil. Pemilihan jalur yang tepat dapat meringankan biaya transportasi. Calon penumpang bus perlu dibantu dengan memberikan informasi dalam sebuah aplikasi. Spesifikasi aplikasi tersebut meliputi :


(21)

a. memberikan informasi seperti biaya yang diperlukan, jalur bus yang dilalui

b. menampilkan visualisasi jalur yang disediakan c. dapat diakses dimana dan kapan saja

d. pengaksesan informasi dapat dengan cepat dilakukan e. aplikasi selalu dibawa oleh pengguna

Berdasarkan spesifikasi tersebut maka aplikasi berbasis mobile adalah aplikasi yang sesuai untuk menyelesaikan masalah pemilihan jalur terpendek. Kelebihan dari aplikasi berbasis mobile tentu dalam hal kepraktisan. Aplikasi berbasis mobile dapat digunakan dimana saja dan kapan saja. Berbeda dengan aplikasi berbasis dekstop, saat ingin menggunakan aplikasi tersebut kita harus datang ke tempat dimana aplikasi tersebut berada, sehingga tidak dapat digunakan kapan saja. Pengaksesan informasi yang cepat, dapat diakses kapan saja dan dimana saja, membuat aplikasi mobile tepat diterapkan dalam menyelesaikan masalah pemilihan jalur transportasi untuk mendapatkan jalur terpendek. Dengan adanya kemajuan teknologi, aplikasi Google Map dapat membantu dalam memvisualisasikan jalur transportasi terpendek yang akan digunakan oleh penumpang bus umum.

Salah satu misi dari Dinas Hubkominfo (Dinas Perhubungan, Komunikasi dan Informatika) mendukung peningkatan efisiensi dan efektivitas tata kelola pemerintahan di Dinas Hubkominfo yang berbasis good governance


(22)

dengan memanfaatkan teknologi informasi secata optimal. Dengan adanya aplikasi yang membantu calon penumpang bis umum dalam memilih rute transportasi, akan memudahkan Dinas Hubkominfo memberikan data mengenai rute transportasi yang ada. Selain itu calon penumpang juga akan mudah dalam mengakses data tersebut.

Variabel yang akan diperhitungkan adalah biaya. Dalam bertransportasi, jarak tentu akan sangat berpengaruh pada biaya yang perlu dikeluarkan. Alasan pemilihan variabel biaya karena variabel biaya adalah variabel yang penting dalam bertransportasi. Pengaturan jalur bus dari pemerintah tentu mempertimbangkan keramaian jalanan. Semakin ramai jalan tersebut tentu harapannya semakin banyak penumpang yang didapatkan oleh angkutan umum tersebut. Sehingga variabel seperti tingginya traffic

jalan(kemacetan), bisa diabaikan karena dalam angkutan umum semakin ramai suatu tempat harapannya semakin banyak penumpang bus yang didapat. Algoritma Depth First Search(DFS) merupakan salah satu algoritma yang dapat digunakan untuk memilih rute terpendek dari suatu jalur yang ada. Kelebihan algoritma ini dapat menampilkan berbagai alternatif jalur yang ada, saat tersedia banyak kemungkinan.

1.2 Rumusan Masalah


(23)

1. Bagaimana algoritma DFS mampu memberikan solusi dalam pemilihan jalur transportasi terpendek yang akan digunakan calon penumpang bus umum?

2. Bagaimana hasil perhitungan algoritma DFS dapat divisualisasikan dalam program berbasis mobile?

1.3 Tujuan

Tujuan dari penelitian yang dilakukan adalah

1. Menerapkan algoritma DFS untuk memberikan solusi jalur transportasi pada bus umum dengan mengakomodasi pergantian kendaraan

2. Memvisualisasikan jalur trasportasi bus umum yang memungkinkan untuk

mencapai suatu tempat yang ada di Yogyakarta, Semarang, Surakarta

1.4 Batasan Masalah

Penelitian ini akan dibatasi pada hal-hal berikut:

1. Obyek yang diteliti adalah jalur transportasi bus umum yang ada di Yogyakarta, Semarang, Surakarta, untuk bus Antar Kota Dalam Provinsi(AKDP), dan Antar Kota Antar Propinsi(AKAP)

2. Terminal yang diperhitungkan sesuai dengan data yang ada di Dinas Perhubungan Komunikasi dan Informatika Provinsi Yogyakarta dan Jawa Tengah hingga tahun 2012


(24)

4. Solusi jalur disusun berdasar jumlah terminal yang dilalui. Semakin sedikit terminal yang dilalui maka akan berada pad puncak rekomendasi.

5. Pencarian jalur berdasar pada suatu terminal ke terminal yang lainnya. Aplikasi tidak mengamodasi pencarian terminal terdekat dari posisi

handphone/smart phone.

1.5 Metodologi Penelitian

Pada pelaksanaan pembuatan tugas akhir hingga pembuatan sistem dan penyusunan laporan, penulis menggunakan metode yaitu :

a. Metode pengumpulan data

Penulis melakukan studi pustaka untuk mengumpulkan informasi. Studi pustaka dilakukan dengan mempelajari teori-teori serta literatur yang mendukung penelitian ini terutama yang berhubungan dengan algoritma DFS serta perangkat lunak yang digunakan untuk membangun sistem. Selain itu penulis juga mengumpulkan data seperti data terminal serta jalur bus umum yang ada di Yogyakarta, Semarang, dan Surakarta yang digunakan untuk penelitian ini.

b. Metode pengembangan sistem

Metode yang dipakai untuk mengembangkan sistem yang dipakai adalah pendekatan algoritma DFS


(25)

Metode evaluasi dilakukan dengan menguji sistem berdasar beberapa masukan(inputan).

1.6 Sistematika Penulisan

Bab I. Pendahuluan

Bab ini membahas mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, metodologi, dan sistematika penulisan.

Bab II. Landasan Teori

Bab ini membahas mengenai pengetahuan yang menjadi dasar teori untuk mengimplementasikan algoritma DFS dalam memberikan solusi pemilihan jalur terpendek transportasi bus.

Bab III. Analisis dan Perancangan Sistem

Dalam bab ini akan diidentifikasikan masalah yang akan diselesaikan serta tahap tahap penyelesaian masalah tersebut dengan menggunakan algoritma DFS.

Bab IV. Analisa Hasil dan Pembahasan

Bab ini berisi analisa hasil program dan pembahasan masalah berdasarkan hasil yang telah didapat secara keseluruhan.

Bab V. Kesimpulan dan Saran

Bab ini berisi kesimpulan dan saran dari hasil analisis serta pembahasan masalah berdasarkan hasil yang telah didapat.


(26)

7

BAB II

LANDASAN TEORI

2 Bab II landasan Teori

2.1 Graf

Graf G didefinisikan sebagai pasangan himpunan (V, E) ditulis dengan notasi G=(V,E) yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (vertices/node) dan E adalah himpunan sisi (edges/arcs) yang menghubungkan sepasang simpul [1].

Suatu graf seperti suatu peta dan jalan-jalannya. Kota-kota sebagai

vertices-nya. Jalan dari satu kota ke kota lainnya sebagai edges-nya. Simpangan atau cabang di dalam suatu jalan dapat dipandang sebagai vertex juga. Jika simpangan/cabang tidak ingin dihitung sebagai vertex, maka suatu jalan dapat menghubungkan lebih dari dua kota. Maka pada hakekatnya terdapat

hyperedges di dalam suatu hypergraph. Jika diasumsikan lebih dari satu jalan antar masing-masing pasangan kota, maka dapat disebut sebagai multigraph. Semua itu tergantung pada bagaimana batasan yang diberikan.

Cara lain untuk berpikir tentang suatu graf adalah sebagai seikat/berkas titik yang dihubungkan oleh garis-garis. Titik di dalam suatu grafik disebut

vertex, dan garis yang menghubungkan titik-titik itu disebut edges. Hal yang


(27)

2.2 Graf Tak-Berarah (Undirected Graph)

Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak berarah. Pada graf tak-berarah urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u,v) = (v,u) adalah sisi yang sama [1].

Graf tak-berarah ini terdiri dari beberapa macam, yaitu [1] :

1. Graf sederhana, adalah graf yang tidak mengandung gelang maupun sisi ganda. Pada graf sederhana sisi adalah pasangan tak terurut (unordered pairs). Jadi, menuliskan sisi (u,v) = (v,u).

1

3

4 2

Gambar 2.1 Graf sederhana

2. Graf tak sederhana, adalah graf yang mengandung sisi ganda atau gelang. Ada 2 macam graf tak sederhana yaitu graf ganda (multigraph) dan grap semu (pseudograph).

a. Graf ganda, adalah graf yang mengandung sisi ganda. Sisi ganda yang menghubungkan sepasang simpul bisa lebih dari dua buah. Sisi ganda dapat diasosiasikan sebagai pasangan tak terurut yang sama.


(28)

1

3

4 2

e1 e4

e3 e2

e5 e6

e7

Gambar 2.2 Graf ganda

b. Graf Semu, adalah graf yang mengandung gelang (loop).

1

3

4 2

e1 e4

e3 e2

e5 e6

e7 3

e8

Gambar 2.3 Graf semu

2.3 Graf Berarah (Digraph)

Suatu graf berarah G terdiri dari himpunan titik-titik V(G) : {v1, v2, ...}, himpunan garis-garis E(G) : {e1, e2, ...}, dan suatu fungsi ψ yang mengawankan setiap garis dalam E(G) ke suatu pasangan berurutan titik (vi, vj).

Jika ek = (vi, vj) adalah suatu garis dalam G, maka vi disebut titik awal ek dan vj disebut titik akhir ek. Arah garis adalah dari vi ke vj. Jumlah garis yang keluar dari titik vi disebut derajat keluar (out degree) titik vi (simbol d+(vi)),


(29)

sedangkan jumlah garis yang menuju ke titik vi, disebut derajat masuk (in

degree) titik vi, yang disimbolkan sebagai d-(vi).

Titik terasing adalah titik dalam G dimana derajat keluar dan derajat

masuknya adalah 0. Titik pendan adalah titik dalam G dimana derajat keluar dan derajat masuknya 1. Dua garis berarah dikatakan paralel jika keduanya mempunyai titik awal dan titik akhir yang sama [2].

v1

v6

v5

v4

v3

v2

e1

e5

e4

e3 e2

e6

e7

e9

e8

Gambar 2.4 Directed Graph

2.4 Lintasan (Path) dan Rangkaian (Circuit)

2.4.1 Lintasan (Path)

Misalkan u dan v adalah adalah titik – titik pada graf G. Sebuah jalan (walk) u – v pada graf G adalah barisan selang – seling antar titik dan sisi,

u = u0, e1, u1, e2, ..., un-1, en, un= v

dimulai dengan titik u dan diakhiri dengan titik v, dimana ei = (ui-1ui) untuk i = 1, 2, 3, ....,n. Bilangan n disini menunjukkan panjangnya jalan. Sebuah jalan


(30)

trivial tidak mempunyai sisi, n = 0. Perlu diperhatikan bahwa pada jalan ada kemungkinan pengulangan sisi dan titik. Sebuah trail u – v adalah sebuah jalan u – v yang tidak terdapat pengulangan sisi, sedangkan sebuah jalan u – v yang tidak terdapat pengulangan titik dan sisi adalah lintasan u – v. Oleh sebab itu setiap lintasan pasti merupakan trail [3].

Contoh:

Gambar 2.5 Graf G dengan empat titik dan empat sisi

Contoh jalan pada graf G di atas adalah jalan v1-v4, yaitu v1, e1, v2, e2, v3, e3, v1, e1, v2, e4, v4.

Contoh trail pada graf G di atas adalah trail v2-v4, yaitu v2, e2, v3, e3, v1, e1, v2, e4, v4.

Contoh lintasan pada graf G di atas adalah lintasan v3-v4, yaitu v3, e3, v1, e1, v2, e4, v4.

2.4.2 Rangkaian (Circuit)

Suatu trail tertutup dan tak trivial di graf G disebut sebagai suatu sirkuit pada graf G [3].


(31)

Gambar 2.6 Graf G dan sirkuitnya

Salah satu sirkuit pada graf G di atas adalah trail dari v3 ke v3, yaitu v3, e3, v1, e1, v2, e2, v3.

2.5 Algoritma DFS

Aturan-aturan untuk DFS tersebut adalah [4] :

1. Jika mungkin lakukan pada simpul-simpul(vertex) pendamping yang belum pernah dikunjungi, tandai masukan ke Stack.

2. Jika saat kita melakukan aturan tersebut mengalami kesulitan kita keluarkan simpul (vertex) dari Stack. Mengikuti aturan ini, jika kita mengeluarkan suatu simpul dari Stack, kita akan sampai lagi pada simpul bawahnya. Jika simpul di bawahnya bukan merupakan simpul pendamping, yang belum dikunjungi kita keluarkan lagi. Demikian selanjutnya hingga kita tidak bisa melakukannya lagi dan kita harus masuk ke aturan 3 berikut ini.

3. Jika kita tidak bisa lagi mengikuti aturan 1 atau aturan 2 di atas, berarti kita telah menyelesaikan algoritma DFS.


(32)

2.6 Contoh Perhitungan DFS

Gambar 2.7 menyatakan graf berarah berlabel

:

Bandara St. Tugu Malioboro

Giwangan Ambarawa

Klaten Tirtonadi Salatiga

Term. Concat

Gambar 2.7 Graf

Tabel 2.1 Isi Stack dalam DFS

Event Isi Stack

Visit Giwangan Giwangan

Visit Bandara Giwangan, Bandara

Visit St. Tugu Giwangan, Bandara, St. Tugu

Visit Malioboro Giwangan, Bandara, St. Tugu, Malioboro Pop Malioboro Giwangan, Bandara, St. Tugu


(33)

Algoritma DFS akan menghasilkan urutan kunjungan Giwangan, Bandara, St.Tugu, Malioboro, Ambarawa,Klaten, Tirtonadi, Salatiga, terminal Concat.

2.7 Android

Android merupakan sistem operasi yang dikembangkan untuk perangkat

mobile berbasis Linux.

Pop St. Tugu Giwangan, Bandara

Pop Bandara Giwangan

Visit Ambarawa Giwangan, Ambarawa

Pop Ambarawa Giwangan

Visit Klaten Giwangan, Klaten

Visit Tirtonadi Giwangan, Klaten, Tirtonadi

Visit Salatiga Giwangan, Klaten, Tirtonadi, Salatiga Pop Salatiga Giwangan, Klaten, Tirtonadi

Pop Tirtonadi Giwangan, Klaten

Pop Klaten Giwangan

Visit Term.Concat Giwangan, Term.Concat Pop term. Concat Giwangan


(34)

2.7.1 Arsitektur Android

Sistem operasi Android dibangun berdasarkan kernel Linux dan memiliki arsitektur seperti gambar berikut [5]:

Gambar 2.8 Arsitektur Android

a. Application

Lapisan ini adalah lapisan aplikasi, serangkaian aplikasi akan terdapat pada perangkat mobile. Aplikasi inti yang telah terdapat pada Android termasuk kalender, kontak, SMS, dan lain sebagainya. Aplikasi-aplikasi ini ditulis dengan bahasa pemrograman Java.

b. Application Framework

Pengembangan aplikasi memiliki akses penuh ke Android sama dengan aplikasi inti yang telah tersedia. Pengembang dapat dengan mudah mengakses informasi lokasi, mengatur alarm, menambahkan pemberitahuan ke status bar dan lain sebagainya. Arsitektur aplikasi ini


(35)

dirancang untuk menyederhanakan penggunaan kembali komponen, aplikasi apa pun dapat memubikasikan kemampuan dan aplikasi lain dapat menggunakan kemampuan mereka sesuai batasan keamanan. Dasar dari aplikasi adalah seperangkat layanan dan sistem, yaitu berbagai View yang digunakan untuk membangun UI, Content Provider yang memungkinkan aplikasi berbagi data, ResourceManager menyediakan akses bukan kode sperti grafik, string, dan layout NotificationManager yang akan membuat aplikasi dapat menampilkan tanda pada status bar dan ActivityManager

yang berguna mengatur daur hidup dari aplikasi.

c. Libraries

Satu set libraries dalam bahasa C/C++ yang digunakan oleh berbagai komponen pada sistem Android.

d. Android Runtime

Satu set libraries inti yang menyediakan sebagian besar fungsi yang tersedia di libraries inti dari bahasa pemrograman Java. Setiap aplikasi akan berjalan sebagai proses sendiri pada Dalvik Virtual Machine (VM).

e. Linux Kernel

Android bergantung pada Linux versi 2.6 untuk layanan system inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model driver. Kernel juga bertindak sebagai lapisan antara hardware


(36)

2.7.2 Komponen Dasar

Aplikasi Android ditulis dalam bahasa pemrograman Java. Java mengompilasi kode bersama dengan data resource dan file yang dibutuhkan oleh aplikasi dibundel ke dalam paket Android, file arsip ditandai dengan .apk. Komponen aplikasi pada Android terdiri dari 4 komponen utama, yaitu [5]:

a. Activities

Activities merupakan potongan kode executable yang menyajikan UI

secara visual dimulai oleh pengguna maupun sistem operasi dan berjalan selama diperlukan. Activities biasanya sesuai dengan tampilan layar : masing-masing Activities menunjukkan satu layar untuk pengguna.

Activities yang tidak aktif dijalankan dapat dimatikan oleh sistem operasi untuk menghemat memori.

b. Service

Service tidak memiliki visual UI, melainkan berjalan di latar belakang

untuk waktu yang tidak terbatas. Contoh dari service adalah MP3 player yang akan terus memainkan file MP3 sesuai urutan file, walaupun pengguna menggunakan aplikasi lain.

c. Broadcast Receiver

Broadcast Receiver merupakan komponen yang menerima dan bereaksi


(37)

sistem, misalnya pengumuman bahwa zona waktu telah berubah, baterai rendah, bahwa gambar telah diambil, atau bahwa pengguna mengubah preferensi bahasa. Aplikasi juga dapat melakukan siaran misalnya untuk membiarkan aplikasi lain tahu bahwa beberapa data teah di-download ke perangkat dan tersedia sehingga dapat digunakan.

d. Content Provider

Content Provider diciptakan untuk berbagi data dengan Activities lain atau

Service. Sebuah Content Provider menggunakan antar muka standar

dalam bentuk URI untuk memenuhi permintaan data dari aplikasi lain.

2.7.3 Daur Hidup Activity

Activity memiliki tiga status dasar yaitu [5] :

1. Active atau Running

Status ini ketika Activity berjalan di foreground (di bagian atas stack

untuk task ini). Activity yang berkaitan aktif dengan pengguna.

2. Pause

Jika Activity telah kehilangan fokus tetapi masih dapat dilihat oleh pengguna yang berarti ada Activity lain yang berjalan di atas Activity ini, sebuah Activity yang transparan atau tidak menutupi layar penuh sehingga Activity dalam status pause dapat terlihat. Sebuah Activity


(38)

semua informasi dan tetap melekat pada Windows Manager hingga akhirnya dapat dimatikan oleh sistem ketika memori sangat rendah.

3. Stop

Activity benar-benar dihentikan karena ada Activity lain yang memenuhi layar. Semua informasi dipertahankan tetapi tidak dapat dilihat oleh pengguna sehingga jendela tersembunyi dan dapat dimatikan oleh sistem ketika memori dibutuhkan.

Metode yang terdapat pada Activity :

1. onCreate()

Dipanggil ketika Activity pertama kali dibuat. Biasanya merupakan metode di mana View yang ingin ditampilkan dibuat, membuka data file, maupun menginisialisasi Activity. Saat memanggil OnCreate, kerangka Android melewati sebuah bundel objek yang mengandung state activity

yang disimpan ketika Activity pertama berjalan.

2. onStart()

Dipanggil sebelum Activity terlihat pada layar. Ketika Activity dapat menjadi Activity foreground, maka akan dipanggil method OnResume() sedangkan jika tidak maka akan dipanggil method OnStop().

3. onResume()

Dipanggil setelah OnStart() apabila Activity dapat menjadi foreground. Saat ini, Activity dapat bereaksi dengan pengguna. OnResume() juga akan


(39)

dipanggil ketika Activity ini tidak menjadi foreground karena ada Activity

lain lalu Activity lain akhirnya selesai dan Activity kembali menjadi

foreground.

4. onPause()

Dipanggil ketika Activity lain dibawa ke foreground. Pada status ini

Activity tidak memiliki akses ke layar.

5. onStop()

Dipanggil ketika Activity tidak lagi terlihat karena adanya Activity lain yang dibawa ke foreground atau Activity ini dimatikan.

6. OnDestroy()

Dipanggil terakhir sebelum Activity dimatikan ketika Android membutuhkan resources yang digunakan oleh Activity.

2.7.4 Daur Hidup Service

Daur hidup Service hampir sama dengan Activity tetapi memiliki beberapa perbedaan untuk detailnya. [5]

1. OnCreate() dan OnStart()

Dipanggil apabila seseorang klien memanggil Context.startService(Intent). Jika service belum berjalan maka Android akan membuatnya dan memanggil OnCreate() diikuti method OnStart().


(40)

Apabila service telah berjalan, Android hanya akan memanggil

OnStart().

2. OnBind()

Ketika klien membutuhkan koneksi ke service maka akan dipanggil Context.bind. Pemanggilan ini akan mengakibatkan pembuatan service

apabila service tidak sedang berjalan tanpa memanggil OnStart().

3. OnDestroy()

Sama dengan Activity, method ini akan dipanggil ketika service akan dimatikan. Android akan mematikan service apabila telah tidak ada lagi klien yang memulai atau bind ke service ini.

2.8 Location Based Service (LBS) dan Google Maps

Salah satu fitur yang mendefinisikan ponsel adalah mudah dibawa, sehingga tidak mengherankan bahwa beberapa fitur Android paling menarik adalah layanan yang memungkinkan untuk menemukan, mengkontekstualisasikan, dan lokasi peta secara fisik.

Dengan menggunakan Google Maps, pengguna dapat membuat peta berbasis Aktivitas sebagai elemen User Interface. Pengguna memiliki akses penuh ke peta, yang memungkinkan untuk mengontrol pengaturan tampilan, mengubah tingkat zoom, dan memindahkan lokasi terpusat. Dengan menggunakan Overlay, pengguna dapat menambahkan keterangan peta dan


(41)

menangani masukan pengguna untuk memberikan informasi dan fungsi dari

map-contextualized.

Layanan berbasis lokasi (LBS) - layanan yang memungkinkan pengguna menemukan lokasi perangkat. Termasuk teknologi seperti GPS dan teknologi Google berbasis sel lokasi. Pengguna dapat menentukan teknologi lokasi-sensing menggunakan eksplisit dengan nama, atau secara implisit dengan mendefinisikan seperangkat kriteria dalam hal akurasi, biaya, dan persyaratan lainnya.

Peta dan layanan berbasis lokasi menggunakan garis lintang dan bujur untuk menentukan lokasi geografis, namun pengguna lebih cenderung untuk berpikir menggunakan alamat. Android menyediakan geocoder yang mendukung perubahan geocoding. Menggunakan geocoder, pengguna dapat mengkonversi bolak-balik antara lintang / bujur nilai-nilai dan alamat dunia nyata. Pemetaan, geocoding, dan layanan berbasis lokasi digunakan bersama-sama menyediakan menyediakan perangkat canggihuntuk menggabungkan mobilitas ponsel ke dalam aplikasi mobile pengguna.

Location Based Service (LBS) merupakan istilah umum yang digunakan

untuk menggambarkan berbagai teknologi yang digunakan untuk menemukan lokasi perangkat saat ini. Ada dua elemen LBS yaitu [6]:

a. Location Manager : menyediakan pengait ke Location Based Service.


(42)

perpindahan dan mengatur tanda kedekatan untuk mendeteksi gerakan masuk dan keluar dari area tertentu.

b. Location Providers : masing-masing mewakili teknologi lokasi-temuan

yang berbeda yang digunakan untuk menentukan lokasi perangkat.

2.9 Sistem Infromasi

Menurut Aji Supriyanto dalam Pengantar Teknologi Informasi (2005) mendefinisikan sistem informasi sebagai suatu sistem di dalam suatu organisasi, yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan. Data sebagai bahan baku informasi adalah gambaran kejadian yang berwujud karakter, angka, atau simbol tertentu yang memiliki arti. Data bagi suatu tingkat organisasi mungkin berupa informasi bagi tingkat yang lainnya. Data diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan tindakan, yang berarti menghasilkan tindakan lain yang akan membuat sejumlah data kembali. Data yang di tangkap di anggap sebagai input, diproses kembali melalui model, dan begitu seterusnya membentuk suatu siklus.


(43)

2.10 Sistem Informasi Geografis

2.10.1 Definisi Sistem Informasi Geografis

Istilah geography digunakan karena SIG dibangun berdasarkan pada geografi atau spasial. Objek ini mengarah pada spesifikasi lkasi dalam suatu

space. Geographic Information System (GIS) merupakan sistem komputer

yang berbasis pada sistem informasi yang digunakan untuk memberikan bentuk digital dan analisis terhadap permukaan geografi bumi.

Geografi adalah informasi mengenal permukaan bumi dan semua obyek yang berada diatasnya, sedangkan sistem informasi geografis(SIG) atau dalam bahasa inggris disebut Geographic Information System (GIS) adalah sistem informasi khusus yang mengelola data yang memiliki informasi spasial (bereferensi keruangan). Sistem informasi geografis adalah bentuk sistem informasi yang menyajikan informasi dalam bentuk grafis dengan menggunakan peta sebagai antar muka. SIG tersusun atas konsep beberapa lapisan (layer) dan relasi [8].

2.10.2 Manfaat Sistem Informasi Geografis

Fungsi SIG adalah meningkatkan kemampuan menganalisis informasi spasial secara terpadu untuk perencanaan dan pengambilan keputusan. SIG dapat memberikan informasi kepada pengambil keputusan untuk analisis dan penerapan database keruangan [8].


(44)

SIG mampu memberikan kemudahan-kemudahan yang diinginkan. Dengan SIG akan dimudahkan dalam melihat fenomena kebumian dengan perspektif yang lebih baik. SIG mampu mengakomodasi penyimpanan, pemrosesan, dan penayangan data spasial digital bahkan integrasi data yang beragam, mulai dari citra satelit, foto udara, peta bahkan data statistik. SIG juga mengakomodasi dinamika data, pemutakhiran data yang akan menjadi lebih mudah.

2.10.3 Cara Kerja Sistem Informasi Geografis

SIG dapat menyajikan real world (dunia nyata) pada monitor sebagaimana lembaran peta dapat merepresentasikan dunia nyata diatas kertas. Tetapi, SIG memiliki kekuatan lebih dan fleksibilitas dari pada lembaran pada kertas. Peta merupakan representasi grafis dari dunia nyata, obyek-obyek yang dipresentasikan di atas peta disebut unsur peta atau map features ( contohnya adalah sungai, taman, kebun, jalan dan lain-lain). Karena peta mengorganisasikan unsur-unsur berdasrkan lokasi-lokasinya. SIG menyimpan semua informasi deksriptif unsur-unsurnya sebagai atribut-atribut di dalam basis data. Kemudian, SIG membentuk dan menyimpannya di dalam tabel-tabel (relasional) dengan demikian, atribut-atribut ini dapat diakses melalui lokasi-lokasi unsur-unsur peta dan sebaliknya, unsur-unsur peta juga dapat diakses melaluiatribut-atributnya [9].


(45)

26

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3 NALISIS DAN PERANCANGAN

3.1 Analisa Sistem

Sistem yang akan dikembangkan adalah sistem pencarian jalur terpendek jalur transportasi bus umum yang ada di Yogyakarta untuk bus AKDP dan AKAP. Akan terdapat 2 sistem dalam pengimplementasiannya. Sistem pertama berbasis mobile. Dalam sistem berbasis mobile ini menggunakan algoritma DFS dalam pengimplementasiannya. Algoritma DFS tepat digunakan karena pada algoritma ini dapat menampilkan beberapa alternatif jalur yang dapat dipilih. Visualisasi peta yang akan digunakan terintegrasi dengan Google Map. Jalan yang diperhitungkan minimal jalan kabupaten (jalan desa tidak diperhitungkan).

Spesifikasi sistem meliputi :

a. memberikan informasi seperti biaya yang diperlukan, jalur bus yang dilalui b. menampilkan visualisasi jalur yang disediakan

c. dapat diakses dimana dan kapan saja

d. pengaksesan informasi dapat dengan cepat dilakukan e. aplikasi selalu dibawa oleh pengguna

Berdasarkan spesifikasi tersebut maka aplikasi berbasis mobile adalah aplikasi yang sesuai untuk menyelesaikan masalah pemilihan jalur terpendek. Sistem


(46)

kedua berbasis web. Sistem kedua akan mempermudah admin dalam mengelola data terminal, jalur dan trayek yang ada.

Untuk penyimpanan data-data terminal yang ada di Yogyakarta, Semarang, Surakarta dan jalan-jalan yang menghubungkan terminal-terminal tersebut digunakan database My SQL, sehingga dapat dilakukan pengeditan. Sistem mobile mempunyai 2 level pengguna, yaitu pengguna sistem dan admin yang bertugas mengupdate data. Pengguna tersebut mempunyai hak untuk mendapatkan informasi jalur terpendek yang ditampilkan oleh sistem. Sedangkan untuk sistem berbasis web memiliki 1 level penguna saja, yaitu admin yang berfungsi merubah, menambah, dan menghapus data yang ada dengan lebih fleksibel.

3.2 Sumber Data

Sumber data yang digunakan merupakan peta Yogyakarta, Semarang, Surakarta. Peta tersebut terintegrasi dengan Google Map. Jalur yang menghubungkan tempat-tempat dalam wilayah kota adalah minimal jalan kabupaten. Peta kota ini dapat merepresentasikan sebuah bentuk graf yang dapat disajikan berikut ini :

a. terminal merepresentasikan vertexs graf b. jalur merepresentasikan edges graf


(47)

3.3 Perhitungan DFS

Bandara St. Tugu Malioboro

Giwangan Ambarawa

Klaten Tirtonadi Salatiga

Term. Concat

Gambar 3.1 Gambar Graf

Tabel 3.1 Matrik ketetanggaan

A B C D E F G H I

A 0 1 1 1 1 0 0 0 0

B 1 0 0 0 0 1 0 0 0

C 1 0 0 0 0 0 0 0 0

D 1 0 0 0 0 0 1 0 0

E 1 0 0 0 0 0 0 0 0

F 0 1 0 0 0 0 0 1 0

G 0 0 0 1 0 0 0 0 1

H 0 0 0 0 0 1 0 0 0


(48)

Keterangan : A : Giwangan B : Bandara C : Ambarawa D : Klaten

E : Terminal Condong Catur F : St.Tugu

G : Tirtonadi H : Malioboro I : Salatiga

Tabel 3.2 Isi Stack dalam DFS :

Event Isi Stack

Visit Giwangan Giwangan

Visit Bandara Giwangan, Bandara

Visit St. Tugu Giwangan, Bandara, St. Tugu Visit Malioboro Giwangan, Bandara, St. Tugu,

Malioboro

Pop Malioboro Giwangan, Bandara, St. Tugu

Pop St. Tugu Giwangan, Bandara

Pop Bandara Giwangan

Visit Ambarawa Giwangan, Ambarawa

Pop Ambarawa Giwangan


(49)

Visit Tirtonadi Giwangan, Klaten, Tirtonadi

Visit Salatiga Giwangan, Klaten, Tirtonadi, Salatiga Pop Salatiga Giwangan, Klaten, Tirtonadi

Pop Tirtonadi Giwangan, Klaten

Pop Klaten Giwangan

Visit Term.Concat Giwangan, Term.Concat

Pop term. Concat Giwangan

Pop Giwangan -

Algoritma DFS akan menghasilkan urutan kunjungan Giwangan, Bandara, St.Tugu, Malioboro, Ambarawa,Klaten, Tirtonadi, Salatiga, terminal Concat

3.4 Arsitektur Sistem

3.4.1 Arsitektur Sistem berbasis mobile

user / admin

Travice Mobile

Travice web server

internet

Database Server


(50)

Gambar 3.2 merupakan arsitektur system yang akan dibangun. Dalam Arsitektur tersebut user / admin menggunakan Travice untuk dapat mengakses data yang ada di web server. Dalam mengakses data yang ada di web server diperlukan koneksi internet. Web server ini berfungsi menyimpan data terminal, jalur, trayek. Data terminal terdapat di database server. User menggunakan Travice mobile untuk mencari jalur yang ada dari sutau terminal ke termnal lain. User juga akan mendapatkan visualisasi jalur saat jalur yang dicari oleh user ditampilkan oleh sistem. Admin menggunakan Travice mobile untuk mengelola data terminal.


(51)

Database Kota, Terminal, Line

Hitung semua kemungkinan jalur dengan Algoritma DFS

Input terminal asal, tujuan

User

Visualisasi di Google Map

Gambar 3.3 Arsitektur Aplikasi Travice mobile untuk User

Gambar 3.3 merupakan arsitektur aplikasi Travice mobile untuk user yang akan dibangun. Dalam Arsitektur tersebut user memasukan data terminal asal dan terminal tujuan yang ingin dia capai. Sistem akan menampilkan kemungkinan-kemungkinan jalur yang ditemukan. Kemudian hasil dari


(52)

perhitungan system akan di visualisasikan berdasarkan integrasi dengan google map.

Perubahan Database Admin

Data Terminal, yang ada

Data Terminal yang telah

berubah

Gambar 3.4 Arsitektur Aplikasi Travice mobile untuk Admin

Gambar 3.4 merupakan arsitektur aplikasi Travice mobile untuk Admin yang akan dibangun. Dalam Arsitektur tersebut admin akan memasukan data


(53)

kota, terminal dan line yang ada. Saat ada perubahan yang dilakukan oleh admin maka data yang baru akan disimpan di database.

3.4.2 Arsitektur Sistem Travice Web Server

Admin

Travice web Server

Database server internet

Gambar 3.5 Arsitektur Sistem Travice Web Server

Gambar 3.5 merupakan arsitektur system yang akan dibangun. Dalam Arsitektur tersebut admin menggunakan Travice untuk dapat mengakses data yang ada di web server. Dalam mengakses data yang ada di web server diperlukan koneksi internet. Web server ini berfungsi menyimpan data terminal, jalur dan trayek. Data terminal terdapat di database server.


(54)

Perubahan Database Admin

Data Terminal,

Jalur, Trayek yang ada

Data Terminal, Jalur, Trayek

yang telah berubah

Gambar 3.6 Arsitektur Aplikasi Travice Web Server untuk Admin

Gambar 3.6 merupakan arsitektur aplikasi Travice web server untuk Admin yang akan dibangun. Dalam Arsitektur tersebut admin akan memasukan data terminal, jalur, dan trayek yang ada. Saat ada perubahan yang dilakukan oleh admin maka data yang baru akan disimpan di database.


(55)

3.5 Gambaran Umum Sistem

Pada subbab ini akan dijelaskan gambaran dari sistem yang akan dibangun, berupa diagram use case, narasi use case, diagram aktifitas, diagram kelas, dan desain basis data.

3.5.1 Use Case

3.5.1.1.Use Case Travice Mobile

Admin

Login

depends on

Logout Kelola Data

Pencarian Jalur

User


(56)

tambah data terminal

ubah data terminal

hapus data terminal Depends on

Depends on

Gambar 3.8 Package Kelola Data untuk Admin

Gambar 3.7 merupakan diagram use case dari User dan Admin. User

memiliki hal akses untuk mencari informasi mengenai jalur dari suatu terminal ke terminal lain. Admin memiliki hak akses untuk menambah, mengubah, dan menghapus data terminal.

3.5.1.1 Use Case Travice Web Server


(57)

Admin

Login depends on

Logout Kelola Data

Gambar 3.9 Use Case Diagram

tambah data terminal

ubah data terminal

hapus data terminal

tambah data jalur

ubah data jalur

hapus data jalur Depends on

Depends on

Depends on

Depends on

Depends on

tambah data trayek

ubah data trayek

hapus data trayek Depends on

Depends on

Gambar 3.10 Package Kelola Data untuk Admin


(58)

Gambar 3.10 merupakan diagram use case Admin. Admin memiliki hak akses untuk menambah, mengubah, dan menghapus data terminal,jalur mapupun trayek yang ada.

3.5.2 Narasi Use Case

Setiap use case pada diagram use case gambar 3.7(untuk sistem berbasis

mobile) dan 3.9(untuk sistem berbasis Web), akan dirinci dalam sebuah narasi

use case yang akan mendeskripsikan secara tertulis aktivitas yang ada pada use case, adapun skenario use case dari gambar diagram use case gambar 3.7 dan 3.9 terdapat pada lampiran 1 halaman 81.

3.5.3. Diagram Aktifitas

Merupakan diagram yang menjelaskan aktivitas antara user atau admin dengan sistem. Secara lebih rinci tahap activity diagram dapat dilihat pada lampiran 2 halaman 95.

3.5.4. Model Analisis

Merupakan suatu proses untuk menterjemahkan skenario use case menjadi kelas analisis. Dalam kelas analisis terdapat tiga jenis, yaitu form/boundary, controller, dan entity.


(59)

Analisis kelas dilakukan pada setiap use case. Setiap use case dicari kelas analisisnya sehingga dapat menentukan kebutuhan kelas. Hasil analisis kelas dapat dilihat pada lampiran 3 halaman 110.

3.5.5 Diagram Kelas

Gambar 3.11 dan 3.12 adalah diagram kelas dari sistem yang akan dibangun. Antara masing – masing kelas memiliki hubungan asosiasi dengan kelas yang lain. Relasi antar kelas ditunjukan dalam Gambar 3.11 maupun 3.12. Gambar 3.11 merupakan diagram kelas Travice Web Server. Sedangkan Gambar 3.12 merupakan diagram kelas Travice mobile.

<<Boundary>> Form_Jalur <<Boundary>> Form_Terminal <<Boundary>> Form_Trayek <<Boundary>> Form_Login <<Entity>> Terminal <<Boundary>> Form_Edit_Termin al <<Entity>> Jalur <<Entity>> Trayek <<Boundary>> Form_Edit_Trayek <<Boundary>> Form_Edit_Jalur <<Entity>> Admin <<Controler>> Simpan_Terminal _control <<Controller>> Edit_Jalur_control er <<Controler>> Hapus_Terminal_ controler <<Controler>> Simpan_Jalur_con trol <<Controler>> Edit_Jalur_control er <<Controler>> Hapus_Jalur_cont roler <<Controler>> Simpan_Terminal _control <<Controller>> Edit_Jalur_control er <<Controler>> Hapus_Terminal_ controler 1 * 1 * 1 * 1* 1 * 1 * 1 * 1

* * 1

1 *


(60)

<<Entity>> Edge <<Entity>> DFS <<Entity>> Graph <<Entity>>

Rute <<Entity>>Stack <<Entity>>Vertex

1* 1 *

1 * 1 * 1 * <<Boundary>> Main_Ku <<Entity>> ClientToServer <<Boundary>> Menu_Utama <<Boundary>> User <<Boundary>> PhpLogin <<Entity>> Sorting <<Boundary>> MapActivity <<Boundary>> MapOverlay <<Controler>> Logindb <<Boundary>> Form_admin <<Boundary>> Tambah_terminal <<Boundary>> AksesServerActivit y <<Boundary>> Ubah_terminal <<Controler>> servis <<Entityr>> terminal 1 * 1

* Kelas- kelas PHP

Kelas-kelas Android

Gambar 3.12 Diagram kelas Travice mobile

3.5.6 Desain Basis Data

Perancangan diagram E-R menggambarkan relasi antar entitas (entity) yang digunakan untuk sistem.


(61)

Gambar 3.13 ERD Sistem

3.5.7 Perancangan Basis Data

Dari tabel – tabel yang terbentuk selanjutnya penulis akan merancang struktur data dari masing – masing tabel :

1. Tabel Terminal

Tabel 3.3 Struktur tabel terminal

Nama Field Tipe Ukuran

id_terminal(PK) int 11

nama_terminal varchar 50

lattitude Double -

longtitude Double -

kota int 11


(62)

Tabel 3.4 Struktur tabel Jalur

3. Struktur tabel PO_Bus

Tabel 3.5 Struktur tabel PO_Bus

4. Struktur tabel Trayek

Tabel 3.6 Struktur tabel Trayek

Nama Field Tipe Ukuran

id_jalur (PK) int 11

terminal_awal int 11

terminal_akir int 11

jarak double -

Nama Field Tipe Ukuran

id_PO (PK) int 11

Nama_PO varchar 100

Nama Field Tipe Ukuran

id_trayek (PK) int 11

Id_jalur int 11

Id_PO int 11


(63)

3.6 Model Desain

Pada desain antarmuka sistem ini akan ditampilkan desain dari tiap form

yang akan dibentuk. Desain antarmuka akan dijelaskan lebih lengkap di lampiran 4 halaman 135. Sedangkan antarmuka implementasi usecase lampiran 5 hal 143.

3.7 Model Pengujian

Pada bagian pengujian akan memperlihatkan jalur yang terdapat dalam suatun trayek. Jalur – jalur yang ada akan meberikan informasi mengenai rute yang dapat di pilih oleh user dalam berkendara dengan mempertimbangkan biaya, kendaraan, dan jumlah perhentian (terminal – terminal yang dilewati).

Harga_km Double

Jenis Enum(‘1’,’2’ ,’3’,’4’)

Jam_brkt Varchar 50


(64)

45

BAB IV

IMPLEMENTASI DAN ANALISIS SISTEM

4.1 Tahap Implementasi

Penelitian ini telah di implemetasikan untuk menjadi sebuah aplikasi dengan tahap-tahap seperti berikut :

4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak

Perangkat keras yang dipakai untuk membangun sistem adalah sebagai berikut: Processor : Centrino2GHz

Memori : 3GB

Hard Disk : 250 GB

Perangkat lunak yang dipakai untuk membangun sistem adalah sebagai berikut: Editor program : Eclipse Helios dan Netbeans 6.5

DBMS : MySql 5.0

4.1.2 Implementasi Diagram Kelas

Program dibangun dengan berbasis orientasi objek, sehingga dalam implementasinya dibutuhkan kelas-kelas untuk mendefinisikan objek-objek


(65)

yang akan dipakai. Adapun kelas-kelas yang telah terbentuk akan dijelaskan di lampiran 6 halaman 158.

4.2 Pengujian

Tahap akhir dari penelitian ini adalah pengujian sistem. Sistem ini dibangun memanfaatkan Eclipse maupun Netbeans 6.5. Sistem ini dapat diakses secara langsung apabila terdapat koneksi internet. Analisis sistem akan dibagi ke dalam beberapa bagian, yaitu penyelesaian rumusan masalah, pengukuran kinerja sistem, kelebihan, serta kekurangan sistem yang telah dibangun. Pengujian ini berdasar pada jumlah terminal yang ada, jumlah jalur, dan jumlah PO. Jumlah terminal yang diperhitungkan pada skripsi ini adalah 11 terminal. Jumlah jalur yang diperhitungkan pada skripsi ini adalah 33 jalur. Jumlah PO bus yang diperhitungakan pada skripsi ini adalah 12.

4.2.1 Penyelesaian Rumusan Masalah


(66)

Terminal Prambanan Bandara Adi Sucipto Malioboro Terminal Condong-Catur Terminal Jombor Terminal Giwangan Terminal Tirtonadi (SOLO) Terminal Penggung (Klaten) Terminal Terboyo (SEMARANG) Terminal Tidar (Magelang) Antar Jaya, Langsung Jaya

40KM (Rp. 4800)

Patas(EKA, MIRA) (Rp. 12000)

Antar Jaya, Langsung Jaya 25KM (Rp.3000) Nusantara, Ramayana 62KM (Rp.7440) Nusantara, Ramayana 76KM (Rp. 9120) Patas(Nusantara, Ramayana (Rp. 35.000) Trans Jogja Trans Jogja (Rp. 3000 tiap kali naik)

2A

Trans Jogja (Rp. 3000 tiap kali naik) 3A

3A 10KM

Trans Jogja (Rp. 3000 tiap kali naik) Trans Jogja

(Rp. 3000 tiap kali naik)

Trans Jogja (Rp. 3000 tiap kali naik)

Trans Jogja (Rp. 3000 tiap kali naik) Trans Jogja

(Rp. 3000 tiap kali naik)

Trans Jogja (Rp. 3000 tiap kali naik)

Terminal Tingkir (SALATIGA) AKAP AKAP Sumber Kencono 57KM (Rp 6840) Sumber Kencono 52KM (Rp. 6240) Eksekutif PATAS(Safari, Rajawali Rp. 20000)

Pada bagian ini akan diambil 3 contoh kasus yaitu dari Malioboro menuju Terminal Giwangan (AKDP), Terminal Giwangan menuju Tirtonadi(AKAP), dan Malioboro menuju Terminal Tirtonadi(AKDP dilanjutkan AKAP).


(67)

Pada graph yang terbentuk terdapat beberapa asumsi dasar tentang penentuan harga. Untuk harga bus AKAP kelas Ekonomi per km dihitung sebesar Rp.120 (menggunakan harga rata-rata dari pemerintah yaitu batas atas Rp.139 dan batas bawah Rp.86). Untuk harga Trans Jogja sekali menggunakan Trans biayanya flat Rp.3000. Untuk bus Patas tergantung dari PO Bus tersebut, tapi pada skripsi ini menggunakan harga rata-rata dari tiap-tiap PO. Untuk penghitungan biaya yang diperlukan adalah merupakan hasil dari jarak dikalikan dengan harga per/Km(untuk AKAP Ekonomi). Untuk Trans tiap kali naik sebesar 3000(jauh dekat sama saja). Untuk AKAP Patas dihitung berdasar terminal ke terminal. Dalam sistem menggunakan kode jenis yang bertipe enum untuk kode trans 2, AKAP ekonomi 1, AKAP Patas 4. Kode ini digunkan untuk penghitungan biaya total.

Daftar Terminal yang ada :

id nama_terminal nama_kota longitude latitude

1 Jombor Yogyakarta 110,36 -7,74

2 Terminal Giwangan Yogyakarta 110,39 -7,83

3

Terminal Condong

Catur Yogyakarta 110,39 -7,73

4 Shelter Prambanan Yogyakarta 110,48 -7,75

6 Malioboro Yogyakarta 110,36 -7,79

17 Terminal Tirtonadi Solo 110,82 -7,55

18 Terminal Terboyo Semarang 110,39 -6,95

19 Terminal Tidar Magelang 110,21 -7,43

22 Terminal Tingkir Salatiga 110,5 -7,31

23 Bandara Adi Sucipto Yogyakarta 110,42 -7,79


(68)

Daftar Jalur yang ada :

id_jalur jarak terminal_awal terminal_akir

69 11 Shelter Prambanan Bandara Adi Sucipto 70 11 Bandara Adi Sucipto Shelter Prambanan 71 9 Bandara Adi Sucipto Malioboro

72 9 Malioboro Bandara Adi Sucipto

73 10 Bandara Adi Sucipto Terminal Giwangan 74 12 Bandara Adi Sucipto Terminal Condong Catur 75 12 Terminal Condong Catur Bandara Adi Sucipto 76 10 Terminal Condong Catur Malioboro

77 10 Malioboro Terminal Condong Catur

78 6 Jombor Terminal Condong Catur

79 6 Terminal Condong Catur Jombor

80 7 Jombor Malioboro

81 7 Malioboro Terminal Giwangan

82 17 Terminal Giwangan Terminal Condong Catur 83 40 Terminal Giwangan Terminal Penggung 84 40 Terminal Penggung Terminal Giwangan 85 25 Terminal Penggung Terminal Tirtonadi 86 25 Terminal Tirtonadi Terminal Penggung 87 109 Terminal Tirtonadi Terminal Terboyo 88 109 Terminal Terboyo Terminal Tirtonadi 89 65 Terminal Giwangan Terminal Tirtonadi 90 65 Terminal Tirtonadi Terminal Giwangan 91 138 Terminal Giwangan Terminal Terboyo 92 138 Terminal Terboyo Terminal Giwangan 93 62 Terminal Giwangan Terminal Tidar 94 62 Terminal Tidar Terminal Giwangan 95 76 Terminal Terboyo Terminal Tidar 96 76 Terminal Tidar Terminal Terboyo 97 57 Terminal Terboyo Terminal Tingkir 98 57 Terminal Tingkir Terminal Terboyo 99 52 Terminal Tingkir Terminal Tirtonadi 100 52 Terminal Tirtonadi Terminal Tingkir 101 10 Terminal Giwangan Bandara Adi Sucipto


(69)

50

id_trayek terminal_awal terminal_akir nama_PO id_jalur id_PO nama_trayek harga_km jenis

6 Bandara Adi Sucipto Shelter Prambanan Trans 70 4 Trans 3000 2

7 Shelter Prambanan Bandara Adi Sucipto Trans 69 4 Trans 3000 2

9 Bandara Adi Sucipto Malioboro Trans 71 4 Trans 3000 2

10 Malioboro Bandara Adi Sucipto Trans 72 4 Trans 3000 2

11

Terminal Condong

Catur Bandara Adi Sucipto Trans 75 4 Trans 3000 2

12 Bandara Adi Sucipto

Terminal Condong

Catur Trans 74 4 Trans 3000 2

13

Terminal Condong

Catur Malioboro Trans 76 4 Trans 3000 2

14 Malioboro

Terminal Condong

Catur Trans 77 4 Trans 3000 2

15

Terminal Condong

Catur Jombor Trans 79 4 Trans 3000 2

16 Jombor

Terminal Condong

Catur Trans 78 4 Trans 3000 2

17 Bandara Adi Sucipto Terminal Giwangan Trans 73 4 Trans 3000 2

18 Terminal Giwangan Bandara Adi Sucipto Trans 101 4 Trans 3000 2

19 Malioboro Terminal Giwangan Trans 81 4 Trans 3000 2

20 Terminal Giwangan

Terminal Condong

Catur Trans 82 4 Trans 3000 2

21 Jombor Malioboro Trans 80 4 Trans 3000 2

59 Terminal Giwangan Terminal Penggung Antar Jaya 83 11 AKAP 120 1

61 Terminal Giwangan Terminal Penggung Langsung Jaya 83 12 AKAP 120 1

62 Terminal Penggung Terminal Giwangan Langsung Jaya 84 12 AKAP 120 1

63 Terminal Penggung Terminal Giwangan Antar Jaya 84 11 AKAP 120 1

65 Terminal Penggung Terminal Tirtonadi Antar Jaya 85 11 AKAP 120 1

66 Terminal Tirtonadi Terminal Penggung Antar Jaya 86 11 AKAP 120 1

67 Terminal Tirtonadi Terminal Penggung Langsung Jaya 86 12 AKAP 120 1

69 Terminal Penggung Terminal Tirtonadi Langsung Jaya 85 12 AKAP 120 1


(70)

73 Terminal Tirtonadi Terminal Giwangan Mira (Patas) 90 5 AKAP 12000 4 74 Terminal Tirtonadi Terminal Tingkir

Sumber

Kencono 100 13 AKAP 120 1

75 Terminal Tingkir Terminal Tirtonadi

Sumber

Kencono 99 13 AKAP 120 1

76 Terminal Tingkir Terminal Terboyo

Sumber

Kencono 98 13 AKAP 120 1

77 Terminal Terboyo Terminal Tingkir

Sumber

Kencono 97 13 AKAP 120 1

78 Terminal Tirtonadi Terminal Terboyo Safari (Patas) 87 9 AKAP 20000 4 79 Terminal Terboyo Terminal Tirtonadi Safari (Patas) 88 9 AKAP 20000 4 80 Terminal Tirtonadi Terminal Terboyo

Rajawali

(Patas) 87 10 AKAP 20000 4

81 Terminal Terboyo Terminal Tirtonadi

Rajawali

(Patas) 88 10 AKAP 20000 4

82 Terminal Giwangan Terminal Terboyo

Nusantara

(Patas) 91 8 AKAP 35000 4

83 Terminal Terboyo Terminal Giwangan

Nusantara

(Patas) 92 8 AKAP 35000 4

84 Terminal Terboyo Terminal Giwangan

Ramayana

(Patas) 92 2 AKAP 35000 4

85 Terminal Giwangan Terminal Terboyo

Ramayana

(Patas) 91 2 AKAP 35000 4

86 Terminal Terboyo Terminal Tidar Nusantara 95 7 AKAP 120 1

87 Terminal Tidar Terminal Terboyo Nusantara 96 7 AKAP 120 1

88 Terminal Terboyo Terminal Tidar Ramayana 95 6 AKAP 120 1

89 Terminal Tidar Terminal Terboyo Ramayana 96 6 AKAP 120 1

90 Terminal Giwangan Terminal Tidar Nusantara 93 7 AKAP 120 1

91 Terminal Tidar Terminal Giwangan Nusantara 94 7 AKAP 120 1

92 Terminal Giwangan Terminal Tidar Ramayana 93 6 AKAP 120 1

93 Terminal Tidar Terminal Giwangan Ramayana 94 6 AKAP 120 1


(71)

No. Terminal Awal – Terminal Tujuan

Hasil Sistem Hasil Perhitungan manual Sesuai/ Tidak Sesuai 1. Malioboro –

Teminal Giwangan

1. Malioboro - Terminal Giwangan dengan menggunakan Trans (berangkat 08.00 – tiba 09.00 atau berangkat 08.15 – tiba 09.15) seharga 3000 dengan total harga terendah 3000

2. Malioboro – Bandara Adisucipto – Terminal Giwangan dengan menggunakan Trans(berangkat 08.00 – tiba 09.00 atau berangkat 08.15 –tiba 09.15) seharga 3000 dengan total harga terendah 3000

3. Malioboro – Terminal Condong Catur –

Penelusuran dilakukan

menggunakn teknik preorder : sehingga diperoleh kemungkinan – kemungkinan sebagai berikut : 1. Malioboro – Bandara Adi

Sucipto – Terminal Giwangan 2. Malioboro - Terminal Condong

Catur – Bandara Adi Sucipto – Terminal Giwangan

3. Malioboro – Terminal Giwangan Rute yang ditemukan sesuai. Rekomendasi pada sistem berdasar jumlah terminal yang dikunjungi. Semakin sedikit


(72)

dengan menggunakan Trans(Berangkat 07.30 – tiba 09.00 atau berangkat 07.45 – tiba 09.15) seharga 3000 dengan total harga terendah 3000

berdasarkan pada index node, dalam skripsi ini id jalur. Terdapat perbedaan urutan antara hasil perhitungan manual. Untuk perhitungan manual rute pertama yang ditemukan adalah urutan pertama. Sedangkan pada sistem urutan pertama rekomendasi

berdasar pada jumlah terminal yang dikunjungi. Semakin sedikit

terminal yang dilalui semakin rute tersebut berada pada puncak rekomendasi. dikunjungi, semakin berada pada puncak rekomendasi.

2. Terminal Giwangan – Terminal Terboyo

1. Terminal Giwangan – Terminal Terboyo dengan menggunakan Nusantara (Patas) (Berangkat 09.15 – tiba 12.15 atau Berangkat 09.45 – tiba 12.45) seharga 35000 atau Ramayana (Patas) (Berangkat

Penelusuran dilakukan

menggunakn teknik preorder : sehingga diperoleh kemungkinan – kemungkinan sebagai berikut :

1. Terminal Giwangan –

Rute yang ditemukan sesuai. Rekomendasi pada sistem


(73)

tiba 12.45) seharga 35000 dengan total harga terendah.

2. Terminal Giwangan – Terminal Tirtonadi dengan menggunakan Eka(Patas)

(Berangkat 09.15 –Tiba 10.45 atau Berangkat 09.45 – Tiba 11.15) seharga 12000 atau Mira(Patas) (Berangkat 09.15 –Tiba 10.45 atau Berangkat 09.45 – Tiba 11.15) seharga 12000 dan harus berganti PO diterminal ini untuk menuju - Terminal Terboyo dengan menggunakan Safari(Patas) (Berangkat 10.45 – Tiba 12.15 atau Berangkat 11.15 – Tiba 12.45)seharga 20000 atau

Rajawali(Patas)(Berangkat 10.45 – Tiba 12.15 atau Berangkat 11.15 – Tiba 12.45) seharga 20000 dengan total harga

terendah 32000

Terminal Tirtonadi dengan menggunakan Antar Jaya seharga 7800 atau Langsung Jaya seharga 7800 dan harus berganti PO diterminal ini untuk menuju – Terminal Terboyo dengan

menggunakan Safari(Patas) seharga 20000 atau

Rajawali(Patas) seharga 20000 dengan harga total terendah adalah 27800 2. Terminal Giwangan –

Terminal Penggung – Terminal Tirtonadi dengan menggunakan Antar Jaya seharga 7800 atau Langsung Jaya seharga 7800 dan harus

jumlah terminal yang dikunjungi. Semakin sedikit terminal yang dikunjungi, semakin berada pada puncak rekomendasi.


(74)

Terminal Terboyo dengan menggunakan Nusantara (Berangkat 09.15 – Tiba 12.15 atau Berangkat 09.45 – Tiba 12.45) seharga 16560 atau Ramayana (Berangkat 09.15 – Tiba 12.15 atau Berangkat 09.45 – Tiba 12.45) seharga 16560 dengan total harga 16560

4. Terminal Giwangan – Terminal Tirtonadi dengan menggunakan Eka(Patas)

(Berangkat 09.15 – tiba 10.45 atau Berangkat 09.45 – tiba11.15) seharga 12000 atau Mira(Patas) (Berangkat 09.15 – tiba 10.45 atau Berangkat 09.45 – tiba11.15) seharga 12000 dan berganti PO diterminal ini untuk menuju – Terminal Tingkir – Terminal Terboyo dengan menggunakan Sumber Kencono (Berangkat 10.45 – tiba 12.15 atau

untuk menuju – Terminal Tingkir - Terminal Terboyo dengan menggunakan Smber Kencono seharga 13080 dengan total harga terendah 20880

3. Terminal Giwangan – Terminal Tirtonadi dengan menggunakan Eka(Patas) seharga 12000 atau

Mira(Patas) seharga 12000 dan harus berganti PO diterminal ini untuk menuju - Terminal Terboyo dengan menggunakan Safari(Patas) seharga 20000 atau

Rajawali(Patas) seharga 20000 dengan total harga


(75)

13080 dengan total harga terendah 25080 5. Terminal Giwangan – Terminal

Penggung – Terminal Tirtonadi dengan menggunakan Antar Jaya(Berangkat 09.15 – Tiba 10.45 atau Berangkat 09.45 –Tiba 11.15) seharga 7800 atau

Langsung Jaya(Berangkat 09.15 – Tiba 10.45 atau Berangkat 09.45 –Tiba 11.15) seharga 7800 dan harus berganti PO diterminal ini untuk menuju – Terminal Terboyo dengan menggunakan

Safari(Patas) (Berangkat 10.45 – Tiba 12.15 atau berangkat 11.15 – Tiba 12.45) seharga 20000 atau Rajawali(Patas) (Berangkat 10.45 – Tiba 12.15 atau berangkat 11.15 – Tiba 12.45) seharga 20000 dengan harga total terendah adalah 27800

4. Terminal Giwangan – Terminal Tirtonadi dengan menggunakan Eka(Patas) seharga 12000 atau

Mira(Patas) seharga 12000 dan berganti PO diterminal ini untuk menuju –

Terminal Tingkir – Terminal Terboyo dengan menggunakan Sumber Kencono seharga 13080 dengan total harga terendah 25080

5. Terminal Giwangan – Terminal Terboyo dengan menggunakan Nusantara (Patas) seharga 35000 atau Ramayana (Patas) seharga


(76)

Penggung – Terminal Tirtonadi dengan menggunakan Antar Jaya(Berangkat 09.15 – Tiba 10.45 atau Berangkat 09.45 –Tiba 11.15) seharga 7800 atau

Langsung Jaya (Berangkat 09.15 – Tiba 10.45 atau Berangkat 09.45 –Tiba 11.15) seharga 7800 dan harus berganti PO diterminal ini untuk menuju – Terminal Tingkir - Terminal Terboyo dengan menggunakan Smber Kencono(Berangkat 10.45 – Tiba 12.15 atau berangkat 11.15 – Tiba 12.45) seharga 13080 dengan total harga terendah 20880

terendah.

6. Terminal Giwangan – Terminal Tidar – Terminal Terboyo dengan

menggunakan Nusantara seharga 16560 atau Ramayana seharga 16560 dengan total harga 16560 Penelusuran secara preorder berdasarkan pada index node, dalam skripsi ini id jalur. Terdapat perbedaan urutan antara hasil perhitungan manual. Perbedaan tersebut dikarenakan untuk penyusunan rekomendasinya berdasar jumlah terminal yang dikunjungi. Semakin sedikit


(77)

sistem akan menampilkannya lebih dulu.

3. Malioboro – Terminal Terboyo

1. Malioboro - Terminal Giwangan dengan menggunakan Trans (Berangkat 08.00 – tiba 09.00 atau Berangkat 08.15 – tiba 09.15) seharga 3000 dan harus berganti PO diterminal ini untuk menuju –

Terminal Terboyo dengan menggunakan Nusantara(Patas) (Berangkat 09.15 – Tiba 12.15 atau berangkat 09.45 – tiba 12.45) seharga 35000 atau

Ramayana(Patas) (Berangkat 09.15 – Tiba 12.15 atau berangkat 09.45 – tiba 12.45) seharga 35000 dengan total harga terendah 38000

2. Malioboro - Terminal Giwangan dengan menggunakan Trans(Berangkat 08.00 – tiba 09.00 atau bernagkat 08.15 – tiba

Penelusuran dilakukan

menggunakn teknik preorder : sehingga diperoleh kemungkinan – kemungkinan sebagai berikut :

1. Malioboro - Terminal Giwangan dengan

menggunakan Trans seharga 3000 dan harus berganti PO diterminal ini untuk menuju – Terminal Penggung – Terminal Tirtonadi dengan menggunakan Antar Jaya seharga 7800 atau Langsung Jaya seharga 7800 dan harus berganti PO diterminal ini untuk menuju– Terminal

Rute yang ditemukan sesuai. Rekomendasi pada sistem berdasar jumlah terminal yang dikunjungi. Semakin sedikit terminal yang dikunjungi, semakin berada pada puncak


(78)

PO diterminal ini untuk menuju – Terminal Tirtonadi dengan Eka

(Patas)(Berangkat 09.15 – tiba 10.45 atau Berangkat 09.45 – Tiba 11.15) seharga 12000 atau Mira(Patas) (Berangkat 09.15 – tiba 10.45 atau Berangkat 09.45 – Tiba 11.15) seharga 12000 harus berganti PO diterminal ini untuk menuju – Terminal Terboyo menggunakan Safari(Patas) (Berangkat 10.45 – tiba 12.15 atau Berangkat 11.15 – tiba 12.45) seharga 20000 atau Rajawali(Patas) (Berangkat 10.45 – tiba 12.15 atau Berangkat 11.15 – tiba 12.45) seharga 20000 dengan total harga terendah 35000

3. Malioboro – Bandara Adisucipto - Terminal Giwangan dengan

menggunakan Trans (Berangkat 08.00 –

dengan menggunakan Sumber Kencono seharga 13080 dengan total terndah 23880.

2. Malioboro – Bandara Adisucipto - Terminal Giwangan dengan

menggunakan Trans seharga 3000 dan harus berganti PO diterminal ini untuk menuju – Terminal Penggung – Terminal Tirtonadi dengan menggunakan Antar Jaya 7800 atau Langsung Jaya seharga 7800 dan harus berganti PO diterminal ini untuk menuju – Terminal Terboyo dengan


(1)

+getDestination()

Tujuan : memberi informasi arah dari suatu jalur Algoritma : mengembalikan nilai dari arah suatu jalur Listing :

public Vertex getDestination() {

returndest; }

Graph Graph() <<Konstruktor>>

+List<Vertex> vertices;

+ addVertex(String, String,Double, Double)

+addEdge(String, String, double) +getDetail(Vertex, Vertex) +resetPencarian()

: void : void :void

: List<HashMap<String,String>> : void

+addVertex(String, String,Double, Double) Algoritma :

1. buat parameter String label, String lokasi, double lat, double longti 2. Masukan nilai semua parameter tersebut kedalam vertices(list vertex) Listing :

publicvoid addVertex(String label, String lokasi, double lat, double longti) {

vertices.add(new Vertex(label, lokasi, lat, longti)); }

+addEdge(String, String, double) Tujuan : menambah jalur pada graph Algoritma :

1. Buat obyek startNode 2. Buat obyek edge1

3. Isi obyek startNode dengan edge1 untuk mendapat informasi arah dan id dari suatu jalur

Listing :

Vertex startNode = getVertex(label1);

Vertex destination = getVertex(label2);

if (startNode == null || destination == null) {

System.err.println("node asal atau node tujuan tidak ditemukan. pastikan anda "+ "menginputkan nama node yang benar");

return; }

Edge edge1 = new Edge(destination, id); startNode.addEdge(edge1);


(2)

+getDetail(Vertex, Vertex)

Tujuan : mendapat nilai harga dan jalur dari suatu vertex(terminal) Algoritma :

1. Dapatkan harga untuk masing – masing jalur dari suatu terminal(vertex)

2. Buat obyek temp untuk menampung harga dan id suatu jalur

3. Lakukan perulangan untuk semua jalur yang ada dalam suatu terminal 4. Mengembalikan nilai temp untuk jalur tertentu

Listing :

String url = "http://10.0.2.2/android/terminal.php?ct=SEL_harga&id_jalur=";

List<HashMap<String, String>> temp = new ArrayList<HashMap<String, String>>();

for (Edge e : A.getEdges()) {

if (e.getDestination().getLabel().equals(B.getLabel())) { JSONParser jParser = new JSONParser();

JSONObject json = jParser.AmbilJson(url + e.getId()); try {

JSONArray array = json.getJSONArray("harga");

for (int i = 0; i < array.length(); i++) { JSONObject ar = array.getJSONObject(i); String namaPo = ar.getString("nama_po"); String jenis = ar.getString("jenis"); String harga = ar.getString("harga");

HashMap<String, String> map = new HashMap<String, String>(); map.put("nama_po", namaPo);

map.put("jenis", jenis); map.put("harga", harga); temp.add(map);

}

} catch (JSONException ex) {

// TODO Auto-generated catch block

ex.printStackTrace(); }

} }

return temp;

+resetPencarian()

Tujuan : melakukan pengaturan ulang pada pencarian agar pencarian sebelumnya tidak diperhitungakan.

Algoritma :

1. lakukan perulangan sebanyak jumlah vertex

2. buat obyek v bertipe Vertex. Obyek v akan menyimpan data vertex yang ada. 3. buat perulangan sejumlah vertex yang ada

4. buat perulangan untuk merubah semua daftar jalur yang sudah dikunjungi menjadi false

5. hapus data pada lokalrute Listing :


(3)

Vertex v = vertices.get(i);

for (int j = 0; j < v.getEdges().size(); j++) { v.getEdge(j).setSudahDikunjungi(false); }

v.getLokalRute().clear(); }

Stack Stack <<Konstruktor>>

- List<Vertex> data; +Push(Vertex) +Pop()

+Peek()

: void : vertex :vertex +Push()

Tujuan : memasukan data ke dalam stack Algoritma :

1. Buat atribut List<Vertex> data; 2. Tambahan data kedalam List Listing :

private List<Vertex> data;

data.add(p);

+pop()

Tujuan : mengeluarkan data dari stack Algoritma : keluarkan data dari stack Listing :

Vertex hasil = data.get(data.size() - 1);

data.remove(data.size() - 1);

return hasil;

+peek()

Tujuan : mendapatkan data posisi teratas dari stack Algoritma : cari posisi teratas dari stack

Listing :

return data.get(data.size() - 1);

Vertex Vertex <<Konstruktor>>

Vertex(String, String, double, double)<<Konstruktor>> Vertex(String, String)<<Konstruktor>>

- List<Edge> edges; -String label;

-String lokasi;


(4)

-double Latitude; -double Longtitude; +addEdge(Edge) +addLokalRute(Rute) +getEdges()

+getLokalRute()

:void : void

: List<Edge> : List<Rute> +addEdge(Edge)

Tujuan : menambahkan jalur yang ada Algoritma :

1. Buat atribut edges bertipe List 2. Masukan jalur ke edges Listing :

List<Edge> edges;

edges.add(edge);

+addLokalRute(Rute)

Tujuan : menambahkan lokalrute dari sutu jalur yang menuju tujuan pencarian Algoritma : menambahkan lokalRute dari suatu jalur

Listing :

publicvoid addLokalRute(Rute rute) {

lokalRute.add(rute); }

+getEdge()

Tujuan : mendapat daftar jalur yang ada Algoritma : membuat daftar jalur yang ada Listing :

public List<Edge> getEdges() {

returnedges; }

+getLokalRute()

Tujuan : mendapatkan informasi lokalRute suatu jalur Algoritma : membuat daftar lokalRute yang ada Listing :

public List<Rute> getLokalRute() {

returnlokalRute; }


(5)

vii

IMPLEMENTASI ALGORITMA DEPTH FIRST SEARCH(DFS)

PADA RUTE BUS AKAP AKDP

BERBASIS ANDROID

ABSTRAK

Bus umum merupakan salah satu alat transportasi darat yang masih banyak digunakan oleh masyarakat. Bus umum memiliki jalur atau rute tertentu dalam mencapai suatu tempat. Masalah yang dihadapi oleh penumpang adalah bagaimana menentukan rute yang singkat dan murah. Penumpang bus perlu mempertimbangkan jalur yang dilalui oleh bus, untuk mencari jarak terpendek dalam mencapai suatu tempat. Pemilihan jalur yang tepat dapat meringankan biaya transportasi. Skripsi ini menyediakan informasi tentang rekomendasi rute / jalur beserta harga yang diperlukan. Sistem ini dikembangkan berbasis mobile dan berbasis web. Aplikasi mobile

ditujukan untuk penumpang bus yang akan mencari jalur yang ada dari suatu terminal ke terminal lain

Dalam pencarian semua kemungkinan jalur yang ada, digunakan algoritma Depth First

Search (DFS). DFS merupakan salah satu algoritma yang dapat digunakan untuk memilih semua

kemungkinan jalur. Kelebihan algoritma ini dapat menampilkan berbagai alternatif jalur yang ada, saat tersedia banyak kemungkinan. Data yang dipergunakan adalah data yang diperoleh dari Dinas Hubkominfo (Dinas Perhubungan, Komunikasi dan Informatika). Hasil perhitungan DFS dapat divisualisasikan dalam peta yang terintegrasi dengan Google Map.

Rekomendasi yang diberikan sistem disusun berdasar jumlah terminal yang dilalui oleh suatu bus tertentu berdasar jalur yang ada. Semakin sedikit jumlah terminal yang dilalui maka akan berada pada puncak rekomendasi. Jumlah rekomendasi berbanding lurus dengan waktu yang diperlukan sistem dalam mendapatkan semua kemungkinan jalur yang ada dari suatu terminal ke terminal lain. Proses pengujian sistem adalah dengan mencocokan hasil perhitungan manual dengan hasil yang ditampilkan oleh sistem. Berdasarkan pengujian tersebut jalur yang ditemukan oleh sistem sama dengan hasil perhitungan manual.


(6)

viii

THE ANDROID-BASED IMPLEMENTATION

OF DEPTH FIRST SEARCH (DFS) ALGORITHM

ON AKAP AKDP BUS ROUTES

ABSTRACT

A public bus is one of road transportations, which is still widely used by the societies. A public bus has certain traffic lanes or routes to reach a destination. The problem faced by the passengers is how to determine the brief and cheap route. They need to consider the traffic lanes passed by the bus and to look for the shortest distance in order to reach a destination. Choosing the proper traffic lane can diminish the transportation cost. This research provides some information about the recommendation of bus routes/traffic lanes and the costs needed. The system was developed based on mobile and web. Mobile application is targeted to the bus passengers who will look for the traffic lanes from one bus station to another.

In searching for all the possible traffic lanes, the Depth First Search (DFS) algorithm is used. DFS is one of algorithms that can be used to choose the shortest route among all the possible traffic lanes. The strength of this algorithm is the ability to present various route alternatives where there are many possibilities of routes. The data used is the one obtained from Dinas Hubkominfo (Dinas Perhubungan, Komunikasi, dan Informatika). The calculation result of DFS can be visualized on a map that is integrated with Google Map.

The recommendation given by the system is arranged based on the numbers of stations passed by certain buses according to the traffic lanes. The lower the numbers of the bus stations that are passed, the higher the possibility to reach the top of recommendation. The numbers of recommendation are proportional to the time needed by the system in obtaining all possible routes from one station to another. The system examination process was conducted by comparing the result of the manual calculation to the result presented by the system. Based on the examination, the routes found by the system matched those in manual calculation.