Upload
jonathan-christian
View
232
Download
5
Embed Size (px)
DESCRIPTION
Implementasi Algen Untuk Optimasi Pembuatan Rumah
Citation preview
IMPLEMENTASI ALGORITMA GENETIKA UNTUK
OPTIMASI BIAYA PEMBANGUNAN RUMAH
Akhmad Zaenal Mutaqin1, Bahrunur2, Christian Yonathan S3,
Farid Amin Ridwanto4, Sri Muliany Boutu5
Jurusan Ilmu Komputer Dan Elektronika
Fakultas Matematika Dan Ilmu Pengetahuan Alam
Universitas Gadjah Mada
Abstrak
Dalam Era global modern saat ini perkembangan dunia teknologi sangat pesat, terutama dalam
bidang Teknologi. Algoritma genetika dapat digunakan untuk menyelesaikan masalah optimasi
yang kompleks seperti Pemilihan Spesifikasi Komputer dan lain-lain. Dalam Makalah ini akan
dijelaskan tentang penerapan Algoritma Genetika untuk mencari solusi yang terbaik dalam
permasalahan optimasi biaya pembangunan rumah. Sistem algoritma ini di desain menggunakan
representasi kromoson dalam bentuk integer. Sistem ini menggunakan metode seleksi Roulette
Wheel, dengan Cross over metode satu titik random. Mutasi yang digunakan ialah menggunakan
peluang mutasi. Dari hasil pengujian, dapat disimpulkan bahwa secara keseluruhan, algoritma
genetika yang telah didisain dapat berjalan dengan baik dan dapat menyelesaikan permasalahan.
Kata Kunci : Algoritma Genetik, Optimasi Biaya Rumah
I. Latar Belakang
Algoritma genetik adalah teknik
pencarian yang di dalam ilmu komputer
untuk menemukan penyelesaian perkiraan
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).
Dengan meniru evolusi ini algoritma
genetika dapat digunakan untuk mencari
solusi permasalahan dalam dunia nyata.
Sebelum algoritma genetika dapat
dijalankan, maka sebuah kode yang sesuai
untuk persoalan harus dirancang. Untuk ini
maka titik solusi dalam ruang permasalahan
dikodekan dalam bentuk kromosom yang
terdiri atas komponen genetik terkecil yaitu
gen. Dengan teori evolusi dari teori
genetika, di dalam penerapan algoritma
genetika akan melibatkan beberapa operator,
yaitu:
Untuk memeriksa hasil optimasi, kita
membutuhkan fungsi fitness, yang
menandakan gambaran hasil (solusi) yang
sudah dikodekan. Selama berjalan, induk
(parents) harus digunakan untuk proses
reproduksi, pindah silang, dan mutasi untuk
menciptakan keturunan (offspring). Jika
algoritma genetika didesain secara baik,
populasi akan mengalami konvergensi dan
akan mendapatkan sebuah solusi yang
optimum.
Secara sederhana algoritma umum
dari algoritma genetika dapat dirumuskan
menjadi beberapa langkah, yaitu:
Pembangkitan kromosom yaitu
membentuk suatu populasi
individual dengan keadaan acak.
Mendefinisikan fungsi fitness,
dimana fungsi fitness adalah fungsi
objektif yang menggambarkan
masalah optimasi.
Melakukan seleksi yaitu
mengevaluasi kecocokan setiap
individu dengan hasil yang
diinginkan dilanjutkan memilih
individu dengan kecocokan yang
tertinggi (fitness tertinggi).
Bereproduksi dengan mengadakan
persilangan antar individu
(crossover) terpilih diselingi dengan
mutasi (mutation)
Mengevaluasi individu hasil
reproduksi untuk dijadikan populasi
baru pada iterasi selanjutnya.
Mengulangi langkah 3 - 4 sampai
ditemukan individu dengan hasil
yang diinginkan.
II. Identifikasi Masalah
Permasalahan yang dikemukakan
oleh kelompok algortima genetika ini adalah
dalam bentuk kasus. Diharapkan dengan
penarapan algoritma genetika ke dalam
kasus ini disertai dengan implementasinya
pada program komputer dapat menemukan
solusi terbaik dalam waktu yang singkat.
Kasus yang dipermasalahkan adalah sebagai
berikut:
Untuk membangun sebuah rumah
memang diperlukan bahan-bahan yang
banyak, akan tetapi kami mengasumsikan
bahwa Tanah,Pasir dan
Semen,Lantai,Pintu,Jendela,dan Pekerja
merupakan bahan utama dalam proses
pembangunan sebuah rumah. Aplikasi yang
kami membuat adalah sebagai saran kepada
Customer bahan-bahan apa saja yang
optimal sehingga Customer dapat membeli
sesuai dengan budget yang Customer miliki.
III. Tujuan Penulisan
Berdasarkan dari pembuatan dan
impementasi program yang telah dilakukan
makalah ini disusun dengan tujuan
menerapkan algoritma genetika untuk
membantu toko ini menyediakan solusi
terbaik dari permasalahan kasus pemilihan
bahan-bahan rumah.
IV. Metodologi
1. Teknik Pengkodean
Teknik pengkodean adalah
bagaimana mengkodekan gen dari
kromosom. Satu gen yang
mempresentasikan bagian dari
kromosom biasanya akan mewakili
satu variable. Gen dapat
direpresentasikan dalam bentuk bit,
real, daftar aturan, elemen permutasi,
elemen program, tree, atau
representasi lainnya yang dapat
diimplementasikan dalam operator
genetika. Pada kasus yang akan kita
bahas mengenai problem sebagai
berikut :
Sebuah toko bangunan menyediakan
bahan-bahan dalam pembangunan
rumah seperti Tanah, Pasir dan
Semen, Lantai, Pintu, Jendela, dan
Pekerja. Toko bangunan ini juga
menyediakan konsultasi Customer
yang berfungsi budget yang
Customer miliki bisa mendapatkan
apa saja bahan-bahan yang
disarankan oleh aplikasi ini. pada
studi kasus ini, kami menggunakan
representasi Integer. Nilai pada
setiap gen merupakan nilai kualitas
dari tiap-tiap bahan. Sehingga
contoh dari individu akan
direpresentasikan seperti dibawah ini
2. Fungsi Fitness
Nilai fitness adalah nilai yang
menyatakan baik tidaknya suatu
solusi (individu). Nilai fitness akan
dijadikan acuan dalam mencapai
nilai optimal dalam algoritma
genetika. Pada kasus ini, nilai
Fitness paling tinggi merupakan
solusi yang paling optimal karena
memiliki harga yang murah.
Rumus Fungsi fitness yang
digunakan adalah:
Setiap nilai pada gen akan hitung
berdasarkan (biaya dan kualitas).
Untuk biaya digunakan rumus yang
kanan. Untuk kualitas digunakan
rumus yang kiri. Targetnya adalah
dari nilai Fitness paling tinggi,
merupakan yang “sesuai” dengan
harapan Customer paling murah.
Bukan berarti paling murah lantas
mendapatkan kualitas yang paling
rendah juga melainkan kualitas yang
istilahnya tidak buruk-buruk banget
kualitasnya. Dengan batasan juga
dipilih bahan-bahan sesuai
berdasarkan budget yang dimiliki
oleh Customer.
3. Membangkitkan Populasi Awal
Pembangkitan populasi awal adalah
proses pembangkitan sejumlah
individu secara acak atau melalui
prosedur tertentu. Pada kasus ini,
pembangkitan 10 individu dalam 1
populasi. Dimana 10 individu
tersebut merupakan bahan-bahan
yang sudah dipilih berdasarkan total
biaya yang kurang dari budget
Customer. panjang dari individu
adalah 6 gen. maka gambaran dari
pembangkitan populasi awal sebagai
berikut :
Tabel 1. Contoh Pembangkitan
Individu Awal dimana budget
Customer 4000.
Nilai setiap gen berasal dari nilai kualitas
bahan. Adapun range kualitas sebagai
berikut:
Nilai kualitas Tanah memiliki range
1 hingga 7.
Nilai kualitas Pasir dan Semen
memiliki range 1 hingga 7.
Nilai kualitas Lantai memiliki range
2 hingga 8.
Nilai kualitas Pintu memiliki range 3
hingga 9.
Nilai kualitas Jendela memilki range
2 hingga 8.
Nilai kualitas Pekerja memilki range
3 hingga 9.
Tanah Pasir Lantai Pintu Jendela Pekerja Total
Harga
1 3 4 6 2 8 3090
3 2 5 3 5 5 3535
1 4 8 5 6 8 2825
4 5 4 3 7 3 3710
2 5 2 4 5 5 3280
1 4 4 8 3 3 2930
1 5 8 5 3 5 3225
1 4 5 4 3 9 3105
3 2 7 5 2 5 3925
1 3 3 3 2 3 2635
4. Seleksi
Seleksi digunakan untuk memilih
setiap individu mana saja yang akan
dipilih untuk proses crossover dan
mutasi. Seleksi digunakan untuk
mendapatkan calon induk yang baik.
Pada kasus yang dibahas ini, kami
menggunakan metode seleksi Roda
Roulette (Roulette Wheel). Tahapan
yang dilakukan selesi Roulette Wheel
adalah :
1) Perhitungan nilai fitness (fk) dari
masing masing individu, dari
individu pertama hingga
individu ke n.
2) Perhitungan total fitness (⅀fk)
semua individu.
3) Perhitungan probabilitas seleksi
(pk) setiap individu, dimana pk =
��
⅀��
4) Mengacak suatu bilangan 0
sampai 1 [0,1].
5) Memilih individu dimana
bilangan random itu berada
sebagai parent.
6) Lakukan langkah 4 – 5
sebanyak jumlah individu dalam
populasi.
5. Pindah Silang (Cross Over)
Pindah Silang adalah operator dari
algoritma genetika yang melibatkan
dua induk untuk membentuk
kromosom baru. Operasi ini tidak
selalu dilakukan pada semua
individu yang ada. Individu dipilih
secara acak untuk dilakukan crossing
dengan Pc antara 0,6 – 0,95. Jika
pindah silang tidak dilakukan, maka
nilai dari induk akan diturunkan
kepada keturunan. Namun pada
implementasi algoritma genetika ke
dalam program, kami
membangkitkan nilai random
sebanyak 10 lalu nilai tersebut
berada pada segmen Roulette Wheel
ke berapa. Lalu ambil individu baru
sebagai Parent berdasarkan nilai
random yang terpilih. Lalu seleksi
lagi dimana nilai Pc yang kurang dari
0.7. sisanya itulah sebagai individu
baru yang digunakan untuk Cross
Over dan mutasi.
Kelompok kami menggunakan Cross
Over satu titik dimana titik yang
akan dilakukan CO merupakan titik
random sebanyak jumlah individu
yang ada setelah dilakukan seleksi
individu yang kurang dari Pcnya 0.7.
6. Mutasi
Mutasi berperan untuk menggantikan
gen yang hilang dari populasi akibat
proses seleksi yang memungkinkan
munculnya kembali gen yang tidak
muncul pada inisialisasi populasi.
Kromosom yang mengalami mutasi
memiliki probabilitas yang sangat
rendah. Peluang mutasi (pm)
didefinisikan sebagai presentasi dari
jumlah total gen pada populasi yang
mengalami mutasi. Jadi banyaknya
individu yang mengalami mutasi
ditentukan oleh besarnya probabilitas
mutasi.
Pada program, kami menggunakan
peluang mutasi (pm/mutation rate)
sebesar 0,05. dan mutasi multipoint.
Maka jumlah titik yang akan
dimutasi adalah
PanjangGen*JumlahIndividuAwal*P
m. maka didapatkan 6*10*0.05 = 3
titik yang dapat dilakukan mutasi.
Dimana titik mutasi random
berdasarkan jumlah individu yang
ada setelah dilakukan CO. pergantian
nilai yang dimutasi, diganti juga nilai
kualitas pada tiap bahan dimana nilai
yang pilihpun secara random juga.
7. Seleksi Survivor
Untuk mendapatkan populasi baru
pada iterasi selanjutnya, maka
dilakukan seleksi survival. Pada
kasus yang kita bahas metode yang
digunakan adalah metode elitism,
yaitu pemilihan individu yang
memiliki fitness yang paling baik di
dalam satu populasi. Seleksi survivor
elitsm tidak menambah atau
mengurangi jumlah individu awal
sejak pembangkitan populasi, jadi
populasi akan memiliki jumlah
individu yang selalu tetap untuk
setiap iterasinya. Jika pada
pembangkitan populasi awal
menggunakan 10 individu, setelah
dilakukan CO dan mutasi hanya
tersisa 5 individu saja maka ada 15
individu setelah itu dipilihlah hanya
10 individu yang memiliki fungsi
fitness paling tinggi. 10 individu
yang terpilih tadi, akan digunakan
untuk tahap 2 hingga 7.
V. Hasil dan analisa
Pada kasus ini, kami menggunakan
bahasa pemrograman Java dengan
database Mysql. Editor yang
digunakan Netbeans versi 7.4.
Customer menginputkan budget
yang dimiliki, setelah itu jumlah
iterasi yang inginkan.
Gambar 1. UI Aplikasi
Gambar 2. Pembangkitan Individu Acak
Gambar 2 merupakan hasil “saran”
dari aplikasi saat bagian
pembangkitan individu acak dimana
bahan-bahan jika total semuanya <
4500. Setelah itu proses seleksi
dengan roude roullete.
Gambar 3. Proses Roude Roullte
Setelah dilakukan proses CO seperti
gambar dibawah ini
Gambar 4. Proses Crossover
Lakukan perhitungan berdasarkan
nilai fitnessnya tadi, setelah itu
dilakukan mutasi
Gambar 5. Proses Mutasi
Setelah itu lakukan perhitungan
dengan nilai fitness lagi.
Lakukan update generasi dengan
menggabungkan antara 10 individu
awal dan jumlah individu sesudah
mutasi,maka pada gambar dibawah
ini.
Gambar 6. Proses Gabungan Individu
Awal dengan Mutasi
Setelah itu dilakukan pensortingan
berdasarkan nilai fitness paling tinggi seperti
pada gambar dibawah ini
Gambar 7. Proses Pensortiran berdasarkan
Nilai Fitness Tertinggi. Setelah dilakukan
proses berulang-ulang hingga iterasi yang telah
diinputkan maka hasil akhirnya seperti dibawah
ini
Pada baris pertamalah merupakan solusi optimal
yang dihasilkan.
VI. Kesimpulan
Dari hasil implementasi algoritma
genetika dalam pemilihan bahan-bahan
rumah dapat disimpulkan sebagai
berikut :
1. Proses yang dikerjakan terdiri atas proses
perancangan algoritma genetika dan proses
implementasi algoritma genetika ke dalam
bahasa pemrograman.
2. Nilai fitness pada masing masing individu
sangat dipengaruhi oleh kualitas barang
yang dipilih dengan batasan total harga
barang yang dipilih tidak melebihi budget
pembeli.
3. Pembangkitan individu awal pun sudah
berdasarkan total harga kurang dari uang
input customer.
4. Seleksi dilakukan dengan menggunakan
metode Roulette Wheel.
5. Crossover dilakukan dengan menggunakan
crossover 1 titik, dimana titik dipilih secara
random. Dengan Pc 0.7.
6. Mutasi dilakukan dengan mengganti gen
terpilih dengan angka random. Dilakukan
dengan mutation rate sebesar 5%.
7. Seleksi survivor dilakukan dengan metode
elitsm dimana individu yang terbaik yang
akan diambil menjadi populasi baru dengan
jumlah populasi mengikuti jumlah populasi
awal.
8. Solusi untuk kasus adalah satu buah individu
terbaik dimana ia memiliki fitness tertinggi
pada akhir iterasi.
9. Dengan uang yang diinputkan customer
sebesar 4000 dan iterasi sebanyak 10 kali
maka solusi yang ditemukan seperti dibawah
ini.
VII. Saran
Melalui makalah ilmiah ini, setelah
melakukan implementasi algoritma genetika
pada kasus yang baru saja diselesaikan, penulis
menyadari manfaat dari implementasi algoritma
genetika dalam kehidupan sehari hari hingga ke
dunia bisnis dan pendidikan. Algoritma genetika
dapat mencari solusi terbaik dari persoalan yang
memiliki kemungkinan jawaban yang sangat
banyak, dimana jika dilakukan secara manual
akan membutuhkan waktu, usaha, dan biaya
yang tidak sedikit.
Dengan melihat potensi besar dari hasil
implementasi algortima genetika ini, maka
penulis menyarankan pihak terkait seperti
kalangan akademisi, praktisi keilmuan, dan
pemerintah, bahkan untuk dunia perbisnisan
untuk semakin mengembangkan penggunaan
implementasi algoritma genetika pada beberapa
kasus yang dimilikinya.
VIII. Referensi
[1]. http://id.wikipedia.org/wiki/Algoritma_genetik
[2]. http://black59.blogspot.com/2013/06/genetic-algorithm-ga.html
[3]. https://www.scribd.com/doc/248018580/Pengertian-dan-proses-Algoritma-Genetika-GA