Dari Dian Bab 1-v Fix.docx

  • Uploaded by: Muhammad Ridwan
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Dari Dian Bab 1-v Fix.docx as PDF for free.

More details

  • Words: 5,026
  • Pages: 44
BAB I PENDAHULUAN 1.1

Latar Belakang Di kota Yogyakarta pada bidang transportasi saat ini banyak terjadi

penumpukan kendaraan pribadi setiap harinya, terutama pada pagi dan sore hari saat jam kantor. Dapat kita lihat di_kota Yogyakarta yang merupakan kota pelajar di mana banyak terdapat kampus dan sekolah. Padahal pemerintah telah menyediakan alat transportasi berupa busway yang setiap periodenya mengalami kemajuan dan perbaikan. “Ayo naik bus, biar nggak bikin macet”. Itulah tulisan yang sengaja dipajang di_badan bus, untuk mengajak masyarakat menggunakan angkutan publik ini agar mengurangi kemacetan akibat bertumpuknya kendaraan pribadi setiap harinya (WS hendro, Jawa Pos, 2015 ). Namun dalam hal itu, para pengguna busway masih ada yang bingung dan ragu dikarenakan tidak mengetahui halte terdekat busway, terutama bagi para pendatang dari luar kota Yogyakarta. Namun apabila terdapat sebuah aplikasi berbasis mobile yang dapat diakses pada gadget yang berupa pencarian halte terdekat, alur trayek busway, jarak tempuh, dan lainnya mungkin calon penumpang akan sedikit terbantu. Algoritma Dijkstra merupakan algoritma greedy, yaitu salah satu bentuk algoritma populer dalam pemecahan persoalan yang terkait dengan masalah optimasi. (Raden Aprian Diaz Novandi, 2007). Metode melakukan memecahkan masalah dengan memandang solusi yang diperoleh sebagai keputusan yang saling terkait. Maksudnya, solusi yang terbentuk dari suatu keputusan yang bermula dari

1

2

tahapan awal, dan kemungkinan terdapat lebih dari satu solusi. Dengan metode ini didapat hasil yang optimal namun memerlukan resource yang cukup besar jika dipakai untuk pencarian yang kompleks. Dengan demikian penggunaan algoritma dijkstra dapat mencari jalur halte terdekat dan jalur busway. Dari pemikiran diatas, akan dikembangkan suatu aplikasi “let’s busway” agar dapat mempermudah pencarian rute terdekat halte yang efisien. Serta padat memberikan informasi jalur mana akan dilewati dan memberikan gambaran tentang trayek yang akan digunakan. 1.2

Rumus Masalah Berdasarkan latar belakang di atas dapat dirumuskan beberapa rumusan masalah diataranya:

1.

Bagaimana penerapan aplikasi pencari rute halte terdekat yang harus dilalui menuju landmark tertentu menggunakan algoritma dijkstra?

2.

Bagaimana membangun aplikasi berbasis mobile Les’t Busway yang melalui rute halte dan menuju landmark tertentu dengan tampilan berupa peta?

1.3

Ruang Lingkup Permasalah yang dibahas ini memiliki beberapa batasan sebagai berikut:

1.

Aplikasi digunakan untuk mencari halte bus Trans Jogja tanpa halte portabel yang beroperasi pada Daerah Istimewa Yogyakarta.

2.

Aplikasi menggunakan google map, hanya menampilkan hasil pencarian, dan dapat mengambil koordinat yang ditunjuk pengguna.

3.

Perhitungan rute terdekat menggunakan algoritma Dijkstra.

3

4.

Aplikasi harus terhubung dengan koneksi internet, Apabila tidak terhubung dengan internet. Maka tidak dapat mengakses pencarian halte.

5.

Pencarian lokasi dilakukan dengan titik awal adalah lokasi pengguna, dan titik akhir adalah lokasi halte.

6.

Data jalur yang digunakan berasal dari Dinas Perhubungan Yogyakarta.

7.

Aplikasi dapat menampilkan lokasi halte terdekat dengan posisi pengguna dengan radius 500 meter.

8. 1.4

User dapat menggunakan aplikasi tanpa melakukan registrasi. Tujuan Penelitian Berdasarkan rumusan masalah di atas maka penelitian ini bertujuan untuk:

1.

Menerapkan aplikasi pencari rute halte terdekat yang harus dilalui menuju landmark tertentu menggunakan algoritma dijkstra.

2.

Membangun aplikasi berbasis mobile Les’t Busway yang harus dilalui menuju landmark tertentu dengan tampilan berupa peta.

1.5

Manfaat Penelitian Adapun yang menjadi manfaat dari penelitian perangkat lunak ini adalah sebagai berikut:

1.

Membantu pengguna untuk menemukan lokasi Shelter Transjogja dengan lebih mudah dengan adanya peta lokasi shelter.

2.

Membantu pengguna mencari rute halte terdekat TransJogja sehingga diharapkan dapat memberikan informasi rute halte yang di tempuh.

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI 2.1

Tinjauan Pustaka Penelitian

Obyek Pencarian

Diana Okta

Pariwisata

Pugas, 2011

Kota Sawahlunto

Yonni Aris, 2012

Pencarian Taksi Pekanbaru

Bahasa

Metode

Map

Algoritma

MapServ

Dijkstra dan

er for

Astar (A*)

Windows

Algoritma

Google

PHP,

Dijkstra

Map

MySql,Java

Pemrograman

PHP, MySql, HTML

Halte Bus

Algoritma

Google

2013

Trans Yogya

Dijkstra

Map

Luthfi Fahronzi,

Pencarian rute

Algoritma

Google

PHP,

2013

terdendek

Dijkstra

Map

Java,MySql

Ginta Istiar

Halte Bus

Algoritma

Nugroho, 2016

Trans Yogya

Astar(A*)

Diusulkan, 2017

Transjogja

web

Android

PHP, MySql,

Asri Yuliana,

Yang

Platform

