BAB 2
LANDASAN TEORI
2.1
TEORI
GRAF
2.1.1
Definisi
Definisi 2.1
(Munir, 2009,
p356)
Secara  matematis,  graf
G
didefinisikan  sebagai  pasangan 
himpunan 
(V,E),
ditulis
dengan
notasi
G
=
(V,E),
yang dalam hal
ini
V
adalah
himpunan
tidak
kosong
dari
simpul-sumpul 
(vertices
atau  node)  dan  E
adalah 
himpunan  sisi
(edges
atau
arcs) yang
menghubungkan
simpul.
Secara
geometri  graf
digambarkan 
sebagai  sekumpulan 
noktah
(simpul)  di
dalam
bidang kartesius
yang dihubungkan
dengan sekumpulan
garis (sisi).
Gambar 2.1 Graf
(Munir, 2009, p356)
  
8
Gambar
di halaman
sebelumnya
menunjukkan
sebuah graf G dengan:
•  V = {1,2,3,4}
•  E = {(1,2)
,
(2,3)
,
(1,3)
,
(1,3)
,
(2,4)
,
(3,4)
,
(3,4)}
=
{
e1
,
e
2
,
e
3
,
e
4
,
e
5
,
e
6
,
e
7
}
2.1.2
Jenis-jenis
Graf
Berdasarkan  arah
dan
bobotnya,
graf
dibagi
menjadi
empat
bagian
sebagai
berikut.
1.   Graf berarah
dan berbobot: tiap edges mempunyai arah dan bobot
Gambar 2.2 Graf berarah
dan berbobot
Gambar  2.2  menunjukkan 
graf  berarah  dan  berbobot 
yang  terdiri  dari
tujuh
simpul
(vertices),
yaitu
A,B,C,D,E,F,G.
Verteks
A
mempunyai
arah
ke
verteks B
dan
verteks
C,
verteks
B
mempunyai
arah
ke
verteks
D
dan
verteks    E,    dan    seterusnya.    Bobot    antara    satu    verteks    dengan
verteks lain
juga
diketahui.
  
9
2.   Graf
tidak
berarah
dan
berbobot:
tiap
edges
tidak
mempunyai
arah
tetapi
mempunyai
bobot
(nilai).
Gambar
2.3 Graf tidak
berarah
dan berbobot
Gambar  2.3
menunjukkan 
graf
tidak
berarah
dan
berbobot 
yang
terdiri
dari
tujuh
titik
(vertices),  yaitu
A,B,C,D,E,F,G. 
Verteks
A
tidak
mempunyai  arah  ke  verteks  B  maupun 
ke  verteks  C, 
tetapi 
memiliki
bobot
pada edgenya,
begitu
juga yang terjadi
dengan
verteks-
verteks
lainnnya.
3.   Graf
berarah
dan
tidak
berbobot:
tiap
edges
mempunyai
arah
tetapi
tidak
mempunyai
bobot
(nilai).
Gambar
2.4 Graf berarah dan tidak
berbobot
  
10
Gambar  2.4
menunjukkan 
graf
berarah  dan
tidak
berbobot  yang
terdiri
dari
tujuh  titik
(vertices), 
yaitu
A,B,C,D,E,F,G. 
Verteks 
A
mempunyai
arah
ke
verteks
B dan
verteks
C,
tetapi
tidak
memiliki
bobot
untuk
setiap
edgenya.
4.   Graf
tidak berarah dan
tidak
berbobot
:
Gambar
2.5 Graf tidak
berarah
dan tidak
berbobot
Gambar 
2.5
menunjukkan  graf  tidak  berarah 
dan
tidak
berbobot  yang
terdiri
dari
tujuh
titik
(vertices),
yaitu
A,B,C,D,E,F,G.
Verteks
A tidak
mempunyai 
arah  ke 
verteks  B  dan  verteks  C, 
verteks 
juga 
tidak
memiliki
arah
dengan
verteks
D
dan
verteks
B,
begitu
juga
yang
terjadi
dengan
verteks-verteks
lainnya. Setiap
edge
tidak memiliki
nilai.
2.1.2
Representasi
Graf
Suatu 
graf 
dapat  direpresentasikan 
ke  beberapa 
bentuk.  Representasi 
graf
dapat
digunakan
untuk
mengimplementasikan
graf
tersebut
ke
dalam
bentuk
tertentu,
sehingga
dapat digunakan
pada berbagai
kasus yang
berbeda.
  
