E. PENYILANGAN CROSSOVER
Proses penyilangan adalah penukar informasi genetik antara dua kromosom indukparent yang terpilih dari proses seleksi untuk membentuk
dua buah anakoffspring. Tujuan dari operasi penyilangan adalah menciptakan suatu populasi baru dengan nilai rata-rata fitness yang lebih baik dari pada
populasi sebelumnya. Dalam penelitian ini teknik penyilangan yang digunakan adalah one point crossover atau penyilangan satu titik. Teknik penyilangan
tersebut dipilih karena masalah rantai pasokan agroindustri ini menggunakan representasi kromosom integer yang merupakan nilai-nilai atau kapasitas dari
variabel-variabel keputusan, yang memungkinan nilai-nilai dari tiap gen di dalam kromosom dapat sama. Sehingga teknik penyilangan satu titik cocok
untuk diterapkan. Lain halnya dengan representasi kromosom permutasi dimana nilai-nilai dari tiap gen suatu kromosom tidak boleh sama, apabila
menggunakan penyilangan satu titik akan menyebabkan kromosom ilegal. Kasus repesentasi kromosom permutasi lebih cocok menggunakan teknik
penyilangan PMX.
F. MUTASI MUTATION
Mutasi adalah operator sekunder dalam algoritma genetika untuk mengubah struktur kromosom menjadi struktur kromosom yang baru sehingga
terjadi perubahan sifat genetik. Tujuan mutasi ini adalah untuk memunculkan gen-gen baru yang belum pernah muncul pada generasi-generasi sebelumnya,
ataupun mengembalikan gen-gen yang hilang pada generasi-generasi sebelumnya. Operator mutasi hanya bekerja pada suatu gen dalam satu
kromosom. Proses mutasi yang terjadi pada kromosom rantai pasokan agroindustri ini adalah menentukan suatu posisi gen secara acak pada
kromosom anak yang baru dari hasil penyilangan, kemudian gen terpilih tersebut akan diacak nilainya tetapi tidak melebihi dari kapasitas gen.
G. IMPLEMENTASI PROGRAM GASCM VER. 1.0
Implementasi dari proses algoritma genetika pada penelitian ini adalah berupa program
GASCM Genetic Algorithms for Supply Chain Management Ver. 1.0 yang dibuat menggunakan bahasa pemrograman
Borland Delphi 7.0 dengan acuan program Simple Genetic Algoritm SGA yang telah dikembangkan oleh Goldberg pada tahun 1989. Dilakukan
beberapa perubahan dan pengembangan dari program SGA tersebut yang meliputi :
1. Fungsi FitFunc adalah pengembangan fungsi fitness yang digunakan untuk menghitung fungsi TSCC Total Supply Chain Cost.
2. Prosedur InitPop untuk membangkitkan populasi awal secara acak dilakukan pengembangan dimana populasi yang dibangkitkan harus
merupakan representasi integer, dan kromosom-kromosom harus legal yaitu memenuhi kendala-kendalaconstrained dari variabel-variabel
keputusan. 3. Fungsi Select adalah fungsi untuk menseleksi kromosom, mengalami
perubahan dari sebelumnya yaitu seleksi cakram rolet roulette wheel selection menjadi teknik seleksi turnamen tournament selection.
4. Prosedur pembuatan output file yaitu report sebagai laporan kinerja algoritma genetika dari generasi ke generasi yang merupakan hasil
pengembangan Yandra 1999. 5. Prosedur Statistics untuk menghitung nilai fitness rata-rata, minimum, dan
maksimum untuk tiap generasi telah dikembangkan menjadi dalam bentuk grafik pada program sehingga memudahkan untuk melihat konvergensi
solusi optimal dari hasil iterasi algoritma genetika. 6. Program dikembangkan dengan menggunakan GUI Graphics User
Interface sehingga lebih mudah digunakan user friendly dan dinamis dalam hal penginputan nilai, biaya, dan kapasitas variabel-variabel serta
parameter-parameter algoritma genetika. Gambar 20 di bawah ini
merupakan tampilan uses idari program GASCM Ver. 1.0 :
Gambar 20. Tampilan User Interface GASCM Ver. 1.0 Berikut adalah struktur program utama algoritma genetika fungsi-fungsi dan
prosedur-prosedur dalam paket program GASCM Ver. 1.0 :
11 Procedures
Advance_Random WarmUp_Random
6 Function
Randomize Random
St at ist ics Flip
Init Data Rnd
Init Report Decode
Init Pop Select
Init ialize Fit Func
Crossover Generat ion
Report
Gambar 21. Struktur program utama GASCM Ver. 1.0 Gambar 21 tersebut menunjukkan struktur program utama untuk proses
bekerja algoritma genetika dalam mencari solusi optimal yang terdiri 11 prosedur dan 6 fungsi. Program utama main program tersebut bertugas untuk
M ain Program
menghimpun prosedur-prosedur dan fungsi-fungsi yang telah dibuat. Berikut adalah kegunaan dari prosedur-prosedur dan fungsi-fungsi :
a. Procedure Advance_Random, Warm_Up Random,
dan Randomize
Prosedur untuk membangkitkan bilangan acak pada komputer.
b. Procedure Statistics
Prosedur menghitung dan menyimpan nilai fitnessTSCC rata-rata, minimum, dan maksimum untuk tiap generasi kemudian dapat ditampilkan
dalam bentuk grafik. c.
Procedure InitData
Prosedur untuk menginisialisasi variabel-variabel algoritma genetika seperti panjang kromosom, jumlah populasi, jumlah mutasi, jumlah
penyilangan, dan persiapan pembangkitan bilangan acak.
d. Procedure InitReport
Prosedur untuk menampilkan laporan tentang informasi populasi awal atau generasi ke-0 yang mencakup struktur kromosom, nilai TSCC tiap
kromosom, dan statistik nilai TSCC. e.
Procedure InitPop
Prosedur untuk membuat suatu populasi awal secara acak dengan kromosom representasi integer yang legal.
f. Procedure Initialize
Prosedur untuk menghimpun prosedur InitData, InitPop, Statistics, dan InitReport
.
g. Procedure Crossover
Prosedur untuk menyilangkan dua buah kromosom dengan teknik one point crossover.
h. Procedure Generation
Prosedur untuk mengembangbiakan kromosom-kromosom hingga generasi maksimum. Didalamnya terdapat proses seleksi, penyilangan, dan mutasi.
i. Procedure 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, jumlah penyilangan, jumlah mutasi, nilai TSCC, dan nilai statistik TSCC.
j. Function Random
Fungsi untuk membangkitkan sebuah bilangan acak dari rentang 0-1.
k. Function Flip
Fungsi untuk menghasilkan nilai boolean true apabila bilangan acak yang dibangkitkan lebih kecil atau sama dengan nilai probabilitas penyilangan
ataupun mutasi. l.
Function Rnd
Fungsi untuk membangkitkan bilangan acak dari rentang tertentu. Dalam program ini digunakan untuk membangkitkan nilai-nilai solusi kromosom
dari variabel-variabel keputusan.
m. Function Decode
Fungsi untuk memindahkan nilai gen pada kromosom kedalam suatu variabel.
n. Function Select
Fungsi untuk memilih kromosom induk menggunakan teknik tournament selection.
o. Function FitFunc
Fungsi untuk menghitung nilai fitness dari suatu kromosom yang merupakan nilai dari fungsi TSCC
Tahapan-tahapan yang dilakukan program GASCM Ver. 1.0 untuk
mencari solusi TSCC optimum dalam model rantai pasokan agroindustri adalah sebagai berikut :
Tahap 1 : Membaca data masukan rantai pasokan agroindustri : -
Kapasitas tiap-tiap supplier -
Biaya transportasi dari supplier ke agroindustri -
Kapasitas agroindustri -
Biaya penyimpanan inventori dalam agroindustri -
Biaya transportasi dari agroindustri ke permintaan -
Kebutuhan permintaan demand
Tahap 2 : Membentuk model TSCC dari data masukan tersebut sebagai fungsi fitness.
Tahap 3 : Membaca masukan nilai-nilai parameter algoritma genetika
- Probabilitas penyilangan Pc
- Probabilitas mutasi Pm
- Jumlah populasi PopSize
- Jumlah generasi maksimum MaxGen
Tahap 4 : Menginisialisasi populasi awal
- Membangkitkan populasi awal secara acak
- Mengevaluasi kromosom dalam populasi untuk mengetahui
nilai fitness-nya Tahap
5 : Menghasilkan populasi baru sampai kriteria penghentian
terpenuhi iterasi algoritma genetika -
Memilih kromosom induk dengan teknik seleksi turnamen Tounament Selection
- Menyilangkan crossover kromosom-kromosom induk
dengan operator penyilangan atau memutasikannya mutation dengan operator mutasi berdasarkan probabilitas kejadian
masing-masing. -
Mengevaluasi setiap kromosom baru yang terbentuk Tahap 6 : Melaporkan nilai fitness TSCC maksimum, minimum, dan rata-
rata, serta frekuensi kumulatif penyilangan dan mutasi pada setiap generasi
Tahap 7 : Kembali ke Tahap 5 jika generasi maksimum belum tercapai
H. STUDI KASUS