IMPLEMENTASI ALGORITMA DEPTH FIRST SEARCH(DFS) PADA RUTE BUS AKAP AKDP BERBASIS ANDROID

  

IMPLEMENTASI ALGORITMA DEPTH FIRST SEARCH(DFS)

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

  THE ANDROID-BASED IMPLEMENTATION 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

HALAMAN PERSEMBAHAN

  Skripsi ini saya persembahkan untuk Tuhan Yesus Kristus, Keluarga, Sahabat, dan Teman –Teman

PERNYATAAN KEASLIAN KARYA

  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

  Fransisca Endar Subagyo

  

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

  

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. Key Words: Depth First Search (DFS), bus routes, mobile application, web

  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,

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

  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, Fransisca Endar Subagyo

  

DAFTAR ISI

   HALAMAN PENGESAHAN ........................................................................................................ iv LEMBAR PERNYATAAN ........................................................................................................... ix

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  1.1.4 Hapus Data Terminal ............................................................................................... 84

  1.2.1 Login ........................................................................................................................ 89

  ................................................................................................................ 89

  1.2 Travice mobile

  1.1.11 Logout ...................................................................................................................... 89

  1.1.10 Hapus Data Trayek .................................................................................................. 88

  1.1.9 Ubah Data Trayek .................................................................................................... 87

  1.1.8 Tambah Data Trayek ............................................................................................... 86

  1.1.7 Hapus Data Jalur ...................................................................................................... 82

  1.1.6 Ubah Data Jalur ....................................................................................................... 85

  1.1.5 Tambah Data Jalur ................................................................................................... 84

  1.1.3 Ubah Data Terminal ................................................................................................ 83

  

  1.1.2 Tambah Data Terminal ............................................................................................ 82

  1.1.1 Login ........................................................................................................................ 81

  1.1 Travice web server .......................................................................................................... 81

   LAMPIRAN 1 ............................................................................................................................... 81

  

  

  

  

  

  

  

  1.2.2 Tambah Data Terminal ............................................................................................ 90

  LAMPIRAN 2 ............................................................................................................................... 95

  2.2.1 Login ...................................................................................................................... 105

  3.1.4 Hapus Data Terminal ............................................................................................. 114

  3.1.3 Ubah Data Terminal .............................................................................................. 113

  3.1.2 Tambah Data Terminal .......................................................................................... 111

  3.1.1 Login ...................................................................................................................... 110

  3.1 Travice web server ........................................................................................................ 110

  2.2.6 Cari Jalur................................................................................................................ 109 LAMPIRAN 3 ............................................................................................................................. 110

  2.2.5 Logout .................................................................................................................... 108

  2.2.4 Hapus Data Terminal ............................................................................................. 108

  2.2.3 Ubah Data Terminal .............................................................................................. 107

  2.2.2 Tambah Data Terminal .......................................................................................... 106

  

2.2 Travice mobile .............................................................................................................. 105

  2.1 Travice web server .......................................................................................................... 95

  2.1.11 Logout .................................................................................................................... 104

  2.1.10 Hapus Data Trayek ................................................................................................ 104

  2.1.9 Ubah Data Trayek .................................................................................................. 103

  2.1.8 Tambah Data Trayek ............................................................................................. 102

  2.1.7 Hapus Data Jalur .................................................................................................... 101

  2.1.6 Ubah Data Jalur ..................................................................................................... 100

  2.1.5 Tambah Data Jalur ................................................................................................... 99

  2.1.4 Hapus Data Terminal ............................................................................................... 98

  2.1.3 Ubah Data Terminal ................................................................................................ 97

  2.1.2 Tambah Data Terminal ............................................................................................ 96

  2.1.1 Login ........................................................................................................................ 95

  3.1.5 Tambah Data Jalur ................................................................................................. 115

  3.1.10 Hapus Data Trayek ................................................................................................ 123

  4.1.5 Tambah Data Jalur ................................................................................................. 137

  4.2.3 Ubah Terminal ....................................................................................................... 141

  4.2.2 Tambah Terminal .................................................................................................. 140

  4.2.1 Login ...................................................................................................................... 140

  4.2 Travice mobile .............................................................................................................. 140

  4.1.11 Logout .................................................................................................................... 140

  4.1.10 Hapus Data Trayek ................................................................................................ 140

  4.1.9 Ubah Data Trayek .................................................................................................. 139

  4.1.8 Tambah Data Trayek ............................................................................................. 138

  4.1.7 Hapus Data Jalur .................................................................................................... 138

  4.1.6 Ubah Data Jalur ..................................................................................................... 138

  4.1.4 Hapus Data Terminal ............................................................................................. 137

  3.1.11 Logout .................................................................................................................... 124

  4.1.3 Ubah Data Terminal .............................................................................................. 136

  4.1.2 Tambah Data Terminal .......................................................................................... 136

  4.1.1 Login ...................................................................................................................... 135

  4.1 Travice web server ........................................................................................................ 135

  3.2.6 Cari Jalur................................................................................................................ 133 LAMPIRAN 4 ............................................................................................................................. 135

  3.2.5 Logout .................................................................................................................... 132

  3.2.4 Hapus Terminal ..................................................................................................... 131

  3.2.3 Ubah Terminal ....................................................................................................... 129

  3.2.2 Tambah Terminal .................................................................................................. 128

  3.2.1 Login ...................................................................................................................... 126

  3.2 Travice mobile .............................................................................................................. 126

  4.2.4 Hapus Terminal ..................................................................................................... 142

  5.1.1 Login ...................................................................................................................... 143

  5.2 Travice mobile .............................................................................................................. 153

  6.1 Travice web server ........................................................................................................ 158

  5.2.6 Cari Jalur................................................................................................................ 157 LAMPIRAN 6 ............................................................................................................................. 158

  5.2.5 Logout .................................................................................................................... 156

  5.2.4 Hapus Terminal ..................................................................................................... 156

  5.2.3 Ubah Terminal ....................................................................................................... 155

  5.2.2 Tambah Terminal .................................................................................................. 155

  5.2.1 Login ...................................................................................................................... 154

  5.1.11 Logout .................................................................................................................... 153

  5.1.2 Tambah Data Terminal .......................................................................................... 144

  5.1.10 Hapus Data Trayek ................................................................................................ 152

  5.1.9 Ubah Data Trayek .................................................................................................. 151

  5.1.8 Tambah Data Trayek ............................................................................................. 150

  5.1.7 Hapus Data Jalur .................................................................................................... 150

  5.1.6 Ubah Data Jalur ..................................................................................................... 149

  5.1.5 Tambah Data Jalur ................................................................................................. 148

  5.1.4 Hapus Data Terminal ............................................................................................. 147

  5.1.3 Ubah Data Terminal .............................................................................................. 147

  6.2 Travice mobile .............................................................................................................. 166

  

