OPTIMASI MASALAH PENJADWALAN JOB-SHOP UNTUK INDUSTRI PERALATAN PENGOLAHAN HASIL PERTANIAN DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Oleh
AYIP BAYU SATRIO F34103096
DEPARTEMEN TEKNOLOGI INDUSTRI PERTANIAN FAKULTAS TEKNOLOGI PERTANIAN INSTITUT PERTANIAN BOGOR BOGOR 2007
Ayip Bayu Satrio. F34103096. Optimasi Masalah Penjadwalan Job-Shop untuk Industri Peralatan Pengolahan Hasil Pertanian dengan Menggunakan Algoritma Genetika. Di bawah bimbingan Yandra Arkeman dan Hendra Gunawan. 2007.
RINGKASAN Penjadwalan produksi di dalam dunia industri, baik industri manufaktur maupun agroindustri, memiliki peranan penting sebagai bentuk pengambilan keputusan. Perusahaan berupaya untuk memiliki penjadwalan yang paling efekif dan efisien sehingga dapat meningkatkan produktivitas yang dihasilkan dengan total biaya dan waktu seminimum mungkin. Salah satu masalah dalam penjadwalan produksi adalah adanya kesulitan menemukan teknik yang paling tepat untuk membuat jadwal produksi yang paling baik, optimal, dan memenuhi segala kriteria-kriteria penjadwalan yang telah ditetapkan. Teknik-teknik penyusunan jadwal produksi yang sudah ada (teknik konvensional) tidak dapat dipakai karena teknik-teknik tersebut memiliki banyak kelemahan dalam menangani masalah berskala besar dan kompleks. Permasalahan penjadwalan job shop (job shop scheduling) dengan fungsi tujuan meminimumkan total waktu proses (makespan) dapat diterjemahkan sebagai memproses setiap pekerjaan (job) dari n job pada m mesin dengan urutan tertentu. Setiap pekerjaan terdiri dari serangkaian operasi. Setiap mesin dapat menangani tidak lebih dari satu pekerjaan pada suatu waktu dan setiap pekerjaan mengunjungi mesin hanya satu kali. Pada penelitian ini akan dicari solusi untuk menyelesaikan permasalahan penjadwalan job shop dengan menggunakan metode Genetic Algorithms (Algoritma Genetika). Prinsip kerjanya yaitu berdasarkan analogi evolusi biologi, yang terdiri dari proses penginisialisasian populasi, proses penyeleksian, proses penyilangan, dan proses mutasi. Keunggulan dari algoritma genetika ini adalah strukturnya yang sederhana, mudah mengimplementasikannya, dan cepat dalam pencapaian solusi yang optimum (efektif dan efisien). Penelitian ini bertujuan untuk mengaplikasikan algoritma genetika dalam bidang penjadwalan produksi tipe job shop berskala besar. Implementasi dari penelitian ini adalah perancangan program GA_JobShop (Genetic Algorithms for Job Shop Scheduling) yang dibuat menggunakan bahasa pemrograman Borland Delphi 7.0. Representasi kromosom menggunakan preference list based representation, proses penyilangan menggunakan Partially Mapped Crossover (PMX) yang telah dimodifikasi, proses mutasi menggunakan reciprocal exchange mutation yang telah dimodifikasi, dan seleksi menggunakan tournament selection. Kasus ke-1 merupakan numerical example, yaitu data yang digunakan sebagai verifikasi dan validasi program GA_JobShop. Data kasus 1 dibuat dengan mengikuti aturan permasalahan pada sebuah penjadwalan tipe job shop. Kasus 2 mengacu pada persoalan yang terdapat di dalam buku Genetic Algorithms and Engineering Design (Gen dan Cheng, 1997). Kasus ke-3 merupakan kasus riil di industri peralatan pengolahan hasil pertanian CV Mitra Niaga Indonesia, Bogor. Penjadwalan tipe job shop memiliki ruang pencarian (search space) sebesar (n!)m, dengan n adalah jumlah job dan m adalah jumlah mesin. Kasus 1 (3 job 2 mesin) memiliki ruang pencarian sebanyak 36 calon solusi. Kasus 2 (3 job
– 3 mesin) memiliki ruang pencarian sebesar 216 calon solusi. Kasus 3 (5 job – 12 mesin) memiliki ruang pencarian sebesar 8,92×1024 calon solusi. Hasil penilitian menunjukkan bahwa program GA_JobShop sangat efisien dalam penyelesaian masalah penjadwalan tipe job shop berskala kecil maupun besar. Program GA_JobShop telah terbukti valid, hal ini dibuktikan pada Kasus 1. Nilai makespan optimum pada Kasus 1 yang didapatkan dengan cara enumeratif (menghitung semua alternatif penjadwalan yang dapat terjadi) sama dengan nilai makespan optimum yang didapatkan dengan menggunakan algoritma genetika (program GA_JobShop), yaitu 11. Pada Kasus 2, solusi optimum dapat tercapai pada generasi ke-3 dengan nilai makespan 11. Algoritma genetika hanya mengeksplorasi 27,78 % ruang pencarian (search space) untuk mendapatkan nilai yang minimum pada Kasus 2. Semakin besarnya ruang pencarian (search space) maka penggunaan algoritma genetika akan semakin efisien, terlihat pada Kasus 3. Kasus 3 (5 job – 12 mesin) memiliki nilai makespan sebesar 3589 dalam satuan waktu menit.
Ayip Bayu Satrio. F34103096. The Optimization of Job Shop Scheduling Problems for Manufacture Industry of Agriculture Product Processing Machinery with Using Genetic Algorithms. Supervised by Yandra Arkeman and Hendra Gunawan. 2007.
SUMMARY Scheduling of production in industrial world, like in manufacture industry or agroindustry has an important role in making decision. The company is trying to have effective and efficient scheduling which can increase the productivity with small amount of cost and time. One of the problem in scheduling production is founding problem in deciding which is the right technique to make better, optimal, fulfill all the criteria in making production schedule. Techniques in arranging the production schedule that already exist (conventional techniques) cannot be used because they have a lot of weaknesses in handling large scale and complex problems. The problem of job shop scheduling with function to minimize the total of time process which can be translated to process every job from n jobs to m machines with certain sequence. Every job has its own sequence of operation. Every machine can handle no more than one job in a time and every job visit the machine only in one time. In this research will find the solution to solve the problem of job shop scheduling using Genetic Algorithms method. The basic principal is based on analogy of biological evolution, which contains initialization population process, selection process, crossover process, and mutation process. The benefits of genetic algorithms are the simple structure, easy to implement, and very quick in accomplishing the optimum solution (effective and efficient). The goal of this research is to applying genetic algorithms for large scale job shop scheduling of production. The implementation of this research is to design GA_JobShop (Genetic Algorithms for Job Shop Scheduling) program which is using Borland Delphi 7.0. The chromosome representation are using preference list based representation, crossover process are using partially mapped crossover (PMX) which is been modified, the mutation process are using reciprocal exchange mutation which is been modified, and the selection process are using tournament selection. The first case is numerical example that is the data which is being used as verification and validation of GA_JobShop program. The data of the first case is made by following job scheduling rules. The second case refer to the problem which is contain in the book of Genetic Algorithms and Engineering Design (Gen dan Cheng, 1997). The third case is a real case in manufacture industry of agriculture product processing machinery of CV Mitra Niaga Indonesia, Bogor. The job shop scheduling has a search space for about (n!)m , n as the amount of jobs and m as the amount of machines. Case 1 (3 jobs – 2 machines) has a search space for about 36 candidates of solutions. Case 2 (3 jobs – 3 machines) has a search space for about 216 candidates of solutions. Case 3 (5 jobs – 12 machines) has a search space for about 8,92×1024 candidates of solutions. This research shows that the GA_JobShop program is very efficient in solving problem of job shop scheduling even in large scale or small scale. GA_JobShop program has proven valid. This has been proven in the Case 1. The value of makespan optimum in the Case 1 which is has been made by enumerative
search equals with makespan optimum value by getting with using genetic algorithms (GA_JobShop program) is 11. In the Case 2, the optimum solution can be achieved in the third generation with makespan value on 11. Genetic algorithms only explored 27,78 % of search space to get minimum value in Case 2. More search space will be more efficient to use genetic algorithms, it showed on the Case 3. The Case 3 (5 jobs 12 machines) has makespan value for about 3589 in minutes.
FAKULTAS TEKNOLOGI PERTANIAN INSTITUT PERTANIAN BOGOR
OPTIMASI MASALAH PENJADWALAN JOB-SHOP UNTUK INDUSTRI PERALATAN PENGOLAHAN HASIL PERTANIAN DENGAN MENGGUNAKAN ALGORITMA GENETIKA
SKRIPSI
Sebagai salah satu syarat untuk memperoleh gelar SARJANA TEKNOLOGI PERTANIAN Pada Fakultas Teknologi Pertanian Institut Pertanian Bogor
Oleh AYIP BAYU SATRIO F34103096
Dilahirkan di Jakarta Pada tanggal 16 Agustus 1985
Tanggal kelulusan : 19 Desember 2007
Disetujui : Bogor, Januari 2008
Hendra Gunawan, S.TP
Dr. Ir. Yandra Arkeman, M.Eng
Pembimbing II
Pembimbing I
KATA PENGANTAR
Puji syukur kehadirat Allah SWT penulis panjatkan karena atas segala rahmat dan karunia-Nya, penulis dapat menyelesaikan skripsi ini. Penulis memilih topik Optimasi Masalah Penjadwalan Job Shop untuk Industri Peralatan Pengolahan Hasil Pertanian dengan Menggunakan Algoritma Genetika. Penulis mengucapkan terima kasih kepada pihak yang telah membantu dalam penyelesaian skripsi ini terutama kepada : 1. Dr. Ir. Yandra Arkeman, MEng, selaku dosen pembimbing I yang telah memberikan ide, saran, dan pengarahan kepada penulis. 2. Hendra Gunawan, S.TP, selaku pembimbing II yang telah banyak memberikan pengarahan serta bantuan dalam memberikan pemahaman kepada penulis. 3. Ir. Ade Iskandar, M.Si, selaku pembimbing praktek penelitian di industri peralatan pengolahan hasil pertanian CV Mitra Niaga Indonesia, Bogor. 4. Dr. Ir. Suprihatin, M.Si, selaku penguji pada ujian sidang sarjana. 5. Kedua orang tua, kakak dan adik penulis, yang selalu memberikan dorongan, motivasi dan doa dengan tulus. 6. Yuvi Andria, rekan sebimbingan yang telah banyak memberikan masukanmasukan yang bermanfaat dalam penyelesaian skripsi ini. 7. Ulfa Septianty yang selalu memberikan dorongan agar skripsi ini dapat terselesaikan dengan cepat. 8. Sahabat-sahabat penulis : Adhitia Kusuma, Fadil, Jiwo, Iqbal, Anggia Resha, Devan, yang selalu memberikan semangat dan doa kepada penulis. 9. Teman-teman RISDA. 10. Teman-teman TIN ’40, khususnya Amet, Ratih Bunda, Farah, Adit, Helmi, Derry, Arvi, Desminda, Imam, Puji, Budi, Reza, Fardian, Lucia, Adam, Vivi, , Devi, Mona,Silvy dan semuanya yang telah kompak semasa kuliah.. 11. Teman-teman HIMALOGIN (Himpunan Mahasiswa Teknologi Industri). 12. Seluruh panitia seminar “SIX SIGMA” tahun 2005. 13. Teman-teman satu seperjuangan PL : Syahrian, Elly, Eka, Irawan, Ratna, Iib, Shinta, Andri, Angga, Kiki, CB, dan lain-lain. 14. Like a Free Band : Chandra, Bugi, Uci, Au, Dhani, Ali dan Kanda.
15. Puzzle Band : Fadil, Dimas, Gulit, Bembi. 16. Para penghuni Wisma Galih, terutama Bang Riki, Aldo, Oza, Mas Ade, Budi, Ian, Uda Edwin, Uda Paul, Pak Amshor, Wita, Frans, Bian, Benny dan lainlain. 17. Mas Jerry, yang telah membantu dalam translate bahasa inggris. 18. Kemal, yang telah meminjamkan KTM UI Fakultas Teknik. 19. Ade, rekan bisnis yang setia bekerja sama di Blite Outlet and Stationery, Bateng, Kampus Dalam. 20. Seluruh pihak yang telah membantu penulis hingga akhir penyelesaian skripsi. Semoga skripsi ini dapat bermanfaat bagi kita semua.
Bogor,
Desember 2007
Ayip Bayu Satrio
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tangal 16 Agustus 1985 sebagai anak kedua dari tiga bersaudara, anak dari pasangan Ayip Muchlis dan Kussri Saparti. Selama 5 tahun pertama, Penulis dibesarkan di Jakarta dan kemudian berpindah ke Bekasi. Pada tahun 2003 Penulis lulus dari SMU Negeri 61 Jakarta Timur dan kemudian di tahun yang sama Penulis lulus ujian SPMB (Sistem Penerimaan Mahasiswa Baru) dengan memilih IPB (Departemen Teknologi Industri Pertanian) sebagai pilihan. Pada tahun kedua dan ketiga masa perkuliahan, Penulis aktif di dalam organisasi Himpunan Mahasiswa Teknologi Industri (Himalogin) sebagai salah satu staff PR (Public Relation). Penulis sempat menjadi ketua salah satu acara seminar yang diadakan oleh Himalogin (Seminar Six Sigma) tahun 2005. Penulis juga sempat berpengalaman sebagai MC (Master of Ceremonial) pada acara “Lepas Landas Sarjana Fateta IPB” tahun 2004 dan “Seminar Nasional Pemanfaatan Surfaktan Berbasis Minyak Sawit untuk Industri” tahun 2005. Pada tahun 2006 Penulis melakukan Praktek Lapangan di PT Alam Indah Bunga Nusantara, daerah Cipanas, Jawa Barat, dengan kajian “Mempelajari Aspek Manajemen Sumber Daya Manusia” selama 40 hari kerja (3 Juli – 25 Agustus).
DAFTAR ISI
Halaman KATA PENGANTAR ................................................................................
i
RIWAYAT HIDUP ....................................................................................
iii
DAFTAR ISI ..............................................................................................
iv
DAFTAR TABEL ...................................................................................... vii DAFTAR GAMBAR .................................................................................. viii DAFTAR LAMPIRAN ..............................................................................
xi
I. PENDAHULUAN .................................................................................
1
A. LATAR BELAKANG ......................................................................
1
B. TUJUAN PENELITIAN ...................................................................
3
C. RUANG LINGKUP .........................................................................
3
II. TINJAUAN PUSTAKA .......................................................................
4
A. PROSES PENJADWALAN PRODUKSI ..........................................
4
B. PENJADWALAN TIPE JOB SHOP .................................................
7
C. TEKNIK OPTIMASI ........................................................................
8
D. ALGORITMA GENETIKA ..............................................................
9
1. Prosedur Umum Algoritma Genetika ............................................ 10 2. Representasi Kromosom ............................................................... 12 3. Operator-operator Algoritma Genetika .......................................... 14 a. Seleksi dan Reproduksi ............................................................. 15 b. Penyilangan .............................................................................. 16 c. Mutasi ...................................................................................... 20 4. Fungsi Fitness ............................................................................... 21 5. Bilangan Acak ............................................................................... 22 6. Kriteria Penghentian ..................................................................... 22 7. Perbandingan Algoritma Genetika dengan Teknik Optimasi Konvensional ................................................................................ 22 E. PENELITIAN TERDAHULU .......................................................... 24 III. METODOLOGI PENELITIAN .......................................................... 26 A. KERANGKA PEMIKIRAN ............................................................. 26
B. PENDEKATAN METODE ILMIAH ................................................ 27 IV. PEMBAHASAN ................................................................................... 30 A. REPRESENTASI KROMOSOM ..................................................... 30 B. FUNGSI FITNESS ............................................................................ 31 C. SELEKSI (SELECTION)................................................................... 31 D. PENYILANGAN (CROSSOVER) ..................................................... 32 E. MUTASI (MUTATION) .................................................................... 32 F. IMPLEMENTASI PROGRAM (GA_JobShop) ................................. 33 G. STUDI KASUS ................................................................................ 37 1. Kasus 1 : Penjadwalan Job Shop Kasus 3 job – 2 mesin ................ 37 a. Tampilan Program GA_JobShop ............................................... 44 b. Input Program........................................................................... 44 c. Parameter-parameter Algoritma Genetika ................................. 45 d. Inisialisasi Populasi Awal ......................................................... 46 e. Evaluasi dan Seleksi Kromosom ............................................... 47 f. Penyilangan dan Mutasi ............................................................ 49 g. Hasil Running Program GA_JobShop ....................................... 54 2. Kasus 2 : Penjadwalan Job Shop Kasus 3 job – 3 mesin ................ 58 a. Input Program........................................................................... 58 b. Parameter-parameter Algoritma Genetika ................................. 59 c. Inisialisasi Populasi Awal ......................................................... 60 d. Evaluasi dan Seleksi Kromosom ............................................... 61 e. Penyilangan dan Mutasi ............................................................ 62 f. Hasil Running Program GA_JobShop ....................................... 64 g. Efisiensi Algoritma Genetika .................................................... 68 3. Kasus 3 : Penjadwalan Job Shop Kasus 5 job – 12 mesin .............. 69 a. Definisi masing-masing job ....................................................... 72 b. Fungsi masing-masing mesin .................................................... 72 c. Input Program .......................................................................... 73 d. Parameter-parameter Algoritma Genetika ................................. 75 e. Inisialisasi Populasi Awal ......................................................... 75 f. Evaluasi dan Seleksi Kromosom ............................................... 76
g. Penyilangan dan Mutasi ............................................................ 77 h. Hasil Running Program GA_JobShop ....................................... 78 i. Efisiensi Algoritma Genetika .................................................... 82 V. KESIMPULAN DAN SARAN ............................................................. 83 A. KESIMPULAN ................................................................................. 83 B. SARAN............................................................................................. 84 DAFTAR PUSTAKA ................................................................................. 85 LAMPIRAN ............................................................................................... 87
DAFTAR TABEL
Halaman Tabel 1.
Waktu proses, urutan mesin, dan urutan proses pada Kasus 1 (3 job – 2 mesin) ............................................................................ 37
Tabel 2.
Waktu proses, urutan mesin, dan urutan proses pada Kasus 2 (3 job – 3 mesin) (Gen dan Cheng, 1997)....................................... 57
Tabel 3.
Waktu proses (satuan waktu menit), urutan mesin, dan urutan proses pada Kasus 3 (5 job – 12 mesin) ......................................... 69
Tabel 4.
Daftar nama-nama job pada Kasus 3 .............................................. 70
Tabel 5.
Daftar nama-nama mesin pada Kasus 3 ......................................... 70
Tabel 6.
Input waktu proses dan urutan proses masing-masing job pada mesin untuk Kasus 3 (5 job – 12 mesin) ......................................... 74
DAFTAR GAMBAR
Halaman Gambar 1.
Nilai minimum f (x) sama dengan maksimum –f(x) (Maarif, 1989) ...........................................................................................
9
Gambar 2.
Prosedur umum algoritma genetika (Hopgood, 2001) .................. 12
Gambar 3.
Representasi kromosom jenis permutation ................................... 13
Gambar 4.
Ilustrasi proses seleksi kromosom induk (Magnin di dalam Gunawan, 2003) .......................................................................... 16
Gambar 5.
Ilustrasi prosedur PMX (Gen dan Cheng, 1997) ........................... 19
Gambar 6.
Ilustrasi inversion mutation (mutasi inversi) (Gen dan Cheng, 1997) ........................................................................................... 21
Gambar 7.
Ilustrasi insertion mutation (mutasi penyisipan) (Gen dan Cheng, 1997) ........................................................................................... 21
Gambar 8.
Ilustrasi displacement mutation (mutasi pemindahan) (Gen dan Cheng, 1997) ............................................................................... 21
Gambar 9.
Ilustrasi reciprocal exchange mutation (mutasi penukaran balik) (Gen dan Cheng, 1997) ................................................................ 21
Gambar 10. Diagram alir metode ilmiah (Taylor, 2002) ................................. 27 Gambar 11. Diagram alir penelitian penjadwalan tipe job shop ....................... 28 Gambar 12. Representasi kromosom dengan preference-list-based representation.............................................................................. 30 Gambar 13. Struktur program utama GA_JobShop .......................................... 34 Gambar 14. Ilustrasi alur proses pada Kasus 1 (3 job – 2 mesin) ..................... 39 Gambar 15. Representasi kromosom penjadwalan tipe job shop kasus 3 job – 2 mesin ............................................................................ 39 Gambar 16. Cek nilai gen yang pertama pada mesin 1 dan 2 untuk urutan proses ke-1 .................................................................................. 40 Gambar 17. Penempatan job 1 urutan proses ke-1 pada mesin 1 ...................... 40 Gambar 18. Cek nilai gen yang kedua pada mesin 1 dan 2 untuk urutan proses ke-1 .................................................................................. 40 Gambar 19. Penempatan job 2 urutan proses ke-1 pada mesin 2 ...................... 41
Gambar 20. Cek nilai gen yang ketiga pada mesin 1 dan 2 untuk urutan proses ke-1 .................................................................................. 41 Gambar 21. Penempatan job 3 urutan proses ke-1 pada mesin 1 ...................... 41 Gambar 22. Cek nilai gen yang pertama pada mesin 1 dan 2 untuk urutan proses ke-2 .................................................................................. 42 Gambar 23. Penempatan job 1 urutan proses ke-2 pada mesin 2 ...................... 42 Gambar 24. Cek nilai gen yang kedua pada mesin 1 dan 2 untuk urutan proses ke-2 .................................................................................. 42 Gambar 25. Penempatan job 2 urutan proses ke-2 pada mesin 1 ...................... 43 Gambar 26. Cek nilai gen yang ketiga pada mesin 1 dan 2 untuk urutan proses ke-2 .................................................................................. 43 Gambar 27. Penempatan job 3 urutan proses ke-2 pada mesin 2 ...................... 43 Gambar 28. Tampilan program GA_JobShop .................................................. 44 Gambar 29. Input nilai-nilai utama pada program GA_JobShop (Kasus 1) ..... 45 Gambar 30. Input nilai-nilai parameter pada program GA_JobShop (Kasus 1) ..................................................................................... 46 Gambar 31. Populasi awal P(0) untuk Kasus 1 ................................................ 47 Gambar 32. Proses penyilangan kromosom(8) dan kromosom(16) generasi ke-0 untuk Kasus 1 ...................................................................... 50 Gambar 33. Populasi baru P(1) pada Kasus 1 .................................................. 51 Gambar 34. Kromosom-kromosom pada populasi P(6) sebelum mengalami penyilangan dan mutasi di populasi P(7) ...................................... 52 Gambar 35. Populasi P(7) terjadi mutasi pada Kasus 1 .................................... 52 Gambar 36. Mutasi kromosom(10) pada generasi ke-7 untuk Kasus 1 ............. 53 Gambar 37. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum untuk 100 generasi pada Kasus 1 ................ 54 Gambar 38. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 1 ............................................................................... 55 Gambar 39. Tahapan-tahapan penerjemahan salah satu kromosom terbaik pada Kasus 1 ............................................................................... 56 Gambar 40. Ilustrasi alur proses pada Kasus 2(3 job – 3 mesin) ...................... 58 Gambar 41. Input nilai-nilai utama pada program GA_JobShop (Kasus 2) ...... 59
Gambar 42. Input nilai-nilai parameter pada program GA_JobShop (Kasus 2) 60 Gambar 43. Populasi awal P(0) untuk Kasus 2 ................................................ 60 Gambar 44. Populasi P(1) pada Kasus 2 .......................................................... 62 Gambar 45. Populasi P(7) terjadi mutasi pada Kasus 2 .................................... 63 Gambar 46. Kromosom-kromosom induk pada populasi P(6) yang akan diseleksi untuk disilangkan dan dimutasi pada populasi P(7)........ 63 Gambar 47. Proses mutasi kromosom(2) pada populasi P(7) ........................... 64 Gambar 48. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum untuk 100 generasi pada Kasus 2 ................. 65 Gambar 49. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 2 ............................................................................... 66 Gambar 50. Tahapan-tahapan penerjemahan salah satu kromosom terbaik pada kasus 2 ................................................................................ 68 Gambar 51. Ilustrasi alur proses pada Kasus 3 (satuan waktu dalam menit)..... 71 Gambar 52. Input nilai-nilai utama pada program GA_JobShop (Kasus 3) ...... 73 Gambar 53. Input nilai-nilai parameter pada program GA_JobShop (Kasus 3) .................................................................................... 75 Gambar 54. Populasi awal P(0) untuk Kasus 3 ................................................ 76 Gambar 55. Populasi P(1) pada kasus 3 (bagian 1) .......................................... 77 Gambar 56. Populasi P(1) pada kasus 3 (bagian 2) .......................................... 78 Gambar 57. Populasi P(2) terjadi mutasi pada Kasus 3 .................................... 78 Gambar 58. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum (satuan waktu dalam menit) untuk 100 generasi pada Kasus 3 .................................................................. 79 Gambar 59. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 3 ............................................................................... 80 Gambar 60. Penjadwalan yang optimum pada Kasus 3 (hasil penerjemahan kromosom terbaik) ....................................................................... 81
DAFTAR LAMPIRAN
Halaman Lampiran 1.
Listing program utama GA_JobShop ......................................
Lampiran 2.
Terjemahan seluruh kromosom dari total search space pada Kasus 1 (validasi program GA_JobShop) secara enumeratif ...
Lampiran 3.
95
Laporan detail hasil running program GA_JobShop untuk Kasus 1 ..................................................................................
Lampiran 7.
94
Laporan awal hasil running program GA_JobShop untuk Kasus 1 ..................................................................................
Lampiran 6.
93
Gambar alat dan mesin di industri peralatan pengolahan hasil pertanian CV Mitra Niaga Indonesia, Bogor ..........................
Lampiran 5.
88
Denah industri peralatan pengolahan hasil pertanian CV Mitra Niaga Indonesia, Bogor ................................................
Lampiran 4.
87
96
Laporan awal hasil running program GA_JobShop untuk Kasus 2 .................................................................................. 108
Lampiran 8.
Laporan detail hasil running program GA_JobShop untuk Kasus 2 .................................................................................. 109
Lampiran 9.
Laporan awal hasil running program GA_JobShop untuk Kasus 3 .................................................................................. 125
Lampiran 10. Laporan detail hasil running program GA_JobShop untuk Kasus 3 .................................................................................. 126
I.
PENDAHULUAN
A. LATAR BELAKANG Penjadwalan produksi di dalam dunia industri, baik industri manufaktur maupun agroindustri, memiliki peranan penting sebagai bentuk pengambilan keputusan. Perusahaan berupaya untuk memiliki penjadwalan yang paling efekif dan efisien sehingga dapat meningkatkan produktivitas yang dihasilkan dengan total biaya dan waktu seminimum mungkin. Dalam sebuah sistem produksi yang kompleks dapat terjadi penumpukan pekerjaan atau barang yang membentuk antrian panjang yang tidak dapat diselesaikan secara optimal. Sistem produksi yang melibatkan banyak proses, mesin dan juga waktu proses yang bervariasi akan menemui banyak hambatan bila tidak ada metode penjadwalan yang tepat dan akhirnya berakibat pada proses produksi secara keseluruhan. Sistem tidak dapat bekerja secara efektif dan efisien. Penjadwalan produksi melakukan pembebanan mesin berdasarkan rencana proses yang telah dibuat perencana proses. Permasalahan yang sering muncul adalah rencana proses dibuat tidak memperhatikan beban kerja mesin sehingga sering terjadi penumpukan pada mesin unggul. Solusi permasalahan dapat dilakukan dengan memperhatikan alternatif urutan proses. Salah satu masalah dalam penjadwalan produksi adalah adanya kesulitan menemukan teknik yang paling tepat untuk membuat jadwal produksi yang paling baik, optimal, dan memenuhi segala kriteria-kriteria penjadwalan yang telah ditetapkan. Teknik-teknik penyusunan jadwal produksi yang sudah ada (teknik konvensional) tidak dapat dipakai karena teknik-teknik tersebut memiliki banyak kelemahan dalam menangani masalah berskala besar dan kompleks. Permasalahan penjadwalan job shop (job shop scheduling) dengan fungsi tujuan meminimumkan total waktu proses (makespan) dapat diterjemahkan sebagai memproses setiap pekerjaan (job) dari n job pada m mesin dengan urutan tertentu. Setiap pekerjaan terdiri dari serangkaian
operasi. Setiap mesin dapat menangani tidak lebih dari satu pekerjaan pada suatu waktu dan setiap pekerjaan mengunjungi mesin hanya satu kali. Alternatif urutan proses meningkatkan fleksibilitas produksi karena alternatif solusi lebih banyak. Sebagai konsekuensi, waktu pencarian solusi menggunakan metoda optimasi naik secara eksponensial. Pendekatan heuristik akan dilakukan untuk memecahkan permasalahan penjadwalan dengan memperhatikan alternatif urutan proses. Pendekatan heuristik yang digunakan adalah algoritma genetika. Pemilihan ini didasarkan bahwa algoritma penjadwalan yang ada tidak dapat melakukan penjadwalan sekaligus memilih alternatif urutan proses. Untuk mendapatkan hasil penjadwalan yang optimum maka digunakan algoritma genetika. Sebuah solusi penjadwalan dikatakan optimum apabila memiliki waktu rata-rata produksi seminimum mungkin. Hasil operasi genetik akan diubah kembali menjadi sebuah jadwal yang mudah dipahami oleh pengguna. Pada penelitian ini akan dicari solusi untuk menyelesaikan permasalahan penjadwalan job shop dengan menggunakan metode Genetic Algorithms (Algoritma Genetika). Prinsip kerjanya yaitu berdasarkan analogi evolusi biologi, yang terdiri dari proses penginisialisasian populasi, proses penyeleksian, proses penyilangan, dan proses mutasi. Keunggulan dari algoritma
genetika
ini
adalah
strukturnya
yang
sederhana,
mudah
mengimplementasikannya, dan cepat dalam pencapaian solusi yang optimum (efektif dan efisien). Penjadwalan produksi yang kurang baik dapat mengakibatkan keterlambatan pengiriman produk. Penjadwalan job shop merupakan suatu permasalahan optimasi kombinatorial yang kompleks yang membutuhkan waktu komputasi yang besar dalam proses pencarian solusi terbaiknya. Algoritma Genetika mampu menyelesaikan permasalahan penjadwalan job shop dengan waktu komputasi yang singkat.
B. TUJUAN PENELITIAN Fokus penelitian ini adalah pada masalah penjadwalan tipe job shop (tanpa kendala) dengan menggunakan Algoritma Genetika. Tujuan yang ingin dicapai adalah sebagai berikut : 1. Membuat metode optimasi Algoritma Genetika untuk memecahkan masalah pada kasus penjadwalan job shop yang bersifat kompleks. 2. Mengaplikasikan metode Algoritma Genetika yang telah dibuat untuk memecahkan masalah pada kasus data numerical example dengan tujuan verifikasi dan validasi. 3. Mengaplikasikan metode Algoritma Genetika yang telah dibuat untuk memecahkan masalah pada kasus penjadwalan industri peralatan pengolahan hasil pertanian.
C. RUANG LINGKUP Ruang lingkup pada penelitian ini dibatasi oleh beberapa hal berikut : 1. Metode optimasi yang digunakan adalah metode Algoritma Genetika. 2. Fungsi tujuan yang akan dievaluasi dalam penelitian ini adalah fungsi makespan (waktu penyelesaian pekerjaan secara keseluruhan). 3. Objek pada penelitian ini adalah kasus penjadwalan industri peralatan pengolahan hasil pertanian.
II. TINJAUAN PUSTAKA
A. PROSES PENJADWALAN PRODUKSI Baker
(1974)
mendefinisikan
penjadwalan
sebagai
proses
pengalokasian sumber-sumber yang ada untuk menjalankan sekumpulan tugas dalam jangka waktu tertentu. Penjadwalan merupakan kegiatan yang penting dalam perencanaan dan pengendalian produksi karena penjadwalan yang baik akan memaksimumkan efektivitas pemanfaatan setiap sumber daya yang ada. Penjadwalan digambarkan sebagai alokasi sumber daya dari waktu ke waktu untuk melaksanakan suatu kumpulan pekerjaan. Menurut Russel dan Taylor (1995), penjadwalan merupakan tahap terakhir dari perencanaan sebelum dilaksanakannya proses produksi. Selain itu penjadwalan merupakan penjabaran kegiatan-kegiatan yang direncanakan yaitu yang berisikan kapan dimulainya kegiatan produksi sehingga perencanaan kebutuhan yang telah ditetapkan dapat dipenuhi tepat pada waktunya. Sebuah penjadwalan dapat melakukan operasi dalam rentang waktu yang telah ditentukan oleh mesin. Penjadwalan yang menggunakan waktu yang terpendek merupakan masalah yang dicari penyelesaiannya (Gen dan Cheng, 1997). Penjadwalan memiliki beberapa tujuan. Namun tujuan tersebut dapat saling berkontradiksi. Maka dari itu diperlukan upaya pengoptimasian penjadwalan. Adapun tujuan penjadwalan produksi antara lain (Nahmias, 1997) : 1. Memenuhi waktu pesanan 2. Meminimumkan total waktu penyelesaian (makespan) 3. Menghasilkan tingkat kegunaan mesin 4. Menetapkan urutan pekerjaan yang tepat 5. Meminimumkan biaya produksi dan tenaga kerja Penjadwalan produksi dapat diklasifikasi berdasarkan kriteria sebagai berikut : 1. Penjadwalan produksi secara umum, yaitu : a. Penjadwalan maju (forward scheduling)
Operasi penjadwalan dimulai dari tanggal penerimaan order secara maju. Konsekuensinya terjadi persediaan bahan baku sampai pada gilirannya diproses. b. Penjadwalan mundur (backward scheduling) Teknik penjadwalan dimulai dari waktu penyelesaian operasi terakhir. Keuntungannya adalah mengurangi persediaan barang setengah jadi (work in process). 2. Penjadwalan produksi berdasarkan mesin yang digunakan, yaitu : a. Model Single-Machine Model ini hanya berisi sejumlah m mesin yang sejenis, yang harus memproses sejumlah job yang terdiri dari satu operasi. Setiap job dapat dikerjakan pada salah satu mesin yang ada tersebut. Model ini banyak digunakan pada penjadwalan yang menggunakan metode dekomposisi, yaitu suatu model penjadwalan yang memecahkan permasalahan penjadwalan yang kompleks ke dalam sejumlah permasalahan yang lebih sederhana dalam bentuk single-machine. b. Model Paralle-Machine Merupakan suatu bentuk umum dari model single-machine. Model ini terdapat pada industri yang proses produksinya terdiri dari berbagai tahapan, di mana tiap tahapan tersebut terdiri dari sejumlah mesin sejenis yang tersusun secara paralel. Setiap job dapat dikerjakan pada salah satu mesin yang ada. Ada suatu kondisi di mana mesinmesin yang tersusun secara paralel tersebut tidak identik satu sama lain dalam hal kemampuan berprosesnya. c. Model Flow Shop Suatu proses manufaktur seringkali harus melewati banyak operasi yang membutuhkan jenis mesin yang berbeda pada tiap operasinya. Jika rute yang harus dilewati untuk setiap job adalah sama, maka bentuk konfigurasi ini disebut juga model flow shop. Mesinmesin pada model ini disusun secara seri dan pada saat sebuah job selesai diproses pada satu mesin, maka job tersebut akan meninggalkan
mesin tersebut untuk kemudian mengisi antrian pada mesin berikutnya untuk diproses. d. Model Job Shop Dalam suatu proses manufaktur yang memerlukan banyak operasi, seringkali rute yang harus dilalui setiap job adalah tidak sama. Model seperti ini disebut juga model job shop. Bentuk sederhana dari model ini mengasumsikan bahwa setiap job hanya melewati satu jenis mesin sebanyak satu kali dalam rutenya pada proses tersebut. Namun ada juga model lainnya di mana setiap job diperbolehkan untuk melewati mesin sejenis lebih dari satu kali pada rutenya. Model ini disebut juga job shop dengan recirculation (pengulangan). 3. Penjadwalan produksi berdasarkan pola kedatangan pekerjaan, yaitu: a. Penjadwalan statis Pekerjaan datang bersamaan dan siap dikerjakan pada mesin yang tidak bekerja. Kondisi semua stasiun kerja dan perlengkapannya selalu tersedia pada saat itu. b. Penjadwalan dinamis Pekerjaan datang terus-menerus pada waktu yang berbedabeda. Pendekatan yang sering digunakan pada penjadwalan ini adalah penggunaan aturan dispatching yang berbeda untuk setiap stasiun kerja. 4. Penjadwalan produksi berdasarkan sifat informasi yang diterima, yaitu: a. Penjadwalan deterministik Informasi yang diperoleh bersifat pasti, seperti waktu kedatangan job, waktu setup, dan waktu proses. b. Penjadwalan stokastik Informasi
yang
diperoleh tidak pasti,
tetapi memiliki
kecenderungan yang jelas atau menyangkut adanya distribusi probabilitas tertentu, misalnya kedatangan pekerjaan bersifat acak.
B. PENJADWALAN TIPE JOB SHOP Salah satu model penjadwalan yang cukup banyak ditemui adalah penjadwalan job shop. Pada model ini, job-job yang diproses biasanya memiliki rute dan waktu pemrosesan yang berbeda-beda satu sama lain. Setiap job terdiri dari operasi-operasi yang masing-masing diproses di satu mesin tertentu karena rute proses dari setiap job berbeda, maka kemungkinan jadwal yang dapat dihasilkan dan kendala yang muncul menjadi sangat banyak. Akibatnya, model ini menimbulkan masalah penjadwalan yang kompleks dalam arti bahwa semua kendala dalam penjadwalan harus terpenuhi dan dalam arti bahwa jadwal yang bisa memenuhi fungsi tujuan penjadwalan secara optimal sangat sulit ditemukan di antara sekian banyak kemungkinan (Bagchi, 1999). Penjadwalan job shop merupakan masalah penempatan sejumlah n-job pada sejumlah m-mesin dengan urutan proses. Setiap job dirancang sebagai satu set operasi dan mesin yang telah di-set untuk setiap operasinya. Setiap operasi dapat dikarakterisasi dengan mesin tertentu dan waktu proses produksi yang telah ditentukan. Untuk setiap proses produksi dapat digunakan batasan dalam menentukan job dan mesin yang akan digunakan, yaitu (Gen dan Cheng, 1997) : 1. Satu pekerjaan tidak akan menggunakan mesin yang sama sebanyak lebih dari satu kali 2. Tidak adanya batasan yang lebih tinggi pada saat operasi dengan pekerjaan yang berbeda 3. Sebuah operasi tidak akan bisa disela dengan operasi yang lain 4. Sebuah mesin hanya akan melakukan sebuah pekerjaan dalam satu waktu 5. Tidak adanya waktu atau pekerjaan yang dispesifikasi Menurut Kusuma (2001), karakteristik penjadwalan produksi tipe jobshop adalah penggunaan mesin oleh lebih dari satu pekerjaan sehingga ada keterbatasan waktu penggunaan. Berbeda dengan masalah penjadwalan seri dan parallel, karakteristik pekerjaan yang harus diselesaikan pada penjadwalan tipe job-shop harus melewati beberapa mesin (routing) dan tiap rute yang ditempuh masing-masing pekerjaan berlainan.
Penjadwalan job-shop memiliki beberapa definisi (Kusuma, 2001) yang meliputi : 1. Jadwal fisibel, yaitu jadwal dimana seluruh operasi dari semua pekerjaan telah ditugaskan dan ketentuan rute operasi telah terpenuhi (tidak ada overlap antar operasi). 2. Jadwal semi-aktif, yaitu sekumpulan jadwal fisibel dimana tidak satu pun operasi dapat dijadwalkan lebih awal tanpa mengubah susunan operasi pada mesin. 3. Jadwal aktif, yaitu sekumpulan jadwal fisibel dimana tidak satu pun operasi dapat dipindahkan lebih awal tanpa menunda operasi lain. 4. Jadwal non-delay, yaitu sekumpulan jadwal fisibel dimana tidak satu pun mesin dibiarkan menganggur jika pada saat yang bersamaan terdapat operasi yang memerlukan mesin tersebut. Berdasarkan ada tidaknya kendala, masalah penjadwalan job-shop dapat dibagi menjadi dua tipe yaitu unconstrained job shop (tanpa kendala) dan constrained job shop (dengan kendala). Pada tipe unconstrained job shop, tidak ada kendala-kendala yang dapat menghambat proses implementasi pekerjaan pada setiap mesin produksi sehingga semua alternatif jadwal bersifat legal.
C. TEKNIK OPTIMASI Optimasi adalah suatu aktivitas untuk mendapatkan hasil terbaik dari suatu permasalahan dengan batasan-batasan yang diberikan. Tujuan utama setiap keputusan yang diambil adalah untuk meminimumkan usaha yang diperlukan atau biaya operasional dan memaksimumkan keuntungan atau nilai tambah. Bila usaha yang diperlukan atau keuntungan yang diharapkan dalam suatu kondisi nyata dapat dinyatakan sebagai fungsi dari peubah keputusan, maka optimasi dapat didefinisikan sebagai proses pencapaian kondisi maksimum atau minimum dari fungsi tersebut. Dapat dilihat pada Gambar 1 bahwa apabila nilai x* merupakan nilai x dimana nilai fungsi f (x) minimum, maka pernyataan ini sama dengan nilai maksimum dari negatif fungsi tersebut (-f(x)) (Maarif, 1989).
f(x)
f(x) x*
x
0 -f(x)
Gambar 1. Nilai minimum f (x) sama dengan maksimum –f(x) (Maarif, 1989) D. ALGORITMA GENETIKA Seorang professor di Universitas Michigan bernama John Holland (1975) telah menemukan sebuah teknik baru yang berfungsi untuk memecahkan masalah-masalah rumit dan komplek yang tidak dapat dipecahakan oleh teknik konvensional.
Teknik tersebut dijelaskan pertama
kali di dalam bukunya yang berjudul Adaptation in Natural and Artificial Systems. Teknik yang diperkenalkan tersebut diterjemahkan ke dalam bahasa komputer dan prosesnya meniru proses alam, yaitu evolusi. Teknik tersebut dikenal dengan nama algoritma genetika (genetic algorithms). Beberapa tahun kemudian, tepatnya pada tahun 1989, David Goldberg, meluncurkan buku berjudul Genetic Algorithm in Search, Optimization, and Machine Learning setelah berhasil mengaplikasikan algoritma genetika untuk perancangan sistem perpipaan distribusi gas alam. Berdasarkan hasil risetnya, ia berhasil membuktikan bahwa algoritma genetika menghasilkan solusi untuk menyelesaikan permasalahan perancangan sistem perpipaan distribusi gas alam berdasarkan parameter-parameter kesuksesan sistem perancangan pipa. Algorima genetika diaplikasikan pada berbagai bidang antara lain, seperti pada desain mesin jet pesawat terbang, prediksi tingkat suku bunga, pengendalian persediaan (inventori), perencanaan dan penjadwalan produksi, dan otomatisasi sistem produksi (Gunawan, 2003).
1. Prosedur Umum Algoritma Genetika Algoritma genetika adalah teknik pencarian dan optimasi yang meniru proses evolusi dan perubahan genetika pada struktur kromosom makhluk hidup. Algoritma genetika mulai bekerja pada sekumpulan calon solusi yang dinamakan populasi awal, yang kemudian dibangkitkan secara acak. Masing-masing individu di dalam populasi awal biasa disebut dengan kromosom. Kromosom biasa dalam bentuk string biner (kode 0 dan 1), meskipun tidak selalu. Selanjutnya kromosom-kromosom tersebut diregenerasi oleh operator-operator pada algoritma genetika melalui beberapa generasi. Masing-masing kromosom pada setiap generasi dilihat nilai fitness-nya (Goldberg, 1989). Pada generasi baru, kromosom baru yang terbentuk disebut kromosom anak (offspring). Kromosom anak terbentuk dari (1) penggabungan antar dua kromosom yang menggunakan operator penyilangan atau (2) hasil modifikasi kromosom yang menggunakan operator mutasi. Generasi baru dibentuk oleh (1) pemilihan, yaitu dilihat dari nilai fitness-nya, baik kromosom induk maupun kromosom anak (offspring) dan (2) penyisihan, yaitu menjaga agar ukuran populasi tetap konstan. Kromosom yang lebih baik, besar kemungkinan untuk dipilih di generasi selanjutnya. Setelah dihasilkan beberapa generasi, terbentuklah sekumpulan kromosom terbaik yang diharapkan mampu memberikan solusi optimum (Gen dan Cheng, 1997). Penciptaan Algoritma Genetika oleh Holland (1975) memberi asumsi bahwa solusi dari induk akan mencari nilai fitness yang tinggi dari beberapa
kromosom
yang
berbeda
sehingga
pencarian
akan
dikombinasikan secara penyilangan yang selanjutnya akan direproduksi dan menghasilkan keturunan yang menjadi calon solusi pada generasi selanjutnya (Bagchi, 1999). Setiap individu dalam sebuah populasi dipilih berdasarkan pada nilai fitness-nya. Nilai fitness akan semakin tinggi dengan adanya kesempatan kromosom untuk bereproduksi pada generasi berikutnya.
Untuk mengimplementasikan Algoritma Genetika, membuat suatu keputusan harus memenuhi syarat berikut ini (Hopgood, 2001) : 1. Merepresentasi calon solusi ke dalam sebuah bilangan/simbol yang dikenal dengan sebutan “kromosom” 2. Menentukan ukuran populasi 3. Mengevaluasi nilai fitness dari masing-masing populasi 4. Memilih
individu-individu
untuk
bereproduksi
pada
generasi
berikutnya dengan melihat nilai fitness-nya 5. Menciptakan sebuah generasi baru sebagai calon solusi dari populasi yang ada 6. Menghentikan proses evolusi apabila kriteria penghentian terpenuhi Di dalam basis algoritma, ada beberapa asumsi dibuat berdasarkan (Hopgood, 2001) : 1. Inisial populasi digenerasikan secara random 2. Individu dievaluasi berdasarkan fungsi fitness 3. Individual-individual diseleksi untuk reproduksi berdasarkan seleksi, kecocokan sebuah individu, dan kemiripan yang akan diseleksi 4. Reproduksi dari sebuah kromosom akan dihasilkan pada generasi berikutnya yang merupakan hasil dari perkembangbiakan antara sepasang kromosom dengan menggunakan operator penyilangan yang kemudian akan diaplikasikan pada operator mutasi untuk setiap keturunanan
Prosedur umum algoritma genetika dapat terlihat pada Gambar 2 berikut :
Mulai
Inisialisasi populasi secara acak
Evaluasi nilai fitness masing-masing individu
Menghasilkan generasi baru
Terjadi proses mutasi dengan peluang Pm
Terjadi proses penyilangan dengan peluang Pc
Seleksi individu
Tidak
Kriteria penghentian terpenuhi ?
Ya
Berhenti
Gambar 2. Prosedur umum algoritma genetika (Hopgood, 2001)
2. Representasi Kromosom Pengkodean (encoding) calon solusi untuk suatu masalah ke dalam sebuah bentuk representasi kromosom merupakan hal yang paling utama pada pengaplikasian algoritma genetika. Holland (1975) memperkenalkan pertama kali representasi kromosom ke dalam bentuk string biner, yang disimbolkan dengan angka nol (0) dan (1).
Pada pengaplikasian algoritma genetika, khususnya di dunia industri, string biner jarang digunakan karena bukan merupakan kode alam. Oleh karena itu, telah diciptakan beberapa teknik pengkodean nonstring untuk berbagai masalah khusus, sebagai contoh real number code (kode bilangan riil) untuk masalah optimasi berkendala dan integer coding (kode integer) untuk masalah optimasi kombinatorial. Sebuah masalah akan ditransformasikan ke dalam representasi kromosom yang tepat. Hal ini penting untuk pengaplikasian algoritma genetika dalam memecahkan masalah-masalah di dunia nyata (Gen dan Cheng, 1997). Beberapa peneliti
telah memperkenalkan
beberapa
bentuk
representasi baru sesuai dengan masalah yang akan dipecahkan. Permutation representation merupakan bentuk representasi baru yang telah diperkenalkan oleh Gen dan Cheng (1997). Representasi ini cocok untuk digunakan untuk masalah perjalanan dan penjadwalan. Sebagai contoh, perjalanan ke 9 kota dengan urutan sebagai berikut : 3–2–5–4–7–1–6–9–8 Urutan perjalanan di atas dijadikan ke dalam bentuk representasi kromosom : 3
2
5
4
7
1
6
9
8
Gambar 3. Representasi kromosom jenis permutation Setiap penerjemahan algoritma genetika di dalam masalah job-shop akan digunakan sebagai alat untuk mencari solusi yang sesuai untuk masalah operasi genetika job-shop yang terjadi sehingga didapatkan semua kromosom yang dapat digenerasikan. Sebuah kromosom memiliki fase inisial atau proses evolusi, proses ini akan menghasilkan sebuah penjadwalan yang layak. Fase ini akan menjadi sangat penting dan akan mempengaruhi langkah selanjutnya dalam algoritma genetika. Salah satu representasi untuk masalah penjadwalan job shop yang dapat digunakan adalah preference-list-based representation (Gen dan Cheng, 1997).
Preference-list-based representation pertama kali diperkenalkan oleh Davis untuk berbagai macam masalah penjadwalan. Falenauer dan Bouffouix menemui keterkaitan antara masalah penjadwalan job shop dengan waktu dan tanggal yang telah ditetapkan. Croce, Tadei, dan Volta mengaplikasikan pada pencarian solusi penjadwalan job-shop (Gen dan Cheng, 1997). Untuk pemecahan masalah job shop dengan pekerjaan sebanyak n dan mesin sebanyak m, sebuah kromosom akan terdiri dari m subkromosom untuk setiap mesin. Setiap subkromosom adalah simbol string dengan panjang n, dan setiap simbol akan teridentifikasi sebagai sebuah operasi untuk dikerjakan pada mesin seharusnya. Hal ini dilakukan karena representasi berdasarkan daftar referensi dan setiap mesin mempunyai daftar referensinya sendiri. Untuk jadwal di lapangan akan ditentukan dengan menggunakan kromosom yang berasal dari simulasi, dimana analisis didasarkan pada urutan menunggu pada jadwal, dan operasi yang muncul pertama kali akan ditunjukkan untuk melakukan pekerjaan untuk pertama kali.
3. Operator-operator Algoritma Genetika Proses dalam algoritma genetika menggunakan inisial populasi yang akan digunakan sebagai input. Proses pada algoritma genetika tersebut terdiri dari beberapa operator, yaitu seleksi, reproduksi, penyilangan, dan mutasi untuk menghasilkan progenies (sebagai kandidat generasi berikutnya untuk mengatasi masalah optimasi). Progenies akan dievaluasi dan dicoba untuk hasil akhir. Jika kriteria hasil akhir telah ditemukan maka ketiga operator tersebut dapat diiterasikan ke dalam populasi, kemudian prosedur akan dilanjutkan sampai pada kriteria hasil akhir pada populasi. Prosedur akan terus dilanjutkan sampai pada penemuan hasil akhir. Di dalam iterasi dari operasi-operasi yang berlaku yaitu untuk menghasilkan keturunan yang disebut sebagai sebuah generasi penemuan akhir dari algoritma genetika (Bagchi, 1999).
a. Seleksi dan Reproduksi Algoritma genetika selalu diawali dengan seleksi secara acak dari populasi dan kemudian dijadikan inisial solusi string acak dari populasi yang menampilkan sebuah variabel keputusan dari masalah yang ada. Masing-masing inisial string dievaluasi sampai pada sebuah pencarian nilai fitness. Jika masalah kepuasan (berdasarkan beberapa kemampuan penerimaan atau pemberhentian pada kriteria yang dicari) sudah ditemukan maka pencarian akan dihentikan (Bagchi, 1999). Reproduksi selalu dilakukan oleh operator pertama yang diaplikasikan pada sebuah keberadaan populasi untuk menciptakan progenies. Reproduksi dimulai dengan mencari kromosom induk yang baik dari mating pool. Hal penting dari reproduksi adalah memilih kromosom dengan fitness di atas rata-rata dari keberadaan populasi yang ada dan memasukkan ke dalam mating pool. Hasil dari seleksi populasi dengan nilai fitness rata-rata yang lebih baik yang akan berlaku sebagai kromosom induk untuk generasi berikutnya (Bagchi, 1999). Goldberg (1989) memperkenalkan teknik seleksi dalam algoritma genetika, salah satunya adalah teknik seleksi cakram rolet (roulette wheel selection). Teknik seleksi ini diilustrasikan sebagai teknik pemutaran cakram rolet. Suatu slot pada cakram rolet ditempati oleh setiap kromosom di dalam sebuah populasi. Ukuran slot sama dengan rasio antara nilai fitness suatu kromosom dengan total nilai fitness semua kromosom.
Gambar 4. Ilustrasi proses seleksi kromosom induk (Magnin di dalam Gunawan, 2003) Teknik seleksi lainnya adalah seleksi turnamen (tournament selection). Seleksi ini akan membandingkan antara dua buah kromosom dalam populasi yang dipilih secara acak. Salah satu dari kromosom akan terpilih apabila memenuhi atau mendekati nilai fitness (Hopgood, 2001).
b. Penyilangan Penyilangan atau crossover juga dikenal sebagai rekombinasi. Operasi penyilangan akan mengalami pertukaran informasi di antara string-string yang ada di dalam mating pool untuk menciptakan stringstring sebagai solusi. Representasi string yang ada berisi informasi yang terdiri dari gen-gen dengan bit yang merupakan string. Untuk contohnya, string dengan 010111 akan mempunyai informasi spesifik dengan 6 posisi yang jelas berbeda, seperti yang dilakukan kromosom dalam genetika alam. Di dalam penyilangan, dua string dapat diambil dari mating pool dan beberapa porsi dari string-string ini akan saling bertukaran. Implementasi penyilangan ini secara umum akan menggunakan satu titik untuk proses penyilangan dimana terjadi penyilangan secara acak yang merupakan pemilihan secara acak
sepanjang string yang ada dan semua bit-bit akan menyebrang dan saling bertukaran (Bagchi, 1999). Penyilangan merupakan operator primer dalam algoritma genetika. Tingkat penyilangan atau peluang penyilangan (Pc) adalah rasio
antara
jumlah
kromosom
yang
diharapkan
mengalami
penyilangan dalam setiap generasi dengan jumlah kromosom total dalam populasi. Tingkat penyilangan yang tinggi menyebabkan semakin besarnya kemungkinan algoritma genetika mengeksplorasi ruang
pencarian
sekaligus
mempercepat
ditemukannya
solusi
optimum. Akan tetapi jika tingkat penyilangan terlalu tinggi juga kurang efisien. Penentuan nilai Pc yang tepat sangat tergantung pada permasalahan yang dihadapi (Gunawan, 2003). Nilai Pc biasanya cukup tinggi (berkisar antara 0,6 – 1). Proses penyilangan akan terjadi pada sepasang kromosom jika suatu bilangan yang dibangkitkan secara acak (r), 0
r
1, nilainya kurang dari atau
sama dengan Pc. Bilangan acak tersebut dibangkitkan setiap kali akan menyilangkan sepasang kromosom. Tingkat penyilangan yang tinggi menyebabkan semakin besar kemungkinan algoritma genetika mengeksplorasi ruang pencarian sekaligus mempercepat ditemukannya solusi optimum. Peluang penyilangan yang tepat dan efektif hanya dapat diketahui melalui pengujian atau percobaan khusus terhadap masalah yang bersangkutan (Syarif dan Mitsuo, 2003). Operator penyilangan yang diperkenalkan oleh Holland (1975) adalah one-point crossover (penyilangan satu titik), yang biasa digunakan untuk kromosom dengan representasi biner. Beberapa operator penyilangan telah diperkenalkan untuk digunakan pada permutation representation, seperti partial-mapped crossover (PMX), order crossover (OX), cycle crossover (CX), position-based crossover, order-based crossover, dan heuristic crossover (Gen dan Cheng, 1997). Goldberg dan Lingle (1985) telah memperkenalkan teknik PMX sebagai salah satu operator penyilangan. Teknik tersebut
merupakan kelanjutan perbaikan dari penyilangan dua titik (two-point crossover) pada permutation representation. PMX digunakan untuk memperbaiki prosedur adanya kromosom illegal dari penyilangan dua titik. Prosedur PMX adalah sebagai berikut : Langkah 1 : Pilih dua buah posisi (string) secara acak pada dua kromosom induk yang akan disilangkan. String-string yang berada di antara dua buah posisi tersebut dinamakan mapping section. Langkah 2 : Pertukarkan dua buah mapping section antara dua kromosom induk sehingga dihasilkan kromosom anak (offspring). Langkah 3 : Tentukan mapping relationship (hubungan pemetaan) di antara dua buah mapping section. Langkah 4 : Legalkan offspring (kromosom anak) hasil mapping relationship.
Contoh ilustrasi pengaplikasian prosedur PMX terdapat pada Gambar 5 berikut ini :
Langkah 1 : Pilih mapping section secara acak pada dua buah kromosom induk. Parent 1
1
2
3
4
5
6
7
8
9
Parent 2
5
4
6
9
2
1
7
8
3
Langkah 2 : Pertukarkan mapping section antara dua kromosom induk sehingga menghasilkan dua kromosom anak. Offspring 1
1
2
6
9
2
1
7
8
9
Offspring 2
5
4
3
4
5
6
7
8
3
Langkah 3 : Tentukan mapping relationship antara dua buah mapping section. 6
3
9
4
2
5
1
6
1
6
2
5
9
4
3
Langkah 4 : Legalkan offspring (kromosom anak) hasil mapping relationship. Offspring 1
3
5
6
9
2
1
7
8
4
Offspring 2
2
9
3
4
5
6
7
8
1
Gambar 5. Ilustrasi prosedur PMX (Gen dan Cheng, 1997)
c. Mutasi Mutasi adalah operator pendukung dalam algoritma genetika yang melakukan perubahan acak secara spontan pada struktur kromosom. Mutasi akan menghasilkan kromosom anak dengan satu atau lebih gen (string)
yang berubah. Dalam algoritma genetika,
mutasi sangat berperan penting, diantaranya adalah (a) menempatkan kembali kromosom-kromosom yang telah hilang dari populasi akibat proses seleksi dan (b) memunculkan kromosom-kromosom yang belum pernah ada pada populasi sebelumnya (Gen dan Cheng, 1997). Peluang
mutasi
(Pm)
didefinisikan
sebagai
persentase
kromosom yang akan mengalami mutasi terhadap total kromosom di dalam populasi. Mutasi akan mencoba memunculkan kromosom baru pada sebuah populasi. Jika peluang mutasi terlalu kecil maka banyak kromosom yang memiliki potensi (nilai fitness yang tinggi) tidak akan pernah muncul. Akan tetapi, apabila peluang mutasi terlalu besar maka akan banyak bermunculan kromosom yang kemungkinan tidak memiliki potensi dalam pencapaian solusi optimum, kromosom anak (offspring) akan kehilangan kemiripan dengan kromosom induk yang memiliki potensi pada populasi sebelumnya dan algoritma genetika akan kehilangan kemampuan untuk belajar dari proses pencarian yang lalu (Gen dan Cheng, 1997). Nilai Pm yang digunakan biasanya sangat kecil (berkisar antara 0,001 – 0,2). Proses mutasi akan terjadi pada suatu gen, jika suatu bilangan yang dibangkitkan secara acak r, 0
r
1, nilainya kurang
dari atau sama dengan Pm (Syarif dan Mitsuo, 2003). Beberapa operator mutasi yang digunakan pada permutation representation adalah inversion mutation (mutasi inversi), insertion mutation
(mutasi
penyisipan),
displacement
mutation
(mutasi
pemindahan), dan reciprocal exchange mutation (mutasi penukaran balik). Ilustrasi proses mutasi dapat dilihat pada gambar-gambar di bawah ini (Gambar 6 – 9) :
Kromosom
1
2
3
4
5
6
7
8
9
Kromosom ($)
1
2
6
5
4
3
7
8
9
Gambar 6. Ilustrasi inversion mutation (mutasi inversi) (Gen dan Cheng, 1997) Kromosom
1
2
3
4
5
6
7
8
9
Kromosom ($)
1
2
6
3
4
5
7
8
9
Gambar 7. Ilustrasi insertion mutation (mutasi penyisipan) (Gen dan Cheng, 1997) Kromosom
1
2
3
4
5
6
7
8
9
Kromosom ($)
1
2
3
7
8
4
5
6
9
Gambar 8. Ilustrasi displacement mutation (mutasi pemindahan) (Gen dan Cheng, 1997) Kromosom
1
2
3
4
5
6
7
8
9
Kromosom ($)
1
2
6
4
5
3
7
8
9
Gambar 9. Ilustrasi reciprocal exchange mutation (mutasi penukaran balik) (Gen dan Cheng, 1997) 4. Fungsi Fitness Fungsi fitness merupakan alat ukur yang digunakan untuk mengevaluasi kromosom-kromosom pada setiap generasi. Kualitas sebuah kromosom di dalam suatu populasi ditunjukkan oleh besarnya nilai fitness. Penghitungan nilai fitness berdasarkan masalah yang akan diselesaikan. Fungsi fitness digunakan untuk memberikan ciri dan mengukur seberapa baik sebuah solusi. Fungsi fitness adalah fungsi yang akan mengukur tingkat kebugaran suatu kromosom dalam populasi. Semakin
besar nilai fitness, semakin bugar pula kromosom dalam populasi sehingga semakin besar kemungkinan kromosom tersebut dapat tetap bertahan pada generasi berikutnya (Chen, Ian dan Cao, 2003). Pada masalah maksimasi, semakin tinggi nilai fitness sebuah kromosom maka besar kemungkinan untuk tetap bertahan di generasi berikutnya. Sebaliknya, pada masalah minimasi, semakin rendah nilai fitness sebuah kromosom maka besar kemungkinan untuk tetap bertahan di generasi berikutnya.
5. Bilangan Acak Bilangan acak merupakan suatu bilangan (r), 0
r
1, yang harus
diinput pada komputer untuk dibangkitkan secara acak. Bilangan acak tersebut dibangkitkan setiap kali akan menyilangkan sepasang kromosom, melakukan mutasi, serta memunculkan kromosom-kromosom pada populasi awal. Bilangan acak pada komputer tidak sama dengan bilangan acak yang terjadi pada alam. Alam memiliki bilangan acak yang sempurna, sedangkan komputer memiliki pola pengacakan tersendiri untuk masing-masing bilangan yang berbeda.
6. Kriteria Penghentian Proses pencarian algoritma genetika akan terus berjalan hingga kriteria
penghentian
terpenuhi.
Kriteria
penghentian
merupakan
penghentian eksekusi program algoritma genetika, yaitu menentukan jumlah generasi maksimum, menentukan selisih nilai fitness rata-rata tertentu antara suatu generasi dengan generasi sebelumnya, atau menentukan batas tingkat keragaman struktur kromosom. Kriteria penghentian yang paling sering dipakai adalah penentuan jumlah generasi maksimum karena penggunaannya yang mudah pada implementasi program di komputer.
7. Perbandingan
Algoritma
Genetika
dengan
Teknik
Optimasi
Konvensional Perbedaan algoritma genetika dengan teknik optimasi konvensional (Goldberg, 1989) adalah sebagai berikut : a. Algoritma genetika bekerja pada sekumpulan solusi itu sendiri yang telah dikodekan, bukan pada solusi itu sendiri Algoritma genetika memiliki ruang pencarian (search space) yang dapat didiskritkan (diputus-putus) meskipun fungsi objektifnya berupa fungsi kontinyu karena bekerja dengan pengkodean variabel solusi. Fungsi diskrit (fungsi terputus-putus) memiliki keuntungan yaitu tidak membutuhkan usaha tambahan seperti pencarian gradien pada fungsi kontinyu, sehingga algoritma genetika dapat diterapkan untuk optimasi di berbagai jenis fungsi dan bidang aplikasi. b. Algoritma genetika melakukan pencarian pada suatu populasi (banyak titik calon solusi), bukan hanya pada satu titik Teknik pencarian pada teknik optimasi konvensional dilakukan hanya pada satu titik tunggal. Titik ini kemudian diperbaiki perlahanlahan dengan arah menaik (fungsi maksimasi) atau menurun (fungsi minimasi) melalui sejumlah iterasi hingga ditemukan solusi optimum. Teknik pencarian seperti ini dapat terjebak ke dalam solusi optimum lokal. c. Algoritma genetika secara langsung memanfaatkan informasi fungsi objektif, bukan turunan atau informasi tambahan lainnya Penyelesaian
masalah
optimasi umumnya
menggunakan
algoritma yang berupa langkah-langkah perhitungan yang secara asimtotik menuju solusi optimum. Teknik optimasi konvensional membangun deretan yang dimaksud berdasarkan gradien (turunan) fungsi objektif atau fungsi kendala untuk memperbaiki solusi tunggal. Algoritma genetika tidak membutuhkan informasi dan asumsi-asumsi demikian. Algoritma genetika hanya membutuhkan informasi nilai fungsi objektif dan memperbaiki sekumpulan solusi fisibel (legal)
dengan operator-operator genetika, yang pada akhirnya diharapkan dapat menghasilkan solusi optimum. d. Algoritma genetika bekerja menggunakan aturan probabilistik, bukan aturan deterministik Operator algoritma genetika tidak bekerja secara deterministik. Operator seleksi, penyilangan, maupun mutasi bekerja menggunakan aturan probabilistik atau pemilihan secara acak.
E. PENELITIAN TERDAHULU Riswan (1993) melakukan penelitian tentang rancangan program komputer untuk penjadwalan job shop dengan metode Priority Dispatching. Penelitian ini memiliki tujuan yaitu membentuk rancangan program komputer yang dapat digunakan untuk menjadwalkan kerja mesin-mesin dan tugas-tugas di divisi job shop PT DC dalam waktu singkat. Pada hasil penjadwalan komputer, penjadwalan kerja mesin-mesin dan alokasi tugas-tugas lebih teratur dan terencana sehingga waktu penyelesaian setiap paket pesanan lebih baik dibandingkan dengan cara manual. Gunawan (2003) melakukan penelitian tentang penjadwalan flow shop menggunakan algoritma genetika. Penelitian tersebut bertujuan untuk mengaplikasikan algoritma genetika dalam bidang penjadwalan produksi yaitu untuk masalah flow-shop deterministik tanpa kendala (unconstraineddeterministic flow shop) berskala besar. Implementasi algoritma genetika dalam program komputer menggunakan bahasa pemrograman Borland Pascal 7.0. Hasil penelitian menunjukkan bahwa algoritma genetika sangat efisien dalam memecahkan masalah flow shop deterministik tanpa kendala berskala besar. Aryawan (2003) melakukan penelitian tentang penerapan algoritma Tabu Search dalam permasalahan penjadwalan job shop. Dalam penelitian ini, Tabu Search diterapkan pada sebuah permasalahan penjadwalan job shop dengan tujuan untuk meminimalkan waktu proses total atau makespan (Cmax). Hasil penjadwalan dibandingkan dengan hasil penjadwalan lain yang menggunakan empat macam metode Basic Dispatching Rules. Hasil
pengolahan data menunjukkan bahwa penjadwalan yang menggunakan Tabu Search memiliki makespan yang lebih kecil apabila dibandingkan dengan keempat metode lainnya. Andria (2007) melakukan penelitian tentang optimasi model rantai pasokan agroindustri cocodiesel dengan menggunakan algoritma genetika. Model rantai pasokan agroindustri yang optimal adalah rantai yang memiliki kombinasi paling baik dan efisien sehingga dapat diperoleh TSCC (Total Supply Chain Cost) yang paling minimum. Penelitian tersebut bertujuan untuk
merancang model rantai pasokan agroindustri cocodiesel berdasarkan model transportasi, inventori, dan distribusi. Model rantai pasokan tersebut kemudian dioptimasi dengan menggunakan metode algoritma genetika. Hasil penelitian ini menunjukkan bahwa metode algoritma genetika sangat efisien dalam menemukan solusi TSCC minimum dari model rantai pasokan agroindustri.
III. METODOLOGI PENELITIAN
A. KERANGKA PEMIKIRAN Penjadwalan secara umum didefinisikan sebagai penetapan waktu dari penggunaan peralatan, fasilitas, dan aktivitas manusia dalam sebuah organisasi. Penjadwalan produksi terdiri dari tiga tahapan utama. Pertama adalah tahapan loading, yaitu penentuan job yang harus diproses untuk setiap mesin. Kedua adalah tahapan sequencing, yaitu penentuan urutan pengerjaan untuk masing-masing job. Ketiga adalah tahapan detailed scheduling, yaitu pengaturan waktu mulai dan selesainya suatu job. Penjadwalan bagi perusahaan manufaktur adalah aspek yang sangat penting karena penjadwalan merupakan salah satu bagian perencanaan dan pengendalian produksi. Jadwal yang baik diperoleh dari algoritma yang baik pula, sehingga perlu untuk menentukan suatu algoritma yang tepat untuk suatu masalah penjadwalan. Penjadwalan tipe job shop merupakan penjadwalan yang kompleks karena merupakan kombinasi pengurutan job-job pada tiap mesin yang memprosesnya. Sebuah industri dengan tipe sistem produksi job-shop menggunakan parameter optimasi yaitu nilai makespan (waktu penyelesaian pekerjaan secara keseluruhan). Semakin meningkatnya alternatif penjadwalan produksi secara eksponensial, dengan banyaknya sumber daya yang digunakan merupakan permasalahan pada optimasi kombinatorial yang kompleks. Kombinasi yang optimum akan menghasilkan nilai makespan yang minimum. Permasalahan pada penjadwalan tipe job shop yang rumit dan kompleks membutuhkan suatu metode yang mampu memecahkan masalah tersebut yang tidak dapat dipecahkan oleh metode-metode konvensional. Penggunaan algoritma genetika, yaitu metode pencarian secara acak yang meniru proses alam (proses evolusi), dapat memecahkan masalah penjadwalan tersebut dengan solusi yang mendekati optimum namun hanya membutuhkan waktu dan usaha yang lebih kecil. Program
algoritma
genetika
akan
dirancang,
dibuat,
dan
diimplementasikan untuk mencari solusi optimum pada permasalahan
penjadwalan tipe job shop dalam penelitian ini. Program tersebut bertujuan untuk meminimumkan nilai makespan (waktu penyelesaian pekerjaan secara keseluruhan). Penggunaan algoritma genetika dalam pencarian solusi yang optimum diharapkan mampu memecahkan masalah penjadwalan tipe job shop dengan lebih efektif dan efisien.
B. PENDEKATAN METODE ILMIAH Penelitian ini menggunakan pendekatan metode ilmiah (scientific method). Pendekatan metode ilmiah merupakan metodologi pemecahan masalah secara sistematis, konsisten, dan logis. Model ilmiah terdiri dari tahap observasi, tahap identifikasi masalah, tahap konstruksi model, tahap verifikasi dan validasi model, tahap solusi, dan tahap implementasi (Taylor, 2002). Diagram metode ilmiah dapat dilihat pada Gambar 10 di bawah ini : Observasi
Definisi Masalah
Perancangan Model
Verifikasi dan Validasi Model
Solusi
Implementasi
Gambar 10. Diagram alir metode ilmiah (Taylor, 2002) Metode di atas merupakan metode yang bersifat umum. Metode penelitian penjadwalan tipe job shop yang menggunakan algoritma genetika diilustrasikan dalam bentuk diagram alir yang terdapat pada Gambar 11.
Mulai
Membuat skenario kasus sederhana sebagai Kasus 1
Menggunakan data riil pada industri peralatan pengolahan hasil pertanian (Kasus 3)
Mengambil kasus dari literatur sebagai Kasus 2
Menentukan fungsi makespan dengan metode preference list based representation
Menyelesaikan Kasus 1 dengan cara enumeratif (mencoba seluruh alternatif penjadwalan yang dapat terjadi)
Membuat program algoritma genetika masalah penjadwalan : GA_JobShop
Membandingkan nilai makespan hasil perhitungan enumeratif dengan hasil pencarian algoritma genetika
Nilai makespan sama ?
tidak
ya Selesai
Gambar 11. Diagram alir penelitian penjadwalan tipe job shop
Program algoritma genetika yaitu GA_JobShop (Genetic Algoritms for Job Shop Scheduling) dibuat dengan bahasa pemrograman Borland Delphi 7.0. Terdapat tiga kasus yang akan dipecahkan oleh program GA_JobShop yaitu Kasus ke-1 merupakan kasus penjadwalan 3 job merupakan kasus penjadwalan 3 job
2 mesin; Kasus ke-2
3 mesin; Kasus ke-3 merupakan kasus
penjadwalan 5 job – 12 mesin. Kasus ke-1 merupakan skenario penjadwalan yang sangat sederhana (numerical example) dan Kasus ke-2 merupakan contoh penjadwalan tipe job shop yang diambil dari literatur yang terdapat pada buku Genetic Algorithm and Engineering Design (Gen dan Cheng, 1997). Kasus ke3 merupakan studi kasus industri peralatan pengolahan hasil pertanian. Ketiga kasus tersebut dioptimasi dengan program GA_JobShop untuk didapatkan nilai makespan yang minimum. Data skenario pada Kasus 1 dirancang sebagai numerical example. Data tersebut dihitung nilai makespan-nya dengan cara enumeratif kemudian dibandingkan dengan hasil yang diperoleh dari pencarian algoritma genetika (menggunakan program GA_JobShop) sebagai verifikasi dan validasi program yang telah dibuat. Verifikasi merupakan pemeriksaan apakah logika pada program sesuai dengan logika penjadwalan tipe job shop, sedangkan validasi merupakan proses penentuan apakah hasil output pada program merupakan representasi yang akurat dari aplikasi nyata (Hoover dan Perry, 1989). Apabila hasil perhitungan dengan program sudah sama dengan hasil perhitungan enumeratif maka program GA_JobShop dapat digunakan untuk memecahkan masalah dengan skala yang lebih besar, seperti Kasus 2 dan Kasus 3.
IV. PEMBAHASAN
A. REPRESENTASI KROMOSOM Representasi kromosom yang digunakan untuk memecahkan masalah penjadwalan job shop salah satunya adalah metode preference-list-based representation (Gen dan Cheng, 1997). Untuk pemecahan masalah job shop dengan pekerjaan sebanyak n dan mesin sebanyak m, sebuah kromosom akan terdiri dari m sub-kromosom untuk setiap mesin. Setiap sub-kromosom adalah simbol string dengan panjang n dan setiap simbol akan teridentifikasi sebagai sebuah operasi untuk dikerjakan pada mesin seharusnya. Hal ini dilakukan karena representasi berdasarkan daftar referensi dan setiap mesin mempunyai daftar referensinya sendiri. Untuk jadwal di lapangan akan ditentukan dengan menggunakan kromosom yang berasal dari simulasi, dimana analisis didasarkan pada urutan menunggu pada jadwal, dan operasi yang muncul pertama kali akan ditunjukkan untuk melakukan pekerjaan untuk pertama kali. Jumlah mesin akan ditunjukkan oleh banyaknya sub-kromosom dan jumlah job akan ditunjukkan oleh banyaknya string di dalam sub-kromosom. Untuk lebih jelasnya, representasi kromosom dapat diilustrasikan pada Gambar 12.
1
2
3
n
1
2
3
n
1
2
3
Mesin 1
Mesin 2
Mesin m
Sub-kromosom
Sub-kromosom
Sub-kromosom
Gambar 12. Representasi kromosom dengan preference-list-based representation
B. FUNGSI FITNESS
n
Evaluasi kromosom dilakukan pada tahap penentuan nilai dari fungsi fitness masing-masing kromosom. Fungsi fitness bertujuan untuk mengukur seberapa baik nilai sebuah kromosom dalam populasi. Pada penjadwalan job shop, fungsi tujuannya adalah meminimumkan nilai makespan (total waktu keseluruhan penyelesaian job). Fungsi tujuannya adalah sebagai berikut : n
m
Min
txy x=1 y=1
Keterangan : n = jumlah job m = jumlah mesin txy = waktu proses job-x di mesin-y
Masalah penjadwalan job shop merupakan masalah minimasi makespan. Fungsi fitness dibuat berbanding lurus dengan fungsi tujuan (nilai makespan) sehingga kromosom yang paling baik adalah kromosom yang memiliki nilai fitness paling kecil. Persamaan fungsi fitness-nya adalah sebagai berikut : n
m
Fk = Mk =
txy x=1 y=1
Keterangan : Fk = Nilai fitness kromosom ke-k pada populasi Mk = Nilai makespan kromosom ke-k pada populasi
C. SELEKSI (SELECTION) Proses seleksi dilakukan dengan cara memilih kromosom yang memiliki nilai makespan minimum atau nilai fitness yang paling kecil. Teknik ini merupakan teknik seleksi turnamen (tournament selection), yaitu akan dipilih dua buah kromosom secara acak dalam suatu populasi, kemudian dibandingkan berdasarkan nilai fitness-nya. Kromosom yang memiliki nilai fitness lebih kecil akan terpilih dan kemudian akan disilangkan dengan
kromosom yang terpilih lainnya untuk dilakukan proses penyilangan (crossover).
D. PENYILANGAN (CROSSOVER) Proses penyilangan adalah bertukarnya gen-gen antara dua buah kromosom yang terpilih sehingga membentuk dua buah kromosom baru (offspring). Kromosom-kromosom baru (offsprings) tersebut diharapkan memiliki nilai fitness yang lebih baik dari kromosom sebelumnya (parent). Operator penyilangan yang digunakan pada penelitian ini adalah jenis Partially-Mapped Crossover (PMX) yang telah dimodifikasi.
PMX yang
digunakan bekerja hanya pada salah satu sub-kromosom pada tiap kromosom. Dua buah kromosom yang terpilih disilangkan dengan cara memilih dua buah titik penyilangan secara acak di masing-masing salah satu subkromosom. Gen-gen yang terletak diantara dua buah sub-kromosom tersebut saling dipertukarkan sehingga membentuk kromosom baru (offspring). Kelegalan sebuah kromosom dilihat dari tidak adanya gen yang sama pada tiap sub-kromosom. Teknik PMX secara otomatis akan membuat kromosom tidak legal menjadi legal dengan metode hubungan pemetaan (mapping relationship).
E. MUTASI (MUTATION) Proses mutasi yaitu terjadinya perubahan struktur kromosom anak (offspring) hasil proses penyilangan menjadi sebuah kromosom baru. Kromosom baru tersebut memiliki struktur yang berbeda dari sebelumnya. Operator mutasi yang digunakan pada penelitian ini adalah jenis reciprocal exchange mutation yang telah dimodifikasi, bekerja dengan cara menukar secara acak dua buah gen pada salah satu sub-kromosom. Mutasi bertujuan untuk memunculkan kromosom yang belum pernah ada ataupun mengembalikan kromosom terdahulu yang telah hilang pada generasi-generasi sebelumnya. Mutasi juga menghindari terjadinya perolehan nilai optimum lokal.
F. IMPLEMENTASI PROGRAM (GA_JobShop) Implementasi dari proses algoritma genetika pada penelitian ini adalah berupa
program
GA_JobShop
yang
dibuat
menggunakan
bahasa
pemrograman Borland Delphi 7.0 dengan acuan program Simple Genetic Algorithm (SGA) yang telah dikembangkan oleh Goldberg pada tahun 1989. Beberapa perubahan dan pengembangan dari program SGA tersebut telah dilakukan, diantaranya : 1. Fungsi makespan untuk menghitung nilai total waktu penyelesaian pada suatu penjadwalan job shop. 2. Representasi kromosom yang digunakan adalah jenis preference list based representation. 3. Prosedur crossover (penyilangan) menggunakan tipe PMX (Arkeman, 1999) yang telah dimodifikasi, yaitu penyilangan terjadi hanya di salah satu sub-kromosom. 4. Metode mutation (mutasi) di dalam prosedur generation menggunakan tipe reciprocal exchange mutation yang telah dimodifikasi, yaitu mutasi terjadi hanya di salah satu sub-kromosom. 5. Fungsi select (seleksi) menggunakan teknik seleksi turnamen (tournament selection),
yang
telah
mengalami
perubahan
dari
sebelumnya
menggunakan seleksi cakram rolet (roulette wheel selection). 6. Prosedur pembuatan output file yaitu report sebagai laporan kinerja algoritma genetika dari generasi ke generasi yang merupakan hasil pengembangan Arkeman (1999). Berikut adalah struktur program utama algoritma genetika (fungsi-fungsi dan prosedur-prosedur) dalam paket program GA_JobShop :
Program Utama
Prosedur
Fungsi
Advance_Random
Random
WarmUp_Random
Flip
Randomize
Rnd
Statistics
Hitung_Makespan
InitData
Select
InitReport InitPop Initialize Crossover Generation Report
Gambar 13. Struktur program utama GA_JobShop
Program GA_JobShop memiliki struktur yang terdiri dari satu program utama, 11 prosedur dan 5 fungsi. Struktur tersebut dapat dilihat pada Gambar 13. Program utama tersebut bertugas untuk menghimpun prosedurprosedur dan fungsi-fungsi yang telah dibuat. Kegunaan dari prosedurprosedur dan fungsi-fungsi di dalam program GA_JobShop adalah sebagai berikut : a. Prosedur Advance_Random, Warm_Up Random, dan Randomize Prosedur untuk membangkitkan bilangan acak pada komputer.
b. Prosedur Statistics Prosedur menghitung dan menyimpan nilai makespan rata-rata, minimum, dan maksimum untuk tiap generasi. c. Prosedur InitData Prosedur untuk menginisialisasi variabel-variabel algoritma genetika seperti panjang kromosom, jumlah populasi, peluang mutasi, peluang penyilangan, dan persiapan pembangkitan bilangan acak. d. Prosedur InitReport Prosedur untuk menampilkan laporan tentang informasi populasi awal atau generasi ke-0 yang mencakup struktur kromosom, nilai makespan tiap kromosom, dan statistik nilai makespan. e. Prosedur InitPop Prosedur untuk membuat suatu populasi awal secara acak dengan representasi kromosom tipe preference list based representation. f.
Prosedur Initialize Prosedur untuk menghimpun prosedur InitData, InitPop, Statistics, dan InitReport.
g. Prosedur Crossover Prosedur untuk menyilangkan dua buah kromosom dengan teknik partially mapped crossover (PMX) yang telah dimodifikasi. h. Prosedur Generation Prosedur untuk mengembangbiakan kromosom-kromosom hingga generasi maksimum. Di dalamnya terdapat proses seleksi, penyilangan, dan mutasi. i.
Prosedur Report Prosedur pembuatan output file yaitu report sebagai laporan kinerja algoritma genetika dari generasi ke generasi yang menginformasikan secara detail tentang struktur kromosom induk dan anak, titik penyilangan, letak
sub-kromosom
terjadinya
penyilangan,
letak
sub-kromosom
terjadinya mutasi, dan nilai makespan. j.
Fungsi Random Fungsi untuk membangkitkan sebuah bilangan acak dari rentang 0-1.
k. Fungsi Flip Fungsi untuk menghasilkan nilai boolean true apabila bilangan acak yang dibangkitkan lebih kecil atau sama dengan nilai probabilitas penyilangan ataupun mutasi. l.
Fungsi Rnd Fungsi untuk membangkitkan bilangan acak dari rentang tertentu. Dalam program ini digunakan untuk membangkitkan nilai-nilai solusi kromosom dari variabel-variabel keputusan.
m. Fungsi Select Fungsi untuk memilih kromosom induk menggunakan teknik tournament selection. n. Fungsi Hitung_Makespan Fungsi untuk menghitung nilai makespan (total waktu penyelesaian) penjadwalan tipe job shop. Langkah-langkah yang dilakukan program GA_JobShop untuk mencari nilai makespan minimum : Langkah 1 : Membaca data masukan masalah penjadwalan job shop : a) Jumlah job b) Jumlah mesin c) Urutan proses tiap-tiap job pada mesin-mesin yang bekerja d) Waktu proses tiap-tiap job pada mesin-mesin yang bekerja Langkah 2 : Membaca masukan nilai-nilai parameter algoritma genetika : a) Probabilitas penyilangan (Pc) b) Probabilitas mutasi (Pm) c) Bilangan acak d) Jumlah generasi maksimum (MaxGen) Langkah 3 : Menginisialisasi populasi awal : a) Membangkitkan populasi awal secara acak b) Mengevaluasi kromosom dalam populasi untuk mengetahui nilai makespan-nya Langkah 4 : Menghasilkan
populasi
baru
sampai
terpenuhi (iterasi algoritma genetika) :
kriteria
penghentian
a) Memilih kromosom induk dengan teknik seleksi turnamen (tournament selection) b) Menyilangkan
(crossover)
kromosom-kromosom
induk
dengan operator penyilangan atau memutasikannya (mutation) dengan operator mutasi berdasarkan probabilitas kejadian masing-masing c) Mengevaluasi setiap kromosom baru yang terbentuk Langkah 5 : Melaporkan nilai makespan (maksimum, minimum, dan ratarata), serta frekuensi kumulatif penyilangan dan mutasi pada setiap generasi. Langkah 6 : Kembali ke Tahap 4 jika generasi maksimum belum tercapai.
G. STUDI KASUS Pada penelitian ini dicari fungsi fitness yang paling kecil yang berarti nilai makespan paling minimum. Ada tiga buah kasus yang akan dikaji dengan menggunakan program GA_JobShop : 1. Kasus 3 job - 2 mesin 2. Kasus 3 job - 3 mesin 3. Kasus 5 job - 12 mesin
Kasus ke-1 merupakan numerical example, yaitu data yang digunakan sebagai verifikasi dan validasi program GA_JobShop. Data kasus 1 dibuat dengan mengikuti aturan permasalahan pada sebuah penjadwalan tipe job shop. Kasus 2 mengacu pada persoalan yang terdapat di dalam buku Genetic Algorithms and Engineering Design (Gen dan Cheng, 1997). Kasus ke-3 merupakan kasus riil di industri peralatan pengolahan hasil pertanian CV Mitra Niaga Indonesia, Bogor.
1. Kasus 1 : Penjadwalan job shop kasus 3 job - 2 mesin Masalah penjadwalan 3 job – 2 mesin berarti masalah penempatan jobjob pada mesin-mesin yang sesuai. Berdasarkan representasi kromosom jenis preference list based representation maka mesin-mesin yang ada digolongkan menjadi sub-kromosom yang memuat daftar job-job di dalamnya, sehingga kasus 3 job – 2 mesin memiliki kemungkinan sebanyak (3!)2 = 36 calon solusi.
Didapatkan persamaan umum untuk peluang representasi kromosom (total search space) adalah (n!)m, dengan n adalah banyaknya job dan m adalah banyaknya mesin. Program GA_JobShop akan diuji kebenarannya melalui data numerik pada Kasus 1 ini. Data ini dibuat dengan mengikuti aturan penjadwalan tipe job shop. Nilai makespan yang diperoleh dari hasil output program GA_JobShop akan dibandingkan dengan perhitungan secara enumeratif, yaitu menghitung semua alternatif yang ada (total search space). Contoh kasusnya adalah sebagai berikut : Waktu Proses Job
Urutan Mesin
Urutan Proses 1
2
j1
2
3
j2
2
j3
5
Job
Urutan Proses 1
2
j1
m1
m2
3
j2
m2
m1
4
j3
m1
m2
Tabel 1. Waktu proses, urutan mesin, dan urutan proses pada Kasus 1 (3 job – 2 mesin) Salah satu karakteristik penjadwalan tipe job shop adalah tiap-tiap job memiliki urutan proses yang berbeda-beda. Pada Tabel 1 di atas dapat dijelaskan bahwa Kasus 1 memiliki tiga job yang harus diselesaikan pada dua mesin yang berbeda. Job 1 memiliki urutan proses yang berbeda dengan job 2. Job 1 harus melewati mesin 1 terlebih dahulu kemudian dilanjutkan dengan mesin 2. Mesin 2 menjadi mesin yang didahulukan oleh job 2. Job 3 memiliki urutan proses yang sama dengan job 1, yaitu mesin 1 setelah itu mesin 2. Masing-masing mesin memiliki waktu proses yang berbeda untuk jobjob yang berbeda. Mesin 1 memproses job 1 selama 2 satuan waktu, memproses job 2 selama 3 satuan waktu, dan memproses job 3 selama 5 satuan waktu. Sedangkan mesin 2 memproses job 1 selama 3 satuan waktu, memproses job 2 selama 2 satuan waktu, dan memproses job 3 selama 4 satuan waktu. Untuk dapat lebih memahami tabel di atas maka dapat diilustrasikan pada Gambar 14 di bawah ini :
Urutan mesin yang harus dilewati Job 1
Job 2
Job 3
1
2
t=2
t=3
2
1
t=2
t=3
1
2
t=5
t=4
Gambar 14. Ilustrasi alur proses pada Kasus 1 (3 job – 2 mesin) Tiap-tiap job yang melewati mesin-m akan menjadi suatu gen di dalam sub-kromosom (mesin-m). Representasi kromosomnya dapat dilihat pada Gambar 15 di bawah ini :
1
2 Mesin 1
3
1
2
3
Mesin 2
Gambar 15. Representasi kromosom penjadwalan tipe job shop kasus 3 job – 2 mesin Nilai-nilai gen di dalam sub-kromosom menandakan job n yang harus melewati mesin m. Nilai-nilai tersebut akan diacak sehingga menghasilkan penjadwalan yang variatif. Cara menerjemahkan kromosom pada Gambar 15 adalah sebagai berikut :
Langkah 1.
Cek masing-masing nilai gen (job n) yang pertama pada tiap-tiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-1.
1
2
3
1
2
3
Gambar 16. Cek nilai gen yang pertama pada mesin 1 dan 2 untuk urutan proses ke-1 Job 1 merupakan urutan proses yang ke-1 pada mesin 1 sehingga dapat digambarkan sebagai berikut :
m2 m1
Job 1 1
2
3
4
5
6
7
8
9
10
11
12
waktu
Gambar 17. Penempatan job 1 urutan proses ke-1 pada mesin 1 Langkah 2.
Cek masing-masing nilai gen (job n) yang kedua pada tiaptiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-1.
1
2
3
1
2
3
Gambar 18. Cek nilai gen yang kedua pada mesin 1 dan 2 untuk urutan proses ke-1 Job 2 merupakan urutan proses yang ke-1 pada mesin 2 sehingga dapat digambarkan sebagai berikut :
m2 m1
Job 2 Job 1 1
2
3
4
5
6
7
8
9
10
11
12
waktu
Gambar 19. Penempatan job 2 urutan proses ke-1 pada mesin 2 Langkah 3.
Cek masing-masing nilai gen (job n) yang ketiga pada tiaptiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-1.
1
2
3
1
2
3
Gambar 20. Cek nilai gen yang ketiga pada mesin 1 dan 2 untuk urutan proses ke-1 Job 3 merupakan urutan proses yang ke-1 pada mesin 1 sehingga dapat digambarkan sebagai berikut :
m2 m1
Job 2 Job 1 1
2
Job 3 3
4
5
6
7
8
9
10
11
12
waktu
Gambar 21. Penempatan job 3 urutan proses ke-1 pada mesin 1 Langkah 4.
Cek kembali masing-masing nilai gen (job n) yang pertama pada tiap-tiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-2.
1
2
3
1
2
3
Gambar 22. Cek nilai gen yang pertama pada mesin 1 dan 2 untuk urutan proses ke-2 Job 1 merupakan urutan proses yang ke-2 pada mesin 2 sehingga dapat digambarkan sebagai berikut :
m2 m1
Job 2
Job 1
Job 1 1
2
Job 3 3
4
5
6
7
8
9
10
11
12
waktu
Gambar 23. Penempatan job 1 urutan proses ke-2 pada mesin 2 Langkah 5.
Cek kembali masing-masing nilai gen (job n) yang kedua pada tiap-tiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-2.
.
1
2
3
1
2
3
Gambar 24. Cek nilai gen yang kedua pada mesin 1 dan 2 untuk urutan proses ke-2
Job 2 merupakan urutan proses yang ke-2 pada mesin 1 sehingga dapat digambarkan sebagai berikut :
m2
Job 2
m1
Job 1 1
2
Job 1 Job 3 3
4
5
Job 2 6
7
8
9
10
11
12
waktu
Gambar 25. Penempatan job 2 urutan proses ke-2 pada mesin 1 Langkah 6.
Cek kembali masing-masing nilai gen (job n) yang ketiga pada tiap-tiap sub-kromosom (mesin m) apakah job pada mesin tersebut merupakan urutan proses yang ke-2.
1
2
3
1
2
3
Gambar 26. Cek nilai gen yang ketiga pada mesin 1 dan 2 untuk urutan proses ke-2 Job 3 merupakan urutan proses yang ke-2 pada mesin 2 sehingga dapat digambarkan sebagai berikut :
m2 m1
Job 2
Job 1
Job 1 1
2
Job 3
Job 3 3
4
5
Job 2 6
7
8
9
10
11
12
waktu
Gambar 27. Penempatan job 3 urutan proses ke-2 pada mesin 2 Pada Gambar 27 di atas merupakan penerjemahan dari kromosom [1 2 3] [1 2 3] didapatkan nilai makespan sebesar 11 satuan waktu.
a. Tampilan Program GA_JobShop Tampilan program GA_JobShop dapat dilihat pada Gambar 28 di bawah ini :
Gambar 28. Tampilan program GA_JobShop
b. Input Program Nilai-nilai utama yang diinput pada Kasus 1 adalah : Ø Jumlah job
= 3
Ø Jumlah mesin = 2 Ø Waktu proses dari tiap-tiap job (berdasarkan Tabel 1) Ø Urutan proses dari tiap-tiap job (berdasarkan Tabel 1) Input program Kasus 1 pada Jumlah Job yaitu 3 dan Jumlah Mesin yaitu 2. Setelah kedua nilai tersebut diinput maka langkah selanjutnya adalah memasukkan waktu proses tiap-tiap mesin pada job-job yang diproses. Penjadwalan job shop adalah penjadwalan yang urutan proses mesin-mesinnya berbeda-beda untuk masing-masing job. Input waktu proses dan urutan proses dapat dilihat dari Tabel 1. Nilai-nilai tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 29. Input nilai-nilai utama pada program GA_JobShop (Kasus 1)
c. Parameter-parameter Algoritma Genetika Nilai-nilai parameter algoritma genetika yang digunakan untuk Kasus 1 adalah sebagai berikut : Ø Peluang penyilangan (Pc)
= 0.9
Ø Peluang mutasi (Pm)
= 0.01
Ø Bilangan acak (0-1)
= 0.6
Ø Jumlah populasi (PopSize)
= 20
Ø Jumlah generasi maksimum (MaxGen) = 100 Peluang penyilangan (Pc) biasanya memiliki nilai yang tinggi. Semakin tinggi nilai Pc maka akan semakin banyak kromosom-kromosom yang mengalami penyilangan. Dengan penyilangan diharapkan akan mendapatkan kromosom baru (offspring) yang nilai makespan-nya lebih optimum. Pada program GA_JobShop terdapat tiga pilihan untuk menentukan peluang penyilangan yang akan digunakan, yaitu 0,9; 0,8; dan 0,7. Peluang mutasi (Pc) biasanya memiliki nilai yang rendah. Peluang terjadinya mutasi memang cukup rendah karena apabila terlalu banyak terjadi mutasi maka kemungkinan akan mengganggu kestabilan populasi yang ada. Mutasi bertujuan untuk memunculkan kromosom yang belum
pernah ada pada sebuah populasi atau mengembalikan kromosom yang pernah ada pada populasi. Pada program GA_JobShop terdapat tiga pilihan peluang mutasi, yaitu 0,5; 0,01; dan 0. Kedua proses tersebut, yaitu penyilangan dan mutasi dilakukan dengan tujuan pencapaian nilai makespan yang optimum. Jumlah populasi (PopSize) menunjukkan ukuran populasi, yaitu jumlah kromosom pada suatu populasi. Jumlah populasi pada program GA_JobShop sudah ditentukan yaitu 20, artinya terdapat 20 kromosom pada setiap populasi. Jumlah generasi maksimum digunakan sebagai kriteria penghentian. Pada Kasus 1, generasi maksimum ditentukan sebesar 100, artinya proses pencarian algoritma genetika akan berhenti setelah generasi atau populasi sudah mencapai 100. Nilai-nilai parameter tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 30. Input nilai-nilai parameter pada program GA_JobShop (Kasus 1)
d. Inisialisasi Populasi Awal Populasi awal P(0) dibangkitkan secara acak oleh program GA_JobShop dan hasil running dapat dilihat pada Gambar 31 di bawah ini :
Gambar 31. Populasi awal P(0) untuk Kasus 1 Pada populasi ke-0 nilai makespan tertinggi yaitu sebesar 14 dan terendah sebesar 11. Nilai makespan rata-rata pada populasi awal tersebut yang telah dibangkitkan oleh bilangan acak sebesar 0,6 adalah 12,35.
e. Evaluasi dan Seleksi Kromosom Setiap kromosom-k dalam populasi dievaluasi dengan menghitung nilai fitness-nya setelah terbentuk populasi awal. Pada kasus penjadwalan tipe job shop, nilai makespan merupakan nilai fitness. Berikut adalah nilai makespan untuk masing-masing kromosom (Mk) pada P(0) : M1 = 14
M6 = 12
M11 = 14
M16 = 11
M2 = 14
M7 = 14
M12 = 11
M17 = 11
M3 = 11
M8 = 11
M13 = 12
M18 = 11
M4 = 11
M9 = 14
M14 = 14
M19 = 11
M5 = 14
M10 = 12
M15 = 14
M20 = 11
Setelah semua kromosom dievaluasi nilai makespan-nya, proses selanjutnya adalah proses seleksi kromosom. Sepasang kromosom akan dipilih secara acak untuk disilangkan membentuk sepasang kromosom baru. Teknik seleksi yang digunakan adalah teknik seleksi turnamen (tournament selection). Berikut adalah langkah-langkah teknik seleksi turnamen pada Kasus 1 : Langkah 1.
Pilih dua buah kromosom secara acak dalam populasi
Langkah 2.
Bandingkan nilai makespan kedua buah kromosom tersebut
Langkah 3.
Kromosom akan terpilih apabila nilai makespan kromosom tersebut lebih kecil dari nilai makespan kromosom yang lain
Kromosom-kromosom yang terpilih sebagai kromosom induk dari P(0) adalah sebagai berikut : Kromosom(2) , makespan-nya
à M2
= 14
Kromosom(4) , makespan-nya
à M3
= 11
Kromosom(6) , makespan-nya
à M5
= 12
Kromosom(8) , makespan-nya
à M6
= 11
Kromosom(9) , makespan-nya
à M7
= 14
Kromosom(10) , makespan-nya
à M8
= 12
Kromosom(11) , makespan-nya
à M9
= 14
Kromosom(12) , makespan-nya
à M 13 = 11
Kromosom(13) , makespan-nya
à M 14 = 12
Kromosom(15) , makespan-nya
à M 15 = 14
Kromosom(16) , makespan-nya
à M 17 = 11
Kromosom(17) , makespan-nya
à M 18 = 11
Kromosom(18) , makespan-nya
à M 19 = 11
Kromosom(19) , makespan-nya
à M 18 = 11
Kromosom(20) , makespan-nya
à M 19 = 11
f. Penyilangan dan Mutasi Proses penyilangan terjadi setelah proses seleksi. Dua buah (sepasang) kromosom induk diberikan suatu peluang untuk dapat melakukan melakukan proses penyilangan. Pada Kasus 1 ini peluang penyilangan (Pc) yang digunakan adalah 0,9. Nilai 0,9 berarti diharapkan 90% populasi yang terbentuk pada generasi selanjutnya adalah hasil penyilangan generasi sebelumnya. Teknik penyilangan yang digunakan adalah Partially Mapped Crossover (PMX) yang telah dimodifikasi pada penelitian ini. Berikut adalah tahapan-tahapan proses penyilangan : Tahapan 1. Mengambil sepasang kromosom induk hasil proses seleksi Tahapan 2. Menentukan salah satu sub-kromosom secara acak pada masing-masing kromosom induk yang akan disilangkan Tahapan 3. Menentukan dua buah titik penyilangan secara acak pada masing-masing sub kromosom yang terpilih secara acak Tahapan 4. Menyilangkan dua buah sub-kromosom tersebut dengan aturan PMX Tahapan 5. Muncul dua buah kromosom baru hasil penyilangan dan masukkan ke dalam populasi berikutnya Dari populasi P(0) diambil sebagai contoh yang mengalami penyilangan adalah kromosom(8) dan kromosom(16). Sub-kromosom (Mach.Cross) yang terpilih adalah sub-kromosom ke-1 dengan titik penyilangannya adalah 1 dan 2. Proses penyilangan tersebut dapat dilihat pada Gambar 32. Sepasang kromosom yang disilangkan tersebut menghasilkan dua buah kromosom baru yang nilai makespan-nya lebih besar dari kedua induknya. Dua buah kromosom baru tersebut menjadi anggota populasi baru P(1) sebagai kromosom(1) dan kromosom(2). Ilustrasi proses penyilangan tersebut dapat dilihat pada Gambar 32 di bawah ini :
1
2
Parent 1
2
1
3
1
2
3
M 8 = 11
Parent 2
1
3
2
2
1
3
M 16 = 11
Child 1
2
3
1
1
2
3
M 3 = 14
Child 2
3
1
2
2
1
3
M 4 = 14
Gambar 32. Proses penyilangan kromosom(8) dan kromosom(16) generasi ke-0 untuk Kasus 1 Pada Gambar 32 di atas dapat dilihat bahwa sub-kromosom ke-1 dari kromosom(8) adalah [2 1 3] dengan titik penyilangan 1 dan 2 maka job 1 terpilih sebagai gen yang mengalami proses penyilangan. Subkromosom ke-1 dari kromosom(16) adalah [1 3 2] dan gen yang mengalami penyilangan adalah gen 3. Setelah itu gen-gen yang terpilih yaitu 1 dan 3 saling bertukaran. Sesuai dengan metode PMX, maka hasil penyilangan kromosom(8) dan kromosom(16) adalah [2 3 1] [1 2 3] dan [3 1 2] [2 1 3]. Kromosom(8) dan kromosom(16) yang kedua-duanya memiliki nilai makespan sebesar 11, setelah mengalami proses penyilangan mengalami
perubahan nilai makespan,
yaitu
terjadi
peningkatan nilai menjadi 14 pada masing-masing kromosom anak. Berikut ini merupakan populasi baru P(1) yang terbentuk dari penyilangan kromosom-kromosom di populasi awal P(0) :
Gambar 33. Populasi baru P(1) pada Kasus 1 Proses yang mungkin terjadi pada suatu populasi, selain proses penyilangan adalah proses mutasi. Peluang terjadinya mutasi adalah sangat kecil apabila dibandingkan dengan peluang terjadinya penyilangan. Pada Kasus 1, peluang mutasi adalah sebesar 0,01 yang artinya adalah 1% kromosom dalam populasi baru mengalami mutasi. Mutasi terjadi hanya pada salah satu sub-kromosom dan salah satu gen. Pada Kasus 1, mutasi terjadi pada generasi ke-7 atau populasi P(7) dan terjadi pada kromosom(10). Kromosom(10) adalah kromosom anak hasil penyilangan kromosom(10) dan kromosom(1) pada generasi ke-6 atau populasi P(6). Proses mutasi terjadi setelah proses penyilangan dan disebut dengan mutation-embedded within crossover. Berikut adalah kromosom-kromosom populasi P(6) sebagai kromosom induk populasi P(7) yang akan mengalami mutasi setelah mengalami proses penyilangan :
Gambar 34. Kromosom-kromosom pada populasi P(6) sebelum mengalami penyilangan dan mutasi di populasi P(7) Berikut adalah populasi dimana pertama kali terjadi proses mutasi (Kasus1) :
Gambar 35. Populasi P(7) terjadi mutasi pada Kasus 1 Proses mutasi tersebut dapat dilihat pada Gambar 36 di bawah ini :
1
2
Parent 1
1
2
3
1
2
3
M 10 = 11
Parent 2
1
2
3
1
2
3
M 1 = 11
Child 1
1
2
3
1
2
3
M 9 = 11
Child 2
1
2
3
1
2
3
M 10 = 11
*
*
3
1
2
3
M 10 ($) = 11
Child 2 ($)
2
1
Gambar 36. Mutasi kromosom(10) pada generasi ke-7 untuk Kasus 1 Mutasi terjadi pada kromosom(10), generasi ke-7. Sub-kromosom (Mach.Mutate) yang terpilih adalah sub-kromosom ke-1, yaitu [1 2 3] dan setelah mengalami mutasi maka gen 1 dan 2 saling bertukaran. Kromosom baru hasil proses mutasi adalah [2 1 3] [1 2 3] yang memiliki nilai makespan yang sama dengan nilai makespan kromosom induknya. Nilai makespan tetap 11. Seluruh proses pada program GA_JobShop mulai dari inisialisasi populasi awal, evaluasi kromosom, seleksi kromosom, proses penyilangan, serta proses mutasi merupakan tahapan-tahapan yang menjadi rangkaian pencarian dalam menemukan solusi optimum. Pencarian akan dihentikan apabila kriteria penghentian terpenuhi. Kriteria penghentian yang digunakan pada program GA_JobShop adalah jumlah generasi maksimum (MaxGen). Untuk Kasus 1 generasi maksimumnya adalah sebanyak 100 generasi, artinya proses pencarian akan berhenti setelah mencapai generasi ke-100.
g. Hasil Running Program GA_JobShop Hasil running program GA_JobShop untuk Kasus 1 diilustrasikan dalam dua buah grafik. Grafik yang pertama yaitu terdapat pada Gambar 37, menunjukkan nilai makespan maksimum (Max), makespan rata-rata (Avg), dan makespan minimum (Min) dari generasi awal (generasi ke-0) hingga generasi maksimum (generasi ke-100). Grafik berikutnya terdapat pada Gambar 38, menunjukkan frekuensi terjadinya penyilangan dan mutasi sepanjang 100 generasi.
Gambar 37. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum untuk 100 generasi pada Kasus 1 (Pc=0,9 ; Pm=0,01 ; Bilangan Acak=0,6 ; PopSize=20, MaxGen=100) Nilai makespan maksimum tertinggi yang pernah diperoleh sepanjang 100 generasi adalah sebesar 14 dan nilai makespan minimum terendah yang pernah diperoleh sepanjang 100 generasi adalah sebesar 11. Nilai makespan mulai konvergen pada generasi ke-3, kemudian nilai 14 muncul kembali di generasi ke-17. Nilai tersebut muncul kembali dikarenakan oleh proses mutasi yang terjadi di generasi ke-17. Generasi selanjutnya kembali konvergen di nilai 11. Semua nilai 14 yang kembali muncul setelah generasi ke-3 adalah hasil proses mutasi, meskipun tidak semua proses mutasi mengubah nilai
makespan menjadi 14. Terdapat beberapa proses mutasi pada Kasus 1 yang tidak menyebabkan terjadinya perubahan pada nilai makespan.
Gambar 38. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 1 (Pc=0,9 ; Pm=0,01 ; Bilangan Acak=0,6 ; PopSize=20, MaxGen=100) Sepanjang 100 generasi pada Kasus 1 telah terjadi proses penyilangan sebanyak 906 kali dan proses mutasi sebanyak 19 kali. Generasi ke-0 memang belum ada proses penyilangan dan mutasi. Kedua proses tersebut mulai dilakukan pada generasi ke-1. Frekuensi tertinggi untuk penyilangan pada tiap-tiap generasi adalah sebanyak 10 kali dan frekuensi terendah sebanyak 6 kali. Mutasi dengan frekuensi tertinggi yaitu sebanyak 2 kali dan frekuensi terendah yaitu sebanyak 0 kali, artinya tidak dilakukan. Nilai makespan terbaik (paling optimum) yang diperoleh dari 100 generasi adalah 11, dengan struktur kromosomnya adalah [2 1 3] [2 1 3]. Berikut adalah penerjemahan kromosom tersebut : Tahap 1 Mesin 1 2
×
1
Mesin 2 3
2
1
3
×
×
Urutan proses ke-1
m2
Job 2
m1
Job 1 1
Job 3
2
3
4
5
6
7
8
9
10
11
12
waktu
Tahap 2 Mesin 1 2
1
Mesin 2 2
3
× ×
×
1
3
×
×
Urutan proses ke-1 Urutan proses ke-2
×
m2
Job 2
m1
Job 1 1
2
Job 1
Job 3
Job 3 3
4
5
Job 2 6
7
8
9
10
11
12
waktu
Gambar 39. Tahapan-tahapan penerjemahan salah satu kromosom terbaik pada Kasus 1 Pada tahap 1, yaitu penempatan job-n yang melewati mesin-m pada urutan proses ke-1. Apabila job tersebut merupakan urutan proses ke-1 pada mesin-m (sub-kromosom ke-m) maka penempatan dilakukan. Pengecekan dimulai dari gen yang pertama (paling kiri) dari masingmasing sub-kromosom. Penempatan didahulukan dari gen yang lebih awal (dari kiri ke kanan) pada sub-kromosom yang sama. Job-1 dan job-3 di mesin-1; dan job-2 di mesin-2 merupakan urutan proses ke-1. Tempatkan ketiga job tersebut pada mesin yang sesuai
dengan waktu proses masing-masing job pada mesin tersebut. Dahulukan penempatan job-1 dari job-3 yang keduanya merupakan urutan proses ke-1 di mesin-1 karena penerjemahan kromosom gen-1 berada di sebelah kiri gen-3 pada sub-kromosom ke-1. Pada tahap 2, yaitu penempatan job-n yang melewati mesin-m pada urutan proses ke-2. Penempatan pada tahap 2 hampir sama dengan tahap 1. Terdapat beberapa ketentuan dalam penempatan job, yaitu : 1. Penempatan job dilakukan setelah job lain pada urutan proses sebelumnya di mesin yang sama selesai dilakukan, artinya satu mesin tidak dapat memproses beberapa job sekaligus, contohnya pada penempatan job-1 di mesin-2 dan job-2 di mesin-1. 2. Penempatan job yang sama pada mesin yang berbeda dilakukan setelah job tersebut pada urutan proses sebelumnya selesai dilakukan, artinya tiap-tiap job tidak dapat diproses pada satu waktu sekaligus di mesin yang berbeda, contohnya pada penempatan job-3.
2. Kasus 2 : Penjadwalan job shop kasus 3 job - 3 mesin Pada Kasus 2, yaitu masalah penjadwalan 3 job – 3 mesin merupakan studi literatur. Contoh kasus diperoleh dari buku Genetic Algorithms and Engineering Design (Gen dan Cheng, 1997). Berikut adalah contoh kasusnya : Waktu Proses Job
Urutan Mesin
Urutan Proses 1
2
3
j1
3
3
2
j2
1
5
j3
3
2
Urutan Proses
Job
1
2
3
j1
m1
m2
m3
3
j2
m1
m3
m2
3
j3
m2
m1
m3
Tabel 2. Waktu proses, urutan mesin, dan urutan proses pada Kasus 2 (3 job – 3 mesin) (Gen dan Cheng, 1997) Urutan mesin yang harus dilewati Job 1
Job 2
Job 3
1
2
3
t=3
t=3
t=2
1
3
2
t=1
t=5
t=3
2
1
3
t=3
t=2
t=3
Gambar 40. Ilustrasi alur proses pada Kasus 2 (3 job – 3 mesin)
a. Input Program Nilai-nilai utama yang diinput pada Kasus 2 adalah : Ø Jumlah job
= 3
Ø Jumlah mesin = 3 Ø Waktu proses dari tiap-tiap job (berdasarkan Tabel 2) Ø Urutan proses dari tiap-tiap job (berdasarkan Tabel 2)
Nilai-nilai tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 41. Input nilai-nilai utama pada program GA_JobShop (Kasus 2)
b. Parameter-parameter Algoritma Genetika Nilai-nilai parameter algoritma genetika yang digunakan untuk Kasus 2 adalah sebagai berikut : Ø Peluang penyilangan (Pc)
= 0.9
Ø Peluang mutasi (Pm)
= 0.01
Ø Bilangan acak (0-1)
= 0.6
Ø Jumlah populasi (PopSize)
= 20
Ø Jumlah generasi maksimum (MaxGen) = 100
Nilai-nilai parameter tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 42. Input nilai-nilai parameter pada program GA_JobShop (Kasus 2)
c. Inisialisasi Populasi Awal Populasi awal P(0) dibangkitkan secara acak oleh program GA_JobShop dan hasil running dapat dilihat pada Gambar 43 di bawah ini :
Gambar 43. Populasi awal P(0) untuk Kasus 2
Pada populasi ke-0 nilai makespan tertinggi yaitu sebesar 14 dan terendah sebesar 10. Nilai makespan rata-rata pada populasi awal tersebut yang telah dibangkitkan oleh bilangan acak sebesar 0,5 adalah 11,15.
d. Evaluasi dan Seleksi Kromosom Nilai makespan yang merupakan hasil evaluasi untuk masingmasing kromosom pada P(0) adalah sebagai berikut : M1 = 14
M6 = 14
M11 = 14
M16 = 14
M2 = 12
M7 = 11
M12 = 14
M17 = 14
M3 = 11
M8 = 14
M13 = 14
M18 = 11
M4 = 11
M9 = 11
M14 = 14
M19 = 11
M5 = 12
M10 = 11
M15 = 14
M20 = 11
Kromosom-kromosom yang terpilih sebagai kromosom induk P(1) hasil seleksi dari populasi P(0) adalah sebagai berikut : Kromosom(4) , makespan-nya
à M 4 = 11
Kromosom(7) , makespan-nya
à M 7 = 11
Kromosom(8) , makespan-nya
à M 8 = 14
Kromosom(9) , makespan-nya
à M 9 = 11
Kromosom(10) , makespan-nya
à M 10 = 11
Kromosom(12) , makespan-nya
à M 12 = 14
Kromosom(14) , makespan-nya
à M 14 = 14
Kromosom(15) , makespan-nya
à M 15 = 14
Kromosom(16) , makespan-nya
à M16 = 14
Kromosom(17) , makespan-nya
à M 17 = 14
Kromosom(18) , makespan-nya
à M 18 = 11
Kromosom(19) , makespan-nya
à M 19 = 11
e. Penyilangan dan Mutasi Pada kasus 2 peluang penyilangan adalah 0,9 artinya diharapkan 90% populasi yang terbentuk pada generasi berikutnya adalah hasil penyilangan generasi sebelumnya. Teknik penyilangan yang digunakan adalah metode Partially Mapped
Crossover (PMX)
yang telah
dimodifikasi khusus untuk kromosom yang terdiri dari beberapa subkromosom. Berikut populasi baru P(1) hasil penyilangan kromosomkromosom induk yang terseleksi :
Gambar 44. Populasi P(1) pada Kasus 2 Proses mutasi pertama kali terjadi pada kromosom(2) yang terdapat di dalam generasi ke-7 atau populasi P(7). Kromosom tersebut mengalami mutation-embedded within crossover atau mutasi yang terjadi setelah proses penyilangan. Kromosom tersebut mengalami mutasi pada subkromosom ke-2. Berikut adalah populasi P(7) yang di dalamnya terdapat kromosom yang pertama kali mengalami mutasi :
Gambar 45. Populasi P(7) terjadi mutasi pada Kasus 2 Kromosom(1) dan kromosom(2) pada P(7) merupakan kromosom anak yang berasal dari sepasang kromosom pada populasi sebelumnya P(6), yaitu kromosom(10) dan kromosom(19). Keduanya telah mengalami proses penyilangan di P(7), yaitu pada sub-kromosom ke-3 dan titik penyilangan 1 dan 2. Kromosom induk dari populasi P(6) dapat dilihat pada Gambar 46 di bawah ini :
Gambar 46. Kromosom-kromosom induk pada populasi P(6) yang akan diseleksi untuk disilangkan dan dimutasi pada populasi P(7)
Proses
penyilangan
terjadi
antara
kromosom(10)
dan
kromosom(19) pada sub kromosom ke-3. Struktur kromosom(10) yaitu [2 1 3][2 1 3][2 3 1] dan kromosom(19) memiliki struktur [2 3 1][2 1 3] [2 3 1]. Dapat dilihat bahwa sub-kromosom ke-3 pada kromosom(10) memiliki struktur yang sama dengan sub-kromosom ke-3 pada kromosom(19), akibatnya proses penyilangan menghasilkan kromosom anak yang identik dengan kromosom induk. Berikut ilustrasi proses mutasi kromosom(2) pada populasi P(6) :
*
*
2
3
1
2
1
3
2
3
1
M 2 = 11
2
3
1
1
2
3
2
3
1
M 2 ($) = 11
Gambar 47. Proses mutasi kromosom(2) pada populasi P(7) Mutasi kromosom(2) terjadi pada sub-kromosom (Mach.Mutate) ke-2. Gen yang saling bertukaran adalah gen 1 dan 2. Mutasi tidak berpengaruh nyata terhadap nilai makespan. Kromosom anak yang dihasilkan setelah terjadi mutasi memiliki nilai makespan yang sama dengan kromosom anak sebelum terjadi mutasi. Proses-proses algoritma genetika pada Kasus 2 mulai dari inisialisasi populasi awal, evaluasi kromosom, seleksi kromosom, proses penyilangan, serta proses mutasi akan dihentikan apabila pencarian telah mencapai 100 generasi (MaxGen = 100).
f. Hasil Running Program GA_JobShop Hasil running program GA_JobShop untuk Kasus 2 diilustrasikan dalam dua buah grafik. Grafik yang pertama yaitu terdapat pada Gambar 48, menunjukkan nilai makespan maksimum (Max), makespan rata-rata (Avg), dan makespan minimum (Min) dari generasi awal (generasi ke-0) hingga generasi maksimum (generasi ke-100). Grafik berikutnya terdapat pada Gambar 49, menunjukkan frekuensi terjadinya penyilangan dan mutasi sepanjang 100 generasi.
15.0 14.5 14.0 13.5 13.0 12.5 12.0 11.5 11.0 10.5 10.0 0
10
20
30
MIN
40
50
Generasi
AVG
60
70
80
90
100
MAX
Gambar 48. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum untuk 100 generasi pada Kasus 2 (Pc=0,9 ; Pm=0,01 ; Bilangan Acak=0,6 ; PopSize=20, MaxGen=100) Gambar 48 di atas memperlihatkan bahwa nilai makespan maksimum tertinggi yang pernah diperoleh sepanjang 100 generasi adalah sebesar 14 dan nilai makespan minimum terendah yang pernah diperoleh sepanjang 100 generasi adalah sebesar 11. Nilai makespan mulai konvergen pada generasi ke-3, akan tetapi terjadi beberapa kali peningkatan nilai makespan rata-rata yang dikarenakan nilai-nilai yang lebih tinggi dari nilai minimum bermunculan kembali. Hal tersebut diakibatkan oleh proses penyilangan dan mutasi yang terjadi. Pada generasi ke-5 nilai makespan 14 kembali muncul akibat proses penyilangan. Terjadi beberapa ketidakstabilan nilai sepanjang 100 generasi meskipun nilai minimum sempat konvergen pada generasi ke-3. Nilai minimum mulai stabil pada generasi ke-16 dan tidak stabil lagi pada generasi ke-24 yang diakibatkan oleh proses mutasi. Nilai rata-rata kembali stabil pada generasi ke-25 hingga generasi ke-43, generasi ke-65 hingga generasi ke-89, dan generasi ke-91 hingga generasi ke-100
Ketidakstabilan yang terjadi setelah nilai konvergen yaitu akibat proses mutasi yang memunculkan kembali nilai-nilai maksimum yang sempat punah pada generasi sebelumnya. 11 10 9 8 7 6 5 4 3 2 1 0 0
10
20
30
40
50
60
70
80
90
100
Generasi
Penyilangan
Mutasi
Gambar 49. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 2 (Pc=0,9 ; Pm=0,01 ; Bilangan Acak=0,6 ; PopSize=20, MaxGen=100) Sepanjang 100 generasi pada Kasus 2 telah terjadi proses penyilangan sebanyak 907 kali dan proses mutasi sebanyak 19 kali. Kedua proses tersebut mulai dilakukan pada generasi ke-1. Frekuensi tertinggi untuk penyilangan pada tiap-tiap generasi adalah sebanyak 10 kali dan frekuensi terendah sebanyak 6 kali. Mutasi dengan frekuensi tertinggi yaitu sebanyak 2 kali hanya terjadi sekali pada generasi ke-24 dan frekuensi terendah yaitu sebanyak 0 kali (tidak dilakukan). Hal ini dikarenakan mutasi tidak harus selalu terjadi pada tiap generasi. Nilai makespan terbaik (paling optimum) yang diperoleh dari 100 generasi adalah 11, dengan hasil akhir struktur kromosomnya adalah [2 3 1] [1 2 3] [2 3 1] atau [2 3 1] [3 2 1] [2 3 1] atau [2 3 1] [1 3 2] [2 3 1]. Berikut adalah penerjemahan salah satu kromosom tersebut :
Tahap 1 Mesin 1 2
3
Mesin 2 1
2
×
×
1
×
Mesin 3 3
2
3
1
×
×
×
10
11
m3 m2
Job 3
m1
Job 2
Job 1
1
2
3
4
5
6
7
8
9
Tahap 2 Mesin 1 2
3
×
2
×
×
×
3
×
m3
2
3
1
×
×
×
×
×
10
11
×
Job 2
m2 m1
1
1
×
Mesin 3
Mesin 2
Job 3 Job 2 1
Job1 Job1
2
3
Job 3 4
5
6
7
8
9
Tahap 3 Mesin 1 2
3
Mesin 2 1
× × ×
1
2
×
×
× ×
×
× ×
Mesin 3 3
2
3
1
×
×
×
×
×
× ×
×
m3
Job 2
m2 m1
Job 3
Job 3 Job 2 1
Job 1 Job 1
2
3
Job 1 Job 2
Job 3 4
5
6
7
8
9
10
11
Gambar 50. Tahapan-tahapan penerjemahan salah satu kromosom terbaik pada kasus 2 g. Efisiensi Algoritma Genetika Pada Kasus 2, yaitu 3 job dan 3 mesin memiliki total search space atau jumlah calon solusi dalam ruang pencarian (Nt) sebagai berikut : Nt = (3!)3 = (3×2×1)3 = 216 calon solusi Solusi optimum penjadwalan job shop untuk Kasus 2 mulai konvergen pada generasi ke-3, artinya nilai optimum yang ditemukan telah konstan pada generasi ke-3 dan tidak ada lagi nilai yang lebih kecil dari nilai tersebut. Jumlah calon solusi yang telah dievaluasi oleh algoritma genetika hingga konvergen (Ns) adalah sebagai berikut : Ns = (3 generasi) x (20 calon solusi / generasi) = 60 calon solusi Persentase pencarian calon solusi yang dilakukan algoritma genetika dalam ruang pencarian (Ps) adalah : Ps = (Ns / Nt) x 100 % = (60 / 216) x 100 % = 27,78 % Persentase tersebut menunjukkan bahwa algoritma genetika hanya mengeksplorasi sebesar 27,78 % dari ruang pencarian untuk mencari solusi penjadwalan job shop yang optimum. Hal ini menunjukkan bahwa algoritma genetika sudah bekerja secara efisien pada kasus penjadwalan 3 job
3 mesin.
3. Kasus 3 : Penjadwalan job shop kasus 5 job – 12 mesin Pada Kasus 3, data diperoleh dari kombinasi antara data sekunder yang diambil dari Riswan (1993), Aryawan (2003), dan pengamatan langsung yang dilakukan di CV Mitra Niaga Indonesia, Bogor. Data yang diambil dari Riswan (1993) dan Aryawan (2003) disajikan pada Tabel 3, Tabel 4, dan Tabel 5. Tujuan penggunaan kombinasi data sekunder dan data primer ini adalah untuk memperlihatkan aplikasi metode algoritma genetika ini di kasus nyata industri peralatan pengolahan hasil pertanian. Perusahaan yang dikunjungi untuk pengambilan data primer adalah industri yang memproduksi alat dan mesin pengolahan hasil pertanian. Produk-produk yang dihasilkan diantaranya adalah destilator, vacuum drying, mixer, pemarut kelapa, pencacah kompos, dan lain-lain. Pada proses produksinya, industri tersebut memiliki penjadwalan bertipe job shop. Sebuah alat atau mesin pengolahan hasil pertanian merupakan serangkaian yang terdiri dari beberapa komponen. Masing-masing komponen tersebut memiliki proses produksi yang berbeda-beda. Proses pembuatan masing-masing komponen tersebut disebut juga dengan job. Masing-masing job memiliki lintasan atau jalur yang harus ditempuh dalam satu siklus produksinya, tiap jalur adalah identik untuk satu job tertentu dan berisi urutan mesin-mesin yang harus dilewati job tersebut. Berikut adalah daftar urutan proses, urutan mesin, dan waktu proses untuk contoh kasus lima job yang harus diselesaikan : Waktu Proses Job
Urutan Mesin
Urutan Proses 1
2
3
4
5
j1
340
146
555
188
355
j2
506
171
220
881
248
j3
227
460
289
126
j4
574
297
361
157
j5
454
918
195
741 1007
6
7
Job
Urutan Proses 1
2
3
j1
m1
m3
m5
m 7 m 10
415
j2
m2
m3
m7
m 8 m 11 m 10
762
460
j3
m1
m6
m2
m7
m9
629
177
j4
m6
m4
m2
m7
m 8 m 11 m 10
j5
m1
m6
m5
m3
m8
296
4
5
6
7
m6
Tabel 3. Waktu proses (satuan waktu menit), urutan mesin, dan urutan proses pada Kasus 3 (5 job – 12 mesin)
Dari data di atas dapat dilihat bahwa terdapat jumlah proses maksimum sebanyak tujuh proses. Job 1 dan job 5 terdiri atas lima proses, job 2 dan job 3 terdiri atas enam proses, dan job 4 terdiri atas tujuh proses. Masing-masing proses memiliki waktu proses yang berbeda-beda. Mesin yang digunakan untuk proses produksi job-job tersebut adalah sebanyak 11 jenis mesin. Pada job 3 melewati mesin 6 sebanyak dua kali, yaitu pada proses kedua dan keenam. Program GA_JobShop yang dibuat hanya bisa memproses masing-masing job melewati mesin yang sama tidak lebih dari satu kali, sehingga mesin 6 pada proses yang kedua kalinya (proses keenam) dapat dianggap sebagai mesin 12. Berikut adalah nama-nama job yang akan diproduksi : No.Job
Nama Job
j1
Inlet Oil Cooler
j2
Foam Chassis
j3
Power S Cord 1.25
j4
Eva Cover
j5
Condensor Filter
Tabel 4. Daftar nama-nama job pada Kasus 3 Berikut adalah daftar nama-nama mesin yang digunakan pada proses produksi: No.Mesin
Nama Mesin
No.Mesin
Nama Mesin
m1
Mesin Potong Lurus
m7
Mesin Punch
m2
Mesin Potong Alur
m8
Mesin Las Spot
m3
Mesin Press 20 ton
m9
Mesin Las Arc
m4
Mesin Press 40 ton
m 10
Mesin Gerinda
m5
Mesin Press 60 ton
m 11
Mesin Bor
m6
Mesin Press 80 ton
m 12
Mesin Press 80 ton
Tabel 5. Daftar nama-nama mesin pada Kasus 3 Untuk dapat lebih memahami alur proses produksi masing-masing job maka dapat diilustrasikan pada gambar di bawah ini :
Job 1Ga
Job 2
Job 3
Job 4
Job 5
1
3
5
7
10
340
146
555
188
355
2
3
7
8
11
10
506
171
220
881
248
415
1
6
2
7
9
12
227
460
289
126
762
460
6
4
2
7
8
11
10
574
297
361
157
629
177
296
1
6
5
3
8
454
918
195
741
1007
Gambar 51. Ilustrasi alur proses pada Kasus 3 (satuan waktu dalam menit) Job 1, yaitu produksi inlet oil cooler, pada prosesnya harus melewati lima mesin (m1- m3- m5- m7- m10). Pada tahapan proses yang pertama, job 1 diproses di mesin 1 selama 340 menit. Kemudian, pada tahapan proses yang kedua, job 1 diproses di mesin 3 selama 146 menit. Tahapan selanjutnya, yaitu proses yang ketiga, job 1 diproses di mesin 5 selama 555 menit. Pada tahapan proses yang keempat, job 1 diproses di mesin 7 selama 188 menit. Terakhir, job 1 diproses di mesin 10 selama 355 menit. Job 2, yaitu produksi foam chassis, pada prosesnya harus melewati enam mesin (m2- m3- m7- m8- m11- m10). Job 3, yaitu produksi power s cord 1.25, harus melewati enam mesin pula namun memiliki urutan proses yang berbeda dari job 2 (m1- m6- m2- m7- m9- m12). Proses produksi job 4, yaitu eva cover harus melewati tujuh proses (m6- m4- m2- m7- m8- m11- m10). Job 5, yaitu condenser filter, pada prosesnya harus melewati lima mesin (m1- m6m5- m3- m8). Masing-masing job memiliki tahapan proses yang berbeda dan waktu proses yang berbeda pula.
a. Definisi masing-masing job 1. Inlet Oil Cooler Rangkaian pipa yang befungsi untuk menstabilkan temperatur oli pada sebuah alat atau mesin. 2. Foam Chassis Kerangka yang berfungsi untuk meredam getaran pada suatu alat atau mesin. 3. Power S Cord 1.25 Rangkaian elektrik yang berfungsi untuk mengendalikan satu unit alat atau mesin. 4. Eva Cover Penutup (plat) lapisan luar pada sebuah alat atau mesin. 5. Condensor Filter Alat yang berfungsi untuk mendinginkan uap sehingga menjadi cairan.
b. Fungsi masing-masing mesin 1. Mesin Potong Lurus Digunakan untuk memotong plat dan pipa logam dalam bentuk potongan lurus dengan teknik pemotongan vertikal. 2. Mesin Potong Alur Digunakan untuk memotong plat dan pipa logam dengan bentuk khusus. 3. Mesin Punch Digunakan untuk memperbesar diameter suatu pipa logam atau diameter hasil bor. 4. Mesin Press Digunakan untuk membentuk plat logam dan pipa logam sesuai dengan bentuk pesanannya. 5. Mesin Las Spot Digunakan untuk mengelas bahan besi dan baja. 6. Mesin Las Arc Digunakan untuk mengelas bahan stainless steel. 7. Mesin Gerinda
Digunakan untuk membentuk produk dengan kehalusan dan ketelitian tertentu pada salah satu atau beberapa elemen geometrinya. 8. Mesin Bor Digunakan untuk membuat lubang kecil atau alur skrup.
c. Input Program Nilai-nilai utama yang diinput pada Kasus 3 adalah : Ø Jumlah job
= 5
Ø Jumlah mesin = 12 Ø Waktu proses dari tiap-tiap job (berdasarkan Tabel 5) Ø Urutan proses dari tiap-tiap job (berdasarkan Tabel 5) Nilai-nilai tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 52. Input nilai-nilai utama pada program GA_JobShop (Kasus 3) Waktu proses dan urutan proses diinput sesuai dengan data pada Gambar 51. Jumlah proses maksimum yang terdapat pada program GA_JobShop untuk masing-masing job adalah sebanyak jumlah mesin, artinya apabila kasus yang akan dipecahkan terdapat 12 mesin maka urutan proses maksimum yang tersedia adalah sebanyak 12 proses, meskipun proses maksimum yang terjadi pada Kasus 3 adalah sebanyak tujuh proses. Untuk lebih jelasnya dapat dilihat pada tabel di bawah ini :
Mesin
Job
1
2
3
4
5
6
Proses Waktu
Urutan
1
340
1
2
0
3
Mesin
Job
7
Proses Waktu
Urutan
1
188
4
7
2
220
3
227
1
3
126
4
4
0
8
4
157
4
5
454
1
5
0
8
1
0
6
1
0
9
2
506
1
2
881
4
3
289
3
3
0
10
4
361
3
4
629
5
5
0
6
5
1007
5
1
146
2
1
0
10
2
171
2
2
0
11
3
0
7
3
762
5
4
0
9
4
0
11
5
741
4
5
0
9
1
0
7
1
355
5
2
0
8
2
415
6
3
0
8
3
0
11
4
297
2
4
296
7
5
0
7
5
0
10
1
555
3
1
0
11
2
0
9
2
248
5
3
0
9
3
0
12
4
0
10
4
177
6
5
195
3
5
0
11
1
0
8
1
0
12
2
0
10
2
0
12
3
460
2
3
460
6
4
574
1
4
0
12
5
918
2
5
0
12
8
9
10
11
12
Tabel 6. Input waktu proses dan urutan proses masing-masing job pada mesin untuk Kasus 3 (5 job – 12 mesin)
Pada tabel 6, dapat dilihat bahwa terdapat beberapa waktu proses yang diinput dengan angka nol. Hal ini disebabkan oleh program GA_JobShop yang dirancang untuk mengolah data proses sebanyak jumlah mesin, sehingga urutan proses mesin yang tidak dilewati oleh job tersebut diinput dengan angka nol.
d. Parameter-parameter Algoritma Genetika Nilai-nilai parameter algoritma genetika yang digunakan untuk Kasus 3 adalah sebagai berikut : Ø Peluang penyilangan (Pc)
= 0.9
Ø Peluang mutasi (Pm)
= 0.05
Ø Bilangan acak (0-1)
= 0.5
Ø Jumlah populasi (PopSize)
= 20
Ø Jumlah generasi maksimum (MaxGen) = 100 Nilai-nilai parameter tersebut dimasukkan ke dalam program sebagai berikut :
Gambar 53. Input nilai-nilai parameter pada program GA_JobShop (Kasus 3)
e. Inisialisasi Populasi Awal Populasi awal P(0) dibangkitkan secara acak oleh program GA_JobShop dan hasil running dapat dilihat pada gambar di bawah ini :
Gambar 54. Populasi awal P(0) untuk Kasus 3
f. Evaluasi dan Seleksi Kromosom Nilai makespan yang merupakan hasil evaluasi untuk masingmasing kromosom pada P(0) adalah sebagai berikut : M1 = 4371
M6 = 4239
M11 = 4997
M16 = 4942
M2 = 4757
M7 = 3956
M12 = 3809
M17 = 3895
M3 = 4644
M8 = 4997
M13 = 4342
M18 = 4984
M4 = 4997
M9 = 3749
M14 = 4638
M19 = 5444
M5 = 5205
M10 = 5389
M15 = 4638
M20 = 4002
Kromosom-kromosom yang terpilih sebagai kromosom induk P(1) hasil seleksi dari populasi P(0) adalah sebagai berikut : Kromosom(1) , makespan-nya
à M1
= 4371
Kromosom(2) , makespan-nya
à M2
= 4757
Kromosom(6) , makespan-nya
à M6
= 4239
Kromosom(7) , makespan-nya
à M7
= 3956
Kromosom(11) , makespan-nya
à M 11 = 4997
Kromosom(12) , makespan-nya
à M 12 = 3809
Kromosom(13) , makespan-nya à M 13 = 4342 Kromosom(15) , makespan-nya
à M 15 = 4638
Kromosom(16) , makespan-nya
à M 16 = 4942
Kromosom(17) , makespan-nya
à M 17 = 3895
Kromosom(18) , makespan-nya
à M 18 = 4984
g. Penyilangan dan Mutasi Pada kasus 3 peluang penyilangan adalah 0,9 artinya diharapkan 90% populasi yang terbentuk pada generasi berikutnya adalah hasil penyilangan generasi sebelumnya. Teknik penyilangan yang digunakan adalah metode Partially Mapped
Crossover (PMX)
yang telah
dimodifikasi khusus untuk kromosom yang terdiri dari beberapa subkromosom. Berikut kromosom-kromosom yang terpilih P(0) dan akan mengalami proses penyilangan :
Gambar 55. Populasi P(1) pada kasus 3 (bagian 1)
Gambar 56. Populasi P(1) pada kasus 3 (bagian 2) Proses mutasi pertama kali terjadi pada generasi ke-1 atau populasi P(1). Mutasi terjadi sebanyak satu kali pada populasi tersebut, yaitu pada kromosom(9). Kromosom-kromosom tersebut mengalami mutationembedded within crossover atau mutasi yang terjadi setelah proses penyilangan. Kromosom(9) mengalami mutasi pada sub-kromosom ke-3. Berikut adalah populasi P(1) yang di dalamnya terdapat kromosom yang mengalami mutasi :
Gambar 57. Populasi P(1) terjadi mutasi pada Kasus 3
h. Hasil Running Program GA_JobShop Hasil running program GA_JobShop untuk Kasus 3 diilustrasikan dalam dua buah grafik. Grafik yang pertama yaitu terdapat pada Gambar 58, menunjukkan nilai makespan maksimum (Max), makespan rata-rata
(Avg), dan makespan minimum (Min) dari generasi awal (generasi ke-0) hingga generasi maksimum (generasi ke-100). Grafik berikutnya terdapat pada Gambar 59, menunjukkan frekuensi terjadinya penyilangan dan mutasi sepanjang 100 generasi.
Gambar 58. Grafik nilai makespan maksimum, makespan rata-rata, dan makespan minimum (satuan waktu dalam menit) untuk 100 generasi pada Kasus 3 (Pc=0,9 ; Pm=0,05 ; Bilangan Acak=0,5 ; PopSize=20, MaxGen=100) Nilai makespan maksimum tertinggi terjadi pada generasi awal yaitu pada saat inisialisasi populasi awal sebesar 5444 menit, setelah itu terjadi penurunan nilai makespan rata-rata yang berkelanjutan hingga konvergen di nilai minimum sebesar 3589 menit pada generasi ke-33. Nilai minimum tersebut muncul pertama kali pada generasi ke-28. Pencapaian nilai optimum tersebut dikarenakan oleh proses mutasi yang terjadi sehingga menghasilkan kromosom baru yang lebih optimum nilainya. Grafik di atas (Gambar 58) menunjukkan bahwa setelah terjadi konvergensi nilai makespan yang minimum (berawal di generasi ke-40), beberapa generasi berikutnya mengalami peningkatan nilai makespan akibat mutan-mutan yang bermunculan. Peningkatan nilai makespan tersebut terjadi pada generasi ke-50, generasi ke-51, generasi ke-55, generasi ke-57, generasi ke-69, generasi ke-75, dan generasi ke-91.
Sepanjang 100 generasi pada Kasus 3 telah terjadi proses penyilangan sebanyak 909 kali dan proses mutasi sebanyak 120 kali. Proses keduanya dapat dilihat pada grafik berikut (Gambar 59) : 11 10 9 8 7 6 5 4 3 2 1 0 0
10
20
30
40
50
60
70
80
90
100
Generasi
Penyilangan
Mutasi
Gambar 59. Grafik frekuensi penyilangan dan mutasi untuk 100 generasi pada Kasus 3 (Pc=0,9 ; Pm=0,05 ; Bilangan Acak=0,5 ; PopSize=20, MaxGen=100) Frekuensi tertinggi untuk penyilangan pada tiap-tiap generasi adalah sebanyak 10 kali dan frekuensi terendah sebanyak 7 kali. Mutasi dengan frekuensi tertinggi yaitu sebanyak 5 kali dan frekuensi terendah yaitu sebanyak 0 kali (tidak dilakukan). Jumlah kromosom yang mengalami proses mutasi pada Kasus 3 ini dipengaruhi oleh peluang mutasi (Pm) yang digunakan yaitu sebesar 0,05, artinya 5% dari tiap-tiap populasi akan mengalami proses mutasi. Pada proses pencarian, mutasi sangat berguna dalam pencarian nilai yang lebih optimum. Namun, tidak selamanya demikian karena mutasi juga dapat menurunkan nilai makespan rata-rata pada sebuah populasi. Nilai makespan terbaik (paling optimum) yang diperoleh dari 100 generasi adalah 3589 menit, dengan struktur kromosomnya adalah [25134] [41532] [43521] [42153] [14352] [45123] [42513] [42135] [53142] [35241] [54132] [41523]. Berikut adalah gambar penjadwalan yang optimum hasil penerjemahan kromosom tersebut :
Gambar 60. Penjadwalan yang optimum pada Kasus 3 (hasil penerjemahan kromosom terbaik)
i. Efisiensi Algoritma Genetika Pada Kasus 3, yaitu 5 job dan 12 mesin memiliki total search space atau jumlah calon solusi dalam ruang pencarian (Nt) sebanyak : Nt = (5!)12 = 8,92 × 1024 calon solusi Solusi optimum penjadwalan job shop untuk Kasus 3 telah konvergen pada generasi ke-33, tidak ada lagi nilai yang lebih kecil dari nilai tersebut. Jumlah calon solusi yang telah dievaluasi oleh algoritma genetika hingga konvergen (Ns) adalah sebagai berikut : Ns = (33 generasi) x (20 calon solusi / generasi) = 660 calon solusi Persentase pencarian calon solusi yang dilakukan algoritma genetika dalam ruang pencarian (Ps) adalah : Ps = (Ns / Nt) x 100 % = (660 / 8,92 × 1024) x 100 % Persentase tersebut akan menghasilkan nilai yang teramat kecil. Semakin kecil persentase yang dihasilkan maka pencarian nilai optimum akan semakin efisien. Hal tersebut membuktikan bahwa semakin besar nilai ruang pencarian (search space) maka efisiensi algoritma genetika akan semakin meningkat. Pencarian solusi optimum dengan algoritma genetika pada Kasus 3 terbukti sangat efisien.
V.
KESIMPULAN DAN SARAN
D. KESIMPULAN Penjadwalan tipe job shop berskala besar memiliki tingkat kerumitan yang tinggi karena memperhatikan urutan proses dan kombinasi penjadwalan yang sangat banyak. Algoritma genetika, yaitu suatu pencarian acak yang meniru proses alam (evolusi biologi) mampu untuk memecahkan masalah penjadwalan tipe job shop berskala besar. Permasalahan dalam penjadwalan tipe job shop adalah mencari kombinasi urutan job yang tepat sehingga didapatkan nilai makespan yang paling minimum. Implementasi dari penelitian ini adalah perancangan program GA_JobShop (Genetic Algorithms for Job Shop Scheduling) yang dibuat menggunakan bahasa pemrograman Borland Delphi 7.0. Representasi kromosom menggunakan preference list based representation, proses penyilangan menggunakan Partially Mapped Crossover (PMX) yang telah dimodifikasi, proses mutasi menggunakan reciprocal exchange mutation yang telah dimodifikasi, dan seleksi menggunakan tournament selection. Hasil penilitian menunjukkan bahwa program GA_JobShop sangat efisien dalam penyelesaian masalah penjadwalan tipe job shop berskala kecil maupun besar. Pada Kasus 2, solusi optimum dapat tercapai pada generasi ke3 dengan nilai makespan 11. Algoritma genetika hanya mengeksplorasi sebesar 27,78 % ruang pencarian (search space) untuk mendapatkan nilai yang minimum pada Kasus 2. Semakin besarnya ruang pencarian (search space) maka penggunaan algoritma genetika akan semakin efisien, terlihat pada Kasus 3. Kasus 3 (5 job – 12 mesin) memiliki nilai makespan sebesar 3589 dalam satuan waktu menit dan struktur kromosom terbaiknya adalah [25134] [41532] [43521] [42153] [14352] [45123] [42513] [42135] [53142] [35241] [54132] [41523]. Hasil kromosom tersebut kemudian diterjemahkan ke dalam gambar dengan metode preference list based representation. Terbukti pada Kasus 3 (skala besar) bahwa algoritma genetika mampu menemukan solusi optimum dengan sangat efisien.
E. SARAN Beberapa saran yang diperlukan untuk penelitian lebih lanjut tentang aplikasi algoritma genetika untuk masalah penjadwalan tipe job shop adalah sebagai berikut : 1. Pengembangan program untuk dapat langsung menerjemahkan kromosom terbaik ke dalam bentuk diagram penjadwalan. 2. Pengembangan program untuk dapat memproses suatu job yang dapat mengunjungi mesin yang sama lebih dari satu kali. 3. Penerapan algoritma genetika pada industri peralatan pengolahan hasil pertanian sehingga terjadi efisiensi produksi.
DAFTAR PUSTAKA Andria, Yuvi. 2007. Optimasi Model Rantai Pasokan Agroindustri Cocodiesel dengan Menggunakan Algoritma Genetika. Skripsi. Fakultas Teknologi Pertanian. Institut Pertanian Bogor, Bogor. Arkeman, Yandra. 1999. Optimization of AGV-Based Flexible Manufacturing Systems Design Using Genetic Algorithms and Expert Systems. PhD Thesis. Division of Information Technology, Engineering and The Environment. School of Engineering, Manufacturing and Mechanical Engineering, University of South Australia. Aryawan, Putu Teguh. 2003. Penerapan Algoritma Tabu Search dalam Permasalahan Penjadwalan Job Shop. Skripsi. Fakultas Teknik. Universitas Indonesia, Depok. Baker. 1974. Introduction to Sequencing and Scheduling. John Willey & Sons, New York. Bagchi, Tapan P. 1999. Multiobjective Scheduling by Genetic Algorithms. Kluwer Academic Publisher, London. Chen, K.C. Ian H, dan Cao A. W., 2003. A Genetic Algorithm for Minimum Tetrahedralization of a Convex Polyhedron. CCCG 2003, Halifax, Nova Scotia. http://flame.cs.dal.ca:80/~cccg/papers/29/pdf. 20 Maret 2007 Freeman, L. Michael dan Charles L. Karr. 1999. Industrial Aplications of Genetic Algorithms. CRC Press, Washington D.C. Gen, M. dan R. Cheng. 1997. Genetic Algorithm and Engineering Design. John Wile & Sons, Inc. Goldberg. D.E. 1989. Genetic Algorithm in Search, Optimiztion, and Machine Learning. Addison-Weasley Publishing Company, Inc. Gunawan, H. 2003. Aplikasi Algoritma Genetik Untuk Optimasi Masalah Penjadwalan Flow-Shop. Skripsi. Fakultas Teknologi Pertanian. Institut Pertanian Bogor, Bogor. Holland, J. H. 1975. Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor. Hoover, S.V. dan R.F. Perry. 1989. Simulation : A Problem Solving Approach. Addison-Wesley, Reading, MA. Hopgood, A. A. 2001. Intellegent System for Engineers and Scientist Second Edition. CRC Press, Washington D.C.
Kusuma , H. 2001. Perencanaan dan Pengendalian Produksi. ANDI, Yogyakarta. Maarif, M. S., Machfud dan M. Sukron. 1989. Teknik Optimasi Rekayasa Proses Pangan.Bogor : PAU-Pangan dan Gizi IPB, Bogor. Nahmias, Steven. 1997. Production and Operation Analysis. Mcgraw-Hill, New York. Riswan, 1993. Rancangan Program Komputer untuk Penjadwalan Job Shop dalam Perencanaan Paket Pesanan di PT DC dengan Metode Priority Dispatching. Skripsi. Fakultas Teknik. Universitas Indonesia, Depok. Syarif, A. dan Mitsuo G. 2003. Hybridized Parallel Genetic Algorithm for Facility Location Problem. Makalah Penelitian IlmuKomputer.com http://www.IlmuKomputer.com. 20 Maret 2007 Taylor, B.W. 2002. Introduction of Management Science Hall International, Inc.
7th edition. Prentice
Lampiran 1. Terjemahan seluruh kromosom dari total search space pada Kasus 1 (validasi program GA_JobShop) 1 o x
2 x o
3 o x
1 x o
2 o x
3 x o
m2
j2
m1
j1 1
1 o x
2 x o
3 o x
1 x o
3 x o
2 o x
m2
2 x o
3 o x
2 o x
1 x o
3 x o
2 x o
3 o x
2 o x
3 x o
1 x o
m2
2 x o
3 o x
3 x o
1 x o
2 o x
2 x o
3 o x
3 x o
2 o x
1 x o
3 o x
2 x o
1 x o
2 o x
3 x o
m1
3 o x
2 x o
1 x o
3 x o
2 o x
9
4
m2
5
7
8
9
5
3
4
7
8
5
3
4
7
8
5
13
14
9
10
11
12
13
14
j1
9
10
11
12
3
4
5
7
8
9
7
8
j1
10
11
12
4
9
5
7
8
4
j1
10
11
12
13
14
9
10
11
12
13
14
11
12
13
14
j3 j3
3
14
j2 6
j1 2
13
j3 j3
3
14
j2 6
j1 2
13
j2 6
j3 2
j1 1
12
j3
j2
m1
11
j2 6
j3 2
j1
m2
10
j3
j2
m1
14
j2 6
j3 2
j1
m2
13
j3
j2
m1
12
j3
j1
m2
11
j2 6
j2
m1
10
j3
j3 3
j1
1
1 o x
8
j2
1
1 o x
7
j1 2
1
1 o x
4
j1
m2
j2 6
j3 3
j2
m1
5
j1 2
1
1 o x
4
j1
1
1 o x
3
j2
m1
j3 j3
2
1
1 o x
j1
5
j2 6
7
8
9
10
1 o x
3 o x
2 x o
2 o x
1 x o
3 x o
m2
j2
m1
j1 1
1 o x
3 o x
2 x o
2 o x
3 x o
1 x o
m2
3 o x
2 x o
3 x o
1 x o
2 o x
3 o x
2 x o
3 x o
2 o x
1 x o
m1
1 o x
3 o x
1 x o
2 o x
3 x o
1 o x
3 o x
1 x o
3 x o
2 o x
m2
1 o x
3 o x
2 o x
1 x o
3 x o
m1
1 o x
3 o x
2 o x
3 x o
1 x o
7
8
j3 3
4
9
m2
5
7
8
j3 2
3
4
5
3
4
9
7
8
9
3
j2
m1
4
3
4
9
5
7
8
9
5
12
3
4
7
8
10
11
12
4
13
14
j1
10
11
12
13
14
10
11
12
13
14
9
10
11
12
13
14
11
12
13
14
j3 5
j2 6
7
8
j3 3
14
j1
9
10
j3 2
13
j2 6
j3 2
j1 1
11
j3
j2
m1
10
j2 6
j1
j1
m2
j1
j3
j3 2
j2
m1
8
j1
j1
m2
7
j3 2
14
j2 6
j1
j1
m2
5
13
j2 6
j3 2
j2
m1
12
j3
j1
m2
11
j2 6
j2
m1
10
j3
j1
1
2 x o
j2 6
j2
1
2 x o
5
j3 2
1
2 x o
4
j1
1
2 x o
3
j2
1
1 o x
j3 j3
2
1
1 o x
j1
5
j1
j2 6
7
8
9
10
11
12
13
14
2 x o
1 o x
3 o x
3 x o
1 x o
2 o x
m2
j2
m1
j1 1
2 x o
1 o x
3 o x
3 x o
2 o x
1 x o
2
m2
j2
m1
j1 1
2 x o
3 o x
1 o x
1 x o
2 o x
3 x o
m2
3 o x
1 o x
1 x o
3 x o
2 o x
3 o x
1 o x
2 o x
1 x o
3 x o
3 o x
1 o x
2 o x
3 x o
1 x o
3 o x
1 o x
3 x o
1 x o
2 o x
3 o x
1 o x
3 x o
2 o x
1 x o
7
8
m2
3
4
5
6
7
8
3
j1 4
5
6
2
7
8
3
j1 4
5
6
2
3
7
8
j1 4
5
6
9
10
11
12
13
14
13
14
13
14
12
13
14
12
13
14
12
13
14
12
13
14
j3
9
10
11
12
j3
9
10
11
12
j3
j2 7
8
9
10
j3 j3 2
3
5
6
j2 7
j2
8
9
10
j3
m1
j3 2
3
5
6
j2 7
j2
8
9
10
j3
m1
j3 2
3
5
6
11
j1
j1 4
11
j1
j1 4
11
j1
j1 4
14
j2
j2
m1
1
13
j1
j1 j3
m2
12
j2
j2
m1
m2
11
j1 j3
m2
10
j2
j2
m1
m2
9
j1 2
1
2 x o
6
j3
1
2 x o
5
j2
1
2 x o
4
j3
m1
1
2 x o
3
j1
j2
j3 2
1
2 x o
j3 j3
j2 7
8
9
10
11
3 o x
1 o x
2 x o
1 x o
2 o x
3 x o
m2
j2 j3 1
3 o x
1 o x
2 x o
1 x o
3 x o
2 o x
m2
2
1 o x
2 x o
2 o x
1 x o
3 x o
1 o x
2 x o
2 o x
3 x o
1 x o
1 o x
2 x o
3 x o
1 x o
2 o x
m2
1 o x
2 x o
3 x o
2 o x
1 x o
2 x o
1 o x
1 x o
2 o x
3 x o
2 x o
1 o x
1 x o
3 x o
2 o x
8
m2
3
4
5
6
7
8
3
j1 4
5
6
2
7
8
9
10
14
11
13
14
12
13
14
12
13
14
12
13
14
12
13
14
13
14
13
14
12
j3
9
10
3
4
5
6
2
3
7
8
9
10
5
6
j2 7
j2
8
9
10
j3 j3 2
3
5
6
11
j1
j1 4
11
j1
j1 4
11
j2
j3
m1
j2 7
8
j2
9
10
11
j1
m1
j3 2
3
j1 4
5
6
j3
j2 7
8
j2
9
10
11
12
j1
m1
j3 1
13
j1
j1
j3
m2
12
j2
j2
m1
m2
11
j3
j3 j3
m2
10
j2
j2
m1
m2
9
j1 2
1
3 o x
7
j1
j3
1
3 o x
6
j2
m1
1
3 o x
5
j3
j2
j1 2
1
3 o x
4
j3
1
3 o x
3
j1
j2
m1 1
3 o x
j1
m1
2
3
j1 4
5
6
j3
j2 7
8
9
10
11
12
3 o x
2 x o
1 o x
2 o x
1 x o
3 x o
m2
j2 j3 1
3 o x
2 x o
1 o x
2 o x
3 x o
1 x o
m2
2
2 x o
1 o x
3 x o
1 x o
2 o x
2 x o
1 o x
3 x o
2 o x
1 x o
4
5
6
m2
2
7
3
4
5
6
9
10
2
3
5
7
6
8
9
10
2
3
7
8
5
6
11
12
13
14
9
10
11
12
13
14
12
13
14
j1
j1 4
14
j1
j3 j3
13
j2
j2
m1
12
j1
j1 4
11
j2
j3 j3
1
8
j1
j2
m1
m2
j3
j2
j3 j3
1
3 o x
3
j1
j2
m1 1
3 o x
j1
m1
j2 7
8
9
10
11