BAB II KAJIAN PUSTAKA A.
Pengertian Graf Sebuah graf G didefinisikan sebagai pasangan himpunan (V,E) , dengan V
adalah himpunan tak kosong dari simpul-simpul (vertices) pada G. Sedangkan E adalah himpunan rusuk (edge) pada G yang menghubungkan sepasang simpul. Himpunan simpul pada G dinotasikan sebagai V, dan himpunan rusuk pada G dinotasikan sebagai E. Jadi G=(V, E) (Harju, 2012:4). Menurut Siang (2002:187), suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan simpul-simpul tidak kosong (V(G)) dan himpunan garisgaris (E(G)). Jadi, suatu graf G adalah pasangan himpunan V dan E, dituliskan G = (V,E), dengan V adalah suatu himpunan berhingga dan E adalah suatu himpunan rusuk yang bersisian dengan V. Berikut adalah beberapa istilah yang sering digunakan dalam graf. 1.
Gelang (Loop) Menurut Munir (2005), suatu rusuk dikatakan gelang apabila ujung
rusuknya berawal dan berakhir pada simpul yang sama. 2.
Rusuk Ganda (Multiple Edges) Pada sebuah graf, terdapat kemungkinan bahwa terdapat lebih dari satu
rusuk yang bersisian dengan sepasang simpul. Rusuk tersebut dinamakan rusuk ganda.
7
3.
Bertetangga (Adjacent) Dua buah simpul pada graf tak berarah G dikatakan bertetangga bila
keduanya terhubung langsung dengan sebuah rusuk. (Harju, 2012). Dengan kata lain, u bertetangga dengan v jika (u, v) adalah sebuah rusuk pada graf.
Gambar 2.1 Graf A Pada Gambar 2.1, simpul v1 bertetangga dengan simpul v2, e1 merupakan gelang, dan antara v1 dan v3 terdapat rusuk ganda e5 dan e4. 4.
Bersisian (Incident) Untuk sembarang rusuk e = (u, v), rusuk e dikatakan bersisian dengan
simpul u dan simpul v. Pada Gambar 2.1 rusuk e7 bersisian dengan v4 dan v5. Sedangkan e2 tidak bersisiang dengan v1 maupun v2. 5.
Graf Kosong (Null Graph atau Empty Graph) Graf kosong adalah graf yang himpunan rusuknya merupakan
himpunan kosong. Graf kosong dapat dinotasikan dalam Nn, dimana n adalah banyaknya simpul.
Gambar 2.2 Contoh Graf N3
8
6.
Perjalanan (Walk) Perjalanan u-v di G dengan u,v merupakan simpul-simpul pada graf G
adalah barisan berganti-ganti antara simpul dan rusuk dari G, diawali dengan simpul u dan diakhiri dengan simpul v.
d
b a
c
f Gambar 2.3 Graf D
e
Barisan a, ab, b, bf, f, fc, c, ce, e merupakan sebuah contoh perjalanan dari graf pada Gambar 2.3. 7.
Lintasan (Path) Menurut Munir (2005), lintasan yang panjangnya n dari simpul awal v0
ke simpul tujuan vn di dalam graf D ialah barisan berselang-seling simpulsimpul dan rusuk-rusuk yang berbentuk v0, e1, v1, e2, v2, ..., vn-1, en, vn sedemikian sehingga e1 = (v0, v1), e2 = (v1, v2), ..., en = (vn-1,vn) adalah rusukrusuk dari graf D. Barisan c, cb, b, bf, f, pada Gambar 2.3 merupakan sebuah lintasan. 8.
Siklus (Cycle) atau Sirkuit (Circuit) Sirkuit atau siklus adalah lintasan yang berawal dan berakhir pada
simpul yang sama. Sebuah sirkuit dikatakan sirkuit sederhana (simple sirkuit) jika setiap rusuk yang dilalui berbeda. Contoh sirkuit dari graf pada Gambar 2.3 ,adalah a-b-c-d-e-f-a.
9
9.
Terhubung (Connected) Dua buah simpul dalam graf, simpul u dan simpul v dikatakan
terhubung jika terdapat lintasan dari u ke v. Jika dua buah simpul terhubung maka pasti simpul yang pertama dapat dicapai dari simpul yang kedua. Jika setiap simpul di dalam graf terhubung, maka graf tersebut disebut sebagai graf terhubung (Siang:2002). Definisi mengenai graf terhubung dibagi menjadi dua, yaitu untuk graf tak berarah dan untuk graf berarah. a.
Menurut Munir (2005), graf tak berarah G disebut graf terhubung (connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang juga harus berarti ada lintasan dari v ke u). Jika tidak, maka G disebut graf tak terhubung (disconnected graph). Gambar 2.4 adalah contoh dari graf tak berarah yang terhubung.
Gambar 2.4 Graf Tak Berarah Yang Terhubung b.
Graf berarah G dikatakan terhubung jika graf tak berarahnya terhubung
(graf
tak
berarah
dari
G
diperoleh
dengan
menghilangkan arahya) (Munir, 2005). Pada graf berarah, keterhubungan dua buah simpul dibedakan menjadi dua, yaitu terhubung kuat dan terhubung lemah.
10
Gambar 2.5 Graf Berarah Terhubung Graf pada Gambar 2.5 (a) merupakan graf terhubung kuat, karena untuk sembarang sepasang simpul di dalam graf tersebut terdapat lintasan. Sedangkan graf pada Gambar 2.5 (b) merupakan graf terhubung lemah, karena tidak semua pasangan simpul mempunyai lintasan arah. 10.
Graf Berbobot (Weighted Graph) Graf berbobot adalah graf yang setiap rusuknya diberi sebuah harga
(bobot) (Munir, 2005:376). Bobot pada tiap rusuk dapat berbeda-beda, tergantung pada masalah yang dimodelkan dengan graf. Bobot pada graf berbobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antar dua buah kota, ongkos produksi, dan lain sebagainya.
Gambar 2.6 Contoh Graf Berbobot
11
B.
Jenis-Jenis Graf Graf dapat dikelompokkan menjadi beberapa jenis sesuai dengan sudut
pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya rusuk ganda, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada rusuk (Munir, 2005:357). Berdasarkan ada tidaknya gelang (loop) yaitu rusuk yang menghubungkan sebuah simpul dengan dirinya sendiri atau rusuk ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis, graf sederhana dan graf tak sederhana. 1.
Graf Sederhana (Simple Graph) Graf sederhana adalah graf yang tidak mempunyai rusuk ganda dan
atau, gelang. Pada graf sederhana, rusuk adalah pasangan tak terurut (unordered pairs) (Harju:2012). Jadi rusuk (u, v) sama dengan (v, u). Menurut Munir (2005) graf sederhana juga dapat didefinisikan sebagai G = (V, E), terdiri dari V, himpunan tidak kosong simpul-simpul dan E, himpunan pasangan tak terurut yang berbeda yang disebut rusuk. Berikut adalah contoh graf sederhana.
Gambar 2.7 Contoh Graf Sederhana
12
Menurut Siang (2002) beberapa graf sederhana khusus yang sering digunakan adalah sebagai berikut. a.
Graf Lengkap (Complete Graph) Graf lengkap adalah graf sederhana yang setiap dua simpulnya
bertetangga. Graf lengkap dengan n buah simpul dilambangkan dengan Kn. Setiap simpul pada Kn berderajat n – 1. Banyaknya rusuk pada graf lengkap yang terdiri dari n buah simpul adalah n(n – 1)/2.
Gambar 2.8 Graf Lengkap (Complete Graph) b.
Graf Lingkaran Graf lingkaran adalah graf sederhana yang setiap simpulnya
berderajat dua. Graf lingkaran dengan n simpul dilambangkan dengan Cn.
Gambar 2.9 Graf Lingkaran C3 dan C4
13
c.
Graf Teratur (Regular Graph) Graf teratur adalah graf yang setiap simpulnya mempunyai derajat
yang sama. Apabila derajat setiap simpul adalah r, maka graf tersebut disebut sebagai graf teratur derajat r.
Gambar 2.10 Graf Teratur Derajat 3 d.
Graf Bipartit (Bipartite Graph) Graf G yang himpunan simpulnya dapat dikelompokkan menjadi
dua himpunan bagian V1 dan V2, sedemikian sehingga setiap rusuk di dalam G menghubungkan sebuah simpul di V1 ke sebuah simpul di V2 disebut graf bipartit dan dinyatakan sebagai G (V1, V2).
Gambar 2.11 Graf Bipartit (Bipartite Graph) 2.
Graf Tak Sederhana (Unsimple Graph) Graf yang mengandung rusuk ganda atau gelang dinamakan graf tak
sederhana (unsimple graph) (Harju:2012). Ada dua macam graf tak sederhana, yaitu graf ganda (multigraph) atau graf semu (pseudograph). Graf ganda adalah graf yang mengandung rusuk ganda. Graf semu adalah graf yang mengandung gelang (loop).
14
Gambar 2.12 Contoh Graf Tak Sederhana (Graf Ganda dan Graf Semu) Selain berdasarkan ada tidaknya rusuk ganda dan jumlah simpul pada suatu graf, graf juga dapat dikelompokkan berdasarkan orientasi arah pada rusuknya.Pengelompokan berdasarkan orientasi arah pada rusuknya digolongkan menjadi dua yaitu graf tak berarah dan graf berarah (Bondy, Murty :1982). 1.
Graf Tak Berarah (Undirected Graph) Graf tak berarah adalah graf yang rusuknya tidak mempunyai orientasi
arah. Urutan pasangan simpul yang dihubungkan oleh rusuk tidak diperhatikan (Siang, 2002:194). Jadi (V1, V2) = (V2, V1) adalah rusuk yang sama.
Gambar 2.13 Contoh Graf Tak Berarah 2.
Graf Berarah (Directed Graph) (Harju, 2012:5) Graf berarah adalah graf yang setiap rusuknya memiliki orientasi arah.
Rusuk pada graf berarah disebut busur (arc). Pada graf berarah, (u, v) dan (v,
15
u) menyatakan dua buah busur yang berbeda. Jadi (u, v) ≠ (v, u). Untuk busur (u, v), simpul u dinamakan simpul asal (initial vertex) dan simpul v dinamakan simpul terminal (terminal vertek). Graf berarah ini seringkali di jadikan dasar dalam pembentukan model mengenai aliran proses, peta lalu lintas, sistem jaringan listrik, jaringan telepon, analisis jejaring sosial, dan lain sebagainya. Pada graf berarah, adanya gelang diperbolehkan, tetapi rusuk ganda tidak.
Gambar 2.14 Graf Berarah C.
Traveling Salesman Problem Traveling salesman problem (TSP) adalah mencari rute untuk salesman yang
dimulai dari lokasi awal, mengunjungi serangkaian kota kemudian kembali ke lokasi semula sedemikian sehingga jarak total yang ditempuh adalah jarak minimal dan setiap kota dikunjungi tepat satu kali. (Gutin, 2006 : 1) Menurut Radolp W Hall (2003: 423), tiga tujuan (kriteria) yang paling penting dalam penyelesaian program rute tersingkat adalah. 1. Meminimalkan jumlah kendaraan. 2. Meminimalkan waktu tempuh total. 3. Memastikan setiap rute seimbang dalam syarat waktu pelaksanaan rute.
16
Traveling salesman problem dapat di modelkan dalam graf tak berarah dan berbobot. Berikut representasi banyaknya sirkuit TSP dalam graf .
Gambar 2.15 Graf K Dari Graf K berbobot dicari banyaknya sirkuit dari simpul A kembali lagi ke simpul A. Terdapat 6 sirkuit pada Graf K yaitu, A-B-C-D-A, A-D-C-B-A, A-CD-B-A, A-B-D-C-A, A-D-B-C-A, dan A-C-B-D-A, sehingga banyaknya sirkuit (s) dapat dicari dengan
2.1
ݏൌ ሺ݊ െ ͳሻǨ Rusuk-rusuk dalam graf K tidak berarah sehingga
w A, B
wB, A ,
sehingga
banyaknya sirkuit menjadi
ݏൌ
ሺିଵሻǨ ଶ
2.2
karena sirkuit A-B-C-D-A = A-D-C-B-A, A-C-D-B-A= A-C-D-B-A, dan A-C-BD-A = A-D-B-C-A. Jadi banyaknya semua kemungkinan sirkuit ditentukan dengan rumus (2.2). Pada Skripsi ini, sirkuit dalam permasalahan TSP disebut dengan rute perjalanan. Menurut Gutin (2006: 16). Secara matematis, permasalahan TSP dapat diformulasikan sebagai.
17
݉݅݊݅݉݅ ݁ݖ ܿ ݔ ୀଵ ୀଵ
dengan kendala
ݔ ൌ ͳǡ ݆ ൌ ͳǡ ʹǡ ǥ ǡ ݊ ୀଵ
ݔ ൌ ͳǡ ݅ ൌ ͳǡ ʹǡ ǥ ǡ ݊ ୀଵ
ݔ אሼͲǡͳሽǡ݅ǡ ݆ ൌ ͳǡ ʹǡ ǥ ǡ ݊ Jika disajikan dalam bentuk tabel Tabel 2.1. Tabel Permasalahan TSP
v1
v2
...
vn
ݔ ୀଵ
v1
c11x11
c12x13
...
c1nx1n
1
v2
c21x21
c22x22
...
c2nx2n
1
...
...
...
...
...
vn
cn1xn1
cn2xn2
...
cnnxnn
1
ݔ
1
1
1
n
ୀଵ
cij pada tabel tersebut merepresentasikan waktu dari simpul i ke simpul j. Sedangkan xij merepresentasikan ada tidaknya jalur dari simpul i ke simpul j. Sesuai dengan kendala, xij bernilai 0 jika tidak ada jalur yang menghubungkan simpul i ke j dan xij bernilai 1 jika ada jalur dari yang menghubungkan simpul i ke j.
18
D.
Algoritma 1.
Pengertian algoritma (Wahid, 2004:2) Algortima adalah urutan langkah-langkah yang dinyatakan dengan jelas
dan tidak rancu untuk memecahkan suatu masalah (jika ada pemecahannya) dalam rentang waktu tertentu sedemikian rupa sehingga didapatkan hasil yang paling optimal. 2.
Syarat algoritma (Wahid, 2004: 4) Karakteristik atau syarat algoritma memenuhi sebagai berikut. a. Algoritma harus tidak ambigu (unambiguous). b. Algoritma harus tepat (precise). c. Algoritma harus pasti (definite). d. Algortima harus berhingga (finite).
3.
Cara penulisan algoritma (Wahid, 2004: 10-11) Algoritma sebagai langkah-langkah pemecahan masalah dapat
dituliskan dalam beberapa cara sebagai berikut. a. Uraian deskriptif. b. Pseudocode. c. Bagan alir (flow chart). Uraian deskriptif merupakan suatu algoritma yang menggunakan bahasa sehari-hari. Algoritma juga dapat dituliskan dalam kode-kode yang disepakati dan mempunyai arti sendiri. Kode-kode seperti ini disebut dengan pseudecode. Kode-kode ini dapat dikembangkan sendiri, asalkan arti dari setiap kode disepakati bersama. Algoritma tersebut juga dituliskan dalam
19
notasi grafik yang setiapnya mempunyai arti tertentu. Notasi-notasi tersebut digunakan untuk menggambarkan bagan alir (flow chart). E.
Algoritma Koloni Lebah Algoritma koloni lebah mensimulasikan kebiasaan lebah dalam pencarian
makanan. Lebah madu merupakan contoh khusus dari alam yang menginspirasi algoritma optimasi. (Karaboga, 2009:2) Langkah-langkah penyesuaian algoritma koloni lebah. 1.
Forage (proses pencarian sumber makanan) Tahapan ini diberikan pada setiap lebah yang akan mengunjungi
sumber makanan. Aturan diberlakukan ketika lebah dihadapkan pada beberapa pilhan simpul. Pengambilan simpul selanjutnya ditentukan oleh nilai peluang yang berdasarkan nilai arc fitness dan waktu tempuh antar simpul. Arc fitness dihitung untuk semua kemungkinan antara simpul i dan simpul j pada transisi ke-n. Nilai fitness yang lebih besar akan diberikan untuk rute yang menjadi bagian dari preferred path (dinyatakan dengan θ). Arc fitness dinyatakan oleh persamaan.
ߩǡ ൌ
ߣ ۓ ۖͳ െ ߣห݅ܣǡ݊ ݅ܨ תǡ݊ ห ͳ ۔ ۖ ە
ห݅ܣǡ݊ െ ݅ܨǡ݊ ห
ǡ ݆ ݅ܨ אǡ݊ ǡ ห݅ܣǡ݊ ห ͳ ǡ ݆ ݅ܨ בǡ݊ ǡ ห݅ܣǡ݊ ห ͳ ǡ ห݅ܣǡ݊ ห ൌ ͳ
ͳ
Keterangan.
20
(2.3)
ρij,n
= arc fitness antara simpul i dan j pada transisi ke-n
λ
= probabilitas kota yang diikuti pada θ.
Ai,n
= himpunan simpul yang bisa dijangkau dari simpul i pada transisi ke-n.
Fi,n
= himpunan berisi satu simpul yang direkomendasikan.
Peluang untuk berpindah dari simpul i dan j pada transisi ke-n merupakan fungsi dari waktu dan arc fitness. Dapat didefinisikan. ഀ
ൣఘೕǡ ൧
ܲǡ ൌ
σೕאಲ
ഁ భ ቈ ǡೕ ഀ
ೕǡ
భ
ഁ
(2.4)
ൣఘೕǡ ൧ ቈ ǡೕ
ρij
= arc fitness antara simpul i dan j.
dij
= waktu tempuh antara simpul i dan j.
Pij
= peluang percabangan dari simpul i ke simpul j.
α
= variabel biner yang menunjukan pengaruh dari arc fitness.
β
= variabel yang berfungsi untuk mengontrol signifikasi level untuk waktu tempuh antar simpul
Persamaan (2.4) menyatakan bahwa Pij berbanding terbalik dengan dij,
sehingga dapat dikatakan semakin singkat waktu tempuh maka semakin besar kemungkinan rute tersebut akan terpilih. 2.
Waggle dance Ketika lebah telah menemukan sumber makanan, lebah akan menari
dalam rentang waktu tertentu. Lama tarian lebah dipengaruhi oleh kuantitas nektar yang dikumpulkan lebah ke-i dan rata-rata profitabilitas koloni lebah. 21
Kuantitas nektar dan rata-rata profitabilitas koloni lebah dinotasikan dengan Pfi dan Pfcolony didefinisikan sebagai berikut. ݂ܲ ൌ
ͳ ǡ ݐ ൌ ݐ
݂ܲ௬ ൌ
ͳ ܰ
ே್
ୀଵ
(2.5)
݂ܲ
(2.6)
Nilai kuantitas nektar dan rata-rata profitabilitas koloni lebah ditentukan dari setiap lebah yang telah menyelesaikan tur. Kuantitas yang lebih tinggi akan dikumpulkan jika lebah melakukan perjalanan dengan waktu yang lebih singkat. Oleh karena itu Pfi berbanding terbalik dengan waktu tempuh. Durasi tarian dari lebah i yang dinotasikan Di ditentukan oleh linear fungsi sebagai berikut.
ܦ ൌ ܭ
(2.7)
K merupakan skala faktor yang mengendalikan besarnya nilai durasi. Untuk mempermudah dalam pemahaman, berikut disajikan algoritma koloni lebah dalam bentuk flowchart.
22
Mulai
Input data, Kota Awal, parameter
Pembangunan rute secara random
Hitung waktu tempuh, Simpan waktu tempuh TBest
Pengujian rute dengan aturan forage
Hitung waktu tempuh baru, Simpan waktu tempuh T
Simpan TBest
tidak
ya
T = T Best?
Simpan T
TBest
Update rute dan TBest
Waggle dance
tidak
ya
Kriteria terpenuhi?
Cetak rute dan waktu tempuh
Selesai
Gambar 2.16 Flowchart Algoritma Koloni Lebah
23
F.
Algoritma Genetika Algoritma klasik dalam evolusi komputasi dan digunakan untuk
menyelesaikan masalah optimasi adalah Algoritma Genetika. (Pei Wei Tsang 2008:1) Secara khusus di dalam algoritma genetika istilah kromosom berarti kandidat solusi dari permasalahan, seringkali dikodekan dalam bit string. Gen baik yang bit tunggal atau blok pendek dari bit yang berdekatan mengkodekan elemen tertentu dari kandidat solusi (misal dalam konteks optimasi fungsi multiparameter bit mengkodekan parameter tertentu yang mungkin diannggap sebagai sebuah gen). Allel dalam bit string (0 atau 1). Crossover biasanya terbentuk dari pertukaran material genetika antara dua kromosom tunggal induk haploid. Mutasi terbentuk dari pembalikan bit pada lokus yang terpilih secara acak. (Mithel Melanie, 1996: 5) Menurut Kusumadewi (2003:92). Secara umum, proses algoritma genetika adalah sebagai berikut. 1. Membangkitkan populasi awal secara acak. 2. Membentuk generasi baru dengan menggunakan operasi seleksi, operasi crossover dan operasi mutasi secara berulang-ulang sehingga diperoleh kromosom yang cukup untuk membentuk generasi baru sebagai representasi dari solusi baru. 3. Mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom hingga terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi, maka akan dibentuk lagi generasi baru dengan mengulang langkah 2. Kriteria berhenti yang digunakan adalah sebagai berikut.
24
a. Berhenti pada generasi tertentu. b. Berhenti
setelah
dalam
beberapa
generasi
berturut-berturut
didapatkan nilai fitness tertinggi yang tidak berubah (konvergen). c. Berhenti bila dalam n generasi berikutnya tidak didapatkan nilai fitness yang lebih optimal. Proses algoritma genetika dapat diilustrasikan pada flow chart berikut
Populasi Awal
Evaluasi
Konvergen? (mencari fitness terbaik)
ya
tidak Seleksi
Pindah Silang
Mutasi Gambar 2.17 Flowchart Algoritma Genetika
25
Terbentuk Individu Terbaik