Implementasi Algoritma Dijkstra Dalam Penentuan Rute Terpendek Berbasis Mobile GIS (Studi Kasus: Universitas Sumatera Utara)

(1)

IMPLEMENTASI ALGORITMA DIJKSTRA DALAM PENENTUAN RUTE TERPENDEK BERBASIS MOBILE GIS

(STUDI KASUS: UNIVERSITAS SUMATERA UTARA)

SKRIPSI

JOHANNES HUTABARAT 081401067

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(2)

IMPLEMENTASI ALGORITMA DIJKSTRA DALAM PENENTUAN RUTE TERPENDEK BERBASIS MOBILE GIS

(STUDI KASUS: UNIVERSITAS SUMATERA UTARA)

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

JOHANNES HUTABARAT 081401067

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA DIJKSTRA DALAM PENENTUAN RUTE TERPENDEK BERBASIS MOBILE GIS

(STUDI KASUS: UNIVERSITAS SUMATERA UTARA)

Kategori : SKRIPSI

Nama : JOHANNES HUTABARAT

Nomor Induk Mahasiswa : 081401067

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing II, Pembimbing I,

Ade Candra, S.T., M.Kom M. Andri B,ST,MCompSc,MEM NIP: 197909042009121002 NIP: 197510082008011001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA DIJKSTRA DALAM PENENTUAN RUTE TERPENDEK BERBASIS MOBILE GIS

(STUDI KASUS: UNIVERSITAS SUMATERA UTARA)

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan,

JOHANNES HUTABARAT 081401067


(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas limpahan rahmat, kasih dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Pada pengerjaan skripsi dengan judul Implementasi Algoritma Dijkstra dalam Penentuan Rute Terpendek Berbasis Mobile GIS (Studi Kasus : Universitas Sumatera Utara), penulis menyadari bahwa banyak campur tangan pihak yang turut membantu dan memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K), selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis, M.Sc., selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informas Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

5. Bapak M. Andri B, ST, McompSc, MEM dan Bapak Ade Candra S.T., M.Kom selaku dosen pembimbing yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini.

6. Bapak Prof. Dr. Iryanto, MSi. dan Bapak Dr. Poltak Sihombing, M.Kom sebagai dosen penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini.

7. Seluruh dosen Program Studi S1 Ilmu Komputer Fasilkom-TI USU dan semua pegawai Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

8. Ayahanda S. Hutabarat dan Ibunda R. Hutapea yang telah memberikan do’a, dukungan, perhatian serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.


(6)

9. Adinda Nurbetty Siallagan, yang tidak bosan – bosannya menunggu, memberikan motivasi, bantuan dan dukungan serta kata – kata pencerahan yang membangun setiap waktu.

10.Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008, Octavianus Sianturi, Hermanda Simamora, Angga Ricardo Malau, Elieser Hutapea, Harry Davidson, Eko Verdianto, Brikson Barus dan teman-teman lain yang telah memberikan motivasi, arahan dan perhatiannya.

11.Teman-teman Komunitas Logic : Gunalan, Rivai, Samuel, Septian Maihadi, Septian DC, Sorano, Ijonk, Angga, Herman, Elieser, dan lain – lain yang selalu memberikan pencerahan, pengarahan, dan membuat suasana pengerjaan skripsi lebih menyenangkan.

12.Adik-adik angkatan 2009, 2010 dan 2011 yang telah membakar semangat untuk menyelesaikan penyelesaian skripsi ini.

13.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih jauh dari sempurna, oleh karena itu penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini, agar dapat bermanfaat bagi kita semua.

Medan, Juni 2014 Penulis :


(7)

ABSTRAK

Universitas Sumatera Utara yang berlokasi di Padang Bulan merupakan kampus utama yang memiliki banyak aktivitas baik kegiatan akademis maupun non akademis didalam nya. Seiring banyak nya aktivitas tersebut, maka tingkat mobilitas seseorang dalam kampus juga semakin tinggi. Oleh karena itu diperlukan sistem informasi geografis berbasis mobile yang menghasilkan informasi petunjuk jalan yang paling efektif ditempuh untuk sampai ke tujuan melakukan aktivitas – aktivitas tersebut. Salah satu metode yang dapat digunakan dalam pencarian rute terpendek adalah algoritma Dijkstra. Algoritma Dijkstra menemukan rute terpendek dari sebuah simpul spesifik menuju simpul spesifik lainnya dan jika diteruskan maka akan memberikan rute terpendek dari simpul spesifik menuju seluruh simpul – simpul lain di dalam sebuah graf. Android merupakan sistem operasi berbasis Linux yang dirancang untuk perangkat mobile sehingga dapat digunakan dalam penerapan sistem informasi geografis yang mendukung tingkat mobilitas seseorang. Algoritma Dijkstra yang diterapkan dalam sistem informasi geografis berbasis mobile dapat menampilkan informasi rute terpendek dari titik awal menuju titik akhir dalam bentuk peta dan teks serta total jarak antara dua titik tersebut baik melalui jalur satu arah maupun dua arah didalam lingkungan Universitas Sumatera Utara.

Katakunci : Algoritma Dijkstra, Sistem Informasi Geografis, Sistem Informasi Geografis berbasis mobile, Rute Terpendek, Android.


(8)

IMPLEMENTATION OF DIJKSTRA ALGORITHM TO DETERMINE SHORTEST PATH BASED ON MOBILE GIS

(CASE STUDY: UNIVERSITAS SUMATERA UTARA)

ABSTRACT

Universitas Sumatera Utara which is located in Padang Bulan is campus that has a lot of activities both academic and non-academic within it. Along with that many activities, then someone's mobility level in campus also becomes higher. So, a geographic information system based on mobile that can produce the most efective direction guide to the destination point is needed to do those activities. One of the methods that we can use in term of searching the shortest path is Dijkstra’s algorithm. Dijkstra’s algorithm finds the shortest path from one specific point to another specific point, and continually provide the shortest paths from that specific point to the other remaining points in a graph. Android is a Linux-based operating system that designed for mobile device so it can be used in geographic information system that supports someone's mobility level. Dijkstra algorithm which is applied on mobile-based geographic information system can show information about shortest path from one source point to the other destination points in the form of a map and text also the total distance between both points, through the one-way routes or two-way routes in Universitas Sumatera Utara environment.

Keywords : Dijkstra’s Algorithm, Geographic Information System, GIS, Mobile GIS, Shortest Path, Android.


(9)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataan ii

Penghargaan iii

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka

2.1 Graf 6

2.1.1 Berdasarkan Arah Pada Sisi (Edge) 7 2.1.2 Berdasarkan Bobot Pada Sisi (Edge) 7

2.2 Algoritma Dijkstra 8

2.3 Sistem Informasi Geografis 10

2.3.1 Peta 12

2.3.2 Sistem Informasi Geografis Mobile 16

2.4 Geoserver 16

2.4.1 Open Geospatial Consortium (OGC) Standard 18

2.4.2 Shapefile (SHP) 19

2.4.3 Styled Layer Descriptor (SLD) 19

2.4.4 Openlayers 20

2.5 Eclipse IDE 21

2.5.1 Eclipse IDE for Java EE Developer 22

2.5.2 Android Development Kit 22

2.6 Android 22

Bab 3 Analisis Dan Perancangan Sistem

3.1 Analisis Sistem 26

3.1.1 Analisis Masalah 26

3.1.2 Analisis Persyaratan 27

3.1.2.1 Analisis Persyaratan Fungsional 27 3.1.2.2 Analisis Persyaratan Non-Fungsional 28

3.1.3 Pemodelan 28


(10)

3.1.3.2 Activity Diagram 30 3.1.3.2.1 Activity Diagram Tampil Peta USU 30 3.1.3.2.2 Activity Diagram Pencarian Rute

Terpendek

32

3.1.3.3 Sequence Diagram 34

3.1.3.3.1 Sequence Diagram Tampil Peta USU 34 3.1.3.3.2 Sequence Diagram Pencarian Rute

Terpendek

35

3.2 Perancangan Sistem 36

3.2.1 Antarmuka Tampil Peta USU 36

3.2.2 Antarmuka Pilih Node 37

3.2.3 Antarmuka Hasil Pencarian Rute Terpendek 38 Bab 4 Implementasi Dan Pengujian Sistem

4.1 Implementasi Sistem 40

4.1.1 Implementasi Algoritma Dijkstra 40 4.1.2 Tampilan Program / Aplikasi 57

4.2 Pengujian Sistem 63

4.2.1 Pengujian Rute Terpendek dengan Node Awal dan Node Akhir yang sama

64 4.2.2 Pengujian Rute Terpendek terhadap Jalur Satu Arah 64 4.2.3 Pengujian Rute Terpendek dengan Menggunakan Node

Awal dan Node Akhir yang (diasumsikan) Paling Berjauhan

65

Bab 5 Kesimpulan Dan Saran

5.1 Kesimpulan 66


(11)

DAFTAR TABEL

Halaman 3.1 Dokumentasi Naratif Use Case Tampil Peta USU 30 3.2 Dokumentasi Naratif Use Case Pencarian Rute Terpendek 32 4.1 Proses Perhitungan Algoritma Dijkstra 43


(12)

DAFTAR GAMBAR

Halaman

2.1 Contoh Graf 6

2.2 Contoh Peta Raster (USU) Google Maps 13

2.3 Screenshot Contoh Peta Vektor USU 14

2.4 Koordinat Pembatasan Wilayah USU 15

2.5 Screenshot Geoserver 17

2.6 Screenshot Eclipse IDE 21

2.7 Screenshot Android SDK Manager 24

2.8 Screenshot Android Virtual Device Manager 25 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem 27 3.2 Use Case Diagram Implementasi Algoritma Dijkstra unutk

Menentukan Rute Terpendek Berbasis Mobile GIS

29

3.3 Activity Diagram Tampil Peta USU 31

3.4 Activity Diagram Pencarian Rute Terpendek 33

3.5 Sequence Diagram Tampil Peta USU 34

3.6 Sequence Diagram Pencarian Rute Terpendek 35

3.7 Rancangan Antarmuka Tampil Peta USU 37

3.8 Rancangan Antarmuka Pilih Node 38

