Anda di halaman 1dari 15

Algoritma genetika adalah algoritma komputasi yang diinspirasi teori evolusi yang kemudian

diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara
yang lebih “alamiah”. Salah satu aplikasi algoritma genetika adalah pada permasalahan
optimasi kombinasi, yaitu mendapatkan suatu nilai solusi optimal terhadap suatu
permasalahan yang mempunyai banyak kemungkinan solusi. Dalam tulisan ini akan dibahas
teori dasar algoritma genetika beserta contoh aplikasinya dalam menyelesaikan suatu
permasalahan optimasi kombinasi sederhana.
Teori Dasar Algoritma Genetika
Algoritma genetika yang dikembangkan oleh Goldberg adalah algoritma komputasi
yang diinspirasi teori evolusi Darwin yang menyatakan bahwa kelangsungan hidup
suatu makhluk dipengaruhi aturan “yang kuat adalah yang menang”. Darwin juga
menyatakan bahwa kelangsungan hidup suatu makhluk dapat dipertahankan melalui
proses reproduksi, crossover, dan mutasi. Konsep dalam teori evolusi Darwin
tersebut kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu
permasalahan dengan cara yang lebih “alamiah”.
Sebuah solusi yang dibangkitkan dalam algoritma genetika disebut sebagai
chromosome, sedangkan kumpulan chromosome-chromosome tersebut disebut
sebagai populasi. Sebuah chromosome dibentuk dari komponen-komponen
penyusun yang disebut sebagai gen dan nilainya dapat berupa bilangan numerik,
biner, simbol ataupun karakter tergantung dari permasalahan yang ingin
diselesaikan.

Chromosome-chromosome tersebut akan berevolusi secara berkelanjutan yang disebut


dengan generasi. Dalam tiap generasi chromosome-chromosome tersebut dievaluasi tingkat
keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan (fungsi_objektif)
menggunakan ukuran yang disebut dengan fitness. Untuk memilih chromosome yang tetap
dipertahankan untuk generasi selanjutnya dilakukan proses yang disebut dengan seleksi.
Proses seleksi chromosome menggunakan konsep aturan evolusi Darwin yang telah
disebutkan sebelumnya yaitu chromosome yang mempunyai nilai fitness tinggi akan
memiliki peluang lebih besar untuk terpilih lagi pada generasi selanjutnya.

Chromosome-chromosome baru yang disebut dengan offspring, dibentuk dengan cara


melakukan perkawinan antar chromosome-chromosome dalam satu generasi yang disebut
sebagai proses crossover. Jumlah chromosome dalam populasi yang mengalami crossover
ditetukan oleh paramater yang disebut dengan crossover_rate. Mekanisme perubahan susunan
unsur penyusun mahkluk hidup akibat adanya faktor alam yang disebut dengan mutasi
direpresentasikan sebagai proses berubahnya satu atau lebih nilai gen dalam chromosome
dengan suatu nilai acak. Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh
parameter yang dinamakan mutation_rate. Setelah beberapa generasi akan dihasilkan
chromosome-chromosome yang nilai gen-gennya konvergen ke suatu nilai tertentu yang
merupakan solusi terbaik yang dihasilkan oleh algoritma genetika terhadap permasalahan
yang ingin diselesaikan.
Aplikasi Algoritma Genetika
Berikut adalah contoh aplikasi algoritma genetika yang digunakan untuk
menyelesaikan masalah kombinasi. Misalkan ada persamaan a+2b+3c+4d = 30, kita
mencari nilai a, b, c, dan d yang memenuhi persamaan diatas. Kita mencoba
menggunakan algoritma genetika untuk menyelesaikan permasalahan diatas.
Penjelasan mengenai langkah-langkah penyelesaian permasalahan diatas
menggunakan algoritma genetika adalah sebagai berikut:
1. Pembentukan chromosome
Karena yang dicari adalah nilai a, b, c, d maka variabel a, b, c, d dijadikan sebagai
gen-gen pembentuk chromosome. Batasan nilai variabel a adalah bilangan integer 0
sampai 30. Sedangkan batasan nilai variabel b, c, dan d adalah bilangan integer 0
sampai 10.

2. Inisialisasi
Proses inisialisasi dilakukan dengan cara memberikan nilai awal gen-gen dengan
nilai acak sesuai batasan yang telah ditentukan.
Misalkan kita tentukan jumlah populasi adalah 6, maka:
Chromosome[1] = [a;b;c;d] = [12;05;03;08]
Chromosome[2] = [a;b;c;d] = [02;01;08;03]
Chromosome[3] = [a;b;c;d] = [10;04;03;04]
Chromosome[4] = [a;b;c;d] = [20;01;10;06]
Chromosome[5] = [a;b;c;d] = [01;04;03;09]
Chromosome[6] = [a;b;c;d] = [20;05;07;01]

