MUTASI MUTATION IMPLEMENTASI PROGRAM GASCM VER. 1.0

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