11
Gambar
2.6 Contoh Graf ABCDEFG
Representasi
graf yang
sering digunakan adalah sebagai berikut.
a.
Matriks
Kedekatan
(Adjacency Matrix)
Untuk
suatu
graf
dengan
jumlah
simpul
sebanyak
n, maka
matriks
kedekatan
mempunyai
ukuran
n
x n (n
baris
dan
n kolom).
Matriks
kedekatan untuk contoh
graf
ABCDEFG
dapat
dilihat
pada Tabel
2.1.
Tabel
2.1  Matriks kedekatan
graf
ABCDEFG
A
B
C
D
E
F
G
A
0
1
1
0
0
0
0
B
1
0
0
1
1
0
0
C
1
0
0
1
0
1
0
D
0
1
1
0
0
0
1
E
0
1
0
0
0
0
1
F
0
0
1
0
0
0
1
G
0
0
0
0
1
1
0
  
12
b.
Matriks
Bersisian
(Incidency Matrix)
Untuk
suatu
graf
dengan
jumlah
simpul
sebanyak
n dan
jumlah
sisi
sebanyak
m,
maka
matriks
kedekatan
mempunyai
ukuran
n
x
m
(n
baris
dan  m
kolom).  Matriks 
bersisian 
untuk  graf  ABCDEFG  dapat  dilihat
pada tabel 2.2.
Tabel 2.2 
Matriks
bersisian graf ABCDEFG
e1
e2
e
3
e
4
e
5
e
6
e
7
e
8
e
9
A
1
1
0
0
0
0
0
0
0
B
1
0
1
1
0
0
0
0
0
C
0
1
0
0
1
1
0
0
0
D
0
0
0
1
1
0
0
1
0
E
0
0
1
0
0
0
1
0
0
F
0
0
0
0
0
1
0
0
1
G
0
0
0
0
0
0
1
0
1
c.
List
Kedekatan (Adjacency
List)
Simpul
x
dapat
dianggap
sebagai
suatu
list
yang
terdiri
dari
simpul
pada
graf
yang
berdekatan 
dengan  x.
Adjacency  list
untuk
graf
ABCDEFG
dapat
dilihat
pada gambar
di bawah
ini.
Tabel 2.3 Adjacency List
graf ABCDEFG
A
B,C
B
A,D,E
  
13
C
A,D,F
D
B,C,E,F,G
E
B,G
F
C,G
G
D,E,F
2.1.3
Graf  Euler dan Graf 
Hamilton
Definisi 2.2
(
Munir , 2009 , p404
)
Lintasan
Euler
ialah
lintasan
yang
melalui
masing-masing
sisi
di
dalam
graf
tepat
satu
kali.
Bila
lintasan
tersebut
kembali
ke simpul
asal,
membentuk
lintasan
tertutup  (sirkuit),  maka  lintasan  tertutup  itu
dinamakan 
sirkuit 
Euler.  Jadi,
sirkuit
Euler ialah
sirkuit
melewati
masing-masing
sisi
tepat satu
kali.
Gambar 2.7 Lintasan Euler
(Munir, 2009, p404)
Lintasan Euler pada Gambar 2.7:  3, 1, 2, 3, 4, 1.
  
14
Gambar
2.8 Sirkuit
Euler (Munir,
2009,
p405)
Sirkuit Euler
pada Gambar 2.8: 1, 2,
3,
4, 7,
3, 5,
7, 6,
5, 2, 6, 1.
Definisi 2.3
(
Munir , 2009 , p408
)
Lintasan
Hamilton
ialah
lintasan
yang melalui
tiap
simpul
di dalam
graf
tepat
satu  kali. 
Bila 
lintasan  itu 
kembali 
ke 
simpul 
asal  membentuk 
lintasan 
tertutup
(sirkuit),
maka
lintasan
tertutup
itu dinamakan
sirkuit
Hamilton.
Dengan
kata lain,
sirkuit
Hamilton
ialah
sirkuit
yang
melalui
tiap
simpul
di
dalam
graf
tepat
satu
kali,
kecuali simpul
asal
(sekaligus simpul
akhir)
yang
dilalui dua
kali.
Gambar 2.9 Lintasan Hamilton (Munir,
2009, p409)
  
