Anda di halaman 1dari 12

11

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 Jafar Muhammad ibnu Musa alKhuwarizmi (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

18

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

19

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 Berbobot


Gambar 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 Berbobot


Gambar 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.

20

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.

21

Asumsi yang digunakan disini adalah bahwa semua bobot bernilai positif. Kata terpendek
jangan selalu diartikan secara fisik sebagai panjang minimum, sebab kata terpendek berbedabeda 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
menggunakan perhitungan kecerdasan buatan.

22

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 BellmanFord.
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 RoyFloyd.
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

23

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 FloydWarshall 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.

24

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

25

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

26

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
pendaftaran berupa nama domain web yang kita bangun.. Kita dapat menambahkan fitur Google

27

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

Sondang stg

Perbandingan Algoritma Dijksatra Dan Floyd-Warshall

(2010)

Irwan Iftadi
(2011)

Dalam Pemilihan Rute Terpendek Jaringan Jalan

Perancangan

Peta

Evakuasi

Menggunakan

AlgoritmaFloyd - Warshall untuk Penentuan Lintasan


Terpendek

Anda mungkin juga menyukai