penerapan fuzzy multi objective pada job shop …repository.unair.ac.id/25685/1/marisa.pdf · 4.21...

167
PENERAPAN FUZZY MULTI-OBJECTIVE PADA JOB SHOP SCHEDULING MENGGUNAKAN GENETIC ALGORITHM SKRIPSI MARISA PROGRAM STUDI S-1 MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS AIRLANGGA 2012 ADLN Perpustakaan Universitas Airlangga Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm Marisa

Upload: duongdat

Post on 11-Apr-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

PENERAPAN FUZZY MULTI-OBJECTIVE PADA JOB SHOP

SCHEDULING MENGGUNAKAN GENETIC ALGORITHM

SKRIPSI

MARISA

PROGRAM STUDI S-1 MATEMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS AIRLANGGA

2012

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 2: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

ii

PENERAPAN FUZZY MULTI-OBJECTIVE PADA JOB SHOP

SCHEDULING MENGGUNAKAN GENETIC ALGORITHM

SKRIPSI

Sebagai Salah Satu Syarat untuk Memperoleh

Gelar Sarjana Sains Bidang Matematika

Pada Fakultas Sains dan Teknologi

Universitas Airlangga

Disetujui Oleh :

Pembimbing I

Herry Suprajitno, S.Si., M.Si

NIP. 19680404 199403 1 020

Pembimbing II

Auli Damayanti, S.Si, M.Si

NIP . 19751107 200312 2 004

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 3: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

iii

LEMBAR PENGESAHAN NASKAH SKRIPSI

Judul : Penerapan Fuzzy Multi-Objective Pada Job Shop Scheduling

Menggunakan Genetic Algorithm Penyusun : Marisa Nomor Induk : 080810576 Tanggal Ujian : 13 Agustus 2012

Disetujui oleh :

Pembimbing I,

Herry Suprajitno, S.Si., M.Si NIP.19680404 199403 1 020

Pembimbing II,

Auli Damayanti, S.Si, M.Si NIP . 19751107 200312 2 004

Mengetahui, Ketua Program Studi S-1 Matematika

Departemen Matematika Fakultas Sains dan Teknologi

Universitas Airlangga

Dr. Miswanto, M.Si NIP. 19680204 199303 1 002

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 4: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

iv

PEDOMAN PENGGUNAAN SKRIPSI

Skripsi ini tidak dipublikasikan, namun tersedia di perpustakaan dalam

lingkungan Universitas Airlangga, diperkenankan untuk dipakai sebagai referensi

kepustakaan, tetapi pengutipan harus seijin penulis dan harus menyebutkan

sumbernya sesuai kebiasaan ilmiah. Dokumen skripsi ini merupakan hak milik

Universitas Airlangga.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 5: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

iv

PEDOMAN PENGGUNAAN SKRIPSI

Skripsi ini tidak dipublikasikan, namun tersedia di perpustakaan dalam

lingkungan Universitas Airlangga, diperkenankan untuk dipakai sebagai referensi

kepustakaan, tetapi pengutipan harus seijin penulis dan harus menyebutkan

sumbernya sesuai kebiasaan ilmiah. Dokumen skripsi ini merupakan hak milik

Universitas Airlangga.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 6: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

vii

Marisa, 2012, Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling

Menggunakan Genetic Algorithm, Skripsi ini dibawah bimbingan Dr. Herry Suprajitno, M.Si dan Auli Damayanti, S.Si., M.Si, Departemen Matematika, Fakultas Sains dan Teknologi, Universitas Airlangga, Surabaya.

ABSTRAK

Job Shop Scheduling Problems (JSSP) merupakan permasalahan penjadwalan n job dan m mesin yang masing-masing job terdiri dari beberapa operasi yang dilaksanakan oleh mesin yang berbeda. Secara umum, banyak faktor yang mempengaruhi JSSP, namun pada dunia kerja, faktor ketidakpastian seperti keterlambatan proses pengerjaan, dan lamanya proses pengoperasian berpengaruh dalam menentukan scheduling. Untuk mengatasi ketidakpastian tersebut, digunakan bilangan fuzzy untuk processing time dan due date. Tujuan dari skripsi ini adalah untuk menyelesaikan Fuzzy Multiobjective (Agreement Index (AI) dan Completion Time) JSSP (FMOJSSP) dengan menggunakan Genetic Algorithm (GA). Langkah-langkah GA yaitu membangkitkan kromosom awal berdasarkan degree of similarity antar individu, evaluasi, seleksi turnamen, crossover dan mutasi. Program yang dibuat diimplementasikan pada tiga data (problem) yang berukuran 6×6, sehingga diperoleh hasil terbaik dengan nilai rata-rata AI, minimum AI, dan maksimum Completion Time yaitu untuk Problem 1 masing-masing 0,96186; 0,79422 dan (65,0; 87,0; 110,0), untuk Problem 2 masing-masing 0,99227; 0,97460 dan (60,0; 83,0; 99,0), untuk Problem 3 masing-masing 0,84864; 0,69231 dan (28,0; 38,0; 49,0). Ketiga bilangan pada Completion Time secara berurutan menunujukkan waktu penyelesaian tercepat, waktu penyelesaian normal dan waktu penyelesaian terlambat. Kata Kunci : Fuzzy Multi-Objective JSSP, Degree of Similarity, Genetic

Algorithm, Agreement Index.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 7: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

viii

Marisa, 2012, Application of Fuzzy Multi-Objective in Job Shop Scheduling

Using Genetic Algorithm, This Skripsi is supervised by Dr. Herry Suprajitno, M.Si and Auli Damayanti, S.Si., M.Si, Department of Mathematics, Faculty of Science and Technology, Airlangga University, Surabaya.

ABSTRACT

Job Shop Scheduling Problems (JSSP) is a scheduling problem containing of n jobs and m machines which each job consists of several operations performed by different machines. Generally, many factors influence the JSSP, but in the real world, the uncertainty factors such as delays in the working process and the duration of the operation give effects in determining the schedule. To overcome these uncertainties, fuzzy number are used for processing time and due date. The purpose of this skripsi is to solved Fuzzy Multi-Objective (Agreement Index (AI) and Completion Time) JSSP (FMOJSSP) by using Genetic Algorithm (GA). The steps of GA are to generating the initial chromosomes based on the degree of similarity between individuals, evaluation, tournament selection, crossover and mutation. The program made is implemented on three datas (problems) of size 6×6 and the best results for mean of AI, minimum of AI and maximum of completion time for Problem 1 respectively are 0,96186; 0,79422 and (65,0; 87,0; 110,0), for Problem 2 respectively are 0,99227; 0,97460 and (60,0; 83,0; 99,0), for Problem 3 respectively are 0,84864; 0,69231 and (28,0; 38,0; 49,0). Three numbers of completion time sequentially showing the fastest completion time, the normal completion time and completion time of late. Keyword : Fuzzy Multi-Objective JSSP, Degree of Similarity, Genetic

Algorithm, Agreement Index.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 8: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

ix

DAFTAR ISI

Halaman

HALAMAN JUDUL .................................................................................. i

LEMBAR PERNYATAAN ....................................................................... ii

LEMBAR PENGESAHAN ....................................................................... iii

PEDOMAN PENGGUNAAN SKRIPSI ................................................... iv

KATA PENGANTAR ................................................................................ v

ABSTRAK ................................................................................................. vii

ABSTRACT ............................................................................................... viii

DAFTAR ISI .............................................................................................. ix

DAFTAR TABEL ...................................................................................... xi

DAFTAR GAMBAR ................................................................................. xii

DAFTAR LAMPIRAN .............................................................................. xiv

BAB I PENDAHULUAN ........................................................................ 1

1.1 Latar Belakang Permasalahan ................................................ 1

1.2 Rumusan Masalah .................................................................. 4

1.3 Tujuan .................................................................................... 4

1.4 Manfaat .................................................................................. 5

1.5 Batasan Masalah ..................................................................... 5

BAB II TINJAUAN PUSTAKA ............................................................... 6

2.1 Job Shop Scheduling Problems .............................................. 6

2.2 Fuzzy ...................................................................................... 9

2.3 Algoritma Genetik ................................................................. 16

2.4 Fuzzy Multi-Objective JSSP (FMOJSSP) .............................. 25

2.4.1 Fuzzy Number pada JSSP .......................................... 25

2.4.2 Multi-Objective JSSP ................................................ 28

2.4.3 Metode Giffler Dan Thompson ................................. 30

2.5 JAVA .................................................................................... 31

2.6 NETBEANS IDE ................................................................... 32

BAB III METODE PENELITIAN.............................................................. 33

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 9: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

x

BAB IV PEMBAHASAN .......................................................................... 37

4.1 Prosedur Algoritma Genetik Untuk Permasalahan Job Shop

Scheduling .............................................................................. 37

4.2 Data ........................................................................................ 56

4.3 Penyelesaian Manual terhadap Contoh Kasus Job Shop

Scheduling Problem 6x6 ........................................................ 57

4.4 Implementasi Program pada Kasus JSSP .............................. 84

4.4.1 Data Problem 1 FMOJSSP 6x6 ................................ 84

4.4.2 Data Problem 2 FMOJSSP 6x6 ................................ 85

4.4.3 Data Problem 3 FMOJSSP 6x6 ................................ 85

4.5 Perbandingan Hasil dengan Parameter yang Berbeda ........... 86

4.5.1 Data Problem 1 FMOJSSP 6x6 ................................ 86

4.5.2 Data Problem 2 FMOJSSP 6x6 ................................ 87

4.5.3 Data Problem 3 FMOJSSP 6x6 ................................ 89

BAB V KESIMPULAN DAN SARAN .................................................... 91

5.1 Kesimpulan ............................................................................ 91

5.2 Saran .................................................................................... 92

DAFTAR PUSTAKA ................................................................................ 93

LAMPIRAN

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 10: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

xi

DAFTAR TABEL

No. Judul Tabel Halaman

4.1 Data Permasalahan 56

4.2 Kromosom awal yang dibangkitkan 62

4.3 Kromosom awal yang telah diaktifkan 63

4.4 Nilai degree untuk kromosom awal 63

4.5 Fuzzy Completion Time kromosom ke-0 64

4.6 Agreement Index masing-masing job pada kromosom ke-0 67

4.7 Nilai Ranking Fuzzy Completion Time pada kromosom ke-0 68

4.8 Nilai Fungsi Tujuan populasi awal 68

4.9 Derajat keanggotaan fungsi Tujuan pada populasi awal 71

4.10 Nilai Fitness Populasi Awal 72

4.11 Calon Induk Crossover 73

4.12 Induk Crossover 74

4.13 Calon Induk Mutasi 74

4.14 Induk Mutasi 75

4.15 Offspring Crossover yang telah diaktifkan 79

4.16 Nilai Fungsi Tujuan Offspring Hasil Crossover 79

4.17 Offspring Mutasi yang telah diaktifkan 80

4.18 Nilai Fungsi Tujuan Offspring Hasil Mutasi 80

4.19 Derajat Keanggotaan Fungsi Tujuan Populasi Awal dan

Offspring 81

4.20 Nilai Fitness Populasi Awal dan Offspring 81

4.21 Hasil Pengurutan Kromosom Gabungan 82

4.22 Populasi Baru 83

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 11: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

xii

DAFTAR GAMBAR

No. Judul Gambar Halaman

2.1 Representasi Kurva Segitiga 11

2.2 Representasi Kurva Trapesium 12

2.3 Fungsi Keanggotaan Linear Memaksimalkan Fungsi Objektif 15

2.4 Fungsi Keanggotaan Linear Meminimalkan Fungsi Objektif 15

2.5 Contoh perhitungan Degree of Similarity 19

2.6 Doublet Fuzzy duedate 26

2.7 Agreement Index 26

2.8 Contoh Agreement Index (AI) 27

4.1 Prosedur untuk Genetic Algorithm 37

4.2 Prosedur untuk Parameter Setting 38

4.3 Prosedur untuk Inisialisasi 39

4.4 Prosedur untuk Generate Kromosom 39

4.5 Prosedur untuk Generate Urutan Job 40

4.6 Prosedur untuk Menentukan Operasi Job 40

4.7 Prosedur untuk Menentukan Urutan Mesin 41

4.8 Prosedur untuk Pengaktifan Schedule 41

4.9 Prosedur untuk Menghitung Completion Time dan Delay

Time

42

4.10 Prosedur untuk Pengaktifan 43

4.11 Prosedur untuk Evaluasi z1 44

4.12 Prosedur untuk Evaluasi z2 44

4.13 Prosedur untuk Evaluasi z3 45

4.14 Prosedur untuk Menghitung Fitness 45

4.15 Prosedur Operasi Genetik untuk Mendapatkan 46

4.16 Prosedur untuk Seleksi Turnamen 47

4.17 Prosedur untuk Seleksi Crossover 48

4.18 Prosedur untuk Seleksi Mutasi 48

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 12: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

xiii

4.19 Prosedur untuk Partial Schedule Exchange Crossover 49

4.20 Prosedur untuk Menetukan Partial Schedule dari Parent 0 50

4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50

4.22 Prosedur untuk Menentukan Exceeded dan Missed Genes 51

4.23 Prosedur untuk Menentukan Offspring 52

4.24 Prosedur untuk Swap Mutation 53

4.25 Prosedur untuk Membentuk Populasi Baru 53

4.26 Prosedur untuk Menggabungkan Kromosom 54

4.27 Prosedur untuk Mengurutkan Kromosom 55

4.28 Prosedur untuk Mengambil Kromosom Terbaik 55

4.29 Prosedur untuk Tes Pemberhentian Iterasi 56

4.30 Perhitungan Degree of Similarity Kromosom 0 dan

Kromosom 1

61

4.31 Grafik Fuzzy Completion Time dan Fuzzy Due Date 65

4.32 Daerah DC ~~ 66

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 13: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

xiv

DAFTAR LAMPIRAN

No. Judul Lampiran

1. Flowchart FMOJSSP Menggunakan GA

2. Data Fuzzy Multi-Objective Job Shop Scheduling Problem (FMOJSSP)

3. Gantt Chart Kromosom ke-0 Sebelum Pengaktifan Schedule

4. Gantt Chart Kromosom ke-0 Setelah Pengaktifan Schedule

5. Gantt Chart Kromosom ke-11

6. Source Code Program GA untuk FMOJSSP

7. Hasil Penyelesaian Problem 1 FMOJSSP

8. Hasil Penyelesaian Problem 2 FMOJSSP

9. Hasil Penyelesaian Problem 3 FMOJSSP

10. Hasil Running Problem 1 FMOJSSP

11. Hasil Running Problem 2 FMOJSSP

12. Hasil Running Problem 3 FMOJSSP

13. Output Program FMOJSSP Menggunakan GA

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 14: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

1

BAB I

PENDAHULUAN

1.1 Latar Belakang Permasalahan

Pada saat ini, perkembangan ilmu dan teknologi banyak mempengaruhi

perkembangan dunia industri dan manufacturing, hal ini berdampak pada

persaingan industri. Dalam menghadapi persaingan tersebut diperlukan strategi

yang tepat dalam mengatasi permasalahan-permasalahan yang muncul. Dalam

dunia industri, proses produksi merupakan proses pembuatan barang atau jasa.

Pada proses ini diperlukan strategi dalam menentukan penempatan urutan job

sehingga waktu yang diperlukan menjadi efisien. Dengan waktu yang efisien

tersebut diharapkan industri dapat mengurangi pengeluaran biaya produksi serta

dapat memenuhi kebutuhaan konsumen tepat waktu.

Job Shop Scheduling Problems (JSSP) merupakan permasalahan

penjadwalan yang ada dalam dunia industri. Pada JSSP permasalahan yang ada

yaitu dimana terdapat himpunan m mesin dan n job yang akan dijadwalkan.

Masing-masing job terdiri dari beberapa operasi yang dilaksanakan oleh mesin

yang berbeda. Pada JSSP masing-masing job memiliki urutan mesin tersendiri.

Meskipun sebuah job dapat memiliki banyak operasi, bentuk yang paling umum

dari JSSP adalah masing-masing job secara pasti memiliki m operasi, yaitu satu

operasi pada tiap mesin (Baker dan Trietsch, 2009).

Secara umum, banyak faktor yang mempengaruhi JSSP, namun pada dunia

kerja, ada beberapa faktor ketidakpastian seperti keterlambatan proses pengerjaan,

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 15: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

2

dan lamanya proses pengoperasian yang ikut berpengaruh dalam menentukan

scheduling. Untuk mengatasi ketidakpastian tersebut, maka digunakan metode

fuzzy yang diharapkan dapat menggambarkan interval waktu pengerjaan dan

penyelesaian suatu pekerjaan.

Dengan mempertimbangkan banyaknya ketidakpastian yang terjadi maka

dalam skripsi ini digunakan dua bilangan fuzzy. Bilangan fuzzy yang digunakan

yaitu Triangular Fuzzy Number atau bilangan fuzzy segitiga yang terdiri dari tiga

bilangan yang dalam hal ini yaitu waktu proses paling cepat, waktu proses normal

dan waktu proses paling lambat untuk processing time pada masing-masing

operasi job sebagai toleransi terhadap kesalahan pada faktor manusia. Sedangkan

untuk due date (waktu tenggat) pada masing-masing job digambarkan dengan

Trapezoidal Fuzzy Number dalam bentuk Doublet yang menunjukkan waktu

normal dan waktu penyelesaian paling lambat sebagai toleransi keterlambatan

waktu tenggat atau deadline penyelesaian job. Penggunaan bilangan fuzzy ini

diharapkan dapat lebih mewakili keadaan dunia nyata yang sebenarnya.

Bilangan – bilangan tersebut nantinya akan digunakan untuk menghitung

waktu penyelesaian masing-masing job di keseluruhan mesin atau sering disebut

dengan Completion time. Setelah completion time didapatkan maka akan

diperhitungkan kesesuaian antara waktu penyelesaian tiap-tiap job tersebut

dengan due date atau waktu deadline pekerjaan harus diselesaikan yang sering

disebut dengan Agreement Index. Diharapkan schedule yang dihasilkan akan

menghasilkan completion time yang kecil dan kesesuaian waktu pengerjaan yang

maksimal.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 16: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

3

Seiring dengan perkembangan waktu, banyak metode/algoritma digunakan

dalam menyelesaikan permasalahan JSSP. Salah satu penelitian yang

menggunakan informasi fuzzy dalam menyelesaikan JSSP dengan menggunakan

algoritma genetik (Genetic Algorithm) sebagai metode pencariannya sesuai yang

dilakukan oleh Sakawa pada tahun 2000 yang mengandalkan kriteria derajat

kesamaan (degree of similarity) dari masing-masing individu untuk menjaga

keragaman solusi yang diperoleh. Penelitian lain yang menggunakan Fuzzy

Genetic Algortihm dalam menyelesaikan JSSP dilakukan oleh Lei pada tahun

2010 dengan menggunakan operator genetik seleksi turnamen pada pemilihan

induk crossover dan mutasi.

Algoritma genetik merupakan suatu metode pencarian yang didasarkan pada

proses evolusi. Algoritma ini menggunakan pengkodean sebagai representasi yang

berisi informasi dari penyelesaian permasalahan dan menggunakan fungsi fitness

untuk menentukan kehandalan masing-masing penyelesaian permasalahan.

Penelitian yang telah dilakukan sebelumnya hanya mempertimbangkan satu

fungsi objektif (single objective function), sehingga agar lebih memadai dalam

menggambarkan dunia nyata maka dalam penelitian ini digunakan fungsi

multiobjektif (multiobjective function).

Skripsi ini menggabungkan penelitian yang telah dilakukan oleh Sakawa

yang menggunakan derajat kesamaan dalam membangkitkan individu awal

dengan penelitian yang dilakukan oleh Lei yang menggunakan seleksi turnamen

dalam pemilihan induk, sedangkan crossover dan mutasi yang digunakan yaitu

Partial Schedule Exchange Crossover dan Swap Mutation. Dengan menggunakan

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 17: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

4

Fuzzy Processing Time dan Fuzzy Due Date, penyelesaian JSSP menggunakan

Multiobjective Genetic Algorithm akan diperkenalkan lebih lanjut. Pada skripsi ini

fungsi objektif yang digunakan tidak hanya memaksimalkan minimum Agreement

Index (AI) tetapi juga memaksimalkan rata-rata Agreement Index dan

meminimunkan maksimum Completion time.

1.2 Rumusan Masalah

Pada penelitian ini, rumusan masalah yang diangkat oleh penulis adalah

sebagai berikut :

1. Bagaimana menerapkan Fuzzy Multi-Objective pada Job Shop Scheduling

menggunakan Genetic Algorithm ?

2. Bagaimana membuat program Fuzzy Multi-Objective pada Job Shop

Scheduling menggunakan Genetic Algorithm ?

3. Bagaimana mengimplementasikan program Fuzzy Multi-Objective pada Job

Shop Scheduling menggunakan Genetic Algorithm pada contoh kasus ?

1.3 Tujuan

Dari rumusan-rumusan masalah diatas, tujuan yang ingin dicapai oleh

penulis adalah :

1. Menerapkan Fuzzy Multi-Objective pada Job Shop Scheduling menggunakan

Genetic Algorithm.

2. Membuat program Fuzzy Multi-Objective pada Job Shop Scheduling

menggunakan Genetic Algorithm.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 18: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

5

3. Mengimplementasikan program Fuzzy Multi-Objective pada Job Shop

Scheduling menggunakan Genetic Algorithm pada contoh kasus.

1.4 Manfaat

Manfaat yang akan diperoleh dari hasil penelitian ini yaitu :

1. Menambah wawasan tentang penerapan Riset Operasi khususnya dalam

menyelesaikan atau pengoptimalan permasalahan Fuzzy Multi-Objective pada

Job Shop Scheduling menggunakan Genetic Algorithm.

2. Program Fuzzy Multi-Objective pada Job Shop Scheduling menggunakan

Genetic Algorithm yang telah dibuat diharapkan dapat digunakan oleh

perusahaan – perusahaan yang berkaitan dalam menyelesaikan masalah

penjadwalan pekerjaan dan sebagainya.

1.5 Batasan Masalah

Berdasarkan rumusan masalah yang telah dijelaskan, maka dalam penelitian

ini penulis membatasi masalah yang akan diselesaikan dengan batasan sebagai

berikut :

1. Seleksi yang digunakan adalah seleksi turnamen (Tournament Selection).

2. Crossover yang digunakan adalah Partial Schedule Exchange Crossover.

3. Mutasi yang digunakan adalah Swap Mutation.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 19: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

6

BAB II

TINJAUAN PUSTAKA

2.1 Job Shop Scheduling Problems

Job Shop Scheduling Problems (JSSP) merupakan suatu permasalahan yang

sering muncul dalam dunia industri dan manufacturing. JSSP merupakan suatu

permasalahan dimana terdapat sekumpulan m mesin dan sekumpulan n job yang

akan dijadwalkan. Masing-masing job terdiri dari beberapa operasi yang

dilaksanakan oleh mesin yang berbeda. Pada JSSP masing-masing job memiliki

urutan mesin tersendiri. Meskipun sebuah job dapat memiliki banyak operasi,

bentuk yang paling umum dari JSSP adalah masing-masing job secara pasti

memiliki m operasi, yaitu satu operasi pada tiap mesin.

(Baker dan Trietsch, 2009)

Secara umum, sebuah permasalahan job shop scheduling dirumuskan

sebagai berikut. Misalkan terdapat n job Ji dengan Ji adalah job ke-i (i=1,2,…..,n)

yang diproses pada m mesin Mr dengan Mr adalah mesin ke-r (r=1,2,…..,m) dan

dimisalkan pula operasi dari job Ji pada mesin Mr adalah Oi,j,r dimana

{1,2,…,m} adalah posisi operasi urutan mesin pada masing-masing job. Atau

dapat diartikan bahwa Oi,j,r menunjukkan operasi ke-j pada job Ji yang diproses

pada mesin r.

(Sakawa dan Kubota, 2000)

Dalam JSSP ada beberapa definisi dan notasi yang sering digunakan, antara

lain :

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 20: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

7

a. Waktu pemrosesan (Processing Time)

Dinotasikan dengan pij, yaitu merupakan panjang waktu yang dibutuhkan

untuk melaksanakan masing-masing operasi job termasuk waktu untuk mengatur

(set up) mesin dan waktu untuk memindahkan job pada mesin.

b. Waktu tenggat (Duedate)

Dinotasikan dengan di, yaitu merupakan waktu ideal dimana job ke-i harus

sudah diselesaikan.

c. Waktu siap (Release date)

Dinotasikan dengan ri, yaitu merupakan waktu dari job ke-i dimana Ji siap

untuk dijalankan atau siap untuk diproses.

d. Waktu penyelesaian (Completion Time)

Dinotasikan dengan Ci, yaitu merupakan waktu dimana job ke-i selesai

diproses.

e. Makespan

Dinotasikan dengan Cmax, yaitu merupakan total waktu proses seluruh job.

(French, 1982)

Pada JSSP setiap operasi dicirikan dengan mesin yang digunakan dan waktu

pemrosesan yang sudah ditentukan. Ada beberapa aturan yangterdapat pada JSSP,

antara lain :

a. Sebuah job tidak akan dikerjakan dua kali pada mesin yang sama.

b. Tidak ada kendala operasi yang mendahului pada job yang berbeda.

c. Operasi pada masing-masing mesin tidak dapat diganggu atau disela dengan

operasi lain sebelum operasi sebelumnya selesai.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 21: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

8

d. Masing-masing mesin hanya dapat mengoperasikan satu job pada satu waktu.

e. Waktu siap (Release times) dan waktu tenggat (Due Dates) telah ditentukan.

(Gen dan Cheng, 1997)

Dalam JSSP sebuah schedule adalah sebuah himpunan completion times

(waktu penyelesaian) untuk masing-masing operasi yang memenuhi kendala

urutan mesin. Untuk lebih mempermudah penyelesaian dalam permasalahan JSS,

digunakan sebuah diagram yang merupakan cara mudah untuk yang menyatakan

sebuah solusi visual dari JSSP yang disebut dengan Gantt Chart.

(Yamada dan Nakano, 1997)

Secara umum, dalam JSSP terdapat tiga tipe schedule, antara lain :

a. Semiactive Schedule (Jadwal Semiaktif)

Sebuah jadwal dikatakan semiaktif jika tidak ada operasi yang dapat dimulai

lebih awal tanpa mengubah urutan operasi yaitu, pada sebuah semiactive schedule

tidak ada waktu menganggur yang berlebihan.

b. Active Schedule (Jadwal Aktif)

Sebuah jadwal dikatakan aktif jika tidak ada operasi yang dapat dimulai

lebih awal tanpa menunda beberapa operasi lain atau melanggar kendala urutan

mesin.

c. Non Delay Schedule

Sebuah jadwal dikatakan nondelay jika tidak ada mesin yang tetap

menganggur pada suatu waktu dimana mesin tersebut dapat memulai untuk

memproses beberapa operasi.

(Sakawa, 2002)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 22: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

9

Permasalahan umum pada job shop scheduling adalah untuk mencari urutan

pelaksanaan job yang sesuai. Dalam hal ini urutan yang dijadikan sebagai solusi

permasalahan harus bersifat feasible. Suatu jadwal dikatakan feasible jika

memenuhi syarat urutan mesin pada masing-masing job.

(French, 1982)

2.2 Fuzzy

Jika diterjemahkan menurut kamus, “fuzzy” dapat diartikan sebagai sesuatu

yang tidak jelas atau buram yang menggambarkan ketidakpastian.

Ada beberapa definisi yang berkaitan dengan fuzzy, yaitu :

Definisi 2.1 : Variabel Fuzzy merupakan variabel yang akan dibahas dalam

suatu sistem fuzzy. Contoh : Umur, temperatur.

Definisi 2.2 : Himpunan Fuzzy merupakan suatu grup yang mewakili kondisi

atau keadaan tertentu dalam suatu variabel fuzzy. Contoh : Muda,

Parobaya, Tua.

Definisi 2.3 : Semesta Pembicaraan adalah keseluruhan nilai yang

diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy.

Semesta pembicaraan merupakan himpunan bilangan real yang

bisa bernilai positif atau negatif yang senantiasa naik (bertambah)

secara monoton dari kiri ke kanan. Adakalanya nilai semesta

pembicaraan ini tidak dibatasi batas atasnya. Contoh : Semesta

pembicaraan untuk variabel umur [0, +∞).

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 23: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

10

Definisi 2.4 : Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan

dalam semesta pembicaraan dan boleh dioperasikan dalam suatu

himpunan fuzzy. Seperti halnya semesta pembicaraan, domain

merupakan himpunan bilangan real positif maupun negatif yang

senantiasa naik (bertambah) secara monoton dari kiri ke kanan.

Contoh : Muda = [0, 45] artinya batasan umur yang termasuk

anggota himpunan Muda terletak antara umur 0 sampai umur 45.

(Kusumadewi dan Purnomo, 2010)

Sebuah himpunan X yang merupakan himpunan semesta pada himpunan