15
Gambar 2.10 Sirkuit
Hamilton
(Munir, 2009, p409)
2.2
OPTIMASI
2.2.1
Definisi Masalah
Optimasi
Optimasi 
ialah
suatu
proses 
untuk  mencapai 
hasil
yang
ideal
atau
optimal
(nilai
efektif
yang
dapat
dicapai).
Dalam
disiplin
matematika
optimasi
merujuk
pada
studi
permasalahan
yang
mencoba
untuk
mencari
nilai
minimal
atau
maksimal
dari
suatu
fungsi
riil. Untuk
dapat
mencapai
nilai
minimal
atau
maksimal
tersebut,
secara
sistimatis
dilakukan
pemilihan
nilai
variabel
bilangan
bulat
atau
riil yang
akan
memberikan
solusi
optimal.
2.2.2
Macam-macam
Permasalahan
Optimasi
Permasalahan
optimasi
mempunyai
hubungan
yang
erat dalam
kehidupan
sehari-hari. 
Nilai 
optimal 
yang 
dapat 
dioptimasi 
dapat 
berupa 
besaran 
waktu,
panjang,
jarak,
dan
jadwal.
Berikut
ini adalah
beberapa
contoh
dari
permasalahan
optimasi.
  
16
1.   Travelling Salesman Problem
Sebuah 
permasalahan 
dalam  menentukan 
lintasan  terpendek 
dari  suatu
kota
menuju seluruh kota lainnya dan kembali
ke kota
semula.
2.   Quadratic Assignment Problem (QAP)
Sebuah
permasalahan
untuk
mengalokasikan
sejumlah
n
resources
untuk
ditempatkan   pada 
sejumlah 
lokasi 
dengan 
meminimumkan  
biaya
alokasi.
3.   Job Scheduling Problem
(JSP)
Sebuah
permasalahan
untuk
menjadwalkan
sejumlah
j pekerjaan
menggunakan
sejumlah
m
mesin,
sehingga
seluruh
pekerjaan
diselesaikan
dengan waktu yang
minimal.
4.   Pewarnaan
graf.
2.2.3
Permasalahan
Rute Terpendek
Masalah
rute terpendek
merupakan
masalah
yang
berkaitan
dengan
penentuan
edge-edge 
dalam  sebuah  graf  yang  membentuk  rute 
terdekat  antara 
sumber 
dan
tujuan.
Tujuan
dari
permasalahan
rute
terpendek
adalah
mencari
rute
yang
memiliki
jarak terdekat antara
titik asal dan titik tujuan.
  
17
Gambar 2.11
Graph
ABCDEFG
Pada
gambar
2.11
dimisalkan
kota
A
merupakan
kota awal
dan kota
G adalah
kota
tujuan.
Dari
kota awal
sampai
dengan
kota
tujuan,
dapat
dipilih
beberapa
rute
sebagai
berikut.
A?
B
?C
?
D
?
E
?G
A?
B
?C
?
D
?
F
?G
A?
B
?C
?
D
?G
A?
B
?C
?
F
?G
A?
B
?
D
?
E
?G
A?
B
?
D
?
F
?G
A?
B
?
D
?G
A?
B
?
E
?G
A?C
?
D
?
E
?G
A?C
?
D
?
F
?G
A?C
?
D
?G
A?C
?
F
?G
  
18
Berdasarkan 
data  di  halaman 
sebelumnya, 
dapat 
dihitung 
rute  terpendek
dengan
mencari
jarak
antar
rute
tersebut.
Apabila
jarak
antar
rute
belum
diketahui,
jarak 
dapat 
dihitung  
berdasarkan  
koordinat   dari 
kota-kota   tersebut,  
kemudian
dihitung
jarak
yang
paling
pendek
yang dapat
dilalui.
2.2.4
Penyelesaian
Masalah
Optimasi
Secara 
umum, 
penyelesaian 
masalah 
pencarian 
rute  terpendek 
dapat
dilakukan
dengan
menggunakan
dua
metode,
yaitu
metode
konvensional
dan
metode
heuristik.
1.  
Metode  Konvensional 
adalah 
metode 
yang 
menggunakan 
matematika
biasa.
Contoh: 
algoritma 
Djikstra,
algoritma 
Floyd-Warshall,
algoritma
Bellman-Ford.
2.   Metode  
heuristik   adalah 
suatu 
metode 
yang 
merujuk   pada 
metode
komputasi 
yang 
mengoptimasi 
sebuah 
permasalahan 
dengan 
mencoba
secara
iteratif
mencari
kandidat
solusi
sehingga
mendapatkan
yang
paling
optimal.
Contoh:  algoritma genetika
dan algoritma Ant Colony
Optimization.
(I’ing Mutakhiroh,
Indrato, Taufiq
Hidayat,
2007)
  
