BAB 2 LANDASAN TEORI 2.1 Konsep Dasar Algoritma - Sistem Pencarian Jalur Terpendek Di Kota Medan Menggunakanalgoritma Floyd-Warshall

BAB 2 LANDASAN TEORI

2.1 Konsep Dasar Algoritma

  2.1.1 Sejarah Algoritma Para ahli berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan.

  Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al- Khuwarizmi (al-Khuwarizmi dibaca orang Barat menjadi algorism). Al-Khuwarizmi menulis buku yang berjudul Kitab al jabar wal-muqabala, yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu diperoleh juga akar kata “aljabar” (algebra). Perubahan dari kata algorism menjadi

  

alghorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran

  • –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata alghorism diserap menjadi algoritma.

  2.1.2 Definisi Algoritma

  Menurut Rinaldi Munir (2005 : 176) “Algoritma adalah urutan logis langkah-langkah

  

penyeleseian masalah yang disusun secara sistematis”. Alur pemikiran dalam menyelesaikan

  suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. Algoritma dapat dituliskan dalam berbagai notasi, misalnya dalam notasi kalimat-kalimat deskriptif. Dengan notasi kalimat deskriptif, deskripsi setiap langkah dijelaskan dengan bahasa sehari-hari secara jelas. Setiap langkah biasanya diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘masukan’, ‘bagi’, ‘ganti’, dan sebagainya. Sedangkan pernyataan bersyarat dinyaakan dengan ‘jika’,’maka’, dan sebagainya.

2.2 Konsep Dasar Graf

  2.2.1. Sejarah Graf

  Menurut catatan sejarah, masalah jembatan Konigsberg adalah masalah yang pertama kali menggunakan graf (tahun 1736). Di kota konigsberg (sebelah timur negara bagian Prussia, Jerman), sekarang bernama kota Kaliningrad, terdapat sungai Pregal yang mengalir mengintari pulau Kneiphof lalu bercabang menjadi dua buah anak sungai. Ada tujuh buah jembatan yang menghubungkan daratan yang dibelah oleh sungai tersebut. Masalah jembatan Konigsberg adalah : apakah mungkin melalui ketujuh buah jembatan itu masing-masing tepat satu kali, dan kembali lagi ketempat semula. Sebagian penduduk kota tersebut sepakat bahwa memang tidak mungkin melalui setiap jembatan itu hanya sekali dan kembali lagi ke tempat asal mula keberangkatan, tetapi mereka tidak dapat menjelaskan mengapa demikian jawabannya, kecuali dengan cara coba-coba. Tahun 1736, seorang matematikawan Swiss, L.Euler, adalah orang pertama yang berhasil menemukan jawaban masalah itu dengan pembuktian yang sederhana. Ia memodelkan masalah ini kedalam graf. Daratan (titik-titik yang dihubungkan oleh jembatan) dinyatakannya sebagai titik (noktah) yang disebut simpul (vertex) dan jembatan dinyatakan sebagai garis yang disebut sisi (edge).

  2.2.2. Definisi Graf

  Menurut Indra Yatini. B. dan Erliansyah Nasution, 2005 : 379 Graf penting sebagai model untuk berbagai jenis proses atau struktur. Kota-kota dan jalan-jalan yang menghubungkan membentuk graf, seperti juga komponen pada papan sirkuit yang berhubungan di antara mereka.

  

“Graf secara umum bisa didefinisikan sebagai kumpulan titik (nodes atau vertices) dan garis

(arcs atau edges)” (P.Insap Santosa, 2004 : 497).

  Graf G didefenisikan sebagai pasangan himpunan (V,E) yang dalam hal ini V adalah himpunan tidak kosong dari verteks (vertex atau node) = {v1, v2, ...,vn} dan E adalah himpunan sisi (edge) yang menghubungkan sepasang verteks = {e1, e2, ... ,en}, atau dapat ditulis singkat notasi G=(V,E). Hal ini berarti bahwa V tidak boleh kosong, sedangkan E boleh kosong. Berikut adalah contoh gambar graf :

