1
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.
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]
2
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
3
= 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
4
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;
5
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
6
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]
7
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
8
max p(x) untuk xa ≤ x ≤ xb. (3-2)
Langkah-langkah yang harus dilakukan dalam penerapan Algoritma genetika untuk
menentukan nilai maksimum dari polinomial diatas adalah:
a. Pembentukan Populasi awal
b. Proses Evaluasi
c. Proses Seleksi
d. Penerapan operator penyilangan dan operator mutasi
e. Ulangi langkah b sampai e sebanyak generasi yang diinginkan dan pilih kromosom terbaik
pada setiap generasi.
1. Pembentukan Populasi Awal
Populasi awal dibentuk dari sejumlah kromosom. Jumlah Kromosom akan
dipakai seterusnya selama proses komputasi dan disebut ukuran populasi (UkPop).
Representasi kromosom paling sederhana untuk menyatakan msalah adalah dalm
bentuk biner. Banyak bit kode biner ditentukan berdasarkan tingkat ketelitian yang
diinginkan. Jika ukuran kromosom N bit, maka pada interval yang ditentukan yaitu
pada xa ≤𝑥 ≤𝑥𝑏 akan terdapat 2^𝑁 kemungkinan yang merupakan representasi dari
nilai x. Kromosom pertama (00..0) merupakan kode dari xa dan kromosom terakhir
(11..1) merupakan kode dari xb. Secara matematis representasi kromosom (v)
dengan kode biner N bit ini dapat dinyatakan dalam persamaan berikut:
V1= [b1,b2,...,bN], (3-3)
dengan 1 ≤ i ≤ Ukpop dan bi ϵ {0,1}
Populasi awal akan dibentuk secara acak. Berarti bahwa penyelesaian yang
dihasilkan oleh Algoritma Genetika pada generasi pertama didapat dari salah satu
bilangan random x1,x2, ..., xUkPop yang dikodekan dari kode biner kromosom
v1,v2,...,VUkPop. Mengingat optimasi dalam masalah ini adalah pencarian nilai
maksimum, maka penyelesaian yang dihasilkan adalah nilai polinomial (3-1) paling
besar yang dihasilkan oleh salah satu bilangan random yang dikode dari kromosom
pada populasi awal.
2. Proses Evaluasi
Merupakan proses menghitung nilai fitness dari setiap kromosom. Nilai
fitness inilah yang menentukan tingkat kualitas kromosom sebagai representasi
penyelesaian masalah. Dalam masalah ini fungsi fitness (f) dapat didefinisikan
sama dengan fungsi objektif, yaitu polinomial p(x). Hal ini mengingat masalah
optimasinya adalah pencarian nilai maksimum sebagaimana telah dijelaskan pada
Bab 2.
Dalam proses evaluasi ini perlu dilakukan perhitungan-perhitungan sebagai
berikut:
• Dekode setiap representasi kromosom vi menjadi xi.
• Hitung nilai fungsi fitness untuk setiap kromosom f(xi)=p(xi)
3. Proses Seleksi
Merupakan proses memilih kromosom-kromosom yang akan dipertahankan
dalam populasi selanjutnya. Proses seleksi yang paling mudah digunakan adalah
proses seleksi dengan pendekatan roda rolet (roulette wheel). Seperti telah
dijelaskan dalam bab 2, proses ini dapat dilakukan dengan pemilihan secara acak
menggunakan bilangan riil dengan langkah-langkah:
• Bangkitkan bilangan random r yang bernilai antara 0 sampai 1 (0 ≤ r ≤ 1).
9
𝑓(𝑥1) ∑𝑖−1
𝑗=𝑛 𝑓(𝑥𝑗)
• Jika r < 𝑈𝑘𝑝𝑜𝑝 maka pilih kromosom pertama atau jika 𝑈𝑘𝑃𝑜𝑝 ≤
∑𝑗=1 𝑓(𝑥𝑗) ∑𝑗=1 𝑓(𝑥𝑗)
∑𝑖𝑗=𝑛 𝑓(𝑥𝑗)
r< 𝑈𝑘𝑃𝑜𝑝 maka pilih kromosom ke-i
∑𝑗=1 𝑓(𝑥𝑗)
• Ulangi kedua langkah diatas sebanyak kromosom dalam sebuah populasi.
4. Penerapan Operator Penyilangan dan Operator Mutasi
Penggunaan kode biner dalam representasi kromosom akan memudahkan
pemilihan operator penyilangan dan operator mutasi. Dalam hal ini semua operator,
baik operator penyilangan maupun operator mutasi yang sudah dijelaskan dalam
bab 2 dapat diterapkan.
10
7. Substitusi nilai-nilai tersebut maka akan menghasilkan persamaan (3-5). Persamaan inilah yang
akan digunakan untuk mendekode kode biner menjadi nilai x sebagaimana dicantumkan dalam
kolom ketiga. Substitusi setiap nilai x ke dalam persamaan (3-4) akan menghasilkan nilai p(xi)
sebagai hasil proses evaluasi. Nilai-nilai kromosom beserta nilai x yang direpresentasikan dan nilai
fungsi fitness evaluasi secara lengkap diperlihatkan dalam tabel 3.1. Perlu diperhatikan dalam tabel
ini penyelesaian terbaik didapat dari krmosom ke-9 yang menghasilkan nilai polinomial sebesar
170,207 untuk x sebesar 4,087.
∑7𝑗=1 𝑏𝑗 ∙27−𝑗
𝑥 = 1+4∙( ) (3-5)
127
Pemodelan proses seleksi yang menggunakan metode roda rolet memerlukan perhitungan
yang melibatkan nilai fungsi fitness dari setiap kromosom.Pemodelan ini ditunjukkan dalam tabel
3.2 yang menyebabkan kromosom ke 7, 8 dan 10 tidak bertahan dalam populasi ( tidak terdapat
dalam kolom terakhir). Dalam tabel tersebut tampak jika kromosom dengan fungsi fitness terbesar
mendominasi populasi. Penentuan hasil seleksi ini mudah sekali dilakukan, yaitu dengan mencari
posisi pertama dari bilangan pada kolom keempat yang lebih besar daripada bilangan random (r).
Kromosom-kromosom hasil seleksi inilah yang akan dikenai operator Algoritma Genetika.
Setelah proses seleksi, komputasi berikutnya adalah pemilihan pasangan induk kromosom
yang akan dikenai operator penyilangan. Pemodelan pemilihan induk kromosom ini melibatkan
11
parameter probabilitas penyilangan seta bilangan random r yang dibangkitkan sebanyak ukuran
populasi. Kromosom ke-i dinyatakan terpilih sebagai induk jika bilangan random ke-i kurang dari
probabilitas penyilangan. Proses pemilihan induk kromosom ini ditunjukkan dalam tabel 3.3
Berdasarkan tabel 3.3 ternyata didapat 7 kromosom induk. Oleh karena operator penyilangan
hanya dapat diterapkan pada pasangan kromosom berarti terdapat sebuah kromosom yang tidak
mendapatkan pasangannya. Untuk mudahnya kromosom induk terakhir dianggap tidak memeroleh
pasangan. Dengan demikian terdapat 3 pasangan kromosom yang akan dikenai operator
penyilangan, yaitu pasangan (2,4), (5,7), (8,9) pada populasi hasil seleksi.
Dalam pengujian,metode penyilangan yang digunakan adalah metode penyilangan dengan
sebuah titik potong. Titik potong dipilih secara random, oleh karena hanya terdiri dari 7 bit berarti
hanya terdapat 6 kemungkinan titik potong. Untuk populasi pada generasi pertama dalam
pengujian didapat titik potong pada bit ke-4. Proses penyilangan dapat digambarkan pada tabel
3.4.
Setelah penerapan operator penyilangan, kromosom hasil penyilangan akan dikenai
operator mutasi. Pemilihan bit-bit yang terkena mutasi menggunakan bilangan random r yang
dibangkitkan secara acak sebanyak bit dalam populasi, yaitu 70 kali (7 bit dikalikan 10
kromosom). Bit akan terkena mutasi jika bilangan random r yang dibangkitkan untuk bit yang
bersangkutan kurang dari probabilitas mutasi (dalam pengujian ini 10%). Dalam pengujian ini
hanya 3 bit di antara ke 70 bit yang terkena mutasi, yaitu bit terakhir dalam kromosom ke-2, bit
ke-6 dalam kromosom ke-5 dan bit ke-2 dalam kromosom ke-7. Proses mutasi dapat digambarkan
dalam Tabel 3.5.
Tabel 3.3 Pemilihan Induk Penyilangan dengan Probabilitas Penyilangan sebesar 50%
12
Populasi yang dihasilkan dari penerapan operator mutasi tidak lain adalah populasi
generasi kedua. Proses selanjutnya hanyalah mengulangi proses evaluasi, proses seleksi dan
penerapan operator Algoritma Genetika yang dilakukan pada generasi pertama. Pengujian
menunjukkan adanya perbaikan kualitas penyelesaian yang ditunjukkan dengan semakin
bertambahnya nilai fungsi fitness pada generasi berikutnya. Perbandingan nilai fitness terbaik
untuk setiap generasi dapat dilihat pada gambar 3.2.
13
Gambar 3.2 Perbandingan Nilai Fitness pada Setiap Generasi
b. Proses Evaluasi
Proses Evaluasi merupakan proses untukmenghitung niali fitness
yang menyatakan tingkat kualitas kromosom sebagai representasi
penyelesaian masalah. Karena TSP merupakan maslah pencarian nilai
minimum maka fungsi fitness tidak bisa didefinisikan secara langsung dari
fungsi objektif. Dalam proses evaluasi perlu dilakukan perhitungan sebagai
berikut :
14
• Dekode setiap reperesntasi kromosom vi menjadi fi, nilai fi ddidapat dari
perhitungan jarak antar kota menggunakan persamaan Euclidean :
Dab = sqrt(xa-xb)2 + (ya-yb)2
• Hitung nilai fungsi fitness untuk setiap kromosom berdasarkan persamaan.
c. Proses Seleksi
Proses seleksi merupakan proses untuk memilih kromosom-
kromosom yang akan dipertahankan dalam populasi selanjutnya. Gunakan
pendekatan roulette wheel yang dapat dilakukan dengan peilihan secara
acak menggunakan blangan riil dengan langkah :
15
Tabel 3.6 Posisi kota dalam TSP yg diujikan
Maka berdasarkan persamaan jara Euclidean dapat dihitung niali fungsi objektif setiap
kromosom sebagaimana terdapat pada tabel 3.8.
Tabel 3.8 Fungsi Objektif dan Fungsi Fitness untuk Populasi Pertama
16
posisi pertama dari bilangan kolom ke empat yang lebih besar daripada bilangan random
(r). Kromosom-kromosom inilah yang akan dikenai operator-operator Algoritma Genetika.
Setelah proses seleksi,komputasi berikutnya adalah pemasangan induk kromosom
yang akan dikenai operator penyilangan yang melibatkan parameter probabilitas
penylangan (Pc) serta bilangan random r yang dibangkitkan sebanyak ukuran populasi.
Kromosom I dinyatakan terpilih sebagai induk jika bilangan random ke I kurang dari
prbabilitas penyilangan.
17
Berdasarkan tabel didapat 4 kromosom induk yang terpilih untuk disilangkan, yaitu pasangan (1,7)
dan (8,9).
Tabel 3.12 Populasi Hasil Proses Penyilangan pada Populasi Pertama
Hasil dari operator penyilangan akan dikenai operator mutasi. Pemilihan gen-gen yang akan
terkena mutasi menggunakan bilangan secara acak sebanyakgen dalam populasi yaitu 250 kali (25
gen x 10 kromosom).
Gen akan terkena mutasi jika bilangan random (r) yang dibangkitkan untuk gen yang
bersangkutan kurang dari probbabilitas mutasi. Untuk selanjutnya gen yang terpilih akan ditukar
letaknya dengan gen lain secara acak yang terdapat pada kromosom yang sama.
Proses selanjutnya yaitu mengulang proses evaluasi, seleksi dan penerapan operator
algoritma genetika (crossover dan mutasi) sebagaimana dilakuka pada generasi pertama.
Hasil pengujian dengan beberapa variasi parameter Algoritma.
18
3. Kesimpulan
Berdasarkan uraian di atas, dapat ditarik beberapa kesimpulan sebagai berikut:
a. Algoritma Genetika adalah algoritma pencarian yang berdasarkan mekanisme
seleksi alam Darwin dan prinsip-prinsip genetika, untuk menentukan struktur-
struktur (yang masing-masing disebut individu) berkualitas tinggi yang terdapat
dalam sebuah domain (yang disebut populasi).
b. 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”.
c. Algoritma Genetika yang telah diimplementasikan menggunakan program
komputer dapat membantu menyelesaikan masalah optimasi penentuan ukuran,
jumlah, lokasi, dan tipe kapasitor shunt pada penyulang distribusi primer radial.
d. Algoritma Genetika yang diterapkan secara mandiri pada proses optimasi
penempatan kapasitor shunt dapat mencapai penyelesaian optimum global
(global optimum solution).
e. Algoritma Genetika mampu memberikan perhitungan optimasi dengan
melakukan diskritisasi ukuran kapasitor (ukuran kapasitor yang akan dipasang
disesuaikan dengan ukuran kapasitor standar di lapangan) atau dengan ukuran
kontinyu.
f. 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.
g. Pencarian solusi mendekati optimal dilakukan dengan melakukan beberapa kali
proses iterasi, yaitu dengan Pembentukan chromosome, Inisialisasi, Evaluasi
Chromosome, Seleksi Chromosome, Crossover, Mutasi secara berulang sampai
didapatkan solusi yang optimal.
4. Saran
Jika masalah optimasi cukup kompleks sehingga jumlah parameternya banyak, sebaiknya
Algoritma Genetika tidak dioperasikan secara mandiri. Perhitungan awal untuk inisialisasi data
atau penggunaan metode lain untuk mengurangi jumlah parameter yang dicari, akan sangat
membantu.
5. Daftar Pustaka
Davis, L. (1991). Handbook of Genetic Algorithms. New York : Van Nostrand Reinhold.
19
http://groups.yahoo.com/group/sc-ina/ atau http://soft-computing.org
(diakses pada 21 Maret 2018).
20