19
2.3
Travelling Salesman
Problem
Sebuah
permasalahan
dalam
menentukan
lintasan
terpendek
dari suatu
kota
menuju
seluruh
n
kota
lainnya
dan
kembali
ke
kota
semula
dengan
sekali
kunjung
untuk
tiap kota.
Permasalahan
TSP
ini
dapat
dimisalkan
menjadi
persoalan
pada
graph,
yaitu
bagaimana
menentukan
sirkuit
hamilton
yang
memiliki
bobot
paling
minimum
pada
graph
tersebut.
Misalkan
terdapat n buah titik dalam sebuah
graph
lengkap
dengan n verteks , maka
jumlah sirkuit
hamiltonnya
adalah
(
n
-
1
)
!
/
2
Contoh
:
Gambar 2.8 Graf
lengkap
(Munir
,
2009 , p423)
Graph di atas
memiliki ( 4 – 1 ) ! / 2 = 3 sirkuit
hamilton
I1 = (a, b, c, d, a) atau (a, d, c, b, a) ==> panjang
=
10 + 12 + 8 + 15 = 45
  
20
I2 = (a, c, d, b, a) atau (a, b, d, c, a) ==> panjang
=
12 + 5
+
9
+
15 = 41
I3 = (a, c, b, d, a) atau (a, d, b, c, a) ==> panjang
=
10 + 5 + 9 + 8 = 32
Jadi
dari
3
sirkuit
hamilton
yang
telah
didapat,
sirkuit
hamilton
yang
paling
pendek
adalah I3 = (a,
c, b,
d, a) atau
(a,
d,
b, c, a) dengan
panjang
sirkuit
=
10 + 5 +
9
+
8
=
32.
2.4
ALGORITMA
ANT
COLONY
Algoritma  Semut
(Ant
Colony
Algorithm)
merupakan  algoritma
yang
terinspirasi
dari
pengamatan
terhadap
suatu
koloni
semut.
Semut
merupakan
hewan
yang
hidup
sebagai
suatu
kesatuan
dalam koloninya.
Suatu
perilaku
penting
dan
menarik
untuk
ditinjau
dari suatu
koloni
semut
adalah
perilaku
mereka
pada saat
mencari
makan,
terutama
bagaimana
mereka
mampu
menemukan
rute yang
menghubungkan 
antara  sumber 
makanan 
dengan  sarang 
mereka.  Ketika  berjalan
menuju
sumber
makanan
dan
sebaliknya,
semut
meninggalkan
jejak
berupa
suatu
zat
yang 
disebut 
pheromone.
Semut-semut 
dapat 
mencium 
pheromone,
dan 
ketika
memilih
rute
yang
akan
dilalui,
semut
akan
memiliki
kecenderungan
untuk
memilih
rute
yang
memiliki
tingkat konsentrasi pheromone
yang
tinggi.
  
21
Gambar 2.12
Semut
menciptakan
solusi,
dari
sumber menuju tujuan (Dorigo,p10)
Proses
peninggalan
pheromone
ini merupakan
salah
satu
contoh
dari
proses
stigmergy,
yaitu
sebuah
proses
yang
meninggalkan
jejak
pada
lingkungan
oleh
suatu
aksi dan merangsang
perkembangan
pada
aksi berikutnya.
Proses
peninggalan
pheromone
ini sangat
berguna
bagi
semut
yang
memungkinkan
para
semut
untuk
mengingat 
jalan 
pulang 
ke  sarang 
dan 
juga 
memungkinkan 
para 
semut
berkomunikasi
dengan
koloninya.
Seiring
waktu,
bagaimanapun
juga
jejak
dari pheromone
akan
menguap
dan
akan  mengurangi  kekuatan  daya  tariknya.  Lebih  cepat  setiap  semut  pulang 
pergi
melalui
rute tersebut,
maka
pheromone
yang menguap
lebih
sedikit.
Begitu
pula yang
terjadi
dengan
hal
sebaliknya
jika
semut
lebih
lama
pulang
pergi
melalui
rute,
maka
pheromone yang menguap akan lebih
banyak.
2.4.1
Cara
Kerja Algoritma Semut
Semut
secara
alamiah
dapat
mencari
jalan
terpendek
yang menghubungkan
antara
sumber
makanan
dengan
sarangnya.
Untuk
lebih jelasnya
diberikan
contoh
seperti di halaman berikut.
  