3.9 Rancangan Antarmuka Hasil Pencarian Rute Terpednek 39

4.1 Graf Universitas Sumatera Utara 41

4.2 Form Awal 57

4.3 Cara Penggunaan 58

4.4 Tentang Aplikasi 58

4.5 Menu Pilihan 59

4.6 Peta USU 59

4.7 Legenda 60

4.8 Pilih Node 61

4.9 Hasil Peta 61

4.10 Hasil Teks 62


(13)

CURRICULUM VITAE Nama : Johannes Hutabarat

Alamat Sekarang : Asrama Polisi Teladan III No. 34 Medan Alamat Orang tua : Asrama Polisi Teladan III No. 34 Medan

Telp/Hp : 083194849103

Email : joedrivesnet@gmail.com

Riwayat Pendidikan

2008-2013 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2005-2008 : SMA RK Trisakti Medan

2002-2005 : SMP Negeri 3 Medan 1996-2002 : SD Negeri 080620 Medan

Keahlian/Kursus yang diikuti Pemrograman Komputer


(14)

ABSTRAK

Universitas Sumatera Utara yang berlokasi di Padang Bulan merupakan kampus utama yang memiliki banyak aktivitas baik kegiatan akademis maupun non akademis didalam nya. Seiring banyak nya aktivitas tersebut, maka tingkat mobilitas seseorang dalam kampus juga semakin tinggi. Oleh karena itu diperlukan sistem informasi geografis berbasis mobile yang menghasilkan informasi petunjuk jalan yang paling efektif ditempuh untuk sampai ke tujuan melakukan aktivitas – aktivitas tersebut. Salah satu metode yang dapat digunakan dalam pencarian rute terpendek adalah algoritma Dijkstra. Algoritma Dijkstra menemukan rute terpendek dari sebuah simpul spesifik menuju simpul spesifik lainnya dan jika diteruskan maka akan memberikan rute terpendek dari simpul spesifik menuju seluruh simpul – simpul lain di dalam sebuah graf. Android merupakan sistem operasi berbasis Linux yang dirancang untuk perangkat mobile sehingga dapat digunakan dalam penerapan sistem informasi geografis yang mendukung tingkat mobilitas seseorang. Algoritma Dijkstra yang diterapkan dalam sistem informasi geografis berbasis mobile dapat menampilkan informasi rute terpendek dari titik awal menuju titik akhir dalam bentuk peta dan teks serta total jarak antara dua titik tersebut baik melalui jalur satu arah maupun dua arah didalam lingkungan Universitas Sumatera Utara.

Katakunci : Algoritma Dijkstra, Sistem Informasi Geografis, Sistem Informasi Geografis berbasis mobile, Rute Terpendek, Android.


(15)

IMPLEMENTATION OF DIJKSTRA ALGORITHM TO DETERMINE SHORTEST PATH BASED ON MOBILE GIS

(CASE STUDY: UNIVERSITAS SUMATERA UTARA)

ABSTRACT

Universitas Sumatera Utara which is located in Padang Bulan is campus that has a lot of activities both academic and non-academic within it. Along with that many activities, then someone's mobility level in campus also becomes higher. So, a geographic information system based on mobile that can produce the most efective direction guide to the destination point is needed to do those activities. One of the methods that we can use in term of searching the shortest path is Dijkstra’s algorithm. Dijkstra’s algorithm finds the shortest path from one specific point to another specific point, and continually provide the shortest paths from that specific point to the other remaining points in a graph. Android is a Linux-based operating system that designed for mobile device so it can be used in geographic information system that supports someone's mobility level. Dijkstra algorithm which is applied on mobile-based geographic information system can show information about shortest path from one source point to the other destination points in the form of a map and text also the total distance between both points, through the one-way routes or two-way routes in Universitas Sumatera Utara environment.

Keywords : Dijkstra’s Algorithm, Geographic Information System, GIS, Mobile GIS, Shortest Path, Android.


(16)

BAB 1

PENDAHULUAN 1.1Latar Belakang

Universitas Sumatera Utara (USU) berlokasi di Padang Bulan Medan. Sejak awal pendiriannya, USU dipersiapkan menjadi pusat pendidikan tinggi di kawasan barat Indonesia. Sewaktu didirikan pada tahun 1952, USU merupakan sebuah yayasan, kemudian beralih status menjadi PTN pada tahun 1957, dan selanjutnya berubah menjadi PT-BHMN pada tahun 2003. Universitas ini memiliki banyak kegiatan akademis maupun non akademis didalamnya. Semakin banyaknya kegiatan akademis maupun non akademis tersebut membuat tingkat mobilitas seseorang yang berada di lingkungan kampus semakin tinggi. Dalam praktek kehidupan nyata, masalah seperti ini dapat disederhanakan dan dipecahkan dari berbagai sudut pandang yang berbeda – beda [2]

Masalah yang berkaitan seperti yang terjadi di lingkungan Universitas Sumatera Utara adalah memperoleh Informasi petunjuk jalan yang menunjukkan rute terpendek. Dari berbagai sudut pandang yang berbeda informasi petunjuk jalan dapat diperoleh dari hasil tanya jawab dengan orang lain, melihat peta baik konvesional maupun digital yang dapat diperoleh dari berbagai sumber termasuk internet. Namun tingginya mobilitas seseorang terkadang membutuhkan informasi petunjuk jalan yang dapat diperoleh lebih cepat. Oleh karena itu diperlukan sebuah aplikasi yang dapat memberikan informasi mengenai rute terpendek yang dapat diperoleh secara cepat tanpa mengurangi waktu atau setidaknya memberikan informasi tersebut lebih cepat daripada menggunakan cara – cara yang disebutkan diatas, misalnya dengan menggunakan aplikasi yang dapat digunakan melalui perangkat mobile.

Sistem informasi geografis (SIG) sangat diperlukan untuk mewujudkan aplikasi ini, karena dapat menampilkan informasi rute terpendek secara grafis pada tampilan tatap muka aplikasi. Sistem informasi geografis juga menjadi projeksi yang digunakan untuk menampilkan bentuk graph dari lingkungan kampus Universitas Sumatera Utara secara digital dengan menggunakan peta vektor.


(17)

Algoritma Dijkstra merupakan salah satu cara menentukan rute terpendek dengan menggunakan suatu graph berbobot. Walaupun memerlukan waktu pencarian yang sedikit lebih lama dibandingkan algoritma heuristic, namun algoritma Dijkstra sangat efisien untuk mendapatkan hasil rute terpendek karena memperkirakan seluruh jalan (edge) yang ada didalam suatu graph hingga mendapatkan nilai total bobot yang paling kecil pada tiap proses pencarian dari simpul awal menuju simpul tujuan [9].

Dengan pertimbangan ini banyak peneliti melakukan penelitian tentang sistem informasi geografis berbasis mobile dengan menggunakan berbagai macam algoritma termasuk algoritma Dijkstra.Berdasarkan hal ini pula penulis tertarik untuk mengimplementasikan algoritma Dijkstra pada sistem informasi geografis berbasis mobile dengan studi kasus Universitas Sumatera Utara.

1.2Rumusan Masalah

Adapun masalah yang akan dibahas dalam penelitian ini adalah :

1. Bagaimana menentukan rute terpendek dengan Algoritma Dijkstra dengan studi kasus Universitas Sumatera Utara.

2. Bagaimana menampilkan peta (Universitas Sumatera Utara) dalam perangkat mobile.

1.3Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah :

1. Pencarian rute terpendek dianggap tidak dipengaruhi oleh beban dari kondisi fisik jalan

2. Simpul yang terdapat didalam sistem merupakan perwakilan dari masing – masing fakultas didalam lingkungan USU.

3. Aplikasi ini diperuntukkan kepada pengguna kendaraan roda 4, karena rute optimum merupakan manhattan distance

4. Data jalan yang digunakan adalah Jalan Lokal yang merupakan jalan utama yang memiliki nama jalan di dalam lingkungan USU.


(18)

5. Simpul yang menandakan suatu fakultas di dalam sistem adalah lokasi penamaan gedung di tiap fakultas (halaman depan masing – masing fakultas)

6. Rute optimum yang diperoleh merupakan Manhattan Distance, dimana rute optimum yang diperoleh mengikuti aturan penggunaan jalan atau tidak memotong jalan.

7. Aplikasi dibangun dengan menggunakan Eclipse Java EE versi Juno + Android SDK Tools versi 21.1, Geoserver 2.3.3.

8. Aplikasi hanya digunakan pada perangkat mobile Android 2.2 atau sampai dengan versi terbaru (dalam proses pengerjaan sampai Android 4.2.2)

1.4Tujuan Penelitian

Tujuan dari penelitian ini adalah menghasilkan sebuah aplikasi yang dapat menentukan rute terpendek (memiliki total jarak terdekat) dari simpul awal hingga simpul akhir sehingga dihasilkan informasi yang dapat digunakan oleh para pengguna jalan dalam menentukan rute dilingkungan kampus Universitas Sumatera Utara. 1.5Manfaat Penelitian

Penelitian ini diharapkan dapat bermanfaat bagi masyarakat dengan menghasilkan aplikasi yang mudah digunakan untuk membantu pencarian rute terpendek. Dan diharapkan juga untuk kedepannya dapat dikembangkan lebih lanjut dalam proses mapping pada perangkat mobile.

1.6Metode Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

a. Studi Literatur

Penulisan ini dimulai dengan pengumpulan bahan referensi dari berbagai sumber seperti buku, jurnal ilmiah, makalah, halaman web, dan lain-lain yang berkaitan dengan mobile GIS dan algoritma Dijkstra sehingga tercapai tujuan dari penulisan tugas akhir ini.


(19)

b. Pengumpulan Data

Pengumpulan data yang dilakukan dapat dilakukan dengan riset lapangan secara langsung ataupun tidak langsung namun tetap mendapatkan data yang bernilai validitas yang benar.

c. Analisis dan Perancangan

Memperhitungkan dan menyesuaikan perancangan sistem dengan batasan masalah dan data-data yang diperoleh dari pengumpulan data serta kebutuhan-kebutuhan lain yang dapat menunjang tercapainya sistem yang diinginkan.