Gambar 2.1 Graf sederhana (a), Graf Ganda (b), Graf semu (c)

2.2.3. Jenis Graf

  Menurut arah dan bobotnya, graf dibagi menjadi empat bagian, yaitu: 1. Graf berarah dan berbobot: tiap sisi mempunyai anak panah dan bobot.

Gambar 2.2 Graf Berarah dan BerbobotGambar 2.2 menunjukkan graf berarah dan berbobot yang terdiri dari lima verteks yaitu verteks A, B, C, D, dan E. Verteks A menujukkan arah ke verteks B, verteks C dan

  verteks D, verteks B menunjukkan arah ke verteks D, verteks C menunjukkan arah ke verteks D, dan seterusnya. Bobot antar verteks pun telah di ketahui.

  2. Graf tidak berarah dan berbobot: tiap sisi tidak mempunyai anak panah tetapi mempunyai bobot.

Gambar 2.3 Graf Tidak Berarah dan BerbobotGambar 2.3 menunjukkan graf tidak berarah dan berbobot. Graf terdiri dari lima verteks yaitu verteks A, B, C, D, dan E. Verteks A tidak menunjukkan arah ke verteks

  B atau C, namun bobot antara verteks A dan verteks B telah diketahui. Begitu juga dengan verteks-verteks yang lain.

  3. Graf berarah dan tidak berbobot: tiap sisi mempunyai anak panah yang tidak berbobot.

Gambar 2.4 Graf berarah dan tidak berbobot

  4. Graf tidak berarah dan tidak berbobot: tiap sisi tidak mempunyai anak panah dan tidak berbobot.

Gambar 2.5 Graf Tidak Berarah dan Tidak Berbobot

2.3 Definisi Lintasan

  Lintasan adalah hubungan antara titik dalam sebuah graf. Lintasan yang berawal dan berakhir pada simpul yang sama disebut lintasan tertutup (closed path), sedangkan lintasan yang tidak berawal dan berakhir pada simpul yang sama disebut lintasan terbuka (open path).

2.3.1 Lintasan Terpendek (Shortest Path) Persoalan mencari lintasan terpendek di dalam graf merupakan salah satu persoalan optimasi.

  Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph), yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya.

  Asumsi yang digunakan disini adalah bahwa semua bobot bernilai positif. Kata “terpendek” jangan selalu diartikan secara fisik sebagai panjang minimum, sebab kata “terpendek” berbeda- beda maknanya tergantung pada tipikal persoalan yang akan diseleseikan. Namun secara umum “terpendek” berarti meminimalkan bobot pada suatu lintasan di dalam graf. Ada beberapa macam persoalan lintasan terpendek, antara lain : a. Lintasan terpendek antara dua buah simpul tertentu.

  b. Lintasan terpendek antara semua pasangan simpul.

  c. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain.

  d. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu.

  2.4 Definisi Jarak

  Definisi jarak adalah angka yang menunjukkan seberapa jauh suatu benda berubah posisi melalui suatu lintasan tertentu. (Handaka, M.S. 2010) Dalam fisika atau dalam pengertian sehari-hari, jarak dapat berupa estimasi jarak fisik dari dua buah posisi berdasarkan kriteria tertentu (misalnya jarak tempuh antara Medan-Brastagi). Dalam bidang matematika, jarak haruslah memenuhi kriteria tertentu.

  2.5 Definisi Node (Simpul)

  Node atau titik simpul adalah titik pertemuan dari dua atau lebih elemen rangkaian. Junction atau titik simpul utama atau titik percabangan adalah titik pertemuan dari tiga atau lebih elemen rangkaian (Bovy, P. and E. Stern.1990).

  2.6 Jenis Metode Optimasi Algoritma

  Secara umum pencarian jalur terpendek dapat dibagi menjadi dua metode, yaitu metode konvensional (deterministik) dan metode heuristik. Metode konvensional diterapkan dengan menggunakan perhitungan matematika murni, sedangkan metode heuristik diterapkan dengan

  1. Metode Konvensional (deterministik) Metode konvensional adalah metode yang diterapkan menggunakan perhitungan matematika murni. Ada beberapa metode konvensional yang sering digunakan untuk menyelesaikan masalah optimasi, diantaranya: algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman- Ford.

  2. Metode Heuristik Metode heuristik adalah salah satu dari bidang kecerdasan buatan yang digunakan untuk menyelesaikan masalah optimasi. Terdapat beberapa algoritma dari metode heuristik yang sering digunakan dalam permasalahan optimasi, diantaranya adalah algoritma genetika, algoritma pencarian tabu, jaringan saraf tiruan, algoritma semut dan lain-lain.