fuzzy A dinyatakan dengan sebuah Fungsi Keanggotaan (membership function),

][xA yang menunjukkan pemetaan masing-masing titik x X ke dalam sebuah

nilai real pada interval antara 0 dan 1 dan disebut sebagai derajat keanggotaan

(degree of membership). Nilai ][xA menyatakan fungsi keanggotaan dari x pada

himpunan A. Sehingga, semakin dekat nilai ][xA ke nilai 1, maka semakin

tinggi nilai keanggotaan dari x di A. Secara lebih jelas himpunan fuzzy A

dinotasikan sebagai berikut :

}|),{( XxxxA A ][

(Zadeh, 1965)

Sebuah himpunan fuzzy A dikatakan convex apabila memenuhi :

dengan R merupakan himpunan bilangan real, dan berlaku :

],1,0[ dengan merupakan operasi yang mengambil nilai

keanggotaan terkecil.

][][])1([ )2()1()2()1( xxxx AAA

;, )2()1( Rxx

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 24: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

11

Dan himpunan fuzzy A normal jika hanya jika :

;Rx

1][ xAn

Pengertian normal diatas berarti bahwa nilai tertinggi (highest value) dari

derajat keanggotaan ][xA adalah sama dengan 1.

(Kaufmann dan Gupta, 1991)

Fuzzy number adalah subset himpunan fuzzy yang bersifat convex, dan

normal serta direpresentasikan dengan interval kepercayaan.

(Chen dan Pham, 2001)

Triangular Fuzzy Number (TFN) adalah himpunan fuzzy yang memiliki

tiga titik a, b, c dengan nilai tengah b, batas sebelah kiri a dan batas sebelah kanan

c seperti ditunjukkan pada Gambar 2.1. Maka fungsi keanggotaannya adalah

sebagai berikut :

Gambar 2.1 Representasi Kurva Segitiga

cxbbcxc

bxaabax

cxatauax

x

;

;

;0

][

0

1,0

][x

Derajat keanggotaan

Domain

a b c

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 25: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

12

Trapezoidal Fuzzy Number adalah himpunan fuzzy yang mempunyai empat

titik yaitu a, b, c, d seperti ditunjukkan pada Gambar 2.2. Dan fungsi

keanggotaannya adalah sebagai berikut :

dxccdxd

cxb

bxaabax

dxatauax

x

;

;1

;

;0

][

Gambar 2.2 Representasi Kurva Trapesium

(Kusumadewi, 2002)

Dalam himpunan fuzzy ada beberapa operasi yang diciptakan Zadeh dimana

operasi tersebut digunakan untuk mengkombinasi dan memodifikasi himpunan.

Derajat keanggotaan dari hasil operasi dua himpunan fuzzy dikenal dengan fire

strength atau α-predikat. Misalkan terdapat himpunan fuzzy A dan himpunan

fuzzy B dalam himpunan semesta X yang memiliki elemen x, maka dapat

dilakukan operasi antara kedua himpunan tersebut. Operasi tersebut antara lain :

0

1,0

][x

Derajat keanggotaan

Domain

a b c d

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 26: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

13

a. Operator AND

Digunakan untuk menghubungkan operasi interseksi pada himpunan. Hasil

operasi operator AND diperoleh dengan mengambil nilai keanggotaan terkecil

antarelemen pada himpunan yang bersangkutan.

])[],[min( xx BABA

b. Operator OR

Digunakan untuk menghubungkan operasi union pada himpunan. Hasil

operasi operator OR diperoleh dengan mengambil nilai terbesar antarelemen pada

himpunan yang bersangkutan.

])[],[max( xx BABA

c. Operator NOT

Digunakan untuk menghubungkan operasi komplemen pada himpunan.

Hasil operator NOT diperoleh dengan mengurangkan nilai keanggotaan elemen

pada himpunan yang bersangkutan dari satu.

][1' xAA

(Kusumadewi dan Purnomo, 2010)

Misalkan ),,(~ 321 aaaA dan ),,(~ 321 bbbB merupakan dua TFN dengan

1a , 2a , 3a masing-masing adalah bilangan pertama (batas bawah), bilangan

kedua (nilai tengah) dan bilangan ketiga (batas atas) himpunan A~ dan 1b , 2b , 3b

masing-masing adalah bilangan pertama (batas bawah), bilangan kedua (nilai

tengah) dan bilangan ketiga (batas atas) himpunan B~ , maka operasi–operasi yang

dapat digunakan pada bilangan fuzzy tersebut adalah sebagai berikut :

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 27: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

14

1. ),,(),,(),,(~~ 332211321321 babababbbaaaBA

Operasi ini akan digunakan untuk menghitung waktu penyelesaian operasi.

2. ),,(),,(),,(~~ 332211321321 babababbbaaaBA

Operasi ini akan digunakan untuk menghitung waktu mulai operasi.

(Sakawa dan Kubota, 2000)

Untuk lebih mempermudah penyelesaian fungsi objektif yang menggunakan

bilangan fuzzy maka digunakan fungsi keanggotaan linear (Linear Membership

Function) dengan iz adalah nilai masing-masing fungsi objektif dengan 3,2,1i ,

0iz adalah nilai fungsi objektif i terendah dan 1

iz adalah nilai fungsi objektif i

tertinggi. Sedangkan ][ ii z adalah derajat keanggotaan ke-i untuk fungsi objektif

i. Maka dapat dibuat fungsi keanggotaan linear untuk memaksimalkan fungsi

objektif yang didefinisikan pada persamaan (2.1) berikut :

0

1001

0

1

,0

,

,1

][

ii

iiiii

ii

ii

ii

zz

zzzzzzz

zz

z (2.1)

(Sakawa dan Kubota, 2000)

Dengan fungsi keanggotaan diatas maka nilai fungsi objektif terbesar

akan memiliki derajat keanggotaan yang besar yaitu 1, sedangkan untuk fungsi

objektif terendah akan memiliki derajat keanggotaa terkecil yaitu 0. Fungsi untuk

memaksimalkan diatas dapat digambarkan sesuai Gambar 2.3.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 28: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

15

Gambar 2.3 Fungsi Keanggotaan Linear Memaksimalkan Fungsi Objektif

Sedangkan untuk fungsi keanggotaan linear yang meminimalkan

fungsi objektif didefinisikan pada persamaan (2.2) berikut :

0

1001

1

1

,1

,

,0

][

ii

iiiii

ii

ii

ii

zz

zzzzzzz

zz

z (2.2)

Dengan fungsi keanggotaan diatas maka nilai fungsi objektif tekecil

akan memiliki derajat keanggotaan yang besar yaitu 1, sedangkan untuk fungsi

objektif terbesar akan memiliki derajat keanggotaa terkecil yaitu 0. Fungsi untuk

memaksimalkan diatas dapat digambarkan sesuai Gambar 2.4.

Gambar 2.4 Fungsi Keanggotaan Linear Meminimalkan Fungsi Objektif

(Sakawa dkk, 2011)

0

1,0

][ ii z

iz0iz 1

iz

0

1,0

][ ii z

iz0iz 1

iz

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 29: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

16

2.3 Algoritma Genetik

Selama ini diketahui bahwa banyak permasalahan optimalisasi dalam dunia

industri terutama sistem manufaktur yang sangat sulit diselesaikan dengan

menggunakan teknik konvensional. Sehingga telah banyak dikembangkan

penelitian yang menggunakan algoritma evolusi yang berdasar pada teori evolusi

dalam menyelesaikan permasalahan-permasalahan tersebut. Algoritma ini sering

dinilai lebih baik dibandingkan dengan teknik konvensional pada saat

diaplikasikan ke permasalahan dunia nyata yang cukup sulit. Salah satu algoritma

evolusi yang sangat dikenal saat ini adalah Algoritma Genetik (Genetic

Algorithm). Algoritma Genetik ini telah diterima dan mendapat perhatian karena

keberhasilannya dalam menyelesaikan permasalahan komplek pada dunia industri.

(Gen dan Cheng, 1997)

Berikut akan diberikan definisi-definisi yang berkaitan dengan algoritma

genetik, antara lain :

Definisi 2.5 Algoritma adalah suatu himpunan langkah-langkah atau instruksi

yang telah dirumuskan dengan baik (well defined) untuk

memperoleh suatu keluaran khusus (spesific output) dari suatu

masukan khusus (spesific input) dalam langkah yang jumlahnya

berhingga.

(Chartrand dan Oellermann, 1993)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 30: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

17

Definisi 2.6 Algoritma genetika adalah teknik pencarian stochastic yang

didasari oleh mekanisme seleksi alami (natural selection) dan

proses genetik alami (natural genetics).

(Gen dan Cheng, 1997)

Konsep GA (Genetic Algorithm) secara umum dimulai dengan menentukan

populasi awal.

Definisi 2.7 Himpunan dari solusi disebut populasi.

Definisi 2.8 Masing-masing individu yang terdapat dalam populasi yang

menyatakan solusi permasalahan disebut kromosom.

(Gen dan Cheng, 1997)

Definisi 2.9 Kromosom s terdiri dari sejumlah struktur s1,…, sj ..., sn yang

disebut gen.

Definisi 2.10 Gen sj mempunyai posisi locus ke-j pada kromosom.

(Sakawa dan Kubota, 2000)

Definsi 2.11 Kromosom yang berkembang melalui iterasi yang berturut-turut

yang disebut sebagai generasi.

Definisi 2.12 Ukuran sebuah populasi pada masing-masing generasi disebut

sebagai ukuran populasi (pop_size).

(Gen dan Cheng, 1997)

Definisi 2.13 Pengkodean (coding) merupakan cara pemetaan suatu solusi yang

sesuai dalam ruang pencarian ke kromosom.

(Sakawa dan Kubota, 2000)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 31: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

18

Ada beberapa cara untuk mengkode suatu kromosom diantaranya:

1. Pengkodean Biner

Dalam pengkodean biner, kromosom adalah barisan bit 0 atau 1.

2. Pengkodean Nilai

Dalam pengkodean nilai, setiap kromosom adalah barisan beberapa nilai.

3. Pengkodean Permutasi

Dalam pengkodean permutasi, setiap kromosom adalah barisan angka yang

memperhatikan urutan dan posisi sehingga tidak terjadi adanya pengulangan

angka.

4. Pengkodean Random Keys (Nomor Acak)

Dalam random keys, setiap kromosom adalah barisan angka random yang

berkisar antara 0 dan 1.

(Obitko, 1998)

Untuk menjaga keanekaragaman pembangkitan individu awal, pada

penyelesaian JSSP dengan menggunakan Genetic Algorithm dalam penelitian

yang dilakukan oleh Sakawa dan Kubota (2000) telah diperkenalkan suatu metode

pembangkitan solusi awal yang berdasarkan kepada derajat kesamaan (degree of

similarity) antar masing-masing individu. Berdasarkan banyak penelitian yang

telah dilakukan diketahui bahwa pada saat membangkitkan individu dengan

derajat kesamaan 0,8 atau kurang maka solusi yang diperoleh akan lebih

konvergen (Sakawa, 2000). Gambar 2.5 menunjukkan contoh perhitungan degree

of similarity dari dua individu pada contoh permasalahan 4×4 FJSSP.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 32: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

19

Individu 1

Job

Mesin 1 1 2 4 3

Mesin 2 3 1 4 2

Mesin 3 4 3 1 2

Mesin 4 3 2 1 4

Individu 2

Job

Mesin 1 2 1 4 3

Mesin 2 3 1 4 2

Mesin 3 4 3 1 2

Mesin 4 3 2 4 1

Gambar 2.5 Contoh perhitungan Degree of Similarity

Tabel di atas merupakan tabel urutan job pada tiap-tiap mesin dari individu

1 dan individu 2. Untuk individu 1, job 1 pada mesin 1 memiliki prioritas diatas

job 2, 3 dan 4. Untuk individu 2, job 1 pada mesin 1 kehilangan prioritas terhadap

job 2 dan memiliki prioritas terhadap job 4 dan 3. Karena kedua individu memiliki

prioritas yang sama untuk job 1 pada mesin 1 diatas job 4 dan 3 maka diberi nilai

2. Jika dilakukan perhitungan yang sama pada job 2, 4 dan 3 maka akan diperoleh

nilai masing-masing 2, 3 dan 3 pada mesin 1. Jika dihitung untuk semua mesin

maka akan diperoleh total nilai 44. Karena 12 x 4 adalah 48 pada saat urutan

prioritas sama untuk semua job, maka rasio menjadi 44/48 dan diperoleh degree of

similarity sebesar 0,917 yang berarti bahwa tingkat kesamaan individu 1 dan

individu 2 sebesar 91,7%.

(Sakawa dan Kubota, 2000)

Pada masing-masing generasi, masing-masing kromosom pada populasi

yang telah dibangkitkan dievaluasi dengan menghitung nilai fitness. Selanjutnya

dilakukan dua operasi yaitu proses seleksi yang merupakan operasi evolusi serta

crossover dan mutasi yang merupakan operasi genetik dalam algoritma genetik.

(Gen dan Cheng, 1997)

2+2+3+3=10

3+3+3+3=12

3+3+3+3=12

3+3+2+2=10

917,04844

4810121210

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 33: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

20

Definisi 2.14 Fungsi fitness adalah ukuran yang menunjukkan tingkat kebaikan

atau kesesuaian suatu solusi dengan solusi yang dicari.

(Santoso dan Willy, 2011)

Definisi 2.15 Seleksi (selection) merupakan proses pemilihan individu dari

populasi untuk menjadi induk crossover atau induk mutasi.

(Obitko, 1998)

Ada beberapa jenis seleksi dalam algoritma genetik, diantaranya adalah :

a. Seleksi Elistim (Elitism Selection)

Seleksi ini dilakukan dengan memasukkan kromosom terbaik kedalam

generasi baru secara langsung. Dan sisanya dilakukan dengan menggunakan

seleksi yang lain.

b. Seleksi Roda Rolet (Roulete Wheel Selection)

Seleksi ini dilakukan dengan menentukan probabilitas masing-masing

kromosom yang nilainya sesuai dengan fungsi fitnessnya. Kemudian dibuat

sebuah roda yang berdasarkan kepada probabilitas tersebut. Proses seleksi

dilakukan dengan memutar roda rolet sebanyak pop_size.

c. Seleksi Turnamen

Seleksi ini dilakukan dengan memilih secara random sebuah himpunan (set)

kromosom dan memilih satu kromosom terbaik dari himpunan tersebut untuk

digunakan dalam reproduksi. Jumlah kromosom pada himpunan tersebut disebut

tournament size atau tour. Nilai tournament size yang umum adalah 2.

(Gen dan Cheng, 1997)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 34: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

21

Individu-individu yang telah terpilih dalam proses seleksi selanjutnya akan

diproses crossover dan mutasi.

Definisi2.16 Crossover adalah operator genetik yang utama. Pada proses ini dua

induk atau kromosom dioperasi untuk mendapatkan individu baru

(offspring) dengan mengkombinasi atau menggabungkan sifat-sifat

dari keduanya.

(Gen dan Cheng, 1997)

Tipe dan bentuk dari crossover tergantung pada pengkodean dan jenis

permasalahannya. Ada beberapa jenis crossover, diantaranya:

a. Partial Schedule Exchange Crossover

Langkah-langkah :

1. Memilih satu posisi pada parent 1 secara random.

2. Menentukan job terdekat yang sama dengan job pada posisi terpilih

sehingga diperoleh partial schedule 1.

3. Partial schedule selanjutnya dari parent 2 tidak diperoleh secara acak, tetapi

harus dimulai dan diakhiri dengan job yang sama dengan job awal dan akhir

pada partial schedule 1, sehingga diperoleh partial schedule 2.

4. Menukar posisi partial schedule 1 kedalam parent 2 dan partial schedule 2

kedalam parent 1.

5. Hasil dari pertukaran partial schedule biasanya akan menyebabkan jumlah

gen yang tidak sesuai, sehingga harus dicari kelebihan dan kekuranga gen

pada masing-masing anak hasil crossover.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 35: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

22

6. Menghapus kelebihan gen dan menambah kekurangan gen pada masing-

masing anak hasil crossover dengan memperhatikan urutan operasi job pada

parent pembentuk partial schedule.

b. Partial-Mapped Crossover (PMX)

Memilih dua titik potong secara random. Substring antara kedua titik potong

disebut mapping sections. Mapping sections diantara kedua induk ditukar

kemudian ditentukan hubungan pemetaan antara kedua mapping sections untuk

menghasilkan 2 anak.

c. Order Crossover (OX)

Memilih substring dari salah satu induk secara random kemudian

membentuk calon anak dari substring dengan posisi yang sama. Gen yang telah

ada pada induk kedua dihapus, sisanya adalah barisan gen yang belum ada pada

calon anak. Kemudian barisan tersebut ditempatkan pada posisi calon anak yang

masih kosong berurutan dari kiri ke kanan hingga terbentuk 1 anak.

(Gen dan Cheng, 1997)

Definisi2.17 Laju crossover ( cp ) adalah rasio banyaknya keturunan yang

dihasilkan dari crossover pada tiap-tiap generasi terhadap ukuran

populasinya.

(Gen dan Cheng, 1997)

Pada proses crossover terdapat rasio untuk mengontrol jumlah harapan dari

kromosom yang mengalami crossover. Jumlah harapannya dihitung dengan cara

cp × pop_size.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 36: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

23

Definisi 2.18 Mutasi merupakan operator yang menghasilkan perubahan random

pada kromosom.

(Gen dan Cheng, 1997)

Ada beberapa jenis mutasi, diantaranya:

a. Swap Mutation

Memilih dua posisi gen secara acak kemudian menukar gen pada kedua

posisi tersebut. (Lei, 2009)

b. Mutasi Inversi (Inversion Mutation)

Memilih dua posisi dalam kromosom secara acak dan kemudian membalik

untaian diantara dua posisi itu.

c. Mutasi Sisipan (Insertion Mutation)

Memilih gen secara acak dan menyisipkannya di posisi acak.

d. Mutasi Perpindahan (Displacement Mutation)

Memilih sebuah subtour secara acak dan memasukkannya pada posisi lain

secara acak.

(Gen dan Cheng, 1997)

Definisi2.19 Laju mutasi ( mp ) adalah prosentase dari jumlah individu dalam

populasi yang dimutasi.

(Gen dan Cheng, 1997)

Pada proses mutasi terdapat rasio untuk mengontrol jumlah harapan dari

kromosom yang mengalami mutasi. Jumlah harapannya dihitung dengan cara mp

× pop_size.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 37: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

24

Secara umum langkah-langkah dalam algoritma genetika adalah sebagai

berikut:

1. [Mulai] Membangkitkan populasi secara random sebanyak n individu (solusi

feasible dari permasalahan)

2. [Fitness] Menilai keandalan setiap individu dalam populasi.

3. [Populasi baru] Membentuk populasi baru lewat pengulangan pengoperasian

operator genetik berikut sampai populasi baru lengkap.

a. [Seleksi] Memilih induk dari populasi sesuai dengan nilai keandalannya

(keandalan yang lebih baik, lebih berpeluang untuk terpilih).

b. [Crossover] Dengan suatu laju crossover, crossover induk untuk

membentuk anak (individu baru). Jika tidak ada crossover yang

dilaksanakan, anak merupakan copian yang sama dengan induknya.

c. [Mutasi] Menggunakan suatu probabilitas, mutasi induk pada masing-

masing sifat (lokus = posisi dalam kromosom).

4. [Mengganti] Menggunakan populasi yang baru dibentuk untuk menjalankan

algoritma lebih lanjut.

5. [Menguji] Jika sudah mencapai n iterasi atau optimal, berhenti dan diperoleh

solusi terbaik dari populasi ini. Jika tidak maka kembali ke langkah 2 sampai

diperoleh solusi terbaik dari populasi ini.

(Obitko, 1998)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 38: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

25

2.4 Fuzzy Multi-Objective JSSP (FMOJSSP)

2.4.1 Fuzzy Number Pada JSSP

Pada JSSP ini digunakan fuzzy number khususnya Triangular Fuzzy

Number (TFN) yang dilambangkan dengan bentuk triplet ),,(~ 321 aaaA pada

Completion Times dengan 1a adalah batas bawah, 2a adalah nilai tengah dan 3a

adalah batas atas himpunan A~ . Dalam meranking fuzzy number untuk mencari

nilai yang paling besar metode yang digunakan dalam penelitian ini, yaitu :

Kriteria 1 : Nilai kelompok terbesar digunakan sebagai kriteria pertama untuk

meranking dua bilangan TFN.

42)~(

321

1aaaAK

Kriteria 2 : Jika K1 tidak dapat meranking dua TFN, penduga maksimal terbaik

dipilih sebagai kriteria kedua.

22 )~( aAK

Kriteria 3 : Jika K1 dan K2 tidak dapat meranking dua TFN, beda penyebaran

dipilih sebagai kriteria ketiga.

133 )~( aaAK

dengan )~(AK i merupakan kriteria ke i yang digunakan untuk merangking

bilangan fuzzy A~ .

Selain waktu pemrosesan, fungsi objektif yang dapat digunakan pada Fuzzy

Job Shop Scheduling Problem (FJSSP) adalah menghitung Agreement Index (AI)

masing-masing job. Dalam penelitian ini Trapezoidal Fuzzy Number yang

digunakan untuk mewakili duedate time dilambangkan dalam bentuk doublet

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 39: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

26

),(~ 21 ddD seperti ditunjukkan pada Gambar 2.6 dan digunakan untuk

menghitung AI seperti pada Gambar 2.7.

Gambar 2.6 Doublet Fuzzy duedate

Gambar 2.7 Agreement Index

(Sakawa dan Kubota, 2000)

Rasio untuk AI dari C~ yang bersesuaian dengan D~ didefinisikan dengan

rumus berikut :

AI = (area ii DC ~~ )/(area iC~ )

dimana AI adalah Agreement Index ]1,0[ yang menunjukkan ketepatan waktu

penyelesaian job dengan deadline yang diberikan, area ii DC ~~ adalah luasan

daerah irisan antara iC~ yaitu Fuzzy Completion time dari job ke-i dan iD~ adalah

1

0

D~

1d 2d

x

1

0

D~

1d 2d

x

C~

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 40: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

27

fuzzy duedate dari job ke-i, sedangkan area iC~

adalah luas wilayah Fuzzy

Completion time dari job ke-i .

Untuk lebih memperjelas rumus tersebut, dibawah ini akan diberikan

contoh. Gambar 2.5 merupakan contoh Agreement Index dari dua bilangan fuzzy.

Gambar 2.8 Contoh Agreement Index (AI)

Keterangan :

= Daerah himpunan bilangan fuzzy D~

= Daerah himpunan bilangan fuzzy C~

= Daerah DC ~~

C~ adalah TFN dengan nilai C~ = (3,10,13) yang berarti waktu penyelesaian

tercepat, normal dan terlambat masing-masing adalah 3, 10 dan 13 satuan waktu,

dan D~ = (8,14). Maka diperoleh :

Fungsi keanggotaan C~ Fungsi keanggotaan D~

14;0

148;6

148;1

][

d

ddd

d

1310;3

13

103;7

3

133;0

][

cc

cc

catauc

c

1,0

D~

x

C~

0,0

0,5

0,0 5,0 10,0 15,0 a

b

c

d

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 41: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

28

Dimana c dan d masing-masing merupakan bilangan yang dipetakan ke

himpunan C~ dan D~ .

Selanjutnya yaitu menentukan nilai luasan DC ~~ yaitu dengan cara :

1. Menentukan titik batas a, b, c, d untuk wilayah DC ~~

a = 3

6

147

3 bb

92307,811613

bb

6

143

13 cc

12363

cc

d = 14

2. Menghitung area DC ~~ :

area DC ~~

Kemudian dihitung area C~ sebesar :

area C~

maka diperoleh AI sebesar : AI

Nilai tersebut menunjukkan ketepatan waktu penyelesaian dengan duedate sebesar

81,584%.

(Kaufmann dan Gupta, 1991)

2.4.2 Multi-Objective JSSP

Penyelesaian masalah JSSP biasanya hanya meggunakan perhitungan

makespan sebagai fungsi objektif, namun agar lebih memenuhi keadaan nyata

48715,416666,081459,150530,2

313

614

73 13

12

92307,8

3

12

92307,8

dxxdxxdxx

xx x

81584,05,5

48715,4

5,52

111

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 42: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

29

maka digunakan multifungsi objektif (Multi-Objective Function) yang

didefinisikan sebagai berikut :

Memaksimalkan z1 :

n

iiAI

n 1

1

Memaksimalkan z2 : iniAIAI

,...,2,1min min

Meminimalkan z3 : iniCC ~max~

,...,2,1max

Dimana n adalah banyak job, AIi dan C~ i masing-masing adalah Agreement

Index dan Completion Time dari job Ji.

Fungsi objektif yang pertama digunakan untuk memaksimalkan rata-rata

kesesuaian waktu penyelesaian dengan waktu tenggat atau deadline job harus

diselesaikan. Fungsi objektif yang kedua adalah untuk memaksimalkan kesesuaian

waktu penyelesaian dengan waktu tenggat atau deadline job yang paling kecil.

Sedangkan fungsi objektif yang ketiga digunakan untuk meminimalkan waktu

penyelesaian (completion time) yang paling besar dari masing-masing job.

Setelah didapatkan nilai setiap fungsi objektif maka dihitung fungsi

keanggotaan untuk masing masing fungsi objektif menggunakan persamaan (2.1)

dan persamaan (2.2). Dari masing-masing derajat keanggotaan fungsi objektif atau

fungsi tujuan maka permasalahan tersebut dapat ditransformasi untuk mencari

nilai maksimal dari :

)}({min3,2,1 iii

zf

yang akan digunakan sebagai fungsi fitness. Dengan ][ ii z (i=1,2,3) merupakan

derajat keanggotaan ke-i untuk fungsi objektif ke-i.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 43: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

30

2.4.3 Metode Giffler Dan Thompson

Pada permasalahan JSSP suatu optimal schedule akan diperoleh dari sebuah

himpunan active schedule. Sebuah jadwal dikatakan aktif jika tidak ada operasi

yang dapat dimulai lebih awal tanpa menunda beberapa operasi lain atau

melanggar kendala urutan mesin.

Algoritma Giffler dan Thompson dikenal sebagai sebuah prosedur untuk

membangkitkan active schedule. Untuk lebih menyesuaikan dengan FJSSP

algoritma tersebut dapat dikembangkan sebagai berikut :

Step 1 : Tentukan himpunan S, himpunan semua operasi paling awal pada

urutan mesin diantara operasi yang belum dijadwalkan. Himpunan S

disebut cut.

Step 2 : Abaikan bahwa hanya satu operasi yang dapat diproses pada masing-

masing mesin pada suatu waktu, buat sebuah jadwal dari fuzzy

completion time masing-masing operasi dan tentukan

3,,

2,,

1,, ,, rjirjirji ECECEC yang merupakan fuzzy completion time yang

diperoleh dari masing-masing operasi Oi,j,r S.

Step 3 : Tentukan operasi Oi*,j*,r* yang mempunyai nilai EC1 minimum pada

himpunan S : }|min{ ,,1

,,1

**,*, SOECEC rjirjirji . Tentukan himpunan

G yang merupakan himpunan operasi SO rji *,, dan menggunakan

mesin yang sama yaitu Mr* dengan operasi **,*, rjiO dan pemrosesan

*,, rjiO dan **,*, rjiO tumpang tindih (overlap). Karena operasi pada G

overlap dalam satu waktu maka G disebut conflict set.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 44: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

31

Step 4 : Pilih satu operasi *,, rjsisO diantara conflict set G secara acak.

Step 5 : Ambil operasi terpilih sebagai standart, update EC1, EC2, dan EC3

dengan menambahkan waktu pemrosesan pada waktu mulai operasi

yang ditentukan dengan nilai maksimum dari operasi terpilih sebagai

pendahulu pada job yang sama diantara job yang termasuk operasi

dengan konflik. Hapus operasi terpilih dari cut.

Step 6 : Ulangi langkah 3-5 hingga semua operasi telah terjadwal.

(Sakawa dan Kubota, 2000)

2.5 JAVA

Java menurut definisi dari Sun adalah nama untuk sekumpulan teknologi

untuk membuat dan menjalankan perangkat lunak pada komputer standalone

ataupun pada lingkungan jaringan. Java berdiri diatas sebuah mesin interpreter

yang diberi nama Java Virtual Machine (JVM). JVM inilah yang akan membaca

bytecode dalam file .class dari suatu program sebagai representasi langsung

program yang berisi bahasa mesin. Oleh karena itu, bahasa Java disebut sebagai

bahasa pemrograman yang portable karena dapat dijalankan pada berbagai sistem

operasi, asalkan pada sistem operasi tersebut terdapat JVM.

Java merupakan bahasa pemrograman yang bersifat case sensitive yang

berarti penulisan menggunakan huruf besar ataupun huruf kecil pada kode

program dapat berarti lain, misalnya penulisan “System” akan diartikan berbeda

dengan “system” oleh interpreter.

(Shalahuddin dan Rosa, 2007)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 45: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

32

2.6 NETBEANS IDE

NetBeans sebagai IDE (Integrated Development Environment) ditujukan

untuk memudahkan pemrograman Java. Dalam NetBeans, pemrograman

dilakukan berbasiskan visual dan event-driven. Persis seperti IDE lain, misalnya

Borland Delphi dan Microsoft Visual Studio. Untuk membuat dialog atau user

interface, kita tidak perlu membuat teks program secara manual baris per baris,

tetapi cukup klik pada component-pallete. Teks program akan dihasilkan secara

otomatis. NetBeans mencakup compiler atau builder, dan debugger internal. Hal

ini sangat memudahkan proses paska perancangan program. Proses deployment

dan/atau tes dapat juga dilakukan dari dalam NetBeans.

(Hartati dkk, 2007)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 46: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

33

BAB III

METODE PENELITIAN

Adapun langkah-langkah yang dilakukan oleh penulis dalam menyelesaikan

permasalahan adalah sebagai berikut :

1. Study literature atau studi pustaka yang terkait dengan Job Shop Scheduling

Problems (JSSP), Fuzzy, Genetic Algorithm (GA) dan Fuzzy Multi-objective

JSSP.

2. Menyusun algoritma untuk menyelesaikan JSSP dengan Fuzzy Multi-objective

dan GA, yaitu sebagai berikut :

a. Menginputkan parameter yang akan digunakan yaitu antara lain pop_size,

derajat kesamaan tiap individu (degree), nilai tour, nilai probabilitas

crossover (Pc), nilai probabilitas mutasi (Pm) dan max_gen.

b. Membangkitkan individu awal satu persatu dan mengaktifkan individu

yang terbentuk dengan menggunakan metode Giffler dan Thompson. Jika

individu yang dibangkitkan merupakan individu awal yang pertama maka

pengecekan derajat kesamaan (degree) belum dilakukan sehingga akan

dibangkitkan individu awal yang selanjutnya. Setelah terbentuk individu-

individu maka dilakukan pengecekan derajat kesamaan (degree) antar

individu.

c. Melakukan pengecekan jumlah individu berdasarkan pop_size, jika

pop_size terpenuhi maka lanjut kelangkah e, jika tidak maka kembali ke

langkah d.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 47: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

34

d. Mengevaluasi masing-masing individu dengan menghitung nilai setiap

fungsi objektifnya (zi).

e. Menentukan nilai keanggotaan linear untuk masing-masing zi pada tiap

individu.

f. Melakukan operator genetic pada GA dengan langkah sebagai berikut :

1) Menentukan seleksi induk crossover dan mutasi.

Seleksi yang akan digunakan adalah seleksi turnamen (Tournament

Selection). Tahapan-tahapan seleksi turnamen yaitu :

1.1 Menetukan nilai tour seleksi, yaitu banyaknya kromosom yang

akan mengalami turnamen.

1.2 Memilih secara random kromosom-kromosom yang akan

diturnamenkan pada populasi sebanyak tour.

1.3 Menentukan calon induk untuk crossover dan mutasi dengan

memilih nilai fitness terbesar diantara kromosom yang

diturnamenkan.

1.4 Membangkitkan atau generate bilangan acak dari interval [0,1]

untuk masing-masing calon induk.

1.5 Menentukan induk yang akan digunakan pada operasi crossover

dan mutasi.

2) Melakukan Partial Schedule Exchange Crossover (PSEX) pada

kromosom induk crossover.

Tahapan-tahapan pada PSEX yaitu :

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 48: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

35

2.1 Memilih satu posisi pada parent 1 secara random.

2.2 Menentukan job terdekat yang sama dengan job pada posisi

terpilih, sehingga diperoleh partial schedule 1.

2.3 Partial schedule selanjutnya tidak diperoleh secara acak, tetapi

harus dimulai dan diakhiri dengan job yang sama dengan job awal

dan akhir pada partial schedule 1, sehingga diperoleh partial

schedule 2.

2.4 Menukar posisi partial schedule 1 kedalam parent 2 dan partial

schedule 2 kedalam parent 1.

2.5 Hasil dari pertukaran partial schedule biasanya akan

menyebabkan jumlah gen yang tidak sesuai, sehingga harus dicari

kelebihan dan kekuranga gen pada masing-masing anak hasil

crossover.

2.6 Menghapus kelebihan gen dan menambah kekurangan gen pada

masing-masing anak hasil crossover dengan memperhatikan

urutan operasi job pada parent pembentuk partial schedule.

3) Melakukan Swap Mutation pada kromosom induk mutasi.

Tahapan-tahapan Swap Mutation yaitu :

3.1 Memilih 2 posisi gen secara acak.

3.2 Menukar gen pada kedua posisi tersebut.

g. Mengaktifkan masing-masing individu anak yang dihasilkan pada operator

GA dengan menggunakan metode Giffler dan Thompson.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 49: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

36

h. Mengevaluasi masing-masing individu anak dengan menghitung nilai

setiap fungsi objektif.

i. Membentuk populasi baru yaitu dengan cara :

1.) Mengumpulkan individu dari populasi awal, anak hasil crossover dan

anak hasil mutasi.

2.) Semua individu tersebut diurutkan berdasarakan fungsi tujuannya.

3.) Diambil individu terbaik sebanyak pop_size.

j. Ulangi proses e-g sebanyak maksimum generasi (max_gen).

3. Membuat program dari algoritma yang telah disusun.

4. Mengimplementasikan program yang telah dibuat pada contoh kasus.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 50: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

37

BAB IV

PEMBAHASAN

Pada bab ini dijelaskan mengenai penyelesaian Job Shop Scheduling dengan

Fuzzy Multi-Objective menggunakan Genetic Algorithm (GA). Permasalahan Job

Shop Scheduling adalah suatu permasalahan mencari urutan proses dari job-job

pada tiap-tiap mesin yang berbeda sebagai suatu solusi yang sesuai dengan fungsi

tujuan dan memenuhi batasan urutan mesin untuk masing-masing job.

4.1 Prosedur Algoritma Genetik Untuk Permasalahan Job Shop Scheduling

Prosedur Algoritma Genetik yang digunakan dalam menyelesaikan

permasalahan Job Shop Scheduling adalah sebagai berikut :

Prosedur GA secara ringkas dapat dilihat pada Gambar 4.1. Misalkan P(t)

dan C(t) masing-masing adalah induk dan anak pada generasi ke-t dan max_gen

merupakan iterasi maksimum yang ditentukan.

Gambar 4.1 Prosedur untuk Genetic Algorithm

Prosedur untuk Genetic Algorithm

begin

t ← 0; parameter setting; inisialisasi P(t); evaluasi P(t); while (t ≠ max_gen) do

