kromosom yang terpilih lainnya untuk dilakukan proses penyilangan crossover.
D. PENYILANGAN CROSSOVER
Proses penyilangan adalah bertukarnya gen-gen antara dua buah kromosom yang terpilih sehingga membentuk dua buah kromosom baru
offspring. Kromosom-kromosom baru offsprings tersebut diharapkan memiliki nilai fitness yang lebih baik dari kromosom sebelumnya parent.
Operator penyilangan yang digunakan pada penelitian ini adalah jenis Partially-Mapped Crossover PMX yang telah dimodifikasi. PMX yang
digunakan bekerja hanya pada salah satu sub-kromosom pada tiap kromosom. Dua buah kromosom yang terpilih disilangkan dengan cara memilih
dua buah titik penyilangan secara acak di masing-masing salah satu sub- kromosom. Gen-gen yang terletak diantara dua buah sub-kromosom tersebut
saling dipertukarkan sehingga membentuk kromosom baru offspring. Kelegalan sebuah kromosom dilihat dari tidak adanya gen yang sama pada
tiap sub-kromosom. Teknik PMX secara otomatis akan membuat kromosom tidak legal menjadi legal dengan metode hubungan pemetaan mapping
relationship.
E. MUTASI MUTATION
Proses mutasi yaitu terjadinya perubahan struktur kromosom anak offspring hasil proses penyilangan menjadi sebuah kromosom baru.
Kromosom baru tersebut memiliki struktur yang berbeda dari sebelumnya. Operator mutasi yang digunakan pada penelitian ini adalah jenis reciprocal
exchange mutation yang telah dimodifikasi, bekerja dengan cara menukar secara acak dua buah gen pada salah satu sub-kromosom.
Mutasi bertujuan untuk memunculkan kromosom yang belum pernah ada ataupun mengembalikan kromosom terdahulu yang telah hilang pada
generasi-generasi sebelumnya. Mutasi juga menghindari terjadinya perolehan nilai optimum lokal.
F. IMPLEMENTASI PROGRAM GA_JobShop
Implementasi dari proses algoritma genetika pada penelitian ini adalah berupa program
GA_JobShop yang dibuat menggunakan bahasa
pemrograman Borland Delphi 7.0 dengan acuan program Simple Genetic Algorithm SGA yang telah dikembangkan oleh Goldberg pada tahun 1989.
Beberapa perubahan dan pengembangan dari program SGA tersebut telah dilakukan, diantaranya :
1. Fungsi makespan untuk menghitung nilai total waktu penyelesaian pada suatu penjadwalan job shop.
2. Representasi kromosom yang digunakan adalah jenis preference list based representation.
3. Prosedur crossover penyilangan menggunakan tipe PMX Arkeman, 1999 yang telah dimodifikasi, yaitu penyilangan terjadi hanya di salah
satu sub-kromosom. 4. Metode mutation mutasi di dalam prosedur generation menggunakan
tipe reciprocal exchange mutation yang telah dimodifikasi, yaitu mutasi terjadi hanya di salah satu sub-kromosom.
5. Fungsi select seleksi menggunakan teknik seleksi turnamen tournament selection, yang telah mengalami perubahan dari sebelumnya
menggunakan seleksi cakram rolet roulette wheel selection. 6. Prosedur pembuatan output file yaitu report sebagai laporan kinerja
algoritma genetika dari generasi ke generasi yang merupakan hasil pengembangan Arkeman 1999.
Berikut adalah strukt ur program ut ama algorit ma genet ika fungsi-fungsi dan prosedur-prosedur dalam paket program
GA_JobShop
:
Gambar 13. Struktur program utama GA_JobShop
Program GA_JobShop memiliki struktur yang terdiri dari satu
program utama, 11 prosedur dan 5 fungsi. Struktur tersebut dapat dilihat pada Gambar 13. Program utama tersebut bertugas untuk menghimpun prosedur-
prosedur dan fungsi-fungsi yang telah dibuat. Kegunaan dari prosedur-
prosedur dan fungsi-fungsi di dalam program GA_JobShop adalah sebagai
berikut : a.
Prosedur Advance_Random, Warm_Up Random, dan Randomize
Prosedur untuk membangkitkan bilangan acak pada komputer.
Program Utama
Advance_Random WarmUp_Random
Randomize St at ist ics
Init Data Init Repor t
Init Pop Initialize
Crossover Generat ion
Report
Prosedur
Random Flip
Rnd Hit ung_M akespan
Select
Fungsi
b. Prosedur Statistics
Prosedur menghitung dan menyimpan nilai makespan rata-rata, minimum, dan maksimum untuk tiap generasi.
c. Prosedur InitData
Prosedur untuk menginisialisasi variabel-variabel algoritma genetika seperti panjang kromosom, jumlah populasi, peluang mutasi, peluang
penyilangan, dan persiapan pembangkitan bilangan acak.
d. Prosedur InitReport
Prosedur untuk menampilkan laporan tentang informasi populasi awal atau generasi ke-0 yang mencakup struktur kromosom, nilai makespan tiap
kromosom, dan statistik nilai makespan. e.
Prosedur InitPop
Prosedur untuk membuat suatu populasi awal secara acak dengan representasi kromosom tipe preference list based representation.
f. Prosedur Initialize
Prosedur untuk menghimpun prosedur InitData, InitPop, Statistics, dan InitReport
.
g. Prosedur Crossover
Prosedur untuk menyilangkan dua buah kromosom dengan teknik partially mapped crossover PMX yang telah dimodifikasi.
h. Prosedur Generation
Prosedur untuk mengembangbiakan kromosom-kromosom hingga generasi maksimum. Di dalamnya terdapat proses seleksi, penyilangan, dan mutasi.
i. Prosedur Report
Prosedur pembuatan output file yaitu report sebagai laporan kinerja algoritma genetika dari generasi ke generasi yang menginformasikan
secara detail tentang struktur kromosom induk dan anak, titik penyilangan, letak sub-kromosom terjadinya penyilangan, letak sub-kromosom
terjadinya mutasi, dan nilai makespan. j.
Fungsi Random
Fungsi untuk membangkitkan sebuah bilangan acak dari rentang 0-1.
k. Fungsi Flip
Fungsi untuk menghasilkan nilai boolean true apabila bilangan acak yang dibangkitkan lebih kecil atau sama dengan nilai probabilitas penyilangan
ataupun mutasi. l.
Fungsi Rnd
Fungsi untuk membangkitkan bilangan acak dari rentang tertentu. Dalam program ini digunakan untuk membangkitkan nilai-nilai solusi kromosom
dari variabel-variabel keputusan.
m. Fungsi Select
Fungsi untuk memilih kromosom induk menggunakan teknik tournament selection.
n. Fungsi Hitung_Makespan
Fungsi untuk menghitung nilai makespan total waktu penyelesaian penjadwalan tipe job shop.
Langkah-langkah yang dilakukan program GA_JobShop untuk
mencari nilai makespan minimum : Langkah 1 : Membaca data masukan masalah penjadwalan job shop :
a Jumlah job b Jumlah mesin
c Urutan proses tiap-tiap job pada mesin-mesin yang bekerja d Waktu proses tiap-tiap job pada mesin-mesin yang bekerja
Langkah 2 : Membaca masukan nilai-nilai parameter algoritma genetika : a Probabilitas penyilangan Pc
b Probabilitas mutasi Pm c Bilangan acak
d Jumlah generasi maksimum MaxGen Langkah 3 : Menginisialisasi populasi awal :
a Membangkitkan populasi awal secara acak b Mengevaluasi kromosom dalam populasi untuk mengetahui
nilai makespan-nya Langkah
4 : Menghasilkan populasi baru sampai kriteria penghentian
terpenuhi iterasi algoritma genetika :
a Memilih kromosom induk dengan teknik seleksi turnamen tournament selection
b Menyilangkan crossover kromosom-kromosom induk dengan operator penyilangan atau memutasikannya mutation
dengan operator mutasi berdasarkan probabilitas kejadian masing-masing
c Mengevaluasi setiap kromosom baru yang terbentuk Langkah 5 : Melaporkan nilai makespan maksimum, minimum, dan rata-
rata, serta frekuensi kumulatif penyilangan dan mutasi pada setiap generasi.
Langkah 6 : Kembali ke Tahap 4 jika generasi maksimum belum tercapai.
G. STUDI KASUS