JURNAL SAINS DAN SENI ITS Vol. 5 No. 2 (2016) 2337-3520 (2301-928X Print) A-21 Desain dan Analisis Algoritma Dijkstra dan Metode Visibility Graph Naive untuk Penyelesaian Persoalan Spoj The Archipelago Reva Yoga Pradana, Victor Hariadi, Rully Soelaiman Jurusan Teknik Informatika, Fakultas Masing-masing, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia e-mail: rully@if.its.ac.id AbstrakPermasalahan pada SPOJ 780 The Archipelago adalah sebagai berikut. Diberikan sekumpulan pulau yang memiliki beberapa terminal dan area terlarang yang tidak boleh dilewati selama jalur darat di pulau tersebut. Kemudian, dicari kemungkinan rute terpendek yang menghubungkan terminal di suatu pulau ke terminal di pulau yang lain, tanpa melewati area terlarang manapun, dan total jarak pada 1 pulau harus dibulatkan ke atas. Untuk menyelesaikan permasalahan tersebut, dibutuhkan algoritma Visibility Graph Navie, untuk mengetahui titik- titik mana saja yang dapat dilalui, dan algoritma Dijkstra untuk mengetahui rute terpendeknya. Selain itu, juga dilakukan beberapa optimasi untuk mempercepat kinerja sistem, yaitu dengan cara penyederhanaan penggambaran entitas halangan, pengurangan jumlah vertex yang harus dicek visibilitasnya, dan penggunaan backtracking dari vertex tujuan hingga vertex sumber untuk mengetahui total jarak pada tiap pulau. Cara kerja dari sistem adalah sebagai berikut. Diberikan masukan sesuai deskripsi permasalahan. Setelah masukan berhasil diolah, sistem akan memanggil algoritma Dijkstra. Pada tiap current vertex yang dihasilkan di dalam Dijkstra, sistem akan memanggil algoritma Visibility Graph Naive, untuk mengecek visibilitas dari vertex tersebut dengan vertex lain yang se-pulau, agar dapat diketahui vertex mana saja yang menjadi tetangganya. Dijkstra akan berhenti saat current vertex merupakan vertex tujuan. Kemudian saat Dijkstra telah berhenti, sistem akan menghitung total jarak pada tiap pulau, total jarak keseluruhan, dan menyimpan posisi yang dipilih pada rute terpendek Hasil akhir menunjukkan bahwa sistem dapat berjalan cukup cepat berkat optimasi yang baik, dengan waktu rata- rata sebesar 0.2763 detik dan memori rata-rata 10.533 MB. Kata KunciGraph with Obstacles, Computational Geometry, Shortest Path, Visibility Graph, Dijkstra I. INTRODUCTION 1 ermasalahan yang diangkat dalam riset ini adalah persoalan dari situs SPOJ dengan nomor soal 780, dan kode soal ARCHPLG, dengan judul “The Archipelago”. Dalam permasalahan tersebut, terdapat sebuah negara fiktif bernama Byteland. Byteland memiliki beberapa pulau berbentuk persegi panjang. Beberapa pulau dapat terhubung oleh jalur kapal ferry. Setiap pulau digambarkan dalam bidang geometri, yang mana memiliki sistem koordinat tersendiri di tiap pulaunya. Dalam setiap pulau, terdapat 2 elemen, yaitu: area terlarang yang berbentuk persegi panjang dan terminal. 1 http://www.spoj.com/problems/ARCHPLG Area terlarang tidak boleh dilewati dalam pengambilan rute terpendek. Terminal sendiri merupakan pelabuhan dari Kapal Ferry. Setelah ditentukan karakteristik dari kepulauan Byteland, maka kemudian terdapat permasalahan yang harus diselesaikan, yaitu total jarak rute terpendek dari suatu terminal ke terminal yang lain, dengan ketentuan- ketentuan yang telah ditetapkan sebelumnya. Selain itu juga dicari posisi mana saja yang dipilih pada saat pemilihan rute terpendek. Dalam permasalahan tersebut, akan ada masukan berupa T yang merupakan jumlah kasus uji. Kemudian pada tiap kasus uji, akan terdapat deskripsi tiap pulau, tiap jalur kapal ferry, dan permasalahan rute terpendek yang harus diselesaikan, dari suatu terminal ke terminal yang lain. Pada deskripsi tiap pulau, terdapat masukan berupa deskripsi tiap terminal dan tiap area terlarang. Tiap terminal dideskripsikan nama dan posisinya dalam bentuk koordinat x dan y. Sedangkan tiap area terlarang dideskripsikan dalam bentuk persegi panjang, membentang dari koordinat ( 1 , 1 ) hingga ( 2 , 2 ). Kemudian, tiap jalur kapal ferry dideskripsikan kedua terminal penghubungnya, pulau letak tiap terminalnya, serta jarak jalur tersebut. Setelah deskripsi tiap masukan, sistem harus mengeluarkan keluaran sesuai dengan ketentuan yang ada. Pertama, sistem akan mencetak nomor kasus ujinya. Kemudian, sistem akan mencetak total jarak terpendeknya. Setelah itu, dicetak posisi-posisi yang dipilih dalam pemilihan rute terpendek. Untuk ketentuan rute terpendeknya, diitung berdasarkan total jarak pada jalur kapal ferry yang ditempuh, serta hasil pembulatan pada total rute di tiap pulau yang dilewati. Kemudian untuk pencetakan posisinya, apabila posisi yang dipilih berupa terminal, maka dicetak nama terminal dan nama pulaunya. Namun apabila posisi yang dipilih bukan berupa terminal, maka dicetak posisinya, dalam bentuk koordinat x dan y 1 . II. TINJAUAN PUSTAKA Visibility Graph Visibility Graph digunakan untuk menentukan apakah suatu vertex visible / dapat dijangkau oleh vertex yang lain. Apabila 2 buah vertex saling visible, maka dapat dibentuk edge antar keduanya. Pada Gambar 1, garis merah melambangkan kedua vertex saling tidak visible, sedangkan garis biru kehitaman melambangkan bahwa kedua vertex saling visible. P