operasi genetik pada P(t) untuk mendapatkan C(t); pengaktifan schedule C(t); evaluasi C(t); pilih P(t+1) dari P(t) dan C(t); t ← t + 1;

end end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 51: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

38

Terdapat beberapa parameter yang digunakan dalam GA untuk

menyelesaikan JSSP. Parameter tersebut antara lain jumlah job (n), jumlah mesin

(m), urutan operasi mesin untuk tiap-tiap job (seqMachine), waktu proses untuk

setiap operasi (processTime), duedate untuk setiap job (duedate), ukuran populasi

(pop_size), batas derajat kesamaan kromosom awal (degree), probabilitas

crossover (Pc), probabilitas mutasi (Pm), ukuran individu yang akan

diturnamenkan (tour), dan maksimum generasi (max_gen). Prosedur penentuan

parameter dapat dilihat pada Gambar 4.2.

Gambar 4.2 Prosedur untuk Parameter Setting

Flowchart penyelesaian dengan menggunakan GA dapat dilihat pada

Lampiran 1.

Langkah I : Generate Populasi Awal

Populasi awal merupakan kumpulan dari individu atau kromosom yang

dibangkitkan secara random. Kromosom tersebut merupakan solusi urutan

scheduling dari permasalahan job shop.

Generate populasi awal merupakan proses pembangkitan sejumlah

kromosom secara random dalam suatu ruang pencarian yaitu berupa kode urutan

Prosedur untuk Parameter Setting

begin

jumlah job : n; jumlah mesin : m; urutan operasi mesin : seqMachine; waktu proses : processTime; duedate : duedate; ukuran populasi : pop_size; degree of similarity : degree; probabilitas crossover : Pc; probabilitas mutasi : Pm; ukuran turnamen : tour; maksimum iterasi : max_gen;

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 52: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

39

job yang merupakan himpunan solusi feasible. Sejumlah kromosom yang

dibangkitkan akan dibentuk menjadi sebuah populasi pada masing-masing iterasi

atau generasi dan diproses hingga mencapai max_gen yang ditentukan.

Pengkodean kromosom diberikan dalam bentuk permutasi dengan

pengulangan (permutation with repetition) dari job-job sebanyak perkalian jumlah

job yang dikerjakan dengan banyak mesin. Prosedur yang digunakan untuk

melakukan generate populasi awal dapat dilihat pada Gambar 4.3. Misal ind

adalah banyak kromosom yang telah dibangkitkan pada saat i dan degij

merupakan derajat kesamaan dari kromosom ke-i yang baru dibangkitkan dengan

kromosom ke-j yang sudah dibangkitkan terlebih dahulu.

Gambar 4.3 Prosedur untuk Inisialisasi

Pada prosedur generate populasi awal terdapat langkah untuk generate

sebuah kromosom. Prosedur generate kromosom dapat dilihat pada Gambar 4.4.

Gambar 4.4 Prosedur untuk Generate Kromosom

Prosedur untuk Inisialisasi 𝐏 𝐭 begin

i ← 0; while (i <pop_size ) do

j ← 0; membangkitkan sebuah kromosom(); pengaktifan schedule (); if (i ≠ 1) then ind = i;

while ( j <ind ) do

menghitung derajat kesamaan antar individu; if ( degij >degree) then i = i − 1; end

end i ← i + 1; end

end

Prosedur untuk Generate Kromosom

begin

generate urutan job (); menentukan operasi job (); menentukan urutan mesin ();

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 53: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

40

Prosedur generate kromosom dilakukan dengan cara membangkitkan kode

urutan job secara random dengan menggunakan pengkodean permutasi yang

mewakili gen-gen pembentuk kromosom. Gambar 4.5 menunjukkan prosedur

pembentukan kode urutan job. Misalkan untuk jumlah gen disimbolkan dengan

genes, jobk merupakan kode job ke-k, random (n-1) merupakan proses random

bilangan integer antara 0 sampai (n-1), dan num, a, temp adalah variabel bantuan.

Gambar 4.5 Prosedur untuk Generate Urutan Job

Setelah didapatkan urutan dari job, langkah selanjutnya yang dilakukan

adalah menentukan urutan operasi dari masing-masing job. Prosedur yang

digunakan untuk menentukan urutan operasi dapat dilihat pada Gambar 4.6.

Misalkan operationk menunjukkan operasi pada urutan job atau gen ke-k,

jobOperjobk merupakan variable bantuan untuk menentukan jumlah operasi.

Gambar 4.6 Prosedur untuk Menentukan Operasi Job

Prosedur untuk Generate Urutan Job

begin

k ← 0; genes ← n × m; num() ← 0: n ; while (k<genes) do

temp = random (n-1); a = numtemp +1; if ( a ≤ m ) then

jobk = temp; numtemp = a; k ← k + 1; end

end

end

Prosedur untuk Menentukan Operasi Job

begin

k ← 0; jobOper() ← 0:m ; while (k <genes ) do

operationk = 𝑗𝑜𝑏𝑂𝑝𝑒𝑟𝑗𝑜𝑏𝑘; 𝑗𝑜𝑏𝑂𝑝𝑒𝑟𝑗𝑜𝑏𝑘 = 𝑗𝑜𝑏𝑂𝑝𝑒𝑟𝑗𝑜𝑏𝑘 + 1; k ← k+ 1; end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 54: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

41

Setelah didapatkan urutan opebbrasi masing-masing job, selanjutnya

ditentukan mesin yang digunakan dan waktu proses (Processing Time) untuk

masing-masing job. Prosedur tersebut dapat dilihat pada Gambar 4.7. Misalkan

machinek menunjukkan mesin yang digunakan untuk gen ke-k, dan karena waktu

pemrosesan menggunakan tiga bilangan fuzzy maka processingTkl menunjukkan

bilangan fuzzy ke-l untuk waktu pemrosesan gen ke-k, processTime menunjukkan

waktu pemrosesan .

Gambar 4.7 Prosedur untuk Menentukan Urutan Mesin

Setelah pembangkitan kromosom selesai maka kromosom-kromosom yang

mewakili sebuah schedule tersebut akan diaktifkan menggunakan algoritma

Giffler-Thompson. Prosedur pengaktifan schedule dapat dilihat pada Gambar 4.8.

Gambar 4.8 Prosedur untuk Pengaktifan Schedule

Langkah awal yang dilakukan untuk mengaktifkan schedule adalah dengan

menghitung waktu penyelesaian job pada masing-masing kromosom. Misalkan

timeJobij dan timeMachineij masing-masing adalah waktu penyelesaian ke-j untuk

Prosedur untuk Pengaktifan Schedule

begin

menghitung completion time dan delay time(); pengaktifan();

end

Prosedur untuk Menetukan Urutan Mesin

begin

k ← 0; while (k < genes ) do

𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑘 = 𝑠𝑒𝑞𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑗𝑜𝑏𝑘𝑜𝑝𝑒𝑟𝑎𝑡𝑖𝑜𝑛𝑘; for l ← 0to l < 3 do

𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔𝑇𝑘𝑙 = 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑇𝑖𝑚𝑒𝑗𝑜𝑏𝑘𝑜𝑝𝑒𝑟𝑎𝑡𝑖𝑜𝑛𝑘𝑙; end k ← k + 1;

end end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 55: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

42

job dan mesin pada gen ke-i, startingij merupakan waktu mulai ke-j untuk job

pada gen ke-i dan delayij merupakan waktu luang ke-j pada gen ke-i. Prosedur

untuk menghitung waktu penyelesaian dan waktu luang dapat dilihat pada

Gambar 4.9.

Gambar 4.9 Prosedur untuk Menghitung Completion Time dan Delay Time

Setelah terbentuk schedule untuk penghitungan waktu penyelesaian,

selanjutnya adalah melakukan pengaktifan schedule dengan menggunakan

informasi waktu luang yang telah didapat sebelumnya. Misalkan genes adalah

jumlah gen, machinei dan jobi merupakan mesin dan job yang berproses pada

gen ke-i, startingij dan completeij merupakan waktu mulai dan selesai ke-j untuk

job pada gen ke-i, dan delayij merupakan waktu luang ke-j pada gen ke-i. Prosedur

untuk mengaktifkan schedule dapat dilihat pada Gambar 4.10.

Prosedur untuk Menghitung Completion Time dan Delay Time

begin

i ← 0; j ← 0; timeJob ← 0,𝑛, 3 ; timeMachine ← 0:𝑚, 3 ; delay ← (0: genes, 3); while (i < genes ) do

for j ← 0 to j < 3 do

if (𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗 < 𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗) then

𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗 = 𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖 𝑗;

else

𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗 = 𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗; 𝑑𝑒𝑙𝑎𝑦𝑖𝑗 = 𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗 − 𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖 𝑗

; end

𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖 𝑗 = 𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗 + 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔𝑇𝑖𝑗

𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗 = 𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖 𝑗;

end i ← i + 1; end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 56: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

43

Gambar 4.10 Prosedur untuk Pengaktifan

Setelah individu yang dibangkitkan sesuai dengan pop_size maka langkah

selanjutnya yang dilakukan yaitu mengevaluasi setiap individu.

Langkah II : Evaluasi

Proses evaluasi merupakan proses penghitungan nilai fungsi tujuan yang

terdiri dari tiga fungsi yang masing-masing dinyatakan dengan z1, z2, z3 untuk

masing-masing kromosom. Fungsi-fungsi tersebut kemudian dinyatakan dengan

fungsi fitness (F).

Prosedur untuk Pengaktifan

begin

a = (0:genes); c = (0: genes); for i←0 to i <genes do

for j←0 to j< 3 do

if ( delayij ≠ 0) then ai = ai+1; end

if (ai= 3) then

delayM = machinei; b = i; break

end

end

for k← (b+1) to k <genes do

if ( machinek = delayM) then if ( operationk = 0) then

for l←0 to l< 3 do

if (delaybl ≥ processingTkl) then ck = ck +1; end

if (ck=3) then d = k; break end

end

else if ( operationk > 0) then for ii← 0 to ii <genes do

if ( jobii = jobk && operationii = ( operationk −1)) then for jj←0 to jj< 3 do

if ( startingbjj - completeiij ≥ processingTkjj) thenck=ck +1; end

if (ck =3) then d=k; break end

end

end

end reschedule jobd; end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 57: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

44

Prosedur untuk Evaluasi z1

begin

i ← 0; j ← 0; k ← 0; sum ← 0; for i←0 to i<pop_size do

for j←0 to j<n do

menentukan grafik completion time masing-masing job; menentukan grafik duedate masing-masing job; menentukan daerah pertemuan antara completion time dan duedate; menghitung area pertemuan, misalkan dengan 𝐶 𝑖𝑗 ∩ 𝐷 𝑖𝑗; menghitung area completion time, misalkan dengan 𝐶 𝑖𝑗;

agreementIndexij =C ij∩D ij

C ij;

sum = sum + agreementIndexij ; end

𝑧1𝑖 =sum

n; end

end

Misalkan pop_size adalah banyaknya populasi, n adalah banyaknya job,

completion time adalah waktu penyelesaian untuk masing-masing job, duedate

adalah waktu tenggat untuk masing-masing job, ∩ merupakan irisan dari

completion time dengan duedate, agreementIndexij menyatakan nilai agreement

indexjob j (j = 0, 1, …., n) dari kromosom ke-i (i = 0, 1, …., pop_size), dan 1

merupakan nilai fungsi tujuan pertama yaitu rata-rata dari agreement index

kromosom ke-i. Prosedur evaluasi fungsi z1 dapat dilihat pada Gambar 4.11.

Gambar 4.11 Prosedur untuk Evaluasi z1

Misalkan merupakan nilai fungsi tujuan kedua yaitu minimal dari

agreement index kromosom ke-i. Prosedur untuk menentukan nilai fungsi tujuan

kedua dapat dilihat pada Gambar 4.12.

Gambar 4.12 Prosedur untuk Evaluasi z2

Prosedur untuk Evaluasi z2

begin

for i=0 to i<pop_size do

for j=0 to j<n do

𝑧 𝑖=min( agreementIndexij ); end

end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 58: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

45

Misalkan completionTimeij menyatakan nilai waktu penyelesaian job j (j =

0, 1, …., n) pada keseluruhan mesin dari kromosom ke-i (i = 0, 1, …., pop_size),

dan merupakan nilai fungsi tujuan ketiga yaitu waktu penyelesaian maksimal

job-job pada kromosom ke-i. Prosedur untuk menentukan nilai fungsi tujuan

ketiga dapat dilihat pada Gambar 4.13.

Gambar 4.13 Prosedur untuk Evaluasi z3

Setelah didapatkan nilai dari ketiga fungsi tujuan untuk masing-masing

kromosom, maka selanjutnya ditentukan nilai fitness setiap kromosom. Misalkan

dan 1 masing-masing menyatakan nilai fungsi tujuan ke-i (i = 0, 1, 2) yang

terendah dan tertingi, degreeMemberkl merupakan derajat kenggotaan fuzzy untuk

fungsi tujuan ke-l (l = 0, 1, 2) pada kromosom ke-k (k = 0, 1, .., pop_size), dan fa

merupakan nilai fitness dari kromosom ke-a (a = 0, 1, .., pop_size). Prosedur

untuk menentukan nilai fitness dapat dilihat pada Gambar 4.14.

Gambar 4.14 Prosedur untuk Menghitung Fitness

Prosedur untuk Evaluasi z3

begin

for i = 0 to i < pop_size do

for j=0 to j<n do 𝑧 𝑖=max(completionTimeij); end

end

end

Prosedur untuk Menghitung Fitness

begin

for i=0 to i<3 do

for j=0 to j< pop_size do 𝑧𝑖 =min (𝑧𝑖𝑗); 𝑧𝑖

1=max (𝑧𝑖𝑗); end

end

for k=0 to k< pop_size do

for l=0 to l<3 do calculate degreeMemberkl ; end

end

for a=0 to a< pop_size do

for b=0 to b<3 do fa = min(degreeMemberab); end

end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 59: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

46

Langkah selanjutnya yaitu operasi genetik untuk memperoleh keturunan

atau anak. Prosedur yang dilakukan untuk melakukan operasi genetik dapat dilihat

pada Gambar 4.15. Misalkan P(t) dan C(t) masing-masing merupakan induk dan

anak pada proses operasi genetik pada generasi ke-t.

Gambar 4.15 Prosedur Operasi Genetik untuk Mendapatkan

Langkah III : Seleksi

Tahapan seleksi merupakan tahapan untuk menyeleksi atau menentukan

calon induk pada proses crossover dan mutasi pada kromosom-kromosom dalam

satu populasi. Seleksi yang digunakan adalah seleksi tournament. Prosedur seleksi

dapat dilihat pada Gambar 4.16.

Misalkan tour menyatakan banyanknya kromosom random yang akan

diturnamenkan, rij (i = 0, 1, .., pop_size dan j = 0, 1, .., tour) merupakan angka

random yang membangkitkan kromosom ke-rij untuk diturnamenkan, adalah

nilai fitness dari kromosom ke-ril (l = 0, 1, .., tour), candidatei adalah calon induk

ke-i , dan merupakan kromosom ke-ai atau kromosom terpilih.

Prosedur Operasi Genetik P(t) untuk Mendapatkan C(t) begin

seleksi turnamen(); partial schedule exchange crossover(); swap mutation ();

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 60: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

47

Gambar 4.16 Prosedur untuk Seleksi Turnamen

Proses tournament diatas dilakukan sebanyak dua kali untuk memperoleh

calon induk pada proses crossover dan mutasi. Setelah proses tersebut selesai

maka langkah selanjutnya yang dilakukan yaitu seleksi induk untuk proses

crossover dan mutasi.

1. Seleksi Crossover

Tahapan ini dilakukan untuk mendapatkan induk yang akan di crossover

dari calon induk yang telah didapat dari hasil seleksi. Proses ini dilakukan dengan

cara mengenerate bilangan random dengan interval [0,1] yang dinyatakan dengan

rc dan c = 1, 2, …, pop_size. Pemilihan induk yang akan di crossover harus

memenuhi ketentuan sebagai berikut :

Jika rc < pc, maka kromosom ke-c tersebut akan terpilih menjadi induk yang

akan mengalami crossover. Prosedur untuk seleksi crossover dapat dilihat pada

Gambar 4.17. Misalkan rc adalah bilangan random ke-c, Pc adalah probabilitas

crossover, dan vc adalah kromosom ke-c.

Prosedur untuk Seleksi Turnamen

begin

maks = (0: pop_size); a = (0: pop_size); for i=0 to i< pop_size do

for j=0 to j< tour do

rij = random (pop_size-1); end

for l=0 to l < tour do

if (maksl < 𝑓𝑟𝑖𝑙)then

maksl = 𝑓𝑟𝑖𝑙; ai = rij ;

end

candidatei = 𝑣𝑎𝑖; end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 61: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

48

Gambar 4.17 Prosedur untuk Seleksi Crossover

2. Seleksi Mutasi

Seleksi induk mutasi dilakukan seperti pada seleksi crossover. Misalkan

bilangan random yang digenerate dinyatakan dengan rq dan q = 1, 2, …, pop_size.

Pemilihan induk yang akan di mutasi harus memenuhi ketentuan sebagai berikut :

Jika rq < pm, maka kromosom ke-q tersebut akan terpilih menjadi induk yang

akan mengalami mutasi. Prosedur untuk seleksi mutasidapat dilihat pada Gambar

4.18. Misal rq adalah random ke-q, Pm adalah probabilitas mutasi, dan vq adalah

kromosom ke-q.

Gambar 4.18 Prosedur untuk Seleksi Mutasi

Dari proses diatas telah diperoleh induk yang akan mengalami crossover

dan langkah selanjutnya yang dilakukan yaitu mengcrossover induk tersebut.

Prosedur untuk Seleksi Crossover

begin

c ← 0; crossover ← 0; while (c<pop_size) do rc random [0,1];

if (rc<Pc) then

pilih vc sebagai induk crossover; crossover ← crossover + 1;

end c ← c + 1; end

end

Prosedur untuk Seleksi Mutasi

begin

q ← 0; mutation ← 0; while (q < pop_size) do

rq random [0,1]; if (rq<Pm) then

pilih vq sebagai induk mutation; mutation ← mutation + 1;

end q ← q + 1; end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 62: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

49

Langkah IV : Crossover

Setelah diperoleh induk yang akan di crossover, proses selanjutnya yang

dilakukan adalah mengcrossover induk-induk tersebut menggunakan partial

schedule exchange crossover. Jika dari seleksi crossover dihasilkan induk

crossover yang jumlahnya gasal, maka induk pada urutan terakhir dibuang

sehingga jumlah induk crossover menjadi genap. Selanjutnya induk tersebut akan

mengalami crossover dengan cara mengambil dua induk yang akan dicrossover

untuk menghasilkan dua anak. Proses tersebut dilakukan sampai semua induk

mengalami crossover.

Jika pada proses seleksi crossover tidak diperoleh induk crossover maka

proses crossover tidak dilakukan. Prosedur crossover menggunakan partial

schedule exchange crossover dapat dilihat pada Gambar 4.19.

Gambar 4.19 Prosedur untuk Partial Schedule Exchange Crossover

Prosedur untuk menentukan partial schedule dari induk ke-0 dapat dilihat

pada Gambar 4.20. Misalkan genes menyatakan jumlah gen pada satu kromosom,

pos1 adalah posisi gen yang dibangkitkan secara acak, n1 adalah banyaknya

partial schedule 0, parentC0j merupakan gen ke-j dari induk crossover ke-0, dan

partial0ii merupakan partial schedule 0 ke-ii.

Prosedur untuk Partial Schedule Exchange Crossover

begin

menentukan partial schedule dari parent 0(); menentukan partial schedule dari parent1(); menentukan exceeded dan missed genes (); menentukan offspring ();

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 63: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

50

Gambar 4.20 Prosedur untuk Menetukan Partial Schedule dari Parent 0

Sedangkan prosedur untuk menentukan partial schedule dari induk ke-1

dapat dilihat pada Gambar 4.21. Misalkan genes menyatakan jumlah gen pada

satu kromosom, pos1 adalah posisi gen yang diperoleh pada induk crossover

pertama, pos2 adalah posisi gen yang bersesuaian dengan pos1, 2 adalah

banyaknya partial schedule 1, parentC1i merupakan gen ke-i dari induk

crossover ke-1, dan partial1jj merupakan partial schedule 1 ke-jj.

Gambar 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1

Prosedur untuk Menetukan Partial Schedule dari Parent 0

begin

n1 ← 0; pos1 = random (genes-1); for j ← (pos1 + 1) to j < genes do n1++;

if (𝑝𝑎𝑟𝑒𝑛𝑡𝐶0𝑗 = 𝑝𝑎𝑟𝑒𝑛𝑡𝐶0𝑝𝑜𝑠1) then break

end

end ii ← 0; for k ← pos1 to k ≤ (pos1 + n1) do

partial0ii = parentC0k; ii ← ii + 1;

end

end

Prosedur untuk Menetukan Partial Schedule dari Parent 1

begin

for i ← 0 to i < genes do

if(𝑝𝑎𝑟𝑒𝑛𝑡𝐶1𝑖 = 𝑝𝑎𝑟𝑒𝑛𝑡𝐶0𝑝𝑜𝑠1) then

pos2 = i; break end

end

n2 ← 0; for j ←pos2 to j < genes do n2++;

if(𝑝𝑎𝑟𝑒𝑛𝑡𝐶1𝑗 = 𝑝𝑎𝑟𝑒𝑛𝑡𝐶1𝑝𝑜𝑠 ) then

break

end

end

jj ← 0; for k ← pos2 to k ≤(pos2 + n2) do

partial1jj = parentC1k; jj ← jj + 1;

end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 64: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

51

Setelah diperoleh masing-masing partial schedule, maka langkah

selanjutnya adalah menukarkan partial schedule1 ke calon anak ke-0 dan partial

schedule0 ke calon anak ke-1 dan menentukan gen kurang dan berlebih pada

masing-masing calon anak. Prosedur untuk menentukan gen kurang dan lebih

dapat dilihat pada Gambar 4.22. Misalkan ii dan jj merupakan jumlah partial

schedule 0 dan jumlah partial schedule 1, partial0i dan partial1j merupakan

partial schedule 0 ke-i dan partial schedule 1 ke-j, missed0i dan missed1i

merupakan gen kurang ke-i pada calon anak 0 dan calon anak 1, dan exceed0i dan

exceed1i merupakan gen lebih ke-i pada calon anak 0 dan calon anak 1.

Gambar 4.22 Prosedur untuk Menentukan Exceeded dan Missed Genes

Prosedur untuk Menentukan Exceeded dan Missed Genes

begin

for i ← 0 to i < 𝑖𝑖 do

for j ← 0 to j < 𝑗𝑗 do

if (partial0i = partial1j) then

partial0i = partial1j = -1; break

end

end

n3= 0; n4 = 0; for k ← 0 to k < 𝑖𝑖 do

if (partial0k ≠ -1) then n3++; end

for l ← 0 to l < 𝑖𝑖 do

if (partial1l ≠ -1) then n4++; end

i2 = 0; if (n3!=0) then

for j ← 0 to j < 𝑖𝑖 do

if (partial0j ≠ -1) then missed0i2 = exceed1i2 = partial0j ; i2++; end

i3 = 0; if (n3!=0) then

for k ← 0 to k < 𝑗𝑗 do

if (partial1k ≠ -1) then missed1i3 = exceed0i3 = partial1k ; i3++; end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 65: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

52

Langkah selanjutnya yaitu membentuk offspring crossover. Prosedur

pembentukan offspring dapat dilihat pada Gambar 4.23. Misalkan offspringC0 dan

offspringC1 merupakan anak hasil crossover ke-0 dan anak hasil crossover ke-1.

Gambar 4.23 Prosedur untuk Menentukan Offspring

Setelah melakukan proses crossover, langkah selanjutnya yang dilakukan

yaitu proses mutasi induk yang telah diperoleh pada proses seleksi mutasi.

Langkah V : Mutasi

Langkah selanjutnya yaitu melakukan proses mutasi pada induk yang

terpilih pada seleksi mutasi. Mutasi merupakan proses perubahan sifat kromosom

secara acak sehingga dihasilkan struktur kromosom yang baru. Jika dari seleksi

mutasi tidak diperoleh induk mutasi maka proses mutasi tidak dilakukan. Prosedur

mutasi menggunakan swap mutation dapat dilihat pada Gambar 4.24.

Misalkan pos1 dan pos2 adalah dua posisi gen yang dibangkitkan secara

acak, mutation adalah banyak kromosom yang akan mengalami mutasi, parentm

merupakan induk yang akan di mutasi, offspringmipos1 dan offspringmipos2 masing-

masing merupakan gen pada posisi pos1 dan pos2 individu atau anak ke-i.

Prosedur untuk Menentukan Offspring begin

for i ← 0 to i < genes do

offspringC0 = parent0i ; offspringC1 = parent1i ;

end

hapus partial schedule 0 dari offspringC0; tambahkan partial schedule 1 ke offspringC0; hapus partial schedule 1 dari offspringC1; tambahkan partial schedule 0 ke offspringC1; hapus exceed gen pada offspringC0dan offspringC1; tambahkan missed gen pada offspringC0dan offspringC1;

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 66: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

53

Gambar 4.24 Prosedur untuk Swap Mutation

Setelah individu baru hasil proses crossover dan mutasi diperoleh, maka

dibentuk populasi baru yang akan diproses pada iterasi selanjuntnya.

Langkah VI : Pembentukan Populasi Baru

Untuk membentuk populasi baru, langkah awalnya yaitu mengumpulkan

populasi awal, anak hasil crossover dan anak hasil mutasi. Kemudian kromosom

tersebut diurutkan sesuai fitnessnya. Kromosom yang terbaik dipilih sebanyak

pop_size untuk membentuk populasi baru. Sedangkan kromosom yang tidak

terpilih akan dikeluarkan dari populasi. Prosedur untuk membentuk populasi baru

dapat dilihat dalam Gambar 4.25.

Gambar 4.25 Prosedur untuk Membentuk Populasi Baru

Prosedur untuk Swap Mutation

begin

i ← 0; pos1 = random (genes-1); pos2 = random (genes-1); while (pos1= pos2) do pos2 = random (genes-1); end

offspringm ← parentm; while (i<mutation ) do

temp = offspringmipos1; offspringmipos1 = offspringmipos2; offspringmipos2 = temp; i ← i + 1;

end end

Prosedur untuk Membentuk Populasi Baru begin

menggabungkan kromosom; mengurutkan kromosom; mengambil kromosom terbaik sebanyak pop_size;

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 67: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

54

Dalam pembentukan populasi baru, langkah pertama yang dilakukan yaitu

menggabungkan individu atau kromosom awal dan anak hasil crossover dan

mutasi. Misalkan sumOffS merupakan jumlah offspring hasil crossover dan

mutasi, sumChrom merupakan jumlah kromosom dari populasi awal dan

offspring, mutation dan crossover merupakan banyanknya offspring hasil

crossover dan mutasi, offspringci dan offspringmj masing-masing menyatakan

offspring hasil crossover ke-i dan mutasi ke-j, chromk merupakan kromosom ke-k

dari populasi awal dan nChromk merupakan kromosom ke-k dari populasi

gabungan. Prosedur penggabungan populasi awal dengan offspring hasil

crossover dan mutasi dapat dilihat pada Gambar 4.26.

Gambar 4.26 Prosedur untuk Menggabungkan Kromosom

Langkah kedua yang dilakukan yaitu mengurutkan seluruh kromosom

gabungan berdasarkan nilai fitness masing-masing kromosom. Prosedur

pengurutan kromosom dapat dilihat pada Gambar 4.27. Misalkan fitnessi dan

fitnessj adalah nilai fitness untuk kromosom ke-i dan ke-j.

Prosedur untuk Menggabungkan Kromosom

begin

j ← 0;k ← 0;l ← 0; sumOffS ←mutation + crossover; sumChrom ← pop_size + sumOffS; for i ← 0 to i <sumOffS do

if (i<crossover) then sumO = offspringci; else sumOi = offspringmj ;

j ← j + 1; end

end

for k ← 0 to k < sumChrom do

if (k<pop_size) then nChromk = chromk; else nChromk = sumOl;

l ← l + 1; end

end end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 68: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

55

Gambar 4.27 Prosedur untuk Mengurutkan Kromosom

Setelah diurutkan, langkah terakhir yaitu kromosom-kromosom gabungan

tersebut dipilih yang terbaik sebanyak pop_size untuk membentuk populasi baru.

Prosedur pemilihan kromosom untuk populasi baru dapat dilihat pada Gambar

4.28. Misalkan newChromi adalah kromosom ke-i pada populasi baru.

Gambar 4.28 Prosedur untuk Mengambil Kromosom Terbaik

Setelah diperoleh individu pada populasi baru, maka selanjutnya populasi

baru tersebut akan diuji.

Prosedur untuk Mengurutkan Kromosom begin

for i← 0 to i <(sumChrom-1) do for j ←i + 1 to j < sumChrom do

if ( fitnessi < fitnessj) do

temp = fitnessi; fitnessi = fitnessj; fitnessj = temp; temp = nChromi; nChromi = nChromj; nChromj = temp;

end

end

end

Prosedur untuk Mengambil Kromosom Terbaik begin

for i← 0 to i <pop_size do newChromi = nChromi ;

end

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 69: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

56

Langkah VII : Menguji Populasi Baru

Pada langkah ini dilakukan proses pengujian untuk menguji populasi baru

dengan kriteria yang telah ditentukan yaitu max_gen. Jika kriteria tersebut

dipenuhi, maka proses iterasi berhenti dan diperoleh solusi terbaik dari populasi

terakhir tersebut. Sebaliknya, jika tidak dipenuhi, maka kembali ke Langkah III,

dan populasi baru pada Langkah VI akan dijadikan populasi awal pada generasi

selanjutnya. Prosedur pengujian dapat dilihat pada Gambar 4.29.

Gambar 4.29 Prosedur untuk Tes Pemberhentian Iterasi

Kromosom terbaik yang diperoleh pada generasi terakhir merupakan solusi

dari permasalahan, dan proses algoritma berhenti.

4.2 Data

Data yang digunakan diambil dari Sakawa (2002). Data yang digunakan

terdiri dari tiga permasalahan dan ditunjukkan pada Tabel 4.1.

Tabel 4.1 Data Permasalahan

No. Nama Permasalahan (Job x Mesin)

1. Problem 1 FMOJSSP (6 x 6) 2. Problem 2 FMOJSSP (6 x 6) 3. Problem 3 FMOJSSP (6 x 6)

Prosedur untuk Tes Pemberhentian Iterasi begin

t ← t + 1; if (t < max_gen ) then ulangi langkah seleksi; else berhenti dan diperoleh individu terbaik;

end

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 70: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

57

Data urutan operasi mesin pada masing-masing job, waktu proses fuzzy

(Fuzzy Processing Time) dan waktu duedate fuzzy (Fuzzy Due Date) secara

lengkap dapat dilihat pada Lampiran 2.

Berikut penjelasan mengenai data yang ditunjukkan pada Lampiran 2. Data

pertama menyatakan bahwa job 0 pada operasi ke-0 diproses pada mesin 3 dengan

waktu proses fuzzy yaitu (9, 13, 17) satuan waktu, kemudian job 0 pada operasi

ke-1 diproses pada mesin 2 dengan waktu proses fuzzy yaitu (6, 9, 12) satuan

waktu, dan seterusnya. Untuk job 1, job 2, job 3, job 4dan job 5 sesuai dengan

penjelasan pada job 0.

4.3 Penyelesaian Manual terhadap Contoh Kasus Job Shop Scheduling

Problem 6x6

Pada contoh kasus ini, terdapat 6 job yang akan dikerjakan pada 6 mesin.

Masing-masing job akan diproses pada tiap mesin sebanyak satu kali dan tiap job

memiliki urutan proses mesin masing-masing. Urutan operasi mesin, waktu proses

dan waktu duedate tiap-tiap job dapat dilihat pada Lampiran 2.

Penyelesaian

Tahapan awal penyelesaian masalah tersebut adalah menentukan parameter-

parameter yang akan digunakan untuk proses selanjutnya. Parameter-parameter

yang digunakan antara lain:

pop_size = 10

degree of similarity = 0,9

tour = 2

= 0,6

= 0,1

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 71: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