22
Gambar 2.13 
Perjalanan semut dari sarang(A)
menuju sumber makanan(E)
Gambar
2.9.a
di atas
menunjukkan
ada
dua
kelompok
semut
yang
sedang
melakukan
perjalanan. 
Kelompok 
yang 
berangkat 
dari 
bawah 
yang 
merupakan
sarang
semut
dan kelompok
lain
yang
berangkat
dari
atas yang
merupakan
sumber
makanan.
Pada
gambar
2.9.b
ada
sebuah
penghalang  (obstacle)
yang
menghalangi
jalur
semut
dan
membagi
jalur
semut
menjadi
2,
yaitu
jalur
kiri  
dan
jalur
kanan.
Semut
dengan
kecepatan
yang
sama
berjalan
sembari
meninggalkan
jejak
pheromone
di  jalan 
yang  telah  dilewatinya.  Gambar  2.9.c 
terlihat 
jumlah 
semut  yang  lebih
banyak
melewati
jalur
yang
kanan,
sehingga
lebih
banyak
jejak pheromone
yang
tertinggal.
Untuk
lebih
mudah
membayangkan
sistem
koloni
semut,
lihatlah
pemodelan
dari
sistem
koloni
semut
seperti gambar yang ada di bawah
ini.
  
23
Gambar
2.14 Permodelan
Sistem
Koloni Semut
Misalkan 
jarak 
antara 
D  dan  H, 
antara  B  dan  H, 
dan  antara 
B  dan  D
(melalui
C)
adalah
sama
besar
yaitu
1.
Misalkan
C
berada
dalam
pertengahan
jalan
antara
D
dan
B
(Gambar
2.10a).
Misalkan
juga
ada
30 semut yang
datang
menuju
B
dari
A,
dan
30
semut
menuju
D
dari
E pada
suatu
waktu 
yang
bergerak
dengan
kecepatan sama, dan setiap
langkah
semut
akan
meninggalkan
jejak pheromone.
Pada
gambar
2.10.b
menunjukkan 
waktu
pada
saat
t=0.
Dalam
keadaan
ini
tidak ada
jejak feromon
sama sekali
pada
seluruh
edge, oleh
karena
itu kemungkinan
untuk
memilih
jalur kanan dan
kiri adalah sama besar.
Pada
gambar
2.10.c
menunjukkan 
waktu
pada
saat
t=1.
Dalam
keadaan
ini
jejak
pheromone
pada
jalur
yang
lebih
pendek
akan
lebih
kuat,
oleh
karena
itu
lebih
banyak
semut
memilih
jalur
kanan, yang
merupakan
jalur
terpendek.
  
24
Semakin
sedikit
semut
yang melalui
suatu
jalur,
maka semakin
sedikit
pula
pheromone
yang
ditinggalkan,
dan pada akhirnya
jejak
pheromon
akan
benar-benar
hilang
ketika tidak ada semut
lagi yang
memilih
jalur tersebut.
2.5
Algoritma Elitist Ant System
Algoritma
Elitist
Ant System
merupakan
pengembangan
dari
algoritma
Ant
System.
Pada 
dasarnya 
algoritma 
Elitist 
Ant 
System 
memiliki 
similiaritas 
atau
kesamaan 
dengan  algoritma  Ant
System  dalam
menyelesaikan  permasalahan  TSP.
Yang
membedakan
antara
keduanya
adalah
pada saat
perhitungan
perubahan
nilai
intensitas 
jejak 
pheromone 
antar  kota.  Pada  algoritma  Elitist
Ant  System 
terjadi
penambahan
sebesar
e
/
L
bs 
pada
edge-edge
yang
merupakan
rute
terbaik,
dimana
e
adalah parameter
yang
menunjukkan
adanya rute terbaik
dan L
bs
adalah
panjang
rute
terbaik.
Dalam 
algoritma   Elitist
Ant 
System,   diperlukan  beberap variabel  dan
langkah-langkah
untuk
menentukan
jalur
terpendek sebagai berikut.
Langkah 1 : Penetapan parameter
dan nilai pheromone
awal
a.
Inisialisasi
harga parameter-parameter
algoritma.
Parameter-parameter
yang diinisilisasikan
adalah:
1.  
Intensitas
jejak
semut
antar kota dan
perubahannya
(t
ij
)
2.  
Banyak kota (n) termasuk x dan y (koordinat)
atau d
ij
(jarak
antar
kota)
  
