PENERAPAN FUZZY MULTI-OBJECTIVE PADA JOB SHOP SCHEDULING MENGGUNAKAN GENETIC ALGORITHM
SKRIPSI
MARISA
PROGRAM STUDI S-1 MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
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
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
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
PEDOMAN PENGGUNAAN SKRIPSI
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 fuzzyuntuk 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
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.
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
BAB IV PEMBAHASAN ... 37
4.1 Prosedur Algoritma Genetik Untuk Permasalahan Job Shop Scheduling ... 37
4.2Data ... 56
4.3Penyelesaian Manual terhadap Contoh Kasus Job Shop Scheduling Problem 6x6 ... 57
4.4Implementasi 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.5Perbandingan 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.1Kesimpulan ... 91
5.2Saran ... 92
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
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
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 C~ D~ 66
ADLN Perpustakaan Universitas Airlangga
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 RunningProblem 1 FMOJSSP 11. Hasil RunningProblem 2 FMOJSSP 12. Hasil RunningProblem 3 FMOJSSP
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
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.
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
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.
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
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 Jiadalah 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.
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
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.
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
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),
] [x A
 yang menunjukkan pemetaan masing-masing titik x X ke dalam sebuah nilai real pada interval antara 0 dan 1 dan disebut sebagai derajat keanggotaan Sebuah himpunan fuzzy A dikatakan convex apabila memenuhi :
dengan R merupakan himpunan bilangan real, dan berlaku :
11
Dan himpunan fuzzy A normal jika hanya jika : ;
Pengertian normal diatas berarti bahwa nilai tertinggi (highest value) dari derajat keanggotaan A[x] 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
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 :
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 :
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( A x B x B
A  
  
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( A x B x B
A  
  
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
' A x
A 
  
(Kusumadewi dan Purnomo, 2010) Misalkan A~(a1,a2,a3) dan B~(b1,b2,b3) merupakan dua TFN dengan 1
a , a2, a3 masing-masing adalah bilangan pertama (batas bawah), bilangan
kedua (nilai tengah) dan bilangan ketiga (batas atas) himpunan A~ dan b1, b2, b3
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
1. A~B~(a1,a2,a3)(b1,b2,b3)(a1b1,a2b2,a3b3)
Operasi ini akan digunakan untuk menghitung waktu penyelesaian operasi. 2. A~B~(a1,a2,a3)(b1,b2,b3)(a1b1,a2b2,a3b3)
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 zi adalah nilai masing-masing fungsi objektif dengan i1,2,3, tertinggi. Sedangkan i[zi] 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 :
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 :
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)
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.
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
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.
19
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)
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.
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 2dan 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
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 (pc) 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
c
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 (pm) 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 pm × pop_size.
ADLN Perpustakaan Universitas Airlangga
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.
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 A~(a1,a2,a3) pada Completion Times dengana1adalah batas bawah, a2 adalah nilai tengah dan a3
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.
4 2 )
~
( 1 2 3
1 A a a a
K   
Kriteria 2 : Jika K1 tidak dapat meranking dua TFN, penduga maksimal terbaik
dipilih sebagai kriteria kedua.
2 2(A~) a
K 
Kriteria 3 : Jika K1 dan K2 tidak dapat meranking dua TFN, beda penyebaran
dipilih sebagai kriteria ketiga.
1 3 3(A~) a a
K  
denganKi(A~) 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
) , ( ~ d1d2
D 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 C~iD~i)/(areaC~i)
dimana AI adalah Agreement Index [0,1] yang menunjukkan ketepatan waktu penyelesaian job dengan deadline yang diberikan, area C~iD~i adalah luasan
daerah irisan antara C~i yaitu Fuzzy Completion time dari job ke-i dan D~ adalah i 1
0
D~
1
d d2
x
1
0
D~
1
d d2
27
fuzzy duedate dari job ke-i, sedangkan area C~i 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 C~ D~
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~
Dimana c dan d masing-masing merupakan bilangan yang dipetakan ke himpunan C~ dan D~ .
Selanjutnya yaitu menentukan nilai luasan C~ D~ yaitu dengan cara :
1. Menentukan titik batas a, b, c, d untuk wilayah C~ D~
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
29
maka digunakan multifungsi objektif (Multi-Objective Function) yang didefinisikan sebagai berikut :
Memaksimalkan z1 :
 n i AIi n 1 1
Memaksimalkan z2 : AImin imin1,2,...,nAIi
Meminimalkan z3 : C~max imax1,2,...,nC~i
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 :
)} ( { min
3 , 2 ,
1 i i
i z
f 
yang akan digunakan sebagai fungsi fitness. Dengan i[zi] (i=1,2,3) merupakan derajat keanggotaan ke-i untuk fungsi objektif ke-i.
ADLN Perpustakaan Universitas Airlangga
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
,
,jr, i jr, i jr
i EC EC
EC 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
* *,
*, EC O S
ECi j r  i jr i jr  . Tentukan himpunan
G yang merupakan himpunan operasi Oi,j,r*S dan menggunakan
mesin yang sama yaitu Mr* dengan operasi Oi*,j*,r* dan pemrosesan
* , ,jr i
31
Step 4 : Pilih satu operasi Ois,js,r* 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
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.
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 JSSPdengan 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
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 GAdengan langkah sebagai berikut : 1) Menentukan seleksi induk crossover dan mutasi.
Seleksi yang akan digunakan adalah seleksi turnamen (Tournament Selection). Tahapan-tahapan seleksi turnamenyaitu:
1.1Menetukan nilai tour seleksi, yaitu banyaknya kromosom yang akan mengalami turnamen.
1.2Memilih secara random kromosom-kromosom yang akan diturnamenkan pada populasi sebanyak tour.
1.3Menentukan calon induk untuk crossover dan mutasi dengan memilih nilai fitness terbesar diantara kromosom yang diturnamenkan.
1.4Membangkitkan atau generate bilangan acak dari interval [0,1] untuk masing-masing calon induk.
1.5Menentukan induk yang akan digunakan pada operasi crossover dan mutasi.
2) Melakukan Partial Schedule Exchange Crossover (PSEX) pada kromosom induk crossover.
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
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.
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
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;
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
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;
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 < 3do
𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔𝑇𝑘𝑙=𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑇𝑖𝑚𝑒𝑗𝑜𝑏𝑘𝑜𝑝𝑒𝑟𝑎𝑡𝑖𝑜𝑛𝑘𝑙;
end k ← k + 1; end
end
ADLN Perpustakaan Universitas Airlangga
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 ← 0to j < 3 do
if (𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗<𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗) then
𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗 =𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗;
else
𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗 =𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗;
𝑑𝑒𝑙𝑎𝑦𝑖𝑗 =𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗−𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗;
end
𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗 = 𝑠𝑡𝑎𝑟𝑡𝑖𝑛𝑔𝑖𝑗+𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔𝑇𝑖𝑗
𝑡𝑖𝑚𝑒𝐽𝑜𝑏𝑗𝑜𝑏𝑖𝑗=𝑡𝑖𝑚𝑒𝑀𝑎𝑐ℎ𝑖𝑛𝑒𝑚𝑎𝑐ℎ𝑖𝑛𝑒𝑖𝑗;
end i ← i + 1;