3. Evaluasi Chromosome
Permasalahan yang ingin diselesaikan adalah nilai variabel a, b, c, dan d yang
memenuhi persamaan a+2b+3c+4d = 30, maka fungsi_objektif yang dapat
digunakan untuk mendapatkan solusi adalah fungsi_objektif(chromosome) = |
(a+2b+3c+4d) – 30 |
Kita hitung fungsi_objektif dari chromosome yang telah dibangkitkan:
fungsi_objektif(chromosome[1]) = Abs(( 12 + 2*5 + 3*3 + 4*8 ) – 30)
= Abs((12 + 10 + 9 + 32 ) – 30)
= Abs(63 – 30)
= 33
fungsi_objektif(chromosome[2]) = Abs(( 2 + 2*1 + 3*8 + 4*3 ) – 30)
= Abs(( 2 + 2 + 24 + 12 ) – 30)
= Abs(40 – 30)
= 10
fungsi_objektif(chromosome[3]) = Abs(( 10 + 2*4 + 3*3 + 4*4 ) – 30)
= Abs(( 10 + 8 + 9 + 16 ) – 30)
= Abs(43 – 30)
= 13
fungsi_objektif(chromosome[4]) = Abs(( 20 + 2*1 + 3*10 + 4*6 ) – 30)
= Abs(( 20 + 2 + 30 + 24 ) – 30)
= Abs(76 – 30)
= 46
fungsi_objektif(chromosome[5]) = Abs(( 1 + 2*4 + 3*3 + 4*9 ) – 30)
= Abs(( 1 + 8 + 9 + 36 ) – 30)
= Abs(54 – 30)
= 24
fungsi_objektif(chromosome[6]) = Abs(( 20 + 2*5 + 3*7 + 4*1 ) – 30)
= Abs(( 20 + 10 + 21 + 4) – 30)
= Abs(55 – 30)
= 25
Rata-rata dari fungsi objektif adalah:
rata-rata = (33+10+13+46+24+25)/6
= 151 / 6
= 25.167
4. Seleksi Chromosome
Proses seleksi dilakukan dengan cara membuat chromosome yang mempunyai
fungsi_objektif kecil mempunyai kemungkinan terpilih yang besar atau mempunyai
nilai probabilitas yang tinggi. Untuk itu dapat digunakan fungsi fitness =
(1/(1+fungsi_objektif)), fungsi_objektif perlu ditambah 1 untuk menghindari
kesalahan program yang diakibatkan pembagian oleh 0.

fitness[1] = 1 / (fungsi_objektif[1]+1)
= 1 / 34
= 0.0294
fitness[2] = 1 / (fungsi_objektif[2]+1)
= 1 / 11
= 0.0909
fitness[3] = 1 / (fungsi_objektif[3]+1)
= 1 / 14
= 0.0714
fitness[4] = 1 / (fungsi_objektif[4]+1)
= 1 / 47
= 0.0212
fitness[5] = 1 / (fungsi_objektif[5]+1)
= 1 / 25
= 0.0400
fitness[6] = 1 / (fungsi_objektif[6]+1)
= 1 / 26
= 0.0385
total_fitness = 0.0294 + 0.0909 + 0.0714 + 0.0212 + 0.04 + 0.0385
= 0.2914

Rumus untuk mencari probabilitas: P[i] = fitness[i] / total_fitness

P[1] = 0.0294 / 0.2914


= 0.1009
P[2] = 0. 0909 / 0.2914
= 0.3119
P[3] = 0. 0714 / 0.2914
= 0.2450
P[4] = 0. 0212 / 0.2914
= 0.0728
P[5] = 0.04 / 0.2914
= 0.1373
P[6] = 0.0385 / 0.2914
= 0.1321