2.7 Algoritma Floyd Warshall

  Algoritma Floyd-Warshall adalah sebuah algoritma analisis graf untuk mencari bobot minimum dari graf berarah. Dalam satu kali eksekusi algoritma, akan didapatkan jarak sebagai jumlah bobot dari lintasan terpendek antar setiap pasang simpul tanpa memperhitungkan informasi mengenai simpul-simpul yang dilaluinya. Algoritma ini yang juga dikenal dengan nama Roy- Floyd. Dalam pengertian lain Algoritma Floyd-Warshall adalah suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu. (Novandi.R.A.D., 2007) Algoritma Floyd-Warshall ini akan memilih satu jalur terpendek dan teraman dari beberapa alternatif jalur yang telah dihasilkan dari proses kalkulasi. (Sukrisno A.T dan Rachman A., 2007) Hal yang membedakan pencarian solusi menggunakan algoritma Floyd-Warshall dengan algoritma Dijkstra adalah bahwa keputusan yang diambil pada tiap tahap pada algoritma Dijkstra hanya berdasarkan pada informasi yang terbatas sehingga nilai optimum yang diperoleh pada saat itu tidak memikirkan konsekuensi yang akan terjadi seandainya kita memilih suatu keputusan pada suatu tahap. Dalam beberapa kasus, algoritma Dijkstra gagal memberikan solusi terbaik karena kelemahan yang dimilikinya tadi. Di sinilah peran algoritma Floyd-Warshall yang mencoba untuk memberikan solusi yang memiliki pemikiran terhadap konsekuensi yang ditimbulkan dari pengambilan keputusan pada suatu tahap. Algoritma Floyd-Warshall mampu mengurangi perhitungan yang tidak mengarah ke solusi. Prinsip yang dipegang oleh algoritma Floyd- Warshall adalah prinsip optimalitas, yaitu jika solusi total optimal, maka bagian solusi sampai

  suatu tahap (misalnya tahap ke-i) juga optimal. (Novandi.R.A.D., 2007)

