IMPLEMENTASI ALGORITMA GENETIKA UNTUK MASALAH PENJADWALAN JOB-SHOP

IMPLEMENTASI ALGORITMA GENETIKA UNTUK

  Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains Program Studi Matematika Oleh: R. Altoria Mavida NIM : 02 3114 003

  Dengan penuh kasih dan ucapan syukur Skripsi ini Kupersembahkan untuk: Bapa di Surga juru selamatku, Bunda Maria pelindung, pengharapan, dan penghiburanku

  

Bapakku Antonius Karjiman (Alm) yang sudah tenang di alam

surga Ibuku Agnes Sarinten

  

“ Ia membuat segala sesuatu indah pada waktunya,

bahkan Ia memberikan kekekalan dalam hati kita,

Dialah yang dapat melakukan jauh lebih banyak daripada yang

kita pikirkan atau doakan”

  (

Pengkhotbah 3:11)

Berjuanglah dalam segala hal, sertakan Tuhan di dalamnya

dan percayalah apa yang terjadi

semuanya karena Tuhan

  

ABSTRAK

  Masalah penjadwalan Job-Shop (JSP) merupakan permasalahan optimasi yang paling sulit dan termasuk masalah NP (Non-deterministic

  

Polynomial ). Bila penjadwalan dilakukan secara manual dan mencoba seluruh

  kemungkinan maka membutuhkan waktu yang lama. Karena menggunakan cara manual membutuhkan waktu yang cukup lama, maka metode heuristik merupakan solusi alternative yang dapat digunakan. Algoritma genetika merupakan suatu metode penyelesaian masalah yang tergolong heuristik. Dengan menggunakan Algoritma Genetika (AG) maka dapat dihasilkan solusi yang baik dengan waktu yang singkat.

  Pada penelitian ini, pembentukan generasi-generasi baru dilakukan dengan persilangan / crossover menggunakan metode Precedence Preservative

  

Crossover (PPX) dan mutasi menggunakan job-pair exchange mutation.

  Pemilihan kromosom untuk dilakukan regenerasi pada proses persilangan /

  

crossove r dipilih dua kromosom yang mempunyai fitnes terbaik dan untuk proses

  mutasi dipilih satu kromosom yang mempunyai fitnes terburuk. Diharapkan algoritma genetika memperoleh jadwal optimal (makespan minimum) pada masalah penjadwalan Job-Shop. Dari percobaan, tampak bahwa untuk mendapatkan solusi optimal terjadi pada Pcross = 0.5 dan Pmut = 0.09. Hasil tersebut tidak mutlak mengingat bahwa prinsip dasar dari Algoritma Genetika (AG) adalah menggunakan pemilihan secara acak / random.

  

ABSTRACT

  Job-Shop Scheduling Problem (JSP) is one of the most difficult problems, as it is classified an NP-complete one. If scheduling is conducted as manual and try all possibilities, hence is requires a lot of time. Because by manual takes a lot of time, therefore, by using heuristic method is the alternative solution to use. Genetic algorithm is a method to solve problem that pertained heuristic. By using Genetic Algorithm (GA), good solutions can be solved in a quickly time.

  In this research, the forming of new generations conducted by the crossover using the method of Precedence Preservative Crossover (PPX) and mutation using the job-pair exchange mutation. Selection of chromosome to be conducted by regeneration at process of crossover selected by two chromosomes having best fitness and to process mutation selected by one chromosome that having one worst fitness. By expectation of genetic algorithm is obtained the optimal schedule (minimum makespan) on Job-Shop scheduling problem. According to the experiments, it is visible to get the optimal solution that is done to Pcross = 0.5 and Pmut = 0.09. The result is not absolute because of the base principle of genetic algorithm (GA) is using the random selection.

KATA PENGANTAR

  Puji syukur kepada Bapa di Surga dan Bunda Maria yang memberikan kasih-Nya dan melimpahkan karunia-Nya, memberikan kekuatan, menuntun dan memberkati penulis secara luar biasa sehingga penulisan skripsi ini dapat diselesaikan.

  Skripsi ini disusun untuk memenuhi salah satu syarat memperoleh gelar Sarjana Sains di Program Studi Matematika Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sanata Dharma Yogyakarta.

  Penulis dalam menyusun skripsi ini dari awal sampai akhir mendapat dukungan dan bantuan dari berbagai pihak. Pada kesempatan ini penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada:

  1. Bapak Ir. Ig. Aris Dwiatmoko, M.Sc selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sanata Dharma Yogyakarta dan dosen pembimbing akademik.

  2. Bapak Drs. HJ Haris Sriwindono, M.Kom selaku Dosen Pembimbing yang dengan kesabarannya telah banyak membimbing dan memberikan petunjuk dalam penyusunan skripsi ini.

  5. Bapak ku yang telah tenang di alam surga dan Ibu ku dengan penuh kasih setia dan sabar untuk mendidik, memberi dorongan semangat, pengertian, cinta dan doa serta biaya pada penulis selama menempuh studi.

  6. Kakak dan adikku (Mbak Nita & Mas Andre dan Dek Fredes) terima kasih untuk cinta, doa, dukungan, pengertian dan motivasinya.

  7. Seseorang yang sampai saat ini masih ada di hatiku dan yang sebagai motivasiku, terima kasih karena kamu aku bisa seperti ini.

  8. Keluarga besarku di Lampung dan di Yogyakarta terima kasih untuk doanya.

  9. Yoan terima kasih untuk doa, dukungan, motivasi dan perhatiannya (habis ini kita bakal ketemu koq, moga kita gak cooling down ya!!).

  10. Sahabat-sahabatku: Dian, Citra, Monic, Margareta, Acoy, Danu, Made, Indra (wa2n), Dede, Mervin, Lingsia, Rima, Yuli, Kak Ike, Friska, Anto, Danang terima kasih buat persahabatan, cinta, perhatian dan dukungannya, Andre yang pernah memberi motivasi, dukungan, dan setia mendengar keluhanku.

  11. Teman-teman seperjuanganku di Matematika 2002: Preezk, Archy, Ika, Lenta, Debby, Lia, Sari, Aan, Tato, Bani, Lili, Taim, Ijup, Markus, Felix, Retno, Galih, Aning, Desy, Rita, Wuri, Deon, Cheea, Nunung, Dani, Palma, dan Asih. Kakak-kakak dan adik-adik angkatan terima kasih untuk bantuan dan

  13. Teman-teman kostku: Endra+Dika, Mbak Dian, Mbak Think, Mas Ardian (terima kasih untuk kostnya), Mas Doyo, Lulu, Rani makasih buat kebersamaan dan keceriaan kita selama ini.

  14. Teman seperjuanganku dalam bimbingan (Marlen SoeMonroo) terimakasih atas semua bantuan, kerjasama dan kesabarannya.

  2

  15. Teman-teman KKN ku: Albert, Alfina, Dek Ciciel, Mbak Reni, Dek Gu n, Obeth, Nana, dan Tyo thanks ya atas perhatian dan dukungannya.

  16. Terima kasih juga untuk BE-FA 8397 yang setia menemani kemanapun aku pergi untuk mencari inspirasi dan komputer ku yang sering bermasalah terima kasih karena kamu tugas-tugas dan skripsi ku bisa kelar.

  17. Semua pihak yang telah turut membantu hingga selesainya skripsi ini yang tidak dapat disebutkan satu persatu.

  Semoga kasih Tuhan selalu menyertai semua pihak yang telah membantu dalam penyusunan skripsi ini. Penulis menyadari sepenuhnya bahwa penyusunan ini jauh dari sempurna, untuk itu saran dan kritik yang sifatnya membangun penulis menerima dengan senang hati demi perbaikan skripsi ini. Penulis berharap semoga skripsi ini dapat memberikan manfaat bagi setiap orang dan semua pihak.

  