HTML, Java

Web

Script

Android

Java Script, OSM

HTML, PHP,

Web

dan MySql

Algoritma

Google

PHP, Java,

Dijkstra

Map

MySql

Android

Tabel 2.1. Data Beberapa Penelitian yang Sejenis Aplikasi ini akan dijalankan pada platform Android dimana pada penelitian yang dilakukan sebelumnya sudah dibuat sebuah aplikasi implementasi metode Dijkstra dengan basis Web. Aplikasi ini menggunakan Google Map sebagai penyedia peta. Pada penelitian sebelumnya peta yang digunakan merupakan peta dari Google Map.

4

5

Pada tahun 2013 telah dilakukan penelitian oleh Asri Yuliana dengan Algoritma Dijkstra Pencarian Rute Terpendek dengan aplikasi yang dibuat pada penelitian tersebut berbasis web dengan obyek berupa halte bus Trans jogja, menggunakan metode algoritma dijkstra, menggunakan Google Map, dan bahasa pemrograman berupa PHP, MySql, HTML, Java Script. Aplikasi pencarian jalur transjogja lainnya juga telah diteliti oleh Ginta Istiar Nugroho, 2016 dengan Pencarian Halte Trans Bus Yogyakarta dengan Menggunakan Open Street Maps. Aplikasi ini dibuat berbasis Web dengan metode Algoritma Astar(A*), menggunakan peta OSM dan bahasa pemrograman berupa Java Script, HTML, PHP, dan MySql. Aplikasi dengan metode serupa juga pernah dibuat oleh Diana Okta Pugas, pada jurnal tahun 2011 dengan Pencarian Rute Terpendek Menggunakan Algoritma Dijkstra dan Astar (A*) pada SIG Berbasis Web untuk Pemetaan Pariwisata Kota Sawahlunto. Aplikasi pencarian rute terpendek pada Location Base Service (LBS) yang diteliti oleh Luthfi Fahronzi 2013, dengan Aplikasi Location Based Service (LBS) Untuk Pencarian Rute Terpendek Menggunakan Algoritma Dijkstra berbasis Android. Penerapan Algoritma Dijkstra serupa juga pernah diteliti Yonni Aris pada tahun 2012, dengan Penerapan Algoritma Dijkstra Pada Aplikasi Pekanbaru Taksi Guide Pada Platform Android” yang berbasis Android. Dari beberapa penelitian di atas penelitian ini bermaksud mengembangkan aplikasi yang berbasis mobile dan terdapat layanan rute

6

terdekat dari lokasi ke user ke halte Trans Jogja dan telah terdapat fitur ganti jalur dengan metode dijkstra. 2.2

Dasar Teori 2.2.1 Trans Jogja Dan Halte Bus Trans Jogja Trans Jogja adalah sebuah sistem transportasi bus cepat, murah dan ber-AC di seputar kota Yogyakarta. Trans Jogja merupakan salah satu bagian dari program penerapan Bus Rapid Transit (BRT) yang dicanangkan Departemen Perhubungan. Trans Jogja dioperasikan pada awal bulan Maret 2008 oleh Dinas Perhubungan, Pemerintah Provinsi DIY. Pengelola Trans Jogja adalah PT. Jogja Tugu Trans, sebagai wujud konsorsium empat koperasi pengelola transportasi umum kota dah pedesaan di Yogyakarta (Koperasi Pemuda Sleman, Kopata, Aspada, dan Puskopkar) dan Perum DAMRI. Moto

pelayanannya

adalah

“Aman,

Nyaman,

Andal,

Terjangkau, dan Ramah Lingkungan”. Sistem yang menggunakan bus berukuran sedang ini menerapkan sistem tertutup, dalam arti penumpang tidak dapat memasuki bus tanpa melewati gerbang pemeriksaan. Selain itu, diterapkan sistem pembayaran yang berbedabeda : sekali jalan, tiket pelajar, dan tiket umum 16 berlangganan. Tiket ini berbeda dengan karcis bus biasa karena merupakan kartu pintar (smart card). Karcis akan diperiksa secara otomatis melalui suatu mesin yang akan membuka pintu secara otomatis. Penumpang dapat berganti bus tanpa harus membayar biaya tambahan, asalkan masih dalam satu

7

tujuan (Dishubkominfo DIY, 2011). Halte

menurut

Keputusan

Direktorat

Jenderal

Dinas

Perhubungan Tahun 1996 Tentang Pedoman Teknis Perekayasaan Tempat Pemberhentian Kendaraan Penumpang Umum adalah tempat perhentian kendaraan penumpang umum untuk menurunkan dan atau menaikkan penumpang yang dilengkapi dengan bangunan. Halte bus Trans Jogja dibuat khusus untuk pemberhentian bus Trans Jogja yang digunakan untuk menaikan atau menurunkan penumpang. Tata letak dari halte bus juga telah diatur dalam peraturan dinas perhubungan. 2.2.2 Google Maps Google maps merupakan sebuah layanan peta dunia virtual berbasis web yang disediakan oleh google. Layanan ini gratis dan dapat ditemukan di http://maps.google.com Google maps juga dapat dikembangkan dalam web yang telah kita buat pada web atau blog yang berbayar maupun gratis sekalipun dengan google maps API. Google API adalah suatu library yang berbentuk JavaScript. 2.2.3 Algoritma Dijkstra Algoritma Dijkstra merupakan algoritma yang paling sering digunakan dalam pencarian rute terpendek, sederhana penggunaannya dengan menggunakan simpul-simpul sederhana pada jaringan jalan yang tidak terlalu rumit (Chamero, 2006). Adapun nama algoritma

8