d. Implementasi dan Pengujian

Melakukan implementasi sistem sesuai rancangan yang telah dibangun sebelumnya dan melakukan pengujian algoritma Dijkstra dalam pencarian rute terpendek.

e. Dokumentasi

Melakukan dokumentasi hasil implementasi dan pengujian sistem secara tertulis dalam bentuk laporan skripsi.

1.7Sistematika Penulisan BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan skripsi.

BAB II LANDASAN TEORI

Bab ini berisi teori-teori yang berkaitan dengan penelitian tugas akhir, antara lain teori graf, peta, Algoritma Dijkstra, sistem informasi geografis dan android.

BAB III ANALISIS DAN PERANCANGAN

Bab ini berisi analisis sistem dalam pencarian rute terpendek, desain sistem dan perancangan antar muka sistem.


(20)

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pada bab ini akan membahas tentang implementasi hasil penelitian menjadi sebuah aplikasi untuk mencari rute terpendek untuk lingkungan Universitas Sumatera Utara. Kemudian melakukan pengujian terhadap aplikasi yang telah dibuat.

BAB V KESIMPULAN DAN SARAN

Hasil-hasil penelitian berupa solusi dari masalah yang diangkat dalam penelitian ini akan disimpulkan pada bab ini. selain itu pada bab ini juga berisi saran untuk penelitian kedepannya agar dapat dikembangkan atau melanjutkan penelitian yang berkaitan dengan masalah dalam penelitian ini.


(21)

BAB 2

LANDASAN TEORI 2.1 Graf

