Pemodelan penjadwalan yang dimaksud adalah proses penyusunan jadwal dari string. Permutasi operasi-operasi yang dipresentasikan oleh string akan
di
decode
untuk menghasilakn jadwal yang ada.
2. Pemodelan penjadwalan Job Shop dengan algoritma genetik
Adapun langkah penjadwalan job shop dengan algoritma genetika adalah sebagai berikut :
a. Menetapkan peluang
crossover
dan
mutasi.
b. Bentuk populasi awal secara acak.
c. Bentuk populasi akhir dengan nilai string terbaik.
d. Tampilkan jadwal akhir dari nilai string terbaik.
e. Bila ada tambahan job baru, bentuk string baru dari sisa operasi yang
belum dikerjakan pada jadwal lama, dan dari operasi-operasi dari job yang baru.
f. Ulangi langkah b sampai c.
g. Tampilkan jadwal akhir dari nilai string terbaik.
3.4 Perancangan Interface Sistem
Interface yang baik dari suatu aplikasi harus mudah dipahami, sehingga user tidak mengalami kesulitan dalam menggunakan aplikasi tersebut. Perancangan
interface system ini terdiri dari : 1.
Form Utama 2.
Form Job 3.
Form Proses Job
1. Form Utama
Form utama merupakan form yang pertama kali ditampilkan form ini ber isi menu untuk mengakses form lain. Berikut rancangan form utama :
Job Scheduling Dengan Algoritma Genetika
Buat Job Baru Buka Job
Proses Job Keluar
Gambar 3.2 Rancangan Form Utama
2. Form Job
Form Job digunakan untuk mendefenisikan data-data job. Berikut Rancangan Form Job :
Form Job
Daftar Job
Tambah Edit
Hapus Simpan
Gambar 3.3 Rancangan Form Job 3.
Form Proses Job
Form proses job digunakan untuk melakukan proses penjadwalan
job shoping
dengan algoritma genetika. Berikut Rancangan Form proses job :
Form Proses Job
Hasil Proses
Buka Job Proses
Kelular
Gambar 3.4 Rancangan Form Proses Job
BAB 4
ALGORITMA DAN IMPLEMENTASI
4.1 Algoritma Entry Job
Cetak Menu Utama Panggil prosedur Open_Connetion
IF Open_Connetion = False THEN Tampilakn Pesan “ Koneksi gagal “
ENDIF
4.2 Algoritma Form Proses Job
STEP 1 : Inisialisasi Populasi Panggil GenAlg.CREATEPOPULATIONGenAlg.PopulationSize
lngGeneration = 1 blnDoLoop = True
Do STEP 2 : Evaluasi
Panggil GenAlg.EVALUATE DoEvents
„STEP 3 : Seleksi Panggil GenAlg.SELECTION
„STEP 4 : Reproduksi Panggil GenAlg.REPRODUCTION
lngGeneration = lngGeneration + 1 Loop Until lngGeneration LngNulltxtGenerations.Text = False
4.3 Algoritma Inisialisasa Populasi
Panggil Clear chromosome array For lngX = 0 To lngPopulationTotal - 1
Panggil AddChromosomelngX Next lngX
Panggil ClearCounters set the actual mutationrate to the fixed mutationrate
mActualMutationRate = mMutationRate
set generation to 1 mGeneration = 1
social disaster generation counter mSocDisGenCounter = 0
4.4 Algoritma Evaluasi
lngStart = 0 lngEnd = PopulationCount - 1
For lngIndex = lngStart To lngEnd IF ChromosomelngIndex.RecalculateFitness = True Then
dblFitnessValue = ChromosomelngIndex.Fitness RaiseEvent EvaluateFitnesslngIndex, dblFitnessValue
ChromosomelngIndex.Fitness = dblFitnessValue ChromosomelngIndex.RecalculateFitness = False
END IF Next lngIndex
mblnSorted = False mblnAllFitnessCalculated = True
dblStdDev = CalculateStandardDeviation Hitung Statistik
IF mblnKeepStatistics = True Then IF blnPanggilFromEvaluate = False Then
ReDim Preserve mStatisticsGeneration mStatisticsGeneration.HighestFitness = FitnessHighest
mStatisticsGeneration.LowestFitness = FitnessLowest mStatisticsGeneration.StandardDeviation = dblStdDev
mStatisticsGeneration.SocialDisasterOccured = Fals e mStatisticsGeneration.SocialDisasterGenCounter
= mSocDisGenCounter
mStatisticsGeneration.BestChromosome = ShowChromosomestring0, TRUE
END IF END IF
IF mMutationMethod = GAMutationRateAdaptive Then IF mAMRFitnessStdDev = dblStdDev Then
mAMRCounter = mAMRCounter + 1 mAMRCounterDIFf = 0
Else mAMRFitnessStdDev = dblStdDev
mAMRCounterDIFf = mAMRCounterDIFf + 1 mAMRCounter = 0
END IF IF mAMRCounter = mAMRGenerations Then
mActualMutationRate = mActualMutationRate + 0.01 IF mActualMutationRate 1 Then
mActualMutationRate = 1 END IF
mAMRCounter = 0 END IF
IF mAMRCounterDIFf = mAMRGenerations Then mActualMutationRate = mActualMutationRate - 0.01
IF mActualMutationRate mMutationRate Then mActualMutationRate = mMutationRate
END IF mAMRCounterDIFf = 0
END IF END IF
IF mSocDisGenCounter = mSocDisGenerations Then IF blnPanggilFromEvaluate = False Then
Panggil SocialDisaster blnPanggilFromEvaluate = True
Panggil EVALUATE blnPanggilFromEvaluate = False
4.5 Algoritma Seleksi