Dijkstra sendiri berasal dari penemunya yaitu Edsger Dijktsra dari Belanda. Penerapan Algoritma dijkstra hampir sama dengan cara kerja algoritma BFS (Breadth-First Search) yaitu dengan menggunakan prinsip antrian (queue), akan tetapi antrian yang digunakan algoritma dijkstra adalah antrian berprioritas (priority queue). Jadi hanya simpul yang memiliki prioritas tertinggi yang akan ditelusuri. dalam menentukan simpul yang berprioritas algoritma ini membandingkan setiap nilai (bobot) dari simpul yang pada satu level, selanjutnya ini (bobot) dari setiap simpul tersebut disimpan untuk dibandingkan dengan nilai yang akan ditemukan dari rute yang baru ditemukan kemudian, begitu seterusnya sampai ditemukan simpul yang dicari. Input dari algoritma Dijkstra berupa sebuah graf berbobot G=(e, v), sedangkan outputnya berapa rute terpendek dari simpul awal (start) ke masing-masing simpul yang ada pada graf. Jika menggunakan algoritma dijkstra untuk menentukan jalur terpendek dari suatu graph, maka akan menemukan jalur yang terbaik karena pada waktu penentuan jalur yang akan dipilih akan dianalisis bobot dari node yang belum terpilih, lalu dipilih node dengan bobot terkecil. algoritma dijkstra mencari jarak terpendek dari node asal ke node terdekatnya, kemudian ke node kedua, dan seterusnya. Dengan demikian algoritma Dijkstra dapat menemukan solusi terbaik.

9

Misalnya diberikan graph berbobot dan berarah seperti gambar di atas. Akan dicari lintasan terpendek dari simpul A ke semua simpul lain. Maka penyelesaian permasalahan table 2.1 Jadi, lintasan terpendek dari : A ke C adalah A, C dengan panjang = 6 A ke B adalah A, B dengan jarak = 9 A ke E adalah A, E dengan jarak = 13 A ke F adalah A, B, F dengan jarak = 19 A ke D adalah A, B, F, D dengan jarak = 25 A ke G adalah A, B, F, D, G dengan jarak = 36 A ke H adalah A, B, E, H dengan jarak = 38. 2.2.4 Web Service Web server adalah server yang melayani permintaan klien terdapat halaman web seperti apache, IIS (Internet Information Server) dan berkomunikasi dengan Middleware untuk menterjemahkan kodekode tertentu, menjalankan kode-kode tersebut dan memungkinkan

10

berinteraksi dengan basis data, PHP atau ASP. Adapun arsitektur aplikasi server adalah sebagai berikut: a. Browser atau klien berinteraksi dengan web server. b. Secara internal web server berinteraksi dengan middleware. c. Middleware yang berhubungan dengan database. Teknologi yang berjalan di server antara lain: CGI (Common Gateway Interface), ASP (Aktive Server Page), JSP (Java Server Page) dan PHP. (Budi Sutedjo Darma Oetomo, 2007 : 167). Web server adalah suatu server Internet yang menggunakan protocol HTTP (Hypertext Transfer Protocol) untuk melayani semua proses pentransferan data. Web server hingga saat ini merupakan server yang dapat dikatakan sebagai tulang punggung bagi semua pengguna Internet.(Andry SyahPutra, 2003). 2.2.5 MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU GeneralPublic License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. (Achmad Solichin, 2010 : 8).

11

MySQL tergolong sebagai DBMS. Perangkat lunak ini lunak ini bermanfaat untuk mengelola data dengan cara yang sangat fleksibel dan cepat. (Abdul Kadir, 2009). MySQL banyak dipakai untuk penanganan database selain handal juga bersifat open soure. 2.2.6 XAMPP Xampp merupakan perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi beberapa program. Berfungsi sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl (Alan Nur Aditya, 2012). XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu buah paket. Dengan menginstal XAMPP maka tidak perlu lagi melakukan instalasi dan konfigurasi web server Aphace, PHP dan MYSQL secara manual. (Daud Edison T, 2011:6)

BAB III METODE PENELITIAN

3.1

Analisis Kebutuhan 3.1.1 Deskripsi singkat tentang aplikasi Sistem aplikasi ini dapat menampilkan informasi jalur halte yang terdekat dan rute halte transJogja. Sistem akan menyampaikan tujuan halte, rute halte TransJogja, dan jalur yang dilalu transJogja. Pengguna dapat melihat jalur atau rute halte transJoga dan dapat melihat panduan jalur menuju halte. Pencarian rute halte dalam aplikasi ini menggunakan algoritma Dijkstra dimana metode ini tersusun dari node yang telah ditemukan dan telah dikunjungi. 3.1.2 Perancangan sistem Di dalam sistem yang akan dibuat dibutuhkan data-data dari koordinat yang telah didapat oleh pengguna. Berdasarkan data tersebut, maka peneliti dapat membuat sebuah system location base service. 3.1.3 Kebutuhan Input Kebutuhan input pada sistem ini meliputi : 1. Koordinat longitude latitude dari GPS pengguna 2. Diskripsi tujuan pengguna, latitude dan longitude. 3. Deskripsi jalur, rute transjogja

12

13

3.1.4 Kebutuhan Output Kebutuhan output pada sistem ini meliputi : 1. Peta dan Rute lokasi pengguna ke halte 2. Jalur transjogja 3.1.5 Perangkat Lunak Spesifikasi perangkat lunak yang digunakan: 1. SistemOperasi : Microsoft Windows 7, android v.4.2.2 2. Android studio v.1.0 3. Database Server : Mysql v.5.0 4. Bahasa pemrograman HTML 5, PHP 5, java 5. Notepad++ versi 6.6.9 6. Xampp versi 3.2.1 3.1.6 Perangkat Keras Spesifikasi perangkat keras minimum yang digunakan: 1. Prosesor intel core i3 2310M 2,10ghz 2. Hardisk 500 GB 3. RAM 4GB 2400Mhz Spesifikasi minimum yang di gunakan pada Android KitKat: 1. Prosesor MSM8255 atau Hummingbird. 2. RAM 1 GB. 3. Penyimpanan internal 4 GB

14

3.2