58

Generasi ke-0

Langkah I : Generate Populasi Awal

Proses generate populasi awal dimulai dengan melakukan generate

kromosom yaitu membangkitkan gen-gen yang berupa kode job secara random

sejumlah n × m dimana n adalah banyaknya job dan m adalah banyaknya mesin.

Pada kasus ini terdapat 6 job dan 6 mesin, maka dalam satu kromosom akan

dibangkitan 36 gen. Proses pembangkitan kromosom dilakukan berdasarkan

pengecekan degree of similarity masing-masing kromosom dan dilakukan

sebanyak pop_size. Misalkan kromosom pertama yang dibangkitkan adalah :

Kode Job 0 0 2 0 5 1 3 2 4 4 5 3 1 1 4 3 0 4 2 5 5 5 1 1 2 4 5 1 3 0 3 0 4 3 2 2

Dari kode job yang dihasilkan tersebut ditentukan operasi untuk masing-

masing job. Untuk kromosom diatas urutan operasi masing-masing job adalah

sebagai berikut :

J 0 0 2 0 5 1 3 2 4 4 5 3 1 1 4 3 0 4 2 5 5 5 1 1 2 4 5 1 3 0 3 0 4 3 2 2

O 0 1 0 2 0 0 0 1 0 1 1 1 1 2 2 2 3 3 2 2 3 4 3 4 3 4 5 5 3 4 4 5 5 5 4 5

Penjelasan untuk hasil diatas yaitu :

Gen ke-0 yaitu job 0 merupakan operasi ke-0 karena urutan pertama pada job 0.

Gen ke-1 yaitu job 0 merupakan operasi ke-1 karena urutan kedua pada job 0.

Gen ke-3 yaitu job 0 merupakan operasi ke-2 karena urutan ketiga pada job 0.

Gen ke-16 yaitu job 0 merupakan operasi ke-3 karena urutan keempat pada job 0.

Gen ke-29 yaitu job 0 merupakan operasi ke-4 karena urutan kelima pada job 0.

Gen ke-31 yaitu job 0 merupakan operasi ke-5 karena urutan keenam pada job 0.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 72: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

59

Untuk operasi job 1, job 2, job 3, job 4, dan job 5 digunakan cara yang

sama dengan job 0.

Berdasarkan job (J) dan operasi (O) maka dapat ditentukan urutan mesin

(M) berdasarkan data yang diberikan sesuai Lampiran 2. Sebagai contoh pada

kromosom pertama yang dibangkitkan untuk kode J = 0 dan O = 0, pada persoalan

tersebut didapatkan job 0 operasi ke-0 dilakukan pada mesin 3 sehingga diperoleh

indeks JOM = 003, yaitu J = 0, O = 0 dan M = 3. Untuk gen yang lain dilakukan

dengan cara yang sama, sehingga diperoleh :

J 0 0 2 0 5 1 3 2 4 4 5 3 1 1 4 3 0 4 2 5 5 5 1 1 2 4 5 1 3 0 3 0 4 3 2 2

O 0 1 0 2 0 0 0 1 0 1 1 1 1 2 2 2 3 3 2 2 3 4 3 4 3 4 5 5 3 4 4 5 5 5 4 5

M 3 2 4 0 1 3 5 3 2 4 3 2 1 4 5 0 4 1 2 5 2 4 2 0 0 0 0 5 3 1 1 5 3 4 1 5

Setelah didapatkan indeks JOM, maka selanjutnya adalah menghitung

waktu penyelesaian setiap job dan makespan pada kromosom tersebut dengan

membentuk Gantt Chart yang dapat dilihat pada Lampiran 3.

Penjelasan mengenai Lampiran 3 yaitu 003 merupakan indeks JOM untuk

job 0 yang dijadwalkan pada awal proses dimesin 3, setelah proses 003 selesai

maka 012 dijadwalkan dimesin 2, setelah proses 012 selesai maka 020

dijadwalkan dimesin 0, 103 dijadwalkan di mesin 3 setelah indeks 003 dan

berlanjut dengan cara yang sama untuk indeks lainnya sesuai dengan urutan

indeks JOM yang telah didapat sebelumnya. Dari pembentukan Gantt Chart

diperoleh nilai fuzzy waktu penyelesaian maksimal keseluruhan job yaitu (73,

108,138) satuan waktu yang berarti waktu penyelesaian paling cepat 73 satuan

waktu, waktu penyelesaian normal 108 satuan waktu dan waktu penyelesaian

paling lambat 138 satuan waktu.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 73: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

60

Setelah pembentukan Gantt Chart kromosom yang telah dibangkitkan

selanjutnya dilakukan pengaktifan schedule. Untuk pengaktifan schedule

kromosom pertama dapat dilihat pada Gantt Chart bahwa pada mesin 2, delay

time dari 012 adalah (9, 13, 17), sedangkan waktu proses untuk 402 adalah (8, 12,

13) sehingga 402 dapat disisipkan di depan 012 yang mengakibatkan 312 bergeser

tepat setelah 012 dan 414 bergeser kedepan dengan waktu starting sama dengan

waktu selesai 402. Untuk perhitungan delay time dan penggeseran job-job yang

lain dilakukan dengan cara yang sama. Hasil Gant Chart kromosom 0 yang telah

diaktifkan dapat dilihat pada Lampiran 4. Dan diperoleh kode job kromosom ke-

0 menjadi sebagai berikut :

0 4 0 2 0 5 1 3 2 4 5 3 1 1 4 3 0 4 2 5 1 5 5 1 2 4 5 1 3 0 3 0 4 3 2 2

Karena jumlah kromosom awal yang telah dibangkitkan adalah satu maka

dibangkitkan kromosom yang berikutnya. Misalkan pembangkitan kromosom

kedua menghasilkan kode job :

2 5 1 4 2 3 1 0 2 4 5 4 5 5 1 5 3 3 1 2 5 4 3 0 2 1 1 0 3 0 3 4 0 0 4 2

Seperti kromosom yang pertama dilakukan pembentukan indeks JOM pada

kromosom yang kedua ini dan dilakukan pengaktifan schedule sehingga diperoleh

kode hasil pengaktifan :

2 5 1 4 2 3 1 0 2 4 5 4 5 3 1 0 5 1 5 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

Langkah selanjutnya yang dilakukan yaitu mengecek dearajat kesamaan

antara kromosom-kromosom yang telah dibangkitkan. Untuk pengecekan derajat

kesamaan kromosom pertama dan kedua, kromosom-kromosom tersebut dirubah

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 74: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

61

kedalam tabel mesin dan urutan job berdasarkan tabel JOM yang telah diperoleh

sebelumnya. Sebagai contoh untuk kromosom yang pertama yaitu :

Mesin Job

M0 0 3 1 2 4 5

M1 5 1 4 0 3 2

M2 4 0 3 2 1 5

M3 0 1 2 5 3 4

M4 2 4 1 0 5 3

M5 3 4 5 1 0 2

Baris pertama pada tabel diatas menunjukkan urutan job yang dikerjakan

pada mesin pertama atau mesin ke-0 yaitu job pertama yang dikerjakan adalah job

ke-0, kemudian job ke-3, job ke-1, job ke-2, job ke-4, dan job terakhir yaitu job

ke-5. Untuk mesin yang lain dilakukan dengan cara yang sama. Setelah diperoleh

tabel mesin untuk masing-masing kromosom maka dilakukan perhitungan derajat

kesamaan sebagai berikut :

Kromosom 0 Kromosom 1 M0 0 3 1 2 4 5 1+ 4+ 2+ 3+ 4+ 2= 16 M0 3 2 5 1 0 4

M1 5 1 4 0 3 2 5+ 5+ 5+ 3+ 3+ 3= 24 M1 5 1 4 2 3 0

M2 4 0 3 2 1 5 5+ 2+ 3+ 3+ 4+ 5= 22 M2 4 2 3 1 0 5

M3 0 1 2 5 3 4 3+ 4+ 4+ 5+ 5+ 5= 26 M3 1 2 0 5 3 4

M4 2 4 1 0 5 3 5+ 5+ 5+ 3+ 4+ 4= 26 M4 2 4 1 5 3 0

M5 3 4 5 1 0 2 5+ 5+ 5+ 3+ 4+ 4= 26 M5 3 4 5 2 1 0

16 + 24 + 22 + 26 + 26 + 26

180=

140

180= 0,77778

Gambar 4.30 Perhitungan Degree of Similarity Kromosom 0 dan Kromosom 1

Penjelasan tentang Gambar 4.30 yaitu untuk mesin ke-0, pada kromosom

pertama job ke-0 mendahului job ke-3, job ke-1, job ke-2, job ke-4 dan job ke-5

namun tidak didahului oleh job manapun, sedangkan untuk kromosom kedua job

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 75: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

62

ke-0 hanya mendahului job ke-4, sehingga kesamaan job yang didahului dan

mendahului untuk job ke-0 hanya bernilai 1. Untuk perhitungan job selanjutnya

dan mesin yang lain dilakukan dengan cara yang sama. Dari hasil tersebut

diperoleh hasil 140 untuk keseluruhan mesin dan job pada kromosom pertama dan

kedua. Pada kasus ini jika setiap job memiliki urutan yang sama maka akan

diperoleh nilai 5 untuk setiap job, dankarena banyaknya job 6 dan mesin 6 maka

didapat nilai 5 × 6 × 6 yang menghasilkan nilai 180 untuk kesamaan pada

seluruh job dan mesin. Dari hasil perhitungan kromosom pertama dan kedua

diperoleh degree 140/180 yaitu 0,77778. Kromosom akan diterima apabila

rasionya bernilai kurang dari atau sama dengan degree yang telah ditentukan.

Karena pada kasus ini degree yang digunakan 0,9 maka kromosom kedua

diterima.

Hasil dari generate populasi awal sebanyak pop_size dapat dilihat pada

Tabel 4.2.

Tabel 4.2 Kromosom awal yang dibangkitkan

Kromosom Kode job 0 0 2 0 5 1 3 2 4 4 5 3 1 1 4 3 0 4 2 5 5 5 1 1 2 4 5 1 3 0 3 0 4 3 2 2

1 2 5 1 4 2 3 1 0 2 4 5 4 5 5 1 5 3 3 1 2 5 4 3 0 2 1 1 0 3 0 3 4 0 0 4 2

5 1 3 2 5 0 0 3 1 0 0 2 5 2 5 4 0 2 1 4 1 5 5 3 0 1 4 4 3 4 2 3 1 2 4 3

3 5 3 3 4 1 5 5 5 2 0 4 0 1 2 0 0 4 1 5 1 2 2 2 3 4 3 1 3 0 5 4 1 2 0 4

3 5 2 3 5 5 2 0 2 4 2 0 2 5 1 0 1 4 3 1 4 0 0 5 4 5 3 1 2 0 3 1 1 3 4 4

5 3 1 0 3 0 1 5 3 1 0 3 5 3 4 5 1 1 4 2 2 2 1 0 2 5 4 2 2 4 4 3 5 4 0 0

3 1 1 2 2 1 0 5 5 1 4 4 3 3 4 2 3 3 5 2 4 0 0 2 4 4 2 3 5 5 0 1 0 0 5 1

2 5 1 0 3 4 4 1 2 0 2 5 3 1 4 4 5 5 1 2 4 3 0 3 1 3 0 5 4 5 2 1 0 3 0 2

5 4 3 4 1 0 5 3 0 3 5 2 3 2 1 5 1 3 0 3 0 4 4 0 2 2 2 1 1 4 5 0 2 5 1 4

5 3 3 0 2 2 4 3 0 2 4 1 2 2 4 0 3 3 1 4 5 0 5 4 1 0 2 5 1 5 1 0 1 5 3 4

hasil pengaktifan kromosom diatas dapat dilihat pada Tabel 4.3.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 76: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

63

Tabel 4.3 Kromosom awal yang telah diaktifkan

Kromosom Kode job 0 4 0 2 0 5 1 3 2 4 5 3 1 1 4 3 0 4 2 5 1 5 5 1 2 4 5 1 3 0 3 0 4 3 2 2

1 2 5 1 4 2 3 1 0 2 4 5 4 5 3 1 1 0 5 5 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

5 1 3 2 5 0 3 5 5 1 1 1 0 5 5 0 0 2 2 4 0 2 4 3 0 1 4 2 3 3 4 4 1 2 4 3

3 5 3 3 4 1 5 5 5 2 0 1 1 4 0 2 0 5 0 4 1 2 2 4 2 3 3 1 3 0 5 4 2 1 0 4

3 5 2 3 2 5 5 0 2 4 2 0 2 5 1 0 1 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

5 3 1 0 3 0 1 5 3 2 1 0 3 5 3 4 5 1 1 4 2 2 1 0 2 5 4 2 2 4 4 3 5 4 0 0

3 1 1 2 2 1 0 5 5 4 3 1 4 3 4 2 3 3 5 2 4 0 0 2 4 4 2 3 5 5 0 1 0 0 5 1

2 5 1 0 3 4 4 1 2 3 0 2 5 1 4 4 5 1 5 3 2 4 0 3 1 3 5 0 4 5 2 2 1 0 3 0

5 4 3 2 4 1 0 5 3 0 3 5 3 2 1 1 1 5 3 0 0 3 4 4 0 2 2 2 1 4 5 0 2 5 1 4

5 3 3 0 2 2 4 3 0 2 4 1 2 1 2 4 0 3 3 4 5 1 0 5 1 1 5 5 5 4 0 2 1 0 3 4

sedangkan perhitungan nilai degree dapat dilihat pada Tabel 4.4.

Tabel 4.4 Nilai degree untuk kromosom awal

Kromosom 1 - 0,78 0,64 0,78 0,7 0,8 0,77 0,87 0,84 0,83 1 0,78 - 0,62 0,8 0,77 0,72 0,86 0,87 0,76 0,83 0,64 0,62 - 0,76 0,68 0,71 0,61 0,6 0,69 0,63 0,78 0,8 0,76 - 0,77 0,87 0,79 0,84 0,84 0,83 0,74 0,77 0,68 0,77 - 0,7 0,71 0,75 0,7 0,82 0,8 0,72 0,71 0,87 0,7 - 0,77 0,8 0,87 0,81 0,77 0,86 0,61 0,79 0,71 0,77 - 0,88 0,83 0,8 0,87 0,87 0,6 0,84 0,75 0,8 0,88 - 0,84 0,88 0,84 0,76 0,69 0,84 0,7 0,87 0,83 0,84 - 0,81 0,83 0,83 0,63 0,83 0,82 0,81 0,8 0,88 0,81 -

Karena degree setiap kromosom memenuhi maka populasi awal yang digunakan

sesuai hasil pengaktifan yaitu pada Tabel 4.3. Setelah populasi awal terbentuk,

maka langkah selanjutnya yaitu mengevaluasi masing-masing kromosom.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 77: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

64

Langkah II : Evaluasi

Masing-masing kromosom akan dievaluasi dengan menghitung nilai ketiga

fungsi tujuan yang digunakan yaitu :

z1( ) :

n

iiAI

n 1

1

z2( ) : iniAIAI

,...,2,1min min

z3( ) : iniCC ~max~

,...,2,1max

Dimana adalah kromosom ke-k (k= 0, 1, .., pop_size), n adalah banyak

job, dan C~ i masing-masing adalah Agreement Index dan waktu penyelesaian

(Completion Time) dari job Ji (i = 0, 1, ..., n). Berikut ini adalah proses evaluasi

masing-masing fungsi tujuan :

1. Misalkan gen-gen pada kromosom pertama, pada proses penghitungan

makespan dan pengaktifan telah diperoleh Fuzzy Completion Time untuk

masing-masing job. Hasil yang diperoleh pada kromosom yang pertama dapat

dilihat pada Tabel 4.5.

Tabel 4.5 Fuzzy Completion Time kromosom ke-0

Job Fuzzy Completion Time 0 (57, 78, 101)

1 (48, 67, 86)

2 (58, 81, 105)

3 (55, 75, 92)

4 (56, 80, 103)

5 (54, 77, 100)

Hasil tersebut menunjukkan bahwa untuk job 0 waktu penyelesaian tercepat,

normal dan terlambat masing-masing adalah 57, 78 dan 101, untuk job yang

lain menunjukkan arti yang sama.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 78: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

65

2. Dari hasil fuzzy completion time dan data tentang fuzzy duedate untuk masing-

masing job sesuai dengan Lampiran 2, maka dapat dihitung Agreement Index

(AI) masing-masing job. Misalkan untuk job ke-0 pada kromosom ke-0

perhitungan agreement indexnya adalah :

Fuzzy Completion Time Job ke-0 : (57, 78, 101)

Fuzzy Due DateJob ke-0 : (112, 121)

Gambar 4.31 Grafik Fuzzy Completion Time dan Fuzzy Due Date

Gambar 4.31 menunjukkan daerah Fuzzy Completion Time dan Fuzzy Due

Date dengan C~ merupakan Fuzzy Completion Time dan D~ merupakan Fuzzy

Due Date. Dari nilai fuzzy diatas maka dapat dibentuk fungsi keanggotaan

sebagai berikut :

Fungsi keanggotaan C~ Fungsi keanggotaan D~

1,0

D~

x

C~0,0

0,0 57 78 101 112 121

121;0

121112;9

