BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB II LANDASAN TEORI

Pengantar Kecerdasan Buatan (AK045218) Algoritma Genetika

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

PERANCANGAN ALGORITMA GENETIKA UNTUK MENENTUKAN JALUR TERPENDEK. Kata kunci: Algoritma Genetika, Shortest Path Problem, Jalur Terpendek

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. 2.1 Algoritma Genetika

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

ERWIEN TJIPTA WIJAYA, ST.,M.KOM

BAB II LANDASAN TEORI. Suatu graph merupakan suatu pasangan { E(G), V(G) } dimana :

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

PEMAMPATAN MATRIKS JARANG DENGAN METODE ALGORITMA GENETIKA MENGGUNAKAN PROGRAM PASCAL

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

PENERAPAN ALGORITMA GENETIKA PADA PERENCANAAN LINTASAN KENDARAAN Achmad Hidayatno Darjat Hendry H L T

PENGEMBANGAN APLIKASI PENJADWALAN KULIAH SEMESTER I MENGGUNAKAN ALGORITMA GENETIKA

BAB 2 LANDASAN TEORI

BAB 2 DASAR TEORI. 2.1 Teka-Teki Silang

BAB III. Metode Penelitian

BAB II KAJIAN TEORI. memindahkan barang dari pihak supplier kepada pihak pelanggan dalam suatu supply

BAB 2 LANDASAN TEORI

PENENTUAN JARAK TERPENDEK PADA JALUR DISTRIBUSI BARANG DI PULAU JAWA DENGAN MENGGUNAKAN ALGORITMA GENETIKA. Abstraksi

BAB II LANDASAN TEORI

BAB III PERANCANGAN. Gambar 3.1 di bawah ini mengilustrasikan jalur pada TSP kurva terbuka jika jumlah node ada 10:

BAB II LANDASAN TEORI. Tahun 2001 pemilik CV. Tunas Jaya membuka usaha di bidang penjualan dan

Lingkup Metode Optimasi

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP)

Algoritma Genetika dan Penerapannya dalam Mencari Akar Persamaan Polinomial

BAB I PENDAHULUAN. 1.1 Latar Belakang

ALGORITMA GENETIKA PADA PENYELESAIAN AKAR PERSAMAAN SEBUAH FUNGSI

2 TINJAUAN PUSTAKA. 2.1 Peringkasan Teks

Tugas Mata Kuliah E-Bisnis REVIEW TESIS

PENGGUNAAN ALGORITMA GENETIKA UNTUK MENENTUKAN LINTASAN TERPENDEK STUDI KASUS : LINTASAN BRT (BUS RAPID TRANSIT) MAKASSAR

OPTIMASI PENDUGAAN PARAMETER DALAM ANALISIS STRESS DAN STRAIN TERHADAP MATERIAL MENGGUNAKAN ALGORITMA GENETIKA

KNAPSACK PROBLEM DENGAN ALGORITMA GENETIKA

OPTIMASI PENJADWALAN KEGIATAN BELAJAR MENGAJAR DENGAN ALGORITMA GENETIK

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. 2.1 Algoritma

PENERAPAN ALGORITMA GENETIK UNTUK OPTIMASI DENGAN MENGUNAKAN PENYELEKStAN RODA ROULETTE

BAB II LANDASAN TEORI

Genetic Algorithme. Perbedaan GA

Optimasi Metode Fuzzy Dengan Algoritma Genetika Pada Kontrol Motor Induksi

BAB III PEMBAHASAN. diperoleh menggunakan algoritma genetika dengan variasi seleksi. A. Model Matematika CVRPTW pada Pendistribusian Raskin di Kota

PERBANDINGAN ALGORITMA EXHAUSTIVE, ALGORITMA GENETIKA DAN ALGORITMA JARINGAN SYARAF TIRUAN HOPFIELD UNTUK PENCARIAN RUTE TERPENDEK

Perbandingan Algoritma Exhaustive, Algoritma Genetika Dan Algoritma Jaringan Syaraf Tiruan Hopfield Untuk Pencarian Rute Terpendek

Implementasi Algoritma Genetika dalam Pembuatan Jadwal Kuliah

IMPLEMENTASI ALGORITMA GENETIKA DALAM OPTIMASI JALUR PENDISTRIBUSIAN KERAMIK PADA PT. CHANG JUI FANG

ABSTRAK. Universitas Kristen Maranatha

Bab II Konsep Algoritma Genetik

METODE NUMERIK Modul I

APLIKASI ALGORITMA GENETIKA UNTUK PENENTUAN TATA LETAK MESIN

PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION

BAB II LANDASAN TEORI

PENJADWALAN UJIAN AKHIR SEMESTER DENGAN ALGORITMA GENETIKA (STUDI KASUS JURUSAN TEKNIK INFORMATIKA UNESA)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) 45 Edisi... Volume..., Bulan 20.. ISSN :

BAB II LANDASAN TEORI

Algoritma Evolusi Dasar-Dasar Algoritma Genetika

BAB II LANDASAN TEORI

BAB III IMPLEMENTASIALGORITMA GENETIK DAN ACS PADA PERMASALAHAN TRAVELLING SALESMAN PROBLEM

8. Evaluasi Solusi dan Kriteria Berhenti Perumusan Masalah METODE PENELITIAN Studi Pustaka Pembentukan Data

BAB 2 TINJAUAN PUSTAKA

MEMBANGUN TOOLBOX ALGORITMA EVOLUSI FUZZY UNTUK MATLAB

BAB 2 LANDASAN TEORI

ALGORITMA GENETIKA Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning

BAB II TINJAUAN PUSTAKA

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

PENYELESAIAN MINIMUM SPANNING TREE (MST) PADA GRAF LENGKAP DENGAN ALGORITMA GENETIKA MENGGUNAKAN TEKNIK PRUFER SEQUENCES

Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika

BAB III PEMBAHASAN. menggunakan model Fuzzy Mean Absolute Deviation (FMAD) dan penyelesaian

Zbigniew M., Genetic Alg. + Data Structures = Evolution Program, Springler-verlag.

OPTIMALISASI SOLUSI TERBAIK DENGAN PENERAPAN NON-DOMINATED SORTING II ALGORITHM

BAB II KAJIAN PUSTAKA

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

ALGORITMA GENETIKA. Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning

PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK VISUALISASI DUA DIMENSI WELL PRODUCTION FORECASTING DENGAN GENETIC ALGORITHM

BAB II KAJIAN TEORI. genetika, dan algoritma memetika yang akan digunakan sebagai landasan dalam

Algoritma Evolusi Real-Coded GA (RCGA)

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III PEMBAHASAN. Berikut akan diberikan pembahasan mengenai penyelesaikan CVRP dengan

Jl. Ahmad Yani, Pontianak Telp./Fax.: (0561)

OPTIMASI QUERY DATABASE MENGGUNAKAN ALGORITMA GENETIK

BAB II KAJIAN TEORI. berbeda di, melambangkan rusuk di G dan jika adalah. a. dan berikatan (adjacent) di. b. rusuk hadir (joining) simpul dan di

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Pendekatan Algoritma Genetika pada Peminimalan Fungsi Ackley menggunakan Representasi Biner

PELATIHAN FEED FORWARD NEURAL NETWORK MENGGUNAKAN ALGORITMA GENETIKA DENGAN METODE SELEKSI TURNAMEN UNTUK DATA TIME SERIES

Prosiding Matematika ISSN:

PENERAPAN ALGORITMA GENETIKA PADA PENYELESAIAN TRAVELLING SALESMAN PROBLEM (TSP)

BAB 2 TINJAUAN PUSTAKA

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB 2 TINJAUAN PUSTAKA

BAB II KAJIAN PUSTAKA. Sebuah graf G didefinisikan sebagai pasangan himpunan (V,E), dengan V

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. kehidupan sehari-hari dan juga merupakan disiplin ilmu yang berdiri sendiri serta

BAB II KAJIAN PUSTAKA. digunakan dalam penelitian ini yaitu graf, vehicle routing problem (VRP),

BAB 2 TINJAUAN PUSTAKA

APLIKASI UNTUK PREDIKSI JUMLAH MAHASISWA PENGAMBIL MATAKULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA, STUDI KASUS DI JURUSAN TEKNIK INFORMATIKA ITS

Transkripsi:

8 BAB 2 LANDASAN TEORI 2.1 Graph Rinaldi Munir (2003) menjelaskan bahwa graph merupakan kumpulan verteks yang dihubungkan satu sama lain melalui sisi/ busur (edges). Suatu graph G terdiri dari dua himpunan yaitu himpunan verteks dan himpunan edge. Vertek adalah suatu elemen dari graph G yang dapat disajikan berupa titik, lingkaran kecil atau node. Sedangkan edge adalah suatu elemen dari graph G yang disajikan berupa garis. Edge dapat menunjukkan hubungan (relasi) sembarang seperti rute penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan lain-lain. Graph dinotasikan dengan G (V,E). Pada umumnya graph digunakan untuk memodelkan suatu masalah sehingga menjadi lebih mudah, yaitu dengan cara merepresentasikan objek-objek tersebut. Menurut arah dan bobotnya, graph dibagi menjadi empat bagian, yaitu : a. Graph berarah dan berbobot yaitu graph yang setiap sisinya diberikan orientasi arah dan bobot berupa bilangan bukan negatif. b. Graph tidak berarah dan berbobot yaitu graph yang setiap sisinya tidak mempunyai orientasi arah tetapi mempunyai bobot. c. Graph berarah dan tidak berbobot yaitu graph yang setiap sisinya diberikan orientasi arah tetapi tidak berbobot. d. Graph tidak berarah dan tidak berbobot yaitu graph yang setiap sisinya tidak mempunyai orientasi arah dan tidak berbobot.

9 2.2.1 Keterhubungan Ada beberapa sifat keterhubungan dalam graph. Berikut adalah sifat-sifat yang sering digunakan, yaitu: a. Perjalanan (Walk) Perjalanan atau walk pada suatu graph G adalah barisan vertek dan edge secara berganti-ganti v1, e1, v2, e2,..., en 1, vn dimana edge e 1 menghubungkan vi dan vi 1 dan dapat hanya ditulis barisan edge atau barisan vertek saja ( e 1, e 2,..., en 1 atau v1, v2,... vn 1, vn), dalam hal ini v1 disebut vertek awal, dan vn akhir. disebut vertek b. Lintasan (Trail) Lintasan adalah Walk dengan semua edge dalam barisan adalah berbeda. c. Jalur (Path) Jalur adalah Walk yang setiap verteksnya dalam barisan adalah berbeda. d. Terhubung (connected) Graph tak berarah G disebut graph terhubung (undirecteg connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang berarti ada lintasan dari u ke v). Sama halnya seperti pada graph tak berarah, graph berarah G disebut graph terhubung (directed connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang berarti ada lintasan dari u ke v). 2.2.1 Representasi Graf Suatu graph dapat direpresentasikan ke beberapa bentuk. Representasi graph dapat digunakan untuk mengimplementasikan graph tersebut ke dalam bentuk tertentu, sehingga dapat digunakan pada berbagai kasus yang berbeda. Matriks dapat digunakan untuk menyatakan suatu graph. Hal ini sangat membantu program komputer yang berhubungan dengan graph.

10 1.1.2.2 Representasi Graph Tidak Berarah dalam Matriks Matriks Hubung (Adjacency Matrix) digunakan untuk menyatakan graph dengan cara menyatakannya dalam jumlah edge yang menghubungkan setiap vertex. Jumlah baris (dan kolom) matriks hubung sama dengan jumlah vertex dalam graph. Misalkan G adalah graph tidak berarah untuk suatu graph dengan jumlah verteks sebanyak n, maka matriks hubung mempunyai ukuran n x n (n baris dan n kolom). Jika antara dua buah verteks terhubung maka elemen matriks bernilai 1, dan sebaliknya bernilai 0 jika tidak terhubung. Jumlah edge yang menghubungkan vertek v i dengan v j selalu sama dengan jumlah edge yang menghubungkan dengan, maka jelas bahwa matriks hubung selalu merupakan matriks yang simetris (a ij =a ji i,j ). Gambar 2.1 Graph Tidak Berarah dan Tidak Berbobot

11 Maka matriks kedekatan dari graph tidak berarah dan tidak berbobot pada Gambar 2.1 diatas dapat dilihat pada Tabel 2.1 dibawah ini. Tabel 2.1 Matriks Kedekatan Graph Tidak Berarah dan Tidak Berbobot A B C D E F G A 0 1 1 0 0 0 0 B 1 0 1 1 1 0 0 C 1 1 0 1 0 1 0 D 0 1 1 0 1 1 1 E 0 1 0 1 0 0 1 F 0 0 1 1 0 0 1 G 0 0 0 1 1 1 0 Jika graph yang diberikan adalah graph berbobot maka elemen matriks yang terhubung antara vertex adalah bobot graph. 2.1.2.2 Representasi Graph Berarah dalam Matriks Matriks Hubung (Adjacency Matrix) pada graph berarah sebenarnya tidak jauh berbeda dengan cara menyatakan graph tak berarah dalam suatu matriks. Perbedaanya hanyalah terletak pada keikutsertaan informasi tentang arah arc yang terdapat dalam graph berarah. Jika ada arc dari vertek v i ke vertek v j maka nilai elemen matriksnya adalah 1, dan jika tidak ada arc dari vertek v i ke vertek v j maka nilai elemen matriksnya adalah 0. Gambar 2.2 Graph Berarah dan Tidak Berbobot

12 Maka matriks kedekatan dari graph berarah dan tidak berbobot pada Gambar 2.2 diatas dapat dilihat pada Tabel 2.2 dibawah ini. Tabel 2.2 Matriks Kedekatan Graph Berarah dan Tidak Berbobot A B C D E F G A 0 1 1 0 0 0 0 B 0 0 1 1 1 0 0 C 0 0 0 1 0 1 0 D 0 0 0 0 1 1 1 E 0 0 0 0 0 0 1 F 0 0 0 0 0 0 1 G 0 0 0 0 0 0 0 Jika graph yang diberikan adalah graph berbobot maka elemen matriks yang terhubung antara vertex adalah bobot graph. 2.2 Algoritma Genetika Kecerdasan buatan merupakan suatu ilmu dengan ide-ide untuk membuat bagaimana komputer menjadi cerdas seperti yang dapat dilakukan manusia bahkan lebih baik dari yang dilakukan manusia, dengan mengimplementasikan dalam sebuah program. Diharapkan nantinya kecerdasan buatan ini dapat menirukan proses belajar yang dilakukan oleh manusia sehingga informasi-informasi baru dapat diserap dan dapat dijadikan acuan pada masa yang akan datang. Algoritma genetika merupakan evolusi atau perkembangan dunia komputer dalam bidang kecerdasan buatan (Artificial Intelligence). Sejak algortima genetika pertama kali dirintis oleh John Holland dari Universitas Michigan pada tahun 1960-an, AG telah diaplikasikan secara luas pada berbagai bidang. AG banyak digunakan untuk memecahkan masalah optimasi, walaupun pada kenyataannya juga memiliki kemampuan yang baik untuk masalahmasalah selain optimasi. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi

13 genetika. Algoritma genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom. Algoritma genetika (Genetic Algorithm, GA) adalah algoritma pencarian yang didasarkan atas mekanisme seleksi alami dan evolusi biologis. Algoritma genetika mengikuti prosedur atau tahap-tahap yang menyerupai proses evolusi, yaitu adanya proses seleksi, crossover dan mutasi. AG juga mengkombinasikan antara deretan struktur dengan pertukaran informasi acak ke bentuk algoritma pencarian dengan beberapa perubahan bakat pada manusia. Pada setiap generasi, himpunan baru dari deretan individu dibuat berdasarkan kecocokan pada generasi sebelumnya (Goldberg, 1996). Keberagaman pada evolusi biologis adalah variasi dari kromosom dalam individu organisme. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup (Kristanto, 2004). Pada dasarnya ada 4 kondisi yang sangat mempengaruhi proses evaluasi, yaitu: a. Kemampuan organisme untuk melakukan reproduksi. b. Keberadaan populasi organisme yang bisa melakukan reproduksi. c. Keberagaman organisme dalam suatu populasi. d. Perbedaan kekuatan dan kemampuan organisme untuk bertahan hidup. Pada algoritma genetika, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah populasi. Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi yang disebut dengan generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas dari kromosom dalam populasi tersebut. Generasi berikutnya dikenal dengan istilah anak (offspring) terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan (crossover). Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan

14 operator mutasi. Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring), serta menolak kromosom-kromosom yang lainnya sehingga ukuran populasi (jumlah kromosom dalam suatu populasi) konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik. 2.2.1 Komponen-Komponen Utama Algoritma Genetika Ada 6 komponen utama dalam algoritma genetika, yaitu skema pengodean, fungsi fitness, seleksi, crossover, mutasi,elitism. 2.2.1.1 Skema Pengodean Skema pengodean di sini meliputi penyandian gen dan kromosom. Gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu variabel. Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat diimplementasikan untuk operator genetika (kusumadewi, 2005). Ada beberapa macam teknik pengodean yang dapat dilakukan dalam algoritma genetika (Lukas, 2005)., diantaranya: a. Pengodean Biner (binary encoding) Pengodean biner adalah yang paling sering digunakan untuk bekerja dalam algoritma genetika, dengan setiap kromosom terdiri dari bit 0 dan 1. Contohnya: Tabel 2.3 Pengodean Biner Krom A 1 0 1 1 0 0 1 0 1 0 Krom B 1 1 1 1 1 1 0 0 1 0 Dalam Binary Encoding memungkinkan didapatkan kromosom dengan nilai allele yang kecil, tetapi kekurangannya tidak dapat digunakan untuk

15 beberapa permasalahan dan terkadang diperlukan adanya koreksi setelah proses crossover dan mutasi. Salah satu permasalahan yang menggunakan encoding adalah menghitung nilai maksimal dari suatu fungsi. b. Pengodean Permutasi (permutation encoding) Dalam pengodean jenis ini setiap kromosom adalah adalah suatu angka yang mempresentasikan suatu urutan. Pengodean ini hanya berguna untuk masalah ordering, bahkan beberapa korelasi terhadap kromosom harus dilakukan untuk menjaga konsistensi representasi kromosom setelah proses crossover atau mutasi. Contohnya: Tabel 2.4 Pengodean Permutasi Krom A 8 5 6 7 2 1 3 4 9 Krom B 1 5 3 2 6 4 7 9 8 c. Pengodean Nilai (Value Encoding) Value encoding, dalam pengodean ini setiap kromosom adalah string dari suatu nilai. Nilai dapat berupa apapun yang berhubungan dengan masalah, seperti bilangan bulat, desimal atau karakter. Pengodean ini merupakan pilihan yang bagus untuk beberapa permasalahan khusus, biasanya diperlukan metode khusus untuk memproses crossover dan mutasinya sesuai dengan permasalahan yang dihadapi. Contohnya: Tabel 2.5 Pengodean Nilai Krom A 1.232 5.324 0.455 2.329 Krom B ABFDGJHJHKJKJLKLFSR Krom C (right), (left), (back), (forward)

16 d. Pengodean Pohon (Tree Encoding) Biasanya digunakan untuk menyusun program atau ekspresi dari genetik programming (pemrograman genetik). Dalam pengodean pohon ini, setiap kromosom dinyatakan sebagai sebuah pohon dan beberapa objek, seperti fungsi atau perintah dalam bahasa pemrograman. Contohnya: (*(-(ab))(+(*(cd))(/(ef)))) * - + A B * / C D E F Gambar 2.3 Pengodean Pohon 2.2.1.2 Nilai Fitness Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapat. Nilai ini yang kemudian akan dijadikan sebagai acuan dalam mencapai nilai optimal dalam algoritma genetika. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup sedangkan individu yang bernilai fitness rendah akan mati. Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi h (dikenal sebagai masalah maksimasi), maka nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, f = h (dimana f adalah nilai fitness). Jika masalahnya adalah meminimalkan fungsi h (masalah minimasi), maka fungsi h tidak bisa digunakan secara langsung. Hal ini disebabkan adanya aturan bahwa individu yang memiliki nilai fitness tinggi lebih mampu bertahan hidup pada generasi berikutnya.

17 Maka nilai fitness yang bisa digunakan adalah f = i/h, yang artinya semakin kecil nilai h, semakin besar nilai f. Tetapi hal ini akan menjadi masalah jika nilai h = 0, yang mengakibatkan f dapat bernilai tak terhingga. Untuk mengatasinya, h perlu ditambah sebuah bilangan yang dianggap sangat kecil sehingga nilai fitnessnya menjadi : f 1, ( h a) (2.1) Dimana a adalah bilangan yang dianggap sangat kecil dan bervariansi sesuai dengan masalah yang akan diselesaikan. 2.2.1.3 Seleksi Orang Tua Seleksi adalah proses untuk menentukan individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana keturunan terbentuk dari individu-individu terpilih tersebut. Pemilihan dua buah kromosom sebagai orang tua, yang akan dipindahsilangkan, biasanya dilakukan secara proporsional sesuai dengan nilai fitnessnya. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai obyektif dirinya sendiri terhadap nilai obyektif dari semua individu dalam wadah seleksi tersebut. Nilai fitness kemudian akan digunakan pada tahap seleksi berikutnya. Ada beberapa macam proses seleksi yang ada pada algoritma genetika, diantaranya (Kusumadewi, 2005): a. Seleksi dengan Roda Roulette (Roulette Wheel Selection), dengan memetakan individu-individu dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya. b. Seleksi berdasarkan Ranking Fitness (Rankbased Fitness), yaitu dengan cara mengurutkan populasi menurut nilai obyektifnya. c. Seleksi Pengambilan Sampling Stokastik (Stocastic Universal Sampling), dengan memetakan individu-individu seperti halnya roda roulette, kemudian memberikan sejumlah pointer sebanyak individu yang ingin diseleksi pada garis tersebut.

18 d. Seleksi Lokal (Local Selection), seleksi yang dilakukan hanya pada konstrain tertentu. e. Seleksi dengan Pemotongan (Truncation Selection), seleksi buatan yang biasanya digunakan oleh polulasi yang jumlahnya sangat besar. f. Seleksi dengan Turnamen (Tournament Selection), menetapkan suatu nilai turnamen untuk individu-individu yang dipilih secara acak dari suatu populasi. 2.2.1.4 Proses Rekombinasi Proses rekombinasi adalah proses untuk menyilangkan dua kromosom sehingga membentuk kromosom baru yang harapannya lebih baik dari pada induknya. Rekombinasi dikenal juga dengan nama crossover. Tidak semua kromosom pada suatu populasi akan mengalami proses rekombinasi. Kemungkinan suatu kromosom mengalami proses rekombinasi didasarkan pada probabilitas crossover yang telah ditentukan terlebih dahulu. Probabilitas crossover menyatakan peluang suatu kromosom akan mengalami crossover. Parameter yang penting dalam proses kawin silang adalah crossover rate yang merupakan nilai perbandingan jumlah kromosom yang diharapkan akan mengalami kawin silang terhadap jumlah kromosom dalam satu populasi. Crossover rate yang tinggi akan memungkinkan pencapaian alternatif solusi yang lebih bervariasi dan mengurangi kemungkinan menghasilkan nilai optimum yang tidak dikehendaki, Tetapi bila nilai ini terlalu tinggi akan mengakibatkan pemborosan waktu untuk melakukan perhitungan di daerah solusi yang tidak menjanjikan hasil yang optimal. Rekombinasi juga dapat berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini digunakan suatu aturan bahwa pindah silang hanya bisa dilakukan dengan suatu probabilitas tertentu, artinya pindah silang bisa dilakukan

19 hanya jika suatu bilangan random yang dibangkitkan kurang dari probabilitas yang ditentukan tersebut. Pada umumnya probabilitas tersebut diset mendekati 1. 2.2.1.5 Proses Mutasi Proses mutasi adalah proses penambahan nilai acak yang sangat kecil dengan probabilitas rendah pada variabel keturunan. Peluang mutasi didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak dievaluasi, tetapi bila peluang mutasi ini terlalu besar maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya dan algoritma juga akan kehilangan kemampuan untuk belajar dari history pencarian (Kusumadewi, 2005). Ada beberapa macam proses mutasi yang ada pada algritma genetika, diantaranya: a. Mutasi bilangan real, dengan mendefinisikan ukuran langkah mutasi, kecil atau besar. b. Mutasi biner, dengan mengganti satu atau beberapa nilai gen dari kromosom. 2.2.1.6 Elitisme Karena seleksi dilakukan secara random, maka tidak ada jaminan bahwa suatu individu bernilai fitness tertinggi akan selalu terpilih. Kalaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitnessnya menurun) karena proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau lebih kopinya. Prosedur ini dikenal sebagai elitisme.

20 2.3 Penentuan Parameter Parameter digunakan dalam algoritma genetika untuk memberikan suatu probabilitas yang berupa persentase. Parameter disini adalah parameter kontrol algoritma genetika, yaitu : ukuran populasi (popsize), peluang crossover ( ) dan peluang mutasi ( ). Nilai parameter ini ditentukan juga berdasarkan permasalahan yang akan dipecahkan. Menurut Kusumadewi dan Purnomo (2005), ada beberapa rekomendasi yang bisa digunakan untuk menentukan nilai parameter tersebut, antara lain : c m a. Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong merekomendasikan untuk nilai parameter control : (popsize; c ; m ) = (50; 0,6; 0,001) b. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette merekomendasikan : (popsize; c ; m ) = (30; 0,95; 0,01) c. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya adalah : (popsize; c ; m ) = (80; 0,45; 0,01) Ukuran populasi (pop size) merupakan kumpulan kromosom dalam populasi (dalam satu generasi). Probabilitas crossover merupakan persentase dari seringnya melakukan crossover. Jika tidak ada crossover, offspring (turunan) pasti meniru dari parent (induk). Jika ada crossover, offspring dibuat dari bagian kromosom parent. Jika kemungkinan crossover 100%, maka semua offspring dibuat oleh crossover. Jika 0%, generasi baru secara lengkap dibuat dengan meniru kromosom dari populasi lama. Probabilitas mutasi merupakan bagian dari kromosom yang dimutasikan. Jika tidak ada mutasi, offspring langsung mengambil dari crossover (atau meniru) dengan tidak mengubah lagi. Jika dilakukan mutasi, bagian kromosom diubah. Jika kemungkinan mutasi adalah 100%, seluruh kromosom diubah dan jika kemungkinan

21 mutasi adalah 0%, tidak ada yang diubah. Mutasi dibuat untuk mencegah penurunan algoritma genetika ke dalam nilai ekstrem lokal, tapi ini tidak sering terjadi karena algoritma genetika akan mengubah fakta dengan random search. 2.4 Keunggulan dari Aplikasi Algoritma Genetika dalam Proses Optimasi Ada tiga keunggulan dari aplikasi algoritma genetika dalam proses optimasi, yaitu: a. Algoritma genetika tidak terlalu banyak memerlukan persyaratan matematika dalam penyelesaian proses optimasi, dan dapat diaplikasikan pada beberapa jenis fungsi obyektif dengan beberapa fungsi pembatas baik berbentuk linier maupun non-linier. b. Operasi evolusi dari algoritma genetika sangat efektif untuk mengobservasi posisi global secara acak. c. Algoritma genetika mempunyai fleksibilitas untuk diimplementasikan secara efisien pada problematika tertentu. 2.5 Langkah-langkah Algoritma Sederhana untuk Pencarian Jalur Terpendek Berikut adalah langkah algoritma genetika sederhana untuk pencarian jalur terpendek: ` Langkah 1: Inisialisasi generasi awal. Generasi awal harus diinisialisasi kosong, sehingga belum ada generasi. Generasi = 0. Langkah 2: Inisialisasi populasi awal, P (generasi) secara acak. Populasi yang ditentukan di inisialisasi secara acak. Langkah 3: Evaluasi nilai fitness pada setiap individu dalam P (generasi). Nilai fitness adalah nilai yang menunjukkan kualitas suatu kromosom dalam populasi.

22 Langkah 4: a. Menambahkan generasi baru dengan persamaan: generasi = generasi+1 b. Seleksi populasi tersebut untuk mendapatkan kandidat induk P (generasi). c. Lakukan crossover pada P (generasi). d. Lakukan mutasi pada P (generasi). e. Lakukan evaluasi fitness setiap individu pada P (generasi). f. Bentuk populasi baru, P (generasi) ={P(generasi1) yang bertahan, P (generasi)}. Secara umum, blok diagram (flowchat) dari mekanisme kerja algoritma genetika adalah seperti gambar dibawah ini. Gambar 2.4 Flowchart Algoritma Genetik

23 2.6 Matlab MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan sifat dan bentuk matriks. Salah satu aspek yang sangat berguna dari MATLAB adalah kemampuannya untuk menggambarkan berbagai jenis grafik, sehingga kita bisa memvisualisasikan data dan fungsi yang kompleks. MATLAB memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, khususnya yang berhubungan dengan matriks dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic. Pada awalnya MATLAB hanya dikenal sebagai Matrik Laboratory, tetapi sesuai dengan perkembangannya MATLAB adalah bahasa yang canggih untuk komputasi teknik. Di dalamnya terdapat kemampuan penghitungan, visualisasi, dan pemograman dalam suatu lingkungan yang mudah untuk digunakan karena permasalahan dan pemecahannya dinyatakan dalam notasi matematika biasa. Sebagai sebuah sistem, MATLAB tersusun dari bagian utama: a. Development Environment Development Environment merupakan sekumpulan perangkat dan fasilitas untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path. b. MATLAB Mathematical Function Library MATLAB Mathematical Function Library merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar seperti: sum, sin, cos, dan complex

24 arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms. c. MATLAB Language MATLAB Language merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik "pemrograman dalam lingkup sederhana " untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang komplek. d. Graphics MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk visualisasi data dua dimensi dan data tiga dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan untuk memunculkan grafik mulai dari bentuk yang sederhana sampai dengan tingkatan graphical user interfaces. e. MATLAB Application Program Interface (API). Application Program Interface (API) merupakan suatu library yang memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinteraksi dengan MATLAB. 2.6.1 Fungsi M-File Fungsi M-file hampir sama dengan script file dimana keduanya merupakan suatu file teks dengan ekstensi.m. Fungsi M-file ini tidak dimasukkan dalam command window, melainkan suatu file tersendiri yang dibuat dalam editor teks (MATLAB editor/ debugger). Suatu fungsi M-File harus mengikuti beberapa aturan. Fungsi M-file juga mempunyai sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi:

25 a. Nama fungsi dan nama file harus identik. Contohnya flipud disimpan dalam file yang bernama flipud.m. b. Pertama kali MATLAB mengeksekusi suatu fungsi M-file, MATLAB membuka file fungsi tersebut dan mengkompilasi perintah-perintah di dalamnya menjadi suatu representasi internal dalam memoriyang mempercepat eksekusi untuk semua pemanggilan berikutnya. Jika fungsi juga melibatkan pemanggilan ke fungsi M-file yang lain, fungsi M-file yang dipanggil itu juga akan dikompilasi ke dalam memori. c. Baris komentar sampai dengan baris bukan komentar yang pertama adalah teks help yang ditampilkan. Jika anda meminta help, misalnya >>help flipud yang menampilkan 9 baris komentar pertama dari contoh di atas. Baris komentar yang paling atas disebut baris H1 adalah baris yang dicari oleh perintah look for. d. Setiap fungsi memiliki ruang kerjanya sendiri yang berbeda dengan ruang kerja MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan variabel-variabel dalam fungsi adalah variabelvariabel input dan output fungsi. Jika suatu fungsi mengubah nilai dalam bentuk suatu variabel input, perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi ruang kerja MATLAB. e. Jumlah dari argument input dan output yang digunakan jika suatu fungsi dipanggil hanya ada dalam fungsi tersebut. f. Fungsi dapat berbagi variabel dengan fungsi lain, ruang kerja MATLAB dan pemanggilan rekursi untuk dirinya sendiri jika variabelnya dideklarasikan sebagai variabel global. g. Fungsi M-file berhenti dieksekusi dan kembali ke prompt jika telah mencapai akhir dari M-file atau jika menemui perintah return. Perintah return merupakan cara sederhana untuk menghentikan fungsi sebelum mencapai akhir file. h. Fungsi M-file dapat memuat lebih dari sebuah fungsi.

26 Ada beberapa macam window yang tersedia dalam MATLAB, yang dapat dijelaskan sebagai berikut: a. MATLAB Command window/ editor MATLAB Command window/ editor merupakan window yang dibuka pertama kali setiap kali MATLAB dijalankan. Pada dasarnya jendela inilah inti dari pemrograman matlab yang menjadi media utama satusatunya untuk berinteraksi dengan matlab. b. MATLAB Editor/ Debugger (Editor M-File/ Pencarian Kesalahan) Berfungsi sebagai editor script Matlab (M-file). Walaupun sebenarnya script ini untuk pemrograman Matlab dapat saja menggunakan editor yang lain seperi notepad, wordpad bahkan word, namun sangat dianjurkan untuk menggunakan matlab editor karena kemampuannya dalam mendeteksi kesalahan pengetikan sintaks oleh programmer. (Sugiharto, 2006). c. Figure Windows Window ini adalah hasil visualisasi dari script Matlab. Namun Matlab memberi kemudahan bagi programer untuk mengedit window ini sekaligus memberikan program khusus untuk itu. Sehingga window ini selain berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input yang interaktif. d. MATLAB help window MATLAB menyediakan sistem help yang dapat diakses dengan perintah help.