ALGORITMA GENETIK
Di Susun Oleh:
Arini_2004411289
Rina Angraeni_2004411296
Hanisah Gatri_2004411827
Arfiana_2004411579
Sukarsi_1804411218
Wana Lewapadang_2004411677
1
KATA PENGATAR
Puji dan syukur senantiasa kita panjatkan kehadirat Allah SWT, shalawat serta
salamsemoga senantiasa dilimpahkan kepada Nabi Muhammad SAW, juga untuk para
keluarga,sahabat dan pengikutnya sampai akhir zaman. Karena atas rahmat-Nya, kami dapat
menyelesaikan makalah ini yang berjudul “Algoritma Genetika”.
Makalah ini disusun untuk memenuhi tugas mata kuliah “Kecerdasan Buatan”. Kami
mengucapkan terimakasih kepada Bapak Fajar Novriansyah Yasir, S.Kom., M.Kom. selaku
dosen pengampu, teman-teman dan semua pihak yang membantu dalam penyelesaian
makalah ini.
Kami berharap makalah ini dapat menambah pengetahuan pembaca dan memberikan
gambaran mengenai materi terkait yaitu Algoritma Genetika. Sehingga pembaca dapat
menggunakan makalah ini sebagai literatur pendukung dalam pengembangan bidang ilmu
selanjutnya yang terkait dengan penggunaan algoritma genetika.
Kami menyadari bahwa makalah ini masih jauh dari kesempurnaan, maka kami
mengharapkan saran dan kritik yang membangun untuk perbaikan makalah ini.Besar harapan
kami makalah ini dapat berguna bagi siapapun yang menjadikan makalah ini sebagai bahan
literatur mengenai materi terkait.
Penyusun
DAFTAR ISI
2
KATA PENGATAR....................................................................................................................................2
DAFTAR ISI...............................................................................................................................................3
BAB I..........................................................................................................................................................4
PENDAHULUAN.......................................................................................................................................4
A. Latar Belakang.................................................................................................................................4
B. Rumusan Masalah............................................................................................................................4
C. Tujuan Penulisan.............................................................................................................................5
BAB II.........................................................................................................................................................6
PEMBAHASAN.........................................................................................................................................6
A. Pengertian Algoritma Genetik.........................................................................................................6
B. Sejarah Algoritma Genetik..............................................................................................................6
C. Tahapan Proses Algoritma Genetik.................................................................................................7
G. Karakteristik Algoritma Genetik....................................................................................................11
H. Contoh Pemakaian Algoritma Genetika.........................................................................................11
BAB III......................................................................................................................................................22
PENUTUP.................................................................................................................................................22
A. Kesimpulan....................................................................................................................................22
B. Saran..............................................................................................................................................23
DAFTAR PUSTAKA................................................................................................................................23
BAB I
PENDAHULUAN
A. Latar Belakang
Algoritma genetika adalah salah satu metode metaheuristik yang digunakan untuk
menyelesaikan permasalahan optimasi. Algoritma genetika diciptakan pada tahun 1975
3
oleh 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 string dalam 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.
B. 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?
6. Komponen utama algoritma genetik?
7. Apa saja karakteristik algoritma genetik?
C. Tujuan Penulisan
Tujuan penulisan makalah ini adalah untuk menjelaskan tentang algoritma genetik
dari pengertian, sejarah, tahapan proses, kelebihan, struktur umum, komponen, serta apa
saja yang mejadi karakteristik algoritma genetik.
4
5
BAB II
PEMBAHASAN
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 kembanyakan program yang menggunakan
Algoritma Genetika.
6
C. 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).
7
5. Tahapan Pengulangan
Setelah proses regenerasi selesai, maka dilakukan pengulangan proses ini sampai
sejumlah generasi yang dikehendaki.
8
F. Komponen Utama Algoritma Genetik
1. Teknik pengkodean
Teknik pengkodean disini meliputi pengkodean gen dari kromosom. Gen
merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu variabel.
Algoritma genetika merepresentasikan gen sebagai bilangan real atau desimal, disini
digunakan discrete decimal encoding, yaitu setiap gen berupa deretan bilangan bulat
dalam interval [0,9].
2. Prosedur Inisialisasi
Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis
operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan,
kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada
9
populasi tersebut. Inisialisasi kromosom dilakukan secara acak, namun demikian
harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada.
3. Fungsi Evaluasi
Ada 2 hal yang harus dilakukan dalam melakukan evaluasi kromosom, yaitu:
evaluasi fungsi objektif (fungsi tujuan) dan konversi fungsi objektif dengan nilai
yang tidak negatif. Apabila ternyata fungsi objektif memiliki nilai negatif, maka
perlu ditambahkan suatu konstanta C agar nilai fitness yang terbentuk menjadi tidak
negatif.
4. Seleksi
Seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar
bagi anggota populasi yang paling fit. Seleksi akan menentukan individu-individu
mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana offspring
terbentuk dari individu-individu terpilih tersebut.
5. Operator Genetika
Ada 2 operator Genetika, yaitu:
a. Operator rekombinasi, rekombinasi yang digunakan adalah rekobinasi one-point
crossover
b. Operator untuk mutasi mutasi yang digunakan adalah swapping mutation
6. Penetuan parameter
Parameter di sini adalah parameter kontrol algoritma genetika, yaitu: ukuran
populasi (popsize), peluang crossover (Pc), dan peluang A B C D E mutasi (Pm).
Nilai parameter ini ditentukan juga berdasarkan permasalahan yang akan dipecahkan.
Ada beberapa rekomendasi yang bisa digunakan, antara lain (Kusumadewi, 2003:
283): Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong
merekomendasikan untuk nilai parameter kontrol: (Popsize;Pc;Pm) = (50; 0,6; 0,001)
Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefensette
merekomendasikan: (Popsize;Pc;Pm) = (30; 0,95; 0,01) Bila fitness dari individu
terbaik dipantau pada setiap generasi maka usulannya adalah: (Popsize;Pc;Pm) =
(80; 0,45;0,01)
10
G. 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
Kita akan membahas sebuah contoh aplikasi algoritma genetika yang digunakan untuk
“a + 2b + 3c + 4d = 30”
Kita mencari nilai a, b, c, dan d yang memenuhi persamaan diatas. Kita mencoba
11
12
Penjelasan mengenai langkah-langkah penyelesaian permasalahan dari flowchart diatas
menggunakan algoritma genetika adalah sebagai berikut :
1. Pembentukan Kromosom
Karena yang dicari adalah nilai a, b, c, d maka variabel a, b, c, d dijadikan
sebagai gen-gen pembentuk kromosom. 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 :
3. Evaluasi Kromosom
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(kromosom) = | (a + 2b + 3c + 4d) – 30 |”
13
= Abs(40 - 30)
= 10
4. Seleksi Kromosom
Proses seleksi dilakukan dengan cara membuat kromosom 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.
14
iii. fitness[3] = 1 / (fungsi_objektif[3]+1) = 1 / 14 = 0.0714
iv. fitness[4] = 1 / (fungsi_objektif[4]+1) = 1 / 47 = 0.0212
v. fitness[5] = 1 / (fungsi_objektif[5]+1) = 1 / 25 = 0.0400
vi. 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
Dari probabilitas diatas dapat kita lihat kalau kromosom ke-2 yang mempunyai
fitness paling besar maka kromosom tersebut mempunyai probabilitas untuk terpilih
pada generasi selanjutnya lebih besar dari kromosom lainnya. Untuk proses seleksi kita
gunakan roulette wheel, untuk itu kita harus mencari dahulu nilai kumulatif
probabilitasnya :
i. C[1] = 0.1009
15
R dalam range 0-1. Jika R[k] < C[1] maka pilih kromosom 1 sebagai induk, selain itu
pilih kromosom 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 kromosom untuk populasi baru. Misal :
i. R[1] = 0.201
v. R[5] = 0.398
Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih kecil daripada
C[2] maka pilih Kromosom[2] sebagai kromosom pada populasi baru, dari bilangan acak
yang telah dibangkitkan diatas maka populasi kromosom baru hasil proses seleksi adalah
:
i. Kromosom[1] = Kromosom[2]
v. Kromosom[5] = Kromosom[2]
i. Kromosom[1] = [02;01;08;03]
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 kromosom induk kemudian saling menukar gen. Kromosom yang dijadikan
induk dipilih secara acak dan jumlah kromosom 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);
• R[1] = 0.191
• R[2] = 0.259
• R[3] = 0.760
• R[4] = 0.006
• R[5] = 0.159
• R[6] = 0.340
17
Maka kromosom ke-k akan dipilih sebagai induk jika R[k] < ρc, dari bilangan
acak R diatas maka yang dijadikan induk adalah Kromosom[1], Kromosom[4]
dan Kromosom[5].
• C[1] = 1
• C[2] = 1
• C[3] = 2
offspring[1] = Kromosom[1] >< Kromosom[4]
= [02;01;08;03] >< [01;04;03;09]
= [02;04;03;09]
• Kromosom[1] = [02;04;03;09]
18
• Kromosom[2] = [02;01;08;03]
• Kromosom[3] = [12;05;03;08]
• Kromosom[4] = [01;01;08;03]
• Kromosom[5] = [02;01;08;03]
• Kromosom[6] = [10;04;03;04]
6. Mutasi
Jumlah kromosom 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 :
i. Pertama kita hitung dahulu panjang total gen yang ada dalam satu populasi.
Dalam kasus ini panjang total gen adalah :
total_gen= = (jumlah gen dalam kromosom) * jumlah populasi
=4*6
= 24
ii. 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-kromosom
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
iii. Misalkan setelah kita bangkitkan bilangan acak terpilih posisi gen 12 dan 18
yang mengalami mutasi. Dengan demikian yang akan mengalami mutasi adalah
kromosom ke-3 gen nomor 4 dan kromosom 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 kromosom setelah
mengalami proses mutasi adalah : Kromosom[1] = [02;04;03;09]
19
• Kromosom[2] = [02;01;08;03]
• Kromosom[3] = [12;05;03;02]
• Kromosom[4] = [01;01;08;03]
• Kromosom[5] = [02;05;08;03]
• Kromosom[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 :
= Abs(( 12 + 10 + 9 + 8 ) - 30)
= Abs(39 - 30) = 9
20
= Abs(( 2 + 10 + 24 + 12 ) - 30)
= Abs(48 - 30) =
18
( 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 kromosom atau solusi yang dihasilkan setelah satu generasi lebih
baik dibandingkan generasi sebelumnya. Maka pada generasi selanjutnya
kromosomkromosom yang baru adalah:
• Kromosom[1] = [02;04;03;09]
• Kromosom[2] = [02;01;08;03]
• Kromosom[3] = [12;05;03;02]
• Kromosom[4] = [01;01;08;03]
• Kromosom[5] = [02;05;08;03]
• Kromosom[6] = [10;04;03;04]
Kromosom-kromosom ini akan mengalami proses yang sama seperti generasi
sebelumnya yaitu proses evaluasi, seleksi, crossover dan mutasi yang kemudian akan
menghasilkan kromosom-kromosom baru untuk generasi yang selanjutnya. Proses ini
akan berulang sampai sejumlah generasi yang telah ditetapkan sebelumnya. Siklus ini
menurut beberapa ilmuwan Zbigniew Michalewiz digambarkan sebagai berikut :
21
Setelah 50 generasi didapatkan kromosom yang terbaik adalah :
1. Kromosom = [07;05;03;01]
2. A = 7 ; b = 5 ; c = 3 ; d = 1
Jika dihitung terhadap persamaan :
3. F = a + 2b + 3c + 4d
= 7 + (2*5) + (3*3) + (4*1) =
30.
22
BAB III
PENUTUP
A. 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.
Pencarian solusi mendekati optimal dilakukan dengan melakukan beberapa kali
proses iterasi, yaitu evaluasi, seleksi, crossover dan mutasi secara berulang sampai
didapatkan solusi yang optimal.
B. Saran
Penyusun menyarankan untuk mengembangkan makalah selanjutnya dan juga
diberikan contohya agar dapat mempermudah simulasi, menganalisis dan dan
membandingkan semua algoritma aptimasi, bukan hanya Algoritma Genetik.
23
DAFTAR PUSTAKA
https://www.academia.edu/19263821/
MAKALAH_Kecerdasan_Buatan_Algoritma_Genetika
http://hendrik.staff.gunadarma.ac.id/Downloads/files/23066/algoritma-genetika.pdf
http://dhansipp.files.wordpress.com/2009/11/kecerdasan-buatan-chapter-11-12-
http://lecturer.eepisits.edu/~entin/Kecerdasan%20Buatan/Buku/Bab%207%20Algoritma
%20Genetika.pdf,
24