Analisis Asimtotik Dan Real Time Menggunakan Algoritma S-Dial Untuk Menentukan Jarak Terpendek Antar Kantor Kepolisian Di Medan

5

BAB 2
LANDASAN TEORI

2.1

Pengertian Algoritma

Algoritma adalah urutan logis langkah-langkah penyelesaian yang disusun secara
sistematis. Meskipun algoritma sering dikaitkan dengan ilmu komputer, namun
sesungguhnya dalam kehidupan sehari-hari banyak kegiatan manusia yang berkaitan
erat dengan algoritma [Munir, R. 2007: 176].

2.1.1

Sifat Algoritma

Menurut (Suarga, 2012 : 4) sifat utama suatu algortima adalah sebagai berikut:
1. Input: suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan,
bisa berupa nilai-nilai peubah yang diambil dari himpunan khusus.

2. Output: suatu algoritma akan menghasilkan output setelah dilaksanakan, atau
algoritma akan mengubah kondisi awal menjadi kondisi akhir, di mana nilai
output diperoleh dari nilai input yang telah diperoses melalui algoritma.
3. Definiteness: langkah-langkah yang dituliskan dalam algoritma terdefinisi
dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma.
4. Finiteness: suatu algoritma harus memberi kondisi akhir atau output setelah
sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi
awal atau input yang diberikan.
5. Effectiveness: setiap langkah dalam algoritma bisa dilaksanakan dalam suatu
selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai yang
diharapkan.

Universitas Sumatera Utara

6

6. Generality: langkah-langkah algoritma berlaku untuk setiap himpunan input
yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan
tertentu.


2.2

Teori Dasar Graf

Secara dasar graf adalah suatu diagram yang memuat informasi tertentu jika
direpresentasikan secara tepat. Suatu graf terdiri dari 2 himpunan yang berhingga,
yaitu himpunan titik-titik tidak kosong (simbol V(G)) dan himpunan garis-garis
(simbol E(G)) [Siang, Jong Jek. 2009: 217].

Biasa nya, sebuah graf G = (V,E) didefinisikan dengan sepasang himpunan
dimana sebuah himpunan terhingga tak kosong anggota V disebut titik (vertices) dan
himpunan E dari setiap pasangan anggotanya disebut garis (edge) [Levitin, A. 2012:
28].

2.2.1 Jenis-Jenis Graf
Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung pada sudut
pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada
tidaknya sisi ganda atau sisi kalang (loop), berdasarkan jumlah simpul, atau
berdasarkan orientasi arah pada sisi. Berdasarkan ada tidaknya gelang atau sisi ganda
pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis (Munir,

Rinaldi. 2007 : 357).

1.

Graf Tidak Berarah.

Sebuah graf G disebut tidak berarah jika setiap garisnya tidak memiliki arah, sehingga
nilai pasangan titik (u,v) sama dengan nilai pasangan titik (v,u). Jadi ketika
menuliskan titik (u,v) sama dengan titik (v,u), kita misalkan titik u terhubung dengan
titik v dan mereka terhubung dengan garis (u,v) yang tidak berarah maka dapat
dinyatakan bahwa titik u insidensial terhadap titik v begitu juga sebaliknya [Levitin,
A. 2012: 28].

Universitas Sumatera Utara

7

a

c


b

d

e

f

Gambar 2.1 Graf Tidak Berarah

Gambar 8.1 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah:
V = {a,b,c,d,e,f}
E = {(a,c), (a,d), (b,c), (b,f), (c,e), (d,e), (e,f)}

2.

Graf Berarah

Sebuah graf G disebut berarah jika setiap garisnya memiliki arah, sehingga nilai

pasangan titik (u,v) tidak sama dengan nilai pasangan titik (v,u). Dapat dinyatakan
bahwa garis(u,v) diarahkan dari titik u yang disebut sebagai ekor garis (edge’s tail)
menuju titik v yang disebut kepala garis (edge’s head) [Levitin, A. 2012: 28].
a

c

b

d

e

f

Gambar 2.2 Graf Berarah

Universitas Sumatera Utara

8


Gambar 8.2 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah:
V= {a,b,c,d,e,f}
E = {(a,c), (b,c), (b,f), (c,e), (d,a), (d,e), (e,c), (e,f)}

3.

Graf Berlabel

Hubungan antara titik-titik dalam graf kadang-kadang perlu diperjelas. Hubungannya
tidak cukup hanya menunjukkan titik-titik mana yang berhubungan langsung, tetapi
seberapa kuatkah hubungan itu. Dalam aplikasinya, bobot suatu garis lebih tepat
dibaca sebagai “jarak”, “biaya”, “panjang”, “kapasitas”, dan lain-lain. Label suatu
garis dapat diberikan pada graf berarah maupun tidak berarah. Jika diberikan pada
graf tidak berarah, maka grafnya disebut graf berlabel. Sedangkan jika diberikan pada
graf berarah, maka graf nya disebut graf berarah berlabel [Siang, Jong Jek. 2009: 290291].
2

3
a


c

3

b

4

1

2
d

5
e

f

Gambar 2.3 Graf Berlabel


2.3

Representasi Graf

Graf dalam pengaplikasiannya pada algoritma komputasi, biasanya diimplementasikan
dalam 2 cara yaitu adjecency matrix dan adjecency list. Serta pengaplikasian bobot
dapat diimplementasikan dengan matriks bobot.

a. Adjecency matrix
Adjecency matrix dari suatu graf dengan n titik di terjemahkan menjadi n x n matriks
boolean dengan satu baris dan satu kolom untuk setiap titik graf, untuk setiap element
pada baris ke-i dan kolom ke-j adalah 1 jika ada garis yang terhubung dari titik i ke
titik j, dan bernilai 0 jika tidak ada hubungan antara keduanya [Levitin, A. 2012: 29].