Pemodelan yang digunakan Dalam perancangan sistem langkah awal yang harus dilakukan adalah memodelkan sistem. Agar dapat memperjelas hal-hal yang menjadi fokus dan tidak keluar dari jalur. Adapun pemodelan yang digunakan meliputi: 3.2.1 Use Case Diagram

Gambar 3.1 adalah gambaran alur use case diagram Pengguna. dimana pertama-tama pengguna mencari tujuan yang dapat dari GPS. Kemudian pengguna dapat memasukan tujuan. Pada sistem akan memproses dari web server dan akan menampilkan hasil pencarian, kemudian pengguna dapat melihat halte terdekat. Setelah melihat halte terdekat pengguna mendapat list informasi lokasi menuju rute dengan menggunakan metode Dijkstra sebagai penentu rue.

15

Gambar 3.2 Use Diagram Admin Gambar 3.2 adalah gambaran use case diagram admin. dimana admin melakukan login. Kemudian akan dilakukan validasi pada saat admin login. Setelah melakukan login admin dapat melakukan perubahan data koordinat, data halte, dan data jalur.

16

3.2.2 Sequence Diagram

Gambar 3.3 Sequence Diagram Lokasi Pengguna. Gambar 3.3 adalah diagram sequence pengguna akan membuka menu lokasi pengguna kemudian akan ditampilkan list lokasi. Untuk melihat list lokasi yang diambil dari database. Pengguna dapat menampilkan lokasi.

17

Gambar 3.4 Sequence Diagram Tujuan Transjogja. Gambar 3.4 adalah diagram sequence pengguna akan membuka menu tujuan kemudian akan ditampilkan list tujuan. Untuk melihat list tujuan yang diambil dari database. Pengguna dapat menampilkan tujuan.

18

Gambar 3.5 Sequence Diagram Halte Transjogja. Gambar 3.5 adalah diagram sequence untuk melihat menu halte dimana isinya adalah detail halte. Pengguna membuka menu halte kemudian akan ditampilkan detail halte yang diambil dari data halte dalam database. Kemudian pengguna dapat menampilkan rute menuju tempat halte kemudian ditampilkan kepada pengguna.

19

Gambar 3.6 Sequence Diagram Admin. Gambar 3.6 adalah diagram sequence untuk melihat interaksi admin pada saat mengolah data sistem. Mulai dari login hingga olah data sistem.

20

3.2.3 Flochart Algoritma Dijkstra

Gambar 3.7 Flowchart Algoritma Dijkstra

Gambar 3.7 adalah flowchart diagram untuk pencarian rute menggunakan metode algoritma Dijkstra. Terdapat langkah-langkah

21

dalam perhitungan menentukan perhitungan rute terpendek pada algoritma Dijkstra, berikut langkahnya: 1. Mulai. 2. Inputkan koordinat awal dan koordinat tujuan. 3. Masukan rumus hitung jarak terpendek 4. Menghitung jarak dari koordinat asal ke koordinat tujuan 5. Apakah lintasan terpendek sama dengan tujuan? 6. Jika tidak, maka ambil jarak terpendek ke lokasi berikut. 7. Jika Ya, maka tampilkan jarak terpendek dan di proses perhitungan selesai. 8. Ubah jarah terpendek menjadi lokasi awal. 9. Apakah lokasi awal sama dengan tujuan? 10. Jika Tidak, ambil jarak terpendek ke lokasi berikut 11. Jika Ya, maka tampilkan jarak terpendek dan diproses perhitungan selesai 12. Selesai

22

3.2.4 Flowchat Jalur terpendek

Gambar 3.7 Flowchart jalur terpendek Dalam permasalahan pencarian lintasan jarak terpendek. Seseorang pengarah jalan ingin menentukan lintasan terpendek antara dua tempat berdasarkan alternatif yang tersedia pencarin lintasan terpendek ini sendiri diperlukan untuk mengurangi waktu dan biaya yang diperlukakan untuk menempuh jarak suatu tempat. 1. Mulai. 2. Input koordinat awal dan koordinat lokasi. 3. Kirim koordinat lokasi pada server google.

23

4. Jalur sama dengan data google. 5. Apakah jalur terpendek sama dengan jalur pada data goole ? 6. Jika Tidak, maka pada peta akan menambahkan nilai i=1 hingga berulang-ulang. 7. Jika Ya, maka tampilkan jarak terpendek dan diproses perhitungan selesai. 8.

Selesai

3.2.5 Skema Basis Data

Gambar 3.9 Skema Basis Data Gambar 3.9 adalah skema basis data transjogja dimana terdapat 4 tabel yaitu halte_transjpgja, jalur_transjogja, trayek dan admin. Dalam tabel hatel terhubung antara graph_dijkstra dan jalur. Trayek terhubung dengan jalur.

24

3.2.6 DFD Web Service

Gambar 3.10 DFD Pada Web Service Gambar 3.10 adalah DFD level 0 dari web service yang digunakan dimana pengguna dapat request data lokasi, dan data tujuan dan juga request node untuk menampilkan rute. Admin dapat menambahkan node baru dan mengelola data pengguna. 3.2.7 Desain User Interface

Gambar 3.11 Pemodelan UI Menu Utama Gambar 3.11 merupakan rancangan desain user interface untuk menu utama. Dimana terdapat lokasi pengguna yang didapat dari Cari Rute.

25

Gambar 3.12 Pemodelan UI Halte Terdekat Gambar 3.12 merupakan rancangan desain user interface untuk pencarian halte terdekat. Dimana pengguna memasukan lokasi dan tujuan, kemudian akan tampil mana saja yang halte dan jalur yang akan digunakan.

Gambar 3.13 Desain UI Daftar halte Gambar 3.13 merupakan rancangan desain user interface untuk menampilkan list halte dari setiap jalur. Peta dan koordinat dari halte rute transjogja.

26

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM

4.1