DAFTAR ISI

  Halaman HALAMAN JUDUL..................................................................................... i HALAMAN PERSETUJUAN PEMBIMBING ........................................... ii HALAMAN PENGESAHAN....................................................................... iii HALAMAN PERSEMBAHAN ................................................................... iv HALAMAN MOTTO ................................................................................... v PERNYATAAN KEASLIAN KARYA ....................................................... vi ABSTRAK .................................................................................................... vii ABSTRACT.................................................................................................. viii KATA PENGANTAR .................................................................................. ix DAFTAR ISI................................................................................................. xii DAFTAR TABEL......................................................................................... xv DAFTAR GAMBAR .................................................................................... xvii DAFTAR GRAFIK....................................................................................... xviii

  BAB I PENDAHULUAN A. Latar Belakang Masalah.................................................................

  1

  G. Sistematika Penulisan ....................................................................

  7 BAB II LANDASAN TEORI A. Latar Belakang Biologi ..................................................................

  8 B. Algoritma Genetika........................................................................

  9 1. Pengantar Algoritma Genetika.................................................

  9 2. Deskripsi Algoritma Genetika .................................................

  11 3. Sruktur Umum Algoritma Genetika.........................................

  14 4. Operator dan Fungsi Evaluasi ..................................................

  17

  5. Pengkodean .............................................................................. 18

  5.1. Pengkodean biner (Binery Encoding) ............................. 18

  5.2. Pengkodean permutasi (Permutation Encoding) ............ 18

  5.3. Pengkodean nilai (Value Encoding)................................ 19

  5.4. Pengkodean pohon (Tree Encoding)............................... 19

  6. Seleksi ...................................................................................... 20 6.1. Seleksi Roda Roulette .....................................................

  21 6.2. Seleksi Ranking...............................................................

  22 6.3. Seleksi Turnament...........................................................

  23 7. Operasi Genetik........................................................................

  23

  

BAB III ALGORITMA GENETIKA UNTUK PENJADWALAN JOB-SHOP

A. Representasi masalah .....................................................................

  32 B. Pembangkitan kromosom...............................................................

  35 C. Pencarian nilai fitnes untuk masing-masing kromosom ................

  35 D. Pemilihan kromosom untuk dijadikan induk .................................

  36 E. Proses reproduksi untuk mendapatkan kromosom-kromosom baru................................................................................................. 37

  1. Operasi persilangan..................................................................

  38 2. Operasi mutasi..........................................................................

  38 F. Proses pembentukan populasi baru ................................................

  40 BAB IV IMPLEMENTASI DAN ANALISA HASIL PROGRAM

  A. Flowchart ....................................................................................... 41 B. Hasil program dan Analisis............................................................

  43 BAB V PENUTUP

  A. Kesimpulan .................................................................................... 56

  B. Saran............................................................................................... 57 DAFTAR PUSTAKA ...................................................................................

  58

  

DAFTAR TABEL

  46 Tabel 4.5 Hasil penelitian masalah 6 x 6, Pcross = 0.35..........................

  50 Tabel 4.12 Hasil penelitian masalah 6 x 6, Pcross = 0.7............................

  49 Tabel 4.11 Hasil penelitian masalah 6 x 6, Pcross = 0.65..........................

  49 Tabel 4.10 Hasil penelitian masalah 6 x 6, Pcross = 0.6............................

  48 Tabel 4.9 Hasil penelitian masalah 6 x 6, Pcross = 0.55..........................

  48 Tabel 4.8 Hasil penelitian masalah 6 x 6, Pcross = 0.5............................

  47 Tabel 4.7 Hasil penelitian masalah 6 x 6, Pcross = 0.45..........................

  47 Tabel 4.6 Hasil penelitian masalah 6 x 6, Pcross = 0.4............................

  46 Tabel 4.4 Hasil penelitian masalah 6 x 6, Pcross = 0.3............................

  Halaman

  45 Tabel 4.3 Hasil penelitian masalah 6 x 6, Pcross = 0.25..........................

  44 Tabel 4.2 Tabel masalah penjadwalan 6 x 6 ............................................

  37 Tabel 4.1 Tabel masalah penjadwalan 4 x 4 ............................................

  35 Tabel 3.2 Contoh kromosom dengan nilai fitness....................................

  29 Tabel 3.1 Contoh inisialisasi populasi awal sebanyak 10 kromosom......

  22 Tabel 2.2 Contoh masalah penjadwalan 3 x 3..........................................