121112;1

][~

x

xxx

xD

101;0

10178;23

101

7857;21

5757;0

][~

x

xx

xxx

xC

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 79: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

66

Dimana x merupakan bilangan Real yang dipetakan ke fungsi keanggotaan

C~ dan D~ , ][~ xC dan ][~ xD masing-masing merupakan derajat keanggotaan

bilangan real x pada himpunan C~ dan D~ . Selanjutnya yaitu menentukan nilai

luasan daerah DC ~~ yaitu dengan cara :

a. Menentukan titik batas a, b, c untuk wilayah DC ~~ seperti yang

ditunjukkan pada Gambar 4.32

a = 57 b = 78 c = 101

Gambar 4.32 Daerah DC ~~

b. Menghitung area DC ~~ :

area DC ~~

Kemudian dihitung area C~ sebesar :

area C~ 222

144

x

c. Diperoleh nilai AI sebesar :

AI 12222

1,0

x0,0

0,0 57 78 101 112 121

DC ~~

225,115,10

23101

215778

57

101

78

dxxdxx

x x

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 80: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

67

Dengan cara yang sama maka akan diperoleh nilai AI untuk masing-masing

job pada setiap kromosom. Untuk kromosom pertama nilai AI untuk tiap job

dapat dilihat pada Tabel 4.6.

Tabel 4.6 Agreement Index masing-masing job pada kromosom ke-0

Job Agreement Index 0 1

1 1

2 0,002503

3 1

4 0,754693

5 0,01941

3. Dari hasil tersebut dapat dihitung fungsi tujuan pertama dan kedua dari

kromosom ke-0.

z1( 1)

z2( 1)

= min 1; 1; 0,002503; 1; 0,754693; 0,01941 = 0,002503

4. Untuk menghitung fungsi tujuan yang ketiga, digunakan Fuzzy Completion

Time masing-masing job. Fuzzy Completion Time untuk masing-masing job

dinotasikan dengan iC~ (i = 0, 1, ..., n) diranking berdasarkan aturan rangking

fuzzy number sebagai berikut :

Kriteria ranking yang pertama dinotasikan dengan 1K . Misalkan dihitung

nilai ranking untuk job ke-0 pada kromosom ke-0 yaitu :

0.629434)776606,3(61

)01941,0754693,01002503,011(61

611 6

11

i

i

n

ii AIAI

n

ii

ini

AI

AIAI

6,...,2,1

,...,2,1min

min

min

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 81: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

68

5,784

101)78(257)~( 01

CK

Dengan cara yang sama maka akan didapat nilai ranking untuk job ke-1, job

ke-2, job ke-3, job ke-4 dan job ke-5. Hasil ranking Fuzzy Completion Time

untuk kromosom pertama dapat dilihat pada Tabel 4.7.

Tabel 4.7 Nilai Ranking Fuzzy Completion Time pada kromosom ke-0

Job Nilai Ranking 0 78,5

1 67

2 81,25

3 74,25

4 79,75

5 77

Karena dengan menggunakan kriteria ranking yang pertama sudah didapatkan

nilai yang berbeda untuk masing-masing job, maka tidak digunakan kriteria

ranking yang selanjutnya. Dari hasil diatas diperoleh :

z3( 1)

Untuk hasil perhitungan setiap fungsi tujuan keseluruhan kromosom

populasi awal dapat dilihat pada Tabel 4.8.

Tabel 4.8 Nilai Fungsi Tujuan populasi awal

Kromosom z1 z2 z3 0,629434 0,002503 (58, 81, 105)

1 0,732327 0,378788 (81, 112, 141)

0,436059 0 (83, 114, 145)

0,507627 0,000882 (78, 104, 128)

0,656752 0,050256 (69, 98, 124)

0,46476 0 (79, 115, 145)

0,510681 0 (80, 108, 133)

0,672076 0,028571 (65, 91, 118)

)105 81, 58,(~max~6,...,2,1max

ii

CC

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 82: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

69

Kromosom z1 z2 z3 0,464795 0 (69, 98, 121)

0,496585 0,006522 (77, 108, 135)

Setelah diperoleh nilai fungsi tujuan masing-masing kromosom, maka langkah

selanjutnya adalah menghitung nilai fitness masing-masing kromosom yaitu

dengan langkah :

1. Menentukan nilai 0iz dan 1

iz yang masing-masing merupakan nilai terendah

dan tertinggi dari setiap fungsi tujuan. Dan diperoleh hasil :

a. Untuk fungsi tujuan yang pertama (z1)

01z

= min 0,629434; 0,732327; 0,436059; 0,507627; 0,656752; 0,46476;

0,510681; 0,672076; 0,464795; 0,496585 = 0,436059

11z

= ma 0,629434; 0,732327; 0,436059; 0,507627; 0,656752; 0,46476;

0,510681; 0,672076; 0,464795; 0,496585 = 0,732327

b. Untuk fungsi tujuan yang kedua (z2)

02z

= min 0,002503; 0,378788; 0; 0,000882; 0,050256; 0; 0; 0,028571;

0; 0,006522 = 0

12z

= ma 0,002503; 0,378788; 0; 0,000882; 0,050256; 0; 0; 0,028571;

0; 0,006522 = 0,378788

15,...,2,11_,...,2,1minmin zz

isizepopi

15,...,2,11_,...,2,1maxmax zz

isizepopi

25,...,2,12_,...,2,1minmin zz

isizepopi

25,...,2,12_,...,2,1maxmax zz

isizepopi

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 83: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

70

c. Untuk fungsi tujuan yang ketiga (z3), karena hasil yang diperoleh berbentuk

bilangan fuzzy C~ = ( 1, , ) maka yang digunakan sebagai standart

waktu penyelesaian adalah nilai ranking dan diperoleh :

03z

= min 81,5; 111,5; 114; 103,5; 97,25; 113,5; 107,25; 91,25; 96,5; 107

= 81,25

13z

= min 81,5; 111,5; 114; 103,5; 97,25; 113,5; 107,25; 91,25; 96,5; 107

= 114

2. Langkah selanjutnya yaitu menentukan fungsi keanggotaan linear untuk

masing-masing fungsi tujuan yaitu dengan cara :

a. Untuk fungsi tujuan yang pertama (z1), karena memaksimalkan maka :

b. Untuk fungsi tujuan yang kedua (z1), karena memaksimalkan maka :

c. Untuk fungsi tujuan yang ketiga (z1), karena meminimalkan maka :

35,...,2,13_,...,2,1minmin zz

isizepopi

35,...,2,13_,...,2,1maxmax zz

isizepopi

43606,0,0

73233,043606,0,29627,0

43606,073233,0,1

][

1

11

1

11

z

zzz

z

0,0

37879,00,37879,0

37879,0,1

][

2

22

2

22

z

zzz

z

25,81,1

11581,34

115114,0

][

3

33

3

33

z

zz

z

z

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 84: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

71

3. Setelah didapat fungsi keanggotaan untuk masing-masing fungsi tujuan maka

dihitung derajat keanggotaan fungsi tujuan masing-masing kromosom.

Misalkan untuk kromosom ke-0 derajat keanggotaan fungsi tujuannya adalah:

Untuk kromosom yang lain dilakukan dengan perhitungan yang sama. Hasil

derajat keanggotaan untuk kromosom awal dapat dilihat pada Tabel 4.9.

Tabel 4.9 Derajat keanggotaan fungsi Tujuan pada populasi awal

Kromosom ][ 11 z ][ 22 z ][ 33 z 0,6527 0,00661 1

1 1 1 0,07634

0 0 0

0,24157 0,00233 0,32061

0,74491 0,13268 0,51145

0,09688 0 0,01527

0,25187 0 0,20611

0,79663 0,07543 0,69466

0,09699 0 0,53435

0,2043 0,01722 0,21374

4. Setelah didapat derajat keanggotaan tiap fungsi tujuan untuk masing-masing

kromosom, maka selanjutnya ditentukan nilai fitness untuk masing-masing

kromosom yaitu dengan rumus :

)}({min3,2,1 iii

zf

Misalkan untuk kromosom ke-0 akan diperoleh nilai :

f= min 0,6527; 0,00661; 1 = 0,00661

653,029627,0

43606,0629434,0][ 11

z

007,037879,0002503,0][ 22 z

175,32

25,81114][ 33

z

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 85: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

72

Penentuan nilai fitness untuk kromosom lain dilakukan dengan cara yang sama.

Dan hasil nilai untuk masing-masing kromosom dapat dilihat pada Tabel 4.10.

Tabel 4.10 Nilai Fitness Populasi Awal

Kromosom F 0,00661

1 0,07634

0

0,00233

0,13268

0

0

0,07543

0

0,01722

Setelah masing-masing individu dievaluasi dan diperoleh nilai fitnessnya,

maka selanjutnya akan dilakukan proses seleksi untuk memilih induk yang akan

digunakan pada proses crossover dan mutasi.

Langkah III : Seleksi

Proses seleksi dilakukan dengan menggunakan seleksi turnamen. Seleksi ini

dilakukan dengan memilih secara random kromosom sebanyak nilaitur (tour),

kemudian dipilih nilai fitness terbaik. Pada kasus ini nilai tour yang digunakan

adalah 2 artinya kromosom yang akan dibandingkan sebanyak 2, dan dilakukan

sebanyak pop_size yaitu 10.

Langkah yang dilakukan dalam seleksi ini yaitu :

a. Mengambil secara acak kromosom sejumlah nilai tour.

b. Memilih kromosom fitness terbesar sebagai calon induk yang akan mengalami

crossover dan mutasi.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 86: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

73

c. Mengulang proses a. sebanyak ukuran pop_size.

Proses seleksi turnamen ini akan dilakukan sebanyak dua kali untuk

memilih calon induk yang digunakan dalam proses crossover dan mutasi.

1. Seleksi Crossover

Untuk menentukan calon induk crossover dilakukan proses seleksi

turnamen. Misalkan pada random kromosom yang pertama diperoleh kromosom

ke-1 dan kromosom ke-2. Karena nilai f kromosom ke-1 yaitu 0,07634 lebih besar

dari nilai f kromosom ke-2 yaitu 0 maka kromosom yang terpilih sebagai calon

induk crossover adalah kromosom ke-1. Selanjutnya secara random diperoleh

kromosom yang di turnamenkan dan didapat calon induk seperti pada Tabel 4.11.

Tabel 4.11 Calon Induk Crossover

Individu 1 Individu 2 Calon Induk 1 1 1 1 1 1 1 1

Setelah diperoleh calon induk, maka dilakukan random bilangan acak

dengan interval [0,1] untuk menentukan induk crossover. Kromosom yang

berperan sebagai induk crossover adalah kromosom dengan nilai r ≤ Pc, dimana

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 87: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

74

nilai Pc telah ditentukan sebelumnya yaitu 0,6. Hasil dari random bilangan untuk

pemilihan induk crossover dapat dilihat dalam Tabel 4.12.

Tabel 4.12 Induk Crossover

Random ke- Calon Induk Bilangan acak Induk Crossover 0 1 0,039203 1 1 1 0,925276 2 0,608947 3 0,646933 4 0,102769 5 0,687449 6 0,792584 7 1 0,942374 8 0,950996 9 1 0,555158 1

Setelah ditentukan induk crossover, maka selanjutnya dilakukan seleksi

untuk memilih induk mutasi.

2. Seleksi Mutasi

Untuk menentukan calon induk mutasi dilakukan proses seleksi turnamen

seperti pemilihan calon induk crossover. Selanjutnya secara random diperoleh

kromosom yang di turnamenkan dan didapat calon induk mutasi seperti pada

Tabel 4.13.

Tabel 4.13 Calon Induk Mutasi

Individu 1 Individu 2 Calon Induk 1 1

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 88: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

75

Individu 1 Individu 2 Calon Induk

Setelah diperoleh calon induk, maka dilakukan random bilangan acak

dengan interval [0,1] untuk menentukan induk mutasi. Kromosom yang berperan

sebagai induk mutasi adalah kromosom dengan nilai r ≤ Pm (probabilitas mutasi),

dimana nilai Pm telah ditentukan sebelumnya yaitu 0,1. Hasil dari random

bilangan untuk pemilihan induk mutasi dapat dilihat dalam Tabel 4.14.

Tabel 4.14 Induk Mutasi

Random ke- Calon Induk Bilangan acak IndukMutasi 0 1 0,583844 1 0,721572 2 0,819991 3 0,056469 4 0,518785 5 0,202691 6 0,992964 7 0,619268 8 0,614698 9 0,431484

Langkah IV : Crossover

Setelah diperoleh induk crossover, proses selanjutnya yang dilakukan

adalah melakukan partial schedule exchange crossover. Hasil seleksi diatas

menunjukkan bahwa induk yang terpilih adalah 1 , dan 1 . Crossover

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 89: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

76

merupakan persilangan antara dua kromosom, sehingga jika induk crossover

berjumlah ganjil maka induk terakhir akan dihapus, dalam kasus ini induk yang

digunakan hanya 2 induk sehingga crossover hanya terjadi hanya satu kali. Proses

crossover ini akan menghasilkan dua anak. Pada kasus ini 1 akan menjadi parent

1 dan akan menjadi parent 2. Tahapan partial schedule exchange crossover

adalah sebagai berikut :

1. Memilih satu posisi pada parent 1 secara random.

Dari hasil random diperoleh posisi gen ke-13. Job yang ada pada gen ke-13

adalah job ke-3.

1 :

2 5 1 4 2 3 1 0 2 4 5 4 5 3 1 1 0 5 5 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

2. Menentukan job terdekat yang sama dengan job pada posisi terpilih, yaitu job

3, sehingga diperoleh partial schedule 1 sebagai berikut :

1 :

2 5 1 4 2 3 1 0 2 4 5 4 5 3 1 1 0 5 5 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

Partial schedule 1 : 3 1 1 0 5 5 3

3. Partial schedule selanjutnya dari parent 2 tidak diperoleh secara acak, tetapi

harus dimulai dan diakhiri dengan job yang sama dengan job awal dan akhir

pada partial schedule 1, sehingga diperoleh partial schedule 2.

2:

3 5 2 3 2 5 5 0 2 4 2 0 2 5 1 0 1 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

Partial schedule 2 : 3 5 2 3

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 90: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

77

4. Menukar posisi partial schedule 1 kedalam parent 2 dan partial schedule 2

kedalam parent 1

1

2

5. Hasil dari pertukaran partial schedule biasanya akan menyebabkan jumlah gen

yang tidak sesuai, sehingga harus dicari kelebihan dan kekurangan gen pada

masing-masing anak hasil crossover.

1 :

Partial schedule 1: 3 1 1 0 5 5 3 Gen yang kurang 1 1 0 5

2:

Partial schedule 1: 3 1 1 0 5 5 3 Gen yang lebih 1 1 0 5

6. Menghapus kelebihan gen dan menambah kekurangan gen pada masing-

masing anak hasil crossover dengan memperhatikan urutan operasi job pada

parent pembentuk partial schedule.

2 5 1 4 2 3 1 0 2 4 5 4 5 3 5 2 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

3 1 1 0 5 5 3 2 5 5 0 2 4 2 0 2 5 1 0 1 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

Partial schedule 2: 3 5 2 3 Gen yang lebih 2

Partial schedule 2: 3 5 2 3 Gen yang kurang 2

Partial Schedule 2

Partial Schedule 1

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 91: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

78

a. Menghapus gen yang berlebih pada calon anak

1:

2

b. Menambahkan gen yang kurang pada calon anak

1:

2

Dari hasil proses diatas diperoleh offspring hasil crossover yaitu :

1:

2:

Setelah diperoleh anak atau offspring hasil crossover, maka offspring

tersebut dibentuk kedalam indeks JOM yang kemudian dihitung waktu

penyelesaiannya dan dilakukan pengaktifkan, langkah yang dilakukan sama

seperti pada populasi awal di Langkah I. Hasil pengaktifan kromosom offspring

crossover dapat dilihat pada Tabel 4.15.

2 5 1 4 2 3 1 0 2 4 5 4 5 3 5 2 3 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

3 1 1 0 5 5 3 2 5 5 0 2 4 2 0 2 5 1 0 1 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

5 1 4 2 3 1 0 2 4 5 4 5 3 5 2 3 1 1 0 5 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

3 1 1 0 5 5 3 2 2 5 2 4 2 0 2 5 0 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

5 1 4 2 3 1 0 2 4 5 4 5 3 5 2 3 1 1 0 5 2 5 4 3 2 1 2 1 0 3 3 0 4 0 0 4

3 1 1 0 5 5 3 2 2 5 2 4 2 0 2 5 0 4 3 1 2 4 0 4 0 5 5 3 1 0 3 1 1 3 4 4

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 92: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

79

Tabel 4.15 Offspring Crossover yang telah diaktifkan

Kromosom Kode job 1 5 1 4 2 3 1 0 2 4 5 4 5 3 2 0 5 3 1 5 1 2 4 4 5 3 2 1 2 1 0 3 3 0 0 0 4

11 3 1 0 5 1 5 3 2 2 5 4 2 3 2 0 2 5 0 1 4 2 4 5 0 3 3 4 0 5 1 1 1 0 3 4 4

Setelah didapatkan kromosom dengan schedule aktif maka dihitung nilai

ketiga fungsi tujuan dari masing-masing offspring dengan cara yang sama seperti

pada Langkah II. Hasil ketiga nilai fungsi objektif untuk offspring crossover dapat

dilihat pada Tabel 4.16.

Tabel 4.16 Nilai Fungsi Tujuan Offspring Hasil Crossover

Kromosom z1 z2 z3 1 0,88480 0,66667 (81, 112, 141)

11 0,62379 0,26997 (69, 98, 125)

Langkah V : Mutasi

Setelah diperoleh induk mutasi, proses selanjutnya yang dilakukan adalah

melakukan swap mutation. Hasil seleksi diatas menunjukkan bahwa induk yang

terpilih hanya satu kromosom yaitu . Sehingga mutasi yang terjadi hanya satu

kali. Proses mutasi ini akan menghasilkan satu anak. Tahapan swap mutation

adalah sebagai berikut :

a. Menentukan dua posisi gen parent secara random. Dari hasil random 36 posisi

gen untuk kasus ini hasil posisi acak yang diperoleh adalah gen ke-13 dan gen

ke-20.

3 5 3 3 4 1 5 5 5 2 0 1 1 4 0 2 0 5 0 4 1 2 2 4 2 3 3 1 3 0 5 4 2 1 0 4

Gen ke-13 Gen ke-20

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 93: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

80

b. Membentuk anak hasil mutasi dengan menukar gen pada kedua posisi acak

yang diperoleh. Dari hasil proses diatas maka offspring yang diperoleh adalah :

Sama seperti offspring hasil crossover, maka offspring mutasi dibentuk

kedalam indeks JOM yang kemudian dihitung waktu penyelesaiannya dan

dilakukan pengaktifkan, langkah yang dilakukan sama seperti pada populasi awal

di Langkah I. Hasil pengaktifan kromosom offspring dapat dilihat pada Tabel

4.17.

Tabel 4.17 Offspring Mutasi yang telah diaktifkan

Kromosom Kode job 1 3 5 3 3 4 1 5 5 5 2 0 1 1 0 1 2 5 5 0 4 0 4 2 2 4 2 3 3 1 3 0 4 2 1 0 4

Setelah didapatkan kromosom dengan schedule aktif maka dihitung nilai

ketiga fungsi tujuan dari masing-masing offspring dengan cara yang sama seperti

pada Langkah II. Hasil ketiga nilai fungsi objektif untuk offspring mutasi dapat

dilihat pada Tabel 4.18.

Tabel 4.18 Nilai Fungsi Tujuan Offspring Hasil Mutasi

Kromosom z1 z2 z3 1 0,66645 0,06803 (78, 108, 133)

Langkah VI : Pembentukan populasi baru

Setelah dilakukan proses genetik langkah selanjutnya yaitu membentuk

populasi baru yang akan digunakan pada generasi selanjutnya. Pembentukan

3 5 3 3 4 1 5 5 5 2 0 1 1 1 0 2 0 5 0 4 4 2 2 4 2 3 3 1 3 0 5 4 2 1 0 4

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 94: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

81

populasi baru dipilih dari kromosom pada populasi awal dan kromosom anakan.

Tahapan pembentukan populasi baru dilakukan dengan cara :

1. Menghitung nilai fitness untuk masing-masing kromosom awal dan kromosom

offspring. Perhitungan nilai fitness ini dilakukan seperti pada tahap Evaluasi di

Langkah II. Dalam perhitungan fitness dari kromosom awal dan offspring

diperoleh nilai derajat keanggotaan seperti pada Tabel 4.19.

Tabel 4.19 Derajat Keanggotaan Fungsi Tujuan Populasi Awal dan Offspring

Kromosom ][ 11 z ][ 22 z ][ 33 z 0,43093 0,00375 1

1 0,66022 0,56818 0,07634

0 0 0

0,15949 0,00132 0,32061

0,4918 0,07538 0,51145

0,06396 0 0,01527

0,16629 0 0,20611

0,52595 0,04286 0,69466

0,06404 0 0,53435

0,13488 0,00978 0,21374

1 1 1 0,07634

11 0,41835 0,40496 0,50382

1 0,51342 0,10204 0,22137

Setelah didapatkan derajat keanggotaan tersebut maka dapat dihitung nilai

fitness untuk kromosom awal dan offspring. Nilai fitness dari kromosom awal

dan offspring dapat dilihat pada Tabel 4.20.

Tabel 4.20 Nilai Fitness Populasi Awal dan Offspring

Kromosom f 0,00375

1 0,07634

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 95: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

82

Kromosom f 0

0,00132

0,07538

0

0

0,04286

0

0,00978

1 0,07634

11 0,40496

1 0,10204

2. Setelah diperoleh nilai fitness untuk setiap kromosom, selanjutnya kromosom

diurutkan sesuai fitnessnya. Hasil pengurutan kromosom dapat dilihat pada

Tabel 4.21.

Tabel 4.21 Hasil Pengurutan Kromosom Gabungan

Kromosom f 11 0,40496

1 0,10204

1 0,07634

1 0,07634

0,07538

0,04286

0,00978

0,00375

0,00132

0

0

0

0

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 96: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

83

3. Langkah selanjutnya yaitu kromosom yang terbaik berdasarkan pengurutan

dipilih sebanyak pop_size untuk membentuk populasi baru. Sedangkan

kromosom yang tidak terpilih akan dikeluarkan dari populasi. Hasil populasi

baru pada generasi pertama dapat dilihat pada Tabel 4.22.

Tabel 4.22 Populasi Baru

Kromosom f 11 0,40496

1 0,10204

1 0,07634

1 0,07634

0,07538

0,04286

0,00978

0,00375

0,00132

0

Pada generasi pertama diperoleh kromosom terbaik yaitu kromosom 11

dengan nilai fitness 0,40496 dengan urutan job sebagai berikut :

Gen 3 1 0 5 1 5 3 2 2 5 4 2 3 2 0 2 5 0 1 4 2 4 5 0 3 3 4 0 5 1 1 1 0 3 4 4

Bentuk urutan JOM kromosom 11 adalah sebagai berikut :

J 3 1 0 5 1 5 3 2 2 5 4 2 3 2 0 2 5 0 1 4 2 4 5 0 3 3 4 0 5 1 1 1 0 3 4 4

O 0 0 0 0 1 1 1 0 1 2 0 2 2 3 1 4 3 2 2 1 5 2 4 3 4 3 4 5 3 3 5 5 4 5 4 5

M 5 3 3 1 1 3 2 4 3 5 2 2 0 0 2 1 2 0 4 4 5 5 4 4 1 1 1 0 3 2 5 5 0 4 0 3 Kromosom tersebut memiliki hasil rata-rata dan minimal agreement index

0,62379 dan 0,26997 yang menunjukkan rata-rata dan minimal kesesuaian

waktu penyelesaian dengan duedate (deadline) sebesar 62,379% dan 26,997%

serta makespan sebesar (69, 98, 125) yang secara berurutan menunjukkan waktu

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 97: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

84

penyelesaian pekerjaan tercepat, normal dan terlambat. Gantt Chart untuk solusi

yang diperoleh dapat dilihat pada Lampiran 5.

4.4 Implementasi Program pada Kasus JSSP

Program Fuzzy Multi-Objective Job Shop Scheduling Problem dengan

Genetic Algorithm yang telah dibuat dapat diterapkan dalam problem dan hasil

yang didapat adalah sebagai berikut :

4.4.1 Data Problem 1 FMOJSSP 6x6

Problem 1 FMOJSSP 6x6 yang ada pada Lampiran 2 diselesaikan dengan

menggunakan program sesuai Lampiran 6 menggunakan parameter :

pop_size = 20

degree of similarity = 0,8

tour = 2

= 0,6

= 0,1

= 100

Urutan job yang diperoleh :

1 5 2 3 5 4 2 2 4 5 3 2 0 1 3 5 0 3 5 4 1 5 2 1 0 2 1 4 0 3 4 1 4 3 0 0

Dari solusi tersebut diperoleh kode JOM :

J 1 5 2 3 5 4 2 2 4 5 3 2 0 1 3 5 0 3 5 4 1 5 2 1 0 2 1 4 0 3 4 1 4 3 0 0

O 0 0 0 0 1 0 1 2 1 2 1 3 0 1 2 3 1 3 4 2 2 5 4 3 2 5 4 3 3 4 4 5 5 5 4 5

M 3 1 4 5 3 2 3 2 4 5 2 0 3 1 0 2 2 3 4 5 4 0 1 2 0 5 0 1 4 1 0 5 3 4 1 5

Solusi tersebut memiliki hasil rata-rata dan minimal Agreement Index 0,96186

dan 0,79422 yang menunjukkan rata-rata dan minimal kesesuaian waktu

penyelesaian dengan duedate (deadline) sebesar 96,186% dan 79,422% serta

makespan sebesar (65,0; 87,0; 110,0) yang secara berurutan menunjukkan waktu

penyelesaian pekerjaan tercepat, normal dan terlambat.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 98: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

85

4.4.2 Data Problem 2 6x6 FMOJSSP

Problem 2 FMOJSSP 6x6 yang ada pada Lampiran 2 diselesaikan dengan

menggunakan program sesuai Lampiran 6 menggunakan parameter :

pop_size = 20

degree of similarity = 0,8

tour = 2

= 0,6

= 0,1

= 100

Urutan job yang diperoleh :

3 1 2 2 1 3 0 3 5 5 4 0 3 3 0 1 5 5 5 1 4 0 3 2 0 1 2 1 4 4 5 0 4 4 2 2

Dari solusi tersebut diperoleh kode JOM :

J 3 1 2 2 1 3 0 3 5 5 4 0 3 3 0 1 5 5 5 1 4 0 3 2 0 1 2 1 4 4 5 0 4 4 2 2

O 0 0 0 1 1 1 0 2 0 1 0 1 3 4 2 2 2 3 4 3 1 3 5 2 4 4 3 5 2 3 5 5 4 5 4 5

M 5 3 4 3 1 2 3 0 1 3 2 2 3 1 0 4 5 2 4 2 4 4 4 2 1 0 0 5 5 1 0 5 0 5 1 5

Solusi tersebut memiliki hasil rata-rata dan minimal Agreement Index 0,99227 dan

0,97460 yang menunjukkan rata-rata dan minimal kesesuaian waktu penyelesaian

dengan duedate (deadline) sebesar 99,227% dan 97,460% serta makespan

sebesar (60,0; 83,0; 99,0) yang secara berurutan menunjukkan waktu penyelesaian

pekerjaan tercepat, normal dan terlambat.

4.4.3 Data Problem 3 6x6 FMOJSSP

Problem 3 FMOJSSP 6x6 yang ada pada Lampiran 2 diselesaikan dengan

menggunakan program sesuai Lampiran 6 menggunakan parameter :

pop_size = 20

degree of similarity = 0,8

tour = 2

= 0,6

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 99: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

86

= 0,1 = 100

Urutan job yang diperoleh :

3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Dari solusi tersebut diperoleh kode JOM :

J 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5

O 0 0 1 0 1 0 0 0 1 2 3 4 2 3 4 2 5 3 1 2 1 3 1 2 4 5 4 2 5 3 4 5 3 5 4 5

M 5 4 3 3 1 2 3 1 2 0 3 1 2 0 1 4 5 2 4 5 2 1 3 0 0 4 0 5 5 4 1 3 2 5 4 0

Solusi tersebut memiliki hasil rata-rata dan minimal Agreement Index 0,84864 dan

0,69231 yang menunjukkan rata-rata dan minimal kesesuaian waktu penyelesaian

dengan duedate (deadline) sebesar 84,864% dan 69,231% serta makespan sebesar

(28,0; 38,0; 49,0) yang secara berurutan menunjukkan waktu penyelesaian

pekerjaan tercepat, normal dan terlambat.

4.5 Perbandingan Hasil dengan Parameter yang Berbeda

Pada perbandingan ini, problem diselesaikan dengan nilai parameter yang

berbeda untuk parameter degree of similarity, Pc dan Pm. Sedangkan parameter

lain yang bernilai tetap adalah sebagai berikut :

= 20

tour = 2

= 100

4.5.1 Data Problem 1 FMOJSSP 6x6

Hasil yang diberikan pada Lampiran 7 menujukkan bahwa penyelesaian

untuk Problem 1 jika dilihat berdasarkan nilai rata-rata Agreement Index maka

hasil terbaik adalah 0,96586 pada saat nilai degree = 0,9, Pc = 0,5 dan Pm =

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 100: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

87

0,01.jika dilihat berdasarkan nilai minimal Agreement Index maka hasil terbaik

adalah 0,79422 dan diperoleh pada 14 kali percobaan yaitu pada nilai degree, Pc

dan Pm sebagai berikut :

Degree = 0,7; Pc = 0,5 dan Pm= 0,2

Degree= 0,7; Pc = 0,6 dan Pm= 0,01

Degree = 0,7; Pc = 0,6 dan Pm= 0,2

Degree= 0,7; Pc = 0,7 dan Pm= 0,01

Degree = 0,7; Pc = 0,7 dan Pm= 0,2

Degree = 0,8; Pc = 0,5 dan Pm= 0,1

Degree = 0,8; Pc = 0,5 dan Pm= 0,2

Degree= 0,8; Pc = 0,6 dan Pm= 0,01

Degree = 0,8; Pc = 0,6 dan Pm= 0,1

Degree = 0,8; Pc = 0,6 dan Pm= 0,2

Degree= 0,8; Pc = 0,7 dan Pm= 0,01

Degree = 0,9; Pc = 0,6 dan Pm= 0,2

Degree= 0,9; Pc = 0,7 dan Pm= 0,01

Degree = 0,9; Pc = 0,7 dan Pm= 0,2

Sedangkan jika dilihat berdasarkan nilai Completion Time maka hasil

terbaik adalah (58,0; 84,0; 109,0) pada saat nilai degree 0,9, Pc = 0,7 dan Pm =

0,1.

Berdasarkan hasil diatas ditunjukkan bahwa untuk Problem 1 dengan

menggunakan parameter yang berbeda tidak didapatkan pola perubahan hasil yang

tetap.

4.5.2 Data Problem 2 FMOJSSP 6x6

Hasil yang diberikan pada Lampiran 8 menujukkan bahwa penyelesaian

untuk Problem 2 jika dilihat berdasarkan nilai rata-rata Agreement Index maka

hasil terbaik adalah 0,99227 dan diperoleh pada 5 kali percobaan yaitu pada nilai

degree, Pc dan Pm sebagai berikut :

Degree = 0,7; Pc = 0,6 dan Pm= 0,1

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 101: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

88

Degree = 0,8; Pc = 0,5 dan Pm= 0,01

Degree = 0,8; Pc = 0,7 dan Pm= 0,01

Degree = 0,9; Pc = 0,5 dan Pm= 0,1

Degree = 0,9; Pc = 0,6 dan Pm= 0,2

Jika dilihat berdasarkan nilai minimal Agreement Index maka hasil terbaik

adalah 0,97460 dan diperoleh pada 5 kali percobaan yaitu pada nilai degree, Pc

dan Pm sebagai berikut :

Degree = 0,7; Pc = 0,6 dan Pm= 0,1

Degree = 0,8; Pc = 0,5 dan Pm= 0,01

Degree = 0,8; Pc = 0,7 dan Pm= 0,01

Degree = 0,9; Pc = 0,5 dan Pm= 0,1

Degree = 0,9; Pc = 0,6 dan Pm= 0,2

Sedangkan jika dilihat berdasarkan nilai Completion Time maka hasil

terbaik adalah (54,0; 73,0; 89,0) dan diperoleh pada 8 kali percobaan yaitu pada

nilai degree, Pc dan Pm sebagai berikut :

Degree = 0,7; Pc = 0,5 dan Pm= 0,2

Degree= 0,7; Pc = 0,6 dan Pm= 0,01

Degree = 0,7; Pc = 0,6 dan Pm= 0,2

Degree= 0,7; Pc = 0,7 dan Pm= 0,01

Degree = 0,8; Pc = 0,5 dan Pm= 0,1

Degree = 0,8; Pc = 0,6 dan Pm= 0,1

Degree= 0,9; Pc = 0,6 dan Pm= 0,01

Degree = 0,9; Pc = 0,7 dan Pm= 0,2

Berdasarkan hasil diatas ditunjukkan bahwa untuk Problem 2 dengan

menggunakan parameter yang berbeda tidak didapatkan pola perubahan hasil yang

tetap.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 102: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

89

4.5.3 Data Problem 3 FMOJSSP 6x6

Hasil yang diberikan pada Lampiran 9 menujukkan bahwa penyelesaian

untuk Problem 3 jika dilihat berdasarkan nilai rata-rata Agreement Index dannilai

minimal Agreement Index maka hasil terbaik adalah 0,84864 dan 0,69231 dan

diperoleh pada 7 kali percobaan yaitu pada nilai degree, Pc dan Pm sebagai

berikut :

Degree = 0,7; Pc = 0,6 dan Pm= 0,1

Degree = 0,7; Pc = 0,7 dan Pm= 0,01

Degree = 0,8; Pc = 0,5 dan Pm= 0,2

Degree = 0,8; Pc = 0,6 dan Pm= 0,1

Degree = 0,8; Pc = 0,6 dan Pm= 0,2

Degree = 0,9; Pc = 0,5 dan Pm= 0,1

Degree = 0,9; Pc = 0,6 dan Pm= 0,2

Sedangkan jika dilihat berdasarkan nilai Completion Time maka hasil

terbaik adalah (27,0; 36,0; 47,0) dan diperoleh pada 13 kali percobaan yaitu pada

nilai degree, Pc dan Pm sebagai berikut :

Degree = 0,7; Pc = 0,5 dan Pm= 0,1

Degree = 0,7; Pc = 0,5 dan Pm= 0,2

Degree= 0,7; Pc = 0,6 dan Pm= 0,01

Degree = 0,7; Pc = 0,6 dan Pm= 0,2

Degree = 0,7; Pc = 0,7 dan Pm= 0,2

Degree= 0,8; Pc = 0,5 dan Pm= 0,01

Degree = 0,8; Pc = 0,5 dan Pm= 0,1

Degree = 0,8; Pc = 0,7 dan Pm= 0,2

Degree= 0,9; Pc = 0,5 dan Pm= 0,01

Degree = 0,9; Pc = 0,6 dan Pm= 0,1

Degree= 0,9; Pc = 0,7 dan Pm= 0,01

Degree = 0,9; Pc = 0,7 dan Pm= 0,1

Degree = 0,9; Pc = 0,7 dan Pm= 0,2

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 103: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

90

Berdasarkan hasil diatas ditunjukkan bahwa untuk Problem 3 dengan

menggunakan parameter yang berbeda tidak didapatkan pola perubahan hasil yang

tetap.

Dari hasil yang diperoleh, penggabungan penerapan degree of similarity

antar individu awal yang dilakukan oleh Sakawa dengan penggunaan seleksi

turnamen untuk Job Shop Scheduling pada jurnal Lei menggunakan Genetic

Algorithm dapat menghasilkan solusi yang baik. Implementasi program yang

dilakukan sebanyak 20 kali percobaan pada masing-masing problem

menghasilkan solusi yang semakin baik. Untuk penyelesaian ketiga problem, jika

dibandingkan berdasarkan nilai fitness untuk setiap hasil yang diperoleh, maka

didapatkan hasil terbaik pada saat degree = 0,8, Pc = 0,6 dan Pm= 0,1.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 104: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

91

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Algoritma Genetik (Genetic Algorithm) dapat digunakan untuk

menyelesaikan Fuzzy Multi-Objective Job Shop Scheduling Problem. Proses-

proses yang dilakukan antara lain : membangkitkan kromosom awal, evaluasi,

seleksi turnamen, crossover, mutasi, pembentukan populasi baru dan

mengulangi langkah-langkah tersebut sampai mencapai iterasi maksimum.

2. Program untuk menyelesaikan Fuzzy Multi-Objective Job Shop Scheduling

dengan menggunakan Genetic Algorithm (GA) dapat dibuat menggunakan

bahasa pemrograman JAVA dengan NetBeans IDE 7.0.

3. Implementasi program untuk problem FMOJSSP 6×6 diperoleh hasil terbaik

pada saat nilai parameter degree = 0,8 yang berarti bahwa tingkat kesamaan

antar individu awal yang dibangkitkan adalah sebesar 80%, Pc = 0,6 yang

berarti bahwa kemungkinan individu yang mengalami crossover sebesar 60%,

dan Pm = 0,1 yang berarti bahwa kemungkinan individu yang mengalami

mutasi sebesar 10%.

4. Hasil terbaik yang diperoleh yaitu :

Untuk Problem 1 diperoleh nilai rata-rata Agreement Index (AI) dan

minimum AI masing-masing sebesar 0,96186 dan 0,79422 yang berarti

nilai rata-rata dan nilai minimum ketepatan waktu penyelesaian dengan

duedate yaitu sebesar 96,186% dan 79,422%, serta waktu penyelesaian

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 105: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

92

maksimum (Maximum Completion Time) yaitu (65,0; 87,0; 110,0), dengan

65, 87 dan 110 masing-masing merupakan waktu penyelesaian tercepat,

normal dan waktu penyelesaian terlambat.

Untuk Problem 2 diperoleh nilai rata-rata AI dan minimum AI masing-

masing sebesar 0,99227 dan 0,97460 yang berarti nilai rata-rata dan nilai

minimum ketepatan waktu penyelesaian dengan duedate yaitu sebesar

99,227% dan 97,460%, serta waktu penyelesaian maksimum (Maximum

Completion Time) yaitu (60,0; 83,0; 99,0), dengan 60, 83 dan 99 masing-

masing merupakan waktu penyelesaian tercepat, normal dan waktu

penyelesaian terlambat.

Untuk Problem 3 diperoleh nilai rata-rata AI dan minimum AI masing-

masing sebesar 0,84864 dan 0,69231 yang berarti nilai rata-rata dan nilai

minimum ketepatan waktu penyelesaian dengan duedate yaitu sebesar

84,864% dan 69,231%, serta waktu penyelesaian maksimum (Maximum

Completion Time) yaitu (28,0; 38,0; 49,0), dengan 28, 38 dan 49 masing-

masing merupakan waktu penyelesaian tercepat, normal dan waktu

penyelesaian terlambat.

5.2 Saran

Dalam penelitian berikutnya, algoritma GA untuk menyelesaikan Fuzzy

Multi-Objective Job Shop Scheduling Problem dapat dihybrid dengan beberapa

algoritma lain seperti ant colony, PSO. Dengan algoritma hybrid tersebut

diharapkan dihasilkan solusi yang lebih baik dengan waktu yang lebih cepat.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 106: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

93

DAFTAR PUSTAKA

1. Baker, K. R. and Trietsch, D. 2009, Principles of Sequencing and Scheduling, Wiley, New York.

2. Chen, G. and Pham, T. T., 2001, Introduction to Fuzzy Sets, Fuzzy Logic, and Fuzzy Control Systems, CRC Press, New York.

3. Chartrand, G. and Oellermann, O.R., 1993, Applied and Algorithmic Graph Theory, McGraw-Hill, New York.

4. French, S, 1982, Sequencing and Scheduling : An Introduction to the

Mathematics of Job Shop, Wiley, New York.

5. Gen, M. and Cheng, R., 1997, Genetic Algorithms and Engineering Design, Wiley, New York.

6. Hartati, Sri G., Suharto, B. H. dan Wijono, M. S., 2007, Pemrograman GUI Swing JavaTM dengan NetBeansTM 5, Penerbit ANDI, Yogyakarta.

7. Kaufmann, A. and Gupta, M. M., 1991, Introduction to Fuzzy Arithmetic Theory and Applications, Van Nostrand Reinhold, New York.

8. Kusumadewi, S. dan Purnomo, H., 2010, Aplikasi Logika Fuzzy untuk Pendukung Keputusan, Graha Ilmu, Yogyakarta.

9. Kusumadewi, S., 2002, Analisis Desain Sistem Fuzzy Menggunakan Tool Box Matlab, Graha Ilmu, Yogyakarta.

10. Lei, D., 2009, Solving Fuzzy Job Shop Scheduling Problems Using Random Key Genetic Algorithm, Springer-Verlag London Limited Int J Adv Manuf Technol 49:253–262.

11. Obitko, M., 1998, Introduction to Genetic Algorithms, Czech Technical University.

12. Sakawa, M., Nishizaki, I. and Katagiri, H., 2011, Fuzzy Stochastic Multiobjective Programming, Springer, New York.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 107: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

94

13. Sakawa, M, 2002, Genetic Algorithms and Fuzzy Multiobjective Optimization, Kluwer Academic Publisher.

14. Sakawa, M. and Kubota, R., 2000, Fuzzy Programming For Multiobjective Job Shop Scheduling With Fuzzy Processing Time and Fuzzy Duedate Through Genetic Algoritms, Europan Journal of Operational Research 120, pp. 393-407.

15. Shalahuddin, M. dan Rosa A.S., 2007, Belajar Pemrograman dengan Bahasa C++ dan Java dari Nol menjadi Andal, Informatika, Bandung.

16. Santoso, B. dan Paul W., 2011, Metode Metaheuristik Konsep dan Implementasi, Guna Widya, Surabaya.

17. Yamada, T and Nakano, R., 1997, Genetic Algorithms in Engineering Systems, Chapter 7 : Job Shop Scheduling, pp. 134-160.

18. Zadeh, L. A., 1965, Fuzzy Sets Information and Control 8, pp. 338-353.

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 108: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 1

Lampiran 1 Flowchart FMOJSSP Menggunakan GA

Generate Individu awal

Pengaktifan Schedule

Input Parameter

i≠1 No

Degree of similarity dengan individu lain ≤ 0,8

i = i-1

No

Yes

Yes

i = pop_size

Yes

No

Yes

No Iterasi = Max_gen

END

Seleksi

Crossover Mutasi

Anak

Evaluasi

Populasi Baru

Evaluasi

Pengaktifan Schedule

START

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 109: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 2 - 1

Lampiran 2 Data Fuzzy Multi-Objective Job Shop Scheduling Problem

(FMOJSSP)

1. Tabel Problem1 dari 6 x 6 FMOJSSP

2. Tabel Problem 2 dari 6 x 6 FMOJSSP

Job

Operasi

0 1 2 3 4 5

M FPT M FPT M FPT M FPT M FPT M FPT

0 3 (9,13,17) 2 (6,9,12) 0 (10,11,13) 4 (5,8,11) 1 (10,14,17) 5 (9,11,15)

1 3 (5,8,9) 1 (7,8,10) 4 (3,4,5) 2 (3,5,6) 0 (10,14,17) 5 (4,7,10)

2 4 (3,5,6) 3 (3,4,5) 2 (2,4,6) 0 (5,8,11) 1 (3,5,6) 5 (1,3,4)

3 5 (8,11,14) 2 (5,8,10) 0 (9,13,17) 3 (8,12,13) 1 (10,12,13) 4 (3,5,7)

4 2 (8,12,13) 4 (6,9,11) 5 (10,13,17) 1 (4,6,8) 0 (3,5,7) 3 (4,7,9)

5 1 (8,10,13) 3 (8,9,10) 5 (6,9,12) 2 (1,3,4) 4 (3,4,5) 0 (2,4,6)

FDD Job 0 Job 2 Job 2 Job 3 Job 4 Job 5

(112,121) (82,91) (49,60) (97,102) (83,89) (54,59)

Sumber : Sakawa, 2002, halaman 216

Job

Operasi

0 1 2 3 4 5

M FPT M FPT M FPT M FPT M FPT M FPT

0 5 (5,7,10) 4 (10,14,17) 3 (1,3,5) 2 (1,3,5) 1 (4,6,8) 0 (9,10,11)

1 4 (6,7,8) 0 (9,13,17) 2 (8,12,13) 5 (2,3,4) 3 (10,13,16) 1 (2,3,4)

2 2 (4,5,6) 0 (10,11,12) 4 (9,12,16) 1 (8,12,13) 5 (6,9,12) 3 (4,7,9)

3 3 (1,2,4) 4 (2,4,5) 5 (5,7,8) 2 (5,8,10) 0 (3,5,7) 1 (6,8,10)

4 3 (9,11,15) 0 (4,6,9) 4 (1,2,3) 5 (10,11,15) 1 (4,7,8) 2 (10,11,12)

5 4 (6,7,9) 2 (1,2,4) 1 (6,9,11) 5 (10,14,18) 3 (1,2,3) 0 (9,13,14)

FDD Job 0 Job 2 Job 2 Job 3 Job 4 Job 5

(81,88) (66,80) (89,92) (51,60) (91,96) (75,78)

Sumber : Sakawa, 2002, halaman 216

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 110: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 2 - 2

3. Tabel Problem 3 dari 6 x 6 FMOJSSP

Keterangan :

M = Mesin FPT = Fuzzy Processing Time FDD = Fuzzy Dua Date

Job

Operasi

0 1 2 3 4 5

M FPT M FPT M FPT M FPT M FPT M FPT

0 0 (5,6,13) 4 (3,4,5) 1 (1,2,3) 5 (3,4,5) 3 (2,3,4) 2 (2,3,4)

1 0 (3,4,5) 1 (2,4,5) 2 (1,3,5) 5 (4,5,6) 3 (5,6,7) 4 (6,7,8)

2 2 (1,2,3) 5 (5,6,7) 4 (4,5,6) 3 (3,4,5) 1 (1,2,3) 0 (1,2,3)

3 5 (2,3,4) 4 (1,2,3) 3 (2,3,4) 1 (2,3,5) 0 (3,4,6) 2 (3,4,5)

4 5 (3,4,5) 4 (2,3,4) 3 (1,2,3) 2 (2,3,4) 1 (4,5,6) 0 (2,3,4)

5 4 (6,7,8) 5 (4,5,6) 0 (2,3,4) 1 (3,4,5) 2 (2,3,4) 3 (1,2,3)

FDD Job 0 Job 2 Job 2 Job 3 Job 4 Job 5

(30,40) (35,40) (20,28) (32,40) (30,35) (40,45)

Sumber : Sakawa, 2002, halaman 201

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 111: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 3

Lampiran 3 Gantt Chart Kromosom ke-0 Sebelum Pengaktifan Schedule

003

Mesin

0

Mesin

1

501

Mesin

2

Mesin

3

Mesin

4

204

Mesin

5

305

5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 138

111

012 402 312 222

103 213 513 333

414

425

124 034 544

525

532 132

431 041 341

155 055

354

241

255

453

020 320 140 230 440

550

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 112: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 4

Lampiran 4 Gantt Chart Kromosom ke-0 Setelah Pengaktifan Schedule

003

Mesin

0

Mesin

1

501

Mesin

2

Mesin

3

Mesin

4

204

Mesin

5

305

5 10 15 20 8025 30 35 40 45 50 85 90 95 100 10555 60 65 70 75

020 320

111

012 402 312 222

103 213 513 333

414

425

124 034 544

525

132

431

140

041 341

155 055

354

230

241

255

453

440 550

532

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 113: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 5

Lampiran 5 Gantt Chart Kromosom ke-11

Mesin

0

Mesin

1

501

Mesin

2

Mesin

3

Mesin

4

204

Mesin

5

305

5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 115 120 12585 90 95 100 105 110

320

111

312

103 513

124

525

230

241

453

020 550 140 440

341 431 041

402 222 012 532 132

003 213 333

414 544 034 354

255 425 155 055

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 114: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 1

Lampiran 6 Source Code Program GA untuk FMOJSSP

Source Code Kelas Main.java package fmojss;

public class Main {

public static void main(String[] args) {

Input Start = new Input();

Start.setVisible(true);

}

}

Source Code Kelas Input.java package fmojss;

import java.io.File;

import java.io.IOException;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;

public class Input extends javax.swing.JFrame {

private int n;

private int m;

private static int pop_size;

private int max_gen;

private int[][] seqM; //Sequence of machine

private double[][] due;

private double[][][] process;

private ParameterSetting par;

private double degree;

private double Pc;

private double Pm;

private int tour;

private static String best;

private static String meanBest;

private static String minBest;

private static String msBest;

private static double[] ms;

private static int genes;

private static int nJob;

private static int nMesin;

//Solusi

private static int[] code;

private static int[] operasi;

private static int[] mesin;

private Help h;

private About abt;

private int index;

private String text;

private String text1="Data";

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 115: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 2

public Input() {

initComponents();

par = new ParameterSetting();

h = new Help();

abt = new About();

}

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {

try{

RUN();

}catch(Exception Ex){}

}

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt){

getInput();

if(text.equals("")){

par.setVisible(true);

}

}

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt){

text1="";

try{

JFileChooser d=new JFileChooser();

int save=d.showOpenDialog(this);

if(save==JFileChooser.APPROVE_OPTION){

File file=d.getSelectedFile();

String dir=file.getPath();

setData(dir);

}

}catch(Exception e){

System.out.println(e);

}

}

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt){

h.setVisible(true);

}