Dari probabilitas diatas dapat kita lihat kalau chromosome ke 2 yang mempunyai
fitness paling besar maka chromosome tersebut mempunyai probabilitas untuk
terpilih pada generasi selanjutnya lebih besar dari chromosome lainnya. Untuk
proses seleksi kita gunakan roulete wheel, untuk itu kita harus mencari dahulu nilai
kumulatif probabilitasnya:
C[1] = 0.1009
C[2] = 0.1009+ 0.3119
= 0.4128
C[3] = 0.1009+ 0.3119 + 0.2450
= 0.6578
C[4] = 0.1009+ 0.3119 + 0.2450 + 0.0728
= 0.7306
C[5] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373
= 0.8679
C[6] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373 + 0.1321
=1
Setelah dihitung cumulative probabilitasnya maka proses seleksi menggunakan
roulete-wheel dapat dilakukan. Prosesnya adalah dengan membangkitkan bilangan
acak R dalam range 0-1.
Jika R[k] < C[1] maka pilih chromosome 1 sebagai induk, selain itu pilih chromosome
ke-k sebagai induk dengan syarat C[k-1] < R < C[k]. Kita putar roulete wheel
sebanyak jumlah populasi yaitu 6 kali (bangkitkan bilangan acak R) dan pada tiap
putaran, kita pilih satu chromosome untuk populasi baru. Misal:
R[1] = 0.201
R[2] = 0.284
R[3] = 0.009
R[4] = 0.822
R[5] = 0.398
R[6] = 0.501
Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih kecil daripada C[2]
maka pilih chromosome[2] sebagai chromosome pada populasi baru, dari bilangan
acak yang telah dibangkitkan diatas maka populasi chromosome baru hasil proses
seleksi adalah:
chromosome[1] = chromosome[2]
chromosome[2] = chromosome[2]
chromosome[3] = chromosome[1]
chromosome[4] = chromosome[5]
chromosome[5] = chromosome[2]
chromosome[6] = chromosome[3]

Chromosome baru hasil proses seleksi:


chromosome[1] = [02;01;08;03]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;08]
chromosome[4] = [01;04;03;09]
chromosome[5] = [02;01;08;03]
chromosome[6] = [10;04;03;04]

5. Crossover
Setelah proses seleksi maka proses selanjutnya adalah proses crossover. Metode
yang digunakan salah satunya adalah one-cut point, yaitu memilih secara acak satu
posisi dalam chromosome induk kemudian saling menukar gen. Chromosome yang
dijadikan induk dipilih secara acak dan jumlah chromosome yang mengalami
crossover dipengaruhi oleh parameter crossover_rate ( ρc ).
Pseudo-code untuk proses crossover adalah sebagai berikut:
begin
k← 0;
while(k<populasi) do
R[k] ← random(0-1);
if (R[k] < ρc ) then
select Chromosome[k] as parent;
end;
k = k + 1;
end;
end;

Misal kita tentukan crossover probability adalah sebesar 25%, maka diharapkan
dalam satu generasi ada 50% Chromosome (3 chromosome) dari satu generasi
mengalami proses crossover. Prosesnya adalah sebagai berikut:
Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi
R[1] = 0.191
R[2] = 0.259
R[3] = 0.760
R[4] = 0.006
R[5] = 0.159
R[6] = 0.340

Maka Chromosome ke k akan dipilih sebagai induk jika R[k] < ρc, dari bilangan acak
R diatas maka yang dijadikan induk adalah chromosome[1], chromosome[4] dan
chromosome[5].

Setelah melakukan pemilihan induk proses selanjutnya adalah menentukan posisi


crossover. Ini dilakukan dengan cara membangkitkan bilangan acak dengan batasan
1 sampai (panjang chromosome-1), dalam kasus ini bilangan acak yang
dibangkitkan adalah 1 – 3. Misalkan didapatkan posisi crossover adalah 1 maka
chromosome induk akan dipotong mulai gen ke 1 kemudian potongan gen tersebut
saling ditukarkan antar induk.
chromosome[1] >< chromosome[4]
chromosome[4] >< chromosome[5]
chromosome[5] >< chromosome[1]

Posisi cut-point crossover dipilih menggunakan bilangan acak 1-3 sebanyak jumlah
crossover yang terjadi, misal
C[1] = 1
C[2] = 1
C[3] = 2

offspring[1] = chromosome[1] >< chromosome[4]


= [02;01;08;03] >< [01;04;03;09]
= [02;04;03;09]
offspring[4] = Chromosome[4] >< Chromosome[5]
= [01;04;03;09] >< [02;01;08;03]
= [01;01;08;03]
offspring[5] = Chromosome[5] >< Chromosome[1]
= [02;01;08;03] >< [02;01;08;03]
= [02;01;08;03]
Dengan demikian populasi Chromosome setelah mengalami proses crossover
menjadi:
chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;08]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;01;08;03]
chromosome[6] = [10;04;03;04]