Tabel 2.1 Contoh populasi dengan 5 kromosom yang diberi fitness baru

  50

Tabel 4.18 Hasil penelitian masalah 6 x 6, Pmut = 0.06............................

  53 Tabel 4.19 Hasil penelitian masalah 6 x 6, Pmut = 0.07............................

  54 Tabel 4.20 Hasil penelitian masalah 6 x 6, Pmut = 0.08............................

  54 Tabel 4.21 Hasil penelitian masalah 6 x 6, Pmut = 0.09............................

  55 Tabel 4.22 Hasil penelitian masalah 6 x 6, Pmut = 0.1..............................

  55

  

DAFTAR GAMBAR

  26 Gambar 2.9 Contoh proses mutasi .............................................................

  34 Gambar 3.4 Ilustrasi proses persilangan .....................................................

  34 Gambar 3.3 Satu jadwal yang dikerjakan ...................................................

  34 Gambar 3.2 Urutan proses dari job pada mesin1 ........................................

  31 Gambar 3.1 Operasi dari job dan korespondensi mesin..............................

  30 Gambar 2.11 Hubungan jadwal Semiactive, Active dan Nondelay diperlihatkan oleh diagram Venn ..........................................

  27 Gambar 2.10 Representasi Gantt-Chart dari solusi masalah 3 x 3...............

  25 Gambar 2.8 Contoh proses persilangan dua titik .......................................

  Halaman Gambar 2.1 Ilustrasi Algoritma Genetika ..................................................

  21 Gambar 2.7 Contoh proses persilangan satu titik ......................................

  20 Gambar 2.6 Contoh penggunaan metode seleksi roda roulette..................

  19 Gambar 2.5 Contoh kromosom dengan pengkodean pohon ......................

  19 Gambar 2.4 Contoh kromosom dengan pengkodean nilai .........................

  18 Gambar 2.3 Contoh kromoson dengan pengkodean permutasi .................

  15 Gambar 2.2 Contoh kromosom dengan pengkodean biner........................

  39

  

DAFTAR GRAFIK

  50 Grafik 4.10 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.7..................

  53 Grafik 4.16. Grafik hasil penelitian masalah 6 x 6, Pmut = 0.06..................

  52 Grafik 4.15. Grafik hasil penelitian masalah 6 x 6, Pmut = 0.05..................

  52 Grafik 4.14. Grafik hasil penelitian masalah 6 x 6, Pmut = 0.04..................

  51 Grafik 4.13. Grafik hasil penelitian masalah 6 x 6, Pmut = 0.03..................

  51 Grafik 4.12. Grafik hasil penelitian masalah 6 x 6, Pmut = 0.02..................

  50 Grafik 4.11 Grafik hasil penelitian masalah 6 x 6, Pmut = 0.01..................

  49 Grafik 4.9 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.65................

  Halaman Grafik 4.1 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.25................

  49 Grafik 4.8 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.6..................

  48 Grafik 4.7 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.55................

  48 Grafik 4.6 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.5..................

  47 Grafik 4.5 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.45................

  47 Grafik 4.4 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.4..................

  46 Grafik 4.3 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.35................

  46 Grafik 4.2 Grafik hasil penelitian masalah 6 x 6, Pcross = 0.3..................

  53