Implementasi Program Untuk implementasi algoritma Dijkstra, diperlukan peta yang akan diambil koordinatnya yang akan diproses. Berikut merupakan contoh peta asli dari penerapan algoritma Dijkstra pada pencarian rute halte di Yogyakarta dapat dilihat pada Gambar 4.1.

Gambar 4.1 Implementasi pencarian rute halte trans jogja

26

27

4.1.1 Pencarian lokasi tujuan autocompleteFragment.setOnPlaceSelectedListener(this); @Override public void onPlaceSelected(Place place) { setDirectionLocation(place.getLatLng().latitude, place.getLatLng().longitude); mGoogleApiClient.connect(); setMyLocation(); progress_page_info.setVisibility(View.GONE); noconnection.setVisibility(View.GONE); result_layout.setVisibility(View.GONE); pb.setVisibility(View.VISIBLE); pencarianHalteService = new PencarianHalteService(getActivity(), pencarianHalteCallback, getMyLocation(), getDirectionLocation()); }

Potongan kode diatas merupakan implementasi API google yang digunakan untuk melakukan pencarian lokasi berdasarkan data yang tersedia pada google. Inisialisasi objeknya adalah dengan menggunakan Kelas

AutoCompleteFragment

dan

dengan

memanggil

fungsi

setOnPlaceSelectedListener untuk inisialisasi fungsi ketika terdapat event pencarian oleh pengguna, adapun kelas ini dapat menghandle event onchange keyboard type yaitu ketika penff Sedangkan fungsi onPlaceSelected adalah implementasi fungsi callback untuk event pemilihan lokasi pencarian oleh pengguna. Pada fungsi tersebut dilakukan inisialisasi fungsi lokasi tujuan dengan menempatkan parameter pada fungsi setDirectionLocation() dengan latitude lokasi yang terambil dan longitude lokasi yang terambil.

28

4.1.2 Pencarian rute halte // mencari halte paling dekat dengan pengguna // TODO: asal $jarak = 100000; $query_jalur_new = mysqli_query($h, "SELECT * FROM jalur_transjogja " ."JOIN halte_transjogja ON halte_transjogja.id_halte = jalur_transjogja.id_halte " ."JOIN trayek ON trayek.id_trayek = jalur_transjogja.id_trayek WHERE jalur_transjogja.id_trayek = " .$row["id_trayek"]); while ($row2 = $query_jalur_new->fetch_array(MYSQLI_ASSOC)) { $distance_temp = $util->getDistance($lat_pengguna, $lng_pengguna, $row2["lat_halte"], $row2["lng_halte"]); if($jarak >= $distance_temp && $row2["urutan_jalur"] <= $trayek_temp[$index]["urutan_jalur"]){ $jarak = $distance_temp; $trayek_temp[$index]["urutan_asal"] = $row2["urutan_jalur"]; } }

Mula – mula set jara default tertinggi yaitu 100000, selanjutnya dilakukan inisilaisasi query untuk pengambilan seluruh data halte yang berada di trayek x ($row[“id_trayek”]). Setelah didapat seluruh data dilakukan penyimpanan ke dalam variabel dengan menggunakan fetch_array(),

di dalam perulangan fetch_array dilakukan

validasi yaitu : Jika variabel jarak lebih besar dari jarak pengguna ke halte serta urutan jalur kurang dari urutan jalur tujuan maka dilakukan proses : a. Penyimpanan jarak = jarak perhitungan antara pengguna ke halte tsb ($distance_temp) b. Penyimpanan urutan asal dengan data urutan dari halte tersebut

29

4.1.3 Pencarian Rute Halte TransJogja Algoritma Dijkstra pencarianHalteCallback = new PencarianHalteCallback() { @Override public void setPencarianHalte(ArrayList<Jalur> jalurs, Arah arah, int status) { if(status!=0){ setJalurs(jalurs); result_layout.setVisibility(View.VISIBLE); directionRuteService = new DirectionRuteService(getActivity(), directionAsalCallback, myLocation.getLatitude(), myLocation.getLongitude(), jalurs.get(0).getLat_halte(), jalurs.get(0).getLng_halte()); // initKomponen(arah); initRecycler(); }else{ noconnection.setVisibility(View.VISIBLE); pb.setVisibility(View.GONE); result_layout.setVisibility(View.GONE); } } }; directionAsalCallback = new DirectionRuteCallback() { @Override public void setMarker(String jarak, List>> routes, int status) { asal_info_txt.setText(jarak+ " ke "+directionSetter.bearingLocation(myLocation.getLatitude(), myLocation.getLongitude(), jalurs.get(0).getLat_halte(), jalurs.get(0).getLng_halte())+ " dari lokasi Anda"); directionRuteService = new DirectionRuteService(getActivity(), directionTujuanCallback, directionLocation.getLatitude(), directionLocation.getLongitude(), jalurs.get(jalurs.size()1).getLat_halte(), jalurs.get(jalurs.size()1).getLng_halte()); } }; directionTujuanCallback = new DirectionRuteCallback() { @Override public void setMarker(String jarak, List>> routes, int status) { pb.setVisibility(View.GONE); tujuan_info_txt.setText(jarak+

30

" ke "+directionSetter.bearingLocation(jalurs.get(jalurs.size ()-1).getLat_halte(), jalurs.get(jalurs.size()1).getLng_halte(), directionLocation.getLatitude(), directionLocation.getLongitude())+ " dari halte tujuan"); } }; Gambar 4.2 Servis pencarian halte

Potongan kode diatas merupakan callback dari servis pencarian halte, dimana callback digunakan sebagai jembatan komunikasi antara kelas servis yang berguna untuk menjalankan REST API pencarian halte. Adapun pada callback tersebut parameter yang digunakan adalah data jalur dan data arah untuk kebutuhan integrasi data yang diambil ke tampilan di aplikasi Android. Adapun data jalur diintegrasikan dalam bentuk list melalui fungsi initRecycler, sedangkan data arah diintegrasikan melalui fungsi initKomponen. Pada fungsi initKomponen dilakukan pemanggilan servis kembali untuk mendapatkan informasi jarak antara lokasi pengguna dan halte asal serta servis informasi jarak antara lokasi halte akhir dan lokasi tujuan. Adapun data yang diterima di inisialisasi melalui callback directionAsalCallback dan directionTujuanCallback. Masing – masing callback tersebut akan melakukan inisialisasi komponen sesuai data yang telah terambil dari servis masing – masing servis.