private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt){

abt.setVisible(true);

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Input().setVisible(true);

}

});

}

private void getInput(){

text="";

try{

pop_size=Integer.parseInt(inputPopSize.getText());

max_gen=Integer.parseInt(inputMaxGen.getText());

}catch(Exception e){

text="You must input Pop_Size and Max_Gen first \n";

JOptionPane.showMessageDialog(this,text+e,"Error",JOptionPane

.ERROR_MESSAGE);

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 116: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 3

private void getParameter(){

degree = par.getDegree();

Pc = par.getPc();

Pm = par.getPm();

tour =par.getTour();

}

public static int getPop(){return pop_size;}

public static int getJumJ(){return nJob;}

public static int getJumM(){return nMesin;}

public static int[] getCode(){return code;}

public static int[] getMes(){return mesin;}

public static int[] getOp(){return operasi;}

private void RUN() {

if(text1.equals("")){

try{

getInput();

getParameter();

long start = System.currentTimeMillis();

StartPopulation SP;

SP=new StartPopulation(seqM, process, due, pop_size, degree);

System.out.println("===*** Iterasi Awal ***===");

System.out.println("--- Populasi Awal ---");

SP.Show();

Population p = null;

for (int i =0;i<max_gen;i++){

System.out.println();

System.out.println("===*** ITERASI KE-"+(i+1)+" ***===");

System.out.println();

if(i==0){

p=new Population(SP, seqM, process, due, tour, Pc, Pm);}

else{

p=new Population(p, seqM, process, due, tour, Pc, Pm);}

System.out.println("--- Populasi Baru ---");

p.Show();}

this.dispose();

code=p.getbBest();

Individu ind=new Individu(seqM, process, due);

ind.setJob(code);

operasi=ind.getOperation();

mesin=ind.getMachine();

ms=p.getbMakespanBest();

meanBest=""+p.getbMeanBest()+"";

minBest=""+p.getbMinBest()+"";

msBest="("+getStringCode(ms)+")";

System.out.println();

System.out.println("---+ SOLUSI +---");

best=" Urutan Job :\n"+getStringCode(code)+"";

System.out.println(""+best);

System.out.println("Rata-rata AI = "+meanBest);

System.out.println("Minimum AI = "+minBest);

System.out.println("Makespan = "+msBest);

Result r=new Result();

r.setVisible(true);

}catch(NumberFormatException e){

JOptionPane.showMessageDialog(this,"Cek Your Input\n\n"+e,"

Warning!!!!",JOptionPane.WARNING_MESSAGE);

}}

else{

text="Input Your Data !\n";

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 117: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 4

JOptionPane.showMessageDialog(this,text,"Error",JOptionPane.E

RROR_MESSAGE);

}

}

private String getStringCode(int[] Code)

{

String kode=" ";

int mn=Code.length;

for(int i=0;i<mn;i++)

{

kode=kode+Code[i]+" ";

}

return kode;

}

private String getStringCode(double[] Code)

{

String kode="";

int mn=Code.length;

for(int i=0;i<mn;i++)

{

if(i==(mn-1)){

kode=kode+Code[i];

}else{

kode=kode+Code[i]+", ";

}

}

return kode;

}

public static String getBest(){return best;}

public static double[] getMsBest(){return ms;}

public static String getMeanBest(){return meanBest;}

public static String getMinBest(){return minBest; }

private void setData(String Dir) throws IOException, BiffException{

Workbook book = Workbook.getWorkbook(new File(Dir));

Sheet s0 = book.getSheet(0); //ambil sheet tabel urut mesin

Sheet s1 = book.getSheet(1); //ambil sheet tabel waktu proses #1

Sheet s2 = book.getSheet(2); //ambil sheet tabel waktu proses #2

Sheet s3 = book.getSheet(3); //ambil sheet tabel waktu proses #3

Sheet s4 = book.getSheet(4); //ambil sheet tabel waktu duedate

n = s0.getRows();

m = s0.getColumns();

nJob=n;

nMesin=m;

seqM=new int[n][m];

process=new double[n][m][3];

due=new double[n][2];

for (int i = 0; i < n; i++) {

for (int j = 0; j < m; j++) {

seqM[i][j]=Integer.parseInt(s0.getCell(j,i).getContents());

process[i][j][0]=Double.parseDouble(s1.getCell(j,i).getContents());

process[i][j][1]=Double.parseDouble(s2.getCell(j,i).getContents());

process[i][j][2]=Double.parseDouble(s3.getCell(j,i).getContents());}

for (int k = 0; k < 2; k++) {

due[i][k]=Double.parseDouble(s4.getCell(k,i).getContents());}

}}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 118: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 5

Source Code Kelas ParameterSetting.java package fmojss;

import javax.swing.JOptionPane;

public class ParameterSetting extends javax.swing.JFrame {

private Double degree;

private Double Pc;

private Double Pm;

private int tour;

public ParameterSetting() {

initComponents();

reset();

}

private void defaultSettingActionPerformed(java.awt.event.ActionEvent evt)

{

if(defaultSetting.isSelected()){

inputDegree.setText("0.8");

inputPc.setText("0.6");

inputPm.setText("0.1");

inputTour.setText("2");

inputDegree.setEnabled(false);

inputPc.setEnabled(false);

inputPm.setEnabled(false);

inputTour.setEnabled(false);

}else{

inputDegree.setEnabled(true);

inputPc.setEnabled(true);

inputPm.setEnabled(true);

inputTour.setEnabled(true);

}

}

private void bApplyActionPerformed(java.awt.event.ActionEvent evt) {

try{

save();

}catch(Exception e){

JOptionPane.showMessageDialog(this,"Ceck Your Input \n"+e,

"Error", JOptionPane.ERROR_MESSAGE);

}

}

private void bCancelActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose();}

private void bResetActionPerformed(java.awt.event.ActionEvent evt) {

reset();}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new ParameterSetting().setVisible(true);

}

});

}

private void save() {

String text="";

degree=Double.parseDouble(inputDegree.getText());

if(degree<=0||degree>=1){

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 119: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 6

text="Degree of Similarity must be at interval (0,1) !!!";}

Pc=Double.parseDouble(inputPc.getText());

if(Pc<=0||Pc>=1){

text="Probability of Crossover must be at interval (0,1) !!!";}

Pm=Double.parseDouble(inputPm.getText());

if(Pm<=0||Pm>=1){

text="Probability of Mutation must be at interval (0,1) !!!";}

tour=Integer.parseInt(inputTour.getText());

if(tour<=1||tour>=Input.getPop()){

text="Tournament size at least 2 and maximum Population Size !!!";}

if(text.equals("")){

this.dispose();

}else{

reset();

String newText=text+"\nInput Your Setting Again !!!";

wrong(newText);

}

}

private void reset() {

degree=0.8; inputDegree.setText("0.8");

Pc=0.6; inputPc.setText("0.6");

Pm=0.1; inputPm.setText("0.1");

tour=2; inputTour.setText("2");

defaultSetting.setSelected(true);

inputDegree.setEnabled(false);

inputPc.setEnabled(false);

inputPm.setEnabled(false);

inputTour.setEnabled(false);

}

private void wrong(String text){

JOptionPane.showMessageDialog(this,text,"Warning!!!",JOptionPane.

WARNING_MESSAGE);

}

public double getDegree(){return degree;}

public double getPc(){return Pc;}

public double getPm(){return Pm;}

public int getTour(){return tour;}

}

Source Code Kelas Result.java package fmojss;

import java.awt.Color;

import java.awt.Component;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JLabel;

import javax.swing.JTable;

import javax.swing.table.DefaultTableCellRenderer;

import jxl.write.WriteException;

public class Result extends javax.swing.JFrame {

//Makespan

private double[] mas;

private Object[][] isiTabel;

//Gantt chart

private int[] job;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 120: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 7

private int[] oper;

private int[] mesin;

private int n;

private int m;

private int gen;

private int end;

private int endi;

private int[][] scheJob;

private int[][][] schedule;

public Result() {

initComponents();

mas=new double[3];

mas=Input.getMsBest();

mean.setText(Input.getMeanBest());

min.setText(Input.getMinBest());

code.setText(Input.getBest());

setTMakespan();

setTabel();

setGanttChart();

}

private void setTMakespan()

{

String[] ket={"Lambat","Normal","Cepat"};

JTable tabelMs = new JTable(getMakespan(),ket);

tabelMs.setEnabled(false);

tabelMakespan.setViewportView(tabelMs);

}

private Object[][] getMakespan()

{

Object[][] hasil = new Object[1][3];

for(int i=0;i<3;i++)

{

hasil[0][i]=""+mas[i];}

return hasil;

}

private void setTabel()

{

String[] ket={"Job","Operasi","Mesin"};

JTable tabel=new JTable(getTable(),ket);

tabelJOM.setViewportView(tabel);

}

private Object[][] getTable()

{

n=Input.getJumJ();

m=Input.getJumM();

gen=n*m;

job = Input.getCode();

mesin = Input.getMes();

oper = Input.getOp();

isiTabel=new Object[gen][3];

for(int i=0;i<gen;i++)

{

isiTabel[i][0]= job[i];

isiTabel[i][1]= oper[i];

isiTabel[i][2]= mesin[i];

}

return isiTabel;

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 121: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 8

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Result().setVisible(true);

}

});

}

private void setGanttChart()

