Upload
ozcar-djarot
View
424
Download
16
Embed Size (px)
DESCRIPTION
gis
Citation preview
PENENTU RUTE TERPENDEK PARIWISATA KOTA
MALANG MENGGUNAKAN GIS DENGAN FUNGSI
SHORTEST PATH ASTAR
SKRIPSI
Oleh:
MUHAMMAD MUTTAQIN
NIM. 04550078
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MALANG
2009
i
PENENTU RUTE TERPENDEK PARIWISATA KOTA
MALANG MENGGUNAKAN GIS DENGAN FUNGSI
SHORTEST PATH ASTAR
SKRIPSI
Diajukan Kepada:
Jurusan Teknik Informatika Universitas Islam Negeri Malang
Sebagai Salah Satu Persyaratan Untuk Memperoleh
Gelar Sarjana Komputer (S.Kom)
Oleh:
Muhammad Muttaqin
NIM. 04550078
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MALANG
2009
ii
PENENTU RUTE TERPENDEK PARIWISATA KOTA
MALANG MENGGUNAKAN GIS DENGAN FUNGSI
SHORTEST PATH ASTAR
SKRIPSI
Oleh:
MUHAMMAD MUTTAQIN
NIM. 04550078
Telah Disetujui untuk Diuji
Malang, 17 April 2009
Pembimbing I
Syahiduzzaman, M.Kom
NIP. 150 368 777
Pembimbing II
M. Ainul Yaqin, M.Kom
NIP. 150 377 940
Mengetahui,
Ketua Jurusan Teknik Informatika
Suhartono, M.Kom
NIP. 150 327 241
iii
PENENTU RUTE TERPENDEK PARIWISATA KOTA
MALANG MENGGUNAKAN GIS DENGAN FUNGSI
SHORTEST PATH ASTAR
SKRIPSI
Oleh:
MUHAMMAD MUTTAQIN
NIM. 04550078
Telah Dipertahankan di Depan Dewan Penguji Skripsi
dan Dinyatakan Diterima Sebagai Salah Satu Persyaratan
untuk Memperoleh Gelar Sarjana Komputer (S.Kom)
Tanggal: 17 April 2009
Susunan Dewan Penguji: Tanda Tangan
1. Penguji Utama : Totok Chamidy, M.Kom ( )
NIP. 150 381 177
2. Ketua : Ir. M. Amin Hariyadi, M.T ( )
NIP. 150 368 791
3. Sekretaris : Syahiduzzaman, M.Kom ( )
NIP. 150 368 777
4. Anggota : M. Ainul Yaqin, M.Kom ( )
NIP. 150 377 940
Mengetahui dan Mengesahkan,
Ketua Jurusan Teknik Informatika
Suhartono, S.Si, M.Kom
NIP. 150 327 241
iv
MOTTO
‘Sesungguhnya sesudah kesulitan itu ada kemudahan’ (Qs. Al-Insyiroh: 6)
”Memelihara apa yang baik dari masa lampau, menggunakan hanya
yang lebih baik yang ada dalam hal yang baru dan menciptakan
sesuatu yang baru” (Gus Dur)
v
PERSEMBAHAN
Saya persembahkan karya ini untuk:
Kedua Orang Tua tercinta yang mengabdikan hidup dan membimbing penulis untuk tahu tentang segalanya
Guru-guru saya yang telah banyak memberikan pengetahuan dan pengalamanya kepada penulis
Saudara-saudaraku yang telah memberikan motivasi agar cepat menyelesaikan skripsi. Khususnya buat mbak sun, mbak imah, mba Nur, kak Qodir, kak Uqis, adekQ iin cinut serta mas Nur Said, Muhtarom dan Aris. Terima kasih atas budi baiknya. Juga buat keponakan-keponakanku Ela,
Umam, Fajar, Meya, “cilik” Lia, Salma dan Nadia (onad). Terimakasih atas spirit yang kalian berikan lewat canda tawa
Serta buat seluruh pengabdi pengetahuan
vi
LEMBAR PERNYATAAN
Saya yang bertanda tangan dibawah ini :
Nama : Muhammad Muttaqin
NIM : 04550078
Jurusan : Teknik Informatika
Judul Tugas Akhir : PENENTU RUTE TERPENDEK PARIWISATA
KOTA MALANG MENGGUNAKAN GIS DENGAN
FUNGSI SHORTEST PATH ASTAR
Dengan ini menyatakan bahwa :
1. Isi dari tugas Akhir yang saya buat adalah benar-benar karya sendiri dan
tidak menjiplak karya orang lain, selain nama-nama termaktub di isi dan
tertulis di daftar pustaka dalam Skripsi ini.
2. Apabila dikemudian hari ternyata Skripsi saya tulis terbukti hasil jiplakan,
maka saya akan bersedia menanggung segala resiko yang akan saya
terima.
Demikian pernyataan ini dibuat dengan segala kesadaran.
Malang, 17 April 2009
Yang menyatakan,
Muhammad Muttaqin
NIM. 04550078
vii
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah memberikan iman, kekuatan,
kesehatan, semangat yang tinggi, serta semua kekayaan, nikmat dan karunia yang
telah dilimpahkan kepada penulis sehingga penulis dapat menyelesaikan karya
ilmiah dengan judul “PENENTU RUTE TERPENDEK PARIWISATA KOTA
MALANG MENGGUNAKAN GIS DENGAN FUNGSI SHORTEST PATH
ASTAR”. Penelitian ini dimaksudkan untuk memenuhi salah satu syarat dalam
meraih gelar Sarjana Komputer di Fakultas Sains dan Teknologi Universitas Islam
Negeri (UIN) Malang.
Sholawat dan salam penulis sampaikan kepada Nabi muhammad SAW,
lewat perjuangannya penulis bisa merasakan nikmatnya iman dan Islam.
Alhamdulillah penulis bisa menyelesaikan skripsi ini, meskipun penulis
menyadari masih banyak kekurangan. Sejak awal sampai dengan akhir penulisan
ini, tidak sedikit bantuan yang penulis terima sehingga dalam kesempatan ini
penulis ingin menyampaikan terima kasih kepada :
1. Allah SWT yang telah memberikan Berkah, Rahmat dan Hidayah-Nya
hingga terselesaikannya tugas akhir ini.
2. Bapak Prof. Dr. Imam Suprayoga, selaku rektor Universitas Islam Negeri
(UIN) Malang.
3. Bapak Dr. Sutiman, selaku dekan Fakultas Sains dan Teknologi
Universitas Islam Negeri (UIN) Malang.
viii
4. Bapak Suhartono, M.Kom selaku ketua jurusan Teknik Informatika
Fakultas Sains Dan Teknologi Universitas Islam Negeri (UIN) Malang.
5. Bapak Syahiduzzaman, M.Kom. selaku dosen pembimbing dalam
pengerjaan tugas akhir ini yang telah memberikan kritik, saran,
kemudahan dan kepercayaan dalam pengerjaan tugas akhir ini.
6. Bapak M. Ainul Yaqin, M. Kom. selaku dosen pembimbing integrasi sains
dan Islam Universitas Islam Negeri (UIN) Malang, yang telah memberi
masukan, saran serta bimbingan dalam proses menyelesaikan skripsi ini.
7. Terimakasih kepada kedua orang tuaku yang telah memberikan segalanya,
demi untuk keberhasilan dan kebaikan penulis. Orang tuaku: inspirator dan
motivatorku.
8. Terimakasih buat ketiga mbakku (mabak coen, mbak imah, mbak nur)
sekeluarga, kedua kakakku (kak qodir n family, kak uqis), adikku (iin), lek
darso (alm) sekeluarga, afroyin, arum, fariz dan semua familyku yang
tidak bisa kusebutkan satu persatu.
9. Teman-teman Teknik Informatika, Zaenal Arifin, S.Kom, Tri Syawal,
S.Kom, Ivana Varita, S.Kom yang telah memberikan bantuan dalam
menyelesaikan tugas akhir ini.
10. Anak-anak Teknik Informatika yang juga teman bermain dan belajar,
brutus, bdmn arif, bledus, c4tour, cepung, jekri, kupret, figi, pardoyo,
pelor, puma, surmani, sontol, dan teman-teman yang lainnya, terimakasih
atas tambahan pengalamannya.
ix
11. Tidak lupa juga semua teman-teman kosan KL-27 (dedy boun-dead, faiz
k-cong, mbah Rooney, Mir-I, baba Ucok, elvan) yang telah banyak
memberikan motivasi dan penyegaran di hati.
12. Dan semua pihak yang tidak dapat saya sebutkan satu-persatu, kami
ucapkan terimakasih banyak atas bantuan, dan motifasinya.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna, oleh
karena itu kritik dan saran yang sifatnya membangun sangat diperlukan untuk
memperbaiki mutu penulisan selanjutnya dan juga kebaikan penulis secara
pribadi.
Malang, 17 April 2009
x
DAFTAR ISI
Halaman
HALAMAN JUDUL ...................................................................................... i
HALAMAN PERSETUJUAN ......................................................................... ii
HALAMAN PENGESAHAN ......................................................................... iii
MOTTO ........................................................................................................... iv
LEMBAR PERSEMBAHAN .......................................................................... v
LEMBAR PERNYATAAN ............................................................................. vi
KATA PENGANTAR ..................................................................................... vii
DAFTAR ISI .................................................................................................... x
DAFTAR GAMBAR ....................................................................................... xii
DAFTAR TABEL ............................................................................................ xiii
DAFTAR LAMPIRAN .................................................................................... xiv
ABSTRAK ...................................................................................................... xv
BAB I PENDAHULUAN 1.1 Latar Belakang ......................................................................... 1
1.2 Rumusan Masalah .................................................................... 7
1.3 Batasan Masalah ...................................................................... 7
1.4 Tujuan Penelitian ..................................................................... 8
1.5 Manfaat Penelitian ................................................................... 8
1.6 Metode Penelitian .................................................................... 9
1.7 Sistematika Penulisan .............................................................. 10
BAB II LANDASAN TEORI 2.1 Profil Geografis Kota Malang .................................................. 12
2.1.1 Letak Geografis ............................................................. 12
2.1.2 Iklim .............................................................................. 12
2.1.3 Keadaan Geologi ........................................................... 13
2.1.4 Jenis Tanah .................................................................... 13
2.2 Sistem Informasi Geografis ..................................................... 13
2.3 Agoritma A Star ....................................................................... 18
2.3.1 Deskripsi Algoritma Astar ............................................. 21
2.3.2 Sifat Algoritma Astar .................................................... 22
2.3.3 Kompleksitas ................................................................. 23
2.3.4 Fungsi-fungsi heuristik .................................................. 23
2.4 ArcView ................................................................................... 24
2.5 Web Sistem Informasi Geografis ............................................. 29
2.6 MapServer ................................................................................ 33
2.7 Chameleon ............................................................................... 38
2.7.1 Pengenalan Chameleon ................................................... 38
2.7.2 Menggunakan Fungi Chameleon .................................... 39
2.8 MapScript ................................................................................. 40
2.8.1 MapScript Environment ................................................... 40
2.9.2 Map File ........................................................................... 41
2.9.3 MapScript Objek .............................................................. 43
2.9 PostgreSQL ............................................................................... 45
2.10 PostGIS .................................................................................. 51
xi
2.11 PgRouting ............................................................................... 52
BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 Analisis Sistem ......................................................................... 53
3.1.1 Analisis Kebutuhan Sistem ............................................. 53
3.1.2 Spesifikasi Aplikasi ........................................................ 55
3.1.3 Lingkungan operasi ......................................................... 55
3.2 Perancangan Sistem ................................................................. 57
3.3 Perancangan Aplikasi web Penentu Rute Terpendek .............. 58
3.3.1 Perancangan Modul Aplikasi .......................................... 58
3.3.1.1 Modul Aplikasi Peta ............................................ 58
3.3.1.2 Modul Aplikasi Web ............................................ 60
3.3.2 Perancangan Basis Data .................................................. 61
BAB IV HASIL DAN PEMBAHASAN 4.1 Implementasi ............................................................................ 75
4.1.1 Ruang lingkup Perangkat Keras ...................................... 75
4.1.2 Ruang lingkup Perangkat Lunak ..................................... 76
4.1.3 Implemantasi Database ................................................... 76
4.1.4 Implementasi Antarmuka ................................................ 79
4.2 Pembahasan .............................................................................. 85
4.2.1 Input Data ......................................................................... 85
4.2.2 Pencarian Rute Terpendek Menggunakan Fungsi Astar .. 88
4.2.3 Edit Data .......................................................................... 94
4.2.3 Tampilan Peta ................................................................. 98
BAB V PENUTUP 5.1 Kesimpulan .............................................................................. 107
5.2 Saran ........................................................................................ 108
DAFTAR PUSTAKA
LAMPIRAN
xii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Arsitektur WEB SIG ................................................................. 30
Gambar 2.2 perbandingan Thin dan
Thick Sistem Pada Sistem Clien Server .............................................. 31
Gambar 2.3 Arsitektur Peta Dalam Halaman Web ....................................... 35
Gambar 2.4 Arsitektur Mapserver ................................................................ 37
Gambar 2.5 Konfigurasi Chameleon
yang digunakan dengan MapServer ................................................... 38
Gambar 2.6 Proses Mapscript Pada Web Server .......................................... 40
Gambar 2.7 Cara kerja modul pgRouting ..................................................... 52
Gambar 3.1 Alur proses modul visualisasi data Peta .................................... 59
Gambar 3.2 Alur kerja modul query posisi ................................................... 60
Gambar 3.3 Blok Diagram Database ............................................................ 61
Gambar 3.4 Simbol Dalam DFD .................................................................. 62
Gambar 3.5 Konteks Diagram Penentu Rute Terpendek .............................. 62
Gambar 3.6 DFD Level 1 Penentu Rute Terpendek ..................................... 64
Gambar 3.7 DFD Level 2 Subproses peta .................................................... 65
Gambar 3.8 DFD Level 3 sub proses form_rute_terpendek ........................ 66
Gambar 3.9 DFD Level 3 Subproses web_GIS Penentu rute terpendek ...... 66
Gambar 3.10 DFD Level 2 Subproses Administrator ................................... 67
Gambar 3.11 DFD Level 2 sub proses Informasi ......................................... 68
Gambar 3.12 ERD Penentu Rute Terpendek Wisata Kota Malang .............. 69
Gambar 4.1 Diagram Konversi Data ............................................................ 77
Gambar 4.2 Menu Utama Admin ................................................................. 81
Gambar 4.3 Halaman Utama Untuk User ..................................................... 82
Gambar 4.4 Halaman Utama Untuk Pengunjung.......................................... 84
Gambar 4.5 Form Input Objek Wisata Kedalam Peta .................................. 85
Gambar 4.6 Form Input Informasi Objek Wisata ......................................... 86
Gambar 4.7 Form Tambah Modul ................................................................ 88
Gambar 4.8 Form Rute A star ....................................................................... 89
Gambar 4.9 Form Hasil Pencarian Rute Terpendek A Star .......................... 91
Gambar 4.10 Preview Rute Terpendek A Star ............................................. 94
Gambar 4.11 Form Edit Informasi Obyek Wisata ........................................ 95
Gambar 4.12 Form Edit Posisi Obyek Wisata .............................................. 97
Gambar 4.13 Form Edit Data Jalan ............................................................... 98
Gambar 4.14 Form Edit Modul ..................................................................... 98
Gambar 4.15 Form Edit Pengumuman ......................................................... 99
Gambar 4.16 Tampilan Halaman Peta .......................................................... 99
Gambar 4.17 Hasi Querry Pada Data Jalan .................................................. 101
xiii
DAFTAR TABEL
Halaman
Table 2.1 Prinsi-prinsip Pengembangan SIG ...................................................... 30
Tabel 3.1 vertice_tmp ......................................................................................... 70
Tabel 3.2 geometry_columns .............................................................................. 71
Tabel 3.3 spatial_ref_sys .................................................................................... 71
Tabel 3.4 Users ................................................................................................... 71
Tabel 3.5 Agenda ................................................................................................ 71
Tabel 3.6 Benner ................................................................................................. 71
Table 3.7 Hubungi .............................................................................................. 72
Tabel 3.8 berita ................................................................................................... 72
Tabel 3.9 modul .................................................................................................. 72
Tabel 3.10 pengumuman ..................................................................................... 73
Tabel 3.11 lokasiwisata ....................................................................................... 73
Tabel 3.12 asjalan ............................................................................................... 73
Tabel 3.13 kecamatan ......................................................................................... 74
Tabel 3.14 wst ..................................................................................................... 74
Tabel 3.15 astar_result ........................................................................................ 74
xiv
DAFTAR LAMPIRAN
1. Lampiran A Instalasi Program
Instalasi Mapserver dan PostgreSQL ................................................... 111
Eksport data jalan dengan shp2pgsql ................................................... 120
Skrip routing core (A Star) .................................................................. 121
Skrip routing core_wrapper (A Star) .................................................. 122
2. Lampiran B Perijinan Penelitian…………………………………………. 132
xv
ABSTRAK
Muttaqin, Muhammad. 2009. 04550078. Penentu Rute Terpendek Pariwisata Kota
Malang Menggunakan GIS Dengan Fungsi Shortest Path Astar.
Pembimbing : (I) Syahiduzzaman, M.Kom, (II) M. Ainul Yaqin, M.Kom.
Kata Kunci : Sistem Informasi Geografis, Mapserver, PostgreSQL/PostGIS,
Shortest Path Astar, pgRouting.
Sistem informasi geografis sebagai salah satu bidang ilmu yang tergolong
baru, saat ini telah mampu menyelesaikan permasalahan routing, baik untuk
masalah pencarian rute terpendek (shortest path), maupun masalah TSP (travelling
salesman problem). Saat ini banyak dikembangkan aplikasi-aplikasi GIS baik
yang berbasis desktop maupun berbasis web dalam berbagai bidang, seperti GIS
untuk perencanaan tata ruang wilayah, GIS untuk pertanian, perdagangan, dan
lain-lain. Namun demikian masih sedikit sekali pengembangan aplikasi GIS yang
mampu menyelesaikan masalah perutean (routing) pada peta geografis, hal ini
dimungkinkan karena masih sedikitnya referensi mengenai masalah routing untuk
peta geografis.
Dalam skripsi ini akan dibangun aplikasi web-based GIS untuk
menentukan rute terpendek pariwisata di kota malang, sehingga nantinya sistem
aplikasi ini dapat membantu wisatawan untuk mengetahui jalan terpendek yang
harus dilewati dari satu obyek wisata menuju obyek wisata yang lainnya. Aplikasi
penentu rute terpendek ini dibuat menggunakan fungsi shortest path astar yang
dimiliki modul pgRouting, yang merupakan fungsi tambahan dari
PostgreSQL/PostGIS untuk menangani masalah routing pada peta geografis.
Aplikasi ini juga menggunakan mapscript sebagai modul yang digunakan untuk
membuat fungsi dan class MapServer agar dapat dijalankan di PHP. Sedangkan
MapServer sendiri adalah sebuah layanan untuk memproses dan menampilkan
data spasial yang berasal dari database. Untuk sistem manajemen basisdatanya,
digunakan DBMS PostgreSQL/PostGis yang sudah mendukung tipe data spasial.
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
“Tidakkah kamu perhatikan Sesungguhnya Allah Telah menundukkan
untuk (kepentingan)mu apa yang di langit dan apa yang di bumi dan
menyempurnakan untukmu nikmat-Nya lahir dan batin. dan di antara manusia
ada yang membantah tentang (keesaan) Allah tanpa ilmu pengetahuan atau
petunjuk dan tanpa Kitab yang memberi penerangan”.(QS. Luqman, 31: 20)
Segala nikmat yang terhampar bersumber dari-Nya. Karena itu, seseorang
tidak boleh sombong, tidak juga menyebut-nyebut kelebihan yang diperolehnya,
karena Allah dapat saja mencabut darinya dan memberi kepada siapa yang Dia
hina dan lecehkan . Dari sini, ayat diatas berlanjut menyatakan: Tidakkah engkau
wahai Nabi Muhammad atau siapa saja melihat dan memperhatikan bahwa
sesungguhnya Allah telah menundukkan untuk kepentingan kamu apa yang ada
dilangit seperti udara, matahari, bulan, bintang-bintang, angin dan sebagainya dan
menundukkan juga untuk kemaslahatan kamu apa yang ada di bumi seperti
gunung-gunung, tumbuh-tumbuhan, laut dan sungai serta segala isinya. Dan
disamping itu, Dia menyempurnakan serta menganugerahkan secara luas bagi
kamu nikmat-Nya yang lahir seperti kesehatan dan kelengkapan anggota tubuh,
harta benda, kedudukan, dan keturunan dan, juga nikmat-Nya yang batin seperti
ketenangan batin dan kedamaian, optimisme, akal, emosi, dan lain-lain. Dia yang
2
menundukkan dan menganugerahkan kepada kamu semua itu, berkuasa juga
mencabut semua atau sebagian dari nikmat-nikmat itu. Karena itu janganlah
angkuh, jangan juga berbangga melampaui batas, apalagi mempersekutukan Allah
dan menyembah selain-Nya.
Penundukan dan penganugerahan nikmat-nikmat itu demikian jelas,
namun manusia berbeda-beda dalam menyambutnya. Ada di antara kamu yang
patuh kepada Allah serta mengakui keEsaan-Nya, serta mensyukuri nikmat-
nikmat itu. Dan di antara manusia ada yang membantah tentang keEsaan, agama,
dan tuntunan Allah dengan bantahan tanpa dasar ilmu pengetahuan yang
diperolehnya dari siapapun yang memiliki otoritas, baik secara langsung maupun
tertulis. Bahkan dia membantah setelah ilmu membuktikan kebatilan
pandangannya, atau membantah tanpa berdasarkan petunjuk, yakni hasil
pengembangan nalar atau jiwanya yang suci dan objektif atau tanpa kitab yang
bercahaya yakni keterangan kitab suci yang dapat dijadikan pelita hidup serta
memberi penerangan kepada kebenaran.
Kata sakhkhara berarti menundukkan sesuatu sehingga melakukan apa
yang dikehendaki oleh yang menundukkannya. Sama seperti pena yang
ditundukkan oleh seorang penulis. Ia akan menulis sesuai kehendak penulisnya,
yang menundukkan alam raya adalah Allah SWT, penundukannya untuk manusia.
Allah menundukkan dengan menciptakan hukum-hukum alam, lalu manusia
diilhami-Nya pengetahuan sehingga mampu menggunakan hukum-hukum alam
itu untuk menjadikan alam dapat melakukan apa yang dikehendaki namusia atas
izin Allah SWT. Selanjutnya karena penundukan Allah itu dimaksudkan-Nya
untuk kepentingan manusia, maka Allah memberi kewenangan dan kemampuan
3
untuk mengelola alam raya. Dia Yang Maha Kuasa itu memerintahkan manusia
untuk mengelola sesuai konsep yang dikehendaki-Nya. Namun dalam saat yang
sama, konsep itu merupakan ujian buat manusia. Dia dapat melaksanakannya dan
untuk itu dia mendapat ganjaran, atau mengabaikannya dan ini mengakibatkan
kesengsaraan paling tidak di akhir nanti. Jadi sekali lagi yang menundukkan
adalah Allah, bukan manusia. (M. Quraish Shihab, 2002).
Dari kutipan ayat dan tafsir diatas dapat diambil suatu penjelasan
bahwasannya dalam ayat tersebut Allah SWT telah menundukkan segala yang ada
di langit dan di bumi sebagai bukti dari sifat Rahman-Nya, dan sekaligus sebagai
penyempurna nikmat yang di berikan kepada semua umat manusia, baik yang
berupa nikmat lahir maupun batin. Untuk itu tugas manusia adalah menggunakan
dengan sebaik-baiknya nikmat yang dianugerahkan allah SWT untuk melakukan
hal-hal yang bermanfaat bagi kehidupan, dalam ayat tersebut allah SWT
memberikan nikmat kepada manusia berupa kewenangan dan kemampuan untuk
mengelola sumber daya alam raya dengan sebaik-baiknya, karena di alam raya ini
terdapat banyak sekali ilmu/pelajaran yang bisa diambil, selain juga terdapat
banyak potensi yang bisa bisa dimanfaatkan untuk kesejahteraan hidup orang
banyak, salah satu pemanfaatan potensi alam adalah pemanfaatan hutan sebagai
suatu sumber daya hayati yang menjadi paru-paru dunia, pemanfaatan alam
sebagai potensi pariwisata dan banyak lagi potensi alam yang bermanfaat bagi
kehidupan. Dalam ayat tersebut juga dijelaskan bahwa manusia dianugerahi allah
SWT akal fikiran, maka hendaknya manusia menggunakan akal fikiran tersebut
untuk menggali ilmu pengetahuan yang ada di alam semesta ini, karena
sesungguhnya semua ciptaan allah pasti memiliki manfaat, dan adalah tugas
4
manusia sebagai makhluk yang dianugerahi akal fikiran untuk mencari tahu
manfaat yang ada pada ciptaan allah tersebut. Hal ini sesuai dengan firman allah
SWT pada surat Ar Ra‟d ayat 4 sebagai berikut:
“Dan di bumi ini terdapat bagian-bagian yang berdampingan, dan kebun-
kebun anggur, tanaman-tanaman dan pohon korma yang bercabang dan yang
tidak bercabang, disirami dengan air yang sama. Kami melebihkan sebahagian
tanam-tanaman itu atas sebahagian yang lain tentang rasanya. Sesungguhnya
pada yang demikian itu terdapat tanda-tanda (kebesaran Allah) bagi kaum yang
berfikir.” (QS. Ar Ra‟d, 13:4)
Routing atau perutean adalah kemampuan untuk menunjukkan jalur jalan yang
harus dipilih dari titik A menuju titik B (Riftadi, Muhammad, 2007). Routing pada
peta geografis mempunyai tujuan untuk menentukan jalur yang paling optimal,
yaitu jalur dengan rute terpendek dan biaya terkecil. Routing pada peta geografis
dilakukan karena terdapat beberapa pilihan rute (alternative route) yang bisa
dilalui dengan jarak dan waktu tempuh yang berbeda pada masing-masing rute.
Kota Malang yang merupakan salah satu tujuan wisata di jawa timur adalah kota
dengan kondisi jalan yang mempunyai banyak pilihan rute, kondisi ini
menyebabkan mengapa dilakukan routing terhadap obyek wisata di Kota Malang.
Algoritma dapat didefinisikan sebagai urutan langkah-langkah logis dan
sistematis dalam mencari suatu solusi dari suatu permasalahan yang ada.
Pemecahan suatu masalah pada hakekatnya adalah menemukan langkah-langkah
tertentu yang jika dijalankan akan bisa memecahkan masalah atau dengan kata
5
lain bisa memberikan solusi terhadap permasalahan tersebut degan baik dan
benar. Langkah-langkah dalam memecahakan masalah bisa dilakukan dalam
berbagai cara dengan karakteristik yang berbeda-beda dari masing-masing
langkah. Pada program komputer, algoritma terdiri dari sekumpulan langkah-
langkah untuk mencapai suatu tujuan, seperti logika if-then-else maupun
pengulangan suatu tindakan atau langkah dengan loop. Hal ini juga berlaku untuk
mensimulasikan penyelesaian masalah Routing pada peta geografis. Ada banyak
algoritma untuk menetukan jalur optimal pada suatu peta geografis, diantaranya
adalah algoritma dijkstra, algoritma best-first, algoritma shooting-star dan juga
algoritma A Star (A*). Tiap-tiap algoritma tersebut memiliki cara kerja yang
berbeda-beda dalam menemukan solusi yang paling optimal, algoritma dijkstra
bekerja dengan menggunakan suatu fungsi biaya, setiap node yang ada pada peta
akan diperiksa dan dicatat biaya untuk sampai pada setiap node, mulai dari node
awal sampai node akhir sampai ditemukan jalur yang paling optimal, karena harus
memeriksa semua node kesegala arah yang ada, maka kinerja algoritma dijkstra
kurang efektif untuk mencari jalur optimal pada peta dengan banyak jalan (node).
Sedangkan pada algoritma best-search bekerja menggunakan fungsi perkiraan
heuristic yaitu memprioritaskan pemeriksaan node-node yang menurut berada
pada arah yang benar. Karena hanya menggunakan fungsi heuristic dengan tanpa
memperhitungkan biaya untuk menuju suatu node, jalur yang ditemukan dengan
algoritma ini mungkin adalah jalur terpendek, tetapi belum tentu jalur tersebut
memiliki biaya terkecil (Anonymous2, 2000).
Algoritma A Star adalah suatu algoritma pencarian untuk graf. algoritma yang
menggabungkan algoritma dijkstra dan algoritma best-search untuk
6
mengkompensasikan kelemahan-kelemahan dari masing-masing algoritma
(Anonymous2, 2000). Selain menghitung biaya yang diperlukan untuk berjalan
dari satu node ke node lainnya, algoritma A Star juga menggunakan fungsi
heuristic untuk memprioritaskan node-node pada arah yang benar. Dengan
digunakannya fungsi heuristik (biasa disimbolkan dengan algoritma A Star dapat
memfokuskan pencarian pada node-node yang berada pada arah yang mendekati
node tujuan, kemudian pencarian dapat diterminasikan pada waktu node tujuan
diperiksa, hal ini dapat meminimalkan jumlah node yang harus diperiksa dan
karena waktu yang diperlukan untuk mendapatkan jalur berbanding lurus dengan
jumlah node yang harus diperiksa, maka waktu pencarianpun juga bisa
diminimalkan.
Sistem informasi geografis sebagai salah satu keilmuan yang bekerja dengan
data yang bereferensi spasial atau keruangan telah mampu mengakomodasi
kegiatan Routing pada peta geografis dengan berbagai program aplikasi berbasis
SIG yang ada. Mapserver dengan modul pgRouting yang dimiliki database
PostgreSQL adalah termasuk program aplikasi freeware untuk menyelesaikan
masalah routing geografis. PgRouting adalah sebuah tools open source yang
menyediakan fungsionalitas routing pada PostgreSQL. pgRouting dapat
digunakan untuk menyelesaikan masalah pencarian jalur terpendek (Shortest
Path) dan juga Travelling Salesman Problem (TSP). Saat ini fungsi bawaan yang
ada pada modul pgRouting adalah fungsi yang menggunakan algoritma dijkstra,
algoritma A Star, algoritma Shooting Star dan fungsi untuk menangani masalah
Travelling Salesman Problem (TSP).
7
Aplikasi penentu rute terpendek pariwisata kota malang ini dibuat dengan
fungsi shortest_path_astar yang ada pada modul PgRouting untuk menyelesaikan
masalah pencarian rute terpendek, penggunaan fungsi shortest_path_astar ini,
karena dalam operasinya fungsi ini menggunakan fungsi heuristik sehingga akan
memberikan hasil pencarian rute yang paling efektif dan fungsi
shoertest_path_astar juga lebih efektif jika data yang digunakan adalah data
dengan jumlah yang besar (banyak node). Aplikasi penentu rute terpendek ini
adalah sebuah aplikasi GIS yang berbasis web (web-based GIS) sehingga
memudahkan pengguna dalam menemukan lokasi wisata yang ingin dituju dan
sekaligus menentukan rute perjalanan paling optimal untuk menuju lokasi
tersebut.
1.2 Rumusan Masalah
Melihat pada uraian latar belakang diatas, maka didapat suatu rumusan
masalah tentang bagaimana merancang dan membangun sebauah aplikasi web-
based GIS untuk menentukan rute terpendek pariwisata di kota malang dengan
menggunakan fungsi shortest path astar.
1.3 Batasan Masalah
Untuk menghindari meluasnya pemasalahan dan juga pembahasan mengenai
sistem, maka dalam pembuatan tugas akhir ini penulis memberikan batasan
permasalahan sebagai berikut:
8
1. Obyek wisata yang digunakan pada sistem adalah obyek wisata yang ada di
area Kota Malang berdasarkan data dari Dinas Pariwisata, Informasi Dan
Komunikasi Pemerintah Kota Malang tahun 2008.
2. Peta geografis jalan yang digunakan adalah jalan besar (jalan-jalan utama)
saja, tidak termasuk jalan-jalan kecil atau gang.
3. Sistem ini belum memperhatikan kondisi jalan yang ada di kota malang secara
riil/nyata, semua kondisi jalan dianggap jalan satu arah dan tidak
memperhatikan aturan-aturan jalan.
1.4 Tujuan Penelitian
Tujuan dari penyusunan tugas akhir ini adalah merancang dan membangun
sebuah aplikasi SIG berbasis web (web-based GIS) untuk menentukan rute
terpendek pariwisata di kota malang dengan fungsi shortest_path_astar.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini adalah:
1. Membatu pengguna dalam mencari rute perjalanan paling pendek yang bisa
ditempuh diantara masing-masing obyek wisata di Kota Malang.
2. Sistem ini juga merupakan sistem informasi pariwisata di Kota Malang yang
bisa memberikan informasi tentang obyek-obyek wisata yang ada di Kota
Malang.
3. Memperdalam dan meningkatkan ketrampilan dan kreatifitas diri dalam
lingkungan yang sesuai dengan disiplin ilmu yang dimiliki.
9
1.6 Metode Penelitian
Penyusunan laporan penelitian ini dilakukan dengan beberapa metode, yaitu :
a. Persiapan
Yang termasuk dalam persiapan ini adalah diawali dengan penyusunan
proposal, kemudian mengurus surat-surat perijinan untuk keperluan
penelitian.
b. Pengumpulan Data
Kegiatan dalam pengumpulan data meliputi kegiatan-kegiatan sebagai
berikut:
1. Melakukan interview dengan pihak-pihak yang terkait penelitian ini
guna mencari data pendukung.
2. Konsultasi dengan dosen pembimbing dan pihak lain yang mengerti
tentang permasalahan dalam tugas akhir yang penulis kerjakan.
3. Studi Literatur untuk mendapatkan literatur yang berkaitan dengan
masalah system informasi geografis dan juga perutean, baik yang
berupa buku, artikel, maupun jurnal ilmiah.
c. Analisis Data
Menganalisa data yang sudah diperoleh dari hasil interview dan juga data
hasil studi literatur.
d. Perancangan Sistem
Setelah data terkumpul dan dianalisis, tahap selanjutnya adalah melakukan
perancangan sistem yang terdiri dari perancangan database dan
perancangan tampilan program aplikasi (Interface).
10
e. Evaluasi Sistem
Sebelum menuju proses pembuatan aplikasi, system yang telah disusun
terlebih dahulu dievaluasi guna mengetahui kekurangan-kekurangan
sementara dari sistem tersebut.
f. Pembuatan Aplikasi
Dalam proses ini dilakukan pembuatan tampilan sistem, pembuatan
basisdata, dan penyusunan coding program.
g. Pengujian Sistem
Dalam tahapan ini, sistem yang telah dibuat akan diuji dengan cara
memasukkan data yang sudah diperoleh. Jika masih terjadi kesalahan
maka akan diperiksa kembali mulai dari perancangan sistem sampai
didapat hasil yang maksimal.
h. Dokumentasi dan Penyusunan Laporan
Setelah dilakukan pengujian system, tahap selanjutnya dalam pembuatan
tugas akhir ini adalah penyusunan laporan penelitian, selain sebagai
dokumentasi, juga sebagai pelaporan kegiatan-kegiatan yang dikerjakan
selama penelitian.
1.7 Sistematika Penulisan
BAB I Pendahuluan
Bab ini berisi latar belakang, perumusan masalah, tujuan, batasan
masalah dan metodologi penelitian tugas akhir ini.
11
BAB II Landasan Teori
Bab ini menjelaskan konsep dan teori dasar yang mendukung
penulisan tugas akhir ini seperti menjalankan modul pgRouting
menggunakan fungsi shortest_path_astar, Sistem Informasi
Geografis, PHP/MapScript, Mapserver, PostrgreSQL/PostGIS.
BAB III Analisis Dan Perancangan Aplikasi
Bab ini menjelaskan mengenai analisis dan perancangan Aplikasi
Penentu Rute Terpendek Pariwisata di Kota Malang Menggunakan
GIS dengan fungsi shortest_path_astar secara keseluruhan.
BAB IV Hasil Dan Pembahasan
Bab ini berisi pengujian terhadap hasil pengujian dari aplikasi yang
telah dibangun.
BAB V Penutup
Bab ini berisi kesimpulan dan saran terhadap seluruh kegiatan
tugas akhir yang telah dilakukan.
12
BAB II
LANDASAN TEORI
2.1 Profil Geografis Kota Malang
2.1.1 Letak Geografis
Terletak pada ketinggian antara 440 - 667 Meter diatas permukaan air
laut. 112,06° - 112,07° Bujur Timur dan 7,06° - 8,02° Lintang Selatan, dengan
dikelilingi gunung-gunung :
a) Gunung Arjuno di sebelah Utara
b) Gunung Semeru di sebelah Timur
c) Gunung Kawi dan Panderman di sebelah Barat
d) Gunung Kelud di sebelah Selatan
2.1.2 Iklim
Kondisi iklim Kota Malang selama tahun 2006 tercatat rata-rata suhu
udara berkisar antara 22,2°C - 24,5°C. Sedangkan suhu maksimum mencapai
32,3°C dan suhu minimum 17,8°C . Rata-rata kelembaban udara berkisar
antara 74% - 82%. dengan kelembaban maksimum 97% dan minimum
mencapai 37%. Seperti umumnya daerah lain di Indonesia, Kota Malang
mengikuti perubahan putaran 2 iklim, musim hujan, dan musim kemarau. Dari
hasil pengamatan Stasiun Klimatologi Karangploso, curah hujan yang relatif
tinggi terjadi pada bulan Januari, Februari, Maret, April, dan Desember.
Sedangkan pada bulan Juni, Agustus, dan Nopember curah hujan relatif
rendah.
13
2.1.3 Keadaan Geologi
Keadaan tanah di wilayah Kota Malang antara lain:
a) Bagian selatan termasuk dataran tinggi yang cukup luas, cocok untuk
industri.
b) Bagian utara termasuk dataran tinggi yang subur, cocok untuk pertanian
c) Bagian timur merupakan dataran tinggi dengan keadaan kurang kurang
subur
d) Bagian barat merupakan dataran tinggi yangf amat luas menjadi daerah
pendidikan
2.1.4 Jenis Tanah
Jenis tanah di wilayah Kota Malang ada 4 macam, antara lain:
a) Alluvial kelabu kehitaman dengan luas 6,930,267 Ha.
b) Mediteran coklat dengan luas 1.225.160 Ha.
c) Asosiasi latosol coklat kemerahan grey coklat dengan luas 1.942.160 Ha.
d) Asosiasi andosol coklat dan grey humus dengan luas 1.765,160 Ha.
Struktur tanah pada umumnya relatif baik, akan tetapi yang perlu
mendapatkan perhatian adalah penggunaan jenis tanah andosol yang memiliki
sifat peka erosi. Jenis tanah andosol ini terdapat di Kecamatan lowokwaru
dengan relatif kemiringan sekitar 15 %. (Anonymous6).
2.2 Sistem Informasi Geografis
Geografi adalah informasi mengenai permukaan bumi dan semua objek yang
berada diatasnya, yang menjadi kerangka bagi pengaturan dan pengorganisasian
14
bagi semua tindakan selanjutnya. Menurut Richthhofen, Geographic adalah ilmu
yang mempelajari permukaan bumi sesuai dengan referensi, atau studi mengenai
area-area yang berbeda di permukaan bumi (Anonymous1). Dalam surat Yunus
ayat 5 allah menjelaskan tanda-tanda kebesarannya dengan diciptakannya
matahari dan bulan serta peredarannya pada garis lintang dan bujur bumi,
sehingga dengannya dapat ditentukan waktu siang dan malam, dan juga dapat
ditentukan perhitungan tahun.
“Dia-lah yang menjadikan matahari bersinar dan bulan bercahaya dan
ditetapkan-Nya manzilah-manzilah (tempat-tempat) bagi perjalanan bulan itu,
supaya kamu mengetahui bilangan tahun dan perhitungan (waktu). Allah tidak
menciptakan yang demikian itu melainkan dengan hak. dia menjelaskan tanda-
tanda (kebesaran-Nya) kepada orang-orang yang Mengetahui.” (QS. Yunus, 10:
5).
Kutipan ayat diatas menjelaskan bahwa semua yang diciptakan Allah adalah
bermanfaat dan mengandung hikmah, diantaranya adalah matahari dan bulan.
Selain merupakan sumber energi utama di bumi, matahari dan bulan juga bisa
dijadikan sebagai suatu penanda dalam mengetahui bilangan tahun dan bulan.
Pada zaman yunani kuno para ilmuan telah menggunakan matahari untuk
menghitung jarak antara dua buah tempat yang berjauhan. Dengan matahari pula
para ilmuan yunani kuno telah berhasil menghitung diameter bumi, walaupun
tingkat akurasi kebenarannya masih rendah. (Allamah Kamal Fiqih dan Tim
Ulama: 2006).
15
Demikian kutipan ayat yang menerangkan tentang ilmu geografi atau
tentang bumi dan semua obyek yang ada diatasnya (matahari dan bulan).
Sementara itu SIG merupakan teknologi untuk mengelola, menganalisa dan
menyebarkan informsi geografis. Sistem Informasi Geografi yang selanjutnya
disebut dengan SIG, pertama kali dikenal pada awal tahun 1980 dan mulai
berkembang pesat sekitar tahun 1990, seiring dengan perkembangan perangkat
komputer, baik perangkat lunak (software) maupun perangkat keras (hardware).
Pengertian Sistem Informasi Geografis atau lebih dikenal dengan istilah
Geographical Information System jika ditinjau dari asal suku katanya dapat
diuraikan sebagai berikut:
1. Geography
Istilah ini digunakan karena SIG dibangun berdasarkan pada keadaan
geografis atau spasial. Obyek ini mengarah pada spesifikasi lokasi dalam
suatu daerah. Obyek dapat berupa fisik, budaya, ekonomi, dan alamiah.
Penampakan tersebut ditampilkan pada suatu peta untuk memberikan
gambaran yang representatif dari spasial suatu obyek sesuai dengan kenyataan
di bumi. Simbol, warna dan garis digunakan untuk mewakili setiap spasial
yang berada pada peta dua dimensi. Saat ini teknologi komputer telah mampu
membantu proses pemetaan mulai pengembangan dari pembuatan peta
Aoutomated Cartography dan Computer Aided Design (CAD).
2. Information
Informasi merupakan hasil pengolahan dari sejumlah data. Dalam SIG
informasi memiliki volume terbesar. Setiap obyek geografi memiliki
pengaturan data tersendiri karena tidak sepenuhnya data yang ada dapat
16
terwakili dalam peta. Jadi, semua data harus diasosiasikan dengan obyek
spasial yang dapat membuat peta menjadi lebih informatif. Ketika data
tersebut diasosiasikan dengan permukaan geografi yang representatif, data
tersebut mampu memberikan informasi dengan hanya mengklik obyek. Dalam
SIG semua informasi adalah data, tetapi tidak semua data adalah informasi.
3. System
Pengertian system adalah kumpulan elemen-elemen yang saling
berintegrasi dan berinterdependensi dalam lingkungan yang dinamis untuk
mencapai tujuan tertentu. Istilah ini digunakan untuk mewakili pendekatan
sistem yang digunakan dalam SIG, dengan lingkungan yang kompleks dan
komponen yang terpisah-pisah, sistem digunakan untuk mempermudah
pemahaman dan penanganan yang terintegrasi. Teknologi komputer sangat
dibutuhkan dalam pendekatan ini, jadi hampir semua sistem informasi
berdasarkan pada komputer.
Definisi SIG selalu berubah karena SIG merupakan bidang kajian ilmu dan
teknologi yang tergolong baru. Dari uraian pengertian diatas dapat diambil
beberapa definisi SIG yaitu:
1. SIG adalah sistem komputer yang digunakan untuk memasukkan,
menyimpan, memeriksa, mengintegrasikan, memanipulasi, menganalisa,
dan menampilakan data yang berhubungan dengan posisi-posisi
permukaan bumi
2. Sistem yang dapat mendukung pengambilan keputusan spasial dan mampu
mengintegrasikan deskripsi-deskripsi lokasi dengan karakteristik yang
ditemukan di suatu lokasi
17
3. SIG adalah kombinasi perangkat lunak dan perangkat keras komputer yang
memungkinkan untuk mengelola, memetakan informasi spasial berikut
data atributnya dengan akurasi kartografi. SIG adalah sistem yang terdiri
dari berbagai komponen yang tidak dapat berdiri sendiri, SIG hanyalah
sebuah „alat‟ yang mempunyai kemampuan khusus, kemampuan sumber
daya manusia untuk memformulasikan persoalan dan menganalisa hasil
akhir sangat berperan dalam keberhasilan sistem SIG.
SIG dapat diuraikan menjadi beberapa subsistem sebagai berikut:
1. Data Input: Subsistem ini bertugas untuk mengumpulkan dan
mempersiapkan data spasial dan atribut dari berbagai sumber. Subsistem
ini pula yang bertanggung jawab dalam mengkonversi atau
mentransformasikan format-format data aslinya kedalam format yang
dapat digunakan oleh SIG.
2. Data Output: subsistem ini menampilkan atau menghasilkan keluaran
seluruh atau sebagian basisdata baik dalam bentuk softcopy maupun
bentuk hardcopy seperti: tabel, grafik, peta, dan lain-lain.
3. Data Management: subsistem ini mengorganisasikan baik data spasial
maupun data atribut kedalam sebuah basisdata sedemikian rupa sehingga
mudah dipanggil, di-update, dan di-edit.
4. Analisis dan manipulasi data: subsistem ini menentukan informasi-
informasi yang dapat dihasilkan oleh SIG. Selain itu, subsistem ini juga
melakukan manipulasi dan pemodelan data untuk menghasilkan informasi
yang diharapkan.
18
Cara kerja SIG adalah dengan mempresentasikan real world (dunia nyata)
diatas monitor komputer sebagaimana lembaran peta dapat mempresentasikan
dunia nyata diatas kertas. Tetapi SIG memiliki kekuatan dan fleksibilitas lebih
daripada lembaran Peta kertas. Peta merupakan representasi grafis dari dunia
nyata, obyek-obyek yang dipresentasikan diatas peta disebut unsur peta atau map
features (contoh: sungai, taman, kebun, jalan, dan lain-lain). Karena peta
mengorganisasikan unsur-unsur berdasarkan lokasi-lokasinya, maka peta sangat
baik dalam memperlihatkan hubungan atau relasi yang dimiliki oleh unsur-
unsurnya.
2.3 Algoritma AStar (A*)
Algoritma dapat dikatakan sebagai urutan langkah-langkah logis yang
sistematis dalam mencari suatu solusi dari suatu permasalahan yang ada (Wahid,
Fathul. 2004). Dari pengertian tersebut dapat pula dikatakan bahwa tujuan dari
penggunaan algoritma adalah untuk mendapatkan petunjuk dalam menyelesaikan
suatu permasalahan, hal ini sesuai dengan firman Allah dalam surat Thahaa ayat
50 berikut ini,
“Tuhan kami ialah (tuhan) yang telah memberikan kepada tiap-tiap sesuatu
bentuk kejadiannya, kemudian memberinya petunjuk”. (QS. Thahaa: 50).
Dalam ayat tersebut dijelaskan bahwa Allah memberikan petunjuk pada
tiap-tiap bentuk kejadian, jadi dapat dikatakan bahwa setiap perkara yang terjadi
pasti ada petunjuk atau hikmah yang terkandung didalamnya. Dan Allah akan
19
senantiasa memberikan pertolongan dan petunjuk kepada hambanya yang taat.
Dalam ayat yang lain allah berfirman,
“Dan dialah yang menjadikan bintang-bintang bagimu, agar kamu
menjadikannya petunjuk dalam kegelapan di darat dan di laut. Sesungguhnya
kami Telah menjelaskan tanda-tanda kebesaran (kami) kepada orang-orang yang
Mengetahui.”(QS. Al An'am, 6: 97).
Allah SWT telah menciptakan bintang-bintang untuk keperluan manusia
yang dengan itu bisa mengambil manfaat dari cahayanya, kemunculannya, dan
posisinya di kegelapan malam, ketika manusia berada di tengah padang pasir dan
lautan sehingga bisa menemukan jalan dalam pengembaraan. Sebagian berada di
depan kita dan sebagian lagi berada di belakang, di kiri dan di kanan. Bintang-
bintang itu menjadi petunjuk bagi orang-orang yang bepergian menuju kota-kota,
mencari arah Ka`bah, mengenali waktu di malam hari, dan menemukan arah jalan
di padang pasir dan lautan.
Al-Balkhi, seorang penafsir, menyatakan bahwa kalimat ... agar kamu
menjadikannya petunjuk dalam kegelapan… bukan berarti bintang-bintang
diciptakan hanya untuk memberi petunjuk kepada manusia, tetapi Allah telah
menciptakan bintang-bintang untuk banyak manfaat lainnya. Apabila seseorang
merenung dan memperhatikan bintang-bintang yang kecil dan besar, dimana
posisi mereka, orbit, hubungan dan gerakan mereka, dan juga memperhatikan
manfaat matahari dan bulan serta bagaiman amereka bermanfaat dalam
kehidupan, pertumbuhan, perkembangan hewan, tumbuhan, pernyataan suci ini
akan terbukti baginya. Dalam kitab tafsir Ali bin Ibrahim, disebutkan bahwa
20
makna bintang di sini menyatakan, …Sesungguhnya kami Telah menjelaskan
tanda-tanda kebesaran (kami) kepada orang-orang yang Mengetahui.
Artinya, Allah SWT. telah menunjukkan dalam ayat-ayatNya dan
menjelaskan kepada manusia yang memperoleh (ilmu) pengetahuan malalui cara
perenungan. (Allamah Kamal Fiqih dan Tim Ulama: 2006).
Algoritma A* (Admissible Heuristic) adalah strategi best first search yang
menggunakan estimasi solusi biaya terkecil untuk mencapai suatu tujuan dengan
jarak tempuh terdekat dan memiliki nilai heuristik yang digunakan sebagai dasar
pertimbangan. Heuristik adalah kriteria, metoda, atau prinsip-prinsip untuk
menentukan pilihan sejumlah alternatif untuk mencapai sasaran dengan efektif.
Nilai heuristik dipergunakan untuk mempersempit ruang pencarian.
Metoda pencarian A* menghasilkan jalur optimal mulai dari tempat awal
kemudian melalui graph menuju tempat yang dituju. Metode ini berdasarkan
formula: f(n) = g(n) + h(n)
Keterangan :
h(n) = biaya estimasi dari node n ke tujuan.
g(n) = biaya path / perjalanan
f(n) = solusi biaya estimasi termurah node n untuk mencapai tujuan.
(Anonymous5, 2008)
Penggunaan algoritma A* dengan fungsi heuristik yang tepat dapat
memberikan hasil yang optimal. Sebenarnya, Depth-first search (DFS) dan
breadth-first-search (BFS) adalah dua kasus khusus dari algoritma A Star.
Algoritma Dijkstra, salah satu BFS, adalah kasus khusus dari A* dimana h(x) = 0
untuk semua nilai x. Untuk DFS, ciptakan suatu counter global C yang
21
diinisialisasi dengan nilai yang sangat besar. Pada setiap langkahnya, periksa
sebuah titik, lalu berikan nilai C ke semua titik yang bertetangga dengan titik tadi.
Setelah tiap-tiap pemberian nilai, kurangi counter C dengan 1. Jadi semakin awal
sebuah titik diproses, semakin tinggi nilai h(x) yang dimilikinya.
2.3.1 Deskripsi algoritma A Star
A Star menyimpan sebuah himpunan solusi parsial, yaitu jalur yang
diambil yang berawal dari titik awal, disimpan dalam sebuah antrian berprioritas
(priority queue). Prioritas yang diberikan pada suatu jalur ditentukan oleh fungsi
f(x) = g(x) + h(x). Disini, g(x) adalah ongkos yang diperlukan sampai ke titik x
sejauh ini, h(x) adalah perkiraan heuristik dari ongkos minimal untuk meraih titik
tujuan dari titik x. Singkat kata, ongkos adalah jarak yang telah ditempuh sejauh
ini, dan panjang garis lurus antara titik x dengan titik akhir adalah perkiraan
heuristiknya. Semakin rendah nilai f(x), semakin tinggi prioritasnya. Berikut
diberikan pseudo-code dari algoritma A Star:
fungsi A*(awal,tujuan)
var himpunan_tertutup <- himpunan_kosong
var q <- buat_antrian(titk_awal)
while (q tidak kosong)
var p <- hapus_elemen_pertama(q)
var x <- titik_akhir_dari_p
if (x = tujuan)
return p
for (tiap y pada suksesor(p))
if (y bukan anggota himpunan_tertutup)
masuk_antrian(q, y)
tambahkan y ke himpunan_tertutup
endif
endfor
endwhile
return tidak_ada_jalur
Disini suksesor (p) mengembalikan sebuah himpunan titik yang
bertetangga dengan p.Diasumsikan bahwa antrian disini menjaga urutan
anggotanya dengan nilai f secara otomatis. Dalam himpunan himpunan_tertutup,
22
semua titik akhir dari p (titik dimana masih terdapat jalur) disimpan, untuk
menghindari pengulangan dan pemutaran. Antrian yang digunakan disini juga
biasa disebut sebagai himpunan terbuka. Himpunan tertutup bisa saja dihilangkan
(yang akan menghasilkan algoritma pencarian pada pohon) apabila sebuah solusi
(jalur) telah dijamin keberadaannya, atau apabila fungsi suksesor telah
disesuaikan agar tidak menerima titik yang sudah pernah diperiksa.
2.3.2 Sifat Algoritma A Star
Seperti BFS, A* akan selalu menemukan sebuah solusi, jika memang ada.
Apabila fungsi heuristik h dapat diterima, yang berarti nilai h tidak akan pernah
melebihi ongkos minimal untuk meraih tujuan yang sebenarnya, maka A* sendiri
akan dapat diterima (atau dapat disebut optimal) apabila himpunan tertutup tidak
digunakan. Apabila digunakan sebuah himpunan tertutup, maka h harus monoton
(atau konsisten) agar A* dapat menjadi optimal. Ini berarti fungsi heuristik tidak
akan pernah berlebihan dalam menghitung ongkos dari sebuah titik ke titik
tetangganya. Secara formal, unutuk semua jalur x, y dimana y adalah suksesor
dari x: h(x) ≤ g(y) - g(x) + h(y)
A Star juga dapat dijamin keoptimalannya untuk sembarang heuristik,
yang berarti bahwa tidak ada satupun algoritma lain yang mempergunakan
heuristik yang sama akan mengecek lebih sedikit titik dari A*, kecuali ketika ada
beberapa solusi parsial dimana h dapat dengan tepat memprediksi ongkos jalur
minimal.
2.3.3 Kompleksitas Algortima A Star
Kompleksitas waktu dari A Star sangat bergantung dari heuristik yang
digunakannya. Pada kasus terburuk, jumlah titik yang diperiksa berjumlah
23
eksponensial terhadap panjang solusi (jalur terpendek), tetapi A* akan memiliki
kompleksitas waktu polinomial apabila fungsi memenuhi kondisi berikut:
|h(x) - h*(x)| ≤ O(log h*(x)
dimana h* adalah heuristik optimal, yaitu ongkos sebenarnya dari jalur x ke
tujuan. Dengan kata lain, galat dari h tidak akan melaju lebih cepat dari logaritma
dari heuristik optimal h* yang memberikan jarak sebenarnya dari x ke tujuan.
Penggunaan memori dari A* bahkan lebih bermasalah dari kompleksitas
waktunya. Beberapa varian dari A* telah dikembangkan untuk mengatasi
masalah ini, termasuk diantaranya Iterative-Deepening-A*, Memory-Bounded-
A* (MA*) dan Simplified-Memory-Bounded-A* (SMA*) dan Recursive-Best-
First-Search (RBFS). RBFS juga akan memberikan hasil yang optimal apabila
heuristiknya dapat diterima.
2.3.4 Fungsi-fungsi Heuristik untuk Algoritma A Star
Seperti yang telah disebutkan diatas, fungsi heuristik sangat berpengaruh
terhadap kelakuan algoritma A Star:
1. Apabila h(n) selalu bernilai 0, maka hanya g(n) yang akan berperan, dan
A* berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan
menemukan jalur terpendek.
2. Apabila h(n) selalu lebih rendah atau sama dengan ongkos perpindahan
dari titik n ke tujuan, maka A* dijamin akan selalu menemukan jalur
terpendek. Semakin rendah nilai h(n), semakin banyak titik-titik yang
diperiksa A*, membuatnya semakin lambat.
3. Apabila h(n) tepat sama dengan ongkos perpindahan dari n ke tujuan,
maka A* hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa
24
satupun titik lainnya, membuatnya sangat cepat. Walaupun hal ini belum
tentu bisa diaplikasikan ke semua kasus, ada beberapa kasus khusus yang
dapat menggunakannya.
4. Apabila h(n) kadangkala lebih besar dari ongkos perpindahan dari n ke
tujuan, maka A* tidak menjamin ditemukannya jalur terpendek, tapi
prosesnya cepat.
5. Apabila h(n) secara relatif jauh lebih besar dari g(n), maka hanya h(n)
yang memainkan peran, dan A* berubah menjadi BFS.
(Riftadi, Muhammad. 2007)
2.4 ArcView
Arcview merupakan salah satu perangkat lunak desktop Sistem Informasi
Geografis dan pemetaan yang telah dikembangkan oleh ESRI (Environmental
System Research Institute, Inc). ArcView memiliki kemampuan-kemampuan
untuk melakukan visualisasi, menjelajahi, menjawab query (baik basisdata spasial
maupun non spasial), menganalisis data secara geografis, dan sebagainya.
Secara umum kemampuan-kemampuan perangkat SIG ArcView dapat
dijabarkan sebagai berikut:
1. Pertukaran data: membaca dan menuliskan data dari dan kedalam format
perangkat lunak SIG lainnya,
a. ArcView dapat membaca data spasial raster yang dituliskan dalam
format-format perangkat lunak SIG dan penginderaan jauh; misalnya:
JPEG, BMP, TIFF, GeoTIFF, BSQ, BIL, BIP, ERDAS, (LAN & GIS),
ERDAS Imagine, GRID ArcInfo (data grid-cell), raster SUN, dan
sebagainya.
25
b. ArcView dapat membaca data spasial vector yang dituliskan dalam
format-format perangkat lunak SIG lainnya (import); misalnya ArcInfo
(coverage), MapInfo (MIF), AutoCad (DWG dan DXF), dan
sebagainya.
c. ArcView dapat menuliskan basisdata spasial vektornya (coverage dan
shape files) baik ke dalam format shapes file sendiri maupun kedalam
perangkat lunak SIG lainnya, misalnya MapInfo.
2. Melakukan analisa statistik dan operasi-operasi matematis.
3. Menampilkan informasi (basisdata) spasial maupun atribut.
a. ArcView dapat menampilkan informasi (basisdata dengan format
sendiri) baik yang terdapat pada sistem komputer yang bersangkutan
maupun yang tersebar di jaringan komputer (network).
b. ArcView dapat mengakses dan menampilkan basisdata eksternal.
c. Menampilkan informasi atau data dalam bentuk view (tampilan untuk
dilayar monitor), layout (tata letak format siap cetak), table (tabel
data), chart (grafik).
4. Menjawab query spasial maupun atribut.
a. Menghubungkan informasi spasial dengan atribut-atributnya yang
terdapat (disimpan) didalam basis data atribut: (1) memilih fitur
(entitas) spasial, muncul informasi spasialnya, (2) memilih data atribut
dari basisdata atribut, muncul representasi spasial dari fitur yang
dipilih, (3) memilih data atribut, muncul data atribut-atribut lainnya
yang terdapat didalam basisdata atribut, (4) memilih suatu fitur spasial,
muncul fitur spasial lainnya yang terkait.
26
b. Menggunakan SQL sebagai standard untuk melakukan query terhadap
basisdatanya.
5. Melakukan fungsi-fungsi dasar SIG yaitu menyediakan alat bantu analisis
spasial sederhana untuk menjawab pertanyaan-pertanyaan seperti berikut:
(1) berapa jumlah sumur bor yang terdapat disuatu area pertambangan? (2)
berapa jumlah rumah yang terdapat di dalam buffer (area) 50 meter dari
pinggir sungai.
6. Membuat peta tematik.
a. Menyediakan pustaka simbol dan warna (fiturs) untuk pembuatan peta
tematik.
b. Menggunakan pustaka simbol dan warna untuk merepresentasikan
fiturnya berdasarkan atribut-atributnya (membuat peta-peta tematik
turunan).
7. Memodifikasi aplikasi dengan menggunakan bahasa skrip.
Menyediakan bahasa pemrograman sederhana atau skrip (avenue) untuk
mengotomasikan pengoperasian rutin dan meng-customize apliksi-aplikasi
SIG yang dikembangkan dengan perangkat lunak ArcView.
8. Melakukan fungsi-fungsi SIG khusus lainnya (dengan menggunakan
extension yang ditujukan untuk mendukung penggunaan perangkat lunak
SIG ArcView). Adapun ekstensi-ekstensi SIG yang terdapat di ArView
adalah berikut diantaranya:
a. Network Analyst: modul perangkat lunak yang diguakan untuk
melakukan analisis-analisis yang berhubungan dengan jaringan
(Routing).
27
b. Internet Map Server (IMS): modul perangkat lunak yang digunakan
untuk mempublikasikan peta (basisdata dijital) ke jaringan internet
(web-based GIS) hingga dapat diakses dengan menggunakan program
browser.
c. 3D Analyst: modul perangkat lunak yang digunakan untuk membuat,
menganalisa, dan menampilkan data spasial tiga dimensi (permukaan
dijital).
d. Tracking Analyst: modul perangkat lunak yang digunakan untuk
perekaman, tampilan, dan pemantauan data – baik secara langsung
(realtime) maupun tidak langsung (playback atau replay) yang
memiliki kecenderungan perubahan posisi geografis dari waktu ke
waktu.
e. Image Analyst: modul perangkat lunak yang dipergunakan untuk
melakukan analisis-analisis yang berhubungan dengan citra dijital
(penginderaan jauh).
ArcView secara default membaca, menggunakan, dan mengolah data spasial
dengan format yang disebut sebagai shapefile. Format yang dikembangkan dan
dipublikasikan oleh ESRI ini digunakan untuk menyimpan informasi-informasi
atribut dan geometri non-topologi fitur spasial di dalam sebuah kumpulan data.
Geometri fitur ini disimpan sebagai shape yang terdiri dari sekumpulan koordinat-
koordinat vektor. Shapefile dapat mendukung representasi bebagai fitur baik titik
(point), garis (line), maupun polygon (area). Setiap fitur polygon
direpresentasikan sebagai loop tertutup. Data atribut disimpan dalam format
28
perangkat lunak DBMS Dbase. Setiap record, memiliki relasi one to one terhadap
fitur data spasial yang bersangkutan.
Shapefile ESRI terdiri dari beberapa file: file utama, file indeks, dan sebuah
tabel Dbase. File utama merupakan direct-access, file dengan panjang record
yang bervariasi dimana setiap record-nya mendeskripsikan sebuah shape (fitur)
dengan sebuah list (daftar) verteks-verteksnya. Pada file indeks, setiap record
mengandung offset record file utama yang bersesuaian dari awal ke file utama.
Tabel Dbase berisi atribut-atribut fitur, satu record per fitur. Relasi one to one
antara fitur (geometri) dengan atributnya didasarkan pada nomor record-nya.
Record atribut, urutannya, harus sama sebagaimana di dalam file utama.
Sesuai dengan konvensi penamaannya, file utama, file indeks, dan file
Dbase memiliki nama depan (suffix) yang sama, tetapi nama-nama belakangnya
(suffix atau extension) berbeda. Nama-nama belakangnya berturut-turut adalah
“SHP” (file utama), “SHX” (file indeks), dan “DBF” (file table atribut).
Shapefile ESRI dapat dibuat atau dihasilkan dengan menggunakan empat
metode/cara sebagai berikut:
a. Eksport: format data spasial ini dapat dihasilkan dari proses eksport
perangkat lunak SIG lainnya, misalnya dengan menggunakan ArcInfo,
SDE13, MapInfo.
b. Dijitasi: shapefile dapat secara lansung dibuat melalui proses dijitasi.
c. Semi pemrograman: shapefile dapat dapat secara langsung dibuat, dibaca,
atau dituliskan dengan menggunakan salah satu bahasa (semi)
pemrograman skrip/makro yang dimiliki oleh beberapa perangkat SIG
29
serumpun (misalnya Aveneu-nya ArcView, MapObjects, ARC Macro
Language/AML ArcInfo, Simple macro Language/SML PC ArcInfo).
d. Bahasa pemprograman: dengan memahami spesifikasi teknisnya, shapefile
dapat secara langsung dibuat, dibaca, atau dituliskan dengan menggunakan
salah satu bahasa pemrogrman yang ada (misalnya C/C++, pascal/Delphi,
Basic).
Keuntungan-keuntungan jika bekerja dengan menggunakan data spasial
shapefile ArcView adalah sebagai berikut:
a. Proses pengambilan (draw) atau penggambaran kembali (redraw) dari fitur
petanya dapat dilakukan dengan relatif cepat, setidaknya lebih cepat dari
proses penggambaran coverage milik ArcInfo
b. Informasi atribut dan geometrinya dapat di atur
c. Dapat dirubah ke dalam format-format data spasial lainnya
d. Memungkinkan untuk proses on-screen digitizing.
(Prahasta, Eddy. 2007)
2.5 Web Sistem Informasi Geografis
Sistem Informasi Geografis merupakan sistem yang dirancang untuk bekerja
dengan data yang tereferensi secara spasial atau koordinat-koordinat geografi. GIS
memiliki kemampuan untuk melakukan pengolahan data dan melakukan operasi-
operasi tertentu dengan menampilkan dan menganalisa data. Aplikasi GIS saat ini
tumbuh tidak hanya secara jumlah aplikasi namun juga bertambah dari jenis
keragaman aplikasinya. Pengembangan aplikasi GIS kedepannya mengarah
kepada aplikasi berbasis Web yang dikenal dengan Web GIS. Hal ini disebabkan
karena pengembangan aplikasi di lingkungan jaringan telah menunjukan potensi
30
yang besar dalam kaitannya dengan geo informasi. Sebagai contoh adalah adanya
peta online sebuah kota dimana pengguna dapat dengan mudah mencari lokasi
yang diinginkan secara online melalui jaringan intranet tanpa mengenal batas
geografi penggunanya. Secara umum Sistem Informasi Geografis dikembangkan
berdasarkan pada prinsip input/masukan data, manajemen, analisis dan
representasi data. Di lingkungan web prinsip-prinsip tersebut di gambarkan dan di
implementasikan seperti pada tabel berikut :
Tabel 2.1 Prinsi-prinsip Pengembangan SIG
Untuk dapat melakukan komunikasi dengan komponen yang berbeda-beda
di lingkungan web maka dibutuhkan sebuah web server. Karena standar dari
geografis data berbeda-beda dan sangat spesifik maka pengembangan arsitektur
sistem mengikuti arsitektur „Client Server‟.
Gambar 2.1 Arsitektur WEB SIG
(Sumber: Denny Charter, Ilmu Komputer.com)
Gambar diatas menunjukkan arsitektur minimum sebuah sistem web-based
GIS. Aplikasi berada disisi client yang berkomunikasi dengan Server sebagai
penyedia data melalui web Protokol seperti HTTP (Hyper Text Transfer
Protocol). Aplikasi seperti ini bisa dikembangkan dengan web browser (Mozzila
31
Firefox, Opera, Internet Explorer). Untuk menampilkan dan berinteraksi dengan
data GIS, sebuah browser membutuhkan Plug-In atau Java Applet atau bahkan
keduanya. Web Server bertanggung jawab terhadap proses permintaan dari client
dan mengirimkan tanggapan terhadap respon tersebut. Dalam arsitektur web,
sebuah web server juga mengatur komunikasi dengan server side GIS component.
server side GIS component bertanggung jawab terhadap koneksi kepada basisdata
spasial seperti menterjemahkan query kedalam tag SQL dan membuat representasi
yang diteruskan ke server. Dalam kenyataannya server side GIS component
berupa software libraries yang menawarkan layanan khusus untuk analisis spasial
pada data. Selain komponen, hal lain yang juga sangat penting adalah aspek
fungsional yang terletak di sisi client atau di server. Gambar berikut adalah dua
pendekatan yang menunjukan kemungkinan distribusi fungsional pada sistem
client/server berdasarkan konsep pipeline visualization.
Gambar 2.2 Perbandingan Thin dan Thick System Pada Sistem Clien Server
Pendekatan-1: Thin Client : Memfokuskan diri pada sisi server. Hampir
semua proses dan analisa data dilakukan berdasarkan permintaan disisi server.
Data hasil pemrosesan dikirimkan ke client dalam format HTML, yang
didalamnya terdapat file gambar sehingga dapat dilihat dengan browser. Pada
pendekatan ini interaksi pengguna terbatas dan tidak fleksibel
32
Pendekatan-2: Thick/Fat Client : Pemrosesan data dilakukan disisi client,
data dikirim dari server ke client dalam bentuk data vektor yang disederhanakan.
Pemrosesan dan penggambaran kembali dilakukan oleh client. Cara ini
menjadikan pengguna dapat berinteraksi lebih interaktif dan fleksibel.
Internet merupakan kumpulan jaringan komputer yang tersebar secara
geografis dan terhubung dalam satu alat komunikasi dan protokol yang sama
sehingga memungkinkan untuk saling berhubungan. Web atau lebih dikenal
dengan world wide web (www) merupakan aplikasi jaringan yang mendukung
terlaksananya HTTP (hypertext transfer protocol) dalam suatu jaringan internet.
Sehingga dapat disimpulkan bahwa internet tidak sama dengan web. Internet
merujuk kepada infrastruktur jaringan, sedangkan web merujuk kepada salah satu
aplikasi yang berjalan dalam jaringan internet. Oleh karena itu, Internet GIS tidak
sama dengan web GIS. Internet GIS merujuk kepada penggunaan internet untuk
melakukan pertukaran data, melakukan analisis spasial, dan menyajikan hasil
analisis. Sedangkan web GIS menggunakan aplikasi web dalam melakukan
operasi GIS.
(Iwan Setiawan & Harris Noor Rabbasa)
2.6 Mapserver
Mapserver merupakan perangkat lunak open source dan sekaligus freeware
yang dapat digunakan untuk menampilkan data spasial (peta dijital) pada halaman
web. Mapserver dikembangkan di Universitas Minesotta (UMN), Amerika Serikat
untuk pengembangan proyek ForNet (sebuah proyek untuk manajemen sumber
33
daya alam) yang didanai langsung oleh NASA. Dari proyek ForNet inilah
dihasilkan tools utama yaitu MapServer dan ImageView yang dapat diaplikasikan
ke berbagai tipe permasalahan yang terkait dengan data spasial. Selanjutnya
mapserver digunakan sebagai tools visualisasi data SIG (terutama data vector)
yang memungkinkan penggunaan layanan web, sementara Imageview dipakai
sebagai tools visualisai khusus untuk citra (dijital) satelit dan data-data tipe raster
lainnya.
Pada bentuk paling dasar MapServer merupakan sebuah program
CGI(Common Gateway Interface). Program tersebut akan dieksekusi di web
server, dan berdasarkan parameter tertentu terutama konfigurasi dalam bentuk file
*.MAP akan menghasilkan data yang kemudian akan dikirim ke web browser,
baik dalam bentuk peta atau dalam bentuk lain.
Fitur-fitur dari MapServer diantaranya adalah:
a. Menampilkan data spasial dalam format vektor seperti Shapefile (ESRI),
ArcSDE (ESRI), PostGIS dan berbagai format fektor lain dengan
menggunakan library OGR.
b. Menampilkan data spasial dalam bentuk format raster seperti
TIFF/GeoTIFF, APPL7 dan berbagai format data raster lain dengan
menggunakan library GDAL
c. Menggunakan quadtree dalam indexing data spatial, sehingga operasi-
operasi spasial dapat dilakukan dengan cepat.
d. Dapat dikembangkan dengan tampilan keluaran yang dapat diatur dengan
menggunakan file tamplate.
34
e. Dapat melakukan seleksi objek berdasarkan nilai, titik, area, atau
berdasarkan sebuah objek spasial tertentu.
f. Mendukung rendering karakter berupa font TrueType.
g. Mendukung penggunaan data raster maupun vektor yang dibagi-bagi
menjadi sub bagian yang lebih kecil sehingga proses untuk mengambil dan
menampilkan gambar dapat dipercepat.
h. Dapat menggambarkan peta tematik yang dibangun menggunakan ekpresi
lojik atau ekspresi reguler.
i. Dapat menampilkan label dari objek spasial, dengan label dapat diatur
sedemikian rupa sehingga tidak salin tumpang tindih.
j. Konfigurasi dapat diatur secara on the fly melalui parameter yang
ditentukan pada URL.
k. Dapat menangani beragam sistem proyeksi secara on the fly
(Nuryadin, Ruslan. 2005)
Saat ini, selain dapat mengakses MapServer sebagai program CGI, kita
dapat mengakses MapServer sebagai modul MapScript, melalui berbagai bahasa
skrip: PHP, Perl, Python atau Java. Sehingga akses fungsi-fungsi MapServer
melalui skrip akan lebih memudahkan pengembangan aplikasi. Pengembang dapat
memilih bahasa yang paling familiar.
Arsitektur Mapserver
Bentuk umum arsitektur aplikasi berbasis peta dalam halam web dapat
jelaskan sesuai dengan gambar 2.3.
35
Gambar 2.3
Arsitektur Peta Dalam Halaman Web
Pada gambar 2.3, interaksi antara klien dengan server berdasar
skenario request dan respon. Web browser di sisi klien mengirim request
ke server web. Karena server web tidak memiliki kemampuan pemrosesan
peta, maka permintaan yang berkaitan dengan pemrosesan peta akan
diteruskan eleh server web ke server aplikasi dan MapServer. Hasil
pemrosesan akan dikembalikan lagi melalui server web, yang terbungkus
dalam bentuk file HTML atau applet. Arsitektur aplikasi pemetaan di web
dibagi menjadi dua pendekatan sebagai berikut:
Pendekatan Thin Client
Pendekatan ini memfokuskan diri pada sisi server. Hampir semua
proses dan analisis data dilakukan berdasarkan permintaan di sisi
server. Data hasil pemrosesan kemudian dikirim ke klien dalam format
standar HTML, yang didalamnya terdapat file gambar dalam format
standar misalnya GIF, PNG, JPG, sehingga dapat dilihat dengan
menggunakan sembarang web browser. Kelemahan utama pendekatan
ini menyangkut keterbatasan opsi interaksi dengan user yang kurang
fleksibel.
Server Web Server Aplikasi
MapServer
Data
Server Data
Web Browser
Sisi Klien Sisi Server
Request
Tampilan Peta
36
Pendekatan Thick Client
Pada pendekatan ini, pemprosesan data dilakukan di sisi klien
menggunakan beberpa kontrol seperti kontrol ActiveX atau applet.
Kontrol ActiveX atau applet akan di jalankan di klien untuk
memungkinkan web browser menangani format data yang tidak dapat
ditangani oleh web browser dengan kemampuan standard. Dengan
adanya pemprosesan di klien, maka tranfer data antra klien dengan
web server akan berkurang.
Tidak seperti pada pendekatan thin client, data dikirim ke klien
dalam bentuk data vektor yang disederhanakan. Pemprosesan dan
penggambaran kembali akan dilakukan di sisi klien. Dengan cara
demikian, pengembang aplikasi dapat lebih fleksibel dalam
menentukan prosedur interaksi aplikasi dengan pengguna (user).
Kelemahan dari pendekatan ini, harus ada tambahan aplikasi yang
dipasang di komputer klien (Kontrol ActiveX atau Applet).
Mapserver menggunakan pendekatan Thin Client. Sehingga
pemrosesan dilakukan di sisi server. Informasi peta dikirim ke web
browser di sisi klien dalam bentuk file gambar (JPG,PNG,GIF, atau
TIFF). Pada saat ini kelemahan pendekatan thin client sudah dapat
diatasi dengan adanya Framework aplikasi seperti Chameleon,
CartoWeb, Kmap.
Aplikasi yang di bangun dengan menggunakan MapServer
memiliki arsitektur sebagai berikut:
37
Browser
CloudHTTP Server
(Apache,IIS,...)
MapServer
Mapserver CGI
or MapCsript+PHP
or MapScript+Perl
or ...
MapFile
HTML
Tamplate
Map Data
External Data
File HTML
MAP
x , y Click location, Layer
status on/off, etc
HTTP/CGI request
Gambar 2.4 Arsitektur Mapserver
Pada sistem aplikasi, browser (client) mengirimkan request ke web
server dalam bentuk request yang terkait dengan data spasial (lokasi
[X,Y]) klik kursor, status [on/off] layer yang akan dimunculkan, dan
lain sebagainya. Kemudian oleh web server request tersebut dikirim ke
server dan MapServer. Kemudian MapServer akan membaca mapfile,
dan data peta. Untuk membentuk sebuah gambar yang sesuai dengan
permintaan dari client. Setelah gambar tersebut di render, file gambar
yang bersangkutan akan dikirim ke web server kembali dan diteruskan
ke browser client sesuai dengan format tamplate tampilannya. Dilihat
dari tempat pengolahan data arsitektur tersebut cenderung bersifat thin-
client, sebab prosedur-prosedur yang terkait denga pengolahan data
dan analisis proses dilakukan di server, sementara browsernya hanya
menerima hasil request dalam bentuk file HTML.
38
2.7 Chameleon
2.7.1 Pengenalan Chameleon
Chameleon merupakan salah satu framework atau tool yang dapat
digunakan untuk aplikasi pemetaan SIG berbasis layanan web (web-based GIS).
Chameleon dapat digunakan secara berdampingan atau full integrated dengan
dengan Mapserver berdasarkan spesifikasi yang ditentukan oleh Open Geospatial
Consortium (OGC). Gambar berikut mengilustrasikan konfigurasi framework
chameleon:
Gambar 2.5 Konfigurasi Chameleon yang digunkan dengan MapServer
(Sumber : Charter, Denny September 2008)
Framework Chameleon dikembangkan oleh DM Solution Group
(Kanada), framework ini dibentuk dari sekumpulan komponen-komponen
perangkat lunak yang berisi program atau skrip-skrip php (php scripts) yang
dapat digunakan kembali (reusable) oleh setiap client-nya, sehingga mudah
mengintegrasikan sebuah web-map-server dengan tampilan antarmuka (layout
interface) yang sederhana dan mudah digunakan.
39
2.7.2 Menggunakan Fungsi Chameleon
Chameleon merupakan sebuah produk OpenSource yang dibangun dengan
menggunakan bahasa pemrograman PHP. Chameleon memberikan akses yang
sederhana ke beberapa fitur yang hanya bisa diakses dalam MapScript, dimana
dalam MapScript telah disediakan sebuah skrip sebagai komponen yang dapat
langsung digunakan. Dengan Chameleon seorang yang bukan programer
sekalipun bisa memodifikasi tampilan web dengan memasukan komponen yang
dibutuhkan pada aplikasi web-based-GIS.
Chameleon terdiri lebih dari 300 skrip PHP yang memberikan fungsi dan
akses “widgets” pada WebGIS. Kita tidak mesti mengetahui bagaimana skrip ini
bekerja karena dibangun dengan PHP MapScript jadi disini kita dapat dengan
mudah memberikan HTML tag. Sebagai contoh penggunaan HTML Tag seperti
melakukan desain untuk menambahkan peta, scalebar, legend, query tool,
printing tools dan aplikasi-aplikasi lainnya.
Pengembang aplikasi yang menggunakan Chameleon dapat melakukannya
hanya dengan menambahkan Tag pada halaman HTML. Cara seperti ini disebuat
dengan CWC2 tag sebuah konfigurasi untuk komponen klien WebGIS.
Penggunaan tag ini memberikan metode yang sederhana dalam menambahkan
sebuah halaman pada aplikasi web.
2.8 Mapscript
2.8.1 Mapscript Environment
Php/Mapscript, atau sering disebut Mapscript saja, adalah sebuah modul
yang digunakan untuk membuat fungsi-fungsi dan class-class MapServer agar
40
dapat dijalankan pada PHP3/PHP4. Sedangkan MapServer sendiri adalah sebuah
service untuk memproses dan menampilkan data spatial beserta proyeksi dan
koordinatnya. MapServer dikembangkan oleh universitas Minnesota
(http://mapserver.gis.umn.edu) dan merupakan freeware sehingga dapat
digunakan secara gratis. MapScript dapat berjalan di sistem operasi windows
maupun linux serta dapat dijalankan pada beberapa Web Server. Secara garis
besar, peran dari mapscript dalam sebuah web-map-server dapat digambarkan
seperti gambar berikut:
Gambar 2.6 Proses Mapscript Pada Web Server
(Sumber: Prasetyo, Daniel Hary. 2004)
Proses diawali dengan request dari client ke server, Web Server akan
menjalankan fungsi-fungsi yang ada di library Mapscript. Data spatial yang akan
digunakan berupa data dengan tipe shapefile, yang merupakan file spasial standar
dari ESRI. Dengan perantara MapFile, sebagai pengatur setting dari data yang
akan ditampilkan, MapScript akan membaca data spatial di shapefile ini,
memprosesnya sesuai permintaan dari client, kemudian menyimpannya kedalam
bentuk file gambar (GIF,JPG, atau PNG). File gambar ini kemudian akan di-load
ke client dalam bentuk obyek gambar HTML. Karena bentuk peta yang
ditampilkan merupakan file gambar maka kerja client tidak berat, terutama jika
dibandingkan dengan cara lain yang menggunakan activeX.
41
2.8.2 Map File
Mapscript memerlukan sebuah file text yang berisi setting layer-layer peta
yang akan ditampilkan. File ini disebut Mapfile dengan extensi .map. Susunan
dari Mapfile dengan dua layer peta adalah seperti berikut :
1 NAME Canada
2 SIZE 400 400
3 STATUS ON
4 SYMBOLSET ./symbols/symbols.sym
5 EXTENT -140 45 -53 80
6 UNITS METERS
7 SHAPEPATH "C:/Inetpub/wwwroot/Mapscript/peta/"
8 WEB
9 IMAGEPATH "C:\Inetpub\wwwroot\Mapscript\tmp\"
10 IMAGEURL "C:\Inetpub\wwwroot\Mapscript\tmp\"
11 END
12 LAYER
13 NAME Province
14 TYPE POLYGON
15 STATUS ON
16 DATA Province
17 CLASS
18 COLOR 20 150 10
19 OUTLINECOLOR 220 220 220
20 END
21 END
22 LAYER
23 NAME roads
24 TYPE LINE
25 STATUS ON
26 DATA Roads
27 CLASS
28 COLOR 250 20 20
29 END
30 END
31 END
Pada baris 1, Name adalah judul dari susunan peta yang akan ditampilkan.
Baris ke 2, Size adalah ukuran dari file gambar yang akan dihasilkan dan
ditampilkan pada halaman web. Baris ke 5, Extent adalah bingkai sebagai batas
42
view peta. Secara berurutan angka-angka disampingnya adalah batas kiri, batas
bawah, batas kanan, dan batas atas. Batas batas tersebut disesuaikan dengan posisi
peta (proyeksi peta) sesuai dengan koordinat yang digunakan oleh peta tersebut.
Angka-angka ini dapat diketahui melalui program ArcView dengan melihat pada
menu view-properties-area of interset peta yang kita olah. Baris berikutnya, Units
adalah satuan panjang yang digunakan. ShapePath adalah direktori dimana data
peta (shapefile) berada.
Bagian berikutnya menyimpan alamat dimana file gambar yang dihasilkan
akan disimpan, dan alamat URLnya. Bagian berikutnya adalah susunan dari
Layer-layer peta yang akan ditampilkan. Layer dengan urutan lebih awal akan
menjadi layer dengan posisi bawah saat ditampilkan pada halaman web. Pada
baris 13 dan 23, Name adalah judul. Berikutnya Type adalah tipe dari shapefile.
Ada tiga tipe Shapefile yang digunakan yaitu tipe Polygon, Line, dan Point. Data,
pada baris 16 dan 26, adalah nama file peta yang akan ditampilkan. Pada baris 18
dan 28, Color adalah warna yang akan digunakan pada peta dan angka-angka
dibelakangnya adalah susunan warna berdasar RGB (red, green, blue), pada
bagian STYLE ini juga merupakan bagian untuk menentukan tebal garis atau
besarnya suatu titik yang akan ditampilkan nantinya, dan juga bentuk arsiran pada
garis maupun Polygon. Untuk menambah layer, bisa dilakukan dengan
menambahkan baris Layer (baris 22-30) dan untuk memodifikasi tampilannya
bisa dilakukan dengan pengaturan/setting dibagian color.
2.8.3 Map Script Objek
MapScript digunakan sebagai interface untuk class-class yang terdapat di
MapServer. Secara garis besar, peta tersusun dari beberapa layer. Layer tersusun
43
dari bentuk-bentuk polygon, garis, dan atau titik yang disebut dengan Shape.
Class-class yang terdapat di MapServer melingkupi class manipulasi untuk Peta,
Layer, dan Shape ini. class-class didalam MapServer yang sering digunakan
untuk mengembangkan Web GIS anatara lain adalah :
a. MapObj Class
Class untuk berhubungan dengan MapFile, atau secara tidak langsung
berhubungan dengan data peta. Class ini juga sebagai class utama di MapScript
untuk memproses dan menyimpan data peta ke file gambar.
Beberapa fungsi dan class penting yang terdapat pada class ini, antara lain:
1. Mempunyai kumpulan class layerObj yang meyusun peta dan fungsi
untuk mengatur urutan peta.
2. Fungsi untuk menggambar peta, disimpan ke dalam class ImageObj.
3. Fungsi untuk menggambar legend, dan disimpan kedalam class
ImageObj
4. Fungsi untuk menggambar scalebar, dan disimpan kedalam class
ImageObj
5. Fungsi SetExtent untuk menentukan Extent dari Peta.
6. Fungsi ZoomPoint, ZoomRectangle, ZoomScale untuk melakukan
pembesaran (zoom in) atau pengecilan (Zoom out) peta.
7. Fungsi untuk mengatur proyeksi peta
8. Fungsi QueryByPoint, QueryByRect, QueryByShape, QueryByFeature
untuk mencari objek di peta yang ada di posisi tertentu dengan
Rectangle, Shape, dan dengan peta lain.
44
b. LayerObj Class
Class yang mewakili satu layer yang menyusun peta. Fungsi-fungsi yang
penting pada class ini antara lain
1. Fungsi GetShape untuk mengambil sebuah shape yang ada pada layer.
Disimpan dalam shapeObj class.
2. Fungsi AddFeature, untuk menambah layer dengan sebuah shape baru.
c. ImageObj Class
Adalah class yang menyimpan gambar hasil pengolahan peta.
d. LabelObj Class
Class yang mengatur label-label yang akan ditampilkan pada peta.
e. WebObj Class
Class yang berhubungan dengan alamat-alamat internet.
f. PointObj, LineObj, RectObj Class, ShapeObj Class
Berturut-turut adalah Class yang digunakan untuk manipulasi Titik, Garis,
Kotak, dan Polygon
g. ScaleBar Class
Class untuk menggambar Scalebar.
h. LegendObj Class
Class untuk menggambar legenda.
(Prasetyo, Daniel Hary. 2004)
45
2.9 PostgreSQL
Artinya: Allah berfirman: “inilah kitab (catatan) kami yang menuturkan
terhadapmu dengan benar, sesungguhnya kami telah menyuruh mencatat apa
yang telah kamu kerjakan”. (QS. Al- Jaatsiyah:29)
Kutipan ayat diatas menjelaskan bahwa semua amal perbuatan manusia
selama hidup di dunia mulai dilahirkan sampai dipanggil lagi oleh Allah SWT
telah dicatat/direkam oleh malaikat dalam sebuah kitab (catatan), Rekaman
(catatan) amal perbuatan manusia inilah yang nanti akan mengingatkan dan
mengadili manusia tentang apa yang telah dilakukannya selama hidup di dunia
saat hari kebangkitan, tiap-tiap manusia memiliki rekaman (catatan) amal
perbuatannya sendiri-sendiri yang harus dipertanggungjawabkan saat hari
penimbangan amal, barang siapa timbangan amal baiknya lebih banyak, maka dia
akan mendapatkan balasan baik (surga), sebaliknya jika timbangan amal buruknya
lebih banyak, maka dia akan mendapat balasan buruk (neraka). Maha suci Allah
SWT yang menciptakan manusia dan menganugerahinya dengan akal fikiran agar
manusia berfikir tentang mana yang baik dan mana yang buruk, agar manusia
menggunakan akal fikirannya untuk mengetahui apa yang ada di alam semesta ini
dengan ilmu pengetahuan sehingga manusia percaya (iman) dengan kebesaran
Allah SWT. Seperti halnya malaikat mencatat dan menyimpan seluruh catatan
amal perbuatan manusia selama hidup di dunia pada sebuah kitab (catatan),
manusia juga menyimpan apa yang mereka ketahui pada sebuah buku catatan.
Sejak manusia mulai mengenal tulisan, mereka meyimpan data dan informasi
46
yang mereka dapat dalam bentuk tulisan (buku catatan). Seiring perkembangan
teknologi, saat ini data dan informasi tidak lagi hanya disimpan dalam bentuk
tulisan pada sebuah kertas (hard copy), akan tetapi data dan informasi saat ini juga
disimpan dalam bentuk data dijital (dara angka) pada sebuah media penyimpanan
di komputer dalam sebuah basisdata, dan salah satu jenis basisdata tersebut adalah
PostgreSQL.
PostgreSQL atau sering disebut Postgres merupakan server Object Relational
Database Management System (ORDBMS) yang bersifat open source.
PostgreSQL adalah DBMS yang memiliki skalabilitas, keluwesan dan kinerja
tinggi, karena selain mendukung standar SQL92 dan SQL99, Postgres juga sudah
mendukung bahasa pemrograman C, C++, Perl, java, Tcl, phyton dan juga php.
Awal perkembangan PostgreSQL dimulai dari penelitian yang dilakukan di
Univesity of California, Berkeley (1977-1985), Postgres berawal dari kode Ingres,
yang kemudian dikembangkan menjadi database server relational dan berhasil
dikomersilkan oleh Relational Technologies/Ingres Corporation. Pada periode
tahun 1986–1994 Postgres telah banyak digunakan untuk penelitian dan produksi
aplikasi. Postgres juga banyak digunakan sebagai bahan belajar diberbagai
Universitas. Pada periode ini perkembangan Postgres adalah sampai pada Postgres
versi 4.2. Kemudian pada tahun 1994-1995, dua orang mahasiswa lulusan
Berkeley melakukan penambahan kemampuan SQL pada Postgres dengan
menggunakan kode ANSI C, dan diberi nama Postgres95, kedua mahasiswa
tersebut adalah Jolly Chen dan Andrew Yu. Untuk meningkatakan kinerja dan
untuk kemudahan dalam pengembangan, berbagai perubahan internal juga
47
dilakukan pada Postgres95, sehingga Postgres95 dapat berjalan lebih cepat jika
dibandingkan dengan Postgres versi 4.2.
Penambahan yang dilakukan pada Postgres95 diantaranya adalah:
a. Bahasa query PostQUEL diganti menjadi SQL (implementasi pada
server). subQuery belum didukung namun dapat dilakukan dengan
menggunakan fungsi-fungsi SQL yang didefinisikan. Dimasukkan
perintah klausa GROUP BY pada SQL.
b. Tersedianya program psql untuk interactif query dengan SQL. Program
psql ini menggunakan GNU readline.
c. Interface object besar ditinggalkan. Mekanisme yang digunakan untuk
menyimpan obyek besar yaitu menggunakan Inversion.
d. Penghapusan system instance-level.
e. Tutorial singkat penggunaan fitur SQL, disertakan dengan contoh
programnya.
f. GNU make digunakan untuk proses build. Postgres95 bisa dikompilasikan
dengan GCC.
awal tahun 1996 nama Database Server Postgres95 dihapus dan diganti menjadi
PostgreSQL. Relaease PostgreSQL dilakukan setiap tiga hingga lima bulan,
dimana pada tiap periode dilakukan pengembangan selama dua hingga tiga bulan.
Seperti halnya DBMS komersil lainnya, sebagai salah satu software
opensource, PostgreSQL juga telah didukung dengan fitur-fitur yang lengkap,
diantaranya:
48
a. Dukungan tipe data yang banyak digunakan pada database komersial,
seperti floating point, integer, character string, money, date/time dan tipe
data binary.
b. Dukungan tipe data yang semakin beragam, seperti tipe data untuk
geometri (seperti Point, Polygon, Circle, dan Line) ,tipe data
jaringan(TCP/IP) untuk menyimpan data pada IP4, IP6 dan Mac Address
(Lnet,cidr,maddr).
c. Didukung tipe data array dan tipe data komposit serta konsep tipe data
Object Identifiers (OIDS), yang digunakan PostgreSQL sebagai primary
key pada beberapa table. Pada postgreSQL versi 8.x, OIDS digunakan
sebagai default pada pembuatan table pada database.
d. Dukungan penyimpanan binary large object(gambar, suara,vidio). Kinerja
PostgreSQL sebagai server database object-relational semkin
memudahkan user untuk mengimplementasikan system aplikasi yang
dibuat
e. Dukungan fitur Foreign Key dan referential integrity, membuat
PostgreSQL banyak dipilih sebagai database server dalam pengembangan
aplikasi.
f. PosgreSQL telah mengimplementasikan tipe join SQL99: inner join, left,
right, full outer join, natural join, yang mempermudah proses querry.
g. Dukungan fitur view dan trigger menyederhanakan proses query yang
kompleks pada sisi server. Fungsi trigger bisa ditulis dalam bahasa C,
Procedural Langguage.
h. Dukungan fungsi Full-text indexing.
49
i. Tersedianya fungsi ODBC.
j. Fitur rule yang dapat digunakan untuk memanipulasi data pada operasi
SQL yang dilakukan, serta fungsi yang berkenaan dengan keamanan data,
seperti fungsi hash cryptographic(MD5, SHAI).
k. Dukungan standar regular expression (full POSIX) dan case-intensitive
regular expression matching.
l. Dukungan dari bahasa pemprograman pada sisi server, seperti: C, SQL,
PL/pgSQL, Tcl, PERL, Python, dan ruby.
m. Temporary table yang digunakan sebagai tabel temporer, dimana akan
dihapus pada saat koneksi database berakhir.
n. Dukungan fitur schema yang memungkinkan:
1. Banyak user menggunakan database yang sama tanpa mengganggu
yang lainnya.
2. Untuk memudahkan mengorganisasikan database dalam satu program
tertentu.
3. PostgreSQL 8.0 adalah PosgreSQL pertama yang bisa dioperasikan
pada Microsoft Windows sebagai server, dimana PostgreSQL berjalan
sebagai salah satu service windows server. Release PosgreSQL ini bisa
dijalankan pada form Windows XP, Windows 2000 maupun Windows
2003.
PosgreSQL memberikan fitur dan kinerja yang lengkap untuk Administrasi
server, seperti:
1. Model keamanan untuk setiap user dan group pada objek database
50
2. Akses yang bisa dibatasi ke server berdasrkan host, nomor IP, user name,
dan database tertentu.
3. Dukungan tools dalam proses backup semua ojek database bukan hanya
tabel saja tetapi termasuk juga fungsi, triger, privillages, tipe, data custom.
4. Operasi backup data dan kebalikannya(restore) data dilakukan oleh user
database yang mempunyai privileges superuser.
5. Dukungan backup data yang menggunakan database cluster dengan
WAL archive
6. Dukungan kerberos untuk proses authentification.
7. Koneksi database yang terenkripsi dengan menggunakan SSL dan SSH.
8. Dukungan koneksi lewat TCP/IP atau local unix dimain socket.
9. Dukungan database replikasi dengan menggunakan aplikasi open source
DB MIRROR.
10. Dukungan Tablespace yang memungkinkan administrator server memilih
file sistem dan media penyimpanan untuk tabel tertentu dalam database.
PostgreSQL juga dapat berjalan di banyak platform Sistem Operasi, sehingga
Database Server ini banyak digunakan dalam pengembangan aplikasi,
diantaranya FreeBSD (x86,Alpha), BSD/OS (x86,Sparc), OpenBSD (x86,Sparc),
NetBSD (x86, Alpa, ARM, m68k, Power PC, Sparc, VAX), Digital Unix, Linux
(x86, Alpa, ARM, MIPS, Power PC, Sparc. s/390), SCO OponServer, SCO
UnixWare, SunOS 4, Sun Solaris (x86, Sparc), Compaq Tru64 Unix, AIX, BeOS,
Windows (XP, WIN 2000, WIN 2003).
Dukungan dari database pemrograman berupa library yang bisa digunakan
untuk koneksi ke server database PostgreSQL, menyebabkan pengguna database
51
PostgreSQL berasal dari berbagai latarbelakang penguasaan bahasa
pemprograman, diantaranya adalah Python (lewat PyGreSql/PoPy), JDBC (Java
Database Connectivity), PHP Librar php-pgsql, Tcl, Standard SQL embeded C,
Perl (Standard DBI/DBD), Native C dan C++ API, ODBC.
(Sugiana, Owo. Munir, Sirojul. 2005)
2.10 PostGIS
PostGIS adalah sebuah perangkat lunak tambahan (geo-spatial extension)
untuk database PostgreSQL yang berfungsi untuk menyimpan obyek-obyek
sistem informasi geografis (data spasial) (Anonymous3. 2007). PostGIS
dikembangkan sebagai sebuah teknologi database spasial open source dibawah
lisensi GNU general public licence. fungsi PostGIS pada database PostgreSQL
adalah sebagai spatially enables (menambahkan tabel khusus untuk penyimpanan
data-data sapsial) untuk menyimpan obyek-obyek sistem informasi geografis (data
spasial) dalam database PostgreSQL. selain menambahkan tabel data spasial,
PostGIS juga akan menambahkan tabel geometry (geom_table) untuk menyimpan
informasi dan atribut geometri data spasial, sehingga dengan adanya informasi
geometri peta tersebut bisa dilakukan analisis dan pemrosesan data sig
menggunakan query sql.
Dalam PostGIS juga sudah terintegrasi dua konverter yaitu shp2pgsql dan
pgsql2shp. fungsi shp2pgsql adalah untuk mengkonversi data shapefile (format
yang dikembangkan ESRI untuk menyimpan informasi–informasi atribut dan
geometri data spasial) ke format databse (format .sql) sehingga memungkinkan
database postgres untuk membuat kolom geometri yang digunakan oleh
52
PHPMapscript untuk menampilkan fitur geometri, sedangkan pgsql2shp
berfungsi mengkonversi database (format .sql) ke format shapefile.
2.11 PgRouting
PgRouting adalah sebuah tools open source yang menyediakan
fungsionalitas routing pada database PostgreSQL (Anonymous4.
. 2007).
PgRouting dapat digunakan untuk menyelesaikan masalah pencarian jalur
terpendek (Shortest Path) dan juga Travelling Salesman Problem (TSP)
(Patrushev, 2007). Saat ini fungsionalitas routing bawaan yang disediakan oleh
modul pgRouting adalah fungsionalitas routing dengan menggunakan algoritma
dijkstra (shortest_path_dijkstra), algoritma A* (shortest_path_astar), algoritma
Shooting Star dan fungsi untuk menangani masalah Travelling Salesman Problem
(TSP). Berikut ini adalah gambar cara kerja fungsi pada modul pgRouting,
Gambar 2.7 Cara Kerja Modul pgRouting
(sumber: (http://pgrouting.postlbs.org/wiki/)
53
BAB III
ANALISIS DAN PERANCANGAN APLIKASI
3.1 Analisis Sistem
Analsis sistem bertujuan untuk melakukan identifikasi persoalan-persoalan
yang muncul dalam pembuatan sistem, hal ini dilakukan agar saat proses
perancangan aplikasi tidak terjadi kesalahan-kesalahan yang berarti sehingga
sistem dapat berjalan dengan baik dan selesai tepat pada waktu yang telah
ditentukan. Dalam analisis sistem ini, sistem yang akan dianalisa meliputi, analisis
kebutuhan system, spesifikasi aplikasi, dan lingkungan operasi.
3.1.1 Analisis Kebutuhan Sistem
Analisis kebutuhan system membahas secara garis besar kebutuhan sistem
aplikasi penentu rute terpendek pariwisata Kota Malang Menggunakan GIS
dengan Fungsi Shortest Path A Star. Dalam membangun sistem aplikasi penetu
rute terpendek pariwisata kota malang, parameter-parameter yang dibutuhkan
untuk data masukan sistem meliputi:
a. Fungsi shortest path astar, yang diperoleh dengan menambahkan tag .sql
routing core dan routing core wrapper dari modul pgRouting pada database
“malang”.
b. Data posisi obyek wisata hasil masukan (input) pengguna, yaitu data input
lokasi awal (source) dan lokasi tujuan/lokasi akhir (target),
c. Tabel “jalan” dengan struktur atau susunan kolom sebagai berikut:
1. Id (integer)
Adalah identitas atau id masing-masing garis/jalan.
2. Cost (double precision)
54
Adalah besar biaya yang diperlukan untuk berjalan dari satu titik/garis
menujutitik lainnya.
3. Reverse_cost (double precision)
reverse_cost digunakan jika dalam melakukan routing diterapkan aturan-
aturan terperinci pada jalan, seperti aturan jalan satu arah atau aturan
dilarang belok pada jalan tertentu.
4. Source vertex (integer)
Id (integer)
x (double precision)
Adalah koordinat titik awal (start point) dari tabel asjalan
y (double precision)
Adalah koordinat titik akhir (end point) tabel asjalan
5. Target vertex (integer)
Id (integer)
x (double precision)
koordinat titik awal (start point) dari tabel asjalan
y (double precision)
adalah koordinat titik akhir (end point) tabel asjalan
Selain id jalan, fungsi astar juga membutuhkan koordinat x dan y dari
masing-masing jalan dalam proses mencari rute terpendek, hal ini dikarenakan
fungsi shortest path astar menggunakan fungsi heuristik untuk memprioritaskan
node-node pada arah yang benar. langkah-langkah dalam pembuatan tabel jalan
dan pembuatan kolom-kolom untuk routing disetakan dalam lampiran.
55
3.1.2 Spesifikasi Aplikasi
Sistem penentu rute terpendek pariwisata kota malang menggunakan GIS
dengan fungsi shortest path astar akan memberikan data keluaran dan memiliki
kemampuan sebagai berikut:
1. Memberikan Informasi obyek-obyek wisata di Kota Malang
2. Memberikan informasi rute terpendek dari satu lokasi obyek ke lokasi yang
lain beserta informasi jarak tempuh antar lokasi.
3. Memberikan informasi nama-nama jalan yang merupakan jalur yang efektif
untuk dilewati.
4. Input objek wisata berdasarkan koordinat lintang bujur melalui halaman web.
5. Memiliki kemampuan navigasi peta seperti zoom in, zoom out, pan map,
scalebar, measure distance, recenter, identify feature,dan legenda.
3.1.3 Lingkungan Operasi
Untuk membangun aplikasi web sesuai dengan spesifikasi kebutuhan,
dibutuhkan lingkungan operasi sebagai berikut:
a. Sistem operasi Windows XP.
Sistem operasi windows XP digunakan karena perancang sistem sudah
terbiasa menggunakan sistem operasi ini sehingga lebih familiar dan
mudah dalam mengoperasikannya.
b. Web Server.
Web server digunakan untuk memberikan layanan web sehingga dapat
diakses oleh pengguna baik yang berada pada jaringan lokal maupun pada
jaringan internet. Web server yang digunakan adalah Apache. Perangkat
lunak ini digunakan karena Apache adalah freeware yang memiliki
56
kemampuan kerja tinggi dibanding dengan perangkat lunak web server
lainnya.
c. MapServer
MapServer digunakan sebagai perangkat lunak visualisasi peta digital
jalan dan posisi kendaraan. Alasan dipilih perangkat lunak ini adalah:
1. Merupakan aplikasi open source untuk membangun aplikasi
internet-based (aplikasi berbasis internet) yang cukup handal.
2. Mendukung format peta digital SIG yang banyak digunakan yaitu
format Shapefile (.SHP).
3. Selain format .SHP, Map Server juga mendukung format data yang
berasal dari basis data PostgreSQL/PostGIS sehingga
memungkinkan peta digital disimpan dalam basisdata yang bisa
diintegrasikan dengan data-data atribut.
4. Memiliki API dalam bahasa pemograman PHP.
d. DBMS PostgreSQL/PostGIS
PostgreSQL adalah perangkat lunak database management system
(DBMS), sedangkan PostGIS adalah perangkat lunak tambahan (third
party) yang berfungsi untuk menambah kemampuan dari PostrgreSQL
dalam menangani basis data spasial. Alasan dipilihnya perangkat lunak ini
adalah karena bersifat gratis dan satu-satunya DBMS yang didukung oleh
Map Server.
e. PgRouting Module
PgRouting adalah sebuah tools open source yang menyediakan
fungsionalitas routing pada database PostgreSQL. PgRouting dapat
57
digunakan untuk menyelesaikan masalah pencarian jalur terpendek
(Shortest Path) dan juga Travelling Salesman Problem (TSP). Alasan
penggunaan modul pgRouting ini karena pada modul ini terdapat sebuah
fungsi untuk menyelesaikan pencarian jalur terpendek (shortest path
problem) menggunakan Algoritma A Star.
f. Interpreter PHP
PHP adalah bahasa pemrograman server side yang bekerja pada sisi
server yang berfungsi untuk menangani request dari pengguna dan
berkomunikasi dengan Map Server serta DBMS PostgreSQL melalui API
(application program interpreter) yang disediakannya. Perangkat lunak ini
digunakan karena bersifat gratis dan open source.
3.2 Perancangan Sistem
Setelah dilakukan analisis sistem, tahap berikutnya adalah tahap perancangan
sistem aplikasi Penentu Rute Terpendek Pariwisata Kota Malang, tahap
perancangan sistem bertujuan untuk menghasilkan sebuah bentuk atau format
sistem aplikasi yang optimal dengan memperhatikan kebutuhan-kebutuhan sistem
yang telah ditentukan dalam tahapan analisis sistem. Langkah yang dilakukan
untuk menghasilkan sebuah bentuk sistem aplikasi yang optimal tersebut adalah
dengan mencari kombinasi penggunaan metode (teknologi), penggunaan
perangkat lunak (software), dan juga penggunaan perangkat keras (hardware)
yang tepat sehingga bisa dihasilkan sebuah sistem aplikasi yang dapat berjalan
secara optimal dan mudah diimplementasikan.
58
3.3 Perancangan Aplikasi Web Penentu Rute Terpendek
Pada tahapan ini akan dibahas mengenai proses perancangan web untuk
aplikasi penentu rute terpendek pariwisata kota malang dengan
mempertimbangkan kebutuhan-kebutuhan dan spesifikasi yang telah ditetapkan
dalam tahap analisis system. Proses perancangan ini meliputi perancangan modul
aplikasi, perancangan basisdata, perancangan tampilan antarmuka (interface
layout).
3.3.1 Perancangan Modul Aplikasi
3.3.1.1 Modul Aplikasi Peta
Modul aplikasi Peta dibagi menjadi dua buah modul yaitu modul
visualisasi data, modul query peta.
a. Modul Visualisasi Data
Modul ini berfungsi untuk memvisualisasikan peta pencarian rute terpendek
kota malang yang didalamnya termuat peta jalan, Objek Wisata, hasil pencarian
rute terpendek yang disajikan dalam bentuk garis (line) pada jalan, area
kecamatan, dan juga atribut-atribut peta seperti peta referensi, legenda, dan
scalebar. Modul ini dibangun dengan menggunakan API PHP/MapScript yang
menggunakan bantuan aplikasi framework chameleon.
Dengan menggunakan MapScript dapat dibuat objek peta yang kemudian
dapat dirender menjadi gambar dengan format PNG sehingga dengan format
tersebut peta yang ditampilkan pada halaman web tidak terlalu berat. Sumber data
peta (data source) yang meliputi Informasi dan atribut-atribut peta disimpan pada
tabel basisdata PostgreSQL/PostGIS. Tabel data spasial informasi peta tersebut
diperoleh dengan cara mengkonversi data dengan format ESRI shapefile (.SHP)
59
ke format SQL dengan menngunakan aplikasi shp2sql data loader yang sudah
terintegrasi pada aplikasi PostgreSQL/PostGIS, konversi data SHP ke tag SQL ini
bertujuan agar mudah dalam melakukan manipulasi dan modifikasi data tabel peta
dengan perintah-perintah Sql. Alur proses modul aplikasi peta dapat dilihat pada
gambar di bawah ini:
Gambar 3.1 Alur proses modul visualisasi data Peta
b. Modul query peta
Modul ini berfungsi untuk menangani proses query yang dilakukan pengguna
yang ingin mengetahui informasi tentang obyek yang ada di peta, seperti
informasi tentang obyek wisata, informasi jalan, ataupun informasi lainnya. Untuk
membuka informasi yang ada pada obyek peta pengguna hanya perlu melakukan
klik pada salah satu bagian obyek yang ada pada peta yang ingin dimunculkan
informasinya, setelah pengguna melakukan klik pada peta, maka hasil dari klik
(query) tersebut adalah informasi mengenai titik atau objek pada peta yang diklik
tadi. Modul ini dibangun dengan menggunakan API PHP/MapScript dengan
bantuan chameleon. Alur kerja modul ini dapat dilihat pada gambar.
PostgreSQL Database
MapServer
MapServer
CWC
Tag
Custom Chameleon Aplication
60
Gambar 3.2 Alur kerja modul query posisi
3.3.1.2 Modul Aplikasi Web
Modul ini berfungsi sebagai acaun aliran data secara umum, dimana
terdapat tiga entitas yang terdiri dari pengunjung, user, dan admin. Database yang
digunakan adalah PostgreSQL/PostGIS.
Pengunjung
`
Web Browser
`
Web Browser
User
`
Web Browser
Admin
ServerInput data
Manegemen User dan Data
Informasi
Database
Koneksi Database
Gambar 3.3 Blok Diagram Database
3.3.2 Perancangan Basis Data
Aplikasi penentu rute terpendek Pariwisata Kota Malang ini dibangun
dengan menggunakan PostgreSQL/PostGIS sebagai system manajemen
databasenya, fungsi basisdata dalam aplikasi ini adalah untuk menyimpan data
61
spasial dan data atribut beserta informasi yang terkait dengan obyek wisata dan
data jalan Kota Malang. Agar dalam implementasinya nanti basisdata dapat
berjalan dengan baik, maka sebelum proses perancangan basis data terlebih
dahulu perlu dilakukan pemodelan basis data yang akan dirancang. Untuk
pemodelan proses desain secara umum dilakukan dengan DFD (data flow
diagram).
Data Flow Diagram, menjelaskan secara logis bagaimana fungsi-fungsi
yang ada di sistem akan bekerja karena data flow diagram merupakan interpretasi
model logis (Logical Model) dari sebuah sistem.
Beberapa simbol yang digunakan dalam DFD antara lain:
Gambar 3.4 Simbol dalam DFD
(Teguh Wahyono:2004:83)
1. Diagram Konteks
Context diagram atau biasa disebut dengan diagram konteks adalah sebuah
gambaran kasar aliran data dan informasi yang akan dilakukan oleh sistem
basisdata yang akan dirancang. Berikut adalah diagram konteks sistem penentu
rute terpendek wisata kota malang.
0
Proses
Proses
1 Data Store
Penyimpanan Data
Sumber
Data
Sumber data / tujuan data
Aliran Data
62
cek_pesa n
bal as_pe san
hak_akses_peng unjun g
inp ut_use r_dan _passwordinp ut_lokasi_awal
inp ut_lokasi_tuj uan
tam bah_o bjek_ wisata
info objek wisata
log in adm in
liha t agen da
log in use r
hak_akses_user
kon firmasi_login _user
pen gumu man
liha t_beri ta
rute _terefektif_a star
kon firmasi login admi n
inp ut_pen gumu man
data_keca mata n
data_obyek_wisata
inp ut_berita_user
tam bah_i nfo_o byek_wista
inp ut_age nda_ user
inp ut_pen gumu man_ user
inp ut_pesan
inp ut_age ndainp ut_berita
data_jala ninp ut_mo dul
1
web gis p enentu rute terefektif wisata ko ta mal ang
+
use r
adm in
pen gunju ng
Gambar 3.5 diagram konteks penentu rute terpendek
wisata kota malang
pada diagram konteks tersebut dapat dilihat bahwa proses aliran data dan
informasi Sistem Penentu rute terpendek wisata kota malang melibatkan tiga
sumber data, yaitu admin, user dan pengunjung. Admin memiliki peran
diantaranya untuk manajemen modul, input berita, input obyek wisata baru,
input pengumuman, input user dan password baru. Sementara user memiliki
peran yang hampir sama dengan admin dalam mengatur (manage) system,
akan tetapi hak akses user dalam mengatur informasi dan data pada system
adalah sebatas yang diberikan oleh admin.
2. DFD Terperinci
Data Flow Diagram atau biasa disebut DFD merupakan detil rancangan dari
diagram konteks yang telah dibuat yang didalamnya sudah memuat rancangan
63
tabel basisdata yang akan diimplementasikan pada database yang akan dibuat.
Bentuk DFD level 1 dari Sistem Penentu Rute Terpendek Wisata Kota Malang
digambarkan sebagai berikut:
[ba las_pe san]
[cek_pesa n]
[ha k_akse s_pen gunjun g]
sim pan_p esan
[inp ut_use r_dan _password]
am bil_da ta_jal an
[inp ut_lokasi_awal]
[inp ut_lokasi_tu juan]
[tam bah_ objek_ wisata ]
am bil data loka siwisatasim pan da ta lokasiwisata
tam pilkan pesan
am bil data asta r
am bil data keca matan
sim pan da ta kecamata n
sim pan da ta jal an
am bil data info objek wisata
sim pan in fo obj ek wisa ta
[info obje k wisa ta]
sim pan ag enda
am bil data age ndaam bil data pen gumum an
sim pan pe ngum uman
am bil berita
sim pan be rita
baca data user
sim pan da ta use r
[log in adm in]
[da ta_jala n][da ta_kecamata n]
[kon firmasi login adm in]
[pe ngumu man][l ih at_berita]
[l ih at age nda]
[inp ut_pe san]
[rute_tere fektif_ astar]
[ha k_akse s_user]
[log in use r]
[kon firmasi_logi n_use r]
[da ta_obyek_wi sata]
[inp ut_pe ngum uman]
[tam bah_ info_o byek_ wista]
[inp ut_be rita_u ser]
[inp ut_pe ngum uman_ user]
[inp ut_ag enda_ user]
[inp ut_ag enda]
[inp ut_be rita]
[inp ut_mo dul]
adm in
pen gunju ng
use r
1.1
adm inistra tor
+
1.2
log in
1.3
peta
+
1.4
info rmasi
+
1 use rs
2 berita
3 pen gumu man
4 age nda
5 wst
6 asja lan
7 kecamata n
8 asta r_resu lt
10 hub ungi
11 loka siwisa ta
Gambar 3.6 DFD level 1 Sistem Penentu Rute Terpendek Wisata Kota
Malang
Pada level 1 terdapat empat proses yang teriri dari proses informasi, login,
administrator, dan peta rute.
a. Proses 4 menangani semua informasi dan data yang akan ditampilkan
diantaranya berita dan pengumuman, informasi objek wisata.
b. Proses 2 digunakan untuk mengecek login user dan admin untuk
mendpatkan hak akses data.
c. Proses 1 atau administrator digunakan sebagai tempat manajemen data
yang yang kemudian akan dipecah kembali menjadi beberapa sub sistem.
64
d. Proses 3 di sini merupakan proses dalam manajemen informasi peta yang
nanti akan menampilkan hasil pencarian rute terpendek obyek wisata yang
diinputkan pengunjung. Berikut ini merupakan gambaran DFD level 2 dari
sub proses peta,
data_loka si_obj ek_wisata
[am bil_da ta_jal an]
sim pan_d ata_ru te_terpende k_asta r
[inp ut_lokasi_tu juan]
[inp ut_lokasi_awal]
[am bil da ta asta r]
[am bil da ta keca mata n]
[am bil da ta loka siwisa ta]
[tam bah_ objek_ wisata ]
[rute_tere fektif_ astar]
[da ta_jala n]
[da ta_kecamata n]
pen gunju ng
adm in
7 kecamata n
8 asta r_resu lt
11 loka siwisa ta
1.3 .1
We b GIS penen tu rute terefe ktif
+
1.3 .2
Lokasi_Ob jek_Wisata
1.3 .3
form _proses_rute_tere fektif
+
6 asja lan
Gambar 3.7 DFD level 2: subproses peta
Pada sub proses peta rute level 2 ini, sub proses peta rute di spesifikasikan
lagi dalam tiga sub proses yaitu sub proses Web GIS penentu rute terpendek,
form rute terpendek dan juga lokasi objek wisata. Sub proses web gis penentu
rute terpendek berfungsi menampilkan peta rute terpendek (menggunakan
fungsi astar) dengan mengambil data dari table astar_result hasil perhitungan
yang dilakukan di sub proses form proses rute terpendek, sementara sub
proses lokasi objek wisata menangani manajemen informasi oleh admin
berkaitan dengan posisi/lokasi objek wisata pada peta, meliputi manajemen
tambah objek wisata ataupun edit objek wisata.
65
[am bil da ta asta r]
[am bil da ta kecamatan][da ta_kecamatan]
[rute_tere fektif_astar]
[da ta_jalan]
adm in
pengunjung
7 kecamatan
8 asta r_resu lt
1.3 .1.1
peta_rute_terefektif
Gambar 3.8 DFD level 3: subproses form_proses_rute_terpendek
Pada DFD level 3 diatas merupakan subproses yang menjelaskan proses
penampilan peta rute terpendek kepada pengunjung.
[da ta_loka si_ob jek_wi sata]
[am bil_da ta_ja lan]
[sim pan_d ata_rute_te rpend ek_astar]
[inp ut_lokasi_tu juan]
[inp ut_lokasi_awal]
pen gunju ng 8 asta r_resu lt
6 asja lan
Lokasi_Ob jek_Wisata
1.3 .3.1
apl ikasi_p enentu_rute _terefektif
Gambar 3.9 DFD level 3: subproses Web GIS penentu rute terpendek
Gambar diatas menunjukkan subproses WebGIS penentu rute terpendek,
terdapat subproses lagi yaitu subproses aplikasi penentu rute terpendek yang
menjelaskan proses penentuan rute terpendek objek wisata dari lokasi yang
diinputkan oleh pengunjung.
66
Untuk subproses yang berkaitan dengan aliran data dan informasi
mengenai isi/konten web penentu rute terpendek wisata kota malang masing-
masing adalah sebagai berikut:
[ha k_akse s_pen gunju ng][da ta_obyek_wi sata]
[inp ut_pe ngum uman ]
[sim pan d ata lo kasiwi sata]
[sim pan d ata ke cama tan]
[sim pan d ata ja lan]
[sim pan i nfo ob jek wi sata]
[sim pan a genda ]
[sim pan p engum uma n]
[sim pan b erita]
[ha k_akse s_use r]
[sim pan d ata user]
[inp ut_user_dan _password][inp ut_be rita]
[inp ut_ag enda]
[inp ut_pe ngum uman _user]
[tam bah_ info_o byek_ wista]
[inp ut_be rita_u ser]
[inp ut_ag enda_ user]
[inp ut_mo dul]adm in
use r
1 use rs
2 berita
3 pen gumu man
4 age nda
5 wst
6 asja lan
7 kecamata n
11 loka siwisa ta
1.1 .1
info rmasi _wisata
1.1 .2
ma najem en_m odul
1.1 .3
data_use r pen gunju ng
Gambar 3.10 DFD level 2: subproses administrator
Pada level 2 proses administrator di pecah menjadi beberapa subproses yaitu
subproses data_user, manajemen_modul dan informasi wisata, subproses
manajemen_modul digunakan untuk mengatur menu yang akan di tampilkan pada
halaman web. Pada subproses informasi wisata terdapat beberapa aktifitas proses
data diantaranya adalah aktifitas penyimpanan data berita, agenda, pengumuman,
kemudian juga aktifitas untuk menambah dan menyimpan informasi objek wisata
yang akan ditampilkan pada halaman web.
67
[ba las_pe san]
[cek_pesa n]
[sim pan_p esan]
[tam pilkan pesa n]
[am bil da ta info objek wisata ]
[am bil da ta pen gumu man]
[l ih at_berita]
[inp ut_pe san]
[info obje k wisata]
[pe ngumu man]
[l ih at age nda]
[am bil be rita]
[am bil da ta age nda]pen gunju ng
2 berita
3 pen gumu man
4 age nda
5 wst
10 hub ungi
4.1
berita
4.2
pen gumu man
4.3
age nda
4.4
tem pat_wisata
4.5
kon tak
adm in
Gambar 3.11 DFD level 2: subproses informasi
Pada level ini semua proses yang berhubungan dengan pengunjung di
kelompokkan ke dalam proses sendiri-sendiri, proses tersebut adalah:
1. Proses berita, digunakan untuk menampilkan berita kepada pengunjung
yang bersangkutan dengan pariwisata.
2. Proses pengumuman pengunjung yang merupakan proses yang digunakan
untuk menampilkan pengumuman kepada pengunjung situs.
3. Proses agenda, proses ini digunakan untuk menginformasikan segala
kegiatan yang akan diadakan di suatu objek wisata.
4. Proses tempat_wisata, proses ini digunakan untuk memberikan informasi
mengenai obyek wisata kota malang, meliputi foto objek wisata dan
keterangan yang berkaitan dengan objek wisata tersebut.
5. Proses kontak digunakan untuk memberikan layanan kepada pengunjung
yang membutuhkan informasi lebih lengkap dan proses ini akan langsung
ditangani oleh admin.
68
3. Entity Relationship Diagram (ERD)
Entity Relationship Diagram (ERD) atau bisa disebut diagram E-R merupakan
model jaringan yang menggunakan susunan data yang disimpan dalam sistem
secara abstrak. Diagram E-R merupakan sebuah diagram yang menggambarkan
hubungan/relasi antar Entity, diagram E-R lebih menekankan pada struktur dan
hubungan antar data, berbeda dengan DFD yang merupakan model jaringan
fungsi yang akan dilaksanakan oleh sistem.
info_objek_wisata
input_posisi_objek
rute_astar
berita_user
peng umuman_user
agenda_user
age nda
id_ agend a
tem a
isi_ agend a
tem pat
tgl_ mula i
tgl_ selesa i
tgl_ postin g
id_ user1
pen gumu man
id_ pengu muma n
jud ul
isi
tan ggal
tgl_ postin g
id_ user2
use rs
id_ user
password
nam a_le ngkap
em ail
level
berita
id_ berita
id_ katego ri
jud ul
id_ user3
isi_ berita
gam bar
hari
tan ggal
jam
cou nter
hub ungi
id_ hubun gi
nam a
em ail
sub jek
pesan
tan ggal
mo dul
id_ modu l
nam a_m odul
link
stat ic_con tent
gam bar
pub lish
status
akti f
uru tan
loka siwisa ta
gid Lokasi
nam aloka si
the _geom
gam bar
asja lan
gid Jalan
nam a_ja lan
the _geom
sou rce
targ et
len gth
obj kwisata
x1
y1
x2
y2
reverse_cost
wst
id_ wst
nam awisa ta
kete ranga n
gam bar
asta r_resu lt
gid Astar
the _geomkecamata n
gid Kecam atan
batas_kec
are a
kecamata n
perimete r
hectares
the _geom
Gambar 3.12 ERD Penetu Rute Terpendek Wisata Kota Malang
69
4. Tabel Data
Dari pemodelan dan perancangan system dengan menggunakan DFD dan juga
diagram ER dapat dibuat tabel-tabel yang akan digunakan dalam pembuatan
system aplikasi penentu rute terpendek pariwisata kota malang.
Dalam pembuatan Tugas Akhir ini, sistem manajemen basisdata (DBMS)
yang digunakan adalah PostgreSQL/PostGIS, nama file basisdata yang digunakan
adalah “malang” yang didalamnya sudah ditambahkan tabel geometry_columns,
Spatial_ref_sys, yang mana kedua tabel tersebut diperoleh dari template_postgis.
Data Shapefile kota malang yang akan dikonversi menjadi data tabel untuk
pembuatan aplikasi ini yaitu meliputi data Shapefile jalan (line), lokasi obyek
(point) dan area kecamatan (polygon) dibuat dengan menggunakan proyeksi
standar peta pada umumnya yaitu Projection of the world yang mana untuk
wilayah Indonesia umumnya menggunakan proyeksi UTM dengan datum WGS
84. Dan untuk peta malang sendiri memiliki extent (batas koordinat lintang dan
bujur) sebagai berikut:
Min X: 667009.588713 Max X: 692153.412599
Min Y:9107569.804038 Max Y: 9127676.976035
berikut adalah susunan masing-masing tabel:
1. Tabel vertice_tmp
Tabel 3.1 vertice_tmp
Name Data type Not Null? Primary key?
id Integer Yes Yes
the_geom geometry No No
70
2. Tabel geometry_columns
Tabel 3.2 geometry_columns
Name Data type Not Null? Primary key?
f_table_catalog character varying(256) Yes Yes
f_table_schema character varying(256) Yes Yes
f_table_name character varying(256) Yes Yes
f_geometry_column character varying(256) Yes Yes
coord_dimension Integer Yes Yes
Type character varying(30) Yes No
Srid integer Yes No
3. Tabel Spatial_ref_sys
Tabel 3.3 Spatial_ref_sys
Name Data type Not Null? Primary key?
srid integer Yes Yes
Auth_name character varying(256) No No
auth_srid integer No No
srtext character varying(2048) No No
proj4text character varying(2048) No No
4. Tabel Users
Tabel 3.4 Users
Name Data type Not Null? Primary key?
id_user character varying(50) Yes Yes
password character varying(50) Yes No
nama_lengkap character varying(100) Yes No
email character varying(100) Yes No
level character varying(50) Yes No
5. Tabel Agenda
Tabel 3.5 Agenda
Name Data type Not Null? Primary key?
id_agenda integer Yes Yes
tema character varying(100) Yes No
isi_agenda text Yes No
71
tempat character varying(100) Yes No
tgl_mulai date Yes No
tgl_selesai date Yes No
tgl_posting date Yes No
id_user character varying(50) Yes No
6. Tabel Hubungi
Tabel 3.6 Hubungi
Name Data type Not Null? Primary key?
id_hubungi Integer Yes Yes
nama character varying(50) Yes No
email character varying(100) Yes No
subjek character varying(100) Yes No
pesan Text Yes No
tanggal Date Yes No
7. Tabel Berita
Tabel 3.7 Berita
Name Data type Not Null? Primary key?
id_berita Integer Yes Yes
id_kategori Integer Yes No
id_user character varying(50) Yes No
judul Text Yes No
isi_berita Text Yes No
gambar character varying(100) Yes No
hari character varying(20) Yes No
tanggal Date Yes No
jam time without time zone Yes No
counter Integer Yes No
direktori character varying(100) Yes No
8. Tabel Modul
Tabel 3.8 Modul
Name Data type Not Null? Primary key?
id_modul Integer Yes Yes
nama_modul character varying(50) Yes No
72
link character varying(100) Yes No
static_content Text No No
gambar character varying(100) No No
publish character varying(10) Yes No
status character varying(10) Yes No
aktif character varying(10) Yes No
urutan Integer Yes No
9. Tabel Pengumuman
Table 3.9 Pengumuman
Name Data type Not Null? Primary key?
id_pengumuman Integer Yes Yes
judul character varying(100) Yes No
isi Text Yes No
tanggal Date Yes No
tgl_posting Date Yes No
id_user character varying(50) Yes No
10. Tabel lokasiwisata
Table 3.10 lokasiwisata
Name Data type Not Null? Primary key?
gid Serial Yes Yes
id Integer No No
the_geom Geometry No No
namalokasi character varying(30) No No
gambar character varying(100) No No
11. Tabel asjalan
Table 3.11 asjalan
Name Data type Not Null? Primary key?
gid Serial Yes Yes
id Integer No No
the_geom Geometry No No
nama_jalan character varying(30) No No
source Integer No No
target Integer No No
length double precision No No
objkwisata character varying(40) No No
73
x1 Double precision No No
y1 Double precision No No
x2 Double precision No No
y2 Double precision No No
reverse_cost Double precision No No
to_cost Double precision No No
rule Text No No
12. Tabel kecamatan
Table 3.12 kecamatan
Name Data type Not Null? Primary key?
gid Serial Yes Yes
batas_k_id small integer No No
area double precision No No
kecamatan character varying(30) No No
perimeter double precision No No
hectares double precision No No
the_geom Geometry No No
13. Tabel wst
Table 3.13 wst
Name Data type Not Null? Primary key?
Id_wst Integer Yes Yes
namawisata character varying(40) No No
keterangan Text No No
gambar character varying(100) No No
14. Tabel astar_result
Table 3.14 astar_result
Name Data type Not Null? Primary key?
Gid Integer Yes Yes
the_geom Geometry No No
74
BAB IV
HASIL DAN PEMBAHASAN
4.1 Implementasi
Implementasi merupakan proses pembangunan komponen-komponen pokok
sebuah sistem informasi berdasarkan desain yang sudah di buat. Implementasi
sistem juga merupakan sebuah proses pembuatan dan penerapan system secara
utuh baik dari sisi perangkat keras maupun perangkat lunaknya. Pada tahap ini
juga dilakukan langkah persiapan sumber daya manusia dari yang menjalankan
sistem tersebut. Pada bab ini akan dibahas hal-hal yang berkaitan dengan web
Sistem Informasi Geografis untuk pencarian rute terpendek Pariwisata di kota
malang pada sebuah peta geografis beserta Sistem Informasi Pariwisata di kota
malang.
Implementasi yang akan dijelaskan disini meliputi lingkungan perangkat
keras dan lingkungan perangkat lunak.
4.1.1 Ruang Lingkup Perangkat Keras
Perangkat keras yang digunakan dalam pengembangan system informasi
geografis penentu kunjungan wisata jawa timur ini adalah sebagai berikut.
1. Prosesor AMD 2500+ 1.40 Ghz
2. RAM 512 MB
3. Kartu Grafis (VGA) NVIDIA GeForce FX 5200
4. Hardisk Seagate barracuda dengan Kapasistas 80 GB
5. Monitor 15” dengan resolusi 1024 x 768 pixels
6. Keyboard
7. Mouse PS2
75
4.1.2 Ruanglingkup Perangkat Lunak
Perangkat lunak yang digunakan antara lain :
1. Sistem Operasi Windows XP
2. MapServer 5.2.1
PHP 5.2.6
Apache 2.2.10
3. PostgreSQL 8.2.11-1
4. PgRouting-1.02_pg-8.2.9
5. Framework Chameleon
6. Macromedia Dreamweaver MX 6.0
Cara penginstalan MapServer, PostgreSQL/PostGIS, Chameleon terlampir.
4.1.3 Implementasi Database
Sebelum menggunakan fungsi A Star yang ada pada modul pgRouting
terlebih dahulu harus dipersiapkan data tabel jalan yang akan dicari rutenya, data
tabel jalan tersebut bisa diperoleh dengan konversi data shapefile ke tag SQL
dengan menggunakan aplikasi tambahan dari PostgreSQL/PostGIS yaitu aplikasi
shp2pgsql. Data peta dari ArcView tersebut minimal terdiri dari tiga data peta
yaitu *.shp, *.shx, dan *.dbf. Sehingga data dari ArcView akan tersimpan dalam
bentuk tag SQL dan semua data peta yang bertipe titik, garis dan poligon akan
dirubah ke dalam format WKT (Well Known Text). Langkah-langkah dlam
proses konversi data disertakan dalam lampiran.
76
Gambar 4.1 Diagram Konversi Data
Pada database „malang” data tabel jalan hasil konversi bernama “tabel asjalan”,
langkah berikutnya setelah data tabel jalan terbentuk adalah menambahkan
fungsionalitas routing pada database "malang" dengan cara memanggil dan
mengeksekusi routing_core.sql dan routing_core_wrapper.sql yang ada di folder
postgreSQL\8.2\share\contrib, setelah menambahkan fungsionalitas routing pada
database “malang”, langkah berikutnya adalah menambahkan kolom-kolom
tertentu pada “tabel asjalan” agar tabel tersebut mampu menjalankan
fungsionalitas routing, diantara kolom-kolom yang harus ditambahakan adalah
sebagai kolom source, terget, length dengan perintah berikut ini:
ALTER TABLE asjalan ADD COLUMN source integer;
ALTER TABLE asjalan ADD COLUMN target integer;
ALTER TABLE asjalan ADD COLUMN length double precision;
kemudian setelah menambahkan kolom-kolom tersebut tahap selanjutnya adalah
membuat topologi jaringan jalannya dengan perintah berikut:
SELECT assign_vertex_id ('asjalan', 0.001, 'the_geom',
'gid');
UPDATE asjalan SET length = length(the_geom);
perintah tersebut akan merubah setting kolom length yang semula berisi data
bertipe Double Precision menjadi data dengan tipe geometry, selanjutnya adalah
membuat index untuk masing-masing kolom source dan target dengan perintah:
77
CREATE INDEX source_idx ON asjalan(source);
CREATE INDEX target_idx ON asjalan(target);
CREATE INDEX geom_idx ON asjalan USING GIST (the_geom
GIST_GEOMETRY_OPS);
untuk menjalankan fungsi routing menggunakan fungsi A Star, hal yang perlu
dilakuakn adalah menambahkan kolom x1, x2, y1, y2 pada “tabel asjalan” dengan
perintah berikut:
ALTER TABLE asjalan ADD COLUMN x1 double precision;
ALTER TABLE asjalan ADD COLUMN y1 double precision;
ALTER TABLE asjalan ADD COLUMN x2 double precision;
ALTER TABLE asjalan ADD COLUMN y2 double precision;
Penambahan kolom-kolom x dan y tersebut karena fungsi A Star
memperhatikan koordinat sumbu x dan y dalam operasinya, dimana:
x1: x koordinat titik awal(start point) tabel asjalan
y1: y koordinat titk awal(start point) tabel asjalan
x2: x koordinat titik akhir(end point) tabel asjalan
y2: y koordinat titik akhir(end point) tabel asjalan
setelah tabel dibuat maka langkah selanjutnya adalah meng-update dan mengatur
tabel data tabel tersebut yang semula bertipe Double Precision sebagai data
dengan tipe geometry dengan perintah:
UPDATE asjalan SET x1 = x(startpoint(the_geom));
UPDATE asjalan SET y1 = y(startpoint(the_geom));
UPDATE asjalan SET x2 = x(endpoint(the_geom));
UPDATE asjalan SET y2 = y(endpoint(the_geom));
setelah selesai menambahkan kolom-kolom yang dibutuhkan pada tabel “asjalan”,
tahap selanjutnya adalah menjalankan query A Star dengan ketentuan query
sebagai berikut:
SELECT * FROM shortest_path_astar('
78
SELECT gid as id,source::integer,target::integer,
length::double precision as cost,
x1, y1, x2, y2
FROM asjalan',23, 12, false, false);
Query diatas akan memilih jalan/rute yang paling efektif untuk dilalui
antara jalan dengan source id “23” menuju jalan dengan target id “12” pada tabel
“asjalan” menggunakan fungsi shortest_path_astar. Hasil query pada PostgreSQL
menunjukkan waktu yang dibutuhkan untuk eksekusi adalah 16 ms (milisecond)
dan didapatkan 10 baris vertex_id/gid (berarti rute terpendek didapatkan dengan
melewati 10 garis jalan).
4.1.4 Implementasi Antarmuka
Implementasi antarmuka dibagi menjadi 3 bagian yaitu antar muka admin,
user, dan pengunjung.
a. Halaman Utama Admin
Halaman ini hanya bisa diakses oleh administrator yang mempunyai
kewenangan dalam menangani semua aliran data dan informasi. Menu-
menu yang disediakan dalam halaman ini antara lain:
1. Manajemen User
Disini admin berwenang dalam manajemen user yang meliputi
menambah, edit dan menghapus user.
2. Modul
Halaman dimana admin melakukan manajemen konten atau isi web,
seperti mengatur menu yang akan ditampilkan dan mengatur hak akses
di setiap menu.
79
3. Berita
Di halaman ini admin dapat melihat semua berita yang di masukkan
oleh user, selain itu admin juga berhak dalam menambah, meng-edit,
serta menghapus semua berita.
4. Agenda dan pengumuman
Di halaman ini admin dapat melihat semua agenda dan atau berita di
setiap objek wisata yang di masukkan oleh user dan memiliki
wewenang penuh dalam menambah, mengedit, serta menghapus semua
agenda dan pengumuman.
5. Hubungi kami
Halaman untuk komunikasi antara pengunjung dengan pengelola
sistem, digunakan untuk menerima dan membalas pertanyaan dan
saran dari user dan pengunjung.
6. Objek Wisata Malang
Halaman yang digunakan admin dalam mengatur semua data dan
informasi yang berkaitan dengan objek wisata di kota malang.
7. Rute Astar
Halaman untuk menampilkan data angka hasil pencarian terpendek
menggunakan algoritma astar, data tersebut diambil dari data tabel
basisdata.
80
Gambar 4.2 Menu Utama Admin
8. Posisi Objek Wisata
Halaman ini digunakan untuk menyimpan data spasial posisi objek
wisata yang ditampilkan pada peta, disini admin dapat melakukan
manajemen data (insert, edit, dan delete) obyek wisata.
9. Modul Jalan
Halaman dimana informasi terkait data spasial jalan yang digunakan
dalam pencarian rute erefektif ditampilkan dalam bentuk data angka-
angka (digital). Fungsi penampakan data jalan ini adalah agar admin
mudah dalam melakukan manajemen posisi obyek wisata pada peta.
b. Halaman Utama User
Menu yang terdapat pada halaman user antara lain:
1. Berita, Agenda, dan Pengumuman
Pada halaman ini user mempunyai hak akses penuh terhadapat berita
yang ditus dengan menggunakan usernya sendiri sehingga tidak
mempunyai akses terhadap berita yang dimasukkan oleh user lainnya.
81
2. Posisi Obyek Wisata
Pada halaman ini user memiliki hak yang sama dengan admin dalam
melakukan manjemen data yang berkaitan dengan posisi obyek wisata
pada peta.
3. Obyek Wisata Malang
Pada halaman ini user juga memiliki kewenangan dalam manajemen
data dan informasi yang berkaitan dengan objek wisata di kota malang.
Gambar 4.3 Halaman Utama Untuk User
Kode Program dari form user dan admin
<?php
session_start();
if (empty($_SESSION[namauser]) AND empty($_SESSION[passuser])){
echo "<link href='../config/adminstyle.css' rel='stylesheet'
type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=index.php><b>LOGIN</b></a></center>";
}
else{
?>
<html>
<head>
<title>=@= Administrator Kota Malang Routefinder =@=</title>
<link href="../config/adminstyle.css" rel="stylesheet"
type="text/css" />
82
</head>
<body>
<div id="header">
<div id="content">
<?php include "content.php"; ?>
</div>
<div id="menu">
<ul>
<li><a href=?module=home>» Home</a></li>
<?php include "menu.php"; ?>
<li><a href=signout.php>» Logout</a></li>
</ul>
<p> </p>
</div>
<div id="footer"> Copyright © 2009 by Administrator Of Kota
Malang RouteFinder
cReator</strong><br/>
</div></div>
</body>
</html>
<?
}
?>
c. Halaman Utama Pengunjung
Di halaman ini Pengunjung hanya dapat mengakses menu-menu
yang telah disediakan oleh admin, menu-menu tersebut diantaranya:
1. Home
2. Profil Kota Malang
3. Peta
4. Rute A Star
5. Berita
6. Agenda
7. Pengumuman
8. Hubugi Kami
83
Gambar 4.4 Halaman Utama Untuk Pengunjung
Kode program untuk halaman utama pengunjung, diambil dari file index1.php
<? include "header.php"; ?>
<div id="content-wrap">
<div id="content">
<? include "sidebars.php"; ?>
<div id="main">
<div class="post">
<? include "kanan.php"; ?>
</div></div>
</div></div>
<? include "footers.php"; ?>
84
4.2 Pembahasan
Setelah pada bagian sebelumnya dijelaskan tentang kebutuhan database
untuk menjalankan fungsi shortest_path_astar, maka pada bagian ini akan
dijelaskan mengenai implementasi dan cara kerja fungsi shorterst_path_astar yang
ada dlam modul PgRouting dalam menyelesaikan masalah routing geografis
untuk menentukan rute terpendek pariwisata kota malang. Selain itu juga akan
dibahas mengenai fungsi dari masing-masing form yang ada di sistem beserta
Kode Program proses.
4.2.1 Input Data
a. Form Input Objek Wisata Ke dalam Peta
Gambar 4.5 Form Input Objek Wisata Kedalam Peta
Form ini digunakan untuk menginputkan Objek Wisata kedalam peta,
parameter-parameter yang digunakan dalam input obyek wisata baru
kedalam peta adalah:
1. Textfield untuk input gid lokasi wisata
2. Kemudian, Textfield untuk mengisikan nama obyek wisata yang akan
diinput pada peta.
85
3. Selanjutnya adalah Textfield untuk memasukkan koordinat bujur dan
lintang lokasi wisata, koordinat lokasi harus sesuai dengan data yang
ada di lapangan.
Kode program proses simpan input obyek wisata baru tersebut adalah
sebagai berikut:
//Input Objek Wisata
elseif ($module=='ObjekWst' AND $act=='inputObjk'){
include "../config/koneksi.php";
pg_query("INSERT INTO lokasiwisata(gid, namalokasi,
the_geom)
VALUES('$_POST[gid]','$_POST[namalokasi]',
GeomFromText('POINT($_POST[ltng] $_POST[bjr])'))");
header('location:media.php?module=Objek_wisata');
}
b. Form Tambah Informasi Obyek Wisata
Berbeda dengan form tambah obyek wisata pada peta, form ini
berfungsi menambah obyek wisata dari segi informasi tentang suatu
obyek, seperti profil obyek wisata, foto obyek, dan keterangan lain yang
berkaitan dengan obyek. Berikut adalah gambar form tambah informasi
obyek wista,
Gambar 4.6 Form Input Informasi Objek Wisata
86
Kode program dari form input informasi obyek wisata diatas adalah
sebagai berikut:
// Form Tambah informasi
elseif ($_GET[act]=='tambahinformasi'){
echo "<h2>Tambah Informasi Obyek Wisata</h2>
<form method=POST
action='aksi.php?module=informasi&act=input'
enctype='multipart/form-data'>
<table>
<tr><td>ID Lokasi</td> <td> : <input type=text
name=id size=60></td></tr>
<tr><td>Nama Lokasi</td> <td> : <input type=text
name=nama size=60></td></tr>
<tr><td>Keterangan</td><td> : <textarea
name=keterangan cols=80 rows=18></textarea></td></tr>
<tr><td>Gambar</td> <td> : <input type=file
name=fupload size=40></td></tr>
<tr><td colspan=2><input type=submit value=Simpan>
<input type=button value=Batal
onclick=self.history.back()></td></tr>
</table>
</form>";
}
c. For m Tambah Modul
Form tambah modul digunakan administrator dalam mengatur konten
dari web/sistem, meliputi menambah dan menampilkan menu yang dapat
di akses oleh user dan pengunjung. Berikut adalah penjelasan dari form
tambah modul:
1. Nama modul merupakan nama atau label dari menu yang akan
ditampilkan pada halaman web.
2. Link, digunakan untuk memasukkan alamat modul yang akan
ditampilkan.
3. Publish, apabila dipilih radio button Y maka link akan di tampilkan
di menu pengunjung dan user jika N maka sebalikanya.
4. Aktif, menu akan aktif bila radio button Y di pilih, jika N maka
sebaliknya.
87
5. Status, memberikan keterangan mengenai hak akses suatu modul,
apakah modul bisa diakses oleh user atau tidak.
Gambar 4.7 Form Tambah Modul
elseif ($module=='modul' AND $act=='input'){
pg_query("INSERT INTO modul(nama_modul,
link,
publish,
aktif,
status,
urutan)
VALUES('$_POST[nama_modul]',
'$_POST[link]',
'$_POST[publish]',
'$_POST[aktif]',
'$_POST[status]',
'$_POST[urutan]')");
header('location:media.php?module='.$module);}
4.2.2 Pencarian Rute Terpendek menggunakan Fungsi A Star
Pembahasan mengenai pencarian rute terpendek wisata kota malang
menggunakan fungsi A Star akan dijelaskan mulai dari proses input lokasi
obyek yang dilakukan pengunjung hingga penampakan hasil pencarian pada
peta. Berikut adalah urutan proses pencarian rute terpendek tersebut:
88
1. Input lokasi
Tahap awal yang dilakukan pengunjung yang ingin mencari rute
terpendek Pariwisata Kota Malang adalah dengan melakukan input lokasi
awal dan lokasi tujuan, berikut ini adalah form input data awal pencarian
rute terpendek.
Gambar 4.8 Form Rute A Star
Berikut adalah kode program untuk form input lokasi pencarian rute
terpendek menggunakan fungsi A Star
<tr>
<td class=judul_head>» Pencarian Rute Terpendek
dengan Algoritma A-Star</td></tr>
<form action= aksiAstar.php method="post"
enctype='multipart/form-data'> <table class="tb1"
border="0" cellspacing="1" cellpadding="5"width="68%">
<tr><td height="30" colspan="6"><div
align="center"><strong>» Find Your Location Here
« </strong></div></td></tr>
<tr> <td height="10" colspan="6" ></td>
</tr><tr>
<td width="30%" class="hr"><?php echo
htmlspecialchars("Lokasi Awal")." " ?></td>
<td width="70%" colspan="5" class="dr"><? echo"
89
<select name=srcID>
<option value=0 selected>- Pilih Obyek Wisata -
</option>";
$tampil=pg_query("SELECT source, objkwisata FROM
asjalan ORDER BY objkwisata");
while($r=pg_fetch_array($tampil)){
echo "<option
value=$r[source]>$r[objkwisata]</option>";
} echo "</select>" ?></td>
</tr>
<tr> <td height="29" class="hr"><?php echo
htmlspecialchars("Lokasi Tujuan")." " ?></td>
<td width="70%" colspan="5" class="dr"> <? echo"
<select name=trgID>
<option value=0 selected>- Pilih Obyek Wisata -
</option>";
$tampil=pg_query("SELECT source, objkwisata FROM
asjalan ORDER BY objkwisata");
while($r=pg_fetch_array($tampil)){
echo "<option
value=$r[source]>$r[objkwisata]</option>";
}
echo "</select>" ?> </td> </tr>
<tr> <td colspan="6" class="hr"> </td>
</tr></table>
<p> <input type="submit" name="action" value="<?php
echo "Find Route" ?>"> <input type=button
value=Batal onclick=self.history.back()>
</p>
</form>
<tr> <td class=kembali> </td>
<td class=kembali> </td>
<td class=kembali><br>
[ <a href=javascript:history.go(-1)>Kembali</a> ]</td>
</tr> </table>
2. Hasil pencarian rute terpendek
Setelah melakukan input lokasi awal dan lokasi tujuan kemudian
menekan tombol “find route”, maka system akan menampilkan form hasil
pencarian rute terpendek pariwisata Kota Malang. Adapun tampilan hasil
pencarian rute terpendek menggunakan fungsi shortest path astar
ditunjukkan seperti pada gambar berikut ini:
90
Gambar 4.9 Form Hasil Pencarian Rute Terpendek Astar
Gambar diatas menunjukkan hasil pencarian rute terpendek dengan input
lokasi awal dari MOG dengan input lokasi tujuan MUSEUM MPU
PURWA, dan hasil yang ditampilkan dari pencarian rute terpendek
tersebut berupa jarak tempuh antara kedua obyek wisata sejauh
± 6.32821250421735 Km dengan nama-nama jalan (trayek) yang bisa
dilewati dari MOG menuju MUSEUM MPU PURWA adalah seperti yang
ditampilkan pada gambar diatas. Kemudian untuk melihat hasil pencarian
pada peta, dapat dilakukan dengan mengklik link “peta”.
Berikut ini adalah skrip program untuk mencari rute terpendek
pariwisata kota malang dengan menggunakan algoritma A Star pada
modul PgRouting:
<html xmlns="http://www.w3.org/1999/xhtml">
<head><style type="text/css">
#map {
margin:10px 15px; padding: 0;
border: 1px solid #f2f2f2;
91
background-color: #FAFAFA;
font: normal 0.8em 'Trebuchet MS', Tahoma, Sans-
serif;
}
#result {
margin:10px 15px; padding: 0;
background-color: #FAFAFA;
font: normal 0.9em 'Trebuchet MS', Tahoma, Sans-
serif;
}
</style>
</head><body>
<?php
include "config/koneksi.php";
pg_query("DROP TABLE IF EXISTS astar_result;");
pg_query("CREATE TABLE astar_result(gid int4) with
oids;");
pg_query("SELECT AddGeometryColumn('astar_result',
'the_geom', '2276', 'MULTILINESTRING', 2);");
pg_query("INSERT INTO astar_result(the_geom)
SELECT the_geom FROM astar_sp('asjalan',
$_POST[srcID], $_POST[trgID]);");
pg_query("SELECT sum(length(the_geom))/1000 AS km_roads
FROM astar_result;");
?>
<form id="map" method="post" action="star1.php"
enctype='multipart/form-data'>
<table width="58%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td colspan="2" align="center">Hasil Pencarian Rute
Terpendek dengan Algoritma A*</td>
</tr> <tr><td colspan="2"> </td> </tr>
<tr> <td width="33%">Lokasi Awal :</td>
<td width="65%"><? echo "<input type=text name=awal
size=40 value='$_POST[srcID]'>"; ?>
</td></tr>
<tr><td>Lokasi Akhir:</td>
<td><? echo "<input type=text name=awal size=40
value='$_POST[trgID]'>"; ?>
</td></tr>
<tr> <td>Total Jarak:</td>
<td>
<?
$tampil=pg_query("SELECT
sum(length(the_geom))/1000 AS km_roads FROM
astar_result");
while ($r=pg_fetch_array($tampil)){
echo "<input type=text name=jarak size=40
value='$r[km_roads]'>";
}
?>
</td></tr>
<tr><td valign="top">Trayek :</td>
<td> <?
$tampil=pg_query("select nama_jalan
92
from asjalan,astar_result where asjalan.the_geom =
astar_result.the_geom;");
while($s=pg_fetch_array($tampil)){
echo "<$s[nama_jalan]>";
}
?>
</td> <tr> <td> </td><td> </td>
</tr></tr> <tr>
<td><input name="simpan" type="submit"
value="Simpan"></td> </tr> </table>
</form>
<form id="result">
<?
$buka=pg_query("SELECT source, objkwisata from asjalan
where source='$_POST[srcID]'");
while ($s=pg_fetch_array($buka)){
echo "Lokasi Keberangkatan anda adalah : <tr><td>
$s[objkwisata] </td></tr><br>";
$buka=pg_query("SELECT source, objkwisata from asjalan
where source='$_POST[trgID]'");
while ($s=pg_fetch_array($buka)){
echo "dan lokasi Tujuan anda adalah : $s[objkwisata]
<br>";
$buka=pg_query("SELECT sum(length(the_geom))/1000 AS
km_roads FROM astar_result");
while ($s=pg_fetch_array($buka)){
echo "Jarak Tempuh Antar Lokasi adalah :
± $s[km_roads] Km <br><br><br>";
}}}
echo"Silahkan Lihat Rute perjalanan anda pada
[ <a
href=http://localhost:2000/Malang/chameleon/Rute/htdocs>P
eta</a> ]";
echo" <br> <tr><td class=kembali><br>
[ <a href=javascript:history.go(-1)>Kembali</a>
]</td></tr>";
?>
</form></body>
</html>
3. Preview hasil pencarian rute terpendek astar pada peta
Gambar berikut ini merupakan preview hasil pencarian rute terpendek
dengan lokasi awal dari MOG dan lokasi tujuan MUSEUM MPU
PURWA, rute terpendek antara kedua lokasi digambarkan dengan garis
dengan warna ungu yang menghubungkan obyek wisata (gambar kotak
berwarna merah).
93
Gambar 4.10 Preview Rute Terpendek Astar pada halaman peta
Untuk bisa menampilkan hasil routing A Star pada peta seperti pada
gambar diatas dilakukan dengan menambahkan layer baru pada mapfile
yang dengan data berasal dari tabel astar_result yang merupakan tabel
yang berisi data-data hasil pencarian rute dengan menggunakan fungsi
astar, berikut adalah potongan skrip layer Astar pada mapfile :
LAYER
NAME "A-STAR"
GROUP "line"
STATUS ON
TYPE LINE
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang host=localhost
port=5432 password=root"
DATA "the_geom from astar_result using unique gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "astar"
#TEMPLATE "ttt_query.html"
94
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 8
POSITION AUTO
COLOR 0 0 0
PARTIALS FALSE
END
STYLE
SYMBOL "circle"
COLOR 155 0 145
ANTIALIAS TRUE
END
END
END
4.2.3 Edit Data
Fungsi dari form edit data pada masing-masing modul adalah untuk
merubah informasi dan juga data pada masing-masing modul tersebut jika ada
kekurangan maupun terjadi kesalahan input data, sehingga isi dari form edit
data pada setiap modul mempunyai fungsi yang sama dengan isi dari form
input datanya. Berikut adalah form edit data yang ada pada masing-masing
modul:
a. Form Edit Informasi Obyek Wisata
Gambar 4.11 Form Edit Informasi Obyek Wisata
95
Berikut adalah potongan kode program untuk Form Edit informasi obyek
wisata:
//edit informasi wisata
elseif ($module=='informasi' AND $act=='input'){
$lokasi_file = $_FILES['fupload']['tmp_name'];
$nama_file = $_FILES['fupload']['name'];
if (!empty($lokasi_file)){
move_uploaded_file($lokasi_file,"foto_berita/$nama_file");
pg_query("INSERT INTO wst(id_wst,
namawisata,
keterangan,
gambar)
VALUES('$_POST[id]',
'$_POST[nama]',
'$_POST[keterangan]',
'$nama_file')");
}
else{
pg_query("INSERT INTO wst(id_wst,
namawisata,
keterangan)
VALUES('$_POST[id]',
'$_POST[nama]',
'$_POST[keterangan]'");
} header('location:media.php?module='.$module);
}
elseif ($module=='informasi' AND $act=='update'){
$lokasi_file = $_FILES['fupload']['tmp_name'];
$nama_file = $_FILES['fupload']['name'];
// Apabila gambar tidak diganti
if (empty($lokasi_file)){
pg_query("UPDATE wst SET id_wst = '$_POST[id]',
namawisata = '$_POST[nama]',
keterangan = '$_POST[keterangan]'
WHERE id_wst = '$_POST[id]'");
}
else{
move_uploaded_file($lokasi_file,"foto_berita/$nama_file");
pg_query("UPDATE wst SET id_wst = '$_POST[id]',
namawisata = '$_POST[nama]',
keterangan = '$_POST[keterangan]',
gambar = '$nama_file'
WHERE id_wst = '$_POST[id]'");
}
header('location:media.php?module='.$module);
}
96
b. Form Edit Posisi Obyek Wisata
Gambar 4.12 Form Edit Posisi Obyek Wisata
Form edit posisi obyek wisata digunakan untuk mengatur posisi
obyek wisata pada peta berdasarkan kooordinat lintang bujur. Dan
yang mempunyai hak untuk melakukan edit posisi tersebut adalah
administrator saja.
Berikut ini adalah potongan kode program untuk form edit posisi
obyek wisata pada peta:
elseif ($module=='UpdateObjkWst' AND
$act=='updateobjkwst'){
pg_query("UPDATE lokasiwisata SET namalokasi =
'$_POST[obyek]', the_geom =
GeomFromText('$_POST[koordinatupdate]')
WHERE gid = '$_POST[id]'");
header('location:media.php?module=Objek_wisata');
}
c. Form Edit Data Jalan
Form edit data jalan digunakan untuk mengatur gid obyek wisata pada
jalan agar dapat diidentifikasi source dan target-nya sehingga bisa
dilakukan pencarian rute (routing) pada obyek wisata tersebut.
97
Gambar 4.13 Form Edit Data Jalan
Berikut ini adalah potongan kode form edit data jalan:
elseif ($module=='updatejalan' AND $act=='updatejln'){
pg_query("UPDATE asjalan SET
objkwisata = '$_POST[objkwst]'
WHERE gid = '$_POST[id]'");
header('location:media.php?module=jalan');}
d. Form Edit Modul
Gambar 4.14 Form Edit Modul
Form edit modul berfungsi untuk mengatur konten atau isi web penetu
rute terpendek pariwisata kota malang.
98
e. Form Edit Pengumuman
Gambar 4.15 Form Edit Pengumuman
4.2.4 Tampilan Peta
a. Tampilan Peta Standar
Gambar 4.16 Peta Standart
99
Gambar diatas merupakan tampilan standar halaman peta pada aplikasi
penentu rute terpendek pariwisata kota malang, layer-layer yang ditampilkan
meliputi layer jalan (berwarna kelabu), obyek wisata (kotak warna merah), rute
astar (garis warna ungu), dan layer batas kecamatan di kota malang dengan
warna yang biru yang berbeda-beda pada masing-masing kecamatan.
Kode Program untuk menampilkan peta:
<?php
include( "../../htdocs/chameleon.php" );
$szTemplate = "./body.php";
$szMapFile = "../map/JalanMalang.map";
class SampleApp extends Chameleon
{
function SampleApp()
{
parent::Chameleon();
$this->moMapSession = new MapSession_RW;
$this->moMapSession->setTempDir(
getSessionSavePath());
}
}
$oApp = new SampleApp();
$oApp->registerSkin( 'skins/sample' );
$oApp->CWCInitialize( $szTemplate, $szMapFile );
$oApp->CWCExecute();
?>
b. Hasil query obyek Jalan pada peta
Gambar berikut merupakan hasil query pada peta, hasil query ini berisi
atribut yang merupakan informasi tentang layer-layer yang ada pada
peta. Gambar dibawah adalah contoh hasil query yang dilakukan pada
jalan dengan nama jalan: JL. SAXOFONE, gid 95, source: 103, target:
100 .
100
Gambar 4.17 Hasil Query Pada data Jalan
c. File index.phtml
Dalam merancang sebuah aplikasi web-based GIS menggunakan
framework chameleon, perancang aplikasi memerlukan file-file
pendukung yang mencakup mapfile (.map), file template (.html), file
inisialisasi (.phtml). mapfile adalah file yang berisi setting layer-layer
peta, file template berisi template yang digunakan dalam membuat aplikasi
web, kemudian File index.phtml adalah file inisialisasi yang dalam
kodenya sudah mencakup file chameleon.php, file ini berfungsi
memanggil mapfile (file .map) dan juga file template yang digunakan,
kemudian melakukan parsing terhadap file template ke dalam aplikasi
yang sesuai dengan format HTML.
101
File index.phtml
<?php
include( "../../htdocs/chameleon.php" );
$szTemplate = "./body.php";
$szMapFile = "../map/JalanMalang.map";
class SampleApp extends Chameleon
{
function SampleApp()
{
parent::Chameleon();
$this->moMapSession = new MapSession_RW;
$this->moMapSession->setTempDir(
getSessionSavePath());
}
}
$oApp = new SampleApp();
$oApp->registerSkin( 'skins/sample' );
$oApp->CWCInitialize( $szTemplate, $szMapFile );
$oApp->CWCExecute();
?>
d. File JalanMalang.map
MAP
NAME "MALANG"
STATUS ON
EXTENT 667009.588713 9107569.804038 692153.412599
9127676.976035
SIZE 500 400
SHAPEPATH "../data"
SYMBOLSET "../etc/symbols.sym"
FONTSET "../etc/fonts.txt"
IMAGETYPE PNG
IMAGECOLOR 255 255 255
REFERENCE
IMAGE "images/index.jpg"
EXTENT 667009.588713 9107569.804038 692153.412599
9127676.976035
STATUS ON
SIZE 110 130
COLOR -1 0 0
OUTLINECOLOR 255 0 0
END
QUERYMAP
COLOR 27 0 120
STYLE HILITE
END
PROJECTION
102
"proj=latlong"
END
LEGEND
STATUS ON
KEYSIZE 18 12
LABEL
TYPE BITMAP
SIZE MEDIUM
COLOR 125 255 0
END
END
SCALEBAR
STATUS ON
COLOR 150 150 150
OUTLINECOLOR 0 0 0
BACKGROUNDCOLOR 255 250 255
IMAGECOLOR 50 50 50
UNITS KILOMETERS
INTERVALS 5
SIZE 150 5
LABEL
SIZE SMALL
COLOR 0 0 0
END
END
LAYER
NAME "Kecamatan"
GROUP "polygon"
#STATUS ON
TYPE POLYGON
DATA "the_geom FROM kecamatan USING UNIQUE gid"
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
CLASSITEM "gid"
LABELITEM "kecamatan"
METADATA
"DESCRIPTION" "Kecamatan"
"GROUP" "polygon"
"LAYER" "kecamatan"
END
PROJECTION
"proj=latlong"
END
CLASS
NAME "Kecamatan Kedungkandang"
EXPRESSION "1"
LABEL
TYPE TRUETYPE
FONT "sans"
SIZE MEDIUM
POSITION AUTO
END
LABEL
103
TYPE TRUETYPE
FONT "sans"
SIZE 6
MINSIZE 6
MAXSIZE 8
POSITION AUTO
END
STYLE
COLOR 0 140 220
END
END
CLASS
NAME "Kecamatan Sukun"
EXPRESSION "5"
LABEL
TYPE TRUETYPE
FONT "sans"
SIZE 6
MINSIZE 6
MAXSIZE 8
POSITION AUTO
END
STYLE
COLOR 0 170 220
END
END
CLASS
NAME "Kecamatan Klojen"
EXPRESSION "3"
LABEL
TYPE TRUETYPE
FONT "sans"
SIZE 6
MINSIZE 6
MAXSIZE 8
POSITION AUTO
END
STYLE
COLOR 0 200 220
END
END
CLASS
NAME "Kecamatan Lowokwaru"
EXPRESSION "4"
LABEL
TYPE TRUETYPE
FONT "sans"
SIZE 6
MINSIZE 6
MAXSIZE 8
POSITION AUTO
END
STYLE
COLOR 0 155 220
END
END
CLASS
NAME "Kecamatan Blimbing"
EXPRESSION "2"
104
LABEL
TYPE TRUETYPE
FONT "sans"
SIZE 6
MINSIZE 6
MAXSIZE 8
POSITION AUTO
END
STYLE
COLOR 0 185 220
END
END
END
LAYER
NAME "Jalan Utama"
GROUP "line"
STATUS ON
TYPE LINE
DATA "the_geom FROM asjalan USING UNIQUE gid"
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
CLASSITEM "gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "Jalan"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 8
MINSIZE 8
MAXSIZE 9
POSITION AUTO
COLOR 0 0 0
PARTIALS FALSE
END
STYLE
COLOR 200 209 205
ANTIALIAS TRUE
END
END
END
LAYER
NAME "Jalan Lengkap"
GROUP "line"
#STATUS ON
TYPE LINE
DATA "the_geom FROM tbjalan USING UNIQUE gid"
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
105
CLASSITEM "gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "Jalan"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 8
MINSIZE 8
MAXSIZE 9
POSITION AUTO
COLOR 30 0 0
PARTIALS FALSE
END
STYLE
COLOR 200 209 205
ANTIALIAS TRUE
END
END
END
LAYER
NAME "Dijkstra"
GROUP "line"
#STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang host=localhost
port=5432 password=root"
DATA "the_geom from dijsktra_result using unique gid"
CLASSITEM "gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "ShortestPath"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 8
MINSIZE 8
MAXSIZE 9
POSITION AUTO
COLOR 0 0 0
PARTIALS FALSE
END
STYLE
SYMBOL "circle"
COLOR 255 0 5
ANTIALIAS TRUE
END
END
106
END
LAYER
NAME "A-Star"
GROUP "line"
STATUS ON
TYPE LINE
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
DATA "the_geom from astar_result using unique gid"
CLASSITEM "gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "astar"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 8
MINSIZE 8
MAXSIZE 9
POSITION AUTO
COLOR 0 0 0
PARTIALS FALSE
END
STYLE
SYMBOL "circle"
COLOR 155 0 145
ANTIALIAS TRUE
END
END
END
LAYER
NAME "tsp"
GROUP "line"
#STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
DATA "the_geom from tsp_table using unique gid"
CLASSITEM "gid"
PROJECTION
"proj=latlong"
END
CLASS
NAME "tsp"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
107
FONT "sans-italic"
SIZE 8
MINSIZE 8
MAXSIZE 9
POSITION AUTO
COLOR 0 0 0
PARTIALS FALSE
END
STYLE
SYMBOL "circle"
COLOR 155 20 145
ANTIALIAS TRUE
END
END
END
LAYER
NAME "Obyek Wisata"
GROUP "point"
STATUS ON
TYPE POINT
DATA "the_geom FROM lokasiwisata USING UNIQUE gid"
CONNECTIONTYPE POSTGIS
CONNECTION "user=postgres dbname=malang
host=localhost port=5432 password=root"
CLASSITEM "gid"
LABELITEM "namalokasi"
PROJECTION
"proj=latlong"
END
CLASS
NAME "obyekwisata"
TEMPLATE "ttt_query.html"
LABEL
TYPE TRUETYPE
FONT "sans-italic"
SIZE 7
MINSIZE 7
MAXSIZE 9
POSITION AUTO
END
STYLE
SYMBOL 4
COLOR 255 266 277
SIZE 6
MINSIZE 5
MAXSIZE 7
END
END
END
END
108
BAB V
PENUTUP
5.1 Kesimpulan
Dari hasil pembuatan dan pengujian sistem, dapat diambil beberapa
kesimpulan sebagai berikut:
1. Fungsi shortest_path_astar terbukti dapat menyelesaikan masalah routing
untuk pencarian rute terpendek (shortest path) pada peta geografis.
2. Akurasi dalam proses pembuatan atau dijitasi jalan akan mempengaruhi
akurasi hasil perutean, semakin akurat data jalan, maka semakin akurat pula
hasil perutean yang akan ditampilkan.
3. Proses loading dalam visualisasi (menampilkan) peta pada browser sedikit
lambat, terutama pada saat pertama kali megakses peta. Hal ini disebabkan
karena proses visualisasi posisi di web browser dibantu dengan menggunakan
applet java, dimana applet java sendiri membutuhkan waktu untuk
menginisialisasi dirinya dan mendownload gambar hasil rendering Map
Server dari server
109
5.2 Saran
1. Untuk hasil routing yang lebih akurat sesuai dengan keadaan nyata,
sebaiknya pada tabel jalan diberikan aturan-aturan jalan sesuai dengan
kondisi jalan pada keadaan yang sebenarnya, seperti aturan dilarang belok,
aturan jalan buntu, ataupun aturan jalan satu arah.
2. Jika di komputer lokal sudah terdapat server lain seperti AppServ, maka
sebelum menginstall MapServer, terlebih dahulu dilakukan setting port
yang ada pada MapServer untuk menghindari crash pada kedua server.
3. Apabila ingin mengupload aplikasi ini di internet, sebaiknya carilah
webhosting yang menyediakan aplikasi MapServer dan
PostgreSQL/PostGIS, sebab tidak semua webhosting mendukung aplikasi
tersebut.
4. Perlu dilakukan penelitian atau pengembangan selanjutnya untuk kasus
percepatan akses peta dan manajemen informasi pada peta.
DAFTAR PUSTAKA
Allamah Kamal Faqih dan Tim Ulama. 2004. Tafsir Nurul Quran: Sebuah Tafsir
Sederhana Menuju Cahaya Al-Quran. Jakarta: Al-Huda
Atie puntodewo, Sonya dewi, Jusupta Tariga. 2003. Sistem Informasi Goegrafis
Untuk Pengelolaan Sumberdaya Alam, (Online),
(http://www.cifor.cgiar.org/
publications/pdf_files/Books/SIGeografis/SIG-part-2.pdf diakses 12
Desember 2008)
Anonymous1. Geografi. (http://id.wikipedia.org/wiki/geografi, diakses pada 15
Maret 2009)
Anonymous2. 2000. Efisiensi Waktu Algoritma A* Untuk Penentuan Jalur
Optimal Pada Peta Geografis.
(http://repository.gunadarma.ac.id:8000/Kommit2000_komputasi_008_19
1.pdf, diakses 28 maret 2009)
Anonymous3. 2007. An Introduction to pgRouting with OpenLayers.
(http://www. pgrouting.postlbs.org/wiki/WorkshopFOSS4G2007, diakses
pada 31 januari 2009)
Anonymous4. 2007. Shortest Path Search In Real Road Networks With pgRouting.
(http://pgrouting.postlbs.org/wiki/, diakses pada 31 Januari 2009)
Anonymous5. 2008. Simulasi pencarian rute terpendek dengan Menggunakan
algoritma a* (a-star). (www. lemlit.unila.ac.id/, diakses pada 15 april
2009)
Anonymous6. Profil Kota Malang. (http://www.pemkot-malang.go.id/geografis,
diakses pada 20 Maret 2009)
Charter, Denny. Chameleon WebGIS Framework, (Online),
(http://dennycharter.wordpress.com/2008/06/11/chameleon-webgis-
framework/ diakses 7 September 2008)
Iwan Setiawan & Harris Noor Rabbasa. Aplikasi Open Source untuk Pemetaan
Online, (Online), (http://www.lapanrs.com/IGORS/WS_OS/PDF/
Pemetaan_Online_Iwan_S.pdf, diakses 23 Mei 2008)
Margiasih, Yohana Sekty. 2007. Penerapan Algoritma Djikstra Dalam Penentuan
Rute Perjalanan Wisata Dengan Dukungan SIG Berbasis Web. Malang:
Universitas Brawijaya.
M. Quraish Shihab. 2002. Tafsir Al-Misbah: Pesan Kesan dan Keserasian Al-
Qur’an.
Jakarta: Lentera Hati.
Nuryadin, Ruslan. 2005. Panduan MapServer. Bandung: Informatika.
Prahasta, Eddy. 2002. Tutorial ArcView. Bandung: Informatika.
Prahasta, Eddy. 2006. Membangun Aplikasi Web-based GIS Dengan MapSever.
Bandung: Informatika.
Prasetyo, Daniel Hary. 2004. Pemanfaatan Mapscript Open Source Untuk
Menampilkan Peta Interaktif di Internet, (Online),
(http://ejournal.gunadarma.ac.id/files/C08.pdf, diakses 23 Mei 2008)
Riftadi, Muhammad. 2007. Variasi Penggunaan Algoritma Heuristik dalam
Pengaplikasian Algoritma A*. (online),
(http://www.informatika.org/~rinaldi/Stmik/2006-2007/Makalah_2007,
diakses pada 28 Maret 2009)
Sidik, Betha. 2001. Pemprograman Web Dengan PHP. Bandung:Informatika
Syafii, M, 2005. Aplikasi Database Dengan PHP 5 MySQL PostgreSQL Oracle.
Yogyakarta: Andi.
Sugiana, Owo. Munir, Sirojul. 2005. Apliksi Server Database Postgresql.
Jakarta:Dian Rakyat.
Utami, Ema. 2006. RDBMS dengan PostgreSQL di GNU/Linux. Yogyakarta:
Andi.
Wahid, Fathul. 2004. Dasar-Dasar Algoritma Dan Pemrograman. Yogyakarta:
Andi.
Wahyono, Teguh. 2004.Sistem Informasi (Konsep Dasar, Analisis Desain dan
Implementasi). Yogyakarta: Graha Ilmu.
Yulia, Kartika Gunadi dan Tanuhardja, Jeffrey . 2002. Perencanaan Rute
Perjalanan Di Jawa Timur Dengan Dukungan GIS Menggunakan Metode
Dijkstra‟s. Jurnal Informatika , 3( 2) : 68 – 73.
112
LAMPIRAN
A
Proses Instalasi Program
113
Instalasi MapServer
1. Siapkan aplikasi MapSever ms4w_2.3.1.zip yang bisa di download di
http://www.maptools.org/ms4w/index.phtml?page=downloads.html
2. Setelah itu esktrak file tersebut ke root direktori hardisk misal C:/ atau di
D:/
3. Apabila dlam komputer sudah terinstall aplikasi web server, maka perlu
dilakukan setting terlebih dahulu file httpd.conf yang berada di
C:\ms4w\Apache\conf\httpd.conf. Perubahan dilakukan pada baris
“Listen 80” menjadi “Listen 2000”, baris ini merupakan konfigurasi port
mana yang akan digunakan dalam installasi Mapserver, default Port adalah
80 dan dapat diganti dengan port yang nilainya lebih besar dari 1024
supaya tidak terjadi benturan diantara mapserver yang ada.
Menjadi
4. Kemudian eksekusi apache-install.bat untuk menginstal service Apache
5. Untuk mengecek apakah mapserver sudah terinsatal dengan baik atau
belom maka bukalah webbrowser dan ketikan alamat:
114
http://localhost:2000/
Port Instalasi Mapserver
6. Apabila instalasi telah berhasil maka di webbroser akan ada tampilan
sebagai berikut:
7. Kemudian restart Apache dengan mengeksekusi apache-restart.bat.
(Yang ada di direktori “C:\ms4w”)
Kemudian buka kembali http://localhost:2000/ lewat webbroser
8. Copy atau ketikkan “extension=php_mapscript.dll” pada file “php.ini”
yang terletak di direktori “C:\ms4w\Apache\cgi-bin” tepatnya dibawah
“;windows extension”.
9. Untuk mengecek keberhasilan dari instalasi Mapscript, buat file
MsInfo.php pada folder D:\ms4w\Apache\htdocs yang berisi :
<?php
dl("php_mapscript.dll");
echo ms_getVersion();
?>
Periksa apakah file “php_mapscript.dll” sama dengan nama file yang
ada di direktori C:\ms4w\Apache\php\extensions, jika tidak maka
samakan terlebih dahulu.
10. Setelah itu buka http://localhost:2000/MsInfo.php jika telah berhasil
maka di halaman Webbrowser akan ada tapilan seperti berikut ini:
115
11. Jika langkah ke delapan belum dilaksanakan maka akan muncul pesan
seperti tampilan dibawah ini jika langkah ke sepuluh dijalankan :
Jika semuanya telah sesuai maka instalasi MapServer telah berhasil.
116
Instalasi PostgreSQL
Siapkan file postgresql-8.2.11-1.zip
Ekstraklah file tersebut di sembarang direktori, setelah berhasil akan ada
file installer dari PostgreSQL seperti gambar dibawah ini:
Gambar dari Icon Instaler PosgreSQL
Klick ganda icon untuk menjalankan aplikasi.sehingga akan tampil
window untuk mimilih bahasa
Instalasi tahap 1
Instalasi tahap 2
117
Instalasi tahap 3
Instalasi tahap 4, Aktifkanlah PosGIS Spatian Extension
Tampilan sebelum diaktifkannya PostGIS Spatial Extension
Tampilan setelah diaktifkannya PostGIS Spatial Extension
118
Dengan mengaktifkan PostGIS spatial extension, maka otomatis akan
terbentuk database baru dengan nama template_postgis yang berisi dua
tabel yaitu tabel “geometry_columns” dan “spatial_ref_sys”.
Instalasi Tahap 5, pada tahap ini text field yang masi kosong adalah
password saja, text field pada Account domain field ini akan diisi secara
otomatis dengan nama konputer tempat kita menginstal dan tidak perlu
dirubah, dan jika dirubah maka pada waktu proses instalasi akan ada pesan
kesalahan. Semua isian yang kita masukkan akan tesimpan di direkroti
C:\Documents and Settings, sehingga kita tidak bisa menngunakan nama
dan domain yang telah kita gunakan sebelumnya jika terjadi kesalahan
pada waktu saat proses instalasi.
Setelah semua field terisi maka tekan tombol Next> untuk melanjutkan
instalasi, dan akan muncul pesan sepeti gambar x.x, dan pilih tombol YES
Setelah itu biasanya muncul pesan lagi yang menyatakan bahwa password
yang kita gunakan terlalu lemah, dan pilih tombol No untuk melanjutkan
instalasi.
Jika pada pasan diatas ditekan tombol YES maka akan muncul pilihan
untuk menggunakan password acak.
119
Instalasi tahap 6
Instalasi tahap 7
120
Instalasi tahap 8
Instalasi tahap 9
Instalasi tahap 10, proses instalasi.
121
Proses Eksport data Shapefile ke PostgreSQL menggunakan Aplikasi
shp2ppgsql.exe
Data Shapefile yang akan dieksport minimal terdiri dari tiga data peta yaitu *.shp,
*.shx, dan *.dbf. Sehingga data dari ArcView akan tersimpan dalam bentuk tag
SQL dan semua data peta yang bertipe titik, garis dan poligon akan dirubah ke
dalam format WKT (Well Known Text). Proses konversi data dilakukan melalui
command prompt dengan langkah-langkah sebagai berikut:
1. Masuk command prompt PostgreSQL melalui Start Program
PostgreSQL 8.2 Command Prompt sehingga muncul layar Command
Prompt PosgreSQL dengan tampilan default mengacu pada folder bin
(C:\Program Files\PostgreSQL\8.2\bin>)
2. Langkah selanjutnya adalah memanggil perintah shp2pgsql.exe, namun
terlebih dahulu data peta yang akan dikonversi dipindahkan dalam folder
bin, hal ini dilakukan agar mudah dalam mencari lokasi (path) data peta
tersebut dan juga mempersingkat dalam menuliskan skripnya.
3. Langkah terakhir adalah mengkonversi data peta dengan mengetikkan
perintah berikut pada command prompt:
C:\Program Files\PostgreSQL\8.2\bin> shp2pgsql.exe jalan tbjalan >
jalan.sql
Jika proses konversi berhasil, maka akan tampil pesan berikut:
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
Dengan demikian berarti data shapefile (.SHP) telah berhasil dikonversi
menjadi tag SQL.
Penjelasan printah:
> shp2pgsql.exe jalan tbjalan > jalan.sql
shp2pgsql.exe : Aplikasi PgSql yang digunakan untuk mengkonversi file *.shpsql,
yang letaknya berada di “PosgreSQL\8.2\bin >”
jalan : nama file *.shp, pada perintah diatas data *.shp dan pendukungnya
(*.dbf, *.shx) terletak pada folder \bin > sehingga penulisan perintah
tidak perlu menuliskan nama filenya, namun jika file *.shp berada di
122
folder yang lain, path dari file harus ditulis dengan lengkap:
C:\Malang\Peta.shp.
tbjalan : nama tabel yang akan dibuat di database
jalan.sql : nama file hasil konversi dengan tipe .sql. secara default akan tersimpan
pada folder \bin>. Jika ingin merubah lokasi penyimpanan file .sql dari
lokasi asalnya (default), hal ni bisa dilakukan dengan menuliskan alamat
penyimpanan secara lengkap dan spesifik, seperti: C:\Malang\Peta.sql,
dengan demikian berarti file .sql akan disimpan pada folder Malang di
drive C.
Skrip Routing Core (A Star)
-- Copyright (c) 2005 Sylvain Pasche,
-- 2006-2007 Anton A. Patrushev, Orkney, Inc.
CREATE TYPE path_result AS (vertex_id integer, edge_id integer,
cost float8);
CREATE TYPE vertex_result AS (x float8, y float8);
CREATE OR REPLACE FUNCTION shortest_path(sql text, source_id
integer,
target_id integer, directed boolean, has_reverse_cost
boolean)
RETURNS SETOF path_result
AS '$libdir/librouting'
LANGUAGE 'C' IMMUTABLE STRICT;
------------------------------------------------------------------
--
-- Core function for shortest_path_astar computation
-- Simillar to shortest_path in usage but uses the A* algorithm
-- instead of Dijkstra's.
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION shortest_path_astar(sql text, source_id
integer,
target_id integer,directed boolean, has_reverse_cost
boolean)
RETURNS SETOF path_result
AS '$libdir/librouting'
LANGUAGE 'C' IMMUTABLE STRICT;
------------------------------------------------------------------
--
-- Core function for shortest_path_astar computation
-- Simillar to shortest_path in usage but uses the Shooting*
algorithm
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION shortest_path_shooting_star(sql text,
source_id integer,
123
target_id integer,directed boolean, has_reverse_cost
boolean)
RETURNS SETOF path_result
AS '$libdir/librouting'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION insert_vertex(vertices_table varchar,
geom_id anyelement)
RETURNS int AS
$$
DECLARE
vertex_id int;
myrec record;
BEGIN
LOOP
FOR myrec IN EXECUTE 'SELECT id FROM ' ||
quote_ident(vertices_table) ||
' WHERE geom_id = ' || quote_literal(geom_id)
LOOP
IF myrec.id IS NOT NULL THEN
RETURN myrec.id;
END IF;
END LOOP;
EXECUTE 'INSERT INTO ' || quote_ident(vertices_table) ||
' (geom_id) VALUES (' || quote_literal(geom_id)
|| ')';
END LOOP;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
Skrip Routing_core_wrapper (A Star)
-- BEGIN;
CREATE OR REPLACE FUNCTION text(boolean)
RETURNS text AS
$$
SELECT CASE WHEN $1 THEN 'true' ELSE 'false' END
$$
LANGUAGE 'sql';
------------------------------------------------------------------
--
-- For each vertex in the vertices table, set a point geometry
which is the corresponding line start or line end point
-- Last changes: 14.02.2008
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION add_vertices_geometry(geom_table
varchar)
RETURNS VOID AS
$$
DECLARE
124
vertices_table varchar := quote_ident(geom_table) ||
'_vertices';
BEGIN
BEGIN
EXECUTE 'SELECT addGeometryColumn(''' ||
quote_ident(vertices_table) ||
''', ''the_geom'', -1, ''POINT'', 2)';
EXCEPTION
WHEN DUPLICATE_COLUMN THEN
END;
EXECUTE 'UPDATE ' || quote_ident(vertices_table) ||
' SET the_geom = NULL';
EXECUTE 'UPDATE ' || quote_ident(vertices_table) ||
' SET the_geom = startPoint(geometryn(m.the_geom,
1)) FROM ' ||
quote_ident(geom_table) ||
' m where geom_id = m.source';
EXECUTE 'UPDATE ' || quote_ident(vertices_table) ||
' set the_geom = endPoint(geometryn(m.the_geom,
1)) FROM ' ||
quote_ident(geom_table) ||
' m where geom_id = m.target_id AND ' ||
quote_ident(vertices_table) ||
'.the_geom IS NULL';
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
------------------------------------------------------------------
--
-- This function should not be used directly. Use assign_vertex_id
instead Inserts a point into a temporary vertices table, and
return an id of a new point or an existing point. Tolerance is the
minimal distance between existing points and the new point to
create a new point.
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION point_to_id(point geometry,
tolerance double precision)
RETURNS INT AS
$$
DECLARE
row record;
point_id int;
BEGIN
LOOP
-- TODO: use && and index
SELECT INTO row id, the_geom FROM vertices_tmp WHERE
distance(the_geom, point) < tolerance;
point_id := row.id;
IF NOT FOUND THEN
125
INSERT INTO vertices_tmp (the_geom) VALUES
(point);
ELSE
EXIT;
END IF;
END LOOP;
RETURN point_id;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
------------------------------------------------------------------
--
-- Fill the source and target_id column for all lines. All line
ends
-- with a distance less than tolerance, are assigned the same id
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION assign_vertex_id(geom_table varchar,
tolerance double precision,
geo_cname varchar,
gid_cname varchar)
RETURNS VARCHAR AS
$$
DECLARE
points record;
i record;
source_id int;
target_id int;
pre varchar;
post varchar;
srid integer;
countids integer;
BEGIN
BEGIN
DROP TABLE vertices_tmp;
EXCEPTION
WHEN UNDEFINED_TABLE THEN
END;
EXECUTE 'CREATE TABLE vertices_tmp (id serial)';
FOR i IN EXECUTE 'SELECT srid FROM geometry_columns
WHERE f_table_name='''|| quote_ident(geom_table)||'''' LOOP
END LOOP;
srid := i.srid;
FOR i IN EXECUTE 'SELECT count(*) as countids FROM '||
quote_ident(geom_table) LOOP
END LOOP;
countids := i.countids;
126
EXECUTE 'SELECT addGeometryColumn(''vertices_tmp'',
''the_geom'', '||srid||', ''POINT'', 2)';
CREATE INDEX vertices_tmp_idx ON vertices_tmp
USING GIST (the_geom);
pre = '';
post = '';
FOR i in EXECUTE 'SELECT count(*) as t from ' ||
quote_ident(geom_table) || ' WHERE NumGeometries(' ||
quote_ident(geo_cname) || ') is not null' loop
IF (i.t > 0) THEN
pre = 'geometryN(';
post = ' , 1)';
END IF;
END LOOP;
-- FOR points IN EXECUTE 'SELECT ' ||
quote_ident(gid_cname) || ' AS id,'
-- || ' startPoint(' || pre ||
quote_ident(geo_cname) || post || ') AS source,'
-- || ' endPoint(' || pre || quote_ident(geo_cname)
|| post || ') as target'
-- || ' FROM ' || quote_ident(geom_table) loop
--
FOR points IN EXECUTE 'SELECT ' ||
quote_ident(gid_cname) || ' AS id,'
|| ' PointN('|| quote_ident(geo_cname) ||', 1)
AS source,'
|| ' PointN('|| quote_ident(geo_cname) ||',
NumPoints('|| quote_ident(geo_cname) ||')) as target'
|| ' FROM ' || quote_ident(geom_table) || '
ORDER BY ' || quote_ident(gid_cname) loop
IF points.id%10=0 THEN
RAISE NOTICE '% out of % edges processed',
points.id, countids;
END IF;
source_id :=
point_to_id(setsrid(points.source, srid), tolerance);
target_id :=
point_to_id(setsrid(points.target, srid), tolerance);
EXECUTE 'update ' ||
quote_ident(geom_table) ||
' SET source = ' || source_id ||
', target = ' || target_id ||
' WHERE ' ||
quote_ident(gid_cname) || ' = ' || points.id;
END LOOP;
127
RETURN 'OK';
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
------------------------------------------------------------------
--
-- Update the cost column from the edges table, from the length of
-- all lines which belong to an edge.
------------------------------------------------------------------
--CREATE OR REPLACE FUNCTION update_cost_from_distance(geom_table
varchar)
RETURNS VOID AS
$$
DECLARE
BEGIN
BEGIN
EXECUTE 'CREATE INDEX ' || quote_ident(geom_table) ||
'_edge_id_idx ON ' || quote_ident(geom_table) ||
' (edge_id)';
EXCEPTION
WHEN DUPLICATE_TABLE THEN
RAISE NOTICE 'Not creating index, already there';
END;
EXECUTE 'UPDATE ' || quote_ident(geom_table) ||
'_edges SET cost = (SELECT sum( length( g.the_geom )
) FROM ' ||
quote_ident(geom_table) ||
' g WHERE g.edge_id = id GROUP BY id)';
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
CREATE TYPE geoms AS
(
id integer,
gid integer,
the_geom geometry
);
------------------------------------------------------------------
--
-- A* function for undirected graphs.
-- Compute the shortest path using edges table, and return
-- the result as a set of (gid integer, the_geom geometry)
records.
-- Also data clipping added to improve function performance.
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION astar_sp_delta(
varchar,int4, int4, float8)
RETURNS SETOF GEOMS AS
$$
128
DECLARE
geom_table ALIAS FOR $1;
sourceid ALIAS FOR $2;
targetid ALIAS FOR $3;
delta ALIAS FOR $4;
rec record;
r record;
path_result record;
v_id integer;
e_id integer;
geom geoms;
id integer;
BEGIN
id :=0;
FOR path_result IN EXECUTE 'SELECT gid,the_geom FROM ' ||
'astar_sp_delta_directed(''' ||
quote_ident(geom_table) || ''', ' ||
quote_literal(sourceid) || ', ' ||
quote_literal(targetid) || ', ' || delta || ', false,
false)'
LOOP
geom.gid := path_result.gid;
geom.the_geom := path_result.the_geom;
id := id+1;
geom.id := id;
RETURN NEXT geom;
END LOOP;
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
------------------------------------------------------------------
---- A* function for directed graphs.
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION astar_sp_delta_directed(
varchar,int4, int4, float8, boolean, boolean)
RETURNS SETOF GEOMS AS
$$
DECLARE
geom_table ALIAS FOR $1;
sourceid ALIAS FOR $2;
targetid ALIAS FOR $3;
delta ALIAS FOR $4;
dir ALIAS FOR $5;
rc ALIAS FOR $6;
rec record;
r record;
path_result record;
v_id integer;
129
e_id integer;
geom geoms;
srid integer;
source_x float8;
source_y float8;
target_x float8;
target_y float8;
ll_x float8;
ll_y float8;
ur_x float8;
ur_y float8;
query text;
id integer;
BEGIN
id :=0;
FOR rec IN EXECUTE
'select srid(the_geom) from ' ||
quote_ident(geom_table) || ' limit 1'
LOOP
END LOOP;
srid := rec.srid;
FOR rec IN EXECUTE
'select x(startpoint(the_geom)) as source_x from ' ||
quote_ident(geom_table) || ' where source = ' ||
sourceid || ' or target='||sourceid||' limit 1'
LOOP
END LOOP;
source_x := rec.source_x;
FOR rec IN EXECUTE
'select y(startpoint(the_geom)) as source_y from ' ||
quote_ident(geom_table) || ' where source = ' ||
sourceid || ' or target='||sourceid||' limit 1'
LOOP
END LOOP;
source_y := rec.source_y;
FOR rec IN EXECUTE
'select x(startpoint(the_geom)) as target_x from ' ||
quote_ident(geom_table) || ' where source = ' ||
targetid || ' or target='||targetid||' limit 1'
LOOP
END LOOP;
target_x := rec.target_x;
FOR rec IN EXECUTE
'select y(startpoint(the_geom)) as target_y from ' ||
quote_ident(geom_table) || ' where source = ' ||
targetid || ' or target='||targetid||' limit 1'
LOOP
130
END LOOP;
target_y := rec.target_y;
FOR rec IN EXECUTE 'SELECT CASE WHEN
'||source_x||'<'||target_x||
' THEN '||source_x||' ELSE '||target_x||
' END as ll_x, CASE WHEN '||source_x||'>'||target_x||
' THEN '||source_x||' ELSE '||target_x||' END as ur_x'
LOOP
END LOOP;
ll_x := rec.ll_x;
ur_x := rec.ur_x;
FOR rec IN EXECUTE 'SELECT CASE WHEN '||source_y||'<'||
target_y||' THEN '||source_y||' ELSE '||
target_y||' END as ll_y, CASE WHEN '||
source_y||'>'||target_y||' THEN '||
source_y||' ELSE '||target_y||' END as ur_y'
LOOP
END LOOP;
ll_y := rec.ll_y;
ur_y := rec.ur_y;
query := 'SELECT gid,the_geom FROM ' ||
'shortest_path_astar(''SELECT gid as id,
source::integer, ' ||
'target::integer, length::double precision as cost, ' ||
'x1::double precision, y1::double precision, x2::double
' ||
'precision, y2::double precision ';
IF rc THEN query := query || ' , reverse_cost ';
END IF;
query := query || 'FROM ' || quote_ident(geom_table) || '
where setSRID(''''BOX3D('||
ll_x-delta||' '||ll_y-delta||','||ur_x+delta||' '||
ur_y+delta||')''''::BOX3D, ' || srid || ') &&
the_geom'', ' ||
quote_literal(sourceid) || ' , ' ||
quote_literal(targetid) || ' , '''||text(dir)||''',
'''||text(rc)||''' ),' ||
quote_ident(geom_table) || ' where edge_id = gid ';
FOR path_result IN EXECUTE query
LOOP
geom.gid := path_result.gid;
geom.the_geom := path_result.the_geom;
id := id+1;
geom.id := id;
RETURN NEXT geom;
--
-- v_id = path_result.vertex_id;
-- e_id = path_result.edge_id;
-- FOR r IN EXECUTE 'SELECT gid, the_geom FROM ' ||
131
-- quote_ident(geom_table) || ' WHERE gid =
' ||
-- quote_literal(e_id) LOOP
-- geom.gid := r.gid;
-- geom.the_geom := r.the_geom;
-- RETURN NEXT geom;
-- END LOOP;
END LOOP;
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
------------------------------------------------------------------
--
A* function for directed graphs. Compute the shortest path using
edges table, and return the result as a set of (gid integer,
The_geom geometry) records.
------------------------------------------------------------------
--
CREATE OR REPLACE FUNCTION astar_sp_directed(
geom_table varchar, source int4, target int4, dir boolean,
rc boolean)
RETURNS SETOF GEOMS AS
$$
DECLARE
r record;
path_result record;
v_id integer;
e_id integer;
geom geoms;
query text;
id integer;
BEGIN
id :=0;
query := 'SELECT gid,the_geom FROM ' ||
'shortest_path_astar(''SELECT gid as id,
source::integer, ' ||
'target::integer, length::double precision as cost, '
||
'x1::double precision, y1::double precision, ' ||
'x2::double precision, y2::double precision ';
IF rc THEN query := query || ' , reverse_cost ';
END IF;
query := query || 'FROM ' || quote_ident(geom_table) || '
'', ' ||
quote_literal(source) || ' , ' ||
quote_literal(target) || ' , '''||text(dir)||''',
'''||text(rc)||'''), ' ||
quote_ident(geom_table) || ' where edge_id = gid ';
FOR path_result IN EXECUTE query
132
LOOP
geom.gid := path_result.gid;
geom.the_geom := path_result.the_geom;
id := id+1;
geom.id := id;
RETURN NEXT geom;
END LOOP;
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
133
LAMPIRAN
B
Perijinan Penelitian
134
a. Surat pengantar Universitas
a. Surat Pengantar dari
BAKESBANGLINMAS Kota Malang
b. Data Obyek Wisata Kota Malang Tahun 2008
No. Obyek Wisata Lokasi Obyek
Pengelola Obyek Wisata
Institusi Dinas/Lembaga/Sponsor
yang Terlibat
1 Museum Brawijaya
Jl. Ijen 25 Malang
Kodim 0833 Kota Malang
2 Taman Rekreasi Kota (Tareko)
Jl. Simpang Majapahit Kota Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
3 Taman Rekreasi Senaputra
Jl. Belakang Rumah Sakit Malang
Yayasan Senaputra
4 Taman Rekreasi Tlogomas
Jl. Baiduri Pandan Malang
Bapak Untung (PT. Tlogomas)
5 Club House Istana Dieng
Jl. Perum Istana Dieng Malang
Bapak Fajrul Islam (Manager Operasional)
135
6 Club House Araya
Perum Araya Malang
PT. Araya Bumi Megah
7 Club House Permata Jingga
Perum Permata Jingga
Bapak Sugiono (Manager Operasional)
8 Wisata Religi Klenteng En Ang Kiong
Jl. Laks. Martadinata No. 1 Malang
Bapak Soetjipto Tanojo (Ketua)
9 Wisata Belanja Tugu Gajayana (Sabtu – Minggu)
Jl. Simpang Balapan Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
10 Wisata Belanja Tugu Vellodrom (Sabtu – Minggu)
Vellodrom - Sawojajar Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
Dinas Pariwisata, Informasi dan Komunikasi Kota Malang
11 Malang Olimpic Garden (MOG)
Jl. Kawi Malang
PT. Mustika Olimpic Garden
- Kimpraswil Kota Malang
- Bawasdanling Kota Malang
- Dinas Perijinan Kota Malang
12 Perpustakaan Umum & Arsip Kota Malang
Jl. Ijen Malang Pemerintah Kota Malang
Pemerintah Kota Malang
13 Balai Penyelamatan Benda Cagar Budaya (Mpu Purwa)
Jl. Sukarno Hatta (MIJS) Malang
Pemerintah Kota Malang
Pemerintah Kota Malang
14 Gedung Olah Raga “KEN AROK”
Jl. Mayjen. Sungkono Malang
Pemerintah Kota Malang
Pemerintah Kota Malang
15 CINEMAX CAFÉ Jl. Danau Toba Malang
Cinemax Café (Drs.H.Nurudin)
Sumber: DINAS PARIWISATA, INFORMASI DAN KOMUNIKASI KOTA
MALANG