6. Mutasi
Jumlah chromosome yang mengalami mutasi dalam satu populasi ditentukan oleh
parameter mutation_rate. Proses mutasi dilakukan dengan cara mengganti satu gen
yang terpilih secara acak dengan suatu nilai baru yang didapat secara acak.
Prosesnya adalah sebagai berikut. Pertama kita hitung dahulu panjang total gen
yang ada dalam satu populasi. Dalam kasus ini panjang total gen adalah
total_gen = (jumlah gen dalam chromosome) * jumlah populasi
=4*6
= 24
Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan cara
membangkitkan bilangan integer acak antara 1 sampai total_gen, yaitu 1 sampai 24.
Jika bilangan acak yang kita bangkitkan lebih kecil daripada variabel mutation_rate
(ρm) maka pilih posisi tersebut sebagai sub-chromosome yang mengalami mutasi.
Misal ρm kita tentukan 10% maka diharapkan ada 10% dari total_gen yang
mengalami populasi:
jumlah mutasi = 0.1 * 24
= 2.4
=2
Misalkan setelah kita bangkitkan bilangan acak terpilih posisi gen 12 dan 18 yang
mengalami mutasi. Dengan demikian yang akan mengalami mutasi adalah
chromosome ke-3 gen nomor 4 dan Chromosome ke-5 gen nomor 2. Maka nilai gen
pada posisi tersebut kita ganti dengan bilangan acak 0-30.

Misalkan bilangan acak yang terbangkitkan adalah 2 dan 5. Maka populasi


chromosome setelah mengalami proses mutasi adalah:
chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;02]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;05;08;03]
chromosome[6] = [10;04;03;04]
Setelah proses mutasi maka kita telah menyelesaikan satu iterasi dalam algoritma
genetika atau disebut dengan satu generasi. Maka fungsi_objective setelah satu
generasi adalah:

chromosome[1] = [02;04;03;09]
fungsi_objektif[1] = Abs(( 2 + 2*4 + 3*3 + 4*9 ) – 30)
= Abs(( 2 + 8 + 9 + 36 ) – 30)
= Abs( 55 – 30)
= 25

chromosome[2] = [02;01;08;03]
fungsi_objektif[2] = Abs(( 2 + 2*1 + 3*8 + 4*3 ) – 30)
= Abs(( 2 + 2 + 24 + 12 ) – 30)
= Abs(40 – 30)
= 10

chromosome[3] = [12;05;03;02]
fungsi_objektif[3] = Abs(( 12 + 2*5 + 3*3 + 4*2 ) – 30)
= Abs(( 12 + 10 + 9 + 8 ) – 30)
= Abs(39 – 30)
=9

chromosome[4] = [01;01;08;03]
fungsi_objektif[4] = Abs(( 1 + 2*1 + 3*8 + 4*3 ) – 30)
= Abs(( 1 + 2 + 24 + 12 ) – 30)
= Abs(39 – 30)
=9

chromosome[5] = [02;05;08;03]
fungsi_objektif[5] = Abs(( 2 + 2*5 + 3*8 + 4*3 ) – 30)
= Abs(( 2 + 10 + 24 + 12 ) – 30)
= Abs(48 – 30)
= 18

chromosome[6] = [10;04;03;04]
fungsi_objektif[6] = Abs(( 10 + 2*4 + 3*3 + 4*4 ) – 30)
= Abs(( 10 + 8 + 9 + 16 ) – 30)
= Abs(43 – 30)
= 13

Rata-rata fungsi objektif setelah satu generasi adalah:


rata-rata = ( 25 + 10 + 9 + 9 + 18 + 13) / 6
= 84 / 6
= 14.0

Dapat dilihat dari hasil perhitungan fungsi objektif diatas bahwa setelah satu
generasi, nilai hasil rata-rata fungsi_objektif lebih menurun dibandingkan hasil
fungsi_objektif pada saat sebelum mengalami seleksi, crossover dan mutasi. Hal ini
menunjukkan bahwa chromosome atau solusi yang dihasilkan setelah satu generasi
lebih baik dibandingkan generasi sebelumnya. Maka pada generasi selanjutnya
chromosome-chromosome yang baru adalah:

chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;02]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;05;08;03]
chromosome[6] = [10;04;03;04]

Chromosome-chromosome ini akan mengalami proses yang sama seperti generasi


sebelumnya yaitu proses evaluasi, seleksi, crossover dan mutasi yang kemudian
akan menghasilkan chromosome-chromosome baru untuk generasi yang
selanjutnya. Proses ini akan berulang sampai sejumlah generasi yang telah
ditetapkan sebelumnya.

Setelah 50 generasi didapatkan chromosome yang terbaik adalah:


Chromosome = [07;05;03;01]
Jika didekode maka:
a=7 ; b=5 ; c=3 ; d=1
Jika dihitung terhadap persamaan f = a+2b+3c+4d:
7 + (2*5) + (3*3) + (4*1) = 30