BAB I PENDAHULUAN A. Latar Belakang Masalah Masalah penjadwalan tidak terlepas dari kehidupan kita sehari-hari. Masalah penjadwalan Job-Shop sering muncul di berbagai bidang, seperti

  pada sistem manufaktur, perencanaan produksi, perencanaan komputer, logistik, komunikasi, dan lain sebagainya (Gen dan Cheng,1997). Pada umumnya masalah penjadwalan tersebut sulit untuk dipecahkan, karena berkaitan dengan kompleksnya sifat dari penjadwalan tersebut. Masalah ini telah diteliti selama beberapa dekade, namun tidak ada solusi algoritma yang efisien yang dikenal untuk memecahkannya.

  Masalah penjadwalan Job-Shop merupakan satu dari masalah penjadwalan yang ada (Garey et al., 1976). Secara umum, permasalahan tersebut dapat dijelaskan sebagai berikut: terdapat n pekerjaan dan m mesin. Masing-masing n pekerjaan meliputi o operasi, dimana masing-masing operasi tersebut memiliki durasi waktu yang harus diproses oleh masing-masing mesin dan tidak dapat diinterupsi hingga mesin tersebut selesai lama untuk mendapatkan jadwal yang optimal. Jadwal adalah mpengalokasikan operasi pada interval waktu untuk diproses oleh mesin.

  Permasalahannya adalah bagaimana mendapatkan jadwal dengan total waktu yang minimum antara operasi pertama mulai diproses dan operasi terakhir selesai diproses (the makespan), dengan tetap memenuhi urutan proses operasi.

  Masalah penjadwalan Job-Shop merupakan masalah optimasi yang paling sulit, maka prosedur heuristik merupakan solusi alternatif yang cukup menarik (Moon dan Lee, 1997). Algoritma yang bersifat pendekatan dan probabilistik terhadap solusi yang ingin dicari biasanya dikenal dengan algoritma heuristik. Sebagai contoh, untuk mendapatkan total waktu (makespan) minimum pada masalah penjadwalan Job-Shop, harus dilakukan kombinasi operasi agar dapat diselesaikan oleh suatu mesin, dengan tetap memenuhi urutan proses operasi tersebut. Dalam hal tersebut membutuhkan waktu yang cukup lama dalam menyelesaikannya jika dilakukan dengan metode konvensional. Karena itu dibutuhkan suatu algoritma yang cepat dengan melakukan pendekatan terhadap solusi dari masalah penjadwalan Job-

  Shop , walaupun total waktu (makespan) tidak yang terminimum, akan tetapi digunakan pada masalah-masalah yang tergolong sulit dan dalam berbagai variasi telah diterapkan ke berbagai masalah sains dan teknik yang salah satunya adalah masalah penjadwalan Job-Shop.

  Algoritma genetika pertama kali diperkenalkan oleh John Holland dan murid-muridnya di Universitas Michigan pada tahun 1960. Algoritma genetika adalah algoritma yang berdasarkan konsep teori evolusi alam dan genetika. Teori evolusi alam dan genetika pertama kali dikemukakan oleh Charles Darwin. Dalam teori genetika disebutkan bahwa sifat tertentu dari suatu mahluk hidup ditentukan oleh susunan gen dalam kromosom mahluk hidup tersebut. Teori genetika dalam algoritma genetika digunakan untuk merepresentasikan setiap solusi dari masalah yang ada, karena setiap solusi diandaikan mempunyai kromosom yang berbeda dengan solusi yang lainnya. Sedangkan evolusi alam adalah proses seleksi terhadap anggota dari berbagai populasi berdasarkan tingkat ketahanan hidup suatu makhluk hidup. Proses- proses dalam evolusi alam yang digunakan dalam algoritma genetika adalah seleksi alam dan reproduksi. Proses seleksi alam digunakan untuk memilih solusi yang baik, sedangkan proses reproduksi digunakan untuk menghasilkan solusi baru yang diharapkan mempunyai kromosom lebih baik dari solusi karena tidak harus menelusuri semua kemungkinan penyelesaian. Walaupun ada kemungkinan dengan menggunakan algoritma genetika tidak dapat ditemukan solusi terbaik, tetapi paling tidak dapat ditemukan solusi yang mendekati solusi terbaik dalam waktu yang relatif cepat.

  Algoritma genetika diawali dengan himpunan solusi yang disebut populasi. Setiap individu pada populasi disebut kromosom yang menggambarkan sebuah solusi dari masalah yang akan diselesaikan. Sebuah kromosom dapat dinyatakan dengan simbol string misalnya kumpulan string bit. Kromosom-kromosom dapat berubah terus menerus yang disebut juga regenerasi. Pada setiap generasi, kromosom dievaluasi dengan menggunakan alat ukur yang disebut fungsi fitnes (tingkat kesesuaian). Untuk membuat generasi berikutnya, kromosom-kromosom baru yang disebut offspring (keturunan) terbentuk dengan cara menggabungkan dua kromosom dari generasi sekarang dengan menggunakan metode crossover / persilangan atau mengubah kromosom dengan menggunakan operator mutasi. Generasi baru dibentuk dengan cara seleksi yang dilakukan terhadap parents (induk) dan

  

offspring berdasarkan nilai fitnesnya dan menghilangkan yang lainnya.

  Kromosom-kromosom yang lebih sesuai memiliki probabilitas untuk dipilih.

  B. Perumusan Masalah

  Pokok-pokok permasalahan yang akan dibahas dalam skripsi adalah:

  1. Bagaimana penerapan algoritma genetika pada masalah penjadwalan Job-Shop?

  2. Bagaimana membuat program untuk mendapatkan total waktu (makespan) minimum pada masalah penjadwalan Job-Shop?

  C. Pembatasan Masalah

  Pembahasan skripsi ini dibatasi pada:

  1. Pengkodean penjadwalan Job-Shop menggunakan representasi berbasis operasi (operation-based representation).

  2. Jumlah input mesin dan job sama, minimal 3 dan maksimal 10.

  3. Input ukuran populasi minimal 10 dan maksimal 50.

  4. Input generasi minimal 10 dan maksimal 500

  5. Proses persilangan menggunakan Precedence Preservative Crossover (PPX).

  6. Proses mutasi menggunakan job-pair exchange mutation.

  7. Untuk mendapatkan makespan minimum pada masalah penjadwalan Job-Shop penulis akan menggunakan software

  D. Tujuan Penulisan

  Tujuan penulisan skripsi ini untuk menambah pengetahuan kepada pembaca mengenai algoritma genetika dan penjadwalan Job-Shop, serta penerapan algoritma genetika untuk masalah penjadwalan Job-Shop.

  E. Metode Penulisan

  Penulisan skripsi ini menggunakan metode studi pustaka, yaitu dengan menggunakan buku-buku, jurnal-jurnal, dan makalah-makalah yang berkaitan dengan algoritma genetika dan penjadwalan Job-Shop, sehingga tidak ditemukan hal baru.

  F. Manfaat Penulisan

  Manfaat yang diharapkan dari penulisan skripsi ini adalah dapat menyelesaikan masalah penjadwalan Job-Shop dengan waktu yang lebih singkat dengan algoritma genetika.

G. Sistematika Penulisan

  Bab pertama adalah pendahuluan, yang berisi tentang latar belakang masalah, perumusan masalah, pembatasan masalah, tujuan penulisan, metode penulisan, manfaat penulisan, dan sistematika penulisan.

  Bab kedua adalah landasan teori, pada bab ini diuraikan tentang latar belakang biologi, algoritma genetika, pengertian penjadwalan dan penjadwalan Job-Shop.

  Bab ketiga adalah algoritma genetika untuk masalah penjadwalan Job-

  Shop . Bab ini menguraikan mengenai langkah-langkah algoritma genetika

  dalam menyelesaikan masalah penjadwalan Job-Shop, representasi masalah, pembentukan kromosom, pencarian nilai fitness masing-masing kromosom, operasi perkawinan silang, dan operasi mutasi.

  Bab keempat adalah implementasi dan analisa hasil program, pada bab ini berisi tentang implementasi sistem yang dibangun, meliputi penjelasan

  flowchart dan analisa hasil program.

  Bab kelima adalah penutup, pada bab ini berisi kesimpulan dan saran dari sistem yang telah dibangun berdasarkan hasil pembahasan bab-bab sebelumnya.