31

// menyimpan data halte sesuai trayek $trayek_temp[$index]["haltes"] = array(); $query_jalur_new = mysqli_query($h, "SELECT * FROM jalur_transjogja " ."JOIN halte_transjogja ON halte_transjogja.id_halte = jalur_transjogja.id_halte " ."JOIN trayek ON trayek.id_trayek = jalur_transjogja.id_trayek WHERE jalur_transjogja.id_trayek = " .$row["id_trayek"]); while ($row2 = $query_jalur_new->fetch_array(MYSQLI_ASSOC)) { $distance_temp = $util->getDistance($lat_pengguna, $lng_pengguna, $row2["lat_halte"], $row2["lng_halte"]); if($row2["urutan_jalur"] <= $trayek_temp[$index]["urutan_jalur"] && $row2["urutan_jalur"] >= $trayek_temp[$index]["urutan_asal"]){ $data_arah["id_halte"] = $row2["id_halte"]; $data_arah["nama_halte"] = $row2["nama_halte"]; $data_arah["urutan_jalur"] = $row2["urutan_jalur"]; $data_arah["lat_halte"] = $row2["lat_halte"]; $data_arah["lng_halte"] = $row2["lng_halte"]; array_push($trayek_temp[$index]["haltes"], $data_arah); } } // ============================================================== // $index++; }

Penyimpanan data halte tersebut dilakukan untuk validasi seluruh data halte pada trayek tertentu (yang terpilih) untuk disimpan berdasarkan urutan asal halte dan urutan tujuan halte pada trayek, berikut prosesnya : Mula – mula tampilkan seluruh data halte transjogja yang id trayeknya adalah id_trayek yang ditentukan (yg ditentukan maksudnya id_trayek yang terpilih sebagai jalur yang bisa dilalui pengguna untuk menggunakan transjogja ke tujuan). Selanjutnya dilakukan perulangan sebanyak jumlah data yang ada dengan

32

menggunakan perintah fetch_array(), pada fungsi tersebut dilakukan validasi berikut ini : a. Jika urutan jalur halte kurang dari atau sama dengan urutan jalur tujuan dan urutan jalur halte lebih dari atau sama dengan urutan jalur asal maka dilakukan penyimpanan data ke dalam satu array pada variabel data_arah, untuk beberapa atribut yaitu id_halte, nama_halte,

urutan_jalur,

lat_halte

dan

lng_halte. b. Satu array tersebut selanjutnya disimpan ke dalam variabel $trayek_temp[][“haltes”] yang menyimpan seluruh halte satu jalur tertentu. // Mencari index titik paling panjang $max_index = 0; for($i=0;$i0){ // menyimpan data ke dalam graph $g = new Graph(); $g->addedge($trayek_real[0]["id_halte_tujuan"], "tujuan", 0); $g->addedge("tujuan", "asal", 0); for($i=0;$i<$max_index;$i++){ for($a=0;$aaddedge("asal", $trayek_real[$a]["haltes"][$i]["id_halte"], $util->getDistance($lat_pengguna, $lng_pengguna, $trayek_real[$a]["haltes"][$i]["lat_halte"], $trayek_real[$a]["haltes"][$i]["lng_halte"]));

33

}else{ if($i<$trayek_real[$a]["jml_halte"]){ $g->addedge($trayek_real[$a]["haltes"][$i-1]["id_halte"], $trayek_real[$a]["haltes"][$i]["id_halte"], $util->getDistance($trayek_temp[$a]["haltes"][$i1]["lat_halte"], $trayek_temp[$a]["haltes"][$i1]["lng_halte"], $trayek_temp[$a]["haltes"][$i]["lat_halte"], $trayek_temp[$a]["haltes"][$i]["lng_halte"])); } } } // echo "===========================================
"; } list($distances, $prev) = $g->paths_from("asal"); $path = $g->paths_to($prev, $trayek_real[0]["id_halte_tujuan"]); for($a=1;$a
Gambar 4.3 Potongan Program Perbandingan rute Dijkstra

Potongan kode diatas merupakan program di sisi backend dengan menggunakan bahasa PHP yang digunakan untuk melakukan filter terhadap rute halte yang akan dipilih untuk selanjutnya dilakukan perbandingan rute terdekat menggunakan algoritma dijkstra.

34

Dalam melakukan pemrosesan dijkstra, mula – mula data yang telah didapat dari beberapa jalur yang terpilih akan dibuat dalam bentuk graph. Fungsi graph akan membuat korelasi jalur beserta jarak antar dari tiap titik pada jalur yang ada dalam bentuk array baru, berdasarkan rute yang ada, selanjutnya graph yang telah terbuat tersebut akan diproses menggunakan fungsi paths_to(), fungsi ini digunakan untuk melakukan proses pencarian dijkstra dari titik lokasi asal ke titik lokasi tujuan berdasarkan rute yang ada. Hasil dari fungsi tersebut berupa pengembalian array untuk titik – titik lokasi tercepat yang dapat dilewati menggunakan algoritma dijkstra. 4.1.4 Menampilkan Rute Lokasi User ke Halte directionRuteService = new DirectionRuteService(this, directionRuteCallback, myLocation.getLatitude(), myLocation.getLongitude(), directionLocation.getLatitude(), directionLocation.getLongitude()); directionRuteCallback = new DirectionRuteCallback() { @Override public void setMarker(String jarak, List>> routes, int status) { progressDialog.hide(); if(status==1){ initRute(routes); }else{ Toast.makeText(PetaRuteTujuanPage.this, "Koneksi bermasalah", Toast.LENGTH_SHORT).show(); finish(); } } };