Universitas Sumatera Utara

9

Gambar 2.4 Matriks Hubung


b. Adjecency list
Adjecency list dari graf berarah atau graf tidak berarah adalah kumpulan dari linked
list, dimana satu list untuk setiap titik, yang mengandung semua titik yang terhubung
dengan titik-titik list [Levitin, A. 2012: 29].

a

c

d

b

c

f

c


a

b

d

a

e

e

c

d

f

b


e

e

f

Gambar 2.5 Adjecency List

c. Matriks bobot dan list bobot
Graf berbobot direpresentasikan dengan matriks bobot yang element di dalamnya
A[i,j] akan mengandung bobot garis dari jarak titik i ke titik j jika kedua titik tersebut
terhubung dan bernilai ∞ jika tidak ada garis yang menghubungkan keduanya. List
bobot untuk graf berbobot terdiri atas nama atau label titik yang terhubung dengan
titik asal dan bobot dari garis yang menghubungkan kedua titiknya [Levitin, A. 2012:
30].

Universitas Sumatera Utara

10

Gambar 2.5 Matriks Bobot

a

c, 3

d, 3

b

c, 2

f, 1

c

a, 3

b, 2

d

a, 3

e, 2

e

c, 4

d, 2

f

b, 1

e, 5

e, 4

f, 5

Gambar 2.6 List Bobot

2.4

Algoritma S-Dial

Algoritma S-Dial menggunakan dan memanfaatkan metode bucked untuk array Q,
dapat dilihat element di dalamnya berupa panjang arah panah garis antar titik bernilai
bilangan bulat non negatif. Pemanfaatan bucked di algoritma ini adalah untuk
menseleksi dan mengurutkan prioritas nilai titik dalam SPT(shortest path tree)
[Giorgio, G & Steffano, P. 1988: 27].

Bucked adalah salah satu struktur data yang populer digunakan untuk
mempertahankan komponen dalam tumpukan prioritas. Algoritma S-Dial dianggap
sebagai implementasi dari priority queue. Sebuah priority queue adalah struktur data
yang digunakan untuk menyimpan kumpuan dari element-element yang berlabel
dalam urutan-urutan tertentu atau tidak terurut sama sekali [Francois, Jean Mondou.et
al. 1991: 773].

Universitas Sumatera Utara

11

Q

V

1
2
3
.
.
.
k-1
k
Gambar 2.7 Struktur Data Bucked

2.5

Asimtotik

Notasi yang digunakan untuk menggambarkan waktu tempuh (running time) asimtotik
dari sebuah algoritma didefinisikan dalam fungsi yang mana domainnya adalah
himpunan bilangan N = {0, 1, 2, . . .}. Notasi tersebut mudah untuk menggambarkan
keadaan terburuk (worst-case) waktu tempuh fungsi T(n) biasanya diartikan hanya
pada ukuran integer.

Fungsi yang diterapkan notasi asimtotik biasanya akan mencirikan waktu
tempuhnya algoritma. Tapi notasi asimtotik dapat berlaku pada fungsi yang menjadi
ciri beberapa aspek lain dari algortima (misalnya jumlah ruang yang mereka gunakan)
bahkan untuk fungsi yang sama sekali tidak dapat dilakukan oleh algoritma [Cormen
et al., 2009 : 43-44].

Universitas Sumatera Utara

12

2.6

Kompleksitas Algoritma

Pada bagian ini suatu algoritma dapat ditinjau efisiensinya, terdapat 2 jenin efisiensi
yang dapat diaplikasikan yaitu efisiensi waktu (time efficiency) dan efisiensi ruang
(space efficiensy). Efisiensi waktu juga disebut time complexity yang mengindikasikan
seberapa cepat sebuah algoritma tersebut berjalan. Efisiensi ruang juga disebut space
complexity yang mengacu pada jumlah satuan memory yang diperlukan oleh sebuah
algoritma terkecuali ruang yang diperlukan untuk input dan output. Adalah suatu hal
yang penting untuk mencari efesiensi suatu algoritma karena dari efesiensi dapat
dilihat kekurangan dan kelebihan algoritma terhadap beberapa entitas yang
mempengaruhinya. Efesiensi algoritma didefenisikan dengan parameter n, dimana n
adalah nilai input dari suatu algoritma. Parameter tersebut akan dihidangkan dengan
polinomial p(n) = axnx + ... + a0 dengan degree n [Levitin, A. 2012: 42-43].

2.7

Lintasan Terpendek (Shortest Path)

Bobot yang berhubungan dengan suatu garis pada graf juga dapat diaplikasikan pada
graf berarah. Prinsip dan arti bobot pada graf berarah sama dengan bobot pada graf
tidak berarah, yaitu menyatakan seberapa kuat hubungan antara 2 titik yang arahnya
ditunjukan dengan arah garis. Sehingga akan didapatkan nilai minimum dari
hubungan antar titik [Siang, Jong Jek. 2009: 300].

2.8

Diagram isikawa

Dalam mengidentifikasi suatu masalah dapat menggunakan diagram ishikawa
(fishbone diagram). Diagram ishikawa merupakan suatu alat visual untuk
mengidentifikasi, mengeksplorasi, dan secara grafik menggambarkan secara detail
semua penyebab yang berhubungan dengan suatu permasalahan. Diagram ishikawa
bentuknya menyerupai kerangka tulang ikan yang bagian-bagiannya meliputi kepala,
sirip dan duri dimana di gambarkan seperti susunan tulang ikan yang terbagi atas dua
bagian yaitu bagian kepala ikan yang merupakan masalah, bagian utama tulang
belakang merupakan kemungkinan-kemungkinan penyebab masalah [Jeffery, 2004].

Universitas Sumatera Utara