Secara matematis, graf didefinisikan sebagai pasangan himpunan (V,E), dengan notasi G = (V,E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul – simpul (vertices atau node) dan E adalah himpunan sisi (edge atau arcs) yang menghubungkan sepasang simpul [7].

Gambar 2.1. Contoh Graf

Definisi tersebut menyatakan bahwa V tidak boleh kosong, sedangkan E boleh kosong. Jadi, sebuah graf dimungkinkan tidak mempunyai sisi satu buah pun, tetapi simpulnya arus ada, minimal satu. Graf yang hanya mempunyai satu buah simpul tanpa sebuah sisi pun dinamakan graf trivial.

Terdapat beberapa terminologi dasar yang berkaitan dengan graf, antara lain :

• Bertetanggaan (Adjacent), dimana dua buah simpul pada graf tak berarah terhubung langsung dengan sebuah sisi.

• Bersisian (Incident), dimana sebuah sisi menghubungkan dua buah simpul didalam sebuah graf.

• Simpul terpencil yaitu simpul yang tidak mempunyai sisi yang bersisian dengannya atau dapat juga dinyatakan bahwa simpul terpencil adalah simpul yang tidak satupun bertetanggaan dengan simpul – simpul lainnya.

EX EY

EZ

VB

VA


(22)

• Graf kosong yaitu graf yang memiliki satu atau beberapa simpul tetapi tidak memiliki satu pun sisi didalamnya atau dapat juga dinyatakan bahwa graf kosong adalah graf yang himpunan sisinya adalah himpunan kosong.

• Derajat, yaitu jumlah sisi yang bersisian dengan simpul pada graf tak berarah.

• Lintasan, yaitu panjangnya n dari simpul awal ke simpul tujuan didalam graf.

• Siklus yaitu lintasan yang berawal dan berakhir pada simpul yang sama didalam sebuah graf.

• Terhubung, dimana terdapat suatu lintasan antara dua simpul yang berbeda, dan lain – lain.

Terdapat beberapa faktor – faktor yang membuat graf dapat di kategorikan menjadi beberapa jenis yang disebabkan oleh tujuan pembuatan suatu graf itu sendiri, antara lain berdasarkan arah dan bobot pada edge.

2.1.1 Berdasarkan Arah Pada Sisi (Edge)

Berdasarkan arah pada sisi (edge), maka graf dapat dibagi menjadi graf tak berarah dan graf berarah. Graf berarah adalah graf yang sisinya diberikan orientasi arah, baik arah tunggal ataupun arah bolak – balik, sedangkan graf tak berarah adalah graf yang sama sekali tidak memiliki arah pada sisi – sisinya.

2.1.2 Berdasarkan Bobot Pada Sisi (Edge)

Berdasarkan bobot pada sisi (edge), maka graf dapat dibagi menjadi graf berbobot dan graf tak berbobot. Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga (bobot). Bobot pada tiap sisi dapat berbeda-beda bergantung pada masalah yang dimodelkan dengan graf. Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua kota, waktu tempuh pesan dari suatu simpul komunikasi ke simpul komunikasi lainnya dalam jaringan komputer, dan lain – lain. Sedangkan graf tak berbobot adalah graf yang sama sekali tidak memiliki nilai pada masing – masing sisinya.


(23)

2.2 Algoritma Dijkstra

Algoritma Dijkstra ditemukan oleh seorang berkebangsaan Belanda yang telah menjadi ilmuan komputer yang terdepan dan menghasilkan beberapa algoritma didalam suatu graf yaitu Edsger Wybe Dijkstra. Algoritma Dijkstra menemukan rute terpendek dari sebuah simpul spesifik A menuju simpul spesifik E, jika diteruskan maka akan memberikan rute terpendek dari simpul spesifik A menuju seluruh simpul – simpul didalam sebuah graf [2].

Pseudocode algoritma Dijkstra :

Untuk setiap node tetapkan totalJarak[verteks] = HIGH verteksTerselesaikan = kosong

verteksBelumTerselesaikan = kosong

tambahkan verteksTitikAwal kedalam verteksBelumTerselesaikan totalJarak[verteksTitikAwal] = 0

selama (verteksBelumTerselesaikan tidak kosong) {

verteksEvaluasi = cariVerteksDenganTotalJarakTerkecil (verteksBelumTerselesaikan)

hapus verteksEvaluasi dari verteksBelumTerselesaikan tambahkan verteksEvaluasi ke verteksTerselesaikan evaluasiTetangga(verteksEvaluasi)

}

cariVerteksDenganTotalJarakTerkecil(verteksBelumTerselesaikan) {

temukan verteks dengan jarak terkecil dalam verteksBelumTerselesaikan dan kembalikan

}

evaluasiTetangga(verteksEvaluasi) {

untuk setiap verteksTujuan yang dapat dicapai dengan sebuah edge dari verteksEvaluasi dan bukan termasuk verteksTerselesaikan {

jarakEdge = cariJarak(edge(verteksEvaluasi, verteksTujuan)) jarakBaru = jarak[verteksEvaluasi] + jarakEdge

jika (jarak[verteksTujuan] > jarakBaru) { jarak[verteksTujuan] = jarakBaru

tambahkan verteksTujuan ke verteksBelumTerselesaikan }

} }

Algoritma Dijkstra akan mengunjungi seluruh node yang terdapat dalam suatu kesatuan graf. Satu kesatuan graf ini merupakan data tiap – tiap simpul yang berada dalam graf tersebut dengan menghubungkan nya secara bertetanggaan dengan simpul


(24)

– simpul yang lain dengan memiliki suatu nilai (dalam hal ini jarak) dalam hubungan ketetanggaannya. Algoritma ini akan memulai kerjanya setelah mendapatkan inputan simpul awal yang merupakan anggota dari kesatuan graf. Setelah mendapatkan inputan node awal, Algoritma Dijkstra akan memberikan nilai pada masing – masing simpul bernilai tak berhingga atau infinity kecuali simpul awal yang diberi nilai nol. Kemudian algoritma Dijkstra akan mengunjungi setiap simpul yang bertetanggaan dengan simpul awal dan mengambil nilai jarak diantara keduanya. Nilai jarak tersebut akan ditotalkan dengan nilai simpul awal dan kemudian dibandingkan dengan nilai simpul tetangga yang sedang dikunjungi. Apabila nilai yang baru bernilai lebih kecil daripada nilai sebelumnya maka nilai dari simpul tetangga yang sedang dikunjungi tadi akan diubah dengan nilai yang baru. Proses ini dilakukan untuk setiap simpul tetangga yang dimiliki simpul awal. Setelah seluruh simpul tetangga telah memiliki nilai baru yang tentu saja bukan lagi tak berhingga / infinity maka simpul awal dapat ditinggalkan dan proses akan kembali berulang untuk simpul yang memiliki nilai paling kecil diantara simpul tetangga. Proses ini akan terus dilakukan sampai seluruh simpul telah dikunjungi.

Pada prosesnya algoritma Dijkstra akan memberikan sebuah petunjuk pada masing – masing simpul selain inputan simpul awal yaitu sebuah kode yang menunjukkan bahwa nilai yang dimiliki sebuah simpul merupakan nilai yang paling kecil yang didapat setelah dikunjungi simpul yang lain. Kode ini berisi nama simpul yang akan digunakan dalam menyusun sebuah jalur terpendek ke simpul tersebut yang berasal dari simpul inputan awal.

Jika proses yang dilakukan oleh algoritma Dijkstra telah selesai maka kita akan mendapatkan dua hal, yaitu nilai pada masing – masing simpul dan petunjuk pada masing – masing simpul yang merupakan rute terpendek. Dengan dua hasil ini pengguna hanya perlu memberikan inputan simpul akhir maka program akan menunjukkan sebuah rute yang paling pendek untuk menuju inputan simpul akhir dari inputan simpul awal.


(25)

2.3 Sistem Informasi Geografis

Sistem informasi geografis adalah kumpulan yang terorganisir dari perangkat keras, perangkat lunak, data geografis, metode, dan personil yang dirancang secara efisien untuk memperoleh, menyimpan, memperbaharui, memanipulasi, menganalisis, dan menampilkan informasi yang bereferensi geografis. Sistem informasi geografis juga dapat dikatakan sebagai suatu sistem yang dapat memanipulasi, mengintegrasikan, menganalisa, dan menampilkan data spasial (data keruangan) yang menggunakan kondisi bumi sebagai acuan atau referensi [10].

Dari pengertian diatas, sudah jelas bahwa sistem informasi geografis menggunakan data geografis yaitu data spasial dan data atribut yang menjelaskan dan menggambarkan fitur – fitur geografis. Pada dasarnya fungsi – fungsi didalam sistem informasi geografis antara lain, data input, penyimpanan data, pemrosesan data, dan data output.

Beberapa lingkup penelitian, seperti data mining geospasial telah menarik perhatian para peneliti ilmu komputer secara signifikan dalam statistik spasial, penyimpanan spasial, manipulasi data spasial, dan visualisasi data geospasial. Dan dalam pengembangan dewasa ini, sistem informasi geografis telah bertumbuh menjadi komputasi yang aplikatif.

Sistem informasi geografis pada pengembangannya sekarang memiliki beberapa kriteria tujuan yang berbeda – beda dalam mewujudkan aplikasi penggunaannya, antara lain pemetaan kartografi, visualisasi dalam tampilan ukuran kecil, pemetaan dengan menggunakan internet (generalisasi secara streaming) dan analisis data spasial [8]. Kriteria – kriteria ini menjadi tantangan ilmuan komputer untuk terus mengembangkan sistem informasi geografis. Beberapa diantara ilmuan komputer yang mengembangkan sistem informasi geografis bahkan telah menggabungkan dua atau lebih kriteria dalam aplikasi pengembangannya, misalnya sistem informasi geografis berbasis mobile yang menerapkan kriteria visualisasi dalam tampilan ukuran kecil dengan pemetaan dengan menggunakan internet atau bahkan secara spesifik pengembang sistem akan menerapkan analisis data spasial


(26)

untuk mendapatkan informasi yang lebih kongkrit terhadap suatu masalah didalam suatu area.

Sistem informasi geografis dapat dilengkapi dengan beberapa fitur, antara lain: a. Legenda

Legenda adalah keterangan mengenai objek – objek yang terdapat didalam petayang ditampilkan dengan bentuk – bentuk yang berbeda, seperti wilayah, jalan, dan lain – lain.

b. Skala

Skala adalah perbandingan ukuran yang terdapat pada layar tatap muka dengan ukuran yang sebenarnya.

c. Zoom in/out

Fitur ini digunakan untuk memperbesar (zoom in) dan memperkecil (zoom out) tampilan peta pada layar tatap muka.

d. Pan

Fitur ini digunakan untuk dapat menggeser peta sehingga menampilkan bagian yang diinginkan.

e. Pencarian

Fitur ini digunakan untuk dapat menampilkan bagian peta sesuai input yang dimasukkan.

f. Pengukuran

Fitur ini memberikan informasi mengenai jarak antar simpul ataupun luas suatu wilayah.

g. Informasi

Fitur ini dapat menampilkan informasi mengenai suatu tempat, jalan, wilayah dan sebagainya.

h. Link

Fitur ini digunakan untuk menghubungkan peta dengan data lain seperti gambar, video, halaman web, form baru, dan lain – lain.


(27)

2.3.1 Peta

Setiap peta merupakan gambaran letak yang secara umum dihubungkan dengan planet kita (Bumi) dan dengan fitur – fitur yang ada didalamnya baik secara alami ataupun telah mendapatkan sentuhan manusia [6]. Secara garis besar, peta dibagi menjadi dua macam, yaitu peta raster dan peta vektor. Kedua jenis peta ini dapat digunakan dalam perancangan aplikasi sistem informasi geografis.

Dalam pengembangannya serta penggunaannya pengumpulan data – data mengenai suatu area yang berada di permukaan bumi, satelit paling banyak digunakan sebagai data digital suatu peta. Dengan melakukan orbitan ratusan mil diatas bumi, satelit menghasilkan fotografi dan data sensor bumi. Satelit NASA dan stasiun luar angkasa mengumpulkan data – data raster paling banyak. Dan seiring perkembangan zaman, bermunculan pihak – pihak selain pemerintahan yang secara organisasi lain yang turut serta mengumpulkan data – data walaupun semata – mata untuk kepentingan tersendiri. Pemerintah tidak menutup kemungkin dan bahkan mempertimbangkan data – data lain tersebut untuk menambahkan data – data baru serta mempertinggi tingkat akurasi data – data peta tersebut. Data – data digital ini lah yang kemudian dikembangkan kedalam dua jenis peta yaitu, peta raster dan peta vektor.

Peta raster terdiri dari serangkaian pixels (picture elements) yang disusun dalam sebuah grid. Peta raster diperoleh dari fotografi suatu areal, foto satelit atau foto permukaan bumi yang diperoleh dari komputer. Salah satu varian peta raster adalah peta hasil scanner atau scan map.


(28)

Gambar 2.2 Screenshot Peta Raster (USU)

Peta vektor terdiri dari banyak objek – objek berbasis matematis didalamnya seperti simpul, garis, dan bentuk – bentuk polygon yang memiliki properti seperti warna, ketebalan dan gaya. Peta vektor adalah jenis peta scalable yang artinya dapat dirubah ukurannya tanpa mengurangi informasi peta itu sendiri.[6]

Peta vektor juga dapat disebut sebagai hasil digitasi berdasarkan peta raster maupun tidak yang menghasilkan data vektor berupa simpul, garis, dan polygon yang dapat digunakan untuk menampilkan informasi pada peta.Simpul dapat digunakan sebagai representasi tempat, misalnya kantor pos, monument, dan lain – lain. Garis dapat digunakan sebagai representasi dari suatu jalan, rel kereta api yang menunjukkan rute didalam peta. Dan polygon dapat digunakan sebagai representasi suatu wilayah, misalnya provinsi, danau, dan lain – lain.


(29)

Gambar 2.3. Screenshot Contoh Peta Vektor (USU) [11]

Dalam lingkungan berbasis web, sebuah peta dapat dianggap sebagai sesuatu yang ditampilkan kepada para pengguna aplikasi yang menerima informasi dari server peta sebagai tanggapan dari dialog permintaan-tanggapan. Namun dalam penerapaannya pada perangkat mobile, sebuah peta juga dapat menggunakan dialog permintaan-tanggapan antara aplikasi dengan server peta, atau juga dapat menggunakan sistem penyimpanan cache (stored map) untuk sekedar menghindari pengguna online yang mungkin terbatas bagi sebagian penggunanya.

Dalam penggunaannya, peta raster dan peta vektor haruslah menggunakan sistem koordinat yang mendefenisikan suatu daerah di permukaan bumi yang digunakan. Terdapat beberapa macam jenis sistem koordinat yang ada sekarang ini,


(30)

tapi sistem koordinat latitude/longitude dan sistem Universal Tranverse Mercator (UTM) adalah yang paling sering digunakan. Sistem koordinat latitude/longitude merupakan sistem koordinat peta yang paling tua dan masih digunakan sampai sekarang dalam penentuan lokasi dibumi. Latitude merupakan jarak sudut yang diukur antara garis equator utara dengan equator selatan, sedangkan Longitude adalah jarak sudut antara meridian utama timur dengan meridian utama barat. Sistem koordinat Universal Tranverse Mercator (UTM) adalah suatu sistem koordinat modern yang dikembangkan pada tahun 1940-an, sistem ini hampir mirip dengan Latitude/Longitude, namun UTM menggunakan satuan meter. UTM memiliki koordinat yang sangat akurat dan dapat digunakan dengan mudah dalam pemahamannya.

Peta Universitas Sumatera Utara yang digunakan dalam aplikasi ini didefinisikan dalam sistem koordinat UTM adalah WGS84/UTM-Zone 47N EPSG Projection 32647 dengan pembatasan koordinat sebagai berikut :


(31)

2.3.2 Sistem Informasi Geografis Mobile (Mobile GIS)

Sistem informasi geografis (SIG) berbasis mobile adalah pengembangan bentuk baru dari embedded GIS yang tersusun dari unit mobile smart terminal, jaringan komunikasi nirkabel, server (termasuk web server, GIS server, dan server basis data) dan lokalisasi letak (termasuk lokalisasi satelit) [9]. Sistem informasi geografis (SIG) berbasis mobile juga terkadang disebut sebagai salah satu jenis SIG dimana penelitian utamanya dikhususkan terhadap pergerakan objek non geografis pada entitas keruangan geografis, oleh sebab itu SIG mobile sering kali dikaitkan dengan GPS (Global Positioning Sistem).Sebagai contoh adalah integrasi antara SIG, GPS, dan internet nirkabel untuk membangun sebuah SIG mobile untuk memantau mobil – mobil.Dimana kita melakukan analisis pergerakan mobil dalam entitas keruangan geografis, sedangkan pergerakan mobil adalah entitas non geografis.Namun belakangan ini, perkembangan SIG mobile tidak hanya digunakan untuk pergerakan objek non geografis, tetapi juga dikembangkan dalam pengambilan keputusan melalui referensi geografis, misalnya penentuan POI (Point of Interest) lokasi pariwisata.

Secara umum, arsitektur SIG mobile dikembangkan secara client-server, dimana client adalah perangkat mobile yang menerima data, baik data spasial ataupun data atribut dari server dan server adalah sebagai database yang menyimpan seluruh data yang digunakan dalam sistem informasi geografis. Namun terkadang SIG mobile juga dapat menggunakan metode stored map agar peta yang digunakan tidak perlu dipanggil dari server dan bertujuan untuk menghindari gangguan koneksi jaringan dalam penggunaannya.

2.4 Geoserver

Geoserver adalah server open source yang dibuat dengan bahasa pemrograman Java yang mengizinkan para penggunanya untuk berbagi, mengolah dan mengedit data geospasial. Geoserver dirancang agar dapat digunakan secara umum dengan melakukan proses publikasi data dari berbagai bentuk data spasial dengan menggunakan standard terbuka (dalam hal ini standard OGC atau Open Geospatial Consortium’s Standard). [12]


(32)

Geoserver awalnya merupakan sebuah projek dari Open Planning Project (TOPP) yang bertujuan membantu pemerintah New York – Amerika dalam mengatasi masalah urbanisasi. Geoserver dimasukkan dalam projek GeoTools sehingga sekarang dapat mengolah data Shapefiles, database Oracle, integrasi ArcSDE, dan lain – lain. Dan geoserver akan terus memperbaiki dan memperbaharui visi dan misi nya agar pengolahan dan penggunaan data spasial dapat diakses oleh semua orang.

Gambar 2.5. Screenshot Geoserver

Pada dasarnya, sistem informasi geografis berbasis mobile merupakan ide pengembangan oleh OnSite Enterprise yang menggunakan konsep mobilitas dan dinamisasi MapGuide. Kemudian Autodesk mengembangkan ide tersebut menjadi Location-Based Services (LBS) dengan memanfaatkan operator jaringan nirkabel. Untuk mendukung ide ini, Autodesk menciptakan LocationLogic yang menyediakan infrastruktur, layanan aplikatif, dan layanan terintegrasi dalam peluncuran, pemberdayaan serta perawatan Location-Based Services. LocationLogic ini lah yang digunakan oleh Geoserver yang menargetkan skalabitias dan transaksi high-volume operator telekomunikasi dan nirkabel. Secara spesifik, LocationLogic yang digunakan oleh Geoserver menyediakan layanan seperti, Point of Interest (POI), geocoding, perencanaan rute, peta serta integrasi profil dan koordinat lokasi penggunanya.


(33)

2.4.1 Open Geospatial Consortium (OGC) Standard

Geoserver menyajikan data dengan menggunakan protokol standard yang dicanangkan oleh Open Geospatial Consortium (OGC) [8], antara lain :

1. Web Feature Service (WFS), yang menyediakan layanan feature data seperti geometri vektor serta atributnya. Protokol ini memberikan kemampuan sistem informasi geografis untuk dapat mengolah data atribut pada setiap objek (titik, garis, atau poligon) yang terdapat dalam data spasial / peta. Dengan adanya protokol ini, pengguna maupun perancang sistem informasi geografis dapat mengolah data – data terkait untuk menghasilkan sebuah informasi baru dalam suatu tempat atau wilayah tertentu.

2. Web Map Service (WMS), yang menyediakan layanan tampilan gambaran peta atau format lainnya yang di generate dari data geografis. Protokol ini memungkinkan perancang untuk dapat menampilkan satu maupun kesatuan data spasial kedalam suatu grafis dengan format tertentu. Terdapat beberapa format yang dapat dihasilkan oleh protokol ini, misalnya openlayers, jpg, png, dan lain – lain. Namun openlayers lebih sering digunakan, karena openlayers memberikan fitur – fitur tertentu yang memberikan kelebihan tersendiri pada proses menampilkan sistem informasi geografis, seperti zoom in / zoom out, drag, dan lain – lain.

3. Web Coverage Service (WCS), yang menyediakan layanan tampilan peta raster. Protokol ini memberikan sebuah kesempatan bagi para perancang dan pengguna dalam mengolah sebuah peta tanpa proses digitasi sebelumnya. Dengan demikian, pengembangan yang lebih cepat dapat terwujud karena peta – peta yang berasal dari foto satelit akan dapat langsung diolah dalam kepentingan seseorang maupun institusi yang menggunakan data spasial dalam proses kerja dan pengembangannya.

Standarisasi ini menjadi fitur – fitur layanan minimal dalam proses pengerjaan sebuah sistem informasi geografis yang bertujuan menampilkan grafis suatu data


(34)

spasial. Sebuah sistem informasi geografis tidak dapat dirancang tanpa menggunakan protokol standard OGC dalam penerapannya. [8]

2.4.2 Shapefile (SHP)

Shapefile (.shp) merupakan format data vektor geospasial yang sangat popular. Shapefile dapat diperoleh dengan merancang data spasial dari peta konvensional maupun peta raster yang merupakan perwujudan lingkungan aslinya (misalnya peta yang berasal dari pencitraan satelit) dengan menggunakan aplikasi ArcGIS / ArcView, Quantum GIS, dan lain – lain [5].

Hasil perancangan shapefile biasanya terintegrasi dengan beberapa file yang lain (misalnya .dbf, .shx, . apr / .prj). Dan dalam penggunaannya pada geoserver, penyimpanan data shapefile harus bersamaan dengan file – file lain tersebut.

2.4.3 Styled Layer Descriptor (SLD)

Data geospasial tidak memiliki pengaturan tetap dalam hal visualisasi (misalnya data spasial berupa shapefile) [13]. Jadi untuk dapat melihat bentuk dari masing – masing data spasial tersebut maka kita perlu memberi pengaturan style pada tiap vektor data. Pengaturan ini dapat berupa pengaturan warna, ketebalan, dan lain – lain yang akan melewati proses renderisasi data pada peta.

Pada geoserver, pengaturan style dinamakan Styled Layer Descriptor (SLD) yang dibuat dalam format XML yang terintegrasi pada masing – masing layer yang akan ditampilkan yang berupa data vektor. Pengaturan pada SLD pada layer memang sedikit kompleks, dan beberapa fungsi didalamnya membutuhkan data atribut dari masing – masing data spasial (dalam hal ini shapefile), sehingga kumpulan file yang terintegrasi terhadap shapefile (.dbf, .shx, .apr / .prj) sangat diperlukan.


(35)

2.4.4 Openlayers

Openlayers adalah library javascript sisi client yang bersifat open source yang digunakan untuk membuat pemetaan web yang interaktif, dan dapat digunakan pada hampir semua browser. Karena openlayers digunakan pada client, maka tidak diperlukan perangkat lunak ataupun pengaturan khusus pada server atau para pengguna tidak perlu melakukan proses unduh apa pun. Aslinya openlayers dikembangkan oleh Metacarta, lalu dengan digunakannya openlayers pada Google Maps, openlayers telah bertumbuh menjadi framework yang terkenal dan berpengalaman karena banyaknya komunitas dan para pengembang yang mengembangkannya hingga sekarang [4].

Openlayers merupakan library Javascript murni untuk menampilkan data peta dalam berbagai web browser modern, tanpa ketergantungan server [6]. Openlayers mengimplementasikan sebuah Javascript API untuk membangun aplikasi geografis berbasis web yang setara dengan Google Maps APIs dengan perbedaan signifikan, bahwa Openlayers merupakan perangkat lunak bebas yang dikembangkan oleh dan bagi komunitas perangkat lunak Open Source.

Openlayers memudahkan para pengembang perangkat lunak untuk menampilkan peta yang dinamis pada sebuah aplikasi, hal ini memungkinkan para pengguna aplikasi dalam hal zoom in atau zoom out, maupun dragging peta, dan tentu saja masih banyak keunggulan lain yang bisa dipergunakan dalam pemakaian Openlayers seperti seleksi layer peta dan lain – lain.

Openlayers menggunakan pemodelan Client – Server sehingga inti utama penggunaannya menggunakan operasi aplikasi web. Pemodelan client juga dikatakan sebagai web map client, pada sisi client ini lah openlayers berada dan dengan tugas utamanya adalah mengambil gambar – gambar peta dari server peta dan setiap proses yang dilakukan pengguna misalnya, zoom in / out, drag, dan lain – lain maka openlayers akan mengirimkan permintaaan yang baru kepada server. Sedangkan pemodelan server juga dikatakan sebagai web map server atau map service, dimana pemodelan ini menyediakan peta itu sendiri. Web map server memiliki beberapa contoh seperti, WMS (web map service), Google Maps, Yahoo!Maps, ESRI ArcGIS,


(36)

WFS (web feature service), OpenstreetMaps, dan lain – lain. Openlayers bukan lah web map server, melainkan media yang digunakan untuk mengambil data dari server dan menampilkannya secara visual.

Openlayers menyediakan layanan dalam penggunaan web map server dalam visualisasi peta. Openlayers dapat menampilkan sebuah layer ataupun beberapa layer yang memiliki kriteria yang sama (misalnya bounding box yang membatasi panjang dan lebar tiap – tiap layer). Openlayers juga dapat menampilkan peta multi layer, dimana setiap layer berasal dari web map server yang berbeda – beda, tapi tentu saja harus memiliki kriteria yang sama.

2.5 Eclipse IDE

Eclipse awalnya dikembangkan oleh IBM dan diluncurkan pada tanggal 5 November 2011 lalu diambil alih oleh Eclipse Foundation dalam pengembangannya maupun pengaturan organisasinya [1]. Eclipse dikembangkan dengan bahasa pemrograman Java, oleh karena itu pada umumnya para pengembang aplikasi yang menggunakannya untuk membangun aplikasi dengan bahasa pemrograman Java, tapi dewasa ini Eclipse juga mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti, C/C++, Cobol, Python, Perl, PHP, Javascript, HTML, dan lain – lain.


(37)

2.5.1 Eclipse IDE for Java EE Developer

Eclipse IDE for Java EE Developer (dalam pengerjaan program ini menggunakan versi Juno) merupakan tool yang digunakan oleh pengembang Java EE dan pengembang aplikasi berbasis web. Oleh sebab itu pengembangan aplikasi berbasis Client – Server sangat dibantu dengan menggunakan tool ini, sehingga proses pengerjaan program dapat dikerjakan lebih cepat dan lebih akurat dengan adanya fitur browser yang menjadi bagian dalam Eclipse IDE for Java EE Developer.

2.5.2 Android Development Kit

Android Development Kit merupakan sebuah plugin tambahan pada Eclipse yang menghubungkan Android SDK dan Eclipse itu sendiri.Dengan adanya plugin ini maka proses pengembangan aplikasi Android akan lebih mudah untuk dilakukan baik dalam pembuatan rancangan antar muka, pemilihan Android Virtual Devices (AVD) berupa emulator maupun instalasi pada perangkat nyata [3]

2.6 Android

Android merupakan sistem operasi berbasis Linux yang dirancang untuk perangkat mobile layar sentuh seperti smartphone dan komputer tablet. Android adalah sistem operasi dan atau perangkat lunak open source namun beberapa aplikasi yang dikembangkan dan dipublikasikan dapat berupa program yang disebarluaskan secara gratis ataupun berbayar [3]

Telepon genggam biasanya menggunakan salah satu sistem operasi. Sistem operasi ini diharapkan telepon genggam menjadi standarisasi global yang sangat luas, pengembangan aplikasi – aplikasi pendukung yang hanya memerlukan penekanan dana (meminimalisasi dana sekecil mungkin), tetapi sampai munculnya sistem operasi Android, tidak ada sistem operasi lain yang memenuhi keinginan pengguna tersebut. Google sebagai pencetus sistem operasi Android pada tahun 2005 memasuki bidang pengembangan telepon genggam dan menjanjikan keterbukaan, kenyamanan, sistem pengkodean yang terbuka, dan framework pengembangan yang berteknologi tinggi.


(38)

Pada tahun 2007, sekumpulan pimpinan teratas dibidang industri seperti, Sprint Nextel, T-Mobile, Motorola, Samsung, Soni Ericson, Toshiba dan lain – lain secara bersama – sama melakukan pendekatan dengan platform Android dan membentuk Open Handset Alliance. Open Handset Alliance memiliki sebuah tujuan untuk memberikan inovasi – inovasi pengembangan dan memberikan respon yang lebih baik bagi kebutuhan pelanggan atau pengguna sistem operasi Android. Dan sekarang ini, sistem operasi Android dikembangkan untuk keperluaan operator mobile, produsen – produsen teknologi mobile, dan pengembang aplikasi (programmer, sistem analis, dan lain – lain).

Platform Android hadir dengan segala tawaran yang dibutuhkan dalam sebuah paket : sistem operasi, driver peralatan perangkat, pustaka inti, JNI, Dalvik VM yang telah dioptimalkan, dan lingkungan pengembangan dalam bahasa program Java. Jika dibandingkan dengan Java Platform Micro Edition (Java ME), Platform Android memiliki beberapa keunggulan pada beberapa kategori, antara lain :

- Dalam konfigurasi perangkat, Java ME digunakan pada dua kelas perangkat dan menawarkan solusi yang standard yang berbeda – beda terhadap kedua kelas tersebut, sedangkan Android digunakan hanya pada satu jenis pemodelan dan tidak berjalan pada perangkat teknologi rendah kecuali atau sampai konfigurasi pada perangkat tersebut ditingkatkan. - Pada pemahamannya, Java ME memiliki banyak UI model tergantung pada

fitur minimum yang disediakan oleh perangkat, sedangkan Android bergerak hanya pada satu pemodelan.

- Respon atau tanggapan yang digunakan oleh Dalvik VM Android lebih teroptimalisasi dan lebih cepat memberikan tanggapan dibandingkan dengan KVM Java ME.

- Pada kompatibilitas nya, Android berjalan pada .dex bytecode tetapi Java ME hanya berjalan pada java bytecode.

- Dalam penggunaannya dalam pengembangan, Android lebih terkoordinasi, lebih murah dalam pembiayaan, dan lebih mudah penerapannya untuk para pengembang java dibandingkan Java ME.

- Sekarang ini, Android mendukung Java SE lebih sempurna dibandingkan Java ME.


(39)

Dalam pengembangannya, Android pada umumnya dikembangkan dalam bahasa pemrograman Java dan dewasa ini berbagai Integrated Development Environment (IDE) seperti Eclipse dan Netbeans telah menyediakan fitur tambahan agar dapat dipergunakan dalam pengembangan aplikasi berbasis Android. Terdapat beberapa kebutuhan khusus agar dapat merancang aplikasi Android, seperti Android SDK, Android AVD, dan beberapa pengembang biasanya langsung menggunakan perangkat Android dalam proses kompilasi dan menjalankan programnya.

Gambar 2.7. ScreenshotAndroid SDK Manager

Gambar 2.7 menunjukkan screenshot dari sebuah Android SDK Manager yang dibutuhkan seperti Android SDK Tools dan package Android 4.2.2 (API 17) yang digunakan dalam sistem ini.


(40)

Gambar 2.8 Android Virtual Devices Manager

Gambar 2.8 menunjukkan sebuah pengaturan yang diinginkan oleh developer android di dalam Android Virtual Devices Manager. Perlu diingat bahwa target versi android yang akan digunakan sebagai emulator harus sudah diinstall pada SDK Manager. Dan layaknya sebuah perangkat mobile android juga harus memiliki spesifikasi seperti CPU yang digunakan, jenis keyboard, besar memory RAM, besar internal storage maupun external storage.


(41)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Untuk dapat memahami kebutuhan sistem dan gambaran tugas – tugas yang akan dikerjakan oleh sistem, maka dilakukan analisis dan perancangan sistem. Dalam analisis dan perancangan sistem, akan dilakukan pemodelan dalam rancang bangun sistem yang akan diimplementasikan dalam bentuk nyata.

3.1.1 Analisis Masalah

Diagram Ishikawa (fishbone diagram) biasanya disebut juga diagram sebab akibat yang biasanya digunakan untuk mengidentifikasi masalah yang ada pada sistem yang akan dirancang. Dengan diagram ini kita dapat mengidentifikasi, mengeksplorasi dan menggambarkan suatu masalah dengan mengikutsertakan sebab dan akibat dari permasalahan dalam visual grafis. Dengan demikian proses pencapaian sistem akan sangat dibantu dengan adanya Diagram Ishikawa ini.

Permasalahan utama dari sistem yang akan dikembangkan pada skripsi ini adalah bagaimana mendapatkan informasi rute terpendek pada lingkungan Universitas Sumatera Utara. Selanjutnya masalah ini diuraikan ke beberapa kategori, antara lain : pengguna sistem, peta, mesin, dan metode.

Pada pengguna sistem, tingkat mobilitas seseorang terkadang sangat tinggi sehingga hampir tidak memungkinkan untuk mendapatkan informasi dengan tingkat kesibukan yang tinggi tersebut. Peta yang digunakan masih konvensional, walaupun terdapat peta yang disediakan pada halaman website Universitas Sumatera Utara teknologi dan informasi dewasa sekarang hal ini menyulitkan seseorang untuk hanya sekedar melihat peta konvensional/statis tersebut. Sampai sekarang belum ada sistem


(42)

informasi geografis yang dapat mengolah data pada lingkungan Universitas Sumatera Utara, sehingga informasi tidak bisa didapatkan. Dengan tidak adanya sebuah sistem informasi yang mengolah data spasial, hal ini memaksa seseorang untuk melakukan hitungan manual yang menyulitkan untuk mendapatkan sebuah informasi rute terpendek di lingkungan Universitas Sumatera Utara. Dari semua masalah yang telah disebutkan diatas, maka keseluruhan kategori permasalahan tersebut dapat digambarkan pada diagram ishikawa berikut :

Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem

Masalah utama ditunjukkan pada segi empat pada posisi paling kanan (bagian kepala) diagram ishikawa. Kategori ditunjukkan pada empat persegi panjang yang masing – masing terhubung ke garis utama, sedangkan sebab – akibat ditunjukkan pada dalam bentuk tanda panah horizontal pada masing – masing kategori masalah.

3.1.2 Analisis Persyaratan (Requirement Analysis)

Dalam analisis persyaratan sistem terdapat dua bagian penting yang harus dipenuhi, yaitu analisis persyaratan fungsional dan analisis persyaratan non-fungsional.

3.1.2.1 Analisis Persyaratan Fungsional

Segala sesuatu yang harus dipenuhi sistem untuk mencapai tujuannya merupakan bagian dari persyaratan fungsional. Berikut ini merupakan beberapa persyaratan fungsional sistem yang akan dibangun, antara lain :


(43)

1. Sistem dapat membaca titik awal dan titik akhir yang dipilih pada listview.

2. Sistem harus dapat memanggil, menggunakan, dan menampilkan data ataupun informasi yang berupa data spasial maupun data atribut yang berasal dari server peta (dalam sistem ini menggunakan geoserver) agar dapat digunakan dalam pemrosesan data.

3. Sistem harus dapat menghasilkan informasi rute terpendek dengan menggunakan algoritma Dijkstra.

4. Karena sistem ini merupakan aplikasi berupa mobile GIS, maka sistem ini setidaknya harus memiliki beberapa fitur sistem informasi geografis, seperti : zoom in, zoom out, panning, dan lain – lain.

3.1.2.2 Analisis Persyaratan Non-Fungsional

Persyaratan non-fungsional adalah persyaratan apa yang harus dilakukan sistem. Persyaratan non-fungsional ini seringkali dianggap batasan-batasan atau sesuatu yang menjadi perhatian stakeholder sebuah sistem. Beberapa persyaratan non-fungsional yang harus dipenuhi didalam sistem yang akan dirancang bangun ini antara lain : 1. Sistem dapat berjalan dengan baik pada berbagai jenis processor perangkat

android.

2. Sistem harus dapat digunakan dengan cepat dan mudah oleh penggunanya.

3.1.3 Pemodelan

Pada penelitian ini digunakan UML sebagai bahasa pemodelan untuk mendesain dan merancang sistem Implementasi Algoritma Dijkstra untuk Menentukan Rute

Terpendek Berbasis Mobile GIS. Model UML yang digunakan antara lain use case diagram, activity diagram, dan sequence diagram.


(44)

3.1.3.1 Use Case Diagram

Use case diagram merupakan sebuah diagram yang memberikan gambaran fungsi – fungsi yang dikerjakan oleh sistem dan merepresentasikan interaksi antara pengguna sistem dengan sistem itu sendiri. Untuk mengidentifikasikan use case yang terlibat di dalam sistem ini, maka kita perlu menjawab beberapa pertanyaan berikut ini :

1. Siapa yang menggunakan sistem? Jawaban : Pengguna

2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban : Pengguna

3. Apa saja yang dapat dilakukan pengguna pada sistem?

Jawaban : Melihat peta referensi Universitas Sumatera Utara dan Melakukan proses pencarian rute terpendek.

Gambar 3.2. Use Case Diagram Implementasi Algoritma Dijkstra Untuk Menentukan Rute Terpendek Berbasis Mobile GIS


(45)

3.1.3.2 Activity Diagram

Berikut ini dijelaskan proses tampil peta Universitas Sumatera Utara dan pencarian rute terpendek yang terjadi pada sistem Implementasi Algoritma Dijkstra untuk Menentukan Rute Terpendek Berbasis Mobile GIS dengan menggunakan activity diagram.

3.1.3.2.1 Activity Diagram Tampil Peta USU

Tabel 3.1. Dokumentasi Naratif Use Case Tampil Peta USU Nama Use Case Tampil Peta USU

Aktor Pengguna

Deskripsi

Proses ini mendeskripsikan proses menampilkan peta lingkungan Universitas Sumatera Utara sebagai referensi dalam proses pemilihan titik awal dan titik akhir.

Prakondisi Sudah masuk kedalam aplikasi

Bidang Khas

Kegiatan Pengguna Respon Sistem 1. Pilih tampil peta.

2. Drag (geser) kiri untuk melihat legenda. 3. Drag (geser) kanan

untuk melihat peta. 4. Klik bangunan / jalan /

titik.

1. Menampilkan peta USU.

2. Menampilkan legenda.

3. Menampilkan peta USU.

4. Menampilkan

keterangan atau feature (data atribut).

Bidang Alternatif - -

Post - Kondisi Detail keterangan atau features dari masing – masing bangunan/jalan/titik.


(46)

Activity Diagram untuk tampil peta USU dapat kita lihat pada gambar

Gambar 3.3. Activity Diagram Tampil Peta USU

Pada tampilan peta USU, sistem akan menampilkan peta lingkungan Universitas Sumatera Utara. Pengguna bisa melihat peta daerah belawan yang menjadi studi kasus pada penelitian ini. Dengan melakukan proses drag (geser) maka pengguna juga dapat melihat legenda peta USU.


(47)

3.1.3.2.2 Activity Diagram Pencarian Rute Terpendek

Tabel 3.2. Dokumentasi Naratif Use Case Pencarian Rute Terpendek Nama Use Case Pencarian Rute Terpendek

Aktor Pengguna

Deskripsi

Proses ini mendeskripsikan proses pencarian rute terpendek dalam lingkungan Universitas Sumatera Utara.

Prakondisi Sudah masuk kedalam tampilan antarmuka sistem

Bidang Khas

Kegiatan Pengguna Respon Sistem 1. Pilih Menu Pencarian

Rute Terpendek 2. Pilih Titik Awal

3. Pilih Titik Akhir

4. Pilih Cari Rute Terpendek

5. Drag (geser)

5.1Drag (geser) kiri

5.2Drag (geser) kanan

1. Menampilkan Listview 2. Ubah Node pada peta

sebagai Titik Awal 3. Ubah Node pada peta

sebagai Titik Akhir. 4. Memproses pencarian

rute terpendek, menampilkan peta hasil pencarian rute terpendek atau dapat kembali ke pemilihan node.

5.1 Menampilkan total jarak hasil pencarian rute terpendek atau dapat kembali ke pemilihan node 5.2 Menampilkan teks

hasil pencarian rute terpendek atau dapat kembali ke pemilihan node.

Bidang Alternatif - -

Post - Kondisi

Sistem menampilkan rute terpendek dalam bentuk peta dan teks, serta total jarak yang harus ditempuh dari titik awal sampai titik akhir.


(48)

Activity Diagram untuk use case proses pencarian rute terpendek dapat dilihat pada gambar

Gambar 3.4. Activity Diagram Pencarian Rute Terpendek

Proses pencarian rute terpendek diawali dengan pemilihan menu pencarian rute terpendek. Sistem kemudian masuk ke layout Listview. Pengguna memilih titik awal dan titik akhir, secara otomatis dan sementara sistem akan memperbaharui peta namun belum ditampilkan. Pengguna kemudian meng-klik cari rute terpendek, maka sistem akan melakukan pemrosesan titik awal dan titik akhir dengan menggunakan algoritma Dijkstra dan menampilkan hasil berupa peta yang telah diperbaharui. Pengguna dapat melihat teks hasil pencarian rute terpendek dengan melakukan proses drag (geser) ke kanan atau melihat total jarak hasil pencarian rute terpendek dengan


(49)

melakukan proses drag (geser) ke kiri. Dan pengguna juga dapat kembali ke pemilihan node untuk memilih titik awal dan/atau titik akhir yang lain.

3.1.3.3 Sequence Diagram

Berikut ini dijelaskan proses tampil peta USU dan pencarian rute terpendek yang terjadi pada sistem penentuan rute terpendek USU dengan menggunakan sequence diagram.

3.1.3.3.1 Sequence Diagram Tampil Peta USU

Pada proses tampil peta USU, sistem akan menampilkan peta lingkungan Universitas Sumatera Utara beserta legenda peta. Sequence diagram untuk proses tampil peta USU diperlihatkan pada Gambar.

Gambar 3.5. Sequence Diagram Tampil Peta USU

Pada sequence diagram gambar terlihat proses menampilkan peta yang dimulai dengan memilih menu Enter pada tampilan awal kemudian pengguna akan dihadapkan pada beberapa pilihan pada Menu Pilihan (Option). Kemudian pengguna


(50)

akan memilih Tampil Peta, lalu sistem akan memberikan Tampilan Peta. Layout Tampilan Peta merupakan viewflipper yang mengizinkan pengguna untuk melakukan geser (drag) dan jika pengguna melakukan proses drag ke kiri maka sistem akan memberikan Tampilan Legenda.

3.1.3.3.2 Sequence Diagram Pencarian Rute Terpendek

Proses pencarian rute terpendek akan menampilkan hasil perhitungan algoritma Dijkstra berdasarkan node atau titik yang dipilih oleh pengguna. Sequence diagram yang dapat menggambarkan proses pencarian rute pada sistem dapat dilihat pada gambar.

Gambar 3.6. Sequence Diagram Pencarian Rute Terpendek

Pada sequence diagram diatas pengguna akan dihadapkan pada menu utama. Pengguna memilih Enter untuk masuk ke Menu Pilihan atau Option. Pengguna memilih menu Temukan Rute Terpendek kemudian sistem akan menampilkan Tampilan Pemilihan Node. Pada layout ini, pengguna dihadapkan pada pemilihan


(51)

Node Awal dan Node Akhir. Jika pengguna telah memilih Node Awal dan Node Akhir lalu kemudian memilih menu Temukan Rute Terpendek, maka sistem akan melakukan perhitungan algoritma Dijkstra dan secara otomatis menampilkan Tampilan Peta hasil perhitungan algoritma Dijkstra tersebut. Tampilan Peta ini merupakan viewflipper yang memperbolehkan pengguna melakukan proses geser (drag). Jika pengguna melakukan proses drag ke kiri maka sistem akan menampilkan hasil String perhitungan algoritma Dijkstra tapi jika pengguna melakukan proses drag ke kanan maka sistem akan menampilkan Total Jarak perhitungan algoritma Dijkstra.

3.2 Perancangan Sistem

Antarmuka merupakan perantara antara pengguna dengan sistem. Tampilan antarmuka sangat mempengaruhi penggunaan suatu sistem, oleh karena itu antarmuka harus dirancang sedemikian rupa sehingga memudahkan pengguna dalam menggunakan sistem tersebut. Pada tahap ini akan dilakukan perancangan antarmuka sistem yang akan digunakan dan dalam perancangannya sebagai aplikasi Android maka tampilan antarmuka ini dirancang pada masing – masing layout yang saling berintegrasi satu sama lain. Rancangan antarmuka sistem ini terdiri dari beberapa layout yang memiliki tujuan dan kegunaan yang berbeda – beda, seperti layout Tampilan Awal, layout Cara Penggunaan, layout Info Aplikasi, layout Pilihan, layout Tampil Peta USU, layout Pilih Node, dan layout Hasil. Namun dari sejumlah layout tersebut, layout Tampil Peta USU, layout Pilih Node dan layout Hasil merupakan tampilan utama yang dinamis dan akan dirancang secara khusus.

3.2.1 Antarmuka Tampil Peta USU

Antarmuka Tampil Peta USU merupakan layout yang dilihat oleh pengguna untuk hanya sekedar melihat peta USU. Layout ini memiliki fungsi ViewFlipper yang memperbolehkan pengguna untuk melakukan proses geser (drag) ke kiri dan ke kanan untuk menampilkan dua tampilan yang berbeda. Pada layout Tampil Peta USU ini terdapat dua tampilan yang berbeda antara lain tampilan peta USU dan tampilan legenda.


(52)

Gambar 3.7. Rancangan Antarmuka Tampil Peta USU

Keterangan : 1. Peta USU

Tampilan peta Universitas Sumatera Utara dari server (Geoserver) dengan view kontrol zoom in, zoom out, dan lain – lain.

2. Warna Bangunan pada Peta

Objek berbentuk yang memiliki kesamaan warna dengan polygon pada peta 3. Nama Bangunan/Tempat

Nama – nama yang mewakili polygon pada peta seperti nama fakultas, nama gedung baik secara tunggal atau kelompok.

3.2.2 Antarmuka Pilih Node

Antarmuka Pilih Node merupakan layout yang dihadapkan kepada pengguna sebagai langkah awal dari proses pencarian rute terpendek. Pada layout ini pengguna melakukan proses pemilihan node awal dan akhir yang kemudian diproses oleh program dengan menggunakan algoritma Dijkstra pada proses berikutnya.


(53)

Gambar 3.8. Rancangan Antarmuka Pilih Node

Keterangan :

1. Listview Node Awal

Digunakan untuk memilih node atau titik awal proses pencarian rute terpendek. 2. Listview Node Akhir

Digunakan untuk memilih node atau titik akhir proses pencarian rute terpendek. 3. Tombol Cari Rute Terpendek

Memverifikasi pemilihan node dan memberikan tanda mulai untuk proses pencarian rute terpendek dengan algoritma Dijkstra.

3.2.3 Antarmuka Hasil Pencarian Rute Terpendek

Antarmuka Hasil Pencarian Rute Terpendek juga merupakan layout yang memiliki fungsi View Flipper. Layout ini memiliki tiga tampilan didalamnya, antara lain Layout Hasil Tampilan Peta, Layout Hasil String, dan Layout Total Jarak. Ketiga layout tersebut merupakan hasil dari perhitungan oleh algoritma Dijkstra yang sebelumnya telah diberikan inputan pada Antarmuka Pilih Node. Dan seperti pada Antarmuka Tampil Peta, untuk berpindah ke layout satu ke layout yang lain maka pengguna haris melakukan proses geser (drag).


(54)

Gambar 3.9. Rancangan Antarmuka Hasil Pencarian Rute Terpendek

Keterangan :

1. Peta Universitas Sumatera Utara.

Peta ini telah di update dari perhitungan algoritma Dijkstra sehingga menampilkan rute terpendek secara visual. Update perhitungan algoritma Dijkstra pada peta ini menambahkan tiga bentuk baru dalam peta, antara lain lingkaran berwarna hijau yang menunjukkan node awal, garis berantai berwarna kuning yang menunjukkan rute terpendek, dan lingkaran berwarna merah yang menunjukkan node akhir. 2. Susunan teks yang berbentuk String.

Berupa rantai node – node yang dilewati pada rute terpendek mulai dari node awal hingga akhir.

3. Teks yang berupa angka desimal.

Merupakan total jarak yang dilalui dari node awal hingga node akhir pada rute terpendek.


(55)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Sistem ini dibangun dengan prinsip Client-Server, sehingga membutuhkan jaringan internet untuk menjalankannya. Namun pada penelitian ini, implementasi sistem tidak dilakukan sampai tahap penggunaan jaringan internet. Implementasi sistem ini hanya untuk mengetahui kerja sistem dan analisis algoritma Dijkstra pada sistem informasi geografis berbasis mobile.

Aplikasi ini bertujuan untuk menunjukkan rute terpendek pada lingkungan kampus Universitas Sumatera Utara walaupun hanya menggunakan node – node dan edge yang tertera pada batasan masalah yang tercantum sebelumnya. Aplikasi ini merupakan pengembangan lebih lanjut dari penelitian – penelitian sebelumnya mengenai algoritma Dijkstra pada basis lingkungan implementasi yang berbeda, seperti berbasis desktop atau berbasis web.

4.1.1 Implementasi Algoritma Dijkstra

Berikut ini simulasi proses pencarian rute terpendek pada lingkungan Universitas Sumatera Utara dengan menggunkan algoritma Dijkstra, simulasi dilakukan dengan melakukan perhitungan secara manual dengan mengambil sampel node yang digunakan pada sistem ini. Data node – node dan lokasi yang digunakan dapat dilihat pada lampiran.

Dengan melakukan pencocokan data dengan lingkungan aslinya maka dihasilkanlah graf yang dapat mewakili lingkungan nyata Universitas Sumatera Utara sebagai berikut.


(56)

Gambar 4.1. Graf Universitas Sumatera Utara

Graf yang dipergunakan dalam implementasi ini adalah graf berbobot berarah, karena dalam lingkungan yang sebenarnya tidak semua jalan pada lingkungan


(57)

Universitas Sumatera Utara yang memiliki fungsi dua arah (bidirection). Graf ini hanya sebagai referensi lingkungan sebenarnya, ketidaksesuaian antara nilai bobot dan bentuk garis yang mewakili jalan secara visual harap dimaklumi.

Misalkan kita ingin melakukan proses pencarian rute terpendek dengan input sebagai berikut :

Titik Awal = Gerbang I (kode node: T0)

Titik Akhir = Persimpangan Jl. Tridarma – Jl. Prof. Dr. Sofian (kode node: T6)

Dengan mengikuti prosedur cara penggunaan, maka proses selanjutnya merupakan perhitungan oleh algoritma Dijkstra. Pada proses kerjanya, algoritma Dijkstra hanya memerlukan input titik awal dan melakukan perhitungan jarak – jarak terpendek untuk semua titik yang lain didalam suatu graf. Dan jika algoritma ini telah selesai dieksekusi maka kita akan mendapatkan rute – rute yang dilalui titik awal , dalam hal ini Gerbang I (kode node : T0), ke seluruh node dalam graf tersebut.

Dan langkah selanjutnya adalah memilih salah satu rute yang merupakan pasangan titik awal dan titik akhir. Jadi kita hanya perlu memilih rute yang kita inginkan, dalam hal ini Persimpangan Jl. Tridarma – Jl. Prof. Dr. Sofian (kode node : T6). Untuk lebih jelasnya proses perhitungan algoritma Dijkstra untuk contoh diatas dapat dilihat pada tabel dibawah ini.


(58)

(59)

(60)

1. Langkah 1

Pada langkah ini akan akan dilakukan inisialisasi nilai infinity (tak terhingga) pada seluruh node kecuali node T0 yang diberi nilai 0 (nol). Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T0 yang memiliki nilai paling kecil.

2. Langkah 2

Pada langkah ini, proses dilakukan pada node T0. Node ini memiliki tetangga yang bisa dikunjungi, yaitu node T19 dan node T21 yang memiliki jarak secara berturutan (0)+50 dan (0)+50 dari node awal. Karena nilai 50 dan 50 lebih kecil daripada infinity maka nilai node T19 dan node T21 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T19 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T19] dengan total jarak 50 (dalam satuan meter). Dan pada langkah selanjutnya node T0 tidak perlu dikunjungi lagi.