Penutup
Pada contoh diatas telah diberikan contoh mengenai penerapan algoritma genetika
untuk mencari solusi suatu persamaan matematis sederhana. Source code dalam
bahasa Java untuk contoh diatas dapat didownload di milis sc-ina yahoogroups:

FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI


JURUSAN SISTEM INFORMASI
UNIVERSITAS GUNADARMA
PENDAHULUAN
1. Latar Belakang
Algoritma genetika adalah salah satu metode metaheuristik yang digunakan untuk
menyelesaikan permasalahan optimasi. Algoritma genetika diciptakan pada tahun 1975oleh
John Holland yang mengemukakan komputasi berbasis evolusi dalam bukunya yang berjudul
“Adaption in Natural and Artificial Intelligence”. Tujuannya adalah untuk membuat mesin
dapat melakukan apa yang alam lakukan. Holland mengemukakan sebuah algoritma yang
memfokuskan diri pada manipulasi stringdalam bentuk binary bit yang diambil dari konsep
abstrak dari evolusi alam. Tahapan algoritma genetika yang dikemukakan dapat
direpresentasikan sebagai tahapan berurutan sebagai bentuk populasi dari kromosom buatan
menjadi sebuah populasi baru (Negnevitsky, 2005). Algoritma genetika merupakan suatu
mekanisme yang dapat melakukan pencarian dengan meniru sistem seleksi alam dan genetika
alamiah. Pengaplikasian algoritma genetika biasanya menggambarkan proses evolusi, dengan
menghasilkan kromosom-kromosom dari tiap populasi secara acak dan memungkinkan
kromosom tersebut berkembang biak sesuai dengan hukum evolusi yang diharapkan akan dapat
menghasilkan suatu individu yang lebih baik lagi. Setelah didapat suatu individu yang baru
diharapkan individu tersebut dapat menjadi solusi yang baik dari permasalahan yang dibahas.
Sebutan untuk algoritma genetika yang umum digunakan adalah algoritma genetika umum atau
algoritma genetika klasik.
2. Rumusan Masalah
1. Apa pengertian algoritma genetik?
2. Bagaimana sejarah algoritma genetik?
3. Bagaimana tahapan proses algoritma genetik?
4. Apa kelebihan algoritma genetik?
5. Apa struktur umum algoritma genetik?
3. Tujuan Penulisan
Tujuan penulisan makalah ini adalah untuk menjelaskan tentang algoritma genetik dari
pengertian, sejarah, tahapan proses, kelebihan serta struktur umum.
ISI
1. Pengertian Algoritma Genetik
Algoritma Genetika adalah suatu algoritma pencarian yang bertujuan untuk mencari
solusi dari suatu masalah, baik dengan satu variable maupun multivariable. Metode ini meniru
mekanisme dari genetika alam yaitu untuk menemukan susunan-susunan gen yang terbaik
dalam tubuh makhluk hidup.
Dasar Algoritma Genetika adalah teori evolusi Darwin, yang menjelaskan prinsip dasar
terciptanya banyak spesies makhluk hidup yang ada di dunia sekarang ini. Makhluk hidup yang
dapat beradaptasi dengan lebih baik terhadap lingkungannya akan mempunyai kesempatan
yang lebih besar untuk bertahan hidup dan bereproduksi sehingga mempengaruhi jumlah
populasi spesies yang bersangkutan di waktu-waktu selanjutnya.
Dalam perkembangannya, metode Algoritma Genetika banyak dipakai dalam berbagai
disiplin ilmu. Algoritma ini digunakan untuk menyekesaikan kasus-kasus yang mempunyai
banyak solusi, dimana tidak ada kepastian solusi yang terbaik. Sehingga dalam penyelesaian
masalah tersebut akan membutuhkan waktu yang sangat lama. Setiap solusi Algoritma
Genetika diwakili oleh suatu individu atau satu kromosom. Keuntungan Algoritma Genetika
adalah sifat metode pencariannya yang lebih optimal, tanpa terlalu memperbesar ruang
pencarian, dan tanpa kehilangan kelengkapannya.
Melalui persilangan dan mutasi, akan ada individu-individu yang baru pada populasi
sebagai populasi generasi. Persilangan atau mutasi akan dilakukan lagi sehingga populasi yang
baru dapat menemukan nilai pembandingnya. Proses ini akan diulangi selama beberapa
generasi hingga dihasilkan suatu hasil yang optimal.
2. Sejarah Algoritma Genetik
Algoritma Genetika pertama kali ditemukan oleh John Holland pada tahun 1960-an dan
kemudian dikembangkan bersama murid-murid dan rekan kerjanya di Universitas Michigan
pada tahun 1970-an. Tujuan Holland mengembangkan Algoritma Genetika saat itu bukan
untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih
mengarah ke study mengenai fenomena adaptasi yang terjadi di alam dan mencoba menerapkan
mekanisme adaptasi alam tersebut kedalam system computer.
Algoritma Genetika yang dibuat Holland merupakan sebuah metode untuk
memindahkan suatu populasi kromosom (terdiri dari bit-bit 1 dan 0 ) ke populasi baru dengan
menggunakan “ seleksi alam “ dan operator genetic seperti :
1. Crossover
menukar bagian kecil dari dua kromosom
2. Mutasi
mengganti secara acak nilai gen beberapa lokasi pada kromosom,
3. Inversion
membalikkan urutan beberapa gen yang berurutan dalam kromosom.
Dasar teori inilah yang menjadi dasar kebanyakan program yang menggunakan
Algoritma Genetika.
3. Tahapan Proses Algoritma Genetik
Pada dasarnya, algoritma genetika dapat dilakukan melalui lima tahap yaitu sebagai berikut :