Gambar 4.4 Potongan program proses menampilkan rute

35

Potongan kode diatas merupakan perintah yang digunakan untuk memanggil servis tampil rute menggunakan data API milik google dengan

melakukan

request

url

ke

https://maps.googleapis.com/maps/api/directions/ menggunakan REST API. Adapun parameter yang disertakan untuk melakukan request tersebut adalah latitude dan longitude asal serta latitude dan longitude tujuan. Adapun respon data yang diterima berupa data array titik lokasi yang dapat dilewat serta jarak yang harus ditempuh menggunakan format JSON. Adapun pada potongan kode diatas data yang telah didapat disertakan

melalui

callback

directionRuteCallback

untuk

selanjutnya dilakukan pembentukan rute melalui fungsi initRute(). 4.2

Pengujian Sistem Dalam penerapan, kode-kode yang telah ditulis bedasarkan proses analisis sistem, pembentukan table serta perencangan input output

akan

menghasilakan suatu aplikasi siap pakai. Pengujian pada sistem ini menggunakan perangkat lunak android sebagai alat penguji aplikasi serta koneksi internet karena peta yang digunkan dalam aplikasi ini menggunkan google maps.

36

4.2.1 Halaman Home

Gambar 4.5 Halaman pencarian Halaman pencarian merupakan halaman utama dari aplikasi ini. Pada halaman ini pengguna dapat mencari rute terpendek menuju halte. 4.2.2 Halaman Pencarian Halaman pencarian halte menampilkan lokasi halte yang dapat ditempuh dari pengguna menuju halte transjogja dan, menampilkan rute hari halte menuju lokasi tujuan pengguna. Serta akan menampilkan jarak tempuh pengguna dan lokasi halte terdekat, pada halaman ini pengguna menentukan posisi awal halte kemudian tujuan halte.

37

Gambar 4.6 Halaman Pencarian halte

Pada gambar di atas dapat dijelaskan (jalur halte yang kan dilewati) bahwa titik awal pada pengguna dibagian selatan jalan ambarukmo menuju ke bandara, pada aplikasi akan menampilkan awal halte di ambarukmo 2. Dan pada aplikasi akan menampilkan halte akan dilewati. 4.2.3 Halaman rute halte Halaman peta halte menampilkan rute yang akan ditempuh dari lokasi pengguna menuju lokasi halte terdekat menurut google maps. Pada menu ini merupakan perpindahan dari halaman pencarian rute ke halaman rute halte asal.

38

Gambar 4.7 Halaman rute halte

4.3

Pembahasan Sistem Berdasarkan analisa dan perancangan yang telah dilakukan pada bab sebelumnya, maka dalam bab ini akan membahas Algoritma Dijkstra Pada Pencarian Rute TransJogja di Aplikasi Let’s Busway Berbasis Android. Sistem adalah proses akhir dalam pengembangan suatu sistem hingga benarbenar dapat di uji dan digunakan dalam aplikasi yang sesungguhnya. Dengan demikian akan di ketahui apakah sistem yang dibuat telah berhasil memenuhi tujuan yang diinginkan.

39

4.3.1 Studi Kasus Halaman pencarian halte merupakan cuplikan dari URL (JSON) menampilkan halte yang akan dilalui dari lokasi pengguna menuju lokasi halte terdekat menurut algoritma Dijkstra. Pada tampilan ini merupakan dimana posisi awal pengguna berada pada selatan Ambarukmo menuju Bandara. Mula - mula proses yang akan dijalan adalah mencari halte terdekan. $jarak = 100000; $query_jalur_new = mysqli_query($h, "SELECT * FROM jalur_transjogja " ."JOIN halte_transjogja ON halte_transjogja.id_halte = jalur_transjogja.id_halte " ."JOIN trayek ON trayek.id_trayek = jalur_transjogja.id_trayek WHERE jalur_transjogja.id_trayek = " .$row["id_trayek"]);