{

//Tabel keterangan mesin

String[] ketMesin = {"Mesin"};

JTable tabelMesin = new JTable(getTabelMesin(),ketMesin);

tabelMesin.setEnabled(false);

ketTMesin.setViewportView(tabelMesin);

getGanttChartA();

//Tabel Gantt Chart

String[] ket= new String[end+1];

for (int i=0;i<end+1;i++)

{

ket[i]=" ";

}

final JTable tabelGantt = new JTable(nullTable(), ket);

tabelGantt.setDefaultRenderer(Object.class,new

DefaultTableCellRenderer() {

@Override

public Component getTableCellRendererComponent(JTable table,Object

value,boolean isSelected, boolean hasFocus, int row,int column) {

JLabel label = (JLabel) super.

getTableCellRendererComponent(table, value, isSelected,

hasFocus, row, column);

label.setBackground(Color.white);

try

{

getGanttChart();

}

catch (WriteException ex)

{

Logger.getLogger(Result.class.getName()).log(Level.SEVERE, null, ex);

}

for (int i=0;i<m;i++)

{

for (int j=0;j<n;j++)

{

if(row==i && (column>=schedule[i][j][0] && column <= schedule[i][j][1] ))

{

label.setText(""+scheJob[i][j]+"");

}

}

}

return label;

}

});

for (int i=0;i<end+1;i++){

tabelGantt.getColumnModel().getColumn(i).setPreferredWidth(1);

}

tabelGantt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

tabelGantt.getColumnModel().getColumn(0).setPreferredWidth(1);

tabelGantt.setEnabled(false);

tableGanttC.setViewportView(tabelGantt);

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 122: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 9

private Object[][] getTabelMesin()

{

Object[][] hasil = new Object[m][1];

for(int i=0;i<m;i++)

{

hasil[i][0]="Mesin "+i;

}

return hasil;

}

private Object[][] nullTable()

{

Object[][] hasil=new Object[m][end+1];

return hasil;

}

private void getGanttChart() throws WriteException

{

int[] timeJ = new int[n];

int[] timeM = new int[m];

int start=0; end=0;

int oprADmesin[] = new int[m];

scheJob = new int[m][n];

schedule = new int[m][n][2];

for (int i=0;i<gen;i++)

{

if (timeM[mesin[i]]>timeJ[job[i]])

{

start=timeM[mesin[i]]+1;

timeM[mesin[i]]=timeM[mesin[i]]+1;

end=timeM[mesin[i]];

}

else

{

start=timeJ[job[i]]+1;

timeM[mesin[i]]=timeJ[job[i]]+1;

end=timeM[mesin[i]];

}

timeJ[job[i]]=timeM[mesin[i]];

scheJob[mesin[i]][oprADmesin[mesin[i]]]=job[i];

schedule[mesin[i]][oprADmesin[mesin[i]]][0]=start;

schedule[mesin[i]][oprADmesin[mesin[i]]][1]=end;

oprADmesin[mesin[i]]+=1;

}

}

private void getGanttChartA()

{

int[] timeJ = new int[n];

int[] timeM = new int[m];

int start=0; end=0;

int oprADmesin[] = new int[m];

scheJob = new int[m][n];

schedule = new int[m][n][2];

for (int i=0;i<gen;i++)

{

if (timeM[mesin[i]]>timeJ[job[i]])

{

start=timeM[mesin[i]]+1;

timeM[mesin[i]]=timeM[mesin[i]]+1;

end=timeM[mesin[i]];

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 123: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 10

else

{

start=timeJ[job[i]]+1;

timeM[mesin[i]]=timeJ[job[i]]+1;

end=timeM[mesin[i]];

}

timeJ[job[i]]=timeM[mesin[i]];

scheJob[mesin[i]][oprADmesin[mesin[i]]]=job[i];

schedule[mesin[i]][oprADmesin[mesin[i]]][0]=start;

schedule[mesin[i]][oprADmesin[mesin[i]]][1]=end;

oprADmesin[mesin[i]]+=1;

}

}

}

Source Code Kelas Individu.java package fmojss;

import java.util.Random;

public class Individu extends Input{

//For saving Data

private int[][] seqMachine;

private double[][] duedate;

private double[][][] processTime;

//Parameters

private int n;

private int m;

private int pop_size;

private double degree;

private int tour;

private double Pc;

private double Pm;

//For generate individu

private int[] job;

private int[] operation;

private int[] machine;

private double[][] timeP;

//Definition of Completion Time and Activate Schedule

private double[] mC;

private double[][] tJob;

private double[][] start;

private double[][] delay;

private boolean[] act;

private double ranking;

public Individu(int[][] mes, double[][][] pros, double[][] due) {

seqMachine=mes;

processTime=pros;

duedate=due;

n=seqMachine.length;

m=seqMachine[0].length;

Job();

Operation();

Machine();

Time();

Complete();

actSchedule();

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 124: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 11

public void setJob(int[] jOb){

job=jOb;

Operation();

Machine();

Time();

Complete();

actSchedule();

}

public void setOperation(int[] jOb){

job=jOb;

Operation();

}

public int[] getJob(){return job;}

public int[] getOperation(){return operation;}

public int[] getMachine(){return machine;}

public double[] getmC(){return mC;}

public double[][] getCompletion(){return tJob;}

public double getRanking(){return ranking;}

public int getNJOb(){return n;}

public int getNMachine(){return m;}

public double[][] getDueDate(){return duedate;}

public int getGenes(){return n*m;}

private void Job(){

int nJob=n;

int nMesin=m;

int genes=nJob*nMesin;

int i=0, a, acak;

int[] num;

job=new int[genes];

num=new int[nJob];

while(i<genes){

Random r=new Random();

acak=r.nextInt(nJob);

a=num[acak]+1;

if (a<=nMesin){

job[i]=acak;

num[acak]=a;

i+=1;

}

}

}

private void Operation(){

int nJob=n;

int[] Job=job;

int[] jobOper;

jobOper=new int[nJob];

int genes=Job.length;

operation=new int[genes];

for(int i=0;i<genes;i++){

operation[i]=jobOper[Job[i]];

jobOper[Job[i]]=jobOper[Job[i]]+1;

}

}

private void Machine(){

int[] Job=job;

int[] opr=operation;

int[][] urutM=seqMachine;

int genes=Job.length;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 125: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 12

machine=new int[genes];

for(int i=0;i<genes;i++){

machine[i]=urutM[Job[i]][opr[i]];

}

}

private void Time(){

int[] Job=job;

int[] opr=operation;

double[][][] waktu=processTime;

int genes=Job.length;

timeP=new double[genes][3];

for(int i=0;i<genes;i++){

System.arraycopy(waktu[Job[i]][opr[i]], 0, timeP[i], 0, 3);

}

}

private void Complete(){

int[] Job=job;

int[] opr=operation;

int[] ms=machine;

double[][] waktu=timeP;

int genes=Job.length;

int nJob=n;

int nMesin=m;

double[][] tMac=new double [nMesin][3];

tJob=new double [nJob][3];

start=new double [genes][3];

delay=new double [genes][3];

act=new boolean[genes];

for(int i=0;i<genes;i++){

for(int j=0;j<3;j++){

if(tJob[Job[i]][j]<tMac[ms[i]][j]){

start[i][j]=tMac[ms[i]][j];

act[i]=false;

}

else{

start[i][j]=tJob[Job[i]][j];

delay[i][j]=tJob[Job[i]][j]-tMac[ms[i]][j];

act[i]=true;

}

tMac[ms[i]][j]=start[i][j]+waktu[i][j];

tJob[Job[i]][j]=tMac[ms[i]][j];

}

}

mC=maxComplete(tJob);

}

private void actSchedule(){

int nJob=n;

int nMesin=m;

int genes=nJob*nMesin;

int[] Job=new int [genes];

System.arraycopy(job,0, Job, 0, genes);

double maks;

int[] jobAct=new int[genes];

int indexDel;

int indexNon;

do{

maks=ranking;

indexDel=getDelay();

if(indexDel>=0){

indexNon=getNonActive(indexDel+1, machine[indexDel]);

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 126: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 13

if(indexNon>=0){

jobAct=getJobAct(indexDel,indexNon);

reSchedule(jobAct);

}

}else{

break;

}

}while(ranking<maks);

}

private int getDelay(){

int nJob=n;

int nMesin=m;

int index=-1;

int genes=nJob*nMesin;

int a;

for(int i=0;i<genes;i++){

a=0;

for(int j=0;j<3;j++){

if(delay[i][j]>0){

a=a+1;

}}

if(a==3){

index=i;

break;}

}

return index;

}

private int getNonActive(int startJob,int machineA){

int nJob=n;

int nMesin=m;

int index=-1;

int genes=nJob*nMesin;

int a;

for(int i=startJob;i<genes;i++){

a=0;

if(machine[i]==machineA && act[i]==false){

if(operation[i]==0){

for(int j=0;j<3;j++){

if(delay[startJob-1][j]>=timeP[i][j]){

a=a+1;

}

}

if(a==3){

index=i;

break;

}

}else if(operation[i]>0){

for(int k=0;k<genes;k++){

if(job[k]==job[i] && operation[k]==operation[i]-1){

for(int l=0;l<3;l++){

if(start[startJob-1][l]-(start[k][l]+timeP[k][l])>=timeP[i][l]){

a=a+1; }}

if(a==3){

index=i; }

break; }

}

}

}

}

return index;

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 127: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 14

private int[] getJobAct(int start,int start1){

int nJob=n;

int nMesin=m;

int genes=nJob*nMesin;

int[] Job=new int[genes];

System.arraycopy(job, 0, Job, 0, genes);

int titip=Job[start1];

for(int i=start1;i>start;i--){

Job[i]=Job[i-1];

}

Job[start]=titip;

return Job;

}

private void reSchedule(int[] Job){

job=Job;

Operation();

Machine();

Time();

Complete();

}

private double[] maxComplete(double[][] jobT){

int tem=0, tem1=0, tem2=0, tem3=0;

double maks=0, maks1, maks2;

double[] maxC =new double[3];

int nJob=jobT.length;

ranking=0;

double[] c1=new double [nJob];

double[] c2=new double [nJob];

double[] c3=new double [nJob];

for(int i=0;i<nJob;i++){

c1[i]=(jobT[i][0]+2*jobT[i][1]+jobT[i][2])/4;

if (c1[i]>maks){

maks=c1[i];

tem=i;

}

}

tem1=tem;

maks1=maks;

for(int j=0;j<nJob;j++){

if (j!=tem1 && c1[j]==maks){

c2[j]=jobT[j][1];

if (c2[j]>maks1){

maks1=c2[j];

tem=j; }}

}

tem2=tem;

maks2=maks1;

for(int k=0;k<nJob;k++){

if (k!=tem2 && c2[k]==maks1){

c3[k]=jobT[k][2]-jobT[k][0];

if (c3[k]>maks2){

maks2=c3[k];

tem=k; }}

}

System.arraycopy(jobT[tem], 0, maxC, 0, 3);

ranking = c1[tem];

return maxC;

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 128: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 15

Source Code Kelas StartPopulation.java package fmojss;

public class StartPopulation {

private Individu ind;

private int[][] chrom;

private int[][] mes;

private int nJob;

private int nMesin;

private int popsize;

//For degree calculation

private double degree;

private int[][] MTable;

private int[][][] before;

private int[][][] after;

//For calculation objective function;

private Object[] makespan;

private Object[] completion;

private double[] ranking;

private double[][] z;

private double[][] linz;

private double[] f;

public StartPopulation(int[][] mesin, double[][][] pros, double[][]

due, int pop, double deg){

ind=new Individu(mesin, pros, due);

nJob=ind.getNJOb();

nMesin=ind.getNMachine();

Objective obj;

Evaluation F;

degree=deg;

popsize=pop;

int genes=nJob*nMesin;

chrom=new int [popsize][genes];

mes=new int [popsize][genes];

makespan=new Object [popsize];

completion=new Object [popsize];

ranking=new double [popsize];

z=new double [popsize][3];

f=new double [popsize];

int[][][][] bf=new int [popsize][nMesin][nJob][nJob];

int[][][][] aft=new int [popsize][nMesin][nJob][nJob];

int suit=0;

for(int i=0;i<popsize;i++){

if(i==0){

ind=new Individu(mesin, pros, due);

chrom[i]=ind.getJob();

mes[i]=ind.getMachine();

MTable(chrom[i], mes[i]);

TableContent();

bf[i]=before;

aft[i]=after;

}else{

while(suit!=i){

ind=new Individu(mesin, pros, due);

chrom[i]=ind.getJob();

mes[i]=ind.getMachine();

MTable(chrom[i], mes[i]);

TableContent();

bf[i]=before;

aft[i]=after;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 129: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 16

suit=Degree(bf, aft, i);

}}

makespan[i]=ind.getmC();

completion[i]=ind.getCompletion();

ranking[i]=ind.getRanking();

obj=new Objective(mesin, pros, due, (double[][])

completion[i], ranking[i]);

z[i]=obj.getZ();

}

F=new Evaluation(z);

linz=F.getLinZ();

f=F.getFitness();

}

public Object[] getStartPop(){return chrom;}

public Object[] getMakespan(){return makespan;}

public Object[] getZ(){return z;}

public double[] getF(){return f;}

private void MTable(int[] job, int[] ms){

int genes=job.length;

MTable=new int [nMesin][nJob];

int[] temp1=new int [nMesin];

int temp;

for(int i=0;i<genes;i++){

temp=ms[i];

MTable[temp][temp1[temp]]=job[i];

temp1[temp]++;

}

}

private void TableContent(){

int[][] table=MTable;

int temp;

before=new int[nMesin][nJob][nJob];

after=new int[nMesin][nJob][nJob];

for(int i=0;i<nMesin;i++){

for(int j=0;j<nJob;j++){

for(int k=0;k<nJob;k++){

before[i][j][k]=-1;

after[i][j][k]=-1;

}

}

}

for(int i1=0;i1<nMesin;i1++){

int[] temp1=new int [nJob];

for(int j1=0;j1<nJob;j1++){

temp=table[i1][j1];

for(int k1=0;k1<j1;k1++){

before[i1][temp][temp1[temp]]=table[i1][k1];

temp1[temp]++;

}

for(int k1=(j1+1);k1<nJob;k1++){

after[i1][temp][temp1[temp]]=table[i1][k1];

temp1[temp]++;

}

}

}

}

private int Degree(int[][][][] bf, int[][][][] aft, int index){

int id=nJob*(nJob-1)*nMesin;

int[] sum=new int [index];

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 130: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 17

int[][] a=new int [index][nJob];

double[] rasio=new double [index];

int hasil=0;

for(int i=0;i<index;i++){

for(int j=0;j<nMesin;j++){

for(int k=0;k<nJob;k++){

for(int l=0;l<nJob;l++){

for(int l2=0;l2<nJob;l2++){

if(bf[i][j][k][l]!=-1&&bf[index][j][k][l2]!=-1){

if(bf[i][j][k][l]==bf[index][j][k][l2]){

a[i][k]++; }}

if(aft[i][j][k][l]!=-1&&aft[index][j][k][l2]!=-1){

if(aft[i][j][k][l]==aft[index][j][k][l2]){

a[i][k]++; }}

}}}}}

for(int i2=0;i2<index;i2++){

for(int k2=0;k2<nJob;k2++){

sum[i2]=sum[i2]+a[i2][k2];

}

}

for(int i3=0;i3<index;i3++){

rasio[i3]=(double) sum[i3]/id;

if(rasio[i3]<=degree){

hasil++;

}

}

return hasil;

}

public void Show(){

for(int i=0;i<popsize;i++){

System.out.print(i+".) Kromosom :");

Out((int[]) chrom[i]);

System.out.print(" => Makespan ");

Out((double[]) makespan[i]);

System.out.println();

System.out.print(" Nilai Tujuan : ");

Out((double[]) z[i]);

System.out.println();

System.out.print(" Nilai Keanggotaan Linear : ");

Out(linz[i]);

System.out.println();

System.out.print(" Nilai Fitness : ");

System.out.println(f[i]);

}

}

private void Out(int[] a){

int col=a.length;

for(int i=0;i<col;i++){

System.out.print(a[i]+" ");}

}

private void Out(double[] a){

int col=a.length;

System.out.print("(");

for(int i=0;i<(col-1);i++){

System.out.print(a[i]+", ");}

System.out.print(a[col-1]+")");

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 131: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 18

Source Code Kelas Population.java package fmojss;

public class Population {

private Individu ind;

private int[][] mesin;

private double[][][] proses;

private double[][] dued;

private int pop;

private int tour;

private int nC;

private int nM;

private Object[] gChrom;

private Object[] ZgChrom;

private Object[] chrom;

private Object[] chromC;

private Object[] chromM;

private double[] Fchrom;

private Object[] Zchrom;

private Object[] ZchromC;

private Object[] ZchromM;

private double[] f;

private double[] fNew;

private Object[] ZNew;

private Object[] makespan;

private int[][] newChrom;

private int[] best;

private double meanBest;

private double minBest;

private double[] msBest;

private double[] ZBest;

private double[][] Lz;

public Population(StartPopulation populasi, int[][] mes, double[][][]

pros, double[][] due, int tur, double pc, double pm){

ind= new Individu(mes, pros, due);

mesin=mes;

proses=pros;

dued=due;

chrom=populasi.getStartPop();

pop=chrom.length;

Fchrom=populasi.getF();

Zchrom=populasi.getZ();

tour=tur;

System.out.println("-> Partial Schedule Exchange Crossover <-");

Crossover(pc);

System.out.println("-> Swap Mutation <-");

Mutation(pm);

setOPandGO();

double[][] nZ=new double[pop+nC+nM][3];

for(int i=0; i<pop+nC+nM; i++){

nZ[i]= (double[]) ZgChrom[i];

}

Evaluation eval=new Evaluation(nZ);

f=eval.getFitness();

Lz=eval.getLinZ();

setOrderPop();

setNewPop();

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 132: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 19

public Population(Population populasi, int[][] mes, double[][][]

pros, double[][] due, int tur, double pc, double pm){

ind= new Individu(mes, pros, due);

mesin=mes;

proses=pros;

dued=due;

chrom=populasi.getNewPop();

pop=chrom.length;

Fchrom=populasi.getF();

Zchrom=populasi.getZ();

tour=tur;

System.out.println("-> Partial Schedule Exchange Crossover <-");

Crossover(pc);

System.out.println("-> Swap Mutation <-");

Mutation(pm);

setOPandGO();

double[][] nZ=new double[pop+nC+nM][3];

for(int i=0; i<pop+nC+nM; i++){

nZ[i]= (double[]) ZgChrom[i];

}

Evaluation eval=new Evaluation(nZ);

f=eval.getFitness();

Lz=eval.getLinZ();

setOrderPop();

setNewPop();

}

public Object[] getNewPop(){return newChrom;}

public double[] getF(){return fNew;}

public Object[] getZ(){return ZNew;}

public int[] getbBest(){return best;}

public double getbMeanBest(){return meanBest;}

public double getbMinBest(){return minBest;}

public double[] getbMakespanBest(){return msBest;}

private void Crossover(double prob){

Tournament T = new Tournament(tour, Fchrom, prob);

int[] parentC=T.getParent();

int cek=parentC.length;

if(cek!=0){

PSEX cross = new PSEX(mesin, proses, dued, parentC, (int[][]) chrom);

chromC = cross.getChild();

ZchromC = cross.getZChild();

nC = cross.getSumChild();

}

}

private void Mutation(double prob){

Tournament T = new Tournament(tour, Fchrom, prob);

int[] parentM=T.getParent();

int cek=parentM.length;

if(cek!=0){

SwapMutation mut = new SwapMutation(mesin, proses, dued,

parentM, (int[][]) chrom);

chromM = mut.getChild();

ZchromM = mut.getZChild();

nM = mut.getSumChild();

}

}

private void setOPandGO(){

int tot = pop+nC+nM;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 133: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 20

gChrom = new Object[tot];

ZgChrom = new Object[tot];

int m1=0, c1=0;

for(int i=0;i<tot;i++){

if(i<pop){

gChrom[i]=chrom[i];

ZgChrom[i]=Zchrom[i];

}

else if(i>=pop && i<(pop+nC)){

gChrom[i]=chromC[c1];

ZgChrom[i]=ZchromC[c1]; c1++;

}

else{

gChrom[i]=chromM[m1];

ZgChrom[i]=ZchromM[m1]; m1++;

}

}

}

private void setOrderPop(){

Object temp=0;

double temp1=0;

Object temp2=0;

double[] temp3=new double [3];

int tot = pop+nC+nM;

for(int i=0;i<(tot-1);i++){

for(int j=i;j<tot;j++){

if(f[i]<f[j]){

temp1=f[i];

f[i]=f[j];

f[j]=temp1;

temp2=ZgChrom[i];

ZgChrom[i]=ZgChrom[j];

ZgChrom[j]=temp2;

temp3=Lz[i];

Lz[i]=Lz[j];

Lz[j]=temp3;

temp= gChrom[i];

gChrom[i]=gChrom[j];

gChrom[j]=temp;

}

}

}

}

private void setNewPop(){

int genes=ind.getGenes();

newChrom=new int[pop][genes];

makespan=new Object[pop];

fNew=new double[pop];

ZNew= new Object[pop];

meanBest=0;

minBest=0;

ZBest=new double[3];

best=new int[genes];

for(int i=0;i<pop;i++){

newChrom[i]=(int[]) gChrom[i];

fNew[i]=f[i];

ZNew[i]=ZgChrom[i];

ind.setJob((int[]) newChrom[i]);

makespan[i]=ind.getmC();

}

best=newChrom[0];

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 134: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 21

ZBest=(double[]) ZNew[0];

meanBest=ZBest[0];

minBest=ZBest[1];

msBest=(double[]) makespan[0];

}

public void Show(){

for(int i=0;i<pop;i++){

System.out.print(i+".) Kromosom :");

Out((int[]) newChrom[i]); System.out.print(" => Makespan ");

Out((double[]) makespan[i]);

System.out.println();

System.out.print(" Nilai Fungsi Tujuan :");

Out((double[])ZNew[i]);

System.out.println("");

System.out.print(" Nilai keanggotaan Linear :");

Out(Lz[i]);

System.out.println("");

System.out.print(" Nilai Fitness : ");

System.out.print(f[i]);

System.out.println();

}

}

private void Out(int[] a){

int col=a.length;

for(int i=0;i<col;i++){

System.out.print(a[i]+" ");

}

}

private void Out(double[] a){

int col=a.length;

System.out.print("(");

for(int i=0;i<(col-1);i++){

System.out.print(a[i]+", ");

}

System.out.print(a[col-1]+")");

}

}

Source Code Kelas Objective.java package fmojss;

public class Objective{

private Individu D;

private int nJob;

private double[] z;

private double[][] complete;

private double rank;

private double[] agree;

public Objective(int[][] mes, double[][][] pros, double[][] due,

double[][] completion, double ranking){

D=new Individu(mes, pros, due);

nJob=completion.length;

complete=completion;

rank=ranking;

double sum=0;

z=new double[3];

AI();

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 135: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 22

for(int i=0;i<nJob;i++){

sum=sum+agree[i];

}

z[0]=sum/nJob;

z[1]=Min(agree);

z[2]=rank;

}

public double[] getZ(){return z;}

private void AI(){

double[][] due=D.getDueDate();

double areaCD, areaC, c1, c2, c3, d1, d2;

double[] int1 = new double[2];

double[] int2 = new double[2];

double[] integral1 = new double[2];

double[] integral2 = new double[2];

double[] integral3 = new double[2];

agree = new double[nJob];

for(int j=0;j<nJob;j++){

agree[j]=-1;

}

for(int i=0;i<nJob;i++){

c1=complete[i][0];

c2=complete[i][1];

c3=complete[i][2];

d1=due[i][0];

d2=due[i][1];

int1=Area1(c1,c2,d1,d2,c1,c2);

int2=Area2(0,0,c2,c3,c2,c3);

areaC=int1[1]+int2[1];

if(c2<=d1 && c3<=d2){

agree[i]=1; }

else if(c2>d1 && c3<d2){

integral1=Area1(c1,c2,d1,d2,c1,0);

integral2=Area2(c2,c3,d1,d2,integral1[0],0);

integral3=Area2(0,0,c2,c3,integral2[0],c3);}

else if(c2>d1 && c3>=d2){

integral1=Area1(c1,c2,d1,d2,c1,0);

integral2=Area2(0,0,d1,d2,integral1[0],d2);

integral3[1]=0;}

else if(c2==d1 && c3>d2){

integral1=Area1(c1,c2,d1,d2,c1,c2);

integral2=Area2(0,0,d1,d2,d1,d2);

integral3[1]=0;}

else if(c2<d1 && c3>d2){

integral1=Area1(c1,c2,d1,d2,c1,c2);

integral2=Area2(c2,c3,d1,d2,c2,0);

integral3=Area2(0,0,d1,d2,integral2[0],d2);}

else if(c1>=d2){

agree[i]=0; }

if(agree[i]==-1){

areaCD=integral1[1]+integral2[1]+integral3[1];

agree[i]=areaCD/areaC;

}

}

}

private double[] Area1(double v, double w, double x, double y, double

b1, double b2){

double[] batas = new double[2];

double a, b;

a=w-v; b=y-x;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 136: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 23

if(b2==0){

batas[0]=(y*w-v*x)/(b+a);

}

else{

batas[0]=b2;

}

batas[1]=(1/a)*(((Math.pow(batas[0], 2)-Math.pow(b1, 2))/2)-

(v*(batas[0]-b1)));

return batas;

}

private double[] Area2(double v, double w, double x, double y, double

b1, double b2){

double[] batas = new double[2];

double a,b = 0;

if(b2==0){

if(b1==v){

a=y-x; b=w-v;

batas[0]=(x*w-v*y)/(b-a);

y=w;

}

else{

a=w-v; b=y-x;

batas[0]=(x*w-v*y)/(a-b);

}

}

else{

b=y-x;

batas[0]=b2;

}

batas[1]=(1/b)*((y*(batas[0]-b1))-((Math.pow(batas[0], 2)-

Math.pow(b1, 2))/2));

return batas;

}

private double Min(double[] a) {

int row=a.length;

double min=a[0];

for(int i=1;i<row;i++){

if (a[i]<min){

min=a[i];

}

}

return min;

}

}

Source Code Kelas Evaluation.java package fmojss;

public class Evaluation {

private double[] z0;

private double[] z1;

private double[][] z;

private double[] f;

private double[][] linZ;

public Evaluation(double[][] Z){

z=Z;

int pop_size=z.length;

z0=new double[3];

z1=new double[3];

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 137: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 24

f = new double [pop_size];

linZ = new double[pop_size][3];

for(int i=0;i<3;i++){

z0[i]=Min(z, i);

z1[i]=Max(z, i);

}

for(int j=0;j<pop_size;j++){

for(int k=0;k<3;k++){

if(z0[k]!=z1[k]){

if(k==2){

linZ[j][k]=(z1[k]-z[j][k])/(z1[k]-z0[k]);

}

else{linZ[j][k]=(z[j][k]-z0[k])/(z1[k]-z0[k]); }

}

else{linZ[j][k]=1;}

}

}

f = Min(linZ);

}

double[] getFitness() {

return f;

}

double[][] getLinZ() {

return linZ;

}

private double Min(double[][] a, int index) {

int row=a.length;

double min=a[0][index];

for(int i=1;i<row;i++){

if (a[i][index]<min){

min=a[i][index];

}

}

return min;

}

private double Max(double[][] a, int index) {

int row=a.length;

double maks=a[0][index];

for(int i=1;i<row;i++){

if (a[i][index]>maks){

maks=a[i][index];

}

}

return maks;

}

private double[] Min(double[][] a) {

int row=a.length;

int col=a[0].length;

double[] min=new double[row];

for(int i=0;i<row;i++){

min[i]=a[i][0];

for(int j=1;j<col;j++){

if (a[i][j]<min[i]){

min[i]=a[i][j];

}}

}

return min;

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 138: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 25

private void Out(double[] a){

int col=a.length;

System.out.print("(");

for(int i=0;i<(col-1);i++){

System.out.print(a[i]+", ");

}

System.out.print(a[col-1]+")");

}

private void Out(double[][] a){

int row = a.length;

int col = a[0].length;

for(int i=0;i<row;i++){

for(int j=0;j<col;j++){

System.out.print(a[i][j]+" ");

}

System.out.println();

}

System.out.println("");

}

public void Show(){

System.out.println("z0");

Out(z0);

System.out.println();

System.out.println("z1");

Out(z1);

System.out.println();

System.out.println("z");

Out(z);

System.out.println("lin");

Out(linZ);

System.out.println("f");

Out(f);

}

}

Source Code Kelas Tournament.java package fmojss;

import java.util.Random;

public class Tournament{

private ParameterSetting PS;

private int[] Parent;

public Tournament(int tur, double[] a, double prob) {

int popsize=a.length;

int[] pos= new int[tur];

double[] fit = new double [tur];

double[] ind = new double [tur];

int[] caParent = new int [popsize];

for(int i=0;i<popsize;i++){

for(int j=0;j<tur;j++){

Random r = new Random();

pos[j] = r.nextInt(popsize);

if(j!=0){

for(int k=0;k<j;k++){

while(pos[j]==pos[k]){

Random d = new Random();

pos[j] = d.nextInt(popsize);

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 139: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 26

k=0;

}

}

}

fit[j] = a[pos[j]];

}

caParent[i]=pos[Max(fit)];

}

Selection(caParent, prob);

}

public int[] getParent(){return Parent;}

private int Max(double[] a) {

int row=a.length;

int temp=0;

double maks=a[0];

for(int i=1;i<row;i++){

if (a[i]>maks){

maks=a[i];

}

}

for(int j=0;j<row;j++){

if (a[j]==maks){

temp=j;

break;

}

}

return temp;

}

private void Selection(int[] a, double b) {

int row=a.length;

int sum=0;

double[] acak = new double[row];

int[] temp = new int[row];

for(int i=0;i<row;i++){

temp[i]=-1;

}

for(int j=0;j<row;j++){

Random r = new Random();

acak[j] = r.nextDouble();

if(acak[j]<=b){

temp[j]=a[j];

sum++;

}

}

Parent = new int [sum];

for(int l=0;l<sum;l++){

for(int k=0;k<row;k++){

if(temp[k]!=-1){

Parent[l]=temp[k];

temp[k]=-1;

break;

}}

}

if(sum!=0){}

else{

System.out.println("Tidak ada Induk terpilih...");

System.out.println();}

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 140: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 27

Source Code Kelas PSEX.java package fmojss;

import java.util.Random;

public final class PSEX {

private int[][] childC;

private int totC;

private Individu indi;

private double[][] z;

private Object[] makespan;

private double[] mc;

private int[][] mesin;

private double[][][] proses;

private double[][] dued;

//Partial Schedule

private int pos11=0, pos12=0, pos21=0, pos22=0;

private int nPart1=0, nPart2=0;

private int nParent1=0, nParent2=0;

private int[] partial1;

private int[] partial2;

private int[] OCross1;

private int[] OCross2;

//Missed and Exceed genes

private int[] miss1;

private int[] miss2;

private int[] exceed1;

private int[] exceed2;

//Operation Parent and Child for Exceed genes

private int[] oprP1;

private int[] oprP2;

private int[] oprC1;

private int[] oprC2;

//Operation Parent and Child for Missed genes

private int[] part1;

private int[] part2;

private int[] child1;

private int[] child2;

public PSEX(int[][] mes, double[][][] pros, double[][] due, int[]

par, int[][] ind) {

mesin=mes;

proses=pros;

dued=due;

int genes=ind[0].length;

totC=par.length;

int nP=0;

int[] index=new int [totC];

int mod = totC%2;

if(mod!=0){

totC=totC-1;

}

for(int i=0;i<totC;i+=2){

if(par[i]==par[i+1]){

par[i]=par[i+1]=-1;

}

}

for(int j=0;j<totC;j++){

if(par[j]!=-1){

index[nP]=par[j];

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 141: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 28

nP=nP+1;

}

}

totC=nP;

childC=new int[totC][genes];

z=new double[totC][genes];

makespan=new Object[totC];

int[] cParent1=new int[genes];

int[] cParent2=new int[genes];

int k=0, sum=0;

if(totC!=0){

for(int i1=0;i1<totC/2;i1++){

for(int l=0;l<genes;l++){

cParent1[l]=ind[index[k]][l];

cParent2[l]=ind[index[k+1]][l];

}

getPosition(cParent1, cParent2);

Exchange(cParent1, cParent2);

getMissExceed();

editMissExceed(cParent1, cParent2);

childC[sum]=child1;

childC[sum+1]=child2; sum=sum+2;

k=k+2;

}

for(int l=0;l<totC;l++){

z[l] = setObj(childC[l]);

makespan[l] = mc;

}

System.out.println("Anak Crossover : ");

Show(totC);

System.out.println("");

}

else{System.out.println("Tidak terjadi Crossover");}

}

public int[][] getChild(){return childC;}

public int getSumChild(){return totC;}

public double[][] getZChild(){return z;}

public Object[] getMakespan(){return makespan;}

private void getPosition(int[] Par1, int[] Par2) {

int genes=Par1.length;

int temp=0, t=0;

int job=0;

Random r = new Random();

pos11 = r.nextInt(genes);

job=Par1[pos11];

for(int j1=(pos11+1);j1<genes;j1++){

if(Par1[j1]==job){

pos12=j1;

temp=1;

break;}

}

if(temp==0){

for(int k1=(pos11-1);k1>=0;k1--){

if(Par1[k1]==job){

t=pos11;

pos11=k1;

pos12=t;

break;}

}

}

nPart1=(pos12+1)-pos11;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 142: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 29

for(int j2=0;j2<genes;j2++){

if(Par2[j2]==job){

pos21=j2;

break;

}

}

for(int k2=(pos21+1);k2<genes;k2++){

if(Par2[k2]==job){

pos22=k2;

break;

}

}

nPart2=(pos22+1)-pos21;

}

private void Exchange(int[] Par1, int[] Par2) {

int genes=Par1.length;

partial1=new int[nPart1];

partial2=new int[nPart2];

part1=new int[nPart1];

part2=new int[nPart2];

int i =0;

for(int j=pos11;j<=pos12;j++){

partial1[i]=Par1[j];

i++;

}

int i1=0;

for(int j1=pos21;j1<=pos22;j1++){

partial2[i1]=Par2[j1];

i1++;

}

System.arraycopy(partial1,0, part1, 0, nPart1);

System.arraycopy(partial2,0, part2, 0, nPart2);

nParent1=genes-nPart1+nPart2;

nParent2=genes-nPart2+nPart1;

OCross1=new int[nParent1];

OCross2=new int[nParent2];

int j2=0; int j22=pos12+1;

for(int i2=0;i2<nParent1;i2++){

if(i2<pos11){

OCross1[i2]=Par1[i2];

}

else if(i2<(pos11+nPart2)){

OCross1[i2]=partial2[j2]; j2++;

}

else{

OCross1[i2]=Par1[j22]; j22++;

}

}

int j3=0; int j33=pos22+1;

for(int i3=0;i3<nParent2;i3++){

if(i3<pos21){

OCross2[i3]=Par2[i3];

}

else if(i3<(pos21+nPart1)){

OCross2[i3]=partial1[j3]; j3++;

}

else{

OCross2[i3]=Par2[j33]; j33++;

}

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 143: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 30

private void getMissExceed() {

for(int i=0;i<nPart1;i++){

for(int j=0;j<nPart2;j++){

if(partial1[i]==partial2[j]){

if(partial1[i]!=-1||partial2[j]!=-1){

partial1[i]=-1;partial2[j]=-1;

}

}

}

}

int n1=0;

for(int i1=0;i1<nPart1;i1++){

if(partial1[i1]!=-1){n1++; }

}

int n2=0;

for(int j1=0;j1<nPart2;j1++){

if(partial2[j1]!=-1){n2++; }

}

miss1=new int [n1];

miss2=new int [n2];

exceed1=new int [n2];

exceed2=new int [n1];

int t=0;

if(n1!=0){

for(int k=0;k<nPart1;k++){

if(partial1[k]!=-1){ miss1[t]=exceed2[t]=partial1[k]; t++; }

}

}

if(n2!=0){

t=0;

for(int l=0;l<nPart2;l++){

if(partial2[l]!=-1){ miss2[t]=exceed1[t]=partial2[l]; t++; }

}

}

}

private void getOper(int[] Job, int[] place, int pos, int panjang){

indi = new Individu(mesin, proses, dued);

int gen=Job.length;

int[] opr=new int [gen];

indi.setOperation(Job);

opr=indi.getOperation();

int j=0;

for(int i=pos;i<(pos+panjang);i++){

place[j]=opr[i]; j++;

}

}

private void editMissExceed(int[] Par1, int[] Par2) {

int[] del=new int [2];

int pM1=miss2.length;

int pM2=miss1.length;

int genes=childC[0].length;

child1=new int [genes];

child2=new int [genes];

oprP1=new int [nPart2]; oprP2=new int [nPart1];

oprC1=new int [nPart2]; oprC2=new int [nPart1];

int opP=0;

int opC=0;

getOper(Par2, oprP1, pos21, nPart2);

getOper(Par1, oprP2, pos11, nPart1);

int e1=0;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 144: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 31

if(pM1!=0){

for(int i=0;i<nPart2;i++){

getOper(OCross1, oprC1, pos11, nPart2);

if(partial2[i]!=-1){

del=delGen(oprP1[i], oprC1[i], nParent1, pos11, nPart2,

OCross1, exceed1[e1]); e1++;

nParent1=del[0];

pos11=del[1];

}}}

System.arraycopy(OCross1, 0, child1, 0, nParent1);

if(pM2!=0){

int n1=0;

while(n1<pM2){

int ada=0;

nParent1=nParent1+1;

getOper(child1, oprC1, pos11, nPart2);

for(int j=1;j<(nPart2-1);j++){

if(miss1[n1]==part2[j]){

ada=1; opP=oprP1[j]; opC=oprC1[j]; break;

}}

if(ada==0){

addBack(nParent1, (pos11+nPart2), child1, miss1[n1]);

}

else {

if(opP<=opC){ addBack(nParent1, (pos11+nPart2), child1, miss1[n1]);}

else{pos11=addFront(nParent1, pos11, child1, miss1[n1]);}

}

n1++;

}

}

e1=0;

if(pM2!=0){

for(int i1=0;i1<nPart1;i1++){

getOper(OCross2, oprC2, pos21, nPart1);

if(partial1[i1]!=-1){

del=delGen(oprP2[i1], oprC2[i1], nParent2, pos21, nPart1,

OCross2, exceed2[e1]); e1++;

nParent2=del[0];

pos21=del[1];

}

}}

System.arraycopy(OCross2, 0, child2, 0, nParent2);

if(pM1!=0){

int n1=0;

while(n1<pM1){

int ada=0;

nParent2=nParent2+1;

getOper(child2, oprC2, pos21, nPart1);

for(int j=1;j<(nPart1-1);j++){

if(miss2[n1]==part1[j]){

ada=1; opP=oprP2[j]; opC=oprC2[j]; break;

}}

if(ada==0){

addBack(nParent2, (pos21+nPart1), child2, miss2[n1]);

}

else {

if(opP<=opC){ addBack(nParent2, (pos21+nPart1), child2, miss2[n1]);}

else{pos21=addFront(nParent2, pos21, child2, miss2[n1]);}

}

n1++;

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 145: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 32

}

private int[] delGen(int awal, int akhir, int jum, int pos, int

lPart, int[] anak, int lebih) {

//Menghapus gen lebih pada anak

int[] hasil=new int[2];

hasil[1]=pos;

int m1=0, posisi=0;

if(akhir<=awal){

for(int i=(pos+lPart);i<jum;i++){

if(anak[i]==lebih){

posisi=i; m1=1;

}

}

if(m1==0){

for(int i1=0;i1<pos;i1++){

if(anak[i1]==lebih){

posisi=i1;

hasil[1]=pos-1;

}

}

}

}

else if (akhir>awal){

for(int i2=0;i2<pos;i2++){

if(anak[i2]==lebih){

posisi=i2; m1=1;

hasil[1]=pos-1;

}

}

if(m1==0){

for(int i3=(pos+lPart);i3<jum;i3++){

if(anak[i3]==lebih){

posisi=i3;

}

}

}

}

for(int j=posisi;j<(jum-1);j++){

anak[j]=anak[j+1];

}

hasil[0]=jum-1;

return(hasil);

}

private void addBack(int lAnak, int start, int[] anak, int miss) {

//Menambah gen kurang pada anak yang tidak ada dalam partial schedule

for(int i=(lAnak-1);i>start;i--){

anak[i]=anak[i-1];

}

anak[start]=miss;

}

private int addFront(int lAnak, int start, int[] anak, int miss) {

//Menambah gen kurang pada anak yang ada dalam partial schedule

int pos=0;

for(int i=(lAnak-1);i>start;i--){

anak[i]=anak[i-1];

}

anak[start]=miss;

pos=start+1;

return pos;

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 146: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 33

private double[] setObj(int[] a){

indi=new Individu(mesin, proses, dued);

indi.setJob(a);

double[][] complete = indi.getCompletion();

double rank = indi.getRanking();

mc = indi.getmC();

Objective obj = new Objective(mesin, proses, dued, complete, rank);

double[] ob = obj.getZ();

return ob;

}

private void giveValue(int[] a){

int row=a.length;

for(int i=0;i<row;i++){

a[i] = -1;

}

}

public void Show(int jum){

for(int i=0;i<jum;i++){

System.out.print(i+".) Kromosom :");

Out((int[]) childC[i]); System.out.print(" => Makespan ");

Out((double[]) makespan[i]);

System.out.print(" Nilai Tujuan : "); Out((double[]) z[i]);

System.out.println();

}

}

private void Out(int[] a){

int col=a.length;

for(int i=0;i<col;i++){

System.out.print(a[i]+" ");

}

System.out.println("");

}

private void Out(double[] a){

int col=a.length;

System.out.print("(");

for(int i=0;i<(col-1);i++){

System.out.print(a[i]+", ");

}

System.out.print(a[col-1]+")");

}

}

Source Code Kelas SwapMutation.java package fmojss;

import java.util.Random;

public final class SwapMutation {

private Individu ind;

private int[][] childM;

private int totM;

private double[][] z;

private Object[] makespan;

private double[] mc;

private int[][] mesin;

private double[][][] proses;

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 147: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 34

private double[][] dued;

public SwapMutation(int[][] mes, double[][][] pros, double[][] due,

int[] par, int[][] ind) {

mesin=mes;

proses=pros;

dued=due;

int genes=ind[0].length;

totM=par.length;

int sum=0, r0=0, r1=0, temp=0;

int[][] cParent=new int[totM][genes];

for(int j=0;j<totM;j++){

System.arraycopy(ind[par[j]], 0, cParent[j], 0, genes);

}

childM=new int[totM][genes];

z=new double[totM][genes];

makespan=new Object[totM];

for(int i=0;i<totM;i++){

Random r = new Random();

r0 = r.nextInt(genes);

r = new Random();

r1 = r.nextInt(genes);

while(r0==r1||cParent[i][r0]==cParent[i][r1]){

r = new Random();

r1 = r.nextInt(genes);

}

temp=cParent[i][r0];

cParent[i][r0]=cParent[i][r1];

cParent[i][r1]=temp;

System.arraycopy(cParent[i], 0, childM[i], 0, genes);

}

for(int l1=0;l1<totM;l1++){

z[l1] = setObj(childM[l1]);

makespan[l1] = mc;

}

System.out.println("Anak Mutasi :");

Show(totM);

System.out.println();

}

public int[][] getChild(){return childM;}

public int getSumChild(){return totM;}

public double[][] getZChild(){return z;}

public Object[] getMakespan(){return makespan;}

private double[] setObj(int[] a){

ind=new Individu(mesin, proses, dued);

ind.setJob(a);

double[][] complete = ind.getCompletion();

double rank = ind.getRanking();

mc = ind.getmC();

Objective obj = new Objective(mesin, proses, dued, complete, rank);

double[] ob = obj.getZ();

return ob;

}

private static void Out(int[][] a){

int row = a.length;

int col = a[0].length;

for(int i=0;i<row;i++){

for(int j=0;j<col;j++){

System.out.print(a[i][j]+" ");

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 148: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 35

System.out.println();

}

}

public void Show(int jum){

for(int i=0;i<jum;i++){

System.out.print(i+".) Kromosom :");

Out((int[]) childM[i]); System.out.print(" => Makespan ");

Out((double[]) makespan[i]);

System.out.println();

System.out.print(" Nilai Tujuan : "); Out((double[]) z[i]);

System.out.println();

}

}

private void Out(int[] a){

int col=a.length;

for(int i=0;i<col;i++){

System.out.print(a[i]+" ");

}

}

private void Out(double[] a){

int col=a.length;

System.out.print("(");

for(int i=0;i<(col-1);i++){

System.out.print(a[i]+", ");

}

System.out.print(a[col-1]+")");

}

}

Source Code Kelas About.java package fmojss;

public class About extends javax.swing.JFrame {

public About() {

initComponents();

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{ dispose();}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new About().setVisible(true);}

});

}

}

Source Code Kelas Help.java package fmojss;

public class Help extends javax.swing.JFrame {

public Help() {

initComponents();

start();

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 149: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 36

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

private void choiceItemStateChanged(java.awt.event.ItemEvent evt) {

try{

int index=choice.getSelectedIndex();

if(index==0){

text.setText(" Welcome to Help Content\n Choose the item !");

}else if(index==1){

text.setText(" *) File --> Data\n"+

" Digunakan untuk menginputkan Data\n"+

" yang akan diproses. \n\n"+

" *) Setting --> Parameters\n"+

" Digunakan untuk mengatur inputan\n"+

" Parameter. \n\n"+

" *) Help --> Help\n"+

" Digunakan untuk mengetahui hal-hal\n"+

" terkait dengan program.\n\n"+

" *) Help --> About\n"+

" Penjelasan tentang Program.\n\n"+

" *) Process\n"+

" Melakukan proses iterasi untuk\n"+

" memperoleh hasil permasalahan.\n\n");

}else if(index==2){

text.setText(" Proses Inputan :\n"+

" 1) Select Data yang akan diproses dengan\n"+

" memilih menu File -> Data\n\n"+

"2)Pada tampilan awal, inputkan Population\n"+

" Size dan Maximum Generation\n"+

" Parameter \n\n"+

" 3) Jika ingin merubah parameter, pilih\n"+

" Setting -> Parameters\n\n"+

" --- Silahkan Process ---\n\n");

}else if(index==3){

text.setText(" *) Population Size \n"+

" -> Banyaknya jumlah kromosom atau\n"+

" individu yang dibangkitkan. \n\n"+

" *) Maximum Generation\n"+

"-> Batas iterasi yang akan dilakukan.\n\n"+

" *) Degree of Similarity\n"+

" -> Batas derajat kesamaan antar\n"+

" individu awal yang dibangkitkan. \n"+

" Nilai harus (0,1).\n\n"+

" *) Probability of Crossover\n"+

" -> Prosentase individu yang akan \n"+

" dicrossover. Nilai harus (0,1).\n\n"+

" *) Probability of Mutasi\n"+

" -> Prosentase individu yang akan\n"+

" dimutasi. Nilai harus (0,1).\n\n"+

" *) Tournament Size\n"+

"-> Banyak individu yang diturnamenkan\n"+

" pada proses seleksi. Nilai harus \n"+

" (0,1).\n\n");

}else if(index==4){

text.setText(" Ketentuan inputan Data :\n\n"+

" 1) Data harus dalam file berbentuk\n"+

" Microsoft Excel 97-2003 Worksheet \n"+

" (.xls).\n\n"+

"2) Untuk sheet 1-4, Baris merupakan Job\n"+

" dan kolom merupakan operasi.\n\n"+

" 3) Sheet pertama diisi dengan urutan \n"+

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 150: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 6 - 37

" Mesin untuk tiap Job.\n\n"+

" 4) Sheet kedua diisi dengan waktu \n"+

" operasi pertama tiap operasi.\n\n"+

" 5) Sheet ketiga diisi dengan waktu \n"+

" operasi kedua tiap operasi.\n\n"+

" 6) Sheet keempat diisi dengan waktu \n"+

" operasi ketiga tiap operasi.\n\n"+

" 7) Sheet kelima diisi dengan waktu \n"+

" duedate Job, dengan baris merupakan \n"+

" Job dan kolom merupakan waktu.\n\n");

}else if(index==5){

text.setText(" Keterangan Output :\n\n"+

" 1) Rata-rata Agreement Index, Minimum\n"+

" Agreement Index, Maximum \n"+

" Completion Time merupakan nilai \n"+

" tujuan hasil terbaik yang diperoleh.\n\n"+

" 2) Solusi merupakan kode Job hasil.\n\n"+

" 3) JOM merupakan tabel urutan \n"+

" pekerjaan, operasi dan mesin yang \n"+

" digunakan.\n\n"+

" 4) Tabel mesin merupakan tabel urutan\n"+

" job pada tiap mesin.\n\n");

}else if(index==6){

text.setText(" Tabel JOM merupakan tabel urutan Job,\n"+

" operasi dan mesin.\n\n"+

" Contoh :\n\n"+

" Job = 0 1 1 0\n"+

" Operasi = 0 0 1 1\n"+

" Mesin = 1 1 0 0\n\n"+

" Contoh tersebut menunjukkan bahwa\n"+

" Job ke-0 operasi ke-0 diproses pada\n"+

" mesin 1 dst.\n\n");

}

else if(index==7){

text.setText("Tabel Mesin merupakan tabel urutan Job,\n"+

" pada tiap mesin.\n\n"+

" Contoh :\n\n"+

" Mesin | Urutan Job\n"+

" 0 | 0 1\n"+

" 1 | 1 0\n\n"+

" Contoh tersebut menunjukkan bahwa\n"+

"pada mesin ke-0 Job ke-0 diproses lebih\n"+

" dulu dari mesin 1 dst.\n\n");

}

}

catch(Exception e){}

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Help().setVisible(true);

}

});

}

private void start() {

choice.setSelectedIndex(0);

text.setText(" Welcome to Help Content\n Choose the item !");

}

}

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 151: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 7 - 1

Lampiran 7 Hasil Penyelesaian Problem 1 FMOJSSP

degree Pc Pm z1 z2 z3

0.7

0.5

0.01 0.88632 0.62241 (65.0, 87.0, 111.0)

0.1 0.91206 0.70968 (62.0, 86.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.6

0.01 0.96186 0.79422 (65.0, 87.0, 110.0)

0.1 0.91206 0.70968 (62.0, 86.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.7

0.01 0.96186 0.79422 (66.0, 89.0, 111.0)

0.1 0.91206 0.70968 (62.0, 86.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.8

0.5

0.01 0.93547 0.68182 (70.0, 93.0, 120.0)

0.1 0.96186 0.79422 (65.0, 87.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.6

0.01 0.96186 0.79422 (65.0, 87.0, 110.0)

0.1 0.96186 0.79422 (65.0, 87.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.7

0.01 0.96186 0.79422 (65.0, 87.0, 110.0)

0.1 0.83345 0.42078 (58.0, 84.0, 110.0)

0.2 0.91206 0.70968 (62.0, 86.0, 110.0)

0.9 0.5

0.01 0.96586 0.80620 (73.0, 99.0, 124.0)

0.1 0.84516 0.51042 (63.0, 88.0, 109.0)

0.2 0.86556 0.57100 (62.0, 88.0, 109.0)

0.6 0.01 0.91206 0.70968 (62.0, 86.0, 110.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 152: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 7 - 2

degree Pc Pm z1 z2 z3

0.9

0.6 0.1 0.91206 0.70968 (62.0, 86.0, 110.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

0.7

0.01 0.96186 0.79422 (65.0, 87.0, 110.0)

0.1 0.78339 0.42078 (58.0, 84.0, 109.0)

0.2 0.96186 0.79422 (65.0, 87.0, 110.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 153: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 8 - 1

Lampiran 8 Hasil Penyelesaian Problem 2 FMOJSSP

degree Pc Pm z1 z2 z3

0.7

0.5

0.01 0.98861 0.95192 (61.0, 83.0, 101.0)

0.1 0.99084 0.97143 (60.0, 81.0, 100.0)

0.2 0.97588 0.91176 (54.0, 73.0, 89.0)

0.6

0.01 0.97588 0.91176 (54.0, 73.0, 89.0)

0.1 0.99227 0.97460 (60.0, 83.0, 99.0)

0.2 0.97588 0.91176 (54.0, 73.0, 89.0)

0.7

0.01 0.97588 0.91176 (54.0, 73.0, 89.0)

0.1 0.99084 0.97143 (60.0, 81.0, 100.0)

0.2 0.99084 0.97143 (60.0, 81.0, 100.0)

0.8

0.5

0.01 0.99227 0.97460 (60.0, 83.0, 99.0)

0.1 0.97588 0.91176 (54.0, 73.0, 89.0)

0.2 0.96718 0.82949 (58.0, 75.0, 93.0)

0.6

0.01 0.96718 0.82949 (58.0, 75.0, 93.0)

0.1 0.97588 0.91176 (54.0, 73.0, 89.0)

0.2 0.99084 0.97143 (60.0, 81.0, 100.0)

0.7

0.01 0.99227 0.97460 (60.0, 83.0, 99.0)

0.1 0.98861 0.95192 (61.0, 83.0, 101.0)

0.2 0.99084 0.97143 (60.0, 81.0, 100.0)

0.9

0.5

0.01 0.96718 0.82949 (58.0, 75.0, 93.0)

0.1 0.99227 0.97460 (60.0, 83.0, 99.0)

0.2 0.99084 0.97143 (60.0, 81.0, 100.0)

0.6 0.01 0.97588 0.91176 (54.0, 73.0, 89.0)

0.1 0.99187 0.97333 (62.0, 83.0, 99.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 154: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 8 - 2

degree Pc Pm z1 z2 z3

0.9

0.6 0.2 0.99227 0.97460 (60.0, 83.0, 99.0)

0.7

0.01 0.99084 0.97143 (60.0, 81.0, 100.0)

0.1 0.99084 0.97143 (60.0, 81.0, 100.0)

0.2 0.97588 0.91176 (54.0, 73.0, 89.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 155: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 9 - 1

Lampiran 9 Hasil Penyelesaian Problem 3 FMOJSSP

degree Pc Pm z1 z2 z3

0.7

0.5

0.01 0.74314 0.23923 (38.0, 49.0, 60.0)

0.1 0.61465 0.37594 (27.0, 36.0, 47.0)

0.2 0.71662 0.37594 (27.0, 36.0, 47.0)

0.6

0.01 0.62310 0.28444 (27.0, 37.0, 47.0)

0.1 0.84864 0.69231 (28.0, 38.0, 49.0)

0.2 0.73071 0.36000 (27.0, 36.0, 47.0)

0.7

0.01 0.84864 0.69231 (28.0, 38.0, 49.0)

0.1 0.66618 0.34375 (34.0, 45.0, 56.0)

0.2 0.73071 0.36000 (27.0, 36.0, 47.0)

0.8

0.5

0.01 0.68343 0.37594 (27.0, 36.0, 47.0)

0.1 0.73071 0.36000 (27.0, 36.0, 47.0)

0.2 0.84864 0.69231 (28.0, 38.0, 49.0)

0.6

0.01 0.56189 0.37594 (30.0, 42.0, 56.0)

0.1 0.84864 0.69231 (28.0, 38.0, 49.0)

0.2 0.84864 0.69231 (28.0, 38.0, 49.0)

0.7

0.01 0.66885 0.35714 (29.0, 36.0, 45.0)

0.1 0.68602 0.26738 (30.0, 39.0, 52.0)

0.2 0.71662 0.37594 (27.0, 36.0, 47.0)

0.9

0.5

0.01 0.71272 0.33750 (27.0, 36.0, 48.0)

0.1 0.84864 0.69231 (28.0, 38.0, 49.0)

0.2 0.74259 0.54135 (30.0, 40.0, 50.0)

0.6 0.01 0.71759 0.32010 (39.0, 49.0, 60.0)

0.1 0.71662 0.37594 (27.0, 36.0, 47.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 156: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 9 - 2

degree Pc Pm z1 z2 z3

0.9

0.6 0.2 0.84864 0.69231 (28.0, 38.0, 49.0)

0.7

0.01 0.67665 0.37594 (27.0, 36.0, 47.0)

0.1 0.73071 0.36000 (27.0, 36.0, 47.0)

0.2 0.71662 0.37594 (27.0, 36.0, 47.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 157: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 10 - 1

Lampiran 10 Hasil Running Problem 1 FMOJSSP

===*** ITERASI AWAL ***===

== POPULASI AWAL ==

0.) Kromosom : 4 3 3 5 2 3 0 4 4 4 4 3 0 2 0 1 4 0 0 1 0 2 3 2 5 5 3 1 2 1 2 1 1 5 5 5 Makespan : (96.0, 133.0, 165.0)

Nilai Tujuan : (0.5007256606833795, 0.007876496534341911, 131.75) 1.) Kromosom : 4 5 3 2 1 4 5 2 1 1 4 2 2 0 1 2 4 4 0 5 4 3 3 0 2 0 3 0 3 0 1 3 5 1 5 5

Makespan : (91.0, 124.0, 156.0) Nilai Tujuan : (0.5419873245949839, 0.009765625, 123.75) 2.) Kromosom : 2 1 0 2 5 4 3 3 0 0 5 1 1 1 3 5 4 1 3 2 0 4 3 2 2 1 5 5 0 3 0 5 4 4 4 2

Makespan : (81.0, 115.0, 143.0) Nilai Tujuan : (0.4968959988408992, 0.006746626686657545, 113.5) 3.) Kromosom : 3 0 2 4 2 2 0 0 2 5 3 5 2 0 5 3 3 2 0 4 0 1 5 3 5 5 4 4 1 4 4 3 1 1 1 1

Makespan : (98.0, 136.0, 175.0) Nilai Tujuan : (0.4164371678945444, 0.013539651837524595, 136.25) 4.) Kromosom : 1 0 5 3 1 5 4 0 2 0 2 2 0 5 5 5 0 5 1 1 1 4 0 1 2 4 4 4 3 2 4 2 3 3 3 3

Makespan : (105.0, 149.0, 187.0) Nilai Tujuan : (0.38437569724605436, 0.0022399203583867164, 147.5) 5.) Kromosom : 3 1 4 5 2 2 5 5 0 4 5 4 0 0 5 2 0 2 3 1 0 1 2 3 5 2 0 3 3 1 4 3 1 4 4 1

Makespan : (84.0, 117.0, 144.0) Nilai Tujuan : (0.2613414002222901, 0.0, 115.5 6.) Kromosom : 0 4 2 4 5 0 5 0 1 5 5 2 5 4 4 4 3 2 0 1 3 3 3 4 1 3 5 1 1 1 2 3 2 0 0 2

Makespan : (96.0, 135.0, 173.0) Nilai Tujuan : (0.22568395002368488, 0.0031055900621114467, 134.75) 7.) Kromosom : 4 1 3 2 4 1 3 4 4 1 0 5 3 1 4 4 1 2 3 3 0 5 3 0 5 5 0 2 2 5 1 5 0 2 0 2

Makespan : (84.0, 121.0, 150.0) Nilai Tujuan : (0.5209907940476955, 0.04879032258064517, 119.0) 8.) Kromosom : 5 3 2 1 5 4 0 0 4 2 3 0 3 5 4 3 0 0 5 5 4 0 3 5 3 4 2 4 1 1 2 1 1 2 2 1

Makespan : (97.0, 130.0, 162.0) Nilai Tujuan : (0.36840791010542273, 0.01318681318681439, 129.75) 9.) Kromosom : 2 3 0 3 0 2 2 4 4 3 5 5 2 1 1 2 4 4 4 0 0 0 2 5 4 3 0 5 5 1 5 3 1 1 1 3

Makespan : (90.0, 130.0, 165.0) Nilai Tujuan : (0.2171491840883081, 2.7210884353756154E-4, 128.75) 10.) Kromosom : 0 1 3 2 5 1 0 0 2 2 2 0 3 1 3 4 2 4 3 5 4 5 3 2 3 1 5 5 5 1 4 4 1 0 4 0

Makespan : (90.0, 127.0, 162.0) Nilai Tujuan : (0.22840405052722557, 0.0023640661938536906, 126.5) 11.) Kromosom : 5 3 1 0 2 2 4 3 2 4 3 5 5 4 1 5 4 1 2 0 3 2 3 5 5 2 1 4 3 0 4 0 1 1 0 0

Makespan : (85.0, 117.0, 147.0) Nilai Tujuan : (0.5761586867390758, 0.09695512820512821, 116.5) 12.) Kromosom : 2 1 4 1 5 5 2 1 4 1 1 4 3 0 2 0 2 1 0 3 0 3 3 2 0 3 5 2 5 3 5 5 4 0 4 4

Makespan : (98.0, 134.0, 166.0) Nilai Tujuan : (0.4332860823671409, 0.02836134453781492, 133.0) 13.) Kromosom : 1 3 1 2 1 5 2 2 2 4 1 0 5 2 2 0 3 5 4 0 3 5 1 1 5 0 4 3 3 3 5 4 0 0 4 4

Makespan : (93.0, 131.0, 165.0) Nilai Tujuan : (0.43192614143732566, 7.012622720891998E-4, 130.0) 14.) Kromosom : 2 4 4 3 5 4 4 3 3 4 4 2 5 1 5 1 5 0 2 0 5 1 1 1 5 2 1 0 0 2 2 0 3 0 3 3

Makespan : (124.0, 176.0, 219.0) Nilai Tujuan : (0.2489966789871723, 1.8031013342948183E-4, 173.75)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 158: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 10 - 2

15.) Kromosom : 2 1 3 3 3 1 1 3 1 1 3 2 4 4 4 5 2 5 1 4 3 5 4 4 0 0 2 2 2 5 0 0 0 0 5 5 Makespan : (109.0, 150.0, 189.0)

Nilai Tujuan : (0.5156139767810681, 0.007692307692307361, 149.5) 16.) Kromosom : 2 4 1 5 3 0 3 0 2 0 0 0 3 1 2 1 0 2 2 2 1 3 1 1 3 3 4 4 4 5 5 5 5 4 4 5

Makespan : (96.0, 135.0, 171.0) Nilai Tujuan : (0.39970220785755034, 0.010943912448700834, 134.25) 17.) Kromosom : 1 0 5 1 2 1 1 5 1 4 5 0 0 3 0 4 2 1 5 0 5 3 0 3 4 5 3 4 4 2 3 2 2 3 4 2

Makespan : (97.0, 132.0, 168.0) Nilai Tujuan : (0.406334188885475, 3.885003885000462E-4, 132.25) 18.) Kromosom : 3 5 3 0 5 5 3 4 0 5 2 2 4 3 5 4 1 3 1 5 3 4 4 0 2 4 2 0 1 1 2 2 0 0 1 1

Makespan : (95.0, 131.0, 164.0) Nilai Tujuan : (0.5110994501254899, 0.005152979066023166, 130.25) 19.) Kromosom : 0 4 0 5 3 0 5 4 4 4 0 5 3 4 3 4 1 0 1 0 5 5 1 1 1 5 1 3 3 2 2 3 2 2 2 2

Makespan : (74.0, 111.0, 139.0) Nilai Tujuan : (0.5503732804430096, 0.01940700808625312, 108.75) ===*** ITERASI KE-100 ***===

0.) Kromosom : 1 5 2 3 5 4 2 2 4 5 3 2 0 1 3 5 0 3 5 4 1 5 2 1 0 2 1 4 0 3 4 1 4 3 0 0 Makespan : (65.0, 87.0, 110.0)

Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 1.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 5 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 2.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 5 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 3.) Kromosom : 1 5 4 2 2 5 5 2 3 4 3 2 5 1 0 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 4.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 5 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 5.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 5 4 2 2 5 3 5 0 2 1 4 1 0 1 3 0 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 6.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 2 3 4 5 5 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 7.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 5 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 8.) Kromosom : 1 5 4 2 2 5 5 2 3 4 3 2 5 1 0 2 3 5 4 2 1 0 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 9.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 2 3 4 5 5 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 10.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 5 4 2 2 5 3 5 0 2 1 4 1 0 1 3 0 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 159: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 10 - 3

11.) Kromosom : 1 5 4 2 2 5 5 2 3 3 5 0 2 1 4 3 2 5 4 2 1 0 5 0 3 1 0 1 4 1 4 3 4 0 0 3 Makespan : (65.0, 87.0, 110.0)

Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 12.) Kromosom : 1 5 4 2 2 5 3 2 5 1 0 2 3 4 2 5 5 4 3 2 0 1 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 13.) Kromosom : 1 5 2 4 2 5 3 5 0 2 1 4 3 2 2 3 4 5 5 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 14.) Kromosom : 1 5 4 2 2 5 3 2 5 2 3 5 0 2 1 4 3 4 5 2 0 1 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 15.) Kromosom : 1 5 4 2 2 5 3 5 2 4 3 5 0 2 1 4 3 5 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 16.) Kromosom : 1 5 4 2 2 2 5 5 3 3 5 0 2 1 4 3 2 5 4 2 1 0 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 17.) Kromosom : 1 5 4 2 2 5 5 2 3 3 5 0 0 1 2 4 5 2 3 4 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 18.) Kromosom : 1 5 4 2 2 5 3 2 5 2 3 5 0 1 4 3 5 4 2 2 5 1 0 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25) 19.) Kromosom : 1 5 4 2 2 5 3 5 0 2 1 4 3 2 5 5 4 3 2 0 1 2 5 0 3 1 0 1 4 1 4 3 4 0 0 3