1. Membentuk Populasi Awal

Langkah pertama dalam algoritma genetika adalah membentuk sebuah populasi untuk
sejumlah gen. populasi itu sendiri merupakan sekumpulan solusi yang akan digunakan dalam
proses regenerasi selanjutnya untuk mencari solusi terbaik. Solusi-solusi yang ada selanjutnya
disebut sebagai individu.

2. Mencari Fitness Cost

Pada tahap ini setiap individu yang terbentuk dicari fitness cost-nya sebagai nilai pembanding
antara individu satu dengan yang lainnya.

3. Pengurutan (Sorting)

Pada tahap ini, individu yang terdapat pada populasi diurutkan berdasarkan fitness costnya.
Tujuan utamanya adalah untuk mencari individu terbaik pada populasi yang ada, yang dapat
dikatakan sebagai solusi sementara.

4. Proses Regenerasi

Proses ini terdapat dua metode yaitu :


 Elitism Method
Metode dimana individu-individu yang akan mengalmi proses regenerasi, yaitu proses mutasi
dan crossover adalah individu-individu dengan nilai fitness yang rendah, sedangkan individu
dengan nilai fitness tertinggi atau gen terbaik akan dipertahankan untuk dibandingkan lagi
dengan individu hasil proses regenerasi.
 Non Elitms
Suatu metode regenerasi yang melibatkan semua individu baik individu / gen terbaik maupun
gen yang kurang baik (individu dengan nilai fitness rendah).

5. Tahapan Pengulangan

Setelah proses regenerasi selesai, maka dilakukan pengulangan proses ini sampai sejumlah
generasi yang dikehendaki.
4. Kelebihan Algoritma Genetik
Beberapa hal yang termasuk kelebihan dari Algoritma Genetika adalah sebagai
berikut (Haupt dan Haupt, 2004):

 Mengoptimalkan dengan variabel kontinu atau diskrit,


 Tidak memerlukan informasi derivatif,
 Bersamaan pencarian dari sebuah sampling yang luas pada permukaan biaya,
 Berkaitan dengan sejumlah besar variabel,
 Baik untuk komputer paralel,
 Mengoptimalkan permukaan variabel dengan biaya yang sangat kompleks (GA bisa
melompat dari minimum lokal),
 Memberikan daftar variabel yang optimal, bukan hanya solusi tunggal,
 Dapat menyandikan variabel sehingga optimasi dilakukan dengan mengkodekan
variabel, dan
 Bekerja dengan data numerik yang dihasilkan, data eksperimen, atau analitis fungsi.

5. Struktur Umum Algoritma Genetik


Struktur umum algoritma genetik dapat diilustrasikan dalam diagram alir berikut ini:

Inisialisasi populasi awal dilakukan untuk menghasilkan solusi awal dari suatu
permasalahan algoritma genetika. Inisialisasi ini dilakukan secara acak sebanyak jumlah
kromosom/populasi yang diinginkan. Selanjutnya dihitung nilai fitness dan seterusnya
dilakukan seleksi dengan menggunakan metode roda roullete, tournament atau ranking.
Kemudian dilakukan perkawinan silang (crossover) dan mutasi. Setelah melalui beberapa
generasi maka algoritma ini akan berhenti sebanyak generasi yang diinginkan.
6. Karakteristik Algoritma Genetik
Goldberg (1989) mengemukakan bahwa algoritma genetika mempunyai karakteristik-
karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau
optimasi yang lain yaitu:

1. AG bekerja dengan pengkodean dari himpunan solusi permasalahan berdasarkan


parameter yang telah ditetapkan dan bukan parameter itu sendiri. Sebagai contoh untuk
mendapatkan minimum dari fungsi f(x)=y=x4+2x3+5, AG tidak secara langsung
mencari nilai x atau y, tetapi terlebih dahulu merepresentasikan x dalam bentuk string
biner.
2. AG melakukan pencarian pada sebuah populasi dari sejumlah individu-individu yang
merupakan solusi permasalahan bukan hanya dari sebuah individu.
3. AG merupakan informasi fungsi objektif (fitness), sebagai cara untuk mengevaluasi
individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi.
4. AG menggunakan aturan-aturan transisi peluang, bukan aturan-aturan deterministik

KESIMPULAN
Algoritma genetik adalah teknik pencarian yang di dalam ilmu komputer untuk
menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritma
genetik adalah kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang
terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi
(atau crossover). Algoritma Genetik pertama kali dikembangkan oleh John Holland pada tahun
1970-an di New York, Amerika Serikat.
Sebelum algoritma genetika dilakukan, ada dua hal penting yang harus dilakukan yaitu
pendefinisian kromosom yang merupakan suatu solusi yang masih berbentuk simbol dan
fungsifitness atau fungsi obyektif. Dua hal ini berperan penting dalam algoritma genetika untuk
menyelesaikan suatu masalah.
Referensi
http://singgihawi.blogspot.co.id/2011/04/algoritma-genetika.html
http://informatika.web.id/algoritma-genetika.html
http://informatika.web.id/struktur-umum-algoritma-genetika.html
https://id.wikipedia.org/wiki/Algoritma_genetik
http://repository.usu.ac.id/bitstream/123456789/55989/5/Chapter%20I.pdf
PRINSIP KERJA
Prinsip kerja dari suatu algoritma genetika dapat digambarkan sebagai berikut.

Gambar 1 Langkah-langkah Algoritma Genetika

Dari gambar 1 dapat dijelaskan dalam tiga struktur utama yaitu sebagai berikut :
1. Membangkitkan populasi awal, yaitu dengan proses acak sehingga didapatkan solusi awal.
2. Membentuk generasi baru dengan menggunakan 3 operator yaitu seleksi, pindah silang, dan
mutasi.
3. Evaluasi solusi, yaitu dengan menghitung nilai fitness tiap kromosom sampai memenuhi
kriteria yang diinginkan.

Komponen-komponen dari algoritma genetika dapat dijelaskan sebagai berikut :


1. Populasi, yaitu kumpulan dari beberapa kromosom. Individu bisa dikatakan sama dengan
kromosom, yang merupakan sebuah solusi yang dibangkitkan dalam algoritma genetika dan
dibentuk dari kumpulan gen. Gen merupakan suatu nilai yang menyatakan satuan dasar yang
membentuk suatu arti tertentu. Nilai dari gen ini bisa biner, float, dan kombinatorial.
2. Fungsi Fitness, yaitu nilai yang menyatakan baik tidaknya suatu solusi (individu). Semakin
besar nilaifitness suatu individu maka semakin baik pula solusinya. Algoritma genetika
bertujuan mencari individu dengan nilai fitness yang paling tinggi. Pada aplikasi pemilihan
spesifikasi komputer ini rumus fitnessyang digunakan adalah :

Setiap alele merepresentasikan masing-masing perangkat komputer dan mempunyai bobot


sendiri. Bobot merupakan nilai tingkatan perangkat keras dimana nilainya didapatkan dari
distributor komputer. Bobotmaxmerupakan nilai bobot maksimum dan n merupakan jumlah gen
dalam satu kromosom.
3. Seleksi, proses ini dilakukan untuk mendapatkan calon induk yang baik. Dalam pengertian
induk yang baik akan menghasilkan keturunan yang baik. Semakin tinggi nilai fitness suatu
individu semakin besarkemungkinannya untuk terpilih. Seleksi dapat dilakukan dengan
cararoulette wheel. Seleksi roulette wheel untuk memilih induk dilakukandengan
menggunakan persentase fitness setiap individu, dimana setiap individu mendapatkan luas
bagian sesuai dengan persentase nilaifitnessnya.
4. Pindah silang (cross over), yaitu merupakan salah satu operator dalam algoritma genetika yang
melibatkan dua induk untuk menghasilkan keturunan yang baru. Pindah silang dilakukan
dengan melakukan pertukaran gen dari dua induk secara acak. Ada dua macam pindah silang
yaitu pindah silang satu titik dan pindah silang banyak titik. Pada aplikasi ini digunakan pindah
silang satu titik. Pindah silang dilakukan dengan cara menentukan posisi awal dan akhir gen
pada individu yang akan dikawinkan secara acak. Kemudian dilakukan penukaran nilai gen
induk 1 dan induk 2 dari posisi awal sampai dengan posisi akhir untuk diperoleh anak 1 dan
anak 2 seperti terlihat pada Gambar 2 berikut.