Gambar 4.8 Cuplikan pencarian lokasi Selanjutnya proses berikutnya melakukan validasi seluruh data halte pada trayek tertertentu (yang terpilih) untuk disimpan berdasarkan urutan halte dan urutan tujuan pada trayek. Berikut merupakan cuplikan program. while ($row2 = $query_jalur_new->fetch_array(MYSQLI_ASSOC)) { $distance_temp = $util->getDistance($lat_pengguna, $lng_pengguna, $row2["lat_halte"], $row2["lng_halte"]);

Dari beberapa jalur yang terpilih akan dibuat dalam bentuk graph. Selanjutnya graph yang telah terbuat akan diproses menggunakan fungsi paths_to().

Fungsi ini digunakan untuk melakukan proses

40

pencarian Dijkstra dari titik lokasi asal ke lokasi tujuan berdasarkan rute yang ada. Berikut cuplikan program. list($distances, $prev) = $g->paths_from("asal"); $path = $g->paths_to($prev, $trayek_real[0]["id_halte_tujuan"]);

Pada proses terakhir akan menampilkan asal lokasi dari halte dan tujuan halte serta akan menampilkan halte yang akan dilalui. Dimana kita akan ditujukan ke halte Ambarukmo 2 dan menggunakan trayek 1B yang akan melalui halte Janti/Babarsari  halte Transmart  dan berhenti halte Maguwo. Dapat diskripsikan bahwa aplikasi dapat melakukan pencarian halte terdekat dari lokasi tujuan.

Gambar 4.9 Pencarian halte terdekat kasus 1

41

Sama di posisi selatan Amabarukmo menuju ke Malioboro. Dan pada prosesnya tampil seperti gambar 4.9, dimana posisi awal halte ditujukan pada Ambarukmo 1 dan menggunakan trayek 1A yang akan melewati halte  UIN (Gedung Wanita) Urip Sumuharjo  Sudirman (betesda)  Sudirman2 (Bumiputra)  MangkuBumi (PLN)  MangkuBumi (Tugu)  Malioboro1 (Garuda)  dan berhenti pada halte Malioboro2 (Kepatihan). Dapat diskripsikan bahwa aplikasi dapat menyesuaikan rute yang ada, serta dapat mengambil tujuan terdekat dari lokasi tujuan, dan mencari rute-rute yang ada pada halte tujuan.

Gambar 4.10 Pencari halte terdekat kasus 2

42

BAB V PENUTUP 5.1. Kesimpulan Berdasarkan hasil dari pembahasan implementasi algoritma Dijkstra pada pencarian rute TransJogja di aplikasi Let’s Busway Berbasis Android maka dapat disimpulkan berikut: 1. Telah dibuat sebuah aplikasi system informasi berbasis android yang dapat membantu pengguna untuk mengetahui rute terdekat menuju halte yang berada di wilayah Daerah Istimewa Yogyakarta. 2. System ini belum dapat melakukan perpindahan jalur dari halte ke halte menggunakan algoritma dijkstra. 5.2. Saran Berdasarkan permasalahan yang terjadi setelah di implementasikan terhadap aplikasi ini, maka saran - saran untuk pengembangan selanjutnya sebagai berikut: 1.

Perlu dibuat algoritma dengan mengembangkan perpindahan jalur dari halte ke halte lain.

2.

Diharapkan aplikasi dapat dikembangakn dengan metode pengembangan system yang lebih baik, dan dapat menambahkan metode pencarian yang lebih baik agar hasil yang didapat lebih signifikan.

42

43

DAFTAR PUSTAKA

Abdul Kadir, 2009, Mudah Mempelajari Data MySQL. Yogyakarta. Andi Achmad Solichin, 2010, MySQL 5 Dari Pemula Hingga “? Mahir, (http://achmatim.net/2010/01/30/buku-gratis-mysql-5-dari-pemula-hinggamahir, tanggal diakses 15 Oktober 2015). Andry SyahPutra, 2003, APACHE Web Server. Yogyakarta. Andi Asri Yuliana (2013), IMPLEMENTASI ALGORITMA DIJKSTRA PENCARIAN RUTE TERPENDEK TRANS JOGJA. Skripsi, UIN.Yogyakarta Chamero, Juan. Dijkstra's Algorithma As a Dynamic Programming Strategy. http://www.intag.org/download/ds_006.pdf, diakses pada 29 September 2016 Cahyo Nugroho (2013), AKSESIBILITAS HALTE DAN KUALITAS PELAYANAN TRANS JOGJA DENGAN KEPUTUSAN PENGGUNA. UNIVERSITAS NEGERI YOGYAKARTA. Yogyakarta Dinas Perhubungan Komunikasi dan Informasi Provinsi DIY.2011. Profil Daerah Istimewa Yogyakarta. Plaza Informasi Dishubkominfo. Yogyakarta Diana Okta Pugas (2011), PENCARIAN RUTE TERPENDEK MENGGUNAKAN ALGORITMA DIJKSTRA DAN ASTAR (A*) PADA SIG BERBASIS WEB UNTUK PEMETAAN PARIWISATA KOTA SAWAHLUNTO. Teknik Elektro Fakultas Teknik Universitas Diponegoro, Semarang. Ginta Istiar Ramadayanto (2016), APLIKASI PENCARIAN HALTE TRANS BUS YOGYAKARTA DENGAN MENGUNAKAN OPENSTREETMAPS. Teknik Informatika STMIK AKAKOM, Yogyakarta. Imron Fauzi (2011), Penggunan Algoritma Dijkstra Dalam Pencarian Rute Tercepat Dan Rute Terpendek. UIN Syarif Hidayatullah. Jakarta Luthfi Fahronzi (2013), APLIKASI LOCATION BASEDSERVICE (LBS) UNTUK PENCARIAN RUTE TERPENDEK MENGGUNAKAN ALGORITMA DIJKSTRA, Fakultas Sains Dan Teknologi Universitas Islam Negeri Sultan Syarif Kasim Riau, Pekanbaru. Riyanto (2010), Membuat sendiri aplikasi mobile GIS. Yogyakarta :Andi Sofyan Arifianto, “Sistem Aplikasi Penentuan Rute Terpendek pada Jaringan Multimedia Transportasi Umum Menggunakan Algoritma Dijkstra,” Universitas Diponegoro, Semarang, 2012.Sofyan Arifianto, “Sistem Aplikasi Penentuan Rute Terpendek pada Jaringan Multimoda Transportasi Umum Menggunakan ALgoritma Dijkstra,”. TESIS. Universitas Diponegoro, Semarang, 2012. http://eprints.undip.ac.id/36054/1/Sofyan_Arifianto.pdf WS hendro. Sidoarjo Siap Operasikan Bus Rapid Transit (BRT). Jawa Pos (Online), (http://www2.jawapos.com/baca/artikel/15649/sidoarjo-siap-operasikan-busrapid-transit-brt, diakses pada 29 September 2016).

44

Shodiq, Amir. (2008), program google maps API, Sekloah Tinggi Sandi Negara. Yonni Aris (2012), PENERAPAN ALGORITMA DIJKSTRA PADA APLIKASI PEKANBARU TAKSI GUIDE PADA PLATFORM ANDROID, Fakultas Sains Dan Teknologi Universitas Islam Negeri Sultan Syarif Kasim Riau, Pekanbaru.

Related Documents

Dari Dian Bab 1-v Fix.docx
November 2019 33
Bab 6 Dian Rev.docx
June 2020 16
Dian
June 2020 22
Lemoisdesbellesfemmes-1v-
November 2019 14
Bab Iv Dari Uli.docx
November 2019 12
Bisnisnya Dian
November 2019 29

More Documents from ""

Dari Dian Bab 1-v Fix.docx
November 2019 33
K3
October 2019 44
Daftar Isi.docx
May 2020 16
Sk Panitia.docx
April 2020 14