BAB II LANDASAN TEORI A. Latar Belakang Biologi Semua makhluk hidup terdiri dari beberapa sel dimana setiap

  selnya terdapat kumpulan kromosom yang sama. Kromosom adalah untaian dari DNA yang membentuk model yang membedakan seluruh organisme.

  Sebuah kromosom terdiri dari gen-gen yang merupakan blok dari DNA. Setiap gen terbentuk dari protein tertentu. Gen tersebut mengkodekan sebuah trait (ciri bawaan) misalnya warna mata, warna kulit, dan lain-lain.

  Kemungkinan penentuan untuk sebuah trait disebut allele seperti warna hitam dan sawo matang untuk warna kulit. Setiap gen memiliki posisi tersendiri pada kromosom yang disebut locus.

  Saat melakukan reproduksi, yang muncul pertama kali adalah rekombinasi (crossover atau persilangan). Gen-gen dari parents (induk) membentuk kromosom baru menjadi offspring (keturunan) baru yang kemudian juga dapat bermutasi. Mutasi merupakan perubahan yang terjadi pada elemen suatu DNA. Perubahan itu terjadi mungkin disebabkan karena

  Ruang Pencarian

  Untuk menyelesaikan suatu masalah, maka dicari solusi yang terbaik dari semua kemungkinan solusi yang ada. Kumpulan semua kemungkinan solusi disebut ruang pencarian (search space). Setiap titik pada ruang pencarian merupakan satu solusi yang mungkin (feasible

  solution ) dan dapat diberi pengenal dalam bentuk nilai atau fitnesnya

  terhadap masalah yang akan diselesaikan. Proses pencarian solusi menjadi rumit jika tidak diketahui di mana harus mencari atau pencarian dimulai dari mana. Banyaknya metode yang dikenal untuk menemukan solusi yang layak, diantaranya adalah algoritma genetika yang dibuat berdasarkan analogi mekanisme yang terjadi terhadap proses evolusi.

B. Algoritma Genetika

1. Pengantar Algoritma Genetika

  Algoritma genetika ditemukan oleh John H. Holland dari Universitas of Michigan pada tahun 1960-an. Saat ini algoritma genetika mulai banyak digunakan untuk menyelesaikan berbagai masalah optimasi yang kompleks. Algoritma ini merupakan metode optimasi Individu yang lebih kuat (fit) akan memiliki tingkat survival dan tingkat reproduksi yang lebih tinggi jika dibandingkan dengan individu yang kurang fit. Beberapa aplikasi yang diselesaikan dengan algoritma genetika yaitu sistem dinamikal nonlinear, lintasan robot, program LISP, perancangan jaringan syaraf tiruan, strategi perencanaan, Film-copy Deliverer Problem, Knapsack Problem, Quadratic Assigment Problem, Traveling Salesman Problem dan Minimum Spanning Tree Problem.

  Algoritma genetika merupakan suatu metode penyelesaian yang tergolong heuristik. Algoritma heuristik adalah algoritma yang bersifat pendekatan atau probabilistik terhadap solusi yang ingin dicari.

  Ciri-ciri dari algoritma heuristik adalah: i. Akan selalu memberikan solusi yang baik walaupun belum tentu merupakan solusi yang optimal. ii. Lebih cepat dan mudah untuk mengimplementasikan daripada algoritma eksak yang diketahui menjamin memberikan solusi yang lebih optimal. Sedangkan ciri-ciri dari algoritma genetika adalah: i. Bekerja dengan sebuah himpunan pengkodean solusi yang iv. Menggunakan operasi random dengan aturan perubahan probabilitas, bukan operasi dengan aturan tertentu dalam setiap iterasi.

2. Deskripsi Algoritma Genetika

  Algoritma genetika adalah teknik pencarian stokastik yang berdasarkan pada mekanisme seleksi alam dan sifat genetika. Dalam implementasinya, algoritma genetika meniru beberapa proses yang terdapat pada evolusi alam dimana evolusi terjadi pada kromosom yang mengkodekan struktur makhluk hidup. Individu-individu yang ada pada saat tertentu dalam suatu populasi merupakan individu-individu yang berhasil mempertahankan hidupnya sedangkan yang lemah akan punah. Individu-individu yang berhasil mempertahankan hidupnya akan membentuk individu baru.

  Beberapa teori dasar evolusi yang diadopsi oleh algoritma genetika adalah: a. Evolusi adalah proses seleksi alam dan reproduksi yang bekerja pada kromosom.

  b. Seleksi alamiah berhubungan dengan kinerja dari struktur yang

  Teori dasar evolusi tersebut bila diimplementasikan dalam bentuk algoritma genetika, maka diharapkan mampu menyelesaikan masalah- masalah yang sulit dengan cara yang sama seperti yang dilakukan melalui evolusi.

  Keuntungan algoritma genetika adalah sifat metode pencariannya yang lebih optimal, tanpa terlalu memperbesar ruang pencarian dan tanpa kehilangan kesempurnaan (completness) sehingga dapat dengan mudah diimplementasikan ke suatu permasalahan.

  Algoritma genetika merupakan algoritma yang bermanfaat dan efisien, ketika diterapkan dalam masalah dengan: a. Pencarian dalam ruang pencarian yang besar, kompleks atau hanya sedikit yang diketahui.

  b. Tidak ada analisis matematika yang memungkinkan.

  c. Kurang atau tidak ada pengetahuan yang memadai untuk merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit.

  d. Metode konvensional sudah tidak mampu menyelesaikan masalah yang dihadapi.

  2) Algoritma genetika mencari beberapa solusi dari sebuah populasi, bukan satu solusi.

  3) Algoritma genetika menggunakan fungsi fitnes, bukan menggunakan turunan atau pengetahuan lainnya.

  4) Algoritma genetika menggunakan aturan perubahan probabilistik, bukan aturan deterministik.

  Istilah-istilah yang digunakan dalam algoritma genetika, dijelaskan dalam tabel dibawah ini: Istilah dalam algoritma genetika

  Keterangan. Populasi Himpunan beberapa solusi Kromosom Solusi Gen Bagian dari kromosom Parent Solusi yang akan dikenakan proses persilangan atau mutasi

  Offspring Solusi baru yang dihasilkan melalui

  proses persilangan atau mutasi Persilangan Proses yang melibatkan dua solusi untuk mendapatkan solusi baru Mutasi Proses yang melibatkan satu solusi untuk mendapatkan solusi baru Seleksi Pemilihan kromosom yang baik