25
3.  
Penentuan kota berangkat dan kota
tujuan
4.  
Tetapan
siklus-semut
(Q)
5.  
Tetapan
pengendali
intensitas
jejak
semut
(a)
6.
Tetapan
pengendali
visibilitas
(ß)
7.
Visibilitas antar
kota
=
1/d
ij
(?
ij
)
8.
Jumlah semut (m)
9.
Tetapan
penguapan
jejak
semut
(?)
10. Jumlah
siklus
maksimum
(NCmax)
bersifat
tetap
selama algoritma
dijalankan.
sedangkan
t
ij
akan selalu
diperbaharui
harganya
pada
setiap
siklus
algoritma
mulai
dari
siklus
pertama
(NC=1)
sampai
tercapai 
jumlah 
siklus 
maksimum 
(NC=NCmax) 
atau 
sampai
terjadi
konvergensi.
b.
Inisialisasi
titik
pertama
setiap
semut
Pengisian
kota pertama
ke dalam
tabu
list.
Hasil
inisialisasi
kota pertama
semut
pada
langkah
1
harus
diisikan
sebagai
elemen
pertama
tabu
list.
Hasil
dari
langkah
ini
adalah
terisinya
elemen
pertama  tabu
list
setiap
semut
dengan
indeks
kota
pertama.
Langkah 2 : Penyusunan kunjungan
Penyusunan
jalur
kunjungan
setiap
semut
ke
setiap
kota.
Koloni
semut
yang
sudah
terdistribusi
ke
kota
tujuan.
Kemudian
dari
kota
kedua,
masing-masing
koloni
semut
akan
melanjutkan
perjalanan
dengan
memilih
salah
satu
dari
kota-kota
yang
tidak terdapat
pada
tabu k sebagai
kota
tujuan selanjutnya.
Perjalanan
pertama
semut
  
26
akan
mulai
melakukan
perjalanan
dari
kota
pertama
sebagai
kota
asal
dan
salah
satu
kota
lainnya
sebagai
kota
koloni
semut
berlangsung
terus-menerus
hingga 
mencapai
kota
yang
telah
ditentukan.
Jika
s menyatakan
indeks
urutan
kunjungan,
kota
asal
dinyatakan  sebagai 
tabuk(s) dan
kota-kota 
lainnya 
dinyatakan  sebagai 
{N-tabuk},
maka
untuk
menentukan
kota tujuan
digunakan
persamaan
probabilitas
kota untuk
dikunjungi
sebagai
berikut.
=
0, 
untuk
lainnya
dengan i sebagai
indeks
kota
asal dan j sebagai
indeks kota tujuan.
Langkah 3 : Mencari
rute
terbaik
a.
Perhitungan
panjang
jalur
setiap
semut.
Perhitungan  panjang
jalur
tertutup
(length    closed
tour)
atau
L
setiap
semut
dilakukan
setelah
satu siklus
diselesaikan
oleh semua
semut.
Perhitungan
dilakukan berdasarkan
tabu
k     
masing-masing
dengan
persamaan
berikut:
dengan
d
ij 
adalah
jarak
antara
kota
i
ke
kota
j
yang
dihitung
berdasarkan
persamaan
:
  
27
b.
Perhitungan
rute terpendek
Setelah  
L
k   
setiap   semut  
dihitung,  
akan  
diperoleh  
harga   minimal
panjang
jalur 
tertutup
setiap
siklus
atau
LminNC
dan harga
minimal
panjang jalur tertutup secara
keseluruhan
adalah atau Lmin.
Langkah 4 : Perubahan
Intensitas Pheromone
Perhitungan
harga
intensitas
jejak
kaki semut
antar
kota untuk
siklus
selanjutnya.
Harga
intensitas
jejak
kaki
semut
antar
kota
pada
semua
lintasan
antar
kota
ada
kemungkinan 
berubah, 
karena 
adanya 
penguapan 
dan
perbedaan 
jumlah
semut
yang melewati.
Untuk
siklus
selanjutnya,
semut
yang akan
melewati
lintasan
tersebut
harga
intensitasnya 
telah
berubah.
Harga
intensitas
jejak
kaki
semut
antar
kota
untuk
siklus selanjutnya
dihitung
dengan
persamaan:
dengan  
adalah perubahan harga
intensitas
jejak pheromone antar
kota
setiap semut
dan 
yang
dihitung berdasarkan
persamaan 
     dan
untuk edge
yang memiliki
tur terbaik
lainnya
Langkah 5 : Penyelesaian
Tabu  list  dikosongkan kembali untuk diisi
dengan  urutan  titik 
baru  pada
iterasi 
selanjutnya, 
jika 
NCmax 
belum 
tercapai 
atau 
belum 
terjadi 
konvergensi
(semua
semut
hanya
menemukan
satu
tour
yang
sama
dengan jarak
yang
sama
pula).
Algoritma
diulang
lagi dari
langkah
2
dengan
harga
parameter
intensitas
pheromone
  