3. Langkah 3

Pada langkah ini, proses dilakukan pada node T19. Node ini memiliki tetangga yang bisa dikunjungi, yaitu node T20 yang memiliki jarak (50)+200 dari node awal. Karena nilai 250 lebih kecil daripada infinity maka nilai node T20 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T21 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T21] dengan total jarak 50 (dalam satuan meter). Dan pada langkah selanjutnya node T19 tidak perlu dikunjungi lagi.

4. Langkah 4

Pada langkah ini proses dilakukan pada node T21. Node ini memiliki tetangga yang bisa dikunjungi, yaitu node T23 dan node T40 yang memiliki jarak secara berturutan (50)+100 dan (50)+150 dari node awal. Karena nilai 150 dan 200 lebih kecil daripada infinity maka nilai node T23 dan T40 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T23 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T21-T23] dengan total jarak 150 (dalam satuan meter). Dan pada langkah selanjutnya node T21 tidak perlu dikunjungi lagi.


(61)

5. Langkah 5

Pada langkah ini proses dilakukan pada node T23. Node ini memiliki tetangga yang bisa dikunjungi yaitu node T22 yang memiliki jarak (150)+50 dari node awal. Karena nilai 200 lebih kecil daripada infinity maka nilai node T22 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T22 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T21-T23-T22] dengan total jarak 200 (dalam satuan meter). Dan pada langkah selanjutnya node T23 tidak perlu dikunjungi lagi.