3. Struktur Umum Algoritma Genetika

  Bila P(t) dan C(t) adalah induk dan keturunan pada generasi t, struktur umum algoritma genetika adalah sebagai berikut:

  prosedur algoritma genetika :

  begin t

  ← 0; inisialisasi P(t); evaluasi P(t); while(kondisi terminasi tidak terpenuhi) do rekombinasi P(t) untuk menghasilkan anak

  C(t); evaluasi C(t); seleksi P(t+1) dari P(t) dan C(t); t

  ← t+1; end

  end

  Struktur umum algoritma genetika (Mitsuo Gen dan Runwei Cheng, 1997) dapat pula dideskripsikan seperti pada gambar 2.1 berikut.

  Ilustrasi Algoritma Genetika

  mutation 0011011001

  0011001001 crossover

  1100101010

  1011101110

  1100101110

  1011101010 solutions evaluation

  1100101110 1011101010 0011001001 offspring decoding

  1100101010 1011101110 0011011001 1100110001 chromosomes selection solutions encoding new population Keterangan gambar Dalam menyelesaikan masalah, algoritma genetika diawali dengan menginisialisasikan himpunan solusi yang dibangkitkan secara acak. Himpunan solusi ini disebut populasi. Setiap individu pada populasi disebut kromosom yang menggambarkan sebuah solusi dari masalah yang akan diselesaikan. Sebuah kromosom dapat dinyatakan dalam simbol string misalnya kumpulan string bit. Kromosom-kromosom dapat berubah terus menerus disebut dengan regenerasi. Pada setiap generasi, kromosom dievaluasi dengan mengunakan alat ukur yang disebut fungsi fitnes (tingkat kesesuaian). Untuk membuat generasi berikutnya, kromosom-kromosom baru yang disebut offspring (keturunan) terbentuk dengan cara menggabung dua kromosom dari generasi sekarang dengan menggunakan operator crossover / persilangan atau mengubah sebuah kromosom dengan menggunakan operator mutasi. Generasi baru dibentuk dengan cara seleksi yang dilakukan terhadap parents dan offspring berdasarkan nilai fitnesnya dan menghilangkan yang lainnya. Kromosom-kromosom yang lebih sesuai memiliki probabilitas untuk dipilih. Setelah beberapa generasi, algoritma ini akan konvergen ke arah bentuk kromosom yang terbaik, dengan harapan dapat menyatakan solusi optimal dari permasalahan yang diselesaikan.

4. Operator dan Fungsi Evaluasi

  Biasanya, inisialisasi diasumsikan secara random. Rekombinasi melibatkan crossover dan mutasi untuk menghasilkan keturunan (offspring). Pada kenyataannya, hanya ada dua jenis operasi dalam algoritma genetika, yaitu operasi genetik (crossover / persilangan dan mutasi) dan operasi evolusi (seleksi). Pada teori evolusi, mutasi ini merupakan operator kromosom yang memungkinkan makhluk hidup melakukan penyesuaian dengan lingkungannya walaupun lingkungan barunya tidak sesuai dengan lingkungan induknya semula.

  Faktor terbesar dalam teori evolusi yang menyebabkan suatu kromosom bertahan, punah, melakukan persilangan atau mutasi adalah lingkungan. Pada algoritma genetika, faktor lingkungan diperankan oleh fungsi evaluasi. Fungsi evaluasi menggunakan kromosom sebagai masukan dan menghasilkan angka tertentu yang menunjukkan kinerja pada masalah yang diselesaikan. Pada masalah optimasi, fungsi evaluasi adalah fungsi tujuan (objective function). Nilai fungsi evaluasi disebut nilai kesesuaian (fitness value). Nilai inilah yang akan menentukan apakan suatu string akan muncul pada generasi berikutnya atau mati.

5. Pengkodean

  Beberapa jenis pengkodean yang sering digunakan dalam mengkodekan solusi terhadap suatu masalah, yaitu:

  5.1. Pengkodean biner (Binary Encoding) Pengkodean biner ini merupakan cara pengkodean yang paling umum digunakan karena pengkodean ini merupakan yang pertama kali digunakan dalam Algoritma Genetika oleh Holland. Dalam pengkodean biner, setiap kromosom dinyatakan dalam barisan bit 0 atau 1. Gambar 2.2 merupakan contoh kromosom dengan pengkodean biner.

  Kromosom 1 1 0 1 0 1 0 0 1 Kromosom 2 0 0 1 1 1 0 1 0

  Gambar 2.2: Contoh kromosom dengan pengkodean biner

  Pengkodean biner memberikan banyak kemungkinan untuk kromosom walaupun dengan jumlah allele yang sedikit yaitu 0 atau 1. Pada pihak lain, pengkodean biner ini sering tidak sesuai untuk banyak masalah dan kadang-kadang pengoreksian harus dilakukan setelah proses evolusi (persilangan dan/ atau mutasi). Contoh masalah yang sesuai untuk pengkodean biner antara lain dalam suatu urutan. Gambar 2.3 merupakan contoh kromosom dengan pengkodean permutasi.

  Kromosom 1 1 3 4 2 6 5 7 8 Kromosom 2 3 4 6 1 5 2 8 7

