PENENTUAN LOKASI IDEAL BERDASARKAN TOTAL
JARAK TEMPUH TERPENDEK DARI BERBAGAI LOKASI
MENGGUNAKAN ALGORITME DIJKSTRA
RENDY ADITAMA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Penentuan Lokasi Ideal Berdasarkan Total Jarak Tempuh Terpendek dari Berbagai Lokasi Menggunakan Algoritme Dijkstra adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
Bogor, September 2014
Rendy Aditama
ABSTRAK
RENDY ADITAMA. Penentuan Lokasi Ideal Berdasarkan Total Jarak Tempuh Terpendek dari Berbagai Lokasi Menggunakan Algoritme Dijkstra. Dibimbing oleh MUHAMMAD ASYHAR AGMALARO dan KARLINA KHIYARIN NISA.
Salah satu cara untuk memaksimalkan efisiensi waktu perjalanan ialah dengan memilih rute tempuh yang paling pendek. Suatu lokasi yang baik adalah lokasi yang memiliki jarak tempuh terpendek dengan beberapa lokasi pengaksesnya. Lokasi ini memiliki potensi untuk difungsikan sebagai fasilitas publik, komplek perumahan, dsb. Pada penelitian ini, teori graf digunakan untuk menyelesaikan masalah penentuan lokasi terbaik dengan jarak tempuh minimal dari lokasi-lokasi yang mengaksesnya. Suatu pemetaan wilayah direpresentasikan menjadi sebuah graf, dengan titik lokasi dan lokasi akses sebagai node dan variasi jalur sebagai arc. Selanjutnya akan dicari sebuah shortest path untuk setiap node
-node lokasi kandidat dari node lokasi yang mengaksesnya menggunakan algoritme Dijkstra. Penelitian ini menghasilkan aplikasi berbasis web yang menyajikan peta wilayah dan user dapat menentukan beberapa kandidat lokasi dan lokasi-lokasi aksesnya. User akan diperlihatkan satu titik lokasi terbaik dari beberapa kandidat lokasi.
Kata kunci: algoritme Dijkstra, graf, pemetaan wilayah, rute terpendek
ABSTRACT
RENDY ADITAMA. Ideal Location Determination Based on Shortest Path from Various Locations Using Dijkstra’s Algorithm. Supervised by MUHAMMAD ASYHAR AGMALARO and KARLINA KHIYARIN NISA.
PENENTUAN LOKASI IDEAL BERDASARKAN TOTAL
JARAK TEMPUH TERPENDEK DARI BERBAGAI LOKASI
MENGGUNAKAN ALGORITME DIJKSTRA
RENDY ADITAMA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
BOGOR 2014 Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada
Judul Skripsi : Penentuan Lokasi Ideal Berdasarkan Total Jarak Tempuh Terpendek dari Berbagai Lokasi Menggunakan Algoritme Dijkstra
Nama : Rendy Aditama
NIM : G64100009
Disetujui oleh
Muhammad Asyhar Agmalaro, SSi MKom Karlina Khiyarin Nisa, SKomp MT Pembimbing Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
PRAKATA
Puji dan syukur kehadirat Allah subhanahu wa ta’ala atas segala karunia -Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan November 2013 ini ialah lokasi ideal, dengan judul Penentuan Lokasi Ideal Berdasarkan Total Jarak Tempuh Terpendek dari Berbagai Lokasi Menggunakan Algoritme Dijkstra.
Terima kasih terbesar penulis ucapkan kepada ibunda penulis Sukaisih yang atas kasih sayang, doa, dan dukungannya sehingga penulis dapat menyelesaikan pendidiikan di Institut Pertanian Bogor. Juga terima kasih penulis sampaikan kepada ayahanda Rustendi, adik-adik, serta seluruh keluarga atas segala doa dan dukungannya. Ungkapan terima kasih sebesarnya juga penulis sampaikan kepada Bapak Muhammad Asyar Agmalaro, SSi Mkom dan Ibu Karlina Khiyarin Nisa, SKomp MT selaku pembimbing yang telah banyak membantu dan mendukung penulis dalam pengerjaan karya ilmiah ini. Terima kasih juga kepada mahasiswa Departemen Ilmu Komputer angkatan 47 yang telah memberikan semangat dan kebersamaannya selama tiga tahun ini. Semoga karya ilmiah ini bermanfaat.
Bogor, September 2014
DAFTAR ISI
DAFTAR ISI vii
DAFTAR TABEL viii
DAFTAR GAMBAR viii
DAFTAR LAMPIRAN viii
PENDAHULUAN 1
Latar Belakang 1
Perumusan Masalah 1
Tujuan Penelitian 2
Manfaat Penelitian 2
Ruang Lingkup Penelitian 2
METODE PENELITIAN 2
Penentuan Wilayah Penelitian 3
Penentuan Data dan Sumber Data 3
Pengumpulan Data 4
Pemodelan Graf dari Data 4
Implementasi Fungsi Dijkstra dan Fungsi Lokasi Terbaik 4
Implementasi Sistem 6
Evaluasi Hasil 6
Lingkungan Pengembangan 6
HASIL DAN PEMBAHASAN 8
Penentuan Wilayah Penelitian dan Pengumpulan Data 8
Pemodelan Graf dari Data 10
Implementasi Fungsi lokasi terbaik dan Fungsi Algoritme Dijkstra 11
Implementasi Sistem 12
Evaluasi Hasil 14
SIMPULAN 16
SARAN 16
DAFTAR PUSTAKA 17
DAFTAR TABEL
1 Lokasi akses yang dijadikan input untuk evaluasi hasil 15 2 Lokasi kandidat yang dijadikan input untuk evaluasi hasil 15 3 Perbandingan jarak tempuh setiap lokasi dari Google Maps dan keluaran
sistem 15
DAFTAR GAMBAR
1 Skema metode penelitian 3
2 Diagram alir langkah-langkah yang dijalankan fungsi lokasi terbaik 7
3 Peta wilayah penelitian 8
4 Titik lokasi yang terpilih sebagai node 9
5 Penggambaran graf yang merepresentasikan wilayah penelitian 11
6 Tampilan antar muka sistem 13
7 Sistem menerima input lokasi kandidat dan lokasi akses 13 8 Sistem menampilkan hasil berupa lokasi terbaik dari lokasi kandidat 13 9 Sistem menampilkan perhitungan jarak tempuh setiap lokasi kandidat 14
DAFTAR LAMPIRAN
1 Daftar node yang digunakan 18
2 Lanjutan 19
3 Lanjutan 20
4 Daftar arc yang digunakan 21
5 Lanjutan 22
PENDAHULUAN
Latar Belakang
Perkembangan penduduk yang pesat menyebabkan area pembangunan permukiman untuk hunian maupun fasilitas umum semakin bertambah serta menyebar luas. Hal ini berdampak pada semakin banyaknya pembangunan yang dilakukan baik perumahan, pertokoan, perkantoran, atau pembangunan fasilitas umum lainnya. Akan tetapi, pembangunan yang bertambah seringkali tidak memperhatikan jarak tempuh titik lokasi ke berbagai lokasi akses. Contohnya pembangunan fasilitas umum seperti rumah sakit yang sangat jauh dari area lokasi permukiman. Akibatnya fasilitas umum tersebut tidak ramai dikunjungi dan digunakan, karena penduduik di area permukiman akan mencari akses ke fasilitas umum yang lebih dekat jarak tempuhnya. Hal tersebut memperlihatkan titik lokasi pembangunan yang ideal dipengaruhi oleh salah satunya ialah pilihan jalur dengan jarak tempuh terpendek dari berbagai lokasi aksesnya. Sementara itu.pemilihan jalur dengan jarak tempuh terpendek juga menjadi salah satu tuntutan dalam memaksimalkan efisiensi waktu tempuh sehingga dalam memilih suatu titik lokasi, efisiensi waktu menjadi salah satu kriteria yang digunakan. Lokasi ditentukan berdasarkan seberapa pendek jarak tempuh yang dihasilkan untuk mencapai lokasi tersebut dari titik-titik lokasi yang mengaksesnya. Banyaknya pilihan jalur dengan variasi jarak tempuh ke berbagai lokasi akses, membuat sulitnya penentuan titik lokasi pembangunan sehingga menjadi suatu tantangan tersendiri. Kesalahan dalam pemilihan lokasi berakibat kepada tidak efektifnya pembangunan yang dilakukan, sehingga penempatan lokasi pembangunan yang ideal dirasakan perlu untuk mengatasinya.
Graf merupakan representasi dari sekumpulan objek yang terhubung melalui
link (Chartgrand dan Oellerman 1997). Graf disusun dari dua objek yaitu node
yang merepresentasikan suatu objek, dan arc yang merepresentasikan jalur yang menghubungkan dua buah objek. Graf umumnya diaplikasikan untuk memodelkan suatu wilayah dengan node sebagai lokasi dan arc sebagai jalur yang menghubungkan dua lokasi, seperti penelitian yang dilakukan Utari (2013) yang memodelkan rute dari Dramaga ke Baranangsiang, penelitian yang dilakukan Rifa’i (2010) yang memodelkan rute operasi bus Trans Jogja, juga penelitian yang dilakukan Fauzi (2011) yang memodelkan jalan raya Blok M.
Dari graf yang terbentuk dapat diaplikasikan algoritme graf untuk memecahkan suatu masalah pencariah jalur (path) terpendek. Algoritme graf merupakan algoritme yang diaplikasikan pada suatu graf untuk mencapai suatu tujuan tertentu (Cormen et al. 2009). Seperti pada penelitian yang dilakukan Utari (2013), dari graf yang terbentuk diaplikasikan algoritme Dijkstra untuk mencari rutedengan jarak tempuh terpendek dari dua node.
Perumusan Masalah
2
direpresentasikan ke dalam sebuah graf, dengan objek yang saling terhubung dinamakan node dan jalur yang menghubungkannya dinamakan arc. Penelitian ini memodelkan wilayah menjadi sebuah graf, dengan node berperan sebagai pilihan lokasi titik pembangunan, dan arc berperan sebagai calon jalur terpendek yang menghubungkan antar lokasi. Dari graf yang terbentuk, dapat ditetapkan node-node sebagai lokasi kandidat yaitu lokasi dipertimbangkan sebagai tempat pembangunan, dan lokasi akses yaitu lokasi yang menjadi titik awal untuk mengakses lokasi pembangunan. Selanjutnya algorime Dijkstra
diimplementasikan untuk menghitung total panjang path dari lokasi-lokasi akses ke lokasi-lokasi kandidat, sehingga dapat ditentukan lokasi yang terbaik dari lokasi-lokasi kandidat berdasarkan path yang terpendek.
Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk memodelkan suatu wilayah menjadi sebuah graf terhubung yang kemudian dapat diterapkan algorime graf. Dari graf yang telah dimodelkan digunakan algoritme Dijkstra untuk implementasi fungsi yang dapat menentukan lokasi terbaik berdasarkan total jarak tempuh terpendek dari berbagai lokasi lain.
Manfaat Penelitian
Hasil penelitian ini diharapkan dapat menjadi solusi untuk menentukan lokasi dengan total jarak tempuh terpendek dari berbagai lokasi lain. Aplikasi berbasis web yang merupakan hasil penelitian ini dapat digunakan di berbagai hal, salah satunya adalah memilih tempat untuk mendirikan bangunan yang mengharuskan terletak pada titik strategis.
Ruang Lingkup Penelitian
Ruang lingkup pada penelitian ini adalah:
1 Wilayah penelitian yang dipilih pada penelitian ini adalah wilayah yang mencakup kawasan kampus IPB Dramaga, kawasan CIFOR, kawasan Balumbang Jaya.
2 Data yang digunakan pada penelitian adalah data spatial yang berupa titik-titik lokasi yang terpilih sebagai node, dan jalur yang menghubungkan antar titiksebagai arc.
3 Sumber data pada penelitian ini adalah data yang merupakan hasil studi pustaka dari layanan Google Maps.
METODE
3
Gambar 1 Skema metode penelitian
Penentuan Wilayah Penelitian
Wilayah penelitian merupakan area yang dijadikan untuk mengimplementasikan algoritme Dijkstra. Wilayah penelitian dipilih dengan pertimbangan seberapa besar hasil penelitian ini dapat dimanfaatkan. Dengan mempertimbangkan banyaknya area kosong dan perkembangan penduduk yang pesat, maka wilayah penelitian dipilih di sekitar kawasan kampus IPB Dramaga, kawasan CIFOR, kawasan Balumbang Jaya, dan kawasan Bubulak. Kedua pertimbangan tersebut berpengaruh pada kemungkinan banyaknya pertambahan bangunan, sehingga dalam menentukan area yang tepat dapat memanfaatkan hasil penelitian ini.
Seluruh lokasi dan jalur yang menghubungkan antar lokasi akan dibangun menjadi sebuah connected graph. Connected graph adalah graf yang memiliki sembarang titik yang dapat terhubung dengan titik yang lain. Pemilihan titik sebagai node didasari oleh titik tertentu yang mesti dilalui ketika akan mengakses suatu wilayah, sehingga satu node mewakili range tertentu di suatu area.
Penentuan Data dan Sumber Data
4
pada penelitian ini didapat dari Google Maps, data berupa titik lokasi dan jalur yang menghubungkan antar titik yang terdapat di wilayah penelitian yang disediakan Google Maps dalam bentuk peta.
Pengumpulan Data
Pengumpulan data pada penelitian ini melalui studi pustaka pada data-data yang disediakan Google Maps. Data tersebut merupakan hasil pengukuran langsung dan hasil pengukuran dari satelit yang keduanya memiliki tingkat akurasi yang tinggi. Data berupa lokasi dan jalur yang menghubungkan antar lokasi.
Data yang diambil berupa lokasi, jalur yang menghubungkan antar lokasi, dan panjang setiap jalur yang menghubungkan satu lokasi ke lokasi lain. Data panjang setiap jalur akan dijadikan sebagai bobot pada arc dengan menginisialisasi nilai panjang ke variabel arc di graph. Pengumpulan data tidak memperhitungkan waktu tempuh yang diperlukan untuk menempuh satu jalur.
Pemodelan Graf
Pada tahap pemodelan graf, data yang telah terkumpul diberikan beberapa perlakuan sehingga membentuk sebuah graf yang dibutuhkan di penelitian ini. Beberapa perlakuan tersebut adalah sebagai berikut :
1 Menyatukan setiap node dari masing-masing rute yang telah dikumpulkan menjadi sebuah connected graph (graf terhubung).
2 Gunakan arah perjalanan pada jalur sebagai aliran (flow) sehingga membentuk sebuah directed graph dari connected graph yang ada. Untuk jalur yang dapat dilalui dari dua arah perjalanan, setiap jalur direpresentasikan oleh dua arc berbobot sama dengan node awal dan node
akhir yang berkebalikan.
3 Data berupa jarak tempuh yang didapatkan pada tahap pengumpulan data dijadikan sebagai bobot jarak. Bobot-bobot tersebut diimplementasikan sebagai aliran beban pada directed graph sehingga terbentuk weighted graph (graf berbobot).
Dari hasil perlakuan di atas, terbentuk sebuah weighted graph (graf berbobot). Weighted graph adalah graf yang memiliki bobot atau biaya di setiap
arc yang ada (Cong et al. 1998). Bobot yang digunakan pada penelitian ini adalah bobot jarak, yaitu sebuah nilai panjang suatu arc yang merupakan jarak tempuh yang dibutuhkan untuk berpindah dari satu node ke node lain yang terhubung secara langsung. Satuan yang digunakan pada bobot jarak di penelitian ini adalah meter.
Implementasi Fungsi Dijkstra dan Fungsi Lokasi Terbaik
Fungsi utama yang diimplementasikan pada penelitian ini adalah fungsi penentuan lokasi terbaik. Agar dapat menentukan node dengan total jarak tempuh terpendek dibutuhkan fungsi yang menerima masukan lokasi akses sebagai node
5
path dari satu node ke node lain dengan mengambil arc dengan bobot terkecil pada setiap perpindahan node (Cormen et al. 2009).
Algoritme Dijkstra merupakan salah satu varian dari algoritme Greedy, yaitu salah satu algoritme yang popular dalam pemecahan permasalahan yang terkait dengan optimasi. Algoritme Greedy sendiri memiliki prinsip mengambil apa saja yang bisa diambil saat ini dan keputusan yang telah diambil pada setiap langkah tidak akan bisa diulang kembali. Intinya algoritme Greedy berupaya untuk mengambil pilihan nilai optimum lokal pada setiap langkah dan berharap agar nilai optimum lokal ini dapat membantu mendapatkan nilai optimum global (Cormen et al. 2009). Penggunaan strategi Greedy pada algoritme Dijkstra terjadi pada setiap langkah, yaitu dengan cara memilih biaya paling minimum dari sebuah
node awal atau node berlabel permanen ke node berlabel sementara.
Ide dasar dari algoritma Dijkstra adalah fakta jika R adalah sebuah node
yang termasuk pada path terpendek dari node P menuju node Q, fakta tersebut juga berlaku untuk path terpendek dari node P menuju node R, terdapat sebuah
node yang termasuk pada path terpendek dari node P menuju node R, fakta tersebut berlanjut sampai node yang terhubung langsung dengan node P. Sehingga solusi untuk pencarian path terpendek dari node P menuju node Q adalah menyambungkan node P dengan node-node lain menggunakan path yang terpendek dengan tujuan menambah jangkauan sampai terjangkaunya node Q (Dijkstra 1959). Fungsi algoritme Dijkstra dalam bentuk pseducode adalah :
function Dijkstra(Graph, source):
Dengan memanfaatkan fungsi algoritme Dijkstra, fungsi penentuan lokasi terbaik yang akan dikembangkan untuk diterapkan pada penelitian ini memiliki langkah-langkah sebagai berikut :
Tahap 1 : Menentukan node-node yang menjadi kandidat lokasi ideal, setiap node
6
Tahap 2 : Menentukan node-node yang menjadi titik akses, setiap node ini diinisialisasi sebagai node awal.
Tahap 3 : Dengan algoritme Dijkstra dihitung jarak tempuh setiap node awal menuju setiap node akhir satu per satu.
Tahap 4 : Nilai jarak tempuh dijumlahkan berdasarkan node akhir. Sehingga setiap node akhir memiliki total jarak tempuh dari semua node awal. Tahap 5 : Dari semua kandidat lokasi diurutkan dan diambil yang paling kecil.
Lokasi yang diambil merupakan lokasi terpilih dengan total jarak tempuh minimum.
Untuk lebih mudahnya langkah-langkah yang dijalankan fungsi lokasi terbaik ditampilkan pada Gambar 2.
Implementasi Sistem
Pada tahap ini dilakukan implementasi hasil penelitian yang berupa graf dan fungsi lokasi terbaik. Tujuan dari tahapan ini adalah menghasilkan sistem yang dapat digunakan untuk memanfaatkan hasil penelitian. Implementasi sistem dilakukan dalam lingkungan pengembangan aplikasi menggunakan bahasa pemrograman PHP, dan Javascript, libray penyedia peta Open Street Map, dan web server LAMP.
Sistem yang dikembangkan berbentuk aplikasi web yang menyediakan peta wilayah penelitian dan fungsi untuk menentukan lokasi terbaik. Pengguna aplikasi dapat menentukan lokasi kandidat dan lokasi akses pada peta, kemudian sistem akan menentukan lokasi terbaik dari kandidat-kandidat lokasi.
Evaluasi Hasil
Evaluasi hasil dilakukan untuk mengevaluasi hasil dari penelitian yang telah dilakukan. Tujuan dari tahap ini adalah memastikan fungsi lokasi terbaik yang telah dikerjakan berjalan dengan benar dan dapat diterapkan di graf yang ada dan dapat menentukan titik lokasi terbaik berdasarkan jarak tempuh terpendek dari berbagai lokasi lain. Langkah yang dikerjakan pada tahapan ini adalah memberi masukan pada sistem, dan memeriksa keluaran yang dihasilkan menggunakan perhitungan manual.
Lingkungan Pengembangan
Spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam penelitian ini adalah sebagai berikut :
1 Perangkat keras berupa komputer personal dengan spesifikasi
Prosesor Intel Core i3 2.24 GHz, dan
Memori RAM 6 GB. 2 Perangkat lunak
Sistem Operasi Linux Fedora 17 64bit,
Web Server LAMP,
Bahasa Pemrograman PHP, Javascript, Ajax, dan
7
8
HASIL DAN PEMBAHASAN
Penentuan Wilayah Penelitian dan Pengumpulan Data
Wilayah penelitian merupakan daerah yang berada di sekisar kawasan kampus IPB Dramaga, kawasan CIFOR, kawasan Balumbang Jaya, dan kawasan Bubulak. Peta wilayah penelitian yang akan dijadikan graf ditampilkan pada Gambar 3.
Wilayah tersebut dipilih menjadi wilayah penelitian dengan tujuan untuk memaksimalkan manfaat yang ingin dicapai pada penelitian ini, dengan masih banyaknya lahan kosong dan belum terdapat banyak bangunan. Pada wilayah ini juga pertambahan bangunan semakin marak dan tersebar di berbagai bagian wilayah, sehingga butuh perencanaan yang baik khususnya dalam pembangunan fasilitas umum agar fungsi dari bangunan dapat termaksimalkan.
Data penelitian dikumpulkan dari sebuah peta wilayah dengan pemetaan sistem koordinat geografis. Sistem koordinat geografis merupakan sistem koordinat yang menyediakan seluruh lokasi di permukaan bumi, biasanya berupa kumpulan angka atau abjad (Svennerberg 2010). Pada penelitian ini koordinat yang dipakai berupa latlng yaitu pasangan latitude dan longitude. Latitude adalah titik permukaan bumi diantara garis khatulistiwa dan garis lurus yang melintasi titik-titik tersebut, sedangkan longtitude adalah titik permukaan bumi berupa sudut timur atau barat dari suatu meridian ke meridian lain (Ibid 2010). Untuk lebih mudahnya, permukaan bumi dipetakan dengan koordinat x dan y, dengan x
merupakan latitude dan y merupakan longitude. Wilayah pada penelitian ini mencakup wilayah koordinat latlng dari (-6.56738 , 106.7453) sampai (-6.57042 , 106.75097).
Data yang diperlukan untuk membangun sebuah graf adalah node dan arc. Dengan node yang merupakan lokasi dan arc yang merupakan jalur penghubung antar lokasi. Data yang dikumpulkan dari wilayah penelitian adalah titik-titik lokasi tertentu yang berperan sebagai node, dan jalur penghubung antartitik terpilih yang berperan sebagai arc.
9 Pemilihan titik lokasi yang akan menjadi node adalah dengan membagi area dalam wilayah berdasarkan jalur yang diperlukan untuk mengakses suatu range
tersebut. Titik yang merepresentasikan node adalah titik utama di setiap area yang merupakan titik yang harus diakses ketika mengakses setiap lokasi di area tersebut. Data node yang dikumpulkan berupa koordinat latitude dan longitude
setiap range area. Seluruh node yang terpilih ditampilkan pada Gambar 4 dengan lokasi setiap node dapat dilihat pada Lampiran 1.
Gambar 4 Titik-titik lokasi yang terpilih sebagai node
Pengumpulan arc dilakukan dengan memperhatikan jalur yang menghubungkan setiap node. Arc dipilih berdasarkan setiap jalur yang menghubungkan dua node secara langsung. Setiap arc memiliki bobot yang merupakan biaya yang diperlukan dalam perpindahan dari satu node ke node lain yang dihubungkan dengan arc tersebut. Pada penelitian ini nilai yang menjadi bobot pada arc adalah panjang jalur yang menghubungkan antar lokasi, agar memenuhi tujuan penelitian yaitu meminimalkan jarak tempuh. Jarak tempuh yang seminimal mungkin diperlukan untuk mempermurah biaya perpindahan dalam mengakses fasilitas agar fungsionalitas dari fasilitas dapat maksimal (Indaryana 2013). Sehingga bobot dari arc mengabaikan aspek kepadatan lalu lintas ataupun waktu tempuh dari setiap jalur. Nilai bobot arc merupakan jarak tempuh dari dua koordinat latlng titik lokasi yang terhubung langsung. Arc yang terkumpul pada penelitian ini dapat dilihat pada Lampiran 2.
Studi pustaka yang digunakan berupa data-data yang disediakan pada layanan Google Maps. Pengumpulan node dilakukan dengan pemilihan koordinat
10
Pemodelan Graf Dari Data
Data yang telah dikumpulkan berupa titik-titik lokasi yang akan dijadikan
node dan jalur yang menghubungkan antar lokasi yang akan dijadikan arc. Data graf disimpan dalam bentuk script PHP yang merupakan bahasa pemrograman yang dipakai untuk pengimplementasian fungsi Dijkstra dan fungsi lokasi terbaik, sehingga graf yang dihasilkan dapat digunakan untuk fungsi yang akan diimplementasikan. Dalam tahap implementasi graf dan fungsi-fungsi, digunakan
library PHP-Dijkstra (Lawrie 2013) yang merupakan library graf dan fungsi Dijkstra dalam bahasa PHP.
Untuk membangun graf digunakan class graf yang telah disediakan di
library. Langkah pertama yang dilakukan adalah mendeklarasikan class graf yang menjadi sebuah objek, kemudian mendeklarasikan setiap node dan arc ke class
graf tersebut. Kode program untuk membangun graf adalah : $g = new graph();
$g->addedge(“N0001”, “N0002”, 100);
Kode di atas mendeklarasikan graf ke sebuah variabel, kemudian graf yang digunakan disimpan di variabel $g tersebut. Langkah selanjutnya adalah mendeklarasikan node yang berjumlah sebanyak 102, untuk mempermudah pemrosesan node diinisialisasi dengan nama N0001 sampai N0102. Pendeklarasian node dijalankan bersama pendeklarasian arc menggunakan fungsi
addedge(). Kode di atas mendeklarasikan sebuah arc dengan node awal N0001 dan node akhir N0002, dengan bobot 100. Dari setiap arc yang dideklarasikan, fungsi addedge() juga mendeklarasikan kedua node. Dari setiap jalur yang dijadikan arc dideklarasikan dua kali dengan node awal, dan node akhir yang berkebalikan, dan dengan bobot arc yang sama.
Dari tahapan ini dihasilkan sebuah graf yang memiliki node sebanyak 102 buah dan arc sebanyak 105 buah. Graf termasuk connected graph dikarenakan semua node-node terhubung pada graf, tanpa ada satu node ataupun sub-graf yang terisolasi. Graf termasuk weighted graph dikarenakan semua arc memiliki bobot yang merupakan representasi jarak untuk melakukan perpindahan pada node-node
11
Gambar 5 Penggambaran graf yang merepresentasikan wilayah penelitian Implementasi Fungsi Dijkstra dan Fungsi Lokasi Terbaik
Graf yang telah dibuat sebelumnya diimplementasikan menggunakan algoritme Dijkstra dengan lokasi kandidat dan lokasi akses menjadi masukan, dengan lokasi kandidat sebagai node akhir dan lokasi akses sebagai node awal. Keluaran dari fungsi adalah lokasi terbaik dari lokasi kandidat berdasarkan total jarak tempuh terpendek dari seluruh lokasi akses.
Untuk mendapatkan keluaran yang sesuai diperlukan fungsi untuk menjalankan beberapa tahapan. Tahapan pertama adalah membaca input yang berupa lokasi-lokasi kandidat dan lokasi-lokasi akses. Selanjutnya dari dari input
tersebut dihitung jarak tempuh semua pasangan lokasi kandidat dan lokasi akses, dengan lokasi akses sebagai node awal dan lokasi kandidat sebagai node akhir, nilai jarak tempuh tersebut diinisialisasi ke setiap lokasi akses. Pada tahap ini fungsi yang digunakan untuk menghitung jarak tempuh adalah fungsi yang mengimplementasikan algoritme Dijkstra. Tahapan selanjutnya setelah perhitungan jarak tempuh selesai adalah setiap nilai jarak tempuh tersebut diakumulasikan berdasarkan lokasi akses, kemudian nilai-nilai hasil akumulasi yang sudah didapat diinisialisasikan ke setiap lokasi akses. Sampai tahap ini setiap lokasi akses memiliki nilai yang merupakan total jarak tempuh sehingga lokasi-lokasi kandidat dapat dipilih dengan mengambil lokasi-lokasi yang memiliki nilai jarak tempuh paling minimum.
Pada tahap ini proses komputasi dilakukan dengan menggunakan bahasa pemrograman PHP. Langkah pertama yang dilakukan pada tahap ini adalah dengan mempersiapkan fungsi algoritma Dijkstra yang dapat menentukan jarak tempuhantar node. Dari library PHP-Dijkstra yang digunakan pada penelitian ini terdapat dua fungsi yang mengimplementasikan algoritme Dijkstra yaitu fungsi
path_from() dan path_to(). Fungsi path_form() memberikan hasil inisialisasi biaya rute dari suatu node ke semua node lain di graf. Fungsi path_to() menjalankan fungsi untuk menelusuri path dari suatu node ke node lain, fungsi path_to() hanya bisa digunakan jika node sudah diinisialisasi dengan fungsi path_form(). Contoh penggunaan fungsi path_from() adalah:
12
Keluaran dari fungsi adalah variabel array $distance yang berupa biaya dari semua node ke node N0001, dan variabel array $prev yang berupa node terakhir pada rute dari setiap node. Contoh fungsi path_to() adalah:
$path = $g->paths_to($prev, “N0002”);
Keluaran fungsi berupa variabel array $path yang merupakan node-node
rute dari node awal ke node akhir secara berurutan. Variabel $prev yang dijadikan
input bersama dengan node merupakan output dari pemanggilan fungsi path_from
sebelumnya.
Fungsi Dijkstra yang tersedia telah memenuhi kebutuhan untuk membangun fungsi lokasi terbaik. Fungsi lokasi terbaik membutuhkan jarak tempuh dari semua pasangan lokasi kandidat dan lokasi akses, dengan lokasi kandidat sebagai node akhir dan lokasi akses sebagai node awal. Fungsi lokasi terbaik dibangun dengan memanfaatkan fungsi path_from(), dengan menggunakan perintah perulangan lokasi kandidat dialokasikan ke fungsi path_form() sehingga didapatkan array yang berisi jarak tempuh ke semua node dari setiap node akses. Setelah semua lokasi akses memiliki nilai jarak tempuh ke semua lokasi, fungsi selanjutkan mengakumulasikan nilai jarak tempuh berdasarkan node lokasi kandidat. Sampai tahap ini dihasilkan variabel array yang menyimpan total jarak tempuh dari node lokasi akses dengan berindeks pada node lokasi kandidat. Dari variabel lokasi kandidat tersebut diambil yang paling minimum sebagai lokasi terbaik dari lokasi-lokasi kandidat berdasarkan jarak tempuh terpendek dari berbagai lokasi.
Pada tahap ini berhasil mengembangkan fungsi lokasi terbaik untuk menghitung nilai jarak tempuh dari semua node lokasi akses ke setiap node lokasi kandidat. Untuk menghitung jarak tempuh antar lokasi digunakan fungsi yang menerapkan algoritme Dijkstra. Fungsi yang sudah diimplementasikan selanjutnya diimplementasikan ke sistem agar dapat digunakan dalam menentukan lokasi terbaik berdasarkan jarak tempuh terpendek dari lokasi-lokasi lain.
Implementasi Sistem
13
Gambar 6 Tampilan antar muka sistem
Gambar 7 Sistem menerima input lokasi kandidat dan lokasi akses
14
Gambar 9 Sistem menampilkan perhitungan jarak tempuh setiap lokasi kandidat Evaluasi Hasil
15
Tabel 1 Lokasi akses yang dijadikan input untuk evaluasi hasil
Lokasi Akses Koordinat Posisi Node di graf
Lokasi akses-1 (-6.57017,106.75269) Jalan Bubulak
No.05 N0084
Lokasi akses-2 (-6.56962,106.75199) Jalan Bubulak
No.10 N0092
Lokasi akses-3 (-6.5973,106.74937) Jalan Gardu Raya
No.15-44 N0098
Lokasi akses-4 (-6.57043,106.75144) Jalan Gardu
Dalam No.60 N0023
Lokasi akses-5 (-6.57034,106.74854) Jalan Bubulak
No.18-23 N0088
Lokasi akses-6 (-6.57034, 106.74854) Jalan Gardu
Dalam No.32 N0020
Tabel 2 Lokasi kandidat yang dijadikan input untuk evaluasi hasil
Lokasi kandidat Koordinat Posisi Node di graf
Lokasi kandidat-1 (-6.57044, 106.74793) Jalan Gardu
Dalam No.32-33 N0019 Lokasi kandidat-2 (-6.57044, 106.74793) Jalan Bubulak
No.1 N0091
Lokasi kandidat-3 (-6.57044, 106.74793) Jalan Bubulak
Gardu No.02 N0101
16
Dari tahap evaluasi menghasilkan output dari sistem merupakan lokasi dengan total jarak tempuh terpendek setelah dihitung melalui Google Maps. Dari tahap evaluasi dapat dilihat jika fungsi yang sudah diimplementasikan sudah mengimplementasikan algoritme Dijkstra dengan benar. Perbedaan hasil jarak tempuh pada sistem dan Google Maps dapat terjadi dikarenakan perbedaan graf yang digunakan. Fungsi lokasi terbaik juga berhasil menentukan titik lokasi dengan jarak tempuh terpendek setelah sebelumnya dihitung nilai total jarak tempuh setiap pasangan lokasi kandidat dan lokasi akses.
SIMPULAN DAN SARAN
Simpulan
Penelitian ini berhasil menengimplementasikan algoritma Dijkstra untuk menentukan titik terbaik berdasarkan jarak tempuh terpendek dari berbagai titik lain. Hasil penelitian diimplementasikan menjadi sebuah sistem berbasis web yang dapat digunakan untuk menentukan lokasi yang menekan biaya perjalanan dengan memilih lokasi ideal dengan jarak tempuh terpendek dari lokasi-lokasi lain yang mengaksesnya.
Saran
Penelitian ini dapat dikembangkan lebih lanjut dengan:
1 Menerapkan algoritma shortest path lain dalam menerapkan fungsi pencarian titik lokasi terbaik, dan dibandingkan efektifitas dan kinerjanya dengan penelitian ini.
17
DAFTAR PUSTAKA
Cong J, Kahng AB, Leung KS. 1998. Efficient algorithms for the minimum shortest path Steiner Arborescence problem with applications to VLSI physical design. IEEE Transactions On Computer-Aided Design Of Integrated Circuits And Systems. 17(1):24-39.
Cormen TH, Leiserson CE, Rivest RL, Stein C. 2009. Introduction to Algorithms.
Ed ke-3. Massachusetts (US): The MIT Press.
Chartgrand G, Oellermann OR. 1997. Applied and Algorithmic Graph Theory. New York
(US): McGraw-Hill Inc.
Dijkstra EW. 1959. A note on two problems in connexion with graphs.
Numerische Mathematik.1 : 269–271.
Fauzi I. 2011. Penggunaan algoritma Dijkstra dalam pencarian rute tercepat dan
rute terpendek (studi kasus pada jalan raya antara wilayah Blok M dan Kota) [skripsi]. Jakarta(ID): Universitas Islam Negeri Sunan Kalijaga. Indaryana D. 2013. Perancangan Tata Letak Fasilitas. Blog [internet]. [diunduh
2014 Mei 21]. Tersedia pada :
http://dodi84indaryana.blogspot.com/2012/09/perancangan-tata-letak-fasilitas.html
Lawrie D. 2013. Github [internet]. [diunduh 2014 April 24]. Tersedia pada : http://github.com/fluxsauce/OpenSpree/tree/master/contrib/kay-PHP-Dijkstra
Rifa’i H. 2009. Aplikasi graf terhadap sistem transportasi darat bus patas trans Jogja di Daerah Istimewa Yogyakarta (studi kasus : bus patas trans Jogja trayek 3A) [skripsi]. Yogyakarta(ID): Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Svennerberg G. 2010. Beginning Google Maps API 3. New York (US): Apress. Utari RS. 2013. Penentuan jalur tercepat dan terpendek berdasarkan kondisi lalu
18
Lampiran 1 Daftar node yang digunakan
Nama Node Posisi Koordinat
N0001 Jl Batu Hulung No 1 -6.56825, 106.74639
N0002 Jl Batu Hulung No 47 -6.56904, 106.74681
N0003 Jalan Raya Dramaga No.18 -6.56942, 106.74606
N0004 Jalan Raya Dramaga No.18 -6.56957, 106.74692
N0005 Jalan Batu Hulung No.8 -6.57014, 106.74701
N0006 Jalan Gardu Dalam No.25 -6.57081, 106.74703
N0007 Jalan Gardu Dalam No.41 , -6.57057, 106.74767
N0008 Jalan Gardu Dalam No.39 -6.56967, 106.74767
N0009 Jalan Batu Hulung No.17 -6.57148, 106.74703
N0010 Jalan Batu Hulung 1 No.20 -6.57207, 106.74709
N0011 Jalan Raya Dramaga No.11 -6.57271, 106.74721
N0012 Jalan Raya Dramaga No.28 -6.57247, 106.74835
N0013 Jalan Gugah Sari No.37 -6.57297, 106.74845
N0014 Jalan Raya Dramaga No.28 -6.57187, 106.74821
N0015 Jalan Raya Dramaga No.28 -6.57156, 106.74817
N0016 Jalan Batu Hulung 1 No.20 -6.57157, 106.74766
N0017 Jalan Gardu Dalam No.6 -6.57137, 106.74765
N0018 Jalan Gardu Dalam No.32 -6.57106, 106.74808
N0019 Jalan Gardu Dalam No.32-33 -6.57106, 106.74808
N0020 Jalan Gardu Dalam No.32 -6.57109, 106.74808
N0021 Jalan Gardu Dalam No.47 -6.57012, 106.74873
N0022 Jalan Gardu Dalam No.47 -6.56992, 106.74909
N0023 Jalan Gardu Dalam No.60 -6.56994, 106.74932
N0024 Jalan Gardu Raya No.43 -6.57018, 106.74948
N0025 Jalan Gardu Raya No.37 -6.57011, 106.74967
N0026 Jalan Gardu Raya No.45 -6.57051, 106.74948
N0027 Jalan Gardu Raya No.15 -6.57113, 106.74989
N0028 Jalan Gardu Raya No.15 -6.57135, 106.74999
N0029 Jalan Gardu Raya No.12 -6.57153, 106.74969
N0030 Jalan Raya Dramaga No.21, -6.57226, 106.74924
N0031 Jalan Raya Dramaga No.6 -6.57238, 106.74968
N0032 Jalan Raya Leuwiliang-Bogor -6.57185, 106.75042
N0033 Jalan Raya Dramaga No.20 -6.57278, 106.75027
N0034 Jalan Raya Dramaga No.16-18 -6.57314, 106.75084
N0035 Jalan KH. R. Abdullah Bin Nuh -6.57338, 106.75142
N0036 Jalan KH. R. Abdullah Bin Nuh -6.57313, 106.75212
N0037 Jalan KH. R. Abdullah Bin Nuh -6.57294, 106.75242
N0038 Jalan KH. R. Abdullah Bin Nuh -6.57228, 106.75333
N0039 Jalan KH. R. Abdullah Bin Nuh -6.57185, 106.75398
N0040 Jalan KH. R. Abdullah Bin Nuh -6.57141, 106.75467
N0041 Jalan KH. R. Abdullah Bin Nuh -6.57118, 106.75506
N0042 Jalan KH. R. Abdullah Bin Nuh -6.57084, 106.75558
N0043 Jalan KH. R. Abdullah Bin Nuh -6.57029, 106.75625
N0044 Jalan Raya Leuwiliang-Bogor -6.56935, 106.75531
N0045 Jalan Sindang Barang Sbj No.31 -6.56895, 106.75592
N0046 Jalan Raya Leuwiliang-Bogor -6.56888, 106.75479
19
Lanjutan
N0048 Jalan Cifor Batu Hulung No.33 -6.56728, 106.75449
N0049 Jalan Cifor Batu Hulung No.19 -6.56774, 106.75364
N0050 Jalan Cifor Batu Hulung No.13 -6.56713, 106.75299
N0051 Jalan Batu Hulung No.66 -6.56774, 106.75237
N0052 Jalan Cifor Batu Hulung No.13 -6.56798, 106.75259
N0053 Jalan Bubulak No.05 -6.56839, 106.75221
N0054 Jalan Bubulak No.05 -6.56858, 106.75305
N0055 Jalan Bubulak No.05 -6.56879, 106.75258
N0056 Jalan Bubulak No.21 -6.56923, 106.75293
N0057 Jalan Bubulak No.21 -6.56951, 106.75279
N0058 Jalan Bubulak No.06 -6.56868, 106.75184
N0059 Jalan Batu Hulung No.27, Bogor -6.56841, 106.75177
N0060 Jalan Batu Hulung No.67, Bogor -6.56765, 106.75158
N0061 Jalan Batu Hulung No.65, Bogor -6.56768, 106.75114
N0062 Jalan Batu Hulung No.48-54, Bogor -6.56782, 106.75066
N0063 Jalan Batu Hulung No.19, Bogor -6.56815, 106.75022
N0064 Jalan Batu Hulung No.11, Bogor -6.56842, 106.74959
N0065 Jalan Raya Leuwiliang-Bogor -6.56944, 106.75406
N0066 Jalan Raya Leuwiliang-Bogor -6.56987, 106.75377
N0067 Jalan Raya Leuwiliang-Bogor -6.57061, 106.75318
N0068 Jalan Raya Leuwiliang-Bogor -6.57107, 106.75345
N0069 Jalan Raya Leuwiliang-Bogor -6.57082, 106.75387
N0070 Jalan KH. R. Abdullah Bin Nuh -6.57141, 106.75366
N0071 Jalan KH. R. Abdullah Bin Nuh, -6.57181, 106.75306
N0072 Jalan KH. R. Abdullah Bin Nuh, -6.57224, 106.75238
N0073 Jalan Raya Leuwiliang-Bogor -6.57145, 106.75281
N0074 Jalan Raya Leuwiliang-Bogor -6.57172, 106.75243
N0075 Jalan Bubulak No.23 -6.57205, 106.75189
N0076 Jalan Raya Leuwiliang-Bogor -6.57104, 106.75255
N0077 Jalan Raya Leuwiliang-Bogor -6.57153, 106.75159
N0078 Jalan Bubulak No.23, Bogor -6.57193, 106.75158
N0079 Jalan Raya Dramaga No.18 -6.57212, 106.75106
N0080 Jalan Bubulak No.18-23 -6.57121, 106.75114
N0081 Jalan Bubulak No.30 -6.57084, 106.75243
N0082 Jalan Raya Leuwiliang-Bogor -6.57064, 106.75278
N0083 Jalan Bubulak No.4 -6.57071, 106.75198
N0084 Jalan Bubulak No.05 -6.57028, 106.75286
N0085 Jalan Raya Leuwiliang-Bogor -6.57028, 106.75319
N0086 Jalan Bubulak Gardu No.17 -6.57019, 106.75184
N0087 Jalan Bubulak Gardu No.02 -6.57039, 106.75134
N0088 Jalan Bubulak No.07 -6.57066, 106.75145
N0089 Jalan Bubulak No.1 -6.57065, 106.75058
N0090 Jalan Bubulak No.17 -6.57092, 106.75041
N0091 Jalan Bubulak No.1 -6.57026, 106.75005
N0092 Jalan Bubulak No.10 -6.56948, 106.75196
N0093 Jalan Bubulak Gardu No.04 -6.56978, 106.75169
N0094 Jalan Bubulak Gardu No.5 -6.56925, 106.75143
20
Lanjutan
N0096 Jalan Batu Hulung No.24 -6.56872, 106.75118
N0097 Jalan Gardu Raya No.4-5 -6.56914, 106.75026
N0098 Jalan Gardu Raya No.15-44 -6.56936, 106.75032
N0099 Jalan Gardu Raya No.37 -6.56956, 106.74971)
N0100 Jalan Gardu Raya No.5 -6.56883, 106.75099
N0101 Jalan Bubulak Gardu No.02 -6.56997, 106.75116
21
Lampiran 2 Daftar arc yang digunakan
Node Awal Node Akhir Bobot jarak (meter)
23
Lanjutan
N0089 N0090 8
N0089 N0091 73
N0093 N0101 97
N0093 N0094 66
N0094 N0095 59
N0097 N0098 22
N0097 N0100 88
N0098 N0099 70
N0101 N0102 59
24
RIWAYAT HIDUP
Penulis dilahirkan di Liwa pada tanggal 22 Juli 1992 sebagai anak pertama dari pasangan Sukaisih dan Rustendi. Riwayat akademik penulis dimulai pada tahun 1998 dengan masuk ke SD Negeri Sebarus. Tahun 2004 penulis lulus dari SD kemudian melanjutkan ke SMP Negeri 1 Liwa dan lulus pada tahun 2007. Tahun 2010 penulis lulus dari SMA Negeri 1 Liwa dan pada tahun yang sama diterima pada Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor melalui Jalur Seleksi Masuk IPB (USMI).