6. Langkah 6

Pada langkah ini proses dilakukan pada node T22. Node ini tidak memiliki tetangga yang bisa dikunjungi lagi. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T40 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T21-T40] dengan total jarak 200 (dalam satuan meter). Dan pada langkah selanjutnya node T22 tidak perlu dikunjungi lagi.

7. Langkah 7

Pada langkah ini proses dilakukan pada node T40. Node ini memiliki tetangga yang bisa dikunjungi yaitu node T24 yang memiliki jarak (200)+150 dari node awal. Karena nilai 350 lebih kecil daripada infinity maka nilai T24 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T20 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T19-T20] dengan total jarak 250 (dalam satuan meter). Dan pada langkah selanjutnya node T40 tidak perlu dikunjungi lagi.

8. Langkah 8

Pada langkah ini proses dilakukan pada node T20. Node ini memiliki tetangga yang bisa dikunjungi yaitu node T11 yang memiliki jarak (250)+50 dari node awal. Karena nilai 300 lebih kecil daripada infinity maka nilai T11 diubah menjadi nilai tersebut. Lalu dilakukan perbandingan nilai seluruh node dan terpilihlah node T11 yang memiliki nilai paling kecil. Pada langkah ini didapat rute [T0-T19-T20-T11] dengan total jarak 300 (dalam satuan meter). Dan pada langkah selanjutnya node T20 tidak perlu dikunjungi lagi.

