MUTASI MUTATION IMPLEMENTASI PROGRAM GA_JobShop

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