2.7.1 Karakteristik Algoritma Floyd-Warshall

  Beberapa karakteristik yang dimiliki oleh algoritma Floyd-Warshall antara lain: 1. Persoalan dibagi atas beberap tahap, yang setiap tahapnya hanya akan diambil satu keputusan.

  2. Masing-masing tahap terdiri atas sejumlah status yang saling berhubungan dengan status tersebut. Status yang dimaksud di sini adalah berbagai kemungkinan masukan yang ada pada tahap tersebut.

  3. Ketika masuk ke suatu tahap, hasil keputusan akan transformasi.

  4. Bobot pada suatu tahap akan meningkat secara teratur seiring bertambahnya jumlah tahapan.

  5. Bobot yang ada pada suatu tahap tergantung dari bobot tahapan yang telah berjalan dan bobot pada tahap itu sendiri.

  6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan pada tahap sebelumnya.

  7. Terdapat hubungan rekursif yang menyatakan bahwa keputusan terbaik dalam setiap status pada tahap k akan memberikan keputusan terbaik untuk setiap status pada tahap k + 1.

  8. Prinsip optimalitas berlaku pada persoalan yang dimaksud.

  2.7.2 Pseudocode Algoritma Floyd Warshall Pseudo-code algoritma Floyd Warshall adalah sebagai berikut: function fw(int[1..n,1..n] graph) {

  // Inisialisasi var int[1..n,1..n] jarak := graph var int[1..n,1..n] sebelum for i from 1 to n for j from 1 to n if jarak[i,j] < Tak-hingga sebelum[i,j] := i // Perulangan utama pada algoritma for k from 1 to n for i from 1 to n for j from 1 to n if jarak[i,j] > jarak[i,k] + jarak[k,j] jarak[i,j] = jarak[i,k] + jarak[k,j] sebelum[i,j] = sebelum[k,j] return jarak }

2.8 JavaScript

  JavaScript adalah bahasa pemograman web. Sebagian besar situs web modern menggunakan JavaScript, dan semua web browser modern-on desktop,konsol game, tablet, dan smartphone juga menggunakan JavaScript. Hal tersebut membuat JavaScript menjadi bagasa pemograman yang paling banyak digunakan dimana-mana dalam sejarah pengembangannya. JavaScript adalah bagian dari perkembangan teknologi yang semua pengembang web harus mendalaminya. HTML untuk menentukan isi web halaman, CSS untuk menentukan presentasi dari halaman tersebut, dan JavaScript untuk menentukan prilaku mereka (Flanagan,2012). Program JavaScript yang ditulis menggunakan karakter Unicode yang di tetapkan. Unicode merupakan superset dari ASCII dan Latin dan mendukung hamper pada setiap bahasa pemograman yang ada.

2.9 GIS (Geographic Information System)

  

GIS (Geographic Information System) adalah sistem yang bekerja dengan data yang tereferensi

  secara spasial atau koordinat-koordinat geografi (Ilham.R,Soetedjo.A& Faisol.A, 2011). Sistem ini mampu untuk mengolah data dan melakukan opreasi tertentu dengan menampilan dan menganalisa data. Aplikasi GIS ini menjadi beragam jenis aplikasinya. Selain jumlah aplikasinya yang juga bertambah. Kedepannya pengembangan aplikasi ini merambah ke aplikasi berbasis jaringan yang dikenal dengan web GIS. Ini dikarenakan lingkungan jaringan merupakan tempat subur berkembangnya geoinformasi. Contohnya adalah peta sebuah kota secara online yang tidak mengenal batas geografi penggunaannya.

  Tujuan pokok dari pemanfaatan GIS adalah untuk mempermudah mendapatkan informasi yang telah diolah dan tersimpan sebagai atribut suatu lokasi atau obyek. Ciri utama data yang bisa dimanfaatkan dalam GIS adalah data yang telah terikat dengan lokasi dan merupakan data dasar yang belum dispesifikasi. Data-data yang diolah dalam GIS pada dasarnya terdiri dari data spasial dan data atribut dalam bentuk digital, dengan demikian analisis yang dapat digunakan adalah analisis spasial dan analisis atribut. Data spasial merupakan data yang berkaitan dengan lokasi keruangan yang umumnya berbentuk peta. Sedangkan data atribut merupakan data tabel yang berfungsi menjelaskan keberadaan berbagai objek sebagai data spasial.

  Penyajian data spasial mempunyai tiga cara dasar yaitu dalam bentuk titik, bentuk garis dan bentuk area (polygon). Titik merupakan kenampakan tunggal dari sepasang koordinat x,y yang menunjukkan lokasi suatu obyek berupa ketinggian, lokasi kota, lokasi pengambilan sample dan lain-lain. Garis merupakan sekumpulan titik-titik yang membentuk suatu kenampakan memanjang seperti sungai, jalan, kontus dan lain-lain. Sedangkan area adalah kenampakan yang dibatasi oleh suatu garis yang membentuk suatu ruang homogen, misalnya: batas daerah, batas penggunaan lahan, pulau dan lain sebagainya. Struktur data spasial dibagi dua yaitu model data raster dan model data vektor. Data raster adalah data yang disimpan dalam bentuk kotak segi empat (grid)/sel sehingga terbentuk suatu ruang yang teratur. Data vektor adalah data yang direkam dalam bentuk koordinat titik yang menampilkan, menempatkan dan menyimpan data spasial dengan menggunakan titik, garis atau area (polygon). Bentuk produk suatu GIS dapat bervariasi baik dalam hal kualitas, keakuratan dan kemudahan pemakainya. Hasil ini dapat dibuat dalam bentuk peta-peta, tabel angka-angka: teks di atas kertas atau media lain (hard copy), atau dalam cetak lunak (seperti file elektronik). Didalam GIS data dipelihara berbentuk digital sehingga data ini lebih padat dibanding dalam bentuk peta cetak, tabel atau dalam bentuk konvensional lainnya yang akhirnya akan mempercepat pekerjaan dan meringankan biaya yang diperlukan.

  Sarana utama untuk penanganan data spasial adalah GIS. GIS didesain untuk menerima data spasial dalam jumlah besar dari berbagai sumber dan mengintergrasikannya menjadi sebuah informasi, salah satu jenis data ini adalah data pengindraan jauh. Pengindraan jauh mempunyai kemampuan menghasilkan data spasial yang susunan geometrinya mendekati keadaan sebenarnya dengan cepat dan dalam jumlah besar. Barus dan Wiradisastra (2000) mengatakan bahwa GIS akan memberi nilai tambah pada kemampuan pengindraan jauh dalam menghasilkan data spasial yang besar dimana pemanfaatan data pengindraan jauh tersebut tergantung pada cara penanganan dan pengolahan data yang akan mengubahnya menjadi informasi yang berguna.

2.10 Google-Map API

  Google Map API merupakan aplikasi interface yang dapat diakses lewat javascript agar Google Map dapat ditampilkan pada halaman web yang sedang kita bangun. Untuk dapat mengakses Google Map, Kita harus melakukan pendaftaran API Key terlebih dahulu dengan data

  Maps dalam web kita sendiri dengan Google Maps API. Google Maps API adalah library JavaScript. Dengan menggunakan google maps API, kita dapat menghemat waktu dan biaya untuk membangun aplikasi peta digital yang handal, karena pemogram hanya focus pada data-data yang akan dikostumisasikan saja.

2.11 Penelitian Terdahulu

  Dalam melakukan penelitian, penulis membutuhkan beberapa bahan penelitian yang sudah pernah dilakukan peneliti-peneliti lainnya mengenai masalah penentuan jarak terpendek dengan algoritma Floyd Warshall. Sondang stg (2010) telah mencoba membandingkan algoritma dijkstra dan Floyd-warshall dalam penelitian untuk pemilihan rute terpendek jaringan jalan. Irwan iftadi (2011) telah mencoba melakukan perancangan peta evakuasi menggunakan algoritma Floyd-warshall untuk penentuan lintasan terpendek. Untuk penelitian yang dilalkukan oleh peneliti sebelumnya dapat dilihat pada tabel berikut

Tabel 2.1. Tabel Penelitian Terdahulu No Peneliti Judul Penelitian

  1 Sondang stg Perbandingan Algoritma Dijksatra Dan Floyd-Warshall (2010) Dalam Pemilihan Rute Terpendek Jaringan Jalan

  2 Irwan Iftadi Perancangan Peta Evakuasi Menggunakan (2011) AlgoritmaFloyd - Warshall untuk Penentuan Lintasan

  Terpendek