9. Langkah 9

Pada langkah ini proses dilakukan pada node T11. Node ini memiliki tetangga yang bisa dikunjungi yaitu node T10 yang memiliki jarak (300)+300 dari node


(1)

<Rule>Name>Line 37</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge37</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 38</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge38</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 39</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge39</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter>

</Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 40</Name>


(2)

<ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge40</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 41</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge41</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 42</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge42</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 43</Name> <ogc:Filter>


(3)

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge43</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 44</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge44</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 45</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge45</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 46</Name> <ogc:Filter>


(4)

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge46</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 47</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge47</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 48</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>EDGE</ogc:PropertyName> <ogc:Function name="env">

<ogc:Literal>edge48</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> <Rule><Name>Line 49</Name> <ogc:Filter>

<ogc:PropertyIsEqualTo>


(5)

<ogc:Function name="env"> <ogc:Literal>edge49</ogc:Literal> <ogc:Literal>0</ogc:Literal>

</ogc:Function></ogc:PropertyIsEqualTo></ogc:Filter> <LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#FFFF00</CssParameter> <CssParameter name="stroke-width">2</CssParameter> </Stroke>

</LineSymbolizer></Rule> </FeatureTypeStyle> </UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

polygon_bggdng.sld

<?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0"

xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <NamedLayer>

<Name>polygon_bggdng</Name> <UserStyle>

<Title>Polygon BGGDNG</Title>

<Abstract>A sample style that draws a polygon</Abstract> <FeatureTypeStyle>

<Rule><Name>rule1</Name>

<Title>White Polygon with Black Outline</Title>

<Abstract>A polygon with a gray fill and a 1 pixel black outline</Abstract> <PolygonSymbolizer>

<Fill><CssParameter name="fill">#FFFFFF</CssParameter></Fill> <Stroke>

<CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke>

</PolygonSymbolizer></Rule> </FeatureTypeStyle>

</UserStyle> </NamedLayer>


(6)

</StyledLayerDescriptor>

polygon_bg.sld

<?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0"

xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <NamedLayer>

<Name>default_polygon</Name> <UserStyle>

<Title>Default Polygon</Title>

<Abstract>A sample style that draws a polygon</Abstract> <FeatureTypeStyle>

<Rule><Name>rule1</Name>

<Title>Gray Polygon with Black Outline</Title>

<Abstract>A polygon with a gray fill and a 1 pixel black outline</Abstract> <PolygonSymbolizer>

<Fill><CssParameter name="fill">#AAAAAA</CssParameter></Fill> <Stroke>

<CssParameter name="stroke">#000000</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke>

</PolygonSymbolizer></Rule> </FeatureTypeStyle>

</UserStyle> </NamedLayer>