BAB 2 LANDASAN TEORI Pada bab ini, akan dibahas landasan teori mengenai teori-teori yang digunakan dan konsep yang mendukung pembahasan, serta penjelasan mengenai metode yang digunakan. 2.1. Jalur Terpendek Jalur terpendek merupakan suatu pencarian nilai variable yang dianggap dapat menghasilkan nilai yang maksimal. Jalur terpendek memiliki peranan penting dalam penyusunan system. Dengan jalur terpendek dapat diperoleh hal-hal yang memiliki nilai profit tinggi serta meminimalkan jarak. Banyak masalah yang berhubungan dengan pencarian jalur. Umumnya untuk pencarian jalur yang mengoptimumkan kinerja manajemen taksi. Manajemen taksi ini berhubungan dengan jalur terpendek yang dibutuhkan untuk menuju jalur-jalur yang dituju. Jalur terpendek ini termasuk bagian dari pada graph. Menentukan rute terpendek merupakan pencarian dari beberapa simpul yang berhubungan. Simpul tersebut sering direpresentasikan dalam bentuk graf berbobot. Graf yang digunakan untuk mencari lintasan tersebut diberikan bobot atau nilai. Bobot disini berfungsi untuk menyatakan jarak. Berbagai pendekatan algoritma yang ditawarkan untuk mendapatkan solusi untuk pencarian jalur terpendek ini, salah satunya yaitu Algoritma Floyd.
7 2.2. Graph Graph pertama kali ditemukan oleh Leonhard Euler, seorang matematikawan kebangsaan Swiss pada tahun 1736. Dimana saat itu Euler berhasil menulis upaya pemecahan Jembatan Koningsberg yang terkenal di Rusia. Graph merupakan sebuah kumpulan yang terdiri dari titik (node) dan garis dimana pasangan titik-titik tersebut dihubungkan dengan segmen garis. Node ini sering disebut sebagai vertex dan segmen garis disebut dengan edge. Maka direpresentasikanlah dengan G=(V,E) (Lipschutz, 2002). Graph juga merupakan cabang ilmu yang memiliki banyak terapan dibanyak bagian. Beberapa masalah juga dapat diterapkan dengan graph, misalnya saja untuk jalan raya yang dimodelkan menjadi graf dengan kota sebagai simpul dan jalan sebagai edge yang nilai bobotnya adalah panjang dari jalan tersebut. Sebagai contoh bentuk graph dapat dilihat dari Gambar 2.1 A B C D E Gambar 2.1 Graph dengan 6 verteks dan 7 edge Gambar 2.1 menggambarkan 5 vertex yaitu A, B, C, D dan E serta7 edge yang menghubungkan antara vertex lainnya seperti AB, AC dan seterusnya. Graph terbagi atas dua jenis yaitu Graph berarah (Directed Graph) dan Graph tidak berarah (Undirected Graph). Graph berarah adalah suatu graph yang mana garis-garisnya memiliki arah. Sedangkan graph tidak berarah adalah dimana garis-garis dalam graph tidak memiliki arah.
8 2.3. Matriks Matriks merupakan sekumpulan dari bilangan yang biasa dipakai untuk mengatur data dalam bentuk baris dan kolom (Suarga, 2012). Sebuah matriks akan menggunakan fungsi ij sebagai entri i untuk kolom dan j untuk baris. Sebuah contoh matriks dapat dilihat dari gambar 2.2. A = 1 2 3 3 1 2 2 3 1 Gambar 2.2 Matriks A berukuran 3 x 3 Dalam hal ini, matriks dimanfaatkan untuk membentuk antara nilai-nilai yang berhubungan dengan titik lainnya. Sehingga nilai antara titik A dengan titik B dan seterusnya dapat dilihat dengan jelas. 2.4. Algoritma Floyd Algoritma Floyd diciptakan oleh R. Floyd. Algoritma ini diberlakukan baik terarah dan tidak diarahkan grafik tertimbang asalkan tidak mengandung sebuah siklus panjang negatif. Algoritma Floyd merupakan algoritma yang dapat digunakan untk membangun sebuah sistem yang membutuhkan mekanisme pencarian jalur tercepat. Floyd merupakan algoritma untuk pencarian lintasan terpendek pada suatu graf berbobot (weighted graph). Algoritma ini dapat melakukan analisis dan penyelesaian kerumitan suatu proses (Purwanto, 2005). Algoritma Floyd atau Floyd-Warshall merupakan cabang dari ilmu matematika yang salah satu fungsinya untuk menyelesaikan masalah lintasan terpendek (Ardiansyah, 2012). Algoritma ini termasuk ke dalam pemrograman dinamis yang menyelesaikan permasalahan yang ada dengan memandang solusi lebih dari satu. Pemrograman dinamis merupakan optimalitas yaitu solusi yang diselesaikan sampai tahap optimal (Sani et al, 2013). Algoritma Floyd menerapkan pemrograman dinamis sehingga lebih menjamin hasil yang optimum untuk lintasan
9 terpendek karena algoritma ini akan melakukan pengecekan keseluruh node. Dalam Algoritma Floyd terdapat fungsi (G=V,E). Penjelasan : G = merupakan graph yang berisi dari kumpulan titik yang dihubungkan ke titik lainnya. V = himpunan simpul yang terbatas dan tidak kosong. E = himpunan busur yang menghubungkan sepasang simpul. Jumlah komputasi pada algoritma ini cukup lama dan memerlukan komputasi yang cukup besar pada resource komputer. Algoritma Floyd-Warshall membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul. Tahapan Algoritma Floyd 1. Bentuklah sebuat matriks dari graph yang memiliki bobot. 2. Isi sesuai hubungan antara vertex satu ke vertex lainnya. 3. Bandingkan semua vertex dengan rumus ik + kj < ij, maka nilai ij diganti dengan nilai ik + kj. 4. Setelah dibandingkan terhadap semua vertex, maka didapatkan hasil terkecil. 2.5. JavaScript Menurut Sunyoto (2007) JavaScript adalah bahasa scripting yang popular di internet dan dapat bekerja di sebagian besar browser popoler seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode Javascript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. Beberapa hal tentang JavaScript (Sunyoto, 2007) : 1. Javascript didesain untuk menambah interaktif suatu web 2. Javascript merupakan sebuah bahasa scripting. 3. Bahasa scripting merupakan bahasa pemograman yang ringan. 4. Javascript berisi baris kode yang dijalankan di komputer (web browser).
10 5. Javascript biasanya disisipkan (embedded) dalam halaman HTML. 6. Javascript adalah bahasa interpreter (yang berarti skrip dieksekusi tanpa proses kompilasi). 7. Setiap orang dapat menggunakan Javascript tanpa membayar lisensi. 2.6. Google Map Google Maps adalah layanan gratis yang diberikan oleh Google dan sangat popular. Google Maps merupakan layanan pemetaan berbais web untuk menunjukkan jalan-jalan di seluruh dunia. Google maps dapat kita gunakan untuk melihat suatu jalan di lokasi manapun. Dengan kata lain, Google Maps merupakan suatu peta yang dapat dilihat dengan menggunakan suatu browser yang akan ditampilkan secara digital. Sehingga, bagi mereka yang ingin mengetahui peta sebuah lokasi, cukup mengetikkan sebuah alamat. Maka, lokasi yang diinginkan akan segera ditampilkan. Kegunaan Google Maps adalah untuk membantu seseorang untuk mencari jalan ke lokasi yang ingin dituju. Google maps juga dilengkapi dengan fasilitas yang dapat menghitung jarak. Sehingga memudahkan kita untuk mengetahui seberapa jauh jalan yang akan dituju. 2.7. Penelitian Sebelumnya Beberapa penelitian dari peneliti sebelumnya yang menjadi bahan pembelajaran penulis tentang penyelesaian jalur terpendek. Purwanto et al (2005) menggunakan algoritma Djikstra dan algoritma Two Queses yang menghasilkan nilai quadratic dengan node. Dan juga menggunakan algoritma Floyd yang menghasilkan nilai cubic dengan node Bahri (1997) telah mencoba melakukan pencarian jalur terpendek dengan menggunakan dua algoritma yaitu Floyd dan Djikstra. Peneliti mencari hasil dari semua pasang simpul yang ada pada lintasan. Dan disimpulkan hasilnya algoritma Floyd lebih efisien dibandingkan Dijkstra dalam menyelesaikan digraph D yang mempunyai n simpul.
11 Aulia (2012) melakukan penerapan algoritma Floyd untuk menentukan rute terpendek. Algoritma Floyd merupakan salah satu strategi dari dynamic programming dapat menjamin ditemukannya solusi optimum. Hasil yang didapat dari penerapan algoritma ini adalah waktu komputasi yang dibutuhkan rata-rata cepat dengan kompleksitas waktu O(n 3 ). Purba (2011) telah menerapkan algoritma Floyd untuk pencarian jalur terpendek. Purba menerapkan algoritma untuk mendapatkan penjadwalan pengangkutan dengan jalur yang paling baik. Hasilnya Floyd memberikan waktu yang lebih optimum dengan waktu Eksekusi O(n 3 ) Table 2.4 Tabel penelitian terdahulu No Judul Pengarang Tahun Kelebihan 1. Implementasi Dan Analisis Penentuan Rute Terpendek Di Kota Surabaya 2. Algoritma Penentuan Lintasan terpendek untuk semua pasangan simpul 3. Rancang Bangun Aplikasi Penjadwalan Pengangkutan Sampah Yudi Purwanto, Diana Purwitasari, Agung Wahyu 2005 Waktu eksekusi Algoritma Dijkstra dan Two Queses berbanding quadratic dengan node, sedangkan Floyd berbanding cubic dengan jumlah node. Syamsul Bahri 1997 Floyd lebih efesien dibandingkan Dijkstra dalam menyelesaikan digraph D yang mempunyai n simpul Dominiq Purba 2011 Floyd memberikan waktu yang lebih optimum dengan waktu Eksekusi O(n 3 )
12 4. Penerapan Algoritma Floyd dalam Penentuan Rute Terpendek dari FasilkomTI ke Landmarks USU Indra Aulia, Mohammad Andri Budiman 2012 Algoritma Floyd sebagai salah satu strategi dari dynamic programming dapat menjamin ditemukannya solusi optimum.