DAFTAR GAMBAR

Gambar 2.1 Graf sederhana ........................................................................................................... 8Gambar 2.2 Graf ganda .................................................................................................................. 9 Gambar 2.3

  

  

  

Gambar 2.5 Graf G dengan empat titik dan empat sisi ............................................................... 11Gambar 2.6 Graf G dan sirkuitnya .............................................................................................. 12Gambar 2.7 Graf .......................................................................................................................... 13Gambar 2.8 Arsitektur Android ................................................................................................... 15Gambar 3.1 Gambar Graf............................................................................................................. 28 Gambar 3.2

  

  

  

  

  

Gambar 3.5 Arsitektur Sistem berbasis Web ............................................................................... 34Gambar 3.6 Arsitektur Aplikasi Sistem untuk Admin ................................................................. 35Gambar 3.7 Use Case Diagram.................................................................................................... 36Gambar 3.8 Package Kelola Data untuk Admin .......................................................................... 37 Gambar 3.9

  

  

  

  

  

Gambar 3.12 Diagram kelas Travice mobile ............................................................................... 40Gambar 3.13 ERD Sistem ............................................................................................................ 42

  

DAFTAR TABEL

Tabel 2.1 Isi Stack dalam DFS ..................................................................................................... 13 Tabel 3.1

  

Tabel 3.2 Isi Stack dalam DFS : ................................................................................................... 29Tabel 3.3 Struktur tabel terminal .................................................................................................. 42 Tabel 3.4

  

  

  

Tabel 3.6 Struktur tabel Trayek .................................................................................................... 43

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 sebuahyang digerakkan oleh ransportasi 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 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 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

  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 Memvisualisasikan jalur trasportasi bus umum yang memungkinkan untuk

  2.

  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

  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

  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

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

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

  2

  

3

  4 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.

  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)

  1 , v 2 , ...},

  Suatu graf berarah G terdiri dari himpunan titik-titik V(G) : {v

  1 , e 2 , ...}, dan suatu fungsi ψ yang mengawankan

  setiap garis dalam E(G) ke suatu pasangan berurutan titik (v

  i

  , v

  j ).

  Jika e k = (v i , v j ) adalah suatu garis dalam G, maka v i disebut titik awal e k dan v

  j

  disebut titik akhir e

  k

  . Arah garis adalah dari v

  i

  ke v j.

  Jumlah garis yang

  himpunan garis-garis E(G) : {e sedangkan jumlah garis yang menuju ke titik v , disebut derajat masuk (in

  i

  • degree ) titik v i , yang disimbolkan sebagai d (v i ).

  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].

  v2 e1 e5 v1 e4 v3 e3 e2 e7 e6 v6 e8 e9 v4 v5

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 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

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.

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 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 Pop Giwangan -

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 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

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 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 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 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

  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, menangani masukan pengguna untuk memberikan informasi dan fungsi dari map-contextualized .