IMPLEMENTASI ALGORITMA GENETIKA DALAM ...yang didasarkan pada residual antara keluaran sistem dan...
Transcript of IMPLEMENTASI ALGORITMA GENETIKA DALAM ...yang didasarkan pada residual antara keluaran sistem dan...
IMPLEMENTASI ALGORITMA GENETIKA
DALAM PENENTUAN KANDIDAT MODEL
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer
Oleh :
Yavandy Hosea
NIM : 033124051
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
Perjalanan Hidup
Permulaan Setiap hari adalah saat yang tepat untuk mengatakan pada diri kita sendiri, "Biarkan petualangan baru dimulai"
Antusiasme
Sikap antusiasme tidak hanya menolong kita untuk meraih impian, namun juga membuat perjalanan kita menjadi lebih menyenangkan
Keseimbangan
Setiap putaran pada jalan memerintahkan kita untuk menjaga keseimbangan kita pada perjalanan selanjutnya
Keberanian
Keberanian bertumbuh semakin kuat bila kita mau menghadapi semua tantangan hidup
Sukses
Kesuksesan terletak pada mereka yang meraih sesuatu lebih dari diri mereka sendiri
Skripsi ini kupersembahkan kepada bos besar saya di surga ; Lord Jesus, keluargaku tersayang (mama ; Lilian H, papa ; Yap Cu Leng, ce Ningsih, ce Vinny, adikku Fanny H, keponakanku Elgina, Michael, Baby) kalian adalah
semangat dalam hidupku, terima kasih atas segala doa, kasih sayang, serta semangat yang telah diberikan selama ini.
Almamaterku tercinta
IMPLEMENTASI ALGORITMA GENETIKA
DALAM PENENTUAN KANDIDAT MODEL
INTISARI
Salah satu cara untuk mengefisiensikan pemakaian energi untuk
pengkondisian temperatur di dalam rumah adalah dengan mengenali perilaku dan
karakter perubahan temperaturnya. Pengenalan karakter dapat dilakukan dengan
mencari model perubahan temperatur di dalam rumah tersebut. Ada berbagai cara
untuk melakukan pemodelan, diantaranya adalah dengan teknik identifikasi
berdasarkan hasil pengukuran masukan-keluarannya.
Pada penulisan tugas akhir ini disajikan hasil penelitian yaitu pengembangan
teknik identifikasi sistem dengan menggunakan algoritma genetika. Algoritma
genetika yang dikembangkan dalam penelitian ini menggunakan fungsi fitness
yang didasarkan pada residual antara keluaran sistem dan keluaran model.
Pengukuran masukan-keluaran dalam penelitian ini dilakukan pada suatu rumah
model yang temperaturnya dapat divariasikan.
Dengan teknik identifikasi menggunakan algoritma genetika, karakter
perubahan temperatur dalam rumah model dapat didekati menggunakan model
Auto Regressive Moving Average with Exogenous Input (ARMAX). Hasil yang
diperoleh untuk proses pemanasan dan pendinginan dalam rumah model adalah
model dengan struktur ARMAX orde 3. Model tersebut diperoleh dengan nilai
fitness terbaik 0,89 untuk proses pemanasan dan 0,98 untuk proses pendinginan.
Kata Kunci : Algoritma Genetika, ARMAX, Pemodelan, Sistem Identifikasi.
IMPLEMENTATION OF GENETIC ALGORITHM IN
DETERMINING MODEL CANDIDATE
ABSTRACT
One method for decreasing energy consumption to control the temperature
in a house is to identify it’s characteristics first. To identify the characteristics we
have to find the model of the temperature changes in that house. There are many
methods to build a model. One of them is based on input-output measurement.
This undergraduate thesis presents the result of a research about system
identification technique using genetic algorithm. The fitness function is the
residue of the output of the system and the model. The measurement of input-
output in this research was applied in ‘model house representing heating/cooling
system’ with varying temperature.
By using genetic algorithm and ARMAX (Auto Regressive Moving Average
with Exogenous Input) approach we can identify the characteristic of the model
house. The result is 3rd order ARMAX structure model , with the fitness 0,89 for heating process and 0.98 for cooling process.
Keyword : Genetic Algorithm, ARMAX, Modeling, Identification System.
KATA PENGANTAR
Puji syukur kepada Allah Bapa yang maha baik sehingga penulis dapat
menyelesaikan skripsi ini dengan lancar. Atas segala kekuatan dan kesehatan yang
diberikan-Nya, baik sebelum ataupun selama penulis mengerjakan skripsi ini.
Penulisan skripsi ini disusun sebagai salah satu syarat untuk memperoleh
gelar Sarjana Sains (S.Si) Program Studi Ilmu Komputer di Fakultas Sains dan
Teknologi Universitas Sanata Dharma .
Pada kesempatan ini, tidak lupa penulis menyampaikan ucapan terima
kasih yang sebesar-besarnya kepada :
Bapak Haris Sriwindono selaku dosen pembimbing penulisan skripsi dan
dosen pembimbing akademik. Terima kasih atas segala bantuan, kesabaran
serta waktu yang telah disediakan kepada penulis selama penulisan skripsi ini.
Romo Gregorius Heliarko selaku Dekan Fakultas Sains dan Teknologi.
Seluruh dosen-dosen di Fakultas Sains dan Teknologi. Terima kasih atas
semua bimbingan, kesabaran, pengetahuan dan kesempatan yang saya terima
sejak menjadi mahasiswa di Fakultas Sains dan Teknologi.
Pejabat Struktural di Fakultas Sains dan Teknologi. Terima kasih atas segala
kemudahan dan fasilitas yang diberikan kepada penulis selama belajar di
Fakultas Sains dan Teknologi.
Seluruh karyawan Fakultas Sains dan Teknologi. Terima kasih atas
kemudahan-kemudahan yang selama ini saya terima.
Bapak Purwanta selaku kepala PPKKN, yang telah memberikan kemudahan
dalam menjalankan KKN, serta ibu Santi selaku koordinator pelaksanaan
KKN. Terima kasih atas segala kesempatan dan pembelajaran yang diberikan.
Temen spesialku ATA. Hidup ini jadi hampa tanpamu.
Sahabatku Clara, terima kasih atas semangat yang telah diberikan selama ini.
Teman-teman kos Patria : Sugi, Henry, Edo, Andis, Bendot, Omen, Willy,
Gompis, Dedek, Dadit, Yossi, Yandi, dan Seul. Terima kasih atas
kebersamaannya selama ini
Teman – teman ku angkatan 2003. Terima kasih atas kebersamaannya.
Sahabatku Ronald, terima kasih atas kebersamaan dan pengalaman berharga
yang saya dapat dari kamu.
Buat my little friends ; Miki, pak gendut, bu gendut, si gendut, si redcap, si
putih, si merah, si pesolek dan si alien.
Semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu
dalam penyelesaian skripsi ini
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan. Walaupun
demikian penulis berharap semoga skripsi ini dapat bermanfaat bagi masyarakat
dan perkembangan ilmu pengetahuan alam.
Penulis
DAFTAR ISI
Halaman HALAMAN JUDUL...................................................................................... i HALAMAN PERSETUJUAN PEMBIMBING............................................. ii HALAMAN PENGESAHAN........................................................................ iii HALAMAN PERSEMBAHAN..................................................................... iv PERNYATAAN KEASLIAN KARYA......................................................... v PERNYATAAN PERSETUJUAN PUBLIKASI........................................... vi ABSTRAK...................................................................................................... vii ABSTRACT.................................................................................................... viii KATA PENGANTAR.................................................................................... ix DAFTAR ISI................................................................................................... xi
BAB I PENDAHULUAN............................................................................... 1 A. Latar Belakang.......................................................................................... 1 B. Rumusan Masalah..................................................................................... 5 C. Batasan Masalah....................................................................................... 5 D. Tujuan Penelitian...................................................................................... 6 E. Metodologi Penelitian............................................................................... 7 F. Sistematika Penulisan............................................................................... 8
BAB II DASAR TEORI................................................................................. 9 A. Latar Belakang Biologi............................................................................. 9B. Algoritma Genetika.................................................................................. 11 1. Deskripsi Algoritma Genetika............................................................ 12 2. Struktur Umum Algoritma genetika................................................... 14 3. Operator dan fungsi evaluasi.............................................................. 17C. Deskripsi Implementasi AG dalam Penentuan Kandidat Model……….. 19
BAB III ANALISIS DAN PERANCANGAN SISTEM………………….... 20 A. Pendahuluan……………………………………………………………. 20B. Analisis Sistem…………………………………………………………. 20 1. Representasi Masalah………………………………………………. 21 2. Pembangkitan Kromosom………………………………………….. 22 3. Penentuan Nilai Fitnes untuk masing-masing Kromosom…………. 22 4. Pemilihan Kromosom untuk dijadikan Orangtua............................... 22 5. Proses Reproduksi untuk Mendapatkan kromosom-kromosom yang Baru............................................................................................ 23C. Perancangan…………………………………………………………….. 23 1. Representasi Kromosom..................................................................... 23 2. Pembangkitan Kromosom.................................................................. 24 3. Penentuan nilai fitness untuk masing-masing kromosom................... 24 4. Pemilihan kromosom untuk dijadikan orangtua................................. 24 5. Operasi Persilangan atau Crossover .................................................. 25 6. Proses Mutasi...................................................................................... 28
Halaman 7. Ilustrasi Masalah Penentuan Kandidat Model.................................... 288. Perancangan Menu............................................................................. 329. Perancangan Pemrosesan Algoritma Genetika.................................. 3310. Perancangan Tentang Algoritma Genetika........................................ 39 11. Perancangan Bantuan......................................................................... 39
BAB IV IMPLEMENTASI DAN ANALISA HASIL PROGRAM.............. 41 A. Flowchart.................................................................................................. 41B. Implementasi Program.............................................................................. 42 1. Implementasi Reperesentasi Kromosom............................................. 42 2. Implementasi Pembangkitan Populasi Awal....................................... 42 3. Implementasi Penginputan Data Masukan Tegangan......................... 43 4. Implementasi Pembacaan String Berkas Menjadi Numerik............... 45 5. Implementasi Pemilihan Kromosom untuk dijadikan Orangtua........ 46 6. Implementasi Operasi Persilangan atau Crossover............................ 47 7. Implementasi Operasi Mutasi............................................................. 48C. Implementasi Antar Muka........................................................................ 50D. Hasil dan Pembahasan.............................................................................. 55
BAB V PENUTUP........................................................................................ 60 A. Kesimpulan............................................................................................... 60 B. Saran......................................................................................................... 60 DAFTAR PUSTAKA..................................................................................... 61
BAB I
PENDAHULUAN
A. Latar Belakang
Sejak tahun 1960, terdapat perhatian untuk menirukan kehidupan
makhluk hidup. Hal tersebut bertujuan untuk menyelesaikan berbagai macam
masalah optimasi yang mempunyai kompleksitas tinggi. Algoritma
Evolusioner adalah simulasi evolusioner proses alam makhluk hidup pada
teknik optimasi stokastik. Saat ini, terdapat tiga topik utama dalam penelitian
yaitu : genetic algorithms (GA), evolutionary programming (EP), dan
evolution strategies (ES). Diantara ketiga topik tersebut, algoritma genetika
merupakan algoritma evolusioner yang paling banyak digunakan.
Algoritma genetika pertama kali dikenalkan oleh John Holland dan
murid-muridnya di Universitas Michigan pada tahun 1960. Algoritma
genetika adalah algoritma yang berdasarkan konsep teori evolusi alam dan
genetika. Teori evolusi alam dan genetika pertama kali ditemukan oleh
Charles Darwin. Dalam teori genetika disebutkan bahwa sifat tertentu dari
suatu makhluk hidup ditentukan oleh susunan gen dalam kromosom makhluk
hidup tersebut. Teori genetika dalam algoritma genetika digunakan untuk
merepresentasikan setiap solusi dari masalah yang ada, karena setiap solusi
diandaikan mempunyai kromosom yang berbeda dengan solusi lainnya.
Sedangkan evolusi alam adalah proses seleksi terhadap anggota dari berbagai
populasi berdasarkan tingkat ketahanan hidup suatu makhluk hidup. Proses-
proses dalam evolusi alam yang digunakan dalam algoritma genetika adalah
seleksi alam dan reproduksi. Proses seleksi alam digunakan untuk memilih
suatu solusi yang baik, sedangkan proses reproduksi digunakan untuk
menghasilkan solusi baru yang diharapkan mempunyai kromosom lebih baik
dari solusi sebelumnya.
Algoritma genetika diawali dengan himpunan solusi yang disebut
populasi. Setiap individu pada populasi disebut kromosom yang
menggambarkan sebuah solusi dari masalah yang akan diselesaikan. Sebuah
kromosom dapat dinyatakan dalam simbol string misalnya kumpulan string
bit. Kromosom-kromosom dapat berubah terus-menerus yang disebut juga
regenerasi. Pada setiap generasi, kromosom dievaluasi dengan menggunakan
alat ukur yang disebut fitness (tingkat kesesuaian). Untuk membuat generasi
berikutnya, kromosom-kromosom baru yang disebut offspring (keturunan)
terbentuk dengan cara menggabungkan dua kromosom dari generasi sekarang
dengan menggunakan operator crossover (persilangan) atau mengubah sebuah
kromosom dengan menggunakan operator mutasi. Generasi baru dibentuk
dengan cara seleksi yang dilakukan terhadap parent dan offspring berdasarkan
nilai fitness. Kromosom dengan nilai fitness yang tinggi ini akan memberikan
probabilitas yang tinggi untuk bereproduksi pada generasi selanjutnya.
Sehingga untuk setiap generasi pada proses evolusi, fungsi fitness yang
mensimulasikan seleksi alam, akan menekan populasi kearah fitness yang
meningkat. Setelah beberapa generasi, algoritma ini akan konvergen kearah
bentuk kromosom yang lebih baik, dengan harapan dapat menyatakan solusi
optimal dari masalah yang diselesaikan.
Algoritma genetika sangat tepat digunakan untuk penyelesaian
masalah optimasi yang kompleks dan sukar diselesaikan dengan menggunakan
metode yang konvensional. Sebagaimana halnya proses evolusi di alam, suatu
algoritma genetika yang sederhana umumnya terdiri dari tiga operator yaitu :
operator reproduksi, operator crossover (persilangan) dan operator mutasi.
Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan
langkah-langkah sebagai berikut :
1. Membangkitkan populasi awal, populasi awal ini dibangkitkan secara
random sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari
sejumlah kromosom yang merepresentasikan solusi yang diinginkan.
2. Membentuk generasi baru, dalam membentuk generasi baru digunakan tiga
operator yang telah di sebutkan di atas yakni operator reproduksi/seleksi,
crossover, dan mutasi. Proses ini dilakukan berulang-ulang sehingga
didapatkan jumlah kromosom yang cukup untuk membentuk generasi baru
dimana generasi baru ini merupakan representasi dari solusi baru.
3. Evaluasi solusi, proses ini akan mengevaluasi setiap populasi dengan
menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai
terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi maka
akan dibentuk lagi generasi baru dengan mengulangi langkah 2. Beberapa
kriteria berhenti yang sering digunakan antara lain :
* Berhenti pada generasi tertentu.
* Berhenti setelah dalam beberapa generasi berturut-turut didapatkan
nilai fitness tertinggi tidak berubah.
* Berhenti bila dalam n generasi berikut tidak didapatkan nilai
fitness yang lebih tinggi.
Masalah Pengaturan kondisi ruangan dalam sebuah gedung atau rumah
dilakukan dengan memperhatikan beberapa hal yang diantaranya adalah
konsumsi energi. Konsumsi energi juga dipengaruhi oleh beberapa hal yaitu
temperatur luar ruangan, aliran udara, pengkondisian udara yaitu pendinginan
atau pemanasan. Pengaturan temperatur suatu rumah untuk mengatur keadaan
udara agar tetap memenuhi kondisi dan persyaratan tertentu telah banyak
dilakukan. Salah satu cara agar pemakaian energi dapat efisen, maka perilaku
dan karakter sistem yaitu perubahan dari panas ke dingin dan sebaliknya harus
dikenali terlebih dahulu. Salah satu cara untuk mengenali karakter sistem
adalah dengan melakukan pemodelan sistem. Untuk keperluan tersebut
biasanya pengamatan dilakukan pada suatu rumah model. Ada beberapa
metode yang dapat digunakan untuk melakukan pemodelan, yang diantaranya
adalah dengan teknik identifikasi sistem dengan mencari hubungan antara
masukan dan keluaran. Beberapa algoritma dapat diterapkan untuk
melakukan teknik identifikasi. Dalam penulisan ini digunakan teknik
identifikasi dengan menggunakan algoritma genetika. Pemodelan dengan
metode ini harus ditentukan terlebih dahulu kandidat model dengan struktur
model yang telah ditentukan (Johanson,1993).
B. Rumusan Masalah
Berdasarkan latar belakang permasalahan yang terjadi maka rumusan
masalahnya adalah : “Bagaimana teknik identifikasi dengan menggunakan
Algoritma Genetika menentukan karakteristik rumah model yang optimum
pada proses pemanasan atau pendinginan ?.”
C. Batasan Masalah
Dalam pembahasan topik tersebut, akan dilakukan pembatasan
masalah sebagai berikut :
1. Struktur kandidat model dibentuk dengan orde yang telah ditetapkan yakni
na=3, nb=2, nc=2. Untuk proses pemanasan strukturnya adalah :
Y(t) a1 y(t 1) a2 y(t 2) a3 y(t 3) b1 u(t 2) b2u(t 3) c1e(t) c2e(t 1)
sedangkan untuk proses pendinginan :
Y (t) a1 y(t 1) a2 y(t 2) a3 y(t 3) b1 u(t 1) b2 u(t 2) c1e(t) c2 e(t 1)
2. y(t) dan u(t) merupakan data masukan tegangan yang diinputkan melalui
file, sedangkan e(t) merupakan nilai random yang berkisar antara 3%-5%
dari nilai rata-rata y(t).
3. Untuk tiap kromosom dalam populasi digunakan data simulasi, yakni
dengan mengenerate secara random. Struktur kromosom yang dipakai
dalam pemrosesan algoritma genetika mengikuti persamaan diatas yakni :
{ [ a1 a2 a3 ] [ b1 b2] [ c1 c2 ] }.
4. Kriteria berhenti dalam proses evolusi adalah berhenti pada generasi
tertentu (iterasi tertentu).
5. Fungsi fitness yang digunakan dalam pencarian kandidat model terbaik
dinyatakan pada persamaan berikut :
f 1 1E
dengan
n
e(i) 2
E i 1
n
6. Implementasi sistem menggunakan Matlab 6.5.1 dari MathWork.
7. Pembuatan aplikasi sebatas prototype.
D. Tujuan Penelitian
Tujuan yang diharapkan dengan terselesaikannya tugas akhir ini adalah
membuat perangkat lunak yang dapat menentukan kandidat model optimum
pada sebuah sistem yang dikenai proses pemanasan atau pendinginan dengan
teknik identifikasi menggunakan algoritma genetika.
E. Metodologi Penelitian
Metode yang digunakan untuk menyelesaikan masalah tersebut adalah
dengan menggunakan metode Waterfall, dengan langkah-langkah sebagai
berikut:
1. Pengumpulan Kebutuhan Sistem
Pada tahap ini yang dilakukan adalah mengumpulkan data-data yang
terkait dengan sistem antara lain : data inputan yang merupakan hasil
ujicoba penelitian, perangkat keras serta perangkat lunak yang
dibutuhkan.
2. Rancangan Sistem
Pada tahap ini digunakan untuk menyusun modul-modul yang dibutuhkan
dalam sistem, antara lain : struktur data dan algoritma yang digunakan,
prosedur detail, karakteristik antar muka dan keterkaitan antar modul
(model kerja sistem).
3. Penulisan Program
Penulisan sistem merupakan tahap untuk merepresentasikan rancangan
sistem ke dalam program.
4. Pengujian Terhadap Sistem
Tahap ini dilakukan untuk mengetahui apakah sistem sesuai dengan yang
diinginkan, juga digunakan untuk mengetahui kesalahan yang masih
mungkin terjadi.
F. Sistematika Penulisan
a. Bab I Pendahuluan
Bab ini berisi pendahuluan yang akan membahas tentang latar belakang
masalah, rumusan masalah, batasan masalah, tujuan, metodologi dan
sistematika penulisan.
b. Bab II Dasar Teori
Bab ini berisi landasan teori. Dalam landasan teori akan menjelaskan
tentang beberapa konsep yang digunakan dalam memecahkan masalah
tersebut. Dalam konsep tersebut akan dibahas teori yang mendasari dalam
pembuatan aplikasi. Diantaranya pengertian algoritma genetika, seleksi
(reproduksi), crossover, mutasi, probabilitas crossover, probabilitas
mutasi.
c. Bab III Analisis dan Perancangan Sistem
Bab ini berisi analisis dan perancangan aplikasi. Dalam analisis ini akan
dibahas tentang kebutuhan aplikasi sedangkan untuk perancangan aplikasi
akan dibahas tentang rancangan bentuk aplikasi (user interface).
d. Bab IV Implementasi dan Analisa Hasil Program
Berisi tentang hasil pembuatan program dan penjelasan atau analisis
program, serta beberapa contoh keluaran dari data yang dimasukkan serta
pembahasan program.
e. Bab V Penutup
Berisi beberapa kesimpulan dan saran berdasarkan hasil pembuatan
program dan pembahasan program.
BAB II
DASAR TEORI
A. Latar Belakang Biologi
Algoritma genetika adalah algoritma yang dikembangkan berdasarkan
konsep genetika dan teori evolusi alam. Adapun konsep genetika dan teori
evolusi alam tersebut dikemukakan oleh Charles Darwin yang merupakan
seorang ahli biologi. Algoritma genetika sendiri diperkenalkan oleh John
Holland dan teman-temannya di Universitas Michigan pada tahun 1960. Dari
konsep genetika disebutkan bahwa setiap organisme merupakan suatu sistem
yang terdiri dari organ-organ, sedangkan dalam setiap organ terdapat
sekumpulan sel yang membentuk organ. Setiap sel dibagi lagi menjadi
sejumlah kromosom. Setiap kromosom terdiri dari gen-gen yang merupakan
blok DNA. Blok DNA berperan menghasilkan suatu kharakteristik / sifat
tertentu dari makhluk hidup. Karakteristik antara makhluk hidup yang satu
dengan yang lain berbeda. Contohnya : warna kulit, bentuk rambut, dan
sebagainya. Setiap gen terdiri dari sekumpulan kemungkinan allele ( sifat
yang mungkin dibawa gen ) yang masing-masing membawa berbagai variasi
dari karakteristik tertentu. Setiap gen memiliki posisi pada kromosom yang
disebut locus.
Sedangkan evolusi alam adalah proses seleksi terhadap anggota dari
berbagai populasi di bumi berdasar tingkat ketahanan hidup suatu organisme.
Menurut Darwin dalam seleksi alam ini ada pihak yang dapat bertahan hidup
karena ia mempunyai tingkat ketahanan hidup yang lebih tinggi dibandingkan
dengan yang lainnya, dan pihak yang tidak bisa bertahan hidup (mati) karena
mempunyai tingkat ketahanan hidup yang rendah. Jadi dengan kata lain
seleksi alam adalah suatu proses pencarian terhadap anggota populasi yang
dapat bertahan hidup yang sifatnya diturunkan dari genotif (kumpulan gen-gen
tertentu dalam kromosom) untuk mendapatkan struktur yang efisien yang
berguna untuk melaksanakan kegiatan yang diperlukan untuk dapat bertahan
hidup. Proses-proses yang terjadi dalam evolusi alam menjadi konsep dasar
dalam algoritma genetika adalah :
1. Seleksi Alam
Seleksi alam adalah proses pencarian terhadap anggota populasi yang
dapat bertahan hidup karena mereka dapat menyesuaikan diri dengan
lingkungannya.
2. Reproduksi
Reproduksi adalah salah satu proses biologi untuk mempertahankan
kelestarian suatu spesies karena dengan melakukan reproduksi akan
didapatkan keturunan yang sifatnya diturunkan dari induknya. Proses
reproduksi ini dapat dilakukan oleh dua individu ataupun satu individu.
Contoh-contoh proses reproduksi adalah :
a. Crossover (perkawinan silang)
Perkawinan silang adalah suatu proses pertukaran gen dari dua
individu yang mempunyai karakteristik yang berbeda dari induknya
dan diharapkan lebih baik dari induknya.
b. Mutation (Mutasi)
Mutasi adalah proses perubahan materi genetik dari suatu species (satu
individu) dikarenakan individu tersebut melakukan penyesuaian
terhadap lingkungannya(adaptasi) untuk dapat bertahan hidup. Contoh
metode mutasi yang digunakan dalam algoritma genetika adalah
inversion, insertion dan dispalement.
Ruang Pencarian
Ketika mencari penyelesaian suatu masalah, maka dicari solusi yang
terbaik dari semua kemungkinan solusi yang ada. Kumpulan semua
kemungkinan solusi tersebut berada dalam ruang pencarian (search space).
Setiap titik pada ruang pencarian merupakan satu solusi yang mungkin
(feasible solution) dan dapat diberi pengenal dalam bentuk nilai atau fitness-
nya terhadap masalah yang akan diselesaikan. Proses pencarian solusi menjadi
rumit karena tidak diketahui dimana harus mencari atau pencarian dimulai dari
mana. Banyak metode yang dikenal untuk menemukan solusi yang layak,
diantaranya adalah algoritma genetika, yang dibuat berdasarkan analogi
mekanisme yang terjadi terhadap proses evolusi.
B. Algoritma Genetika
Algoritma genetika merupakan suatu metode penyelesaian yang
tergolong heuristic dimana algoritma genetika menganalogikan evolusi biologi
yang mempunyai sifat dan cara kerja meniru proses evolusi alam. Ciri-ciri
dari algoritma heuristic adalah selalu menemukan solusi yang baik walaupun
belum tentu merupakan solusi yang optimal atau terbaik dan lebih cepat serta
mudah untuk diimplementasikan daripada algoritma terperinci (eksak) yang
diketahui menjamin memberikan solusi optimal. Sedangkan untuk ciri-ciri
dari algoritma genetika adalah bekerja dengan sebuah himpunan pengkodean
solusi, mencari solusi dari suatu populasi dengan menggunakan informasi
fungsi fitness, serta menggunakan operasi random dengan aturan perubahan
probabilitas, bukan operasi dengan aturan tertentu dalam setiap iterasi.
Algoritma genetika dapat menyelesaikan masalah optimasi yang
kompleks. Beberapa aplikasi algoritma genetika yaitu job-shop scheduling
problem, sistem dinamikal nonlinear, perancangan jaringan syaraf tiruan,
lintasan robot, program LISP, strategi perencanaan, penemuan bentuk
molekul-molekul protein, dan fungsi untuk pembuatan gambar-gambar.
1. Deskripsi Algoritma Genetika
Algoritma genetika adalah teknik pencarian stokastik yang
mendasarkan pada mekanisme seleksi alam dan sifat genetika. Dalam
implementasinya algoritma genetika meniru beberapa proses yang terdapat
pada evolusi alam. Evolusi tersebut terjadi pada kromosom. Individu-
individu yang ada pada saat tertentu dalam suatu populasi merupakan
individu yang berhasil mempertahankan hidupnya, sedangkan yang lemah
akan punah. Individu-individu yang bertahan akan membentuk individu-
individu baru.
Teori dasar evolusi tersebut bila diimplementasikan dalam bentuk
algoritma maka diharapkan mampu menyelesaikan masalah-masalah yang
mempunyai kompleksitas tinggi dengan cara yang sama seperti yang
dilakukan oleh makhluk hidup melalui evolusi.
Istilah-istilah yang digunakan algorima genetika, dijelaskan pada
tabel dibawah ini :
Tabel 2.1 Penjelasan istilah-istilah yang digunakan dalam
algoritma genetika
Istilah dalam algoritma
genetika
Keterangan
Populasi Himpunan solusi
Kromosom Solusi
Gen Bagian dari solusi
Parent Solusi yang akan dikenakan proses
peersilangan atau mutasi
Offspring Solusi baru yang akan dihasilkan
melalui proses persilangan atau mutasi.
Persilangan Proses yang melibatkan dua solusi
untuk mendapatkan solusi baru
Mutasi Proses yang melibatkan satu solusi
untuk mendapatkan solusi baru.
2. Struktur Umum Algoritma Genetika
Bila P(t) dan C(t) adalah induk dan keturunan pada generasi t,
struktur umum algoritma genetikanya adalah sebagai berikut :
Procedure Algoritma Genetika
begin
t 0
initialize P(t);
evaluate P(t);
while (not terminate condition) do
recombine P(t) to yield C(t);
evaluate C(t);
select P(t+1) from P(t) and C(t);
t t + 1;
end
end
Struktur umum algoritma genetika dapat pula dideskripsikan seperti pada
gambar 2.1 :
Ilustrasi Algoritma Genetika
crossover
cromosomes
110010 1010 101110 1110
solutions
encoding 1100101010 1011101110 0011011001 1100110001
110010 1110 101110 1010
mutation
0011011001
0011001001
new population
selection
offspring
1100101110 1011101010 0011001001
decoding
solutions
Fitness computation
Gambar 2.1. Struktur Umum Algoritma Genetika
Keterangan gambar 2.1
Dalam menyelesaikan suatu masalah , algoritma genetika diawali
dengan menginisialisasi himpunan solusi yang dibangkitkan secara
random. Himpunan solusi ini disebut populasi. Setiap individu pada
populasi disebut kromosom yang menggambarkan sebuah solusi dari
masalah yang akan diselesaikan. Sebuah kromosom dapat dinyatakan
dalam simbol string misalnya kumpulan string bilangan pecahan.
Kromosom-kromosom dapat berubah terus-menerus yang disebut juga
regenerasi. Pada setiap generasi, kromosom dievaluasi dengan
menggunakan alat ukur yang disebut fitness (tingkat kesesuaian). Untuk
membuat generasi berikutnya, kromosom-kromosom baru yang disebut
offspring (keturunan) terbentuk dengan caramenggabungkan dua
kromosom dari generasi sekarang dengan menggunakan operator
crossover (persilangan) atau mengubah sebuah kromosom dengan
menggunakan operator mutasi. Generasi baru terbentuk dengan cara
seleksi yang dilakukan terhadap parents dan offspring berdasarkan nilai
fitness-nya dan menghilangkan yang lainnya. Kromosom-kromosom yang
lebih sesuai memiliki probabilitas untuk diplih. Setelah beberapa generasi,
algoritma ini akan konvergen ke arah bentuk kromosom yang lebih baik,
dengan harapan dapat menyatakan solusi optimal dari permasalahan yang
diselesaikan.
3. Operator dan Fungsi Evaluasi
Biasanya, inisialisasi diasumsikan secara random. Rekombinasi
melibatkan crossover dan mutasi untuk menghasilkan offspring. Pada
kenyataannya, hanya ada dua jenis operasi pada algoritma genetika, yaitu
operasi genetik (crossover/persilangan dan mutasi) dan operasi evolusi
(seleksi). Persilangan berfungsi menggabungkan dua string induk yang
berbeda menjadi dua string keturunan yang berbeda dengan induknya.
Mutasi berperan dalam melakukan perubahan yang bukan disebabkan oleh
persilangan. Pada teori evolusi, mutasi ini merupakan operator kromosom
yang memungkinkan makhluk hidup melakukan penyesuaian dengan
lingkungannya walaupun lingkungan barunya tidak sesuai dengan
lingkungan induknya semula.
Faktor terbesar dalam teori evolusi yang menyebabkan suatu
kromosom bertahan, punah, melakukan persilangan atau mutasi adalah
lingkungan. Pada algoritma genetika, faktor lingkungan diperankan oleh
fungsi evaluasi. Fungsi evaluasi menggunakan kromosom sebagai
masukan dan menghasilkan angka tertentu yang menunjukkan kinerja pada
masalah yang diselesaikan. Pada masalah optimasi, fungsi evaluasi adalah
fungsi tujuan (objective function). Nilai fungsi evaluasi ini disebut nilai
kesesuaian (fitness value). Nilai inilah yang akan menentukan apakah
suatu string akan muncul pada generasi berikutnya atau tidak. Dalam
menyelesaikan masalah dengan menggunakan algoritma genetika perlu di
definisikan terlebih dahulu beberapa parameter yang diperlukan, antara
lain :
a. Probabilitas Crossover
Probabilitas crossover ini juga dapat menunjukkan peluang terjadi
proses crossover (persilangan) dalam populasi pada setiap generasi.
Biasanya besarnya probabilitas crossover berkisar antara 10 – 90 %
b. Probabilitas Mutasi
Probabilitas mutasi menunjukkan peluang terjadinya proses mutasi
dari jumlah tertentu proses crossover yang tejadi pada populasi.
c. Population size
Population size menunjukkan jumlah kromosom yang ada dalam
populasi. Pada umumnya besarnya population size yang digunakan
adalah 3 – 20 kromosom.
C. Deskripsi Implementasi Algoritma genetika dalam Penentuan Kandidat
Model
Masalah penentuan Kandidat Model merupakan persoalan pencarian
model matematika dalam hal ini adalah struktur kromosom yang memiliki
nilai fitness yang optimum. Diketahui struktur dari model yang akan dicari
nilai variabelnya, misalnya untuk proses pemanasan dinyatakan dengan :
Y(t) a1 y(t 1) a2 y(t 2) a3 y(t 3) b1 u(t 2) b2u(t 3) c1e(t) c2e(t 1)
Dari struktur diatas terlihat bahwa orde untuk a = 3 dan b = c = 2, maka
algoritma genetika dapat diimplementasikan untuk menentukan model terbaik
dengan menentukan nilai parameter-parameter a, b dan c. Kromosom yang
akan diproses dengan algoritma genetika adalah {[a1 a2 a3]; [b1 b2 ]; [ c1
c2]} dan {[a1 a2 a3]; [b1 b2 ]; [ c2 c2]}masing-masing untuk proses
pemanasan dan pendinginan.
Nilai parameter a, b dan c dibangkitkan (generate) secara random
dan diolah dengan data masukan tegangan menghasilkan sebuah nilai yang
disimpan pada variabel E, nilai tersebut kemudian dimasukkan pada fungsi
fitness untuk mencari nilai fitness dari parameter sebuah kromosom. Untuk
populasi awal kromosom dicari semua nilai fitness awalnya. Setelah itu
menggunakan operator seleksi, operator crossover dan operator mutasi dalam
proses evolusi/pencarian nilai fitness yang tinggi. Nilai fitness tertinggi dalam
n generasi tertentu akan menjadi kandidat model terpilih.
BAB III
ANALISIS DAN PERANCANGAN SISTEM
A. Pendahuluan
Dalam menyelesaikan masalah penentuan kandidat model dengan
menggunakan Algoritma Genetika, metode yang digunakan untuk membuat
perangkat lunak adalah metode waterfall. Tahap-tahap dalam metode ini
adalah analisis kebutuhan, perancangan, pengkodean, dan pengujian. Bahasa
pemrograman yang akan digunakan adalah Matlab 6.5.1.
B. Analisis Sistem
Masalah penentuan kandidat model merupakan masalah optimasi
dalam pencarian model matematika. Dalam masalah penentuan kandidat
model ini terdapat m kromosom, dimana setiap setiap kromosom terdiri dari
tujuh gen (parameter). Tujuan yang ingin dicapai pada masalah penentuan
kandidat model yaitu mencari nilai parameter yang mengakibatkan nilai
fitness struktur model menjadi optimum
Algoritma genetika merupakan algoritma yang berguna untuk
memecahkan masalah optimasi yang kompleks, dengan menggunakan prinsip
teori genetika dan seleksi alam. Oleh sebab itu, algoritma genetika dapat
digunakan untuk menyelesaikan masalah penentuan kandidat model walaupun
ada kemungkinan tidak dapat menemukan penyelesaian yang terbaik, tetapi
setidaknya mendekati penyelesaian yang terbaik.
Langkah pertama yang diambil untuk menyelesaikan penentuan
kandidat model dengan menggunakan algoritma genetika adalah membuat
populasi awal dan menghitung nilai fitness awal untuk masing-masing
kromosom. Langkah kedua yaitu memilih secara acak dua anggota populasi,
kedua anggota populasi tersebut dikombinasikan dengan menggunakan
operasi persilangan untuk menghasilkan dua individu baru yang berbeda yang
diharapkan mempunyai nilai fitness yang tinggi. Jika dengan menggunakan
operasi persilangan belum menemukan penyelesaian yang terbaik, maka akan
dipilih salah satu anggota populasi yang memiliki nilai fitness terjelek dan
anggota populasi yang terpilih ini akan dikenakan operasi mutasi. Kadang-
kadang operasi mutasi dapat menemukan solusi yang lebih baik dari pada
operasi persilangan.
Di bawah ini akan dituliskan secara rinci penggunaan algoritma
genetika untuk menyelesaikan Implementasi Algoritma Genetika dalam
Penentuan Kandidat Model.
1. Representasi Masalah
Hal terpenting dalam menyelesaikan masalah optimasi adalah pemodelan
masalah atau representasi masalah ke dalam suatu model yang sesuai
dengan algoritma yang digunakan. Untuk menyelesaikan penentuan
kandidat model dengan algoritma genetika, permasalahan harus
direpresentasikan atau dimodelkan terlebih dahulu melalui pengkodean.
Jenis pengkodean yang digunakan pada penentuan kandidat model adalah
pengkodean dengan cara operation based representation. Prinsip dari
operation based representation adalah semua gen (parameter) dalam satu
kromosom akan dikodekan dengan simbol yang sama, kemudian
diinterpretasikan menurut indeksnya.
2. Pembangkitan Kromosom
Jika representasi masalah telah selesai dilakukan, maka akan dibangkitkan
kromosom. Pembangkitan kromosom dalam penentuan kandidat model
akan dilakukan secara acak atau random.
3. Penentuan Nilai Fitness untuk masing-masing Kromosom
Dalam masalah optimasi, fungsi fitness yang digunakan adalah fungsi
fitness dari masalah optimasi itu sendiri. Untuk, penentuan kandidat model
pencarian nilai fitness dapat diketahui dari nilai E (error) dalam satu siklus
pemrosesan kromosom dengan data masukan tegangan. Kromosom yang
mempunyai nilai fitness terbaik adalah kromosom yang mempunyai nilai E
(error) minimum.
4. Pemilihan Kromosom untuk dijadikan Orangtua
Pemilihan kromosom untuk dijadikan orangtua dilakukan secara random.
Orang tua dipilih melalui proses seleksi. Seleksi yang digunakan untuk
pemilihan orangtua adalah dengan memilih dua buah kromosom.
Kromosom yang dipilih untuk operasi mutasi adalah kromosom yang
mempunyai nilai fitnes terjelek. Dari individu yang jelek, jika dikenai
perubahan pada gennya diharapkan dapat memperoleh individu yang
unggul.
5. Proses Reproduksi untuk Mendapatkan kromosom-kromosom yang Baru
Untuk mendapatkan kromosom dengang nilai fitness terbaik, maka perlu
dilakukan modifikasi terhadap kromosom-kromosom. Modifikasi yang
dilakukan adalah operasi persilangan dan operasi mutasi. Operasi
persilangan merupakan proses penggabungan dua kromosom (dua
orangtua yang terpilih) untuk menghasilkan dua individu yang baru,
sedangkan operasi mutasi merupakan proses pengubahan sebuah
kromosom yang terpilih untuk menghasilkan sebuah individu yang baru.
Pada proses persilangan akan didapat hasildua kromosom orang tua dan
dua kromosom anak dengan masing-masing mempunyai nilai fitness, akan
tetapi hanya dua kromosom dengan nilai fitness tertinggi yang akan
kembali dimasukkan kedalam populasi awal. Sedangkan pada proses
mutasi apabila nilai fitness kromosom anak tidak lebih baik dari pada nilai
fitness kromosom orang tua, maka kromosom orang tua yang akan
dikembalikan ke populasi.
C. Perancangan
1. Representasi Kromosom
Cara merepresentasikan permasalahan dalam kromosom merupakan suatu
hal yang penting dalam algoritma genetika. Ada beberapa model
representasi kromosom yang dapat dipergunakan untuk menyelesaikan
suatu masalah, salah satunya adalah operation based representation.
Prinsip dari operation based representation adalah semua gen (parameter)
dalam satu kromosom akan dikodekan dengan simbol yang sama,
kemudian diinterpretasikan menurut indeksnya. Sehingga untuk satu
kromosom adalah :
Kromosom 1 = { [ a1 a2 a3 ] [ b1 b2 ] [ c1 c2 ] }
Contoh :
Kromosom 1 = {[ 0,1343 1,31 -0,3898 ] [ -0,02347 0,1826 ] [ 0,7612 0,1653 ]}
2. Pembangkitan Kromosom
Pada populasi awal akan dibangkitkan kromosom secara acak. Setiap
kromosom terdiri dari tujuh gen.
3. Penentuan nilai fitness untuk masing-masing kromosom
Penentuan nilai fitness untuk masing-masing kromosom dilakukan untuk
memilih kromosom yang akan dijadikan orangtua. Nilai fitness adalah
fungsi dari masalah optimasi itu sendiri. Untuk masalah penentuan
kandidat model pencarian nilai fitness dapat dilakukan dengan menghitung
nilai E (error). Kromosom yang mempunyai nilai fitness terbaik adalah
kromosom yang mempunyai nilai E minimum. Secara matematis, fungsi
fitness untuk mencari E sebagai berikut :
f 1 1 E
Keterangan
f = nilai fitness kromosom
E = nilai erorr (error besar)
4. Pemilihan kromosom untuk dijadikan orangtua
Pemilihan kromosom untuk dijadikan orangtua dilakukan secara acak
(random). Kromosom yang dipilih untuk operasi mutasi adalah kromosom
yang mempunyai nilai fitness terjelek. Dari individu yang jelek, jika
diadakan perubahan pada gennya diharapkan dapat memperoleh individu
yang unggul. Anggota-anggota populasi yang terpilih ini akan dijadikan
orangtua yang nantinya akan dikenakan operasi persilangan atau mutasi
untuk mendapatkan kromosom yang lebih baik dari sebelumnya.
5. Operasi Persilangan atau Crossover
Untuk mendapatkan individu baru salah satu caranya adalah dengan
melakukan persilangan atau crossover. Dalam melakukan crossover
melibatkan dua individu yang telah dipilih sebagai orangtua dan akan
menghasilkan dua buah offspring. Dalam penentuan kandidat model
metode crossover yang akan digunakan adalah metode one-cut-point
crossover pada tiap kelompok gen (parameter). Operasi persilangan yang
digunakan pada penentuan kandidat model adalah sebagai berikut :
a. Pertama-tama kita menentukan terlebih dahulu parent yang akan
dikenai operasi crossover. Misalkan terpilih parent sebagai berikut :
P1 [ a1 a2 a3 ] [ b1 b2 ] [ c1 c2 ]
P2 [ a4 a5 a6 ] [ b3 b4 ] [ c3 c4 ]
Gambar 3.1 Contoh parent untuk operasi crossover
b. Menentukan panjang cut point. Misalkan sepanjang 1 blok.
c. Memilih sebuah posisi sebagai titik potong untuk tiap kelompok gen
dalam sebuah kromosom. Titik potong didapat dengan membagi dua
dari jumlah anggota pada tiap kelompok gen, untuk kelompok gen
yang memiliki jumlah anggota ganjil, maka jumlah anggota ditambah
satu setelah itu baru dilakukan pembagian dengan dua. Misal pada
parent1 terhadap kelompok gen a, jumlah gen a sebanyak 3 buah maka
jumlah gen ditambah satu kemudian dibagi dua (3+1)/2, akan didapat
hasil sama dengan dua yang artinya pemotongan dilakukan setelah gen
kedua. Posisi titik potongan untuk parent2 terhadap kelompok gen a
ditentukan dari jumlah gen dikurangi posisi pertama yaitu (3-2). Jadi
posisi titik potong untuk parent2 dilakukan setelah gen satu. Hal yang
sama akan dilakukan untuk kelompok gen b dan kelompok gen c untuk
masing-masing parent, kelompok gen b dan gen c memiliki jumlah
anggota gen yang genap yakni dua, dengan membagi dengan dua
didapat bahwa titik potong untuk kedua kelompok gen tersebut dimulai
setelah gen satu.
Cut point Cut point Cut point
P1 [ a1 a2 a3 ] [ b1 b2 ] [ c1 c2 ]
P2 [ a4 a5 a6 ] [ b3 b4 ] [ c3 c4 ]
Cut point Cut point Cut point
Gambar 3.2 Ilustrasi pemilihan cut-point
P2
d. Langkah berikutnya adalah membentuk offspring O1 dan O2 dengan
melakukan exchange (pertukaran) segmen dari tiap kelompok gen
parent1 ke segmen yang berlawan dari tiap kelompok gen parent2.
segmen kiri segmen kanan
kelompok gen a parent1 [ a1 a2 | a3 ]
kelompok gen a parent2 [ a4 | a5 a6 ]
segmen kiri segmen kanan
Gambar 3.3 Ilustrasi segmentasi pada kelompok gen a
P1 [ a1 a2 a3 ] [ b1 b2 ] [ c1 c2 ]
P2 [ a4 a5 a6 ] [ b3 b4 ] [ c3 c4 ]
Gambar 3.4 Ilustrasi exchange segmen dari tiap kelompok gen
Operasi crossover ini menghasilkan dua buah offspring sebagai
berikut:
O1 [ a5 a6 a3 ] [ b4 b2 ] [ c4 c2 ]
O2 [ a4 a1 a2 ] [ b3 b1 ] [ c3 c1 ]
Gambar 3.5 Ilustrasi hasil crossover
6. Proses Mutasi
Mutasi merupakan proses untuk menghasilkan individu baru dari sebuah
kromosom melalui perubahan gen pada kromosom tersebut. Metode
mutasi yang digunakan adalah metode inverse mutation. Mutasi akan
dilakukan berdasarkan jumlah tertentu dari proses persilangan (crossover).
Misalnya probabilitas mutasi 0,1 berarti setiap 10 kali crossover dilakukan
1 kali mutasi. Proses mutasi ini hanya terjadi pada salah satu dari
kelompok gen, adapun langkah-langkah dari mutasi adalah sebagai berikut
a. Dipilih secara random kelompok gen yang akan dikenai proses mutasi.
b. Dipilih dua buah gen secara random dengan isi gen yang berbeda
c. Kedua gen tersebut ditukarkan tempatnya.
Parent [ a1 a2 a3 ] [ b1 b2 ] [ c1 c2 ]
Offspring [ a3 a2 a1 ] [ b1 b2 ] [ c1 c2 ]
Gambar 3.6 Ilustrasi proses mutasi
7. Ilustrasi Masalah Penentuan Kandidat Model
Terdapat permasalahan penentuan kandidat model yang terdiri dari 3
kromosom dan 6 data masukan tegangan dengan tabel sebagai berikut :
A1 A2 A3 B1 B2 C1 C2
1 0,6774 0,5841 0,8065 0,6532 0,4143 1,4043 0,1864
2 -0,3457 1,2054 -0,1902 0,9312 0,3464 0,7728 1,3305
3 1,0439 0,7830 0,1124 -0,5293 0,0352 0,0732 -0,0824
Tabel Kromosom
y(t) u(t) e(t)
1 1,7463 4,0658 0,0980
2 0,0490 0,9963 0,0346
3 3,0192 1,3648 0,0934
4 0,9940 2,2235 0,0568
5 4,6532 4,3642 0,2946
6 2,3469 0,5833 0,0346
Tabel Data Masukan Tegangan
Dari permasalahan tersebut, diminta untuk mencari nilai fitness awal
terbaik untuk proses pemanasan. Untuk itu kromosom satu per satu
diambil untuk dicari nilai fitnessnya. Tiap kromosom yang diambil akan
diproses menggunakan data masukan tegangan untuk mendapatkan nilai E
(error besar), proses ini dinamakan Auto Regressive Moving Average.
Dalam proses Auto Regressive Moving Average sendiri terdapat nilai-nilai
e (error kecil) untuk setiap (t) sampai (t-3). Kromosom diproses dengan
struktur model untuk pemanasan, yakni :
Y(t) a1 y(t 1) a2 y(t 2) a3 y(t 3) b1 u(t 2) b2u(t 3) c1e(t) c2e(t 1)
y( t ) u( t ) e( t )
1,7463 4,0658 0,0980
0,0490
0,9963
0,0346
3,0192 1,3648 0,0934
0,9940 2,2235 0,0568
4,6532 4,3642 0,2946
2,3469 0,5833 0,0346
y( t ) u( t ) e( t )
1,7463 4,0658 0,0980
0,0490
0,9963
0,0346
3,0192 1,3648 0,0934
0,9940 2,2235 0,0568
4,6532 4,3642 0,2946
2,3469 0,5833 0,0346
Proses Auto Regressive Moving Average untuk satu kromosom dapat
digambarkan sebagai berikut :
1 0,6774 0,5841 0,8065 0,6532 0,4143 1,4043 0,1864
e1 = Y(t) – y(t)
( t – 3 )
( t – 2 )
( t - 1 )
( t )
Gambar 3.7 Ilustrasi Auto Regressive Moving Average pada e1
e2 = Y(t) – y(t)
( t – 3 )
( t – 2 )
( t - 1 )
( t )
Gambar 3.8 Ilustrasi Auto Regressive Moving Average pada e2
y( t ) u( t ) e( t )
1,7463 4,0658 0,0980
0,0490 0,9963 0,0346
3,0192
1,3648
0,0934
0,9940 2,2235 0,0568
4,6532 4,3642 0,2946
2,3469
0,5833
0,0346
e3 = Y(t) – y(t)
( t – 3 )
( t – 2 )
( t - 1 )
( t )
Gambar 3.9 Ilustrasi Auto Regressive Moving Average pada e3
Dimana untuk setiap nilai Y(t) dan y(t) adalah :
Y(t) = -a1y(t-1) - a2y(t-2) - a3y(t-3) + b1u(t-2) + b2u(t-3) + c1e(t) + c2e(t-1)
y(t) = y(t)
nilai e (error kecil) akan di proses untuk mendapatkan E (error besar).
n
e(i) 2
E i 1
n
dimana n adalah banyaknya cacah data masukan tegangan, dalam contoh
masalah diatas n = 6. Selanjutnya nilai E yang didapat akan dimasukkan
kedalam fungsi fitness, sebagai berikut :
f 1 1E
Semakin kecil nilai E maka semakin besar nilai fitness. Untuk kromosom
kedua dan ketiga juga melalui proses yang sama untuk mengetahui fitness
awal dari tiap kromosom dalam populasi tersebut.
8. Perancangan Menu
Program yang akan dibuat mempunyai tiga buah menu yaitu :
Pemrosesan Algoritma Genetika
Menu Pemrosesan Algoritma Genetika merupakan halaman kerja
(workspace), dimana user bisa langsung berinteraksi dengan
memasukkan input, memprosesnya, dan langsung melihat hasilnya.
Tentang Algoritma Genetika (GA)
Menu Tentang Algoritma Genetika merupakan sekilas pembahasan
tentang Algoritma Genetika / Genetic Algorithm (GA).
Keluar Program
Menu Keluar Program digunakan untuk berhenti dan keluar dari
program, kembali ke command window dari Matlab.
Rancangan menu utama dapat gambarkan seperti pada gambar 3.10
Menu
IMPLEMENTASI ALGORITMA GENETIKA DALAM PENENTUAN KANDIDAT MODEL
LOGO USD
KETERANGAN PENULIS
Gambar 3.10a Rancangan Form Menu Utama
IMPLEMENTASI DALAM PENENT
Menu
Pemrosesan Algoritma Genetika Tentang Algoritma Genetika (GA)
Keluar Program
ALGORITMA GENETIKA UAN KANDIDAT MODEL
LOGO USD
KETERANGAN PENULIS
Gambar 3.10b Rancangan Form Menu Utama (klik menu)
9. Perancangan Pemrosesan Algoritma Genetika
Apabila user memilih menu “Pemrosesan Algoritma Genetika” maka akan
tampil form kerja (workspace), diman user bisa menginputkan,
memprosesnya, dan sekaligus menampilkannya.
KROMOSOM TEGANGAN
VIEW LISTBOX KROMOSOM VIEW LISTBOX TEGANGAN
OPSI ALGORITMA GENETIKA
LAKUKAN PROSES ITERASI
FITNESS AKHIR (PANAS)
FITNESS AKHIR (DINGIN)
Gambar 3.11 Rancangan Form Pemrosesan Algoritma Genetika
Dalam form pemrosesan algoritma genetika terdapat beberapa area, seperti
area kromosom, area tegangan, dan area opsi algoritma genetika. Area-
area tersebut merupakan area inputan bagi user, sedangkan viewlistbox
kromosom dan viewlistbox tegangan merupakan area output. Berikut akan
dijelaskan lebih mendetail :
a) Area Kromosom
Jumlah Kromosom dalam Populasi min 3 max 20
Generate Kromosom
Fitness Awal (Panas) Fitness Awal (Dingin)
Kotak input jumlah kromosom ; Pada kotak tersebut user harus
memasukkan sejumlah bilangan bulat positif, nilai tersebut sebagai
jumlah kromosom dalam populasi. Dengan jumlah kromosom
minimun 3, maksimun 20.
Tombol Generate Kromosom ; Tombol ini akan mengenerate N
kromosom, dimana N adalah jumlah kromosom yang telah
diinputkan melalui kotak jumlah kromosom.
Tombol Fitness Awal (Panas) dan Tombol Fitness Awal (Dingin) ;
Kedua Tombol ini untuk menampilkan Populasi Kromosom Awal
beserta nilai Fitness awalnya. Karena menampilkan nilai Fitness
Awal, maka kedua tombol ini baru menampilkan hasil jika Data
Tegangan telah di-inputkan terlebih dahulu. Dengan kata lain,
tombol ini tak menghasilkan tampilan pada ViewListBox
Kromosom jika tidak ada Data Tegangan.
b) Area Tegangan
Pada area Tegangan, user diharuskan menginputkan data
Tegangan. User diberikan 2 pilhan, menginputkan data tegangan
melalui file atau mengenerate sendiri secara random. Data
tegangan yang dipakai dalam proses adalah, Data yang tampil pada
ViewListBox Tegangan. Area tegangan sebagai berikut :
Input Data Tegangan
Buka File
Generate Random
Tombol Buka File ; Tombol ini untuk menginputkan data tegangan
dari file (*.txt).
Tombol Generate Random ; Tombol ini untuk membangkitkan /
generate N data bilangan sebagai input data tegangan dimana N =
250 cacah data.
c) Area Opsi Algoritma Genetika
Probabilitas Crossover
Probabilitas Mutasi
Jumlah Iterasi
Probabilitas Crossover ; popup menu tersebut berisikan nilai
kemungkinan terjadinya proses crossover (persilangan). semisal
nilai Prob.Crossover = 0.5 , artinya kita merandom bilangan 0 – 1
jika nilai hasil random < = 0.5 maka terjadi proses crossover.
Probabilitas Mutasi ; Popup menu tersebut berisikan nilai
kemungkinan terjadinya proses mutasi. semisal nilai Prob.Mutasi =
0.1 , artinya setiap 10 proses Crossover akan terjadi 1 proses
Mutasi.
Jumlah Iterasi ; Pada kotak tersebut user harus memasukkan
sejumlah bilangan bulat positif, nilai tersebut sebagai jumlah iterasi
(perulangan) yang akan dilakukan dalam proses evolusi pencarian
model kandidat.
d) Tombol Lakukan Proses Iterasi
Tombol tersebut akan melakukan proses Evolusi pencarian Model
Kandidat kromosom terbaik. Tombol tersebut hanya tereksekusi
apabila persyaratannya terpenuhi.
Persyaratannya :
Terdapat jumlah kromosom.
Data Tegangan telah diinputkan.
Tombol Kromosom dan Fitness Awal (Panas) telah
tereksekusi.
Tombol Kromosom dan Fitness Awal (Dingin) telah
tereksekusi.
Terdapat Nilai Probabilitas Crossover.
Terdapat Nilai Probabilitas Mutasi.
Terdapat Jumlah Iterasi (Perulangan) yang akan dilakukan.
Iterasi untuk Pemanasan dan Pendinginan dilakukan secara
terpisah dengan menggunakan populasi kromosom awal
yang sama.
e) Tombol Fitness Akhir (Panas)
Tombol ini dapat dieksekusi hanya apabila tombol proses iterasi
telah dieksekusi terlebih dahulu.Tombol ini menampilkan hasil
proses iterasi untuk pemanasan. Hasil dari proses Iterasi telah di-
sortir (diurutkan) secara ascending berdasarkan fitness. Hasil
ditampilkan pada ViewListBox Kromosom.
f) Tombol Fitness Akhir (Dingin)
Tombol ini dapat dieksekusi hanya apabila tombol proses iterasi
telah dieksekusi terlebih dahulu. Tombol ini menampilkan hasil
proses iterasi untuk pendinginan. Hasil dari proses Iterasi telah di-
sortir (diurutkan) secara ascending berdasarkan fitness. Hasil
ditampilkan pada ViewListBox Kromosom.
g) ViewListBox Kromosom
[ A1 A2 A3 ] [ B2 B2 ] [ C1 C2 ] [ Fitness ]
Sebuah List yang digunakan sebagai tampilan output untuk
kromosom, dimana ;
[ A1 A2 A3 ] merupakan bagian dari struktur sebuah Kromosom ;
gen A1 gen A2 gen A3.
[ B1 B2 ] merupakan bagian dari struktur sebuah Kromosom ; gen
B1 gen B2.
[ C1 C2 ] merupakan bagian dari struktur sebuah Kromosom ; gen
C1 gen C2.
sebuah kromosom utuh terdiri dari [A1 A2 A3] [B1 B2] [C1 C2]
[ Fitness ] merupakan bobot dari kromosom tersebut pada proses
panas dan dingin.
h) ViewListBox Tegangan
[ Y ( t ) ] [ U ( t ) ] [ E ( t ) ]
Sebuah List yang digunakan sebagai tampilan output untuk
tegangan. Y(t) U(t) E(t) merupakan struktur dari data input
tegangan. Dimana Y(t) dan U(t) diinputkan oleh user, sedangkan
E(t) diperoleh 3% sampai 5% dari nilai rata-rata Y(t).
10. Perancangan Tentang Algoritma Genetika (GA)
Form tentang algoritma genetika berisikan sekilas informasi tentang
algoritma genetika, jika diklik akan menampilkan form sebagai berikut :
Gambar 3.12 Rancangan Form Tentang Algoritma Genetika (GA)
11. Perancangan Bantuan
Form bantuan berisikan informasi tentang mengoperasikan program
Implementasi Algoritma Genetika dalam Penentuan Kandidat Model. Jika
user memilih menu “Bantuan” pada form pemrosesan algoritma genetika
maka akan tampil form bantuan seperti gambar 3.13a dan 3.13.b
Gambar 3.13a Rancangan Form Bantuan bagian 1
Gambar 3.13b Rancangan Form Bantuan bagian 2
BAB IV
IMPLEMENTASI DAN ANALISA HASIL PROGRAM
A. Flowchart
Penyelesaian Penentuan Kandidat Model dengan menggunakan
algoritma genetika secara garis besar digambarkan dalam flowchart sebagai
berikut : Begin
Masukan jumlah kromosom dan data tegangan
Masukkan jumlah iterasi
Pembangkitan anggota populasi awal
Perhitungan nilai fitnes
Generasi >iterasi yes
No
Pemilihan orang tua
crossover
mutasi
Generasi:=generasi + 1
end
B. Implementasi Program
1. Implementasi Representasi Kromosom
Untuk merepresentasikan kromosom menggunakan operation
based representation setiap gen dalam dalam kromosom yang sama
dikodekan dengan simbol yang sama. Langkah-langkah dalam
merepresentasikan kromosom adalah sebagai berikut, pertama-tama telah
diketahui bahwa a memiliki orde 3, b dan c memiliki orde 2, kemudian
menentukan panjang kromosom dengan cara menjumlahkan jumlah orde
pada setiap kelompok gen. Setelah itu mengenerate bilangan random
melalui proses inisialisasi sebanyak orde masing-masing kelompok gen
dalam kromosom.
[KromA]=InisialisasiA(JmlKrom); [KromB]=InisialisasiB(JmlKrom); [KromC]=InisialisasiC(JmlKrom); Kromosom=[KromA KromB KromC];
2. Implementasi Pembangkitan Populasi Awal
Dalam pembangkitan populasi awal, kromosom-kromosom yang
telah direpresentasikan dibentuk sebanyak n buah kromosom, dimana n
merupakan nilai yang diinputkan oleh user, sehingga menghasilkan
populasi awal yang beranggotakan n buah kromosom. Dalam
menginputkan jumlah kromosom, terdapat range (batasan), batasan
minimum adalah 3 buah kromsom dan batasan maksimum adalah 20 buah
kromosom. Batasan minimun diberikan tiga buah dimaksudkan agar
proses crossover menghasilkan kemungkinan yang lebih variatif.
// inisialisasi untuk masing-masing kelompok gen
while banyak<=JmlKrom
Populasi=InisialisasiPopulasi(1,JmlGenA);
Krom=[Krom;Populasi]; banyak=banyak+1;
end
while banyak<=JmlKrom
Populasi=InisialisasiPopulasi(1,JmlGenB); Krom=[Krom;Populasi]; banyak=banyak+1;
end
while banyak<=JmlKrom
Populasi=InisialisasiPopulasi(1,JmlGenC); Krom=[Krom;Populasi]; banyak=banyak+1;
end
3. Implementasi Penginputan Data Masukan Tegangan
Dalam menginputkan data masukan tegangan, terdapat dua
alternatif. Pertama menggunakan data simulasi sendiri dengan
mengenerate secara random. Pilihan untuk mengenerate secara random
data masukan tegangan akan memberikan sebuah tabel yang berisikan data
tegangan sebanyak 250 cacah data. Bilangan 250 tersebut sudah menjadi
nilai yang sudah ditentukan (default).
Kedua menggunakan data yang tersimpan dalam file (berkas). Pilihan
membuka file, akan memberikan kesempatan user untuk menginputkan
data masukan tegangan melalui file yang dimilikinya. Dalam pilihan
membuka file, format file yang dapat dibuka dan dibaca berekstensi *.txt.
// Generate random data masukan tegangan
while banyak<=In0
waitbar(banyak/In0)
Populasi=InisialisasiPopulasiV(1,JmlGenV); Krom=[Krom;Populasi]; banyak=banyak+1;
end
KromV=Krom; [m,n]=size(KromV); tmpe=0;Pope=0;valp=0;tmpop=[];
tmpe=tmpe/m; for(i=1:m)
waitbar(i/m) Pope=(5*rand(1,1)); if(Pope<=3)
Pope=Pope+3;
end
end valp=(tmpe/100)*Pope; tmpop=[tmpop;valp];
KromV=[KromV tmpop];
statV=0;handles.statV=statV; In0=250;handles.In0=In0; [KromV0]=InisialisasiV(In0); handles.KromV0=KromV0; guidata(hObject,handles); KromVT=KromV0; KromVT=num2str(KromVT); set(handles.TagLayarV,'String',KromVT);
// Data masukan tegangan melalui berkas
[namaFl,namaPth]=uigetfile({'*.txt','Tabel Tegangan (*.txt)'}, 'Buka File Tegangan / Tabel Tegangan');
if ~isequal(namaFl,0)
gab=strcat(namaPth,namaFl); fid=fopen(gab,'r'); Kromo=fread(fid,'char'); fid=fclose('all'); guidata(hObject,handles); [KromV1]=UraiV(Kromo); [h,j]=size(KromV1); In1=h; handles.In1=In1; handles.KromV1=KromV1; statV=1;handles.statV=statV; guidata(hObject,handles);
set(handles.TagKetBukaFile,'String','Input Data Tegangan dari File, Sukses !!');
KromVT=KromV1; KromVT=num2str(KromVT);
set(handles.TagLayarV,'String',KromVT); else
set(handles.TagKetBukaFile,'String','Input Data Tegangan dari File, Gagal !!');
return end
4. Implementasi Pembacaan String Berkas Menjadi Numerik
Hasil pembukaan dari file (berkas) dapat langsung dibaca, akan
tetapi belum dapat dipakai dan diproses. Hal ini dikarenakan masih dalam
bentuk string ACSII, oleh karena itu diperlukan ada proses dalam
mengubah hasil pembacaan dari berkas tadi sebelum dipakai dalam proses
algoritma genetika.
for(i=1:m) waitbar(i/m) if(Volt1(i,1)==44)
Volt1(i,1)=46; end if((Volt1(i,1)==9)||(Volt1(i,1)==13))
Volt1(i,1)=32; end
if((Volt1(i,1)~=32)&&(Volt1(i,1)~=10)&&(Vo lt1(i,1)~=13))
idx=[idx i]; zta=zta+2;
end if(Volt1(i,1)==32)
if(zta>=1) [x,c]=size(idx); for(j=1:c)
tmpDatV=Volt1(idx(1,j),1); DatV=[DatV tmpDatV];
end
end DatV=char(DatV); DatV=str2num(DatV); tempVolt=[tempVolt DatV]; DatV=[];idx=[];
end
zta=0;
if(Volt1(i,1)==10) Volt2=[Volt2;tempVolt]; tempVolt=[];
end
end
5. Implementasi Pemilihan Kromosom untuk dijadikan Orangtua
Kromosom yang akan dijadikan sebagai orangtua dipilih dengan
menyeleksi dua buah kromosom secara random. Misalnya terdapat 20
kromosom, maka akan digenerate dua bilangan random dari satu sampai
dua puluh, bilangan hasil generate merujuk pada penentuan kromosom
yang akan terpilih sebagai orangtua.
x=round(jml*rand(1,2)); M=x(1,1); N=x(1,2); if(M==0)
M=M+1; end if(M==N)
if(M==jml) M=M-1;
end
end N=N-2;
if(N<=0) N=N+3;
end
6. Implementasi Operasi Persilangan atau Crossover
Untuk mendapatkan generasi baru, salah satu caranya adalah
dengan melakukan persilangan atau crossover. Metode crossover yang
digunakan adalah one-cut point. Dalam melakukan persilangan tahap-
tahapnya adalah sebagai berikut :
Menentukan titik potong masing-masing kelompok gen
Untuk kelompok gen yang memiliki jumlah anggota ganjil
akan ditambah satu, sehingga pembagian menjadi bulat.
Contoh kelompok gen a yang memiliki 3 anggota, maka
(3+1)/2 akan menghasilkan nilai 2, artinya titik potong
untuk parent1 dimulai setelah gen kedua sehingga akan
membagi kelompok gen a kedalam 2 ruas segmen yakni
ruas segmen kanan (1 gen) dan segmen kiri (2 gen).
Sedangkan untuk menentukan titik potong pada parent2
berdasarkan posisi dari titik potong parent1 yakni jumlah
anggota gen dikurangi posisi titik potong (3-2), akan
menghasilkan nilai satu, yang artinya titik potong dimulai
setelah gen 1, sehingga akan membagi kelompok gen a
parent2 kedalam dua ruas segmen, yaitu ruas segmen kanan
(2 gen) dan ruas segmen kiri (1 gen). Proses yang sama
akan dilakukan untuk kelompok gen b dan c pada tiap
parent.
offspring1=[Parent1(1,1) Parent2(1,2:3) Parent1(1,4) Parent2(1,5) Parent1(1,6) Parent2(1,7)]; offspring2=[Parent2(1,1) Parent1(1,2:3) Parent2(1,4) Parent1(1,5) Parent2(1,6) Parent1(1,7)];
7. Implementasi Operasi Mutasi
Operasi mutasi dilakukan dengan cara menukarkan posisi dari dua
buah gen berlainan di dalam kelompok gen yang sama. Penentuan dua
buah gen yang dikenakan proses penukaran ditentukan secara random.
Pada kelompok gen b atau c yang masing-masing hanya terdiri dari dua
buah gen dapat langsung dipertukarkan posisinya, sedangkan pada
kelompok gen a yang terdiri dari tiga buah gen, perlu ditentukan dua buah
gen secara random. Sedangkan kromosom yang terpilih untuk dikenai
proses mutasi adalah kromosom yang mempunyai fitnes terjelek.
jbil=round(3*rand(1,1));
if(jbil==0) jbil=jbil+2;
end
if(jbil==1) jgen=round(3*rand(1,2)); if(jgen(1,1)==jgen(1,2))
if((jgen(1,1)==2)||(jgen(1,1)==3)) jgen(1,1)=jgen(1,1)-1;
end if(jgen(1,1)==1)
jgen(1,1)=jgen(1,1)+1; end if(jgen(1,1)==0)
jgen(1,1)=jgen(1,1)+1; jgen(1,2)=jgen(1,2)+2;
end
end
if(jgen(1,1)==0) jgen(1,1)=jgen(1,1)+1; jgen(1,2)=jgen(1,2)+1; if(jgen(1,2)>3)
jgen(1,2)=jgen(1,2)-1;
end end
if(jgen(1,2)==0) jgen(1,1)=jgen(1,1)+1; jgen(1,2)=jgen(1,2)+1; if(jgen(1,1)>3)
jgen(1,1)=jgen(1,1)-1;
end
end
end
if(jbil==2)
jgen(1,1)=4; jgen(1,2)=5;
end
if(jbil==3) jgen(1,1)=6; jgen(1,2)=7;
end
C. Implementasi Antar Muka
Pada saat program pertama kali dijalankan dengan mengetik ‘Utama’ pada
command window, maka tampilan awal sebagai berikut :
Gambar 4.1 Tampilan Awal
Pada menu terdapat pilihan 3 pilihan, yakni :
1. Pemrosesan Algoritma Genetika
2. Tentang Algoritma Genetika (GA)
3. Keluar Program
Apabila menu yang dipilih adalah ‘Pemrosesan Algoritma genetika’ maka
akan membawa user ke form pemrosesan seperti gambar 4.2
Gambar 4.2 Form Pemrosesan Algoritma Genetika
Pada form pemrosesan algoritma genetika, terdapat beberapa area inputan
diantaranya :
Area kromosom
Gambar 4.3 area Kromosom
Kotak input jumlah kromosom ; Pada kotak tersebut user harus memasukkan
sejumlah bilangan bulat positif, nilai tersebut sebagai jumlah kromosom dalam
populasi. Dengan jumlah kromosom minimun 3, maksimun 20.
Tombol Generate Kromosom ; Tombol ini akan mengenerate N kromosom,
dimana N adalah jumlah kromosom yang telah diinputkan melalui kotak
jumlah kromosom.
Tombol Fitness Awal (Panas) dan Tombol Fitness Awal (Dingin) ; Kedua
Tombol ini untuk menampilkan Populasi Kromosom Awal beserta nilai
Fitness awalnya. Karena menampilkan nilai Fitness Awal, maka kedua tombol
ini baru menampilkan hasil jika Data Tegangan telah di-inputkan terlebih
dahulu. Dengan kata lain, tombol ini tak menghasilkan tampilan pada
ViewListBox Kromosom jika tidak ada Data Tegangan
Area Tegangan
Gambar 4.4 area Tegangan
Pilihan untuk inputan data masukan tegangan, buka file atau mengenerate
secara random. Pada area tegangan, user diharuskan menginputkan data
tegangan. User diberikan dua pilihan, menginputkan data tegangan melalui file
atau mengenerate sendiri secara random. Data tegangan yang dipakai dalam
proses adalah, data yang tampil pada ViewListBox Tegangan.
Area Opsi Genetika
Gambar 4.5 area Opsi GA
Probabilitas Crossover ; popup menu tersebut berisikan nilai kemungkinan
terjadinya proses crossover (persilangan). Semisal nilai probabilitas crossover
= 0.5 , artinya kita merandom bilangan 0 – 1 jika nilai hasil random ≤ 0.5
maka terjadi proses crossover.
Probabilitas Mutasi ; Popup menu tersebut berisikan nilai kemungkinan
terjadinya proses mutasi. semisal nilai probabilits mutasi = 0.1 , artinya setiap
10 proses crossover akan terjadi 1 proses mutasi.
Jumlah Iterasi ; Pada kotak tersebut user harus memasukkan sejumlah
bilangan bulat positif, nilai tersebut sebagai jumlah iterasi (perulangan) yang
akan dilakukan dalam proses evolusi pencarian model kandidat.
Setelah semua data inputan dimasukkan, dapat dilakukan proses iterasi untuk
mencari nilai fitness terbaik dengan menggunakan operator algoritma genetika
(crossover,mutasi,seleksi). Dan untuk menampilkan hasil iterasi digunakan
tombol ‘Fitness Akhir (Panas)’ untuk melihat hasil proses pemanasan, atau
tombol ‘Fitness Akhir (Dingin)’ untuk melihat hasil proses pendinginan.
Hasilnya ditampilkan pada ViewListBox kromosom, seperti pada gambar.
Gambar 4.14 ViewListBox Kromosom
D. Hasil dan Pembahasan
Pada hasil dan pembahasan ini akan dibicarakan lebih lanjut tentang
proses pemanasan yang telah dilakukan dengan menggunakan masukan data
sebagai berikut :
Jumlah kromosom 20 Jumlah data tegangan 250
Kromosom awal dibangkitkan secara acak sebanyak 20 individu.
A1 A2 A3 B1 B2 C1 C2 :
-0.0863 0.9421 0.5820 -0.3940 1.3962 0.6841 0.3781
0.2849 0.6872 0.9033 0.6985 0.0324 0.0893 -0.4559
0.3183
1.2239
0.3980
1.1304
0.9897
0.3041
0.6227
0.7298
0.6448
0.2465
1.1467
0.3083
0.9393
0.6933
0.0775
1.1850
-0.2576
0.7836
0.0694
1.3818
0.1527
0.1547
0.7266
1.0315
1.3875
0.6734
-0.1946
-0.0775
0.3464
0.7047
0.8870
0.8302
1.3315
-0.2531
0.7154
-0.3330
1.4788
1.3365
1.3963
0.9261
1.0930
0.2155
1.1026
0.3930
0.4820
0.3469
0.9795
0.4964
0.9444
-0.2323
0.1147
0.6966
0.4798
0.3144
1.1946
1.0577
-0.3129 -0.4538 0.3662 0.6852 1.0495 0.5650 -0.1693
0.5215
1.4194
0.4600
1.3537
0.1445 -0.2377
0.9475
0.7347
0.4022
0.5617
1.1767
1.1955 1.0061
-0.3229
1.2812 0.1964 0.6796 0.8757 1.1942 1.0188 0.1317
1.4128
-0.1194
0.1093
0.5737
-0.1572
-0.4054
-0.1839
-0.1003 1.2572 0.9484 -0.4934 0.1946 0.9804 -0.0478
1.0493 1.3039 -0.4662
-0.2398 -0.4878
0.7163
0.4765
0.2500 -0.0168 0.5804
-0.1910 0.8607
0.3910
0.4562
0.8594 0.8532 0.2625
0.2844 -0.0666
0.0018
1.3063
-0.1244 0.8964 0.4318
1.0025 0.8562
1.2165
0.4177
jumlah iterasi yang dimasukkan sebanyak 100 generasi.
Pencarian fitness awal pada proses pemanasan didapat sebagai berikut :
A1 A2 A3 B1 B2 C1 C2 Fitness :
-0.0863 0.9421 0.5820 -0.3940 1.3962 0.6841 0.3781 0.7967
0.2849 0.6872 0.9033 0.6985 0.0324 0.0893 -0.4559 0.8084
0.3183
1.2239
0.3980
1.1304
0.9897
0.3041
0.6227
0.7435
0.7298
0.6448
0.2465
1.1467
0.3083
0.9393
0.6933
0.7894
0.0775
1.1850
-0.2576
0.7836
0.0694
1.3818
0.1527
0.8415
0.1547
0.7266
1.0315
1.3875
0.6734
-0.1946
-0.0775
0.7549
0.3464
0.7047
0.8870
0.8302
1.3315
-0.2531
0.7154
0.7444
-0.3330
1.4788
1.3365
1.3963
0.9261
1.0930
0.2155
0.7068
1.1026
0.3930
0.4820
0.3469
0.9795
0.4964
0.9444
0.7715
-0.2323
0.1147
0.6966
0.4798
0.3144
1.1946
1.0577
0.8446
-0.3129 -0.4538 0.3662 0.6852 1.0495 0.5650 -0.1693 0.8269
0.5215
1.4194
0.4600
1.3537
0.1445 -0.2377
0.9475
0.7361
0.7347
0.4022
0.5617
1.1767
1.1955 1.0061
-0.3229
0.7527
1.2812
0.1964
0.6796
0.8757
1.1942 1.0188
0.1317
0.7496
1.4128 -0.1194 0.1093 0.5737 -0.1572 -0.4054 -0.1839 0.8401
-0.1003 1.2572 0.9484 -0.4934 0.1946 0.9804 -0.0478 0.7832
1.0493 1.3039 -0.4662
-0.2398 -0.4878
0.7163
0.4765
0.7888
0.2500 -0.0168 0.5804 -0.1910 0.8607 0.3910 0.4562 0.8688
0.8594
0.8532
0.2625
0.2844 -0.0666
0.0018
1.3063
0.7793
-0.1244
0.8964
0.4318
1.0025 0.8562
1.2165
0.4177
0.7888
Setelah itu dilakukan proses iterasi untuk proses pemanasan, proses tersebut
akan berhenti pada generasi ke 100, dari proses tersebut didapat hasil akhir
sebagai berikut :
A1 A2 A3 B1 B2 C1 C2 Fitness :
-0.0863 0.9421 0.5820 -0.3940 1.3962 0.6841 0.3781 0.7967
0.2849 0.6872 0.9033 0.6985 0.0324 0.0893 -0.4559 0.8084
0.3183
1.2239
0.3980
1.1304
0.9897
0.3041
0.6227
0.7435
0.7298
0.6448
0.2465
1.1467
0.3083
0.9393
0.6933
0.7894
0.0775
1.1850
-0.2576
0.7836
0.0694
1.3818
0.1527
0.8415
0.1547
0.7266
1.0315
1.3875
0.6734
-0.1946
-0.0775
0.7549
0.3464
0.7047
0.8870
0.8302
1.3315
-0.2531
0.7154
0.7444
-0.3330
1.4788
1.3365
1.3963
0.9261
1.0930
0.2155
0.7068
1.1026
0.3930
0.4820
0.3469
0.9795
0.4964
0.9444
0.7715
-0.2323
0.1147
0.6966
0.4798
0.3144
1.1946
1.0577
0.8446
-0.3129 -0.4538 0.3662 0.6852 1.0495 0.5650 -0.1693 0.8269
0.5215
1.4194
0.4600
1.3537
0.1445 -0.2377
0.9475
0.7361
1.4128 -0.1194 0.1093 0.5737 -0.1572 -0.4054 -0.1839 0.8401
1.2812 0.1964 0.6796 0.8757 1.1942 1.0188 0.1317 0.7496
0.7347 -0.1194 0.1093 1.1767 -0.1572 1.0061 -0.1839 0.8499
-0.1003
1.2572 0.9484
-0.4934 0.1946
0.9804
-0.0478
0.7832
1.0493
1.3039 -0.4662
-0.2398 -0.4878
0.7163
0.4765
0.7888
0.2500
-0.0168 0.5804
-0.1910 0.8607
0.3910
0.4562
0.8688
0.8594 0.8532 0.2625 0.2844 -0.0666 0.0018 1.3063 0.7793
-0.1244
0.8964
0.4318
1.0025 0.8562
1.2165
0.4177
0.7888
Dari hasil tesebut diatas kemudian diurutkan berdasarkan fitness tertinggi, untuk
mengetahui krosomom mana yang hendak terpilih sebagai kandidat model.
Berikut hasil pengurutan :
A1 A2 A3 B1 B2 C1 C2 Fitness :
0.2500 -0.0168 0.5804 -0.1910 0.8607 0.3910 0.4562 0.8688
0.7347
-0.1194 0.1093
1.1767 -0.1572
1.0061
-0.1839
0.8499
-0.2323
0.1147 0.6966
0.4798 0.3144
1.1946
1.0577
0.8446
0.0775
1.1850 -0.2576
0.7836 0.0694
1.3818
0.1527
0.8415
1.4128
-0.1194 0.1093
0.5737 -0.1572
-0.4054
-0.1839
0.8401
-0.3129
-0.4538 0.3662
0.6852 1.0495
0.5650
-0.1693
0.8269
0.2849 0.6872 0.9033 0.6985 0.0324 0.0893 -0.4559 0.8084
-0.0863 0.9421 0.5820 -0.3940 1.3962 0.6841 0.3781 0.7967
0.7298 0.6448 0.2465 1.1467 0.3083 0.9393 0.6933 0.7894
-0.1244
0.8964
0.4318
1.0025
0.8562
1.2165
0.4177
0.7888
1.0493 1.3039 -0.4662 -0.2398 -0.4878 0.7163 0.4765 0.7888
-0.1003
1.2572
0.9484
-0.4934 0.1946
0.9804
-0.0478
0.7832
0.8594 0.8532 0.2625 0.2844 -0.0666 0.0018 1.3063 0.7793
1.1026 0.3930 0.4820 0.3469 0.9795 0.4964 0.9444 0.7715
0.1547
0.7266
1.0315
1.3875
0.6734
-0.1946
-0.0775
0.7549
1.2812
0.1964
0.6796
0.8757
1.1942
1.0188
0.1317
0.7496
0.3464
0.7047
0.8870
0.8302
1.3315
-0.2531
0.7154
0.7444
0.3183
1.2239
0.3980
1.1304
0.9897
0.3041
0.6227
0.7435
0.5215
1.4194
0.4600
1.3537
0.1445
-0.2377
0.9475
0.7361
-0.3330
1.4788
1.3365
1.3963
0.9261
1.0930
0.2155
0.7068
Dari hasil pengurutan dapat diketahui bahwa kandidat model yang terpilih untuk
proses pemanasan dengan nilai fitness 0.8688 dengan model persamaan :
y(t) = - (0.2500)y(t-1) - (-0.0168)y(t-2) - (0.5804)y(t-3) + (-0.1910)u(t-2) +
(0.8607)u(t-3) + (0.3910)e(t) + (0.4562)e(t-1)
BAB V
PENUTUP
E. Kesimpulan
Dari penelitian ini maka dapat diambil beberapa kesimpulan sebagai berikut
1. Probabilitas mutasi, serta jumlah iterasi mempengaruhi solusi yang
dihasilkan dari penyelesaian suatu permasalahan penentuan kandidat
model.
2. Algoritma genetika dapat digunakan untuk menyelesaikan penentuan
kandidat model, walaupun tidak selalu optimal tetapi setidaknya
mendekati solusi optimal.
3. Semakin banyak proses iterasi yang dilakukan maka kemungkinan fitness
yang dihasilkan akan semakin mendekati solusi optimal.
F. Saran
Untuk pengembangan penyelesaian kedepan yang lebih baik dengan
menggunakan algoritma genetika, penulis mengemukakan beberapa saran :
1. Menggunakan metode crossover ataupun mutasi yang lain. Sehingga dapat
dibandingkan keberhasilannya.
2. Penggunaan metode lain dalam penentuan orangtua yang akan digunakan
dalam proses crossover mungkin akan memberikan hasil yang lebih baik.
DAFTAR PUSTAKA
1. Muntini,S.M and Nazaruddin, Y.Y., Identification of Vehicle Suspension
Using Genetic Algorithm Technique, Proc. of Indonesia Germany
Conference (IGC) 2001, Bandung, 2001
2. Mitsuo Gen & Runwei Cheng, “Genetic Algorithms & Engineering
Design”, John Wiley and Son, 1997.
3. Johansson, Rolf, 1993, System Modeling and Identification, Prentice Hall,
New York.
4. Sriwindono, H, Pembuatan Jadwal Ujian Dengan Menggunakan
Algoritma Genetika, Prosiding Seminar Nasional Ilmu Komputer dan
Aplikasinya – SNIKA 2006, Bandung, 2006.
5. www.cs.felk.cvut.cz/~xobitko/ga