Gambar 2.3 : Contoh kromoson dengan pengkodean permutasi Pengkodean permutasi hanya berguna untuk masalah pengurutan.

  5.3. Pengkodean nilai (Value Encoding) Pengkodean nilai dapat digunakan untuk masalah yang mempunyai nilai yang rumit. Dengan pengkodean nilai ini, setiap kromosom merupakan suatu barisan dari nilai-nilai. Nilai-nilai dapat berupa apa saja yang berhubungan dengan masalah. Gambar 2.4 merupakan contoh kromosom dengan pengkodean nilai.

  Kromosom 1 1.2 5.6 0.3 2.6 4.5 3.7 1.4 Kromosom 2 A B D H F I E H

  Gambar 2.4: Contoh kromosom dengan pengkodean nilai

  Pengkodean nilai ini baik digunakan untuk beberapa masalah. Di pihak lain, untuk mengkodekan tipe ini sering perlu pengembangan persilangan dan mutasi baru yang spesifik untuk permasalahannya. Contohnya dalam masalah mencari bobot untuk jaringan syaraf. beberapa objek, seperti fungsi atau perintah dalam bahasa pemrograman.

  Pengkodean pohon ini baik digunakan untuk menyusun program untuk masalah mencari fungsi berdasarkan nilai-nilai yang diberikan. Gambar 2.5 merupakan contoh kromosom dengan pengkodean pohon.

  Kromosom:

  • x

  / y

  5 ( + x (/ 5 y))

Gambar 2.5 : Contoh kromosom dengan pengkodean pohon

6. Seleksi

  Seleksi akan menentukan individu-individu mana saja yang akan

  6.1. Seleksi Roda Roulette Metode seleksi roda roulette merupakan metode yang paling sederhana, dan sering juga dikenal dengan nama stochastic

  sampling with replacement. Sesuai dengan namanya, metode ini

  menirukan permainan roulette-wheel di mana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitnesnya. Kromosom yang mempunyai nilai fitnes lebih besar menempati potongan lingkaran yang lebih besar dibandingkan dengan kromosom bernilai fitnes rendah. Gambar 2.6 ilustrasi sebuah contoh penggunaan metode roda roulette.

  Kromosom Nilai Fitnes Probabilitas

  K3

  K1 1 0.25

  K1 K4

  K2 2 0.5 K3 0.5 0.125

  K2

  K4 0.5 0.125 Jumlah 4

Gambar 2.6 Contoh penggunaan metode seleksi roda roulette .

  Kromosom K1 mempunyai probabilitas 25% untuk dipilih setiap kali suatu kromosom dipilih (setiap roda diputar).

  Probabilitas masing-masing individu dapat dicari dari pembagian sehingga dapat membawa ke hasil optimum lokal (konvergensi dini) ke suatu hasil yang bukan optimum global. Sebaliknya, jika semua kromosom dalam populasi mempunyai fitnes yang hampir sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.

  6.2. Seleksi Ranking Seleksi dengan roda roulette sebelumnya memiliki kelemahan ketika fitnes yang tersebar dalam populasi berbeda jauh misalnya jika fitnes dari kromosom terbaik dalah 90% dari keseluruhan roda roulette, maka kromosom lain akan mempunyai kesempatan yang kecil untuk terpilih.

  Pada seleksi ranking, pertama yang dilakukan adalah merangkingkan kromosom dalam populasi kemudian setiap kromosom menerima nilai fitnes dari ranking tersebut. Kromosom yang terjelek akan mendapatkan nilai fitnes 1, yang kedua mendapat nilai fitnes 2 dan seterusnya sampai yang terbaik mendapatkan nilai fitnes N (jumlah kromosom dalam populasi).

  Sebagai ilustrasi dapat dilihat pada tabel 2.1.

  Kromosom Fitnes Fitnes Baru B

  5

  1

  6.3. Seleksi Turnament Seleksi turnamen merupakan jenis seleksi yang divariasi berdasarkan seleksi roda Roulette dan seleksi ranking. Sejumlah k kromosom tertentu dari populasi dengan n kromosom (k

  ≤ n) dipilih secara acak dengan probabilitas yang sama. Dari k kromosom yang terpilih tersebut kemudian dipilih suatu kromosom dengan fitnes terbaik, yang diperoleh dari hasil pengurutan rangking fitnes kromosom-kromosom yang dipilih tersebut.

  Perbedaan dengan seleksi roda Roulette adalah bahwa pemilihan kromosom yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitnes dari populasi. Untuk k = 1, seleksi turnament ini akan sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk k = 2, maka dua kromosom dalam populasi akan dipilih secara acak, kemudian dari dua kromosom tersebut dipilih satu kromosom dengan fitnes terbaik. Biasanya yang sering digunakan adalah untuk k = 2 tergantung dari ukuran populasi.

7. Operasi Genetik

  induknya. Sebuah kromosom yang mengarah pada solusi yang bagus dapat diperoleh dari proses persilangan dua buah kromosom.

  Persilangan bisa juga berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini dilakukan dengan suatu probabilitas tertentu

  Pc . Artinya, penyilangan bisa dilakukan hanya jika suatu bilangan random [0,1) yang dibangkitkan kurang dari Pc yang ditentukan.

  Dari hasil penelitian yang sudah pernah dilakukan oleh praktisi algoritma genetika menunjukkan bahwa angka probabilitas persilangan sebaiknya cukup tinggi, yaitu 80% sampai 95% untuk memberikan hasil yang baik. Untuk beberapa masalah tertentu probabilitas persilangan 60% memberikan hasil yang lebih baik (Obitko,1998). Segera setelah induk untuk persilangan terpilih maka digunakan operasi persilangan sehingga terbentuk keturunan dari induk tersebut. Ada beberapa persilangan / Crossover: persilangan. Yang disalin dari induk pertama selebihnya disalin dari induk ke dua.

  Sebagai contoh, andaikan terdapat dua kromosom induk dengan panjang L = 6 yaitu 000000 dan 111111. Jika titik persilangan adalah 4 maka dihasilkan dua offspring yaitu 000011 dan 111100. Gambar 2.7 merupakan contoh proses persilangan satu titik.

  Kromosom induk1 0 0 0 0 0 0 Kromosom induk2 1 1 1 1 1 1 Offspring 1 0 0 0 0 1 1 Offspring 2 1 1 1 1 0 0

  Gambar 2.7: Contoh proses persilangan satu titik

  7.1.2. Persilangan dua titik Proses persilangan ini adalah memilih dua titik persilangan. Kromosom offspring kemudian dibentuk sebagai barisan bit dari awal sampai titik persilangan pertama disalin dari induk pertama, bagian dari titik persilangan pertama dan kedua disalin dari induk kedua, kemudian selebihnya disalin dari induk pertama lagi.

  Sebagai contoh, andaikan terdapat dua kromosom Kromosom 1 0 0 0 0 0 0 Kromosom 2 1 1 1 1 1 1 Offspring 1 0 0 1 1 0 0 Offspring 2 1 1 0 0 1 1

  

Gambar 2.8: Contoh proses persilangan dua titik

  7.2. Mutasi Setelah proses persilangan selesai, kemudian dilakukan proses mutasi yang dikenakan pada keturunannya. Mutasi adalah proses mengubah nilai dari satu atau beberapa gen dalam 1 kromosom. Mutasi berfungsi dalam melakukan perubahan yang bukan disebabkan oleh persilangan.

  Jika dalam proses pemilihan kromosom-kromosom cenderung terus pada kromosom yang baik saja maka sangat mudah terjadi konvergensi dini, yaitu mencapai solusi optimum lokal. Untuk menghindari terjadinya konvergensi dini dan tetap menjaga perbedaan kromosom-kromosom dalam populasi, selain melakukan pendekatan selektif yang lebih efisien, operasi mutasi juga dapat dilakukan.

  Proses mutasi ini adalah acak, sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh kromosom Kromosom sebelum mutasi 1 1 0 0 1 1 Kromosom sesudah mutasi 1 1 0 1 0 0

  Gambar 2.9: Contoh proses mutasi

  Akan tetapi operasi mutasi mendapat kontroversi penerapannya dalam algoritma genetika karena sifatnya yang acak sehingga dapat menggangu kromosom dengan fitnes terbaik yang telah diperoleh. Kadang operasi mutasi tetap digunakan dengan probabilitas yang sangat kecil yaitu Pm<1. Jadi kemungkinan kromosom mengalami perubahan akibat mutasi sangat kecil.

C. Penjadwalan Job-Shop

  Menurut Baker (1974) penjadwalan adalah proses pengalokasian sumber daya yang tersedia untuk mengerjakan tugas dalam jangka waktu tertentu. Masalah penjadwalan muncul apabila pada saat yang sama terdapat sekumpulan job yang harus dihadapi dengan terbatasnya mesin atau fasilitas produksi yang tersedia. Salah satu usaha yang dilakukan untuk tercapainya penjadwalan yang optimal adalah dengan melakukan peminimalan total waktu penyelesaian serangkaian proses produksi (makespan).

  Mesin yang umum adalah satu, dimana terdapat m mesin yang akan memproses n job. Masing-masing job memerlukan operasi yang harus diproses secara berurutan, dimana masing-masing operasi memiliki durasi waktu dan tidak dapat diinterupsi hingga mesin tersebut berhenti berproses.

  Masing-masing mesin dapat memproses paling banyak satu operasi pada waktu yang sama.

  Model Job-Shop Klasik

  Masalah penjadwalan Job-Shop klasik dapat dinyatakan sebagai berikut: terdapat m mesin yang berbeda dan n job yang berbeda untuk dijadwalkan. Setiap job terdiri atas satu set operasi dan urutan operasi pada mesin sudah terspesifikasi. Beberapa batasan untuk job dan mesin diantaranya: a. Job tidak boleh dikerjakan mesin yang sama lebih dari satu kali.

  b. Tidak ada batasan antara operasi dari job yang berbeda.

  c. Operasi tidak dapat diinterupsi.

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

  e. Tidak ada ketetapan maupun batas waktu penyelesaian seluruh

  Sebagai contoh penjadwalan 3 job dan 3 mesin (Yamada dan Nakano, 1997)

  Tabel 2.2: masalah 3 x 3 Mesin Waktu

  Job 1

  1

  2

  3 Job 1

  3

  3

  3 Job 2

  1

  3

  2 Job 2

  2

  3

  4 Job 3

  2

  1

  3 Job 3

  3

  2

  1 Terdapat 3 job yang harus diproses oleh 3 mesin. Job 1 harus diproses oleh ke-3 mesin, urutan pertama mesin 1 memproses job 1 dengan waktu 3 satuan waktu, urutan kedua mesin 2 memproses dengan waktu 3 satuan waktu, dan urutan ketiga mesin 3 memproses dengan 3 satuan waktu. Pada job 2 dan job 3 sama halnya dengan job 1.

  Didapatkan total waktu yang diperlukan untuk memproses seluruh job dari mulai diprosesnya job awal hingga job akhir selesai diproses, digambarkan dalam bentuk Gantt-Chart seperti pada gambar 2.10 berikut.

  M 1 J 1 J 2 J