28
antar
titik
yang
sudah
diperbaharui.
Perhitungan
akan
dilanjutkan
hingga
semut
telah
menyelesaikan 
perjalanannya 
mengunjungi 
tiap-tiap 
titik.  Hal 
ini  akan 
berulang
hingga 
sesuai 
dengan 
NCmax 
yang 
telah 
ditentukan 
atau  telah 
mencapai
konvergensi.
Kemudian
akan
ditentukan
jarak
terpendek
dari
masing-masing
iterasi.
Jarak 
terpendek 
inilah 
yang 
merupakan 
solusi 
terbaik 
dari 
algoritma 
Elitist  Ant
System.
2.6       Software Engineering
(Rekayasa
Piranti Lunak)
Menurut
Fritz
Bauer
(Pressman,
2001,
p19), rekayasa
piranti
lunak
adalah
penetapan 
dan 
pemakaian 
prinsip-prinsip 
rekayasa 
dengan 
tujuan 
mendapatkan
piranti
lunak
yang
ekonomis,
terpercaya,
dan bekerja
efisien
pada
mesin
yang
sebenarnya (komputer).
Rekayasa
piranti
lunak
terbagi
menjadi
3 lapisan
yang
mampu
mengontrol
kualitas
dari
piranti
lunak
(Pressman, 2001,
p19),
yaitu:
a.   Proses
(Process)
Proses
merupakan
lapisan
paling
dasar
dalam
rekayasa
piranti
lunak.
Proses
dari rekayasa
piranti
lunak
adalah
perekat
yang
menyatukan
lapisan-lapisan
teknologi
dan
memungkinkan
pengembangan
yang
rasional
dan
periodik
dari
pirantik lunak komputer.
b.   Metode (Methods)
Metode
dari rekayasa
piranti
lunak
menyediakan
secara
teknis
bagaimana
membangun  sebuah
piranti
lunak.
Metode
meliputi
sekumpulan  tugas
yang
  
29
luas,
termasuk
di dalamnya
analisis
kebutuhan,
perancangan,
konstruksi
program,
pengujian,
dan pemeliharaan.
Metode
dari rekayasa
piranti
lunak
bergantung
pada
sekumpulan
prinsip
dasar
masing-masing
area
teknologi
dan
memasukkan
pemodelan aktivitas, serta
teknik
deskriptif
lainnya.
c.   Alat Bantu (Tools)
Alat
bantu
dari rekayasa
piranti
lunak
menyediakan
dukungan
otomatis
atau
semi 
otomatis 
untuk 
proses 
dan 
metode. 
Ketika 
alat 
bantu 
diintegrasi,
informasi
akan
diciptakan
oleh
sebuah
alat
bantu
yang
dapat
digunakan
oleh
lainnnya,
sebuah
sistem
untuk
mendukung
pengembangan
piranti
lunak,
yang
juga disebut
computer-aided
software
engingeering(CASE).
CASE
menggabungkan 
piranti 
lunak,  perangkat  keras,  dan
database  piranti 
lunak
untuk 
menciptakan 
lingkungan 
rekayasa 
piranti
lunak
yang
sejalan  dengan
CAD
/
CAE
(computer-aided design/engineering)
untuk perangkat
keras.
Dalam
perancangan
piranti
lunak,
dikenal
linear
sequential
model
atau yang
lebih
dikenal
dengan
sebutan
classic
life cycle
atau waterfall
model.
Model
ini
menyarankan   pendekatan   yang 
sistematik 
dan 
berurutan 
dalam 
pengembangan
piranti 
lunak  yang 
melalui 
analisis, 
desain, 
pengkodean, 
pengujian, 
dan
pemeliharaan.
Model
ini
meliputi serangkaian
aktivitas,
yaitu:
a.   Rekayasa
dan pemodelan
sistem
Karena
piranti
lunak
merupakan
sebuah
bagian
dari
sistem
yang
besar,
maka
yang 
perlu 
dilakukan 
pertama 
kali 
adalah 
menetapkan 
kebutuhan 
untuk
seluruh
elemen
sistem
dan
mengalokasikan
sebagian
dari
kebutuhan
tersebut
ke piranti
lunak.
  
30
b.   Analisis
kebutuhan piranti
lunak
Untuk dapat
mengerti
inti dari program
yang dibangun,
diperlukan
pengertian
akan
informasi
yang
diperlukan
oleh
piranti lunak.
c.   Perancangan
Perancangan
piranti
lunak
sebenarnya
merupakan
sebuah
proses
yang
terdiri
dari 
banyak 
kegiatan, 
yang 
menitikberatkan 
pada  4  atribut  dari 
program,
yaitu:
struktur
data,
arsitektur
piranti
lunak,
representasi
tampilan,
dan detil
prosedur.
d.   Pengkodean
Dalam 
pengkodean, 
perancangan 
yang 
telah 
dilakukan 
diterjemahkan 
ke
bentuk
yang dimengerti
komputer.
e.   Pemeliharaan
Pemeliharaan
dilakukan
untuk mengantisipasi
terjadinya
kesalahan,
karena
perubahan
sistem atau peningkatan
kebutuhan pengguna
akan
fungsi baru.
Gambar
2.15
Waterfall Model (Pressman, 2002, p29)
  
31
2.7
Flowchart
Salah
satu
bentuk
untuk
menyatakan
alur
pikiran
dalam
menyelesaikan
suatu
pekerjaan
adalah
dalam
bentuk
gambar
atau
bagan
yang
disebut
program
flowchart
atau
bagan
alir
program
(Moh.
Sjukani,
2004,
p5).
Berikut
adalah
simbol-simbol
yang digunakan
untuk menggambarkan
diagram alir.
Tabel
2.4 Tabel
simbol flowchart
(Sumber: Moh. Sjukani, 2004,p9)
Notasi
Arti Notasi
Terminal,
untuk
menyatakan
mulai dan
selesai sebagai
tanda, tidak
melakukan
suatu
pekerjaan khusus.
Process, 
untuk 
menyatakan 
assignment
statement.
Input/Output 
operation,
untuk
menyatakan
proses baca da proses tulis.
Decision
untuk   menyatakan
pengambilan
keputusan
sesuai dengan
suatu
kondisi
Garis, 
untuk 
menyatakan   pelaksanaan,
atau alur
proses
Preparation,
pemberi 
nilai 
awal 
suatu
variabel
Call,
memanggil
suatu subprogram
Titik 
connector 
yang 
berada
pada
halaman
yang
sama.
Titik 
connector 
yang 
berada
pada
halaman
yang
lain.
2.8
State
Transition
Diagram
State 
Transition 
Diagram 
(STD
adalah 
kumpulan 
keadaan/atribut   yang
menggambarkan
seseorang
atau
suatu benda pada
waktu
tertentu,
bentuk
keberadaan
  
32
atau
kondisi
tertentu,  seperti  menunggu  instruksi  berikutnya, 
menunggu  pengisian
password, dan lain-lain.
STD
merupakan
modelling
tools yang
sangat
kuat untuk
mendeskripsikan
kelakukan
yang
dibutuhkan
pada
sistem
yang
mempunyai
sifat real-time
dan juga
bagian
interface
manusia
pada
berbagai
sistem
online.
Cara
kerja
sistem
ini
ada
dua
macam
sebagai berikut.
Passive
Sistem 
ini 
melakukan  
kontrol   terhadap   lingkungan,  
tetapi   lebih
bersifat   memberikan   atau   menerima   data.   Kontrol   suatu   sistem
bertugas
mengumpulkan/menerima 
data
melalui
sinyal
yang
dikirim
oleh
satelit.
Active
Sistem
ini
melakukan 
kontrol 
terhadap 
lingkungan 
secara
aktif
dan
dapat
memberikan
respon
terhadap
lingkungan
sesuai dengan
program
yang ditentukan.
Komponen-komponen
utama STD sebagai berikut.
1.   State
State adalah
kumpulan
atribut
yang
mencirikan
seseorang
atau suatu
benda
pada waktu atau kondisi
tertentu.
2.   Transition State
Transition
State yang
diberi
label
dengan
ekspresi
atau
arah,
label
tersebut menunjukkan
kejadian yang menyebabkan
transisi
terjadi.
  
33
3.   Condition
dan Action
Condition 
adalah 
suatu 
peristiwa 
pada 
lingkungan 
eksternal 
yang
dapat
dideteksi 
oleh
sistem.  Dan
action  adalah
apa
yang
dilakukan
oleh sistem
apabila
terjadi
perubahan
state,
atau
bisa
juga dikatakan
sebagai
reaksi
sistem
terhadap
suatu
kondisi,
aksi
akan
menghasilkan
keluaran/tampilan.