Dari Gambar 2 dapat dilihat bahwa proses pindah silang terjadi pada satu titik yaitu pada gen
ke-3 dan ke-4.
5. Mutasi, yaitu merupakan operator yang menukar nilai pada gen, misalnya gennya bernilai 0
menjadi 1. Mutasi dilakukan dengan memberikan nilai inversi atau menggeser nilai gen pada
gen yang terpilih untuk dimutasikan. Pada aplikasi ini mutasi dilakukan dengan cara menggeser
posisi gen yang dimutasi. Penggeseran ini dilakukan dengan melakukan penambahan atau
pengurangan pada posisi tersebut. Proses ini dapat digambarkan pada Gambar 3 berikut.
VIII. APLIKASI
Use Case
Use case untuk aktor pengguna pada aplikasi pemilihan spesifikasi komputer ini
ditunjukkan pada Gambar 4.

Untuk menggunakan proses algoritma genetika pengguna terlebih dahulu memilih


kebutuhan yang sesuai, kemudian membangkitkan populasi awal, melakukan proses seleksi,
pindah silang, mutasi, dan yang terakhir adalah melihat solusi yang dihasilkan.
Use case untuk administrator pada aplikasi pemilihan spesifikasi komputer ini ditunjukkan
pada Gambar 5.

Diagram Aktivitas
Diagram aktivitas akan menggambarkan proses yang terjadi pada aplikasi pemilihan
spesifikasi komputer untuk masing-masing aktor yang mengaksesnya.
1. Algoritma Genetika
Diagram aktivitas algoritma genetika ditunjukkan oleh Gambar 6.

Populasi awal kromosom akan terbentuk yang nantinya diseleksi untuk mendapatkan
kromosom-kromosom terpilih. Kromosom-kromosom ini kemudian akan mengalami proses
pindah silang dan mutasi. Setelah didapatkan kromosom solusi, kromosom tersebut akan
dicocokkan dengan basis data yang ada untuk kemudian dikonversi menjadi spesifikasi
komputer yang diminta.

2. Perubahan Data Komputer


Diagram aktivitas perubahan data komputer ditunjukkan oleh Gambar 7.

Dari Gambar 7 dapat dijelaskan bahwa proses perubahan data komputer dilakukan oleh
administrator. Administrator harus masuk kedalam mode administrator untuk dapat melakukan
proses ini, yaitu dengan memasukkan password pada menu login. Data kemudian dapat diubah
sesuai dengan perkembangan yang terjadi. Setelah itu data disimpan di basis data.

3. Perubahan Bobot Komputer


Diagram aktivitas perubahan bobot komputer ditunjukkan oleh Gambar 8.

Dari Gambar 8 dapat dijelaskan bahwa proses perubahan bobot komputer yang ada di basis
data sesuai dengan perkembangan komputer yang terjadi. Perubahan ini nantinya akan
disimpan kedalam basis data kembali.

IX. ANALISA
Pengujian dimulai dengan memberikan informasi kebutuhan yang diinginkan dengan
batasan dana yang dipunyai. Dari nilai-nilai tersebut algoritma genetika akan melalukan iterasi
(Gambar 9) untuk mencari nilai keluaran dengan fitness optimal dengan harga yang mendekati
batasan dana yang ada.
Setelah semua proses algoritma genetika dijalankan maka pengguna dapat mengetahui
keluaran yang diinginkan. Gambar 10 merupakan tampilan dari form solusi.

X. KESIMPULAN
Dari hasil implementasi algoritma genetika dalam pemilihan spesifikasi komputer
diperoleh kesimpulan hal sebagai berikut.
1. Proses yang dikerjakan terdiri atas 3 fungsi utama yaitu proses algoritma genetika, pengubahan
bobot kebutuhan dan pengubahan data komputer.
2. Implementasi algoritma genetika pemilihan spesifikasi komputer ini berbasis pada proses acak.
3. Perbedaan perhitungan nilai fitness tiap kebutuhan komputer berdasarkan pada bobot tiap
perangkat keras.
4. Pengurutan perangkat keras dalam basis data berdasarkan pada perbandingan kinerja tiap
perangkat keras.

Anda mungkin juga menyukai