Makespan : (65.0, 87.0, 110.0) Nilai Tujuan : (0.9618567939996511, 0.7942176870748296, 87.25)

---+ SOLUSI +---

Urutan Job : 1 5 2 3 5 4 2 2 4 5 3 2 0 1 3 5 0 3 5 4 1 5 2 1 0 2 1 4 0 3 4 1 4 3 0 0 Rata-rata AI = 0.9618567939996511 Minimum AI = 0.7942176870748296 Makespan = (65.0, 87.0, 110.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 160: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 11 - 1

Lampiran 11 Hasil Running Problem 2 FMOJSSP

===*** ITERASI AWAL ***===

== POPULASI AWAL ==

0.) Kromosom : 4 5 1 0 1 4 0 5 3 1 4 3 2 2 3 1 1 3 1 5 4 5 5 0 0 3 4 3 4 2 5 2 2 0 0 2 Makespan : (84.0, 117.0, 144.0)

Nilai Tujuan : (0.19880395608452947, 0.005247813411078634, 115.5) 1.) Kromosom : 5 3 2 5 3 1 3 5 1 1 3 0 3 0 2 5 5 1 0 2 4 5 3 4 4 0 0 2 4 1 0 2 1 2 4 4

Makespan : (87.0, 117.0, 142.0) Nilai Tujuan : (0.17215714538005164, 0.038571428571431136, 115.75) 2.) Kromosom : 1 2 4 5 2 2 1 2 0 4 0 2 5 2 4 3 0 5 1 0 5 1 4 0 1 1 3 5 4 0 5 4 3 3 3 3

Makespan : (89.0, 121.0, 148.0) Nilai Tujuan : (0.45227070562607224, 0.06288819875776572, 119.75) 3.) Kromosom : 0 3 3 3 3 5 3 4 3 5 2 5 5 1 1 1 1 4 0 5 5 2 2 4 4 4 0 1 2 4 1 0 2 2 0 0

Makespan : (108.0, 147.0, 181.0) Nilai Tujuan : (0.32189489532262644, 0.0016708437761055377, 145.75) 4.) Kromosom : 5 2 0 0 5 2 4 4 2 4 4 0 0 4 5 4 3 5 1 1 1 3 5 5 2 2 3 1 3 3 3 2 1 0 1 0

Makespan : (94.0, 129.0, 164.0) Nilai Tujuan : (0.28989478863205126, 0.012244897959183675, 129.0) 5.) Kromosom : 3 2 4 4 3 5 1 3 0 5 2 4 3 5 2 5 1 3 5 4 0 3 5 0 0 1 4 1 0 4 2 0 2 1 1 2

Makespan : (69.0, 97.0, 125.0) Nilai Tujuan : (0.5603327293387593, 0.07971698113207525, 97.0 6.) Kromosom : 2 3 4 4 5 0 0 1 4 0 5 0 4 0 0 5 2 1 3 4 4 1 1 3 5 1 2 3 2 3 2 5 1 3 5 2

Makespan : (85.0, 119.0, 149.0) Nilai Tujuan : (0.37183020017143664, 0.020692567567570243, 118.0) 7.) Kromosom : 3 1 4 1 3 4 5 4 5 1 0 3 2 3 2 4 2 0 2 1 1 3 0 2 1 0 0 5 0 5 4 2 3 4 5 5

Makespan : (88.0, 124.0, 154.0) Nilai Tujuan : (0.27379856573916067, 0.03885003885003926, 122.5) Nilai 8.) Kromosom : 2 1 3 1 1 5 4 3 2 1 0 5 1 3 5 1 5 2 5 4 5 2 2 2 4 0 3 3 4 3 4 4 0 0 0 0

Makespan : (92.0, 128.0, 156.0) Nilai Tujuan : (0.4374809506962953, 0.0058139534883731815, 126.0) 9.) Kromosom : 2 0 3 3 4 2 3 0 1 0 3 0 3 1 0 4 3 2 0 4 4 1 4 5 5 2 5 1 5 1 5 4 2 5 2 1

Makespan : (83.0, 118.0, 150.0) Nilai Tujuan : (0.5234961869799603, 0.010725010725008186, 117.25) 10.) Kromosom : 1 0 4 2 0 3 0 1 2 2 5 4 3 5 5 4 3 5 2 5 4 3 0 4 4 2 2 1 1 3 3 0 1 0 5 1

Makespan : (103.0, 135.0, 167.0) Nilai Tujuan : (0.14591256402736238, 0.00206398348813255, 135.0) 11.) Kromosom : 5 1 3 2 5 0 1 3 0 3 3 3 4 1 4 0 4 0 2 0 1 3 1 0 2 2 5 1 2 2 4 5 4 5 4 5

Makespan : (94.0, 128.0, 159.0) Nilai Tujuan : (0.3243469967280711, 0.03361344537815476, 127.25) 12.) Kromosom : 4 4 3 5 4 4 1 0 1 2 2 2 2 5 0 2 2 1 4 4 3 3 1 5 0 1 3 3 0 3 0 1 0 5 5 5

Makespan : (106.0, 142.0, 173.0) Nilai Tujuan : (0.2905230747296799, 0.033498759305210464, 140.75) 13.) Kromosom : 3 2 2 5 1 2 0 3 2 5 2 1 3 5 2 0 4 3 4 3 0 0 4 4 5 3 0 5 1 5 4 0 1 1 1 4

Makespan : (94.0, 125.0, 156.0) Nilai Tujuan : (0.1989224648556708, 0.006114130434782609, 125.0) 14.) Kromosom : 5 2 5 5 5 1 4 4 0 0 1 2 3 5 5 1 2 0 3 2 2 2 4 0 3 3 4 4 0 0 4 3 1 1 3 1

Makespan : (104.0, 143.0, 181.0) Nilai Tujuan : (0.3502660220991025, 0.009100837277029044, 142.75)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 161: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 11 - 2

15.) Kromosom : 5 0 0 2 5 0 3 4 5 1 0 3 3 5 5 4 3 2 5 4 0 1 3 2 2 3 0 4 1 1 1 2 1 2 4 4 Makespan : (95.0, 130.0, 160.0)

Nilai Tujuan : (0.1890538170743087, 3.7664783427476204E-4, 128.75) 16.) Kromosom : 4 4 0 0 4 1 4 3 3 4 5 1 1 3 0 1 4 3 3 1 5 5 2 2 3 2 0 5 1 2 0 0 2 2 5 5

Makespan : (108.0, 147.0, 179.0) Nilai Tujuan : (0.24096801537535809, 0.0062160062160043755, 145.25) 17.) Kromosom : 4 4 0 4 2 1 0 0 5 5 4 5 0 4 0 0 5 1 1 5 2 2 5 3 1 3 3 4 1 1 2 2 2 3 3 3

Makespan : (109.0, 153.0, 191.0) Nilai Tujuan : (0.24612425132805751, 0.03819444444444455, 151.5) 18.) Kromosom : 1 4 1 3 0 5 4 4 1 5 0 5 4 1 3 1 5 2 0 0 0 3 3 3 1 5 4 0 2 2 4 2 5 3 2 2

Makespan : (101.0, 138.0, 172.0) Nilai Tujuan : (0.377243657336318, 0.015216068167986286, 137.25) 19.) Kromosom : 3 4 0 4 4 2 1 5 1 2 3 3 3 4 1 2 1 3 2 5 3 2 5 5 2 5 4 4 0 5 1 0 0 1 0 0

Makespan : (105.0, 144.0, 184.0) Nilai Tujuan : (0.11922984262671182, 0.006818181818182261, 144.25) ===*** ITERASI KE-100 ***===

0.) Kromosom : 3 2 2 5 3 0 1 5 3 4 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4 Makespan : (54.0, 73.0, 89.0)

Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 1.) Kromosom : 3 2 4 5 3 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 2.) Kromosom : 3 5 3 4 2 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 3.) Kromosom : 3 5 3 2 2 0 1 5 3 4 5 2 3 4 1 2 4 3 5 0 1 5 4 3 5 1 0 0 4 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 4.) Kromosom : 3 5 3 2 2 0 4 1 2 4 1 3 5 3 5 2 4 3 5 0 1 5 4 3 5 1 0 0 4 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 5.) Kromosom : 3 2 4 5 3 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 6.) Kromosom : 3 5 3 4 2 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 7.) Kromosom : 3 5 3 2 2 0 5 3 4 1 5 3 4 1 2 2 4 3 5 0 1 5 4 3 5 1 0 0 4 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 8.) Kromosom : 3 5 3 4 2 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 9.) Kromosom : 3 5 3 4 2 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 2 1 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 10.) Kromosom : 3 5 4 3 5 1 0 2 3 2 2 4 5 2 3 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 162: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 11 - 3

11.) Kromosom : 3 5 2 4 5 2 3 1 0 3 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4 Makespan : (54.0, 73.0, 89.0)

Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 12.) Kromosom : 3 5 4 3 5 1 0 2 3 2 4 5 3 2 2 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 13.) Kromosom : 3 5 4 3 5 1 0 2 2 3 4 5 3 2 2 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 14.) Kromosom : 3 5 4 3 5 1 0 2 3 2 2 4 5 2 3 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 15.) Kromosom : 3 5 4 3 5 1 0 2 3 2 4 5 3 2 2 4 1 1 3 0 5 4 5 3 0 1 5 4 0 0 1 2 0 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 16.) Kromosom : 3 5 3 4 2 0 1 5 3 2 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 17.) Kromosom : 3 4 5 3 5 1 0 2 3 2 4 5 3 2 2 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 18.) Kromosom : 3 5 3 5 1 0 2 2 3 4 5 2 3 4 1 2 4 3 5 0 1 5 4 3 5 1 0 0 4 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) 19.) Kromosom : 3 5 3 0 1 5 2 2 3 4 5 2 3 4 1 2 4 3 5 0 1 5 4 3 5 1 0 0 4 0 1 0 2 1 2 4

Makespan : (54.0, 73.0, 89.0) Nilai Tujuan : (0.9758761282290692, 0.9117647058823529, 72.25) ---+ SOLUSI +---

Urutan Job : 3 2 2 5 3 0 1 5 3 4 2 4 5 2 3 4 1 1 3 0 5 4 3 5 1 0 0 4 5 0 1 0 2 1 2 4 Rata-rata AI = 0.9758761282290692 Minimum AI = 0.9117647058823529 Makespan = (54.0, 73.0, 89.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 163: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 12 - 1

Lampiran 12 Hasil Running Problem 3 FMOJSSP

===*** ITERASI AWAL ***===

== POPULASI AWAL ==

0.) Kromosom : 1 0 5 4 5 2 2 4 0 3 5 4 2 0 4 5 4 5 2 3 0 1 5 3 2 2 3 4 1 0 0 1 3 1 3 1 Makespan : (38.0, 50.0, 68.0)

Nilai Tujuan : (0.27169828795215795, 0.007843137254902864, 51.5) 1.) Kromosom : 0 5 4 3 5 5 3 5 0 5 2 0 3 1 0 5 0 3 0 2 3 3 4 2 1 2 4 2 4 1 1 1 4 4 1 2

Makespan : (50.0, 66.0, 83.0) Nilai Tujuan : (0.5019810576008656, 0.05144032921810622, 66.25) 2.) Kromosom : 1 2 3 1 2 5 1 4 0 0 1 3 4 5 2 3 4 4 3 0 4 0 2 4 2 5 1 5 1 2 0 3 5 0 3 5

Makespan : (35.0, 49.0, 70.0) Nilai Tujuan : (0.17598660468252014, 0.0072595281306716795, 50.75) 3.) Kromosom : 0 2 4 0 4 1 0 5 1 3 4 2 0 2 2 1 1 3 1 5 0 3 3 5 3 0 5 4 3 1 2 5 2 4 4 5

Makespan : (44.0, 58.0, 79.0) Nilai Tujuan : (0.09474677369414221, 0.0, 59.75) 4.) Kromosom : 1 4 4 1 2 1 2 1 1 0 3 4 4 0 4 2 2 1 2 5 0 2 0 0 3 4 0 3 3 5 5 3 3 5 5 5

Makespan : (44.0, 62.0, 83.0) Nilai Tujuan : (0.20415741330596404, 0.001114827201783158, 62.75) 5.) Kromosom : 4 2 3 0 1 5 1 0 5 5 4 3 2 4 3 2 4 0 2 4 4 2 5 3 3 2 3 0 1 5 0 0 1 5 1 1

Makespan : (50.0, 65.0, 87.0) Nilai Tujuan : (0.20050372962524696, 0.001225490196078887, 66.75) 6.) Kromosom : 2 2 4 3 1 4 0 2 5 3 2 0 5 4 3 1 2 1 1 1 1 4 2 3 0 5 3 5 0 5 4 3 5 0 0 4

Makespan : (39.0, 52.0, 68.0) Nilai Tujuan : (0.09127476238365213, 0.0, 52.75) 7.) Kromosom : 5 2 1 0 4 4 1 5 0 2 1 3 4 4 0 1 4 5 0 1 0 5 1 3 2 3 2 2 3 3 4 3 0 2 5 5

Makespan : (54.0, 71.0, 90.0) Nilai Tujuan : (0.2754797319385422, 0.10227272727272663, 71.5) 8.) Kromosom : 0 3 5 5 5 3 2 1 2 3 2 4 0 4 3 5 0 0 0 1 1 3 2 5 2 2 3 1 4 4 1 4 4 5 0 1

Makespan : (43.0, 55.0, 67.0) Nilai Tujuan : (0.07530012762547399, 0.022058823529411162, 55.0) 9.) Kromosom : 1 0 5 0 1 1 1 2 2 2 1 0 3 1 3 4 4 4 4 3 5 2 4 5 3 4 5 0 3 0 2 0 3 2 5 5

Makespan : (46.0, 65.0, 85.0) Nilai Tujuan : (0.1923639596812077, 0.0010683760683764813, 65.25) 10.) Kromosom : 0 3 4 5 3 3 5 5 3 1 3 4 2 3 5 2 4 0 1 4 5 2 4 1 5 1 1 0 0 1 0 4 2 0 2 2

Makespan : (42.0, 58.0, 76.0) Nilai Tujuan : (0.3939678649237475, 0.0013888888888894052, 58.5) 11.) Kromosom : 0 1 3 4 1 4 1 4 0 3 3 1 2 0 5 3 2 1 5 5 3 1 5 5 3 4 4 5 4 2 2 0 2 0 2 0

Makespan : (43.0, 60.0, 82.0) Nilai Tujuan : (0.21028906162146013, 0.0010395010395008726, 61.25) 12.) Kromosom : 3 0 1 2 2 1 5 0 0 0 4 3 1 0 4 2 2 3 2 0 4 5 2 3 1 1 3 4 5 3 4 5 4 1 5 5

Makespan : (41.0, 58.0, 82.0) Nilai Tujuan : (0.17398716423106653, 0.0, 59.75) 13.) Kromosom : 1 2 2 4 4 1 0 4 4 2 0 3 1 2 5 0 0 2 1 3 0 4 5 0 3 5 4 2 5 3 1 5 3 1 5 3

Makespan : (43.0, 58.0, 75.0) Nilai Tujuan : (0.11623294323009968, 0.002450980392155778, 58.5) 14.) Kromosom : 3 5 2 0 2 5 3 2 0 1 4 5 2 4 2 4 1 2 5 5 3 3 1 3 5 3 1 0 1 4 4 1 0 0 4 0

Makespan : (38.0, 52.0, 65.0) Nilai Tujuan : (0.36972390440814146, 0.00181488203266839, 51.75)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 164: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 12 - 2

15.) Kromosom : 0 3 3 5 5 0 1 5 5 2 5 5 2 4 4 0 3 1 4 2 4 1 2 3 1 1 3 4 3 0 1 2 2 4 0 0 Makespan : (42.0, 58.0, 74.0)

Nilai Tujuan : (0.19607503607503626, 0.0, 58.0) 16.) Kromosom : 3 4 3 4 2 2 2 1 1 1 0 0 3 3 2 2 0 2 1 5 3 1 0 1 4 5 5 0 3 0 5 5 5 4 4 4

Makespan : (42.0, 56.0, 71.0) Nilai Tujuan : (0.4215251829709505, 0.08892921960072689, 56.25) 17.) Kromosom : 3 5 4 3 4 2 5 1 5 4 5 0 2 3 5 0 4 4 5 2 0 3 4 1 3 2 0 0 3 2 2 0 1 1 1 1

Makespan : (50.0, 67.0, 87.0) Nilai Tujuan : (0.29628939784426556, 0.007054673721340454, 67.75) 18.) Kromosom : 2 3 0 4 2 3 0 1 5 5 4 4 2 0 2 1 0 0 4 2 0 2 4 1 4 5 3 5 3 3 3 1 5 1 1 5

Makespan : (46.0, 62.0, 86.0) Nilai Tujuan : (0.09248662217412201, 0.0011904761904768435, 64.0) 19.) Kromosom : 4 1 2 1 0 5 5 0 4 1 5 5 2 2 0 0 0 2 5 0 3 5 4 4 1 1 4 4 3 2 2 3 3 1 3 3

Makespan : (41.0, 57.0, 79.0) Nilai Tujuan : (0.31191811398048497, 0.0010964912280706039, 58.5)

===*** ITERASI KE-100 ***=== 0.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 1.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 2.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 2 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 3.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 4.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 5.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 2 1 1 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 6.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 7.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 8.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 9.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 4 5 0 1 3 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 10.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 2 4 4 4 0 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 165: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 12 - 3

11.) Kromosom : 3 2 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5 Makespan : (28.0, 38.0, 49.0)

Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 12.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 0 1 2 1 5 4 3 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 13.) Kromosom : 3 2 2 1 2 1 3 3 3 1 4 5 1 0 3 4 2 2 2 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 14.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 15.) Kromosom : 3 2 2 1 1 4 0 5 3 2 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 16.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 4 0 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 17.) Kromosom : 3 2 2 1 2 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 18.) Kromosom : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 2 4 4 4 0 5 0 1 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25) 19.) Kromosom : 3 2 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 1 4 4 0 4 5 1 0 3 4 5 1 0 0 4 5 0 5 5

Makespan : (28.0, 38.0, 49.0) Nilai Tujuan : (0.848637745696569, 0.6923076923076912, 38.25)

---+ SOLUSI +---

Urutan Job : 3 2 2 1 1 4 0 5 3 3 3 3 2 2 2 1 2 1 4 4 0 4 5 0 1 3 4 5 1 0 0 4 5 0 5 5 Rata-rata AI = 0.848637745696569 Minimum AI = 0.6923076923076912 Makespan = (28.0, 38.0, 49.0)

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 166: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 13 - 1

Lampiran 13 Output Program FMOJSSP Menggunakan GA

1. Input Awal (Tampilan Awal)

2. Input Parameter

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa

Page 167: PENERAPAN FUZZY MULTI OBJECTIVE PADA JOB SHOP …repository.unair.ac.id/25685/1/MARISA.pdf · 4.21 Prosedur untuk Menetukan Partial Schedule dari Parent 1 50 4.22 Prosedur untuk Menentukan

Lampiran 13 - 2

3. Hasil (Tampilan Akhir)

4. Help Content

ADLN Perpustakaan Universitas Airlangga

Skripsi Penerapan Fuzzy Multi-Objective pada Job Shop Scheduling Menggunakan Genetic Algorithm

Marisa