Penerapan Algoritma Genetika Untuk Masalah Penjadwalan Job Shop Pada Lingkungan Industri Pakaian

(1)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

HENDRIK SITANGGANG 070823012

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2011


(2)

PERSETUJUAN

Judul : PENERAPAN ALGORITMA GENETIKA UNTUK

MASALAH PENJADWALAN JOB SHOP PADA LINGKUNGAN INDUSTRI PAKAIAN

Kategori : SKRIPSI

Nama : HENDRIK SITANGGANG

Nomor Induk Mahasiswa : 070823012

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM

(FMIPA) UNIVERSITAS SUMATERA UTARA

Medan, Juni 2011

Komisi Pembimbing :

Pembimbing 1 Pembimbing 2

Drs. Marihat Situmorang, M.Kom Drs. Marwan Harahap, M.Eng

NIP.19631214 198903 1001 NIP. 19461225 197403 1001

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

Prof. Dr. Tulus, M.Si.


(3)

PERNYATAAN

PENERAPAN ALGORITMA GENETIKA UNTUK MASALAH PENJADWALAN JOB SHOP PADA LINGKUNGAN INDUSTRI

PAKAIAN

SKRIPSI

Saya mengaku bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing- masing disebutkan sumbernya.

Medan, Juni 2011

HENDRIK SITANGGANG 070823012


(4)

PENGHARGAAN

Puji dan syukur Penulis panjatkan kepada Tuhan Yang Maha Esa, dengan limpahan karunia-Nya skripsi ini dapat diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terimakasih Penulis sampaikan kepada Drs. Marihat Situmorang, M.Kom dan Drs. Marwan Harahap, M.Eng selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada Penulis untuk menyempurnakan skripsi ini. Panduan ringkas, padat dan professional telah diberikan agar penulis dapat menyelesaikan skripsi ini. Ucapan terimakasih juga ditujukan kepada Ketua Departemen Matematika dan Koordinator Ekstension Prof. Dr. Tulus, M.Si. dan Drs. Pangarapen Bangun, M.Si, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen pada Departemen FMIPA USU, pegawai di FMIPA USU, kepada rekan – rekan kuliah saya dan sahabat-sahabat saya dan khususnya kepada Ayahanda Marudin Sitanggang, SH dan Ibunda saya Risma Sinurat, serta keluarga saya yang telah memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.


(5)

ABSTRAK

Pada industri pakaian khususnya yang proses produksinya berbaur dan multi produk sering mengalami kesulitan pada penjadwalan job shop. Oleh karena itu, perlu diadakan penelitian untuk penjadwalan job shop yang efektif terutama yang proses produksinya berbaur dan multi produk. Pada tulisan ini akan diajukan metode untuk penjadwalan job shop yang berbaur dan multi produk dengan tujuan meminimalkan total pinalti E/T (Earliness/Tardiness) dengan menentukan start pada masing- masing job shop dan bagaimana cara menugaskan operasi-operasi ke operator job shop tersebut. Sebuah algoritma genetika digunakan untuk menyelesaikan masalah penjadwalan job shop yang berbaur dan multi produk dimana pada akhirnya diperoleh penjadwalan job shop yang efektif.


(6)

DAFTAR ISI

Halaman

PERSETUJUAN ii

PERNYATAAN iii

PENGHARGAAN iv

ABSTRAK v

DAFTAR ISI vi

DAFTAR TABEL viii

DAFTAR GAMBAR ix

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 1

1.3 Tinjauan Pustaka 2

1.4 Tujuan Penelitian 3

1.5 Kontribuasi Penelitian 3

1.6 Metode Penelitian 3

BAB 2 LANDASAN TEORI 4

2.1 Algoritma 4

2.1.1 Klasifikasi Algoritma 5

2.1.2 Efisiensi Algoritma 5

2.1.3 Kriteria Analisis Program 6

2.1.4 Analisis Program 8

2.2 Bahasa Pemograman 9

2.3 Algoritma Genetika 10

2.3.1 Pengertian Algoritma Genetika 10

2.3.2 Beberapa Definisi Penting Dalam Algoritma Genetika 11

2.3.3 Dasar Algoritma Genetika 11

2.4 Penerapan Algoritma Matematika 12

2.4.1 Membangun Generasi Awal 12

2.4.2 Representasi Kromosom 13

2.4.3 Fungsi Fitnes 13

2.4.4 Seleksi 13

2.4.5 Operator Genetika 14

2.4.6 Parameter Genetika 15

BAB 3 ANALISA DAN PERANCANGAN SISTEM 17

3.1 Penjadwalan Job Shop 17

3.2 Penerapan Algoritma Genetik Pada Optimisasi Penjadwalan 20

3.3 Pemodelan 21

3.4 Perancangan Interface Sistem 23


(7)

4.1 Algoritma Entry Job 26

4.2 Algoritma Form Proses Job 26

4.3 Algoritma Inisialisasi Populasi

27

4.4 Algoritma Evaluasi

27

4.5 Algoritma Seleksi

29

4.6 Algoritma Reproduksi

29

4.7 Implementasi

31

BAB 5 KESIMPULAN DAN SARAN

38

5.1 Kesimpulan

33

5.2 Saran

33

DAFTAR PUSTAKA 34


(8)

DAFTAR TABEL

Halaman

Tabel 3.1 Contoh Job Shop 22


(9)

DAFTAR GAMBAR

Halaman

Gambar 3.1 Flowchart Algoritma Genetika 21

Gambar 3.2 Rancangan Form Utama 24

Gambar 3.3 Rancangan Form Job 24

Gambar 3.4 Rancangan Form Proses Job 25

Gambar 4.1 Tampilan Hasil Implementasi Job Shop 31

Gambar 4.2 Tampilan Input Job 31


(10)

ABSTRAK

Pada industri pakaian khususnya yang proses produksinya berbaur dan multi produk sering mengalami kesulitan pada penjadwalan job shop. Oleh karena itu, perlu diadakan penelitian untuk penjadwalan job shop yang efektif terutama yang proses produksinya berbaur dan multi produk. Pada tulisan ini akan diajukan metode untuk penjadwalan job shop yang berbaur dan multi produk dengan tujuan meminimalkan total pinalti E/T (Earliness/Tardiness) dengan menentukan start pada masing- masing job shop dan bagaimana cara menugaskan operasi-operasi ke operator job shop tersebut. Sebuah algoritma genetika digunakan untuk menyelesaikan masalah penjadwalan job shop yang berbaur dan multi produk dimana pada akhirnya diperoleh penjadwalan job shop yang efektif.


(11)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Perusahaan diberbagai industri dihadapkan pada persaingan pasar global yang terus meningkat dan permintaan jenis produk yang tidak dapat diramal. Industri pakaian adalah salah satu yang terkena dampak dari tekanan untuk dapat menghasilkan berbagai macam produk yang sesuai dengan selera konsumen, dengan waktu yang singkat dan biaya yang rendah. Industri pakaian pada umumnya beroperasi dengan system job shop. Penjadwalan job shop untuk industri pakaian adalah suatu penjadwalan yang menggunakan banyak mesin yang disertai banyak operasi.

Masalah Penjadwalan Job Shop merupakan persoalan pengurutan sejumlah operasi yang diproses pada mesin- mesin tertentu. Masalah penjadwalan job shop adalah bagaimana menyusun semua operasi dari semua job pada tiap mesin untuk tujuan meminimasi fungsi obyektif. Fungsi obyektif yang dimaksud dapat berupa


(12)

waktu pengerjaan total, rata-rata waktu pengerjaan, rata-rata waktu keterlambatan penyelesaian job, atau lainnya. Berbagai macam penelitian telah dilakukan terhadap masalah penjadwalan job shop. Algoritma genetika diterapkan untuk permasalahan penjadwalan job shop dalam menjaga efektif dan efisiensi pekerjaan (Baase,1988)

1.2 Perumusan Masalah

Pada penelitian ini akan dicari solusi untuk menyelesaikan permasalaha n 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).

1.3 Tinjauan Pustaka

Penjadwalan merupakan proses pengaturan sumber daya untuk menyelesaikan tugas-tugas dengan melibatkan pekerjaan, sumber daya dan waktu. Pekerjaan diproses pada setiap sumber daya dengan urutan tertentu selama waktu tertentu dengan meminimumkan waktu penyelesaian tugas, meminimumkan keterlambatan pengerjaan, meminimumkan waktu tunggu pada mesin dan meminimumkan biaya.

Algoritma genetika adalah algoritma yang dikembangkan dari proses pencarian solusi menggunakan pencarian acak, ini terlihat pada proses pembangkitan populasi awal yang menyatakan sekumpulan solusi yang dipilih secara acak ( Munir, Rinaldi, 2002). Algoritma genetika adalah suatu algoritma pencarian yang meniru mekanisme dari genetika alam. Algoritma genetika banyak dipakai pada aplikasi bisnis, teknik maupun pada bidang keilmuan lainnya. Algoritma ini dimulai dengan kumpulan solusi yang disebut dengan populasi. Solusi-solusi dari sebuah populasi diambil dan digunakan untuk membentuk populasi yang baru. Hal ini dimotivasi dengan harapan


(13)

bahwa populasi yang baru dibentuk tersebut akan lebih baik daripada yang lama. Solusi-solusi yang dipilih untuk membentuk solusi-solusi yang baru dipilih sesuai dengan fitness mereka masing- masing (Suyanto, 2005).

Secara umum teori masalah penjadwalan Job Shop adalah penjadwalan dimana masing- masing job memiliki unitan operasi pada mesin yang berbeda-beda. Karena semakin berkembangnya problem pada dunia industri, maka masalah Job Shop pun semakin bervariasi. Salah satunya adalah permasalahan Job Shop dimana setiap operasi didalam job memiliki alternatif mesin.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah untuk membahas pemecahan masalah job shop

khususnya pada industri pakaian dengan menggunakan algoritma genetika. Sehingga proses produksi menjadi lebih cepat dan efisien.

1.5 Kontribusi Penelitian

Selain menambah pemahaman dan pengetahuan penulis mengenai algoritma genetika, penelitian ini juga bermanfaat sebagai bahan referensi dan pengetahuan bagi pembaca dan dapat digunakan dan dikembangkan lebih lanjut.

1.6 Metode Penelitian

Secara umum penelitian yang dilakukan dengan beberapa tahapan, yaitu: 1. Identifikasi permasalah job shop

2. Membahas karakteristik Algoritma genetika.

3. Mengimplementasikan Algoritma genetika kedalam bentuk aplikasi.

4. Menganalisa hasil dari masalah pemecahan job shop dengan algoritma genetika.


(14)

BAB 2

LANDASAN TEORI

2.1 Algoritma

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristic (kondisi file sebelumnya). Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

2.1.1Klasifikasi Algoritma

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah


(15)

dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing- masing paradigma dapat digunakan dalam banyak algoritma yang berbeda ( Knuth, DE, 1973 ).

a) Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian meme cahkan permasalahan-permasalahan kecil yang terbentuk.

b) Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal dan mengandung beberapa bagian permasalahan yang tumpang tind ih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.

c) Metode serakah, Sebuah algoritma serakah mirip dengan sebuah pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.

2.1.2Efisiensi Algoritma

Dalam menganalisis efisiensi suatu algoritma, khusunya berpusat pada kecepatan algoritma sebagai fungsi masukannya dan menentukan jumlah langkah yang dilakukan; sedangkan waktu eksekusi (running time) bergantung pada bahasa pemrograman, kualitas kode program yang dihasilkan, dan mesin yang digunakan.

Ketiga faktor tersebut penting, namun menghasilkan kecepatan atau kemunduran waktu eksekusi algoritma yang konstan; sebuah PC 2 GHz lebih cepat dibandingkan


(16)

PC 1 GHz, bahasa pemrograman yang dikompilasi memproses sepuluh kali lebih cepat daripada yang interpretasi, kode program yang “rapi” akan 30% lebih cepat daripada yang “tidak rapi”, dan sebagainya. Akan tetapi, algoritma yang lebih efisien akan menghasilkan kecepatan yang sebanding dengan ukuran masukannya.

Selain itu, menganalisis efisiensi algoritma dapat juga dengan menunjukkan analisis worst case. Analisis worst case menentukan waktu eksekusi terlama (keadaan terburuk) suatu algoritma. Misalnya, pencarian dalam sebuah daftar (list), maka worst case-nya, objek yang dicari ditemukan (tidak ditemukan) dengan melewati seluruh daftar tersebut. Analisis worst case berguna karena bagaimanapun, waktu eksekusi algoritma tidak mungkin lebih lambat daripada batasan yang ditetapkan. Algoritma dengan worst case yang “baik”, waktu eksekusinya akan selalu lebih “cepat”.

2.1.3Krite ria Analisis Program

Beberapa hal yang harus diperhatikan dalam menganalisis algoritma : 1. Kebenaran (Correctness)

Ada tiga hal yang dipertimbangkan dalam membuktikan kebenaran suatu algoritma. Sebelum menentukan apakah algoritma tersebut adalah benar, harus dipahami dengan jelas definisi tentang “benar”. “Benar” dapat diartikan sebagai masukan yang diharapkan dan keluaran yang dihasilkan untuk setiap masukan.

Untuk membuktikan kebenaran suatu program, program yang besar dan kompleks dapat dibagi dalam beberapa modul kecil. Sehingga, jika dapat dibuktikan bahwa modul- modul kecil adalah benar, maka seluruh program juga benar.

2. Jumlah Operasi yang Dilakukan (Amount of Work Done)

Ukuran jumlah operasi yang dilakukan dapat digunakan untuk membandingkan dua algoritma untuk masalah yang sama, sehingga dapat ditentukan algoritma yang lebih efisien. Akan lebih baik jika ukuran jumlah operasi dapat menandakan waktu eksekusi yang sebenarnya dari kedua algoritma yang dibandingkan, namun sebaiknya tidak menggunakan waktu


(17)

eksekusi karena beberapa alasan. Pertama, kecepatan pemrosesan setiap komputer berbeda. Kedua, setiap gaya pemrograman bervariasi dalam menghitung jumlah instruksi yang dieksekusi oleh program.

Untuk menentukan efisiensi suatu algoritma, maka pengukuran harus terlepas dari penggunaan komputer dan gaya pemrograman yang bervariasi. Maka, efisiensi suatu algoritma dapat diukur dengan menghitung jumlah operasi dasar yang dilakukan oleh algoritma tersebut. M isalnya, untuk menemukan x dalam daftar nama, maka operasi dasarnya adalah membandingkan x dengan setiap entri pada daftar tersebut.

3. Analisis Worst Case

Jumlah operasi yang dilakukan tidak dapat digambarkan dengan sebuah nilai karena jumlah langkah tidak sama untuk setiap masukan. Misalnya, menyelesaikan dua belas sistem persamaan linier dapat menghemat pekerjaan jika banyak koefisiennya bernilai nol.Dengan demikian, yang harus dilakukan adalah menghitung ukuran masukan untuk sebuah masalah. Misalnya, untuk menemukan x dalam daftar nama, maka masukannya adalah jumlah nama yang ada dalam daftar tersebut.Namun, jika ukuran masukannya tetap, jumlah operasi yang dilakukan tergantung pada masukan tertentu. Dengan demikian, tingkah laku suatu algoritma dapat diga mbarkan sebagai kompleksitas worst case.

4. Optimal (Optimality)

Untuk menganalisis suatu algoritma, biasanya selalu menggunakan kelas algoritma dan ukuran kompleksitas, misalnya, jumlah operasi dasar yang dilakukan. Sebuah algoritma disebut optimal (untuk worst case) jika tidak ada algoritma yang dapat melakukan operasi dasar yang lebih sedikit (untuk

worst case).

5. Lower Bound

Untuk membuktikan bahwa suatu algoritma adalah optimal, tidak diperlukan menganalisis setiap algoritma. Dengan membuktikan teorema-teorema yang


(18)

menentukan lower bound pada jumlah operasi yang diperlukan untuk menyelesaikan masalah, maka algoritma yang dapat melakukan jumlah operasi tersebut disebut optimal.

2.1.4Analisis Program

Ada dua hal yang diperhatikan dalam menganalisis sebuah program, yaitu waktu dan ruang. Waktu yaitu waktu yang diperlukan untuk mengeksekusi algoritma pada beberapa masukan. Ruang yaitu memori yang digunakan oleh algoritma ketika mengeksekusi masukan tersebut. Namun, analisis program ini akan lebih d ifokuskan pada analisis waktu ( Thiang,2001 )

Ada dua definisi umum tentang analisis waktu :

1. Waktu eksekusi program pada masukan tertentu adalah jumlah instruksi yang dijalankan oleh program pada masukan tersebut. Umumnya, ukuran masukandinyatakan dengan n dan waktu eksekusinya sebagai fungsi dari n. Pada masukan n, waktu eksekusinya bervariasi tergantung pada masukan tertentu. Misalnya, pencarian dalam sebuah array, target mungkin saja berada pada elemen pertama, terakhir, atau bahkan tidak ditemukan.

2. Worst case waktu eksekusi algoritma pada masukan n adalah jumlah instruksi maksimum yang dieksekusi oleh algoritma untuk setiap masukan n

tersebut. Worst case dinyatakan sebagai fungsi dari n. Umumnya, worst case

menyatakan tingkat pertumbuhan (rate of growth) waktunya; yaitu seberapa cepat bertumbuh ketika n menjadi . Untuk pencarian linier pada array n, waktu eksekusinya bertumbuh secara linier dengan n. Jadi, rate of growth -nya adalah linier. Umum-nya, order of growth dinyatakan dengan notasi big-O. Definisi big O: misalkan f dan g adalah dua buah fungsi dari bilangan bulat ke bilangan riil. Dapat dikatakan bahwa f(x) adalah O(g(x)) jika ada suatu konstanta C dan k sedemikian hingga |f(x)| ≤ C|g(x)|, saat x > k. (Munir, 2002). Saat menganalisa pertumbuhan dari fungsi kompleksitas, f(x) dan g(x) selalu positif. Oleh karena itu, persyaratan big-O diatas dapat disederhanakan menjadi f(x) ≤ Cg(x) saat x > k.


(19)

2.2 Bahasa Pemograman

Bahasa program merupakan suatu wahana untuk menuangkan pikiran manusia yang dapat dimengerti oleh mesin komputer sehingga bernilai guna. Suatu bahasa program akan terikat aturan dari paradigma bahasa. Ada berbagai macam paradigma bahasa : Prosedural, Fungsional, Deklaratif, Object Oriented, Konkuren. Adapun konsep-konsep dasar dalam pemograman adalah sebagai berikut (Munir,2002) :

a. Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer.

b. Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusi algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik bertujuan untuk menyeragamkan pemahaman tentang algoritma program yang terbebas dari sintak (aturan) penulisan bahasa program.

c. Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintak bahasa program.

d. Debugging dan menguji coba program. Hal ini bertujuan untuk mendapatkan program yang benar. Program dikatakan benar jika terbebas dari salah lojik dan sintak bahasa. Secara ideal mahasiswa hanya diberi kesempatan untuk me-run program sebanyak 2 kali : pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika analisa benar.

e. Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkan kepercayaan bahwa jika analisa benar maka sisa pekerjaan menjadi mudah.


(20)

Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur data.

f. Membaca program : orang akan dapat menulis dengan baik kalau sering membaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapat dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan saling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri pada kegiatan belajar bersama.

g. Membuktikan kebenaran program secara formal , satu-satunya hal yang menjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan sehari- hari. Program yang hanya lima baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata. Aktifitas ini dicakup dalam matakuliah Analisis Algoritma.

2.3 Algoritma Genetika

2.3.1Pengertian Algoritma Genetika

Algoritma genetika adalah suatu algoritma pencarian yang meniru mekanisme dari genetika alam. Algoritma Genetika banyak dipakai pada aplikasi bisnis, teknik maupun pada bidang keilmuan lainnya. Algoritma ini dimulai dengan kumpulan solusi yang disebut dengan populasi. Solusi-solusi dari sebuah populasi diambil dan digunakan untuk membentuk populasi yang baru. Hal ini dimotivasi dengan harapan bahwa populasi yang baru dibentuk tersebut akan lebih baik daripada yang lama. Solusi-solusi yang dipilih untuk membentuk solusisolusi yang baru dipilih sesuai dengan fitness mereka masing- masing (Juniawati, 2003).

Dalam buku dengan judul “Adaption in Natural and Artificial System” yang terbit pada tahun 1975, prinsip algoritma genetika diambil dari teori Darwin yaitu setiap makhluk hidup akan menurunkan satu atau beberapa karakter ke anak atau keturunannya (Bambrick, 1975). Di dalam proses tersebut dapat terjadi variasi yang disebabkan karena adanya mutasi, sehingga keturunan yang dihasilkan dapat


(21)

mempunyai kelebihan bahkan tidak memiliki kekurangan dari orangtuanya.

Setiap makhluk hidup akan mengalami seleksi alam, sehingga makhluk hidup yang mempunyai kemampuan untuk beradaptasi dengan lingkungan sekitarnya dapat bertahan sampai generasi selanjutnya. Semakin bagus atau sesuai fitness dari sebuah solusi maka solusi tersebut mempunyai peluang besar untuk dipilih. Proses ini dilakukan berulang sampai kondisi tertentu dipenuhi.

2.3.2Beberapa Definisi Penting Dalam Algoritma Genetika

Beberapa definisi penting dalam algoritma genetika antara lain :

a) Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang

membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam algoritma genetika, gen ini bisa berupa nilai biner, float, integer maupun karakter.

b) Allele, merupakan nilai dari gen.

c) Kromosom, gabungan gen- gen yang membentuk nilai tertentu.

d) Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat.

e) Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi.

f) Generasi, menyatakan satu-satuan siklus proses evolusi.

g) NilaiFitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.

2.3.3Dasar Algoritma Genetika

Algoritma genetika pertama kali dikemukakan oleh John Holland awal tahun 1975. John Holland mengemukakan bahwa algoritma genetika merupakan program komputer yang meniru proses evolusi alam. Kerangka dasar dari algoritma genetika sering disebut Simple Genetic Algorithm oleh John Holland dinyatakan sebagai berikut (Bambrick, 1975) :


(22)

2. [Fitness], Evaluasi nilai fitness f(x) dari setiap individu x didalam populasi. 3. [New Population], Bentuk populasi baru dengan melakukan pengulangan

langkah-langkah dibawah ini sehingga didapatkan populasi baru.

a. [Selection], Pilih 2 individu sebagai orangtua dari sebuah populasi sesuai dengan fitness mereka (Semakin baik fitness, maka semakin besar peluang mereka untuk dipilih).

b. [Crossover], Lakukan persilangan antara kedua orangtua sesuai dengan probabilitas crossover untuk membentuk keturunan yang baru. Jika tidak terjadi persilangan maka keturunan yang dihasilkan akan sama persis dengan orangtuanya.

c. [Mutation], Mutasi setiap keturunan yang baru sesuai dengan probabilitas mutasi di setiap gen.

d. [Accepting], Tempatkan keturunan yang baru sebagai populasi yang baru.

4. [Replace], Gunakan populasi yang baru dibentuk untuk menjalankan algoritma.

5. [Test], Jika kondisi akhir dipenuhi maka berhenti dan tampilkan solusi dari populasi.

6. [Loop], Kembali ke nomor 2.

2.4 Penerapan Algoritma Matematika

2.4.1Membangun Generasi Awal

Langkah pertama dalam algoritma ini adalah membentuk sejumlah populasi awal yang digunakan untuk mencari penyelesaian optimal. Populasi awal yang dibangun dalam tugas akhir ini dengan menggunakan bilangan random (acak) dengan range bilangan yang telah ditentukan.

2.4.2Representasi Kromosom


(23)

tetapi beroperasi dengan dengan penyelesaian yang te lah direpresentasikan. Representasi kromosom merupakan proses pengkodean dari penyelesaian asli dari suatu permasalahan. Pengkodean kandidat penyelesaian ini disebut dengan kromosom. Pengkodean tersebut meliputi penyandian gen, dengan satu gen mewakili satu variabel.

2.4.3Fungsi Fitness

Fungsi fitness digunakan untuk proses evaluasi kromosom agar memperoleh kromosom yang diinginkan. Fungsi ini membedakan kualitas dari kromosom untuk mengetahui seberapa baik kromosom yang dihasilkan. Semakin tinggi nilai fitness akan semakin besar kemungkinan kromosom tersebut terpilih ke generasi berikutnya. Jadi nilai penalty berbanding terbalik dengan nilai fitness, semakin kecil nilai penalty (jumlah pelanggaran) semakin besar nilai fitnessnya.

2.4.4Seleksi

Setiap kromosom yang terdapat dalam populasi akan melalui proses seleksi untuk dipilih menjadi orangtua. Sesuai dengan teori Evolusi Darwin maka kromosom yang baik akan bertahan dan menghasilkan keturunan yang baru untuk generasi selanjutnya.

Ada beberapa metode seleksi (Munir, 2005), yaitu

a. Steady-State Selection, Pemikiran utama dari metode seleksi ini adalah sebagian kromosom dari generasi lama tetap bertahan atau berada di generasi selanjutnya. Algoritma genetika menerapkan pemikiran tersebut dengan cara, didalam setiap generasi sejumlah kromosom yang mempunyai nilai fitness tinggi dipilih untuk diproses untuk menghasilkan keturunan yang baru sedangkan kromosom dengan nilai fitness rendah dibuang.

b. Elitism, Pembentukan populasi baru dengan crossover dan mutasi ada kemungkinan kromosom yang paling baik hilang. Oleh karena itu metode ini sebagai tahap awal memasukkan kromosom dengan nilai fitness yang paling baik atau beberapa kromosom dengan nilai fitnes yang tinggi atau cukup


(24)

tinggi dari generasi yang lama kedalam generasi yang baru. Kemudian sisa kromosom dalam generasi yang baru diperoleh dengan cara reproduksi biasa. c. Roulette Wheel Selection, Kromosom dipilih berdasarkan nilai fitness,

semakin besar nilai fitness maka kromosom tersebut mempunyai peluang untuk dipilih beberapa kali.

2.4.5Ope rator Genetika

Operator genetika dipergunakan untuk mengkombinasi (modifikasi) individu dalam aliran populasi guna mencetak individu pada generasi berikutnya. Ada dua operator genetika yaitu crossover dan mutation (Suyanto, 2005).

1. Persilangan (Crossover )

Operator persilangan merupakan operasi yang bekerja untuk menggabungan dua kromosom orangtua (parent) menjadi kromosom baru (offspring). Tidak semua kromosom mengalami persilangan. Jumlah kromosom dalam populasi yang mengalami persilangan ditentukan oleh paramater yang disebut dengan crossover rate (probabilitas persilangan) . Jenis operator persilangan yaitu: a. One point crossover

Sebuah titik crossover dipilih, selanjutnya string biner mulai dari awal kromosom sampai dengan titik tersebut disalin dari salah satu orangtua ke keturunannya, kemudian sisa bit keturunan disalin dari orangtua yang kedua.

b. Two point crossover

Dua titik crossover dipilih, selanjutnya string biner mulai dari awal kromosom sampai dengan titik crossover pertama disalin dari salah satu orangtua ke keturunannya kemudian mulai dari titik crossover pertama sampai dengan titik kedua disalin dari orangtua kedua. Sisanya disalin dari orangtua pertama.

2. Mutasi

Setelah crossover dilakukan, proses reproduksi dilanjutkan dengan mutasi. Hal ini dilakukan untuk menghindari solusi-solusi dalam populasi mempunyai nilai lokal optimum. Mutasi adalah proses mengubah gen dari


(25)

keturunan secara random.

Tidak setiap gen selalu dimutasi tetapi mutasi dikontrol dengan probabilitas tertentu yang disebut dengan mutation rate (probabilitas mutasi) dengan notasi Pm. Jenis operator mutasi antara lain:

a. Mutasi Terarah

Mutasi terarah tergantung dari informasi gen. Informasi gen tersebut berupa nilai pelanggaran gen (violation score). Ini berarti bahwa setiap gen mempunyai peluang yang berbeda untuk terjadi mutasi. Gen yang mempunyai nilai pelanggaran yang leb ih besar maka gen tersebut mempunyai peluang untuk terjadi mutasi. Mutasi ini menghubungkan nilai pelanggaran relatif (nilai pelanggaran suatu gen dibagi dengan nilai pelanggaran total suatu kromosom) dengan probabilitas terjadinya mutasi dari suatu gen pada kromosom. Hubungan tersebut dinyatakan secara matematis sebagai berikut:

nri = n(i)1+ntotal pmi = (1+nr(i))2pm

Keterangan persamaan:

nr(i) = nilai pelanggaran relative gen ke- i. ntotal = nilai pelanggaran total kromosom. pm(i) = probabilitas mutasi gen ke-i. pm = probabilitas mutasi

2.4.6Parameter Genetika

Pengoperasian algoritma genetika dibutuhkan 4 parameter (Suyanto, 2005) yaitu:

1. Probabilitas Persilangan (Probability Crossover)

Menunjukkan kemungkinan crossover terjadi antara 2 kromosom. Jika tidak terjadi crossover maka keturunannya akan sama persis dengan kromosom orangtua, tetapi tidak berarti generasi yang baru akan sama persis dengan


(26)

generasi yang lama. Jika probabilitas crossover 100% maka semua keturunannya dihasilkan dari crossover. Crossover dilakukan dengan harapan bahwa kromosom yang baru akan lebih baik.

2. Probabilitas Mutasi (Probability Mutation)

Menunjukkan kemungkinan mutasi terjadi pada gen-gen yang menyusun sebuah kromosom. Jika tidak terjadi mutasi maka keturunan yang dihasilka n setelah crossover tidak berubah. Jika terjadi mutasi bagian kromosom akan berubah. Jika probabilitasnya 100 %, semua kromosom dimutasi. Jika probabilitasnya 0%, tidak ada yang mengalami mutasi.

3. Jumlah Individu

Menunjukkan jumlah kromosom yang terdapat dalam populasi (dalam satu generasi). Jika hanya sedikit kromosom dalam populasi maka algoritma genetika akan mempunyai sedikit variasi kemungkinan untuk melakukan crossover antara orangtua karena hanya sebagian kecil dari search space yang dipakai. Sebaliknya jika terlalu banyak maka algoritma genetika akan berjalan lambat.

4. Jumlah Populasi

Menentukan jumlah populasi atau banyaknya generasi yang dihasilkan, digunakan sebagai batas akhir proses seleksi, persilangan, dan mutasi.


(27)

BAB 3

ANALISA DAN PERANCANGAN SISTEM

3.1 Penjadwalan Job Shop

Penjadwalan Job Shop merupakan suatu permasalahan untuk menentukan urutan operasi yang dilakukan dalam mesin yang ada dengan tujuan meminimumkan waktu proses total yang dibutuhkan. Diberikan sejumlah m mesin berbeda dan n job

(pekerjaan) berbeda untuk dijadwalkan. Setiap pekerjaan terdiri dari sejumlah operasi yang harus dilakukan di suatu mesin tertentu selama durasi waktu tertentu.

Ketika suatu operasi akan diproses di suatu mesin, ada kemungkinan operasi tersebut mengantri terlebih dahulu karena mesin tersebut sedang dipakai oleh operasi lain. Ada beberapa ketentuan pada mesin dan pekerjaan, di antaranya :

1. Suatu pekerjaan diproses hanya sekali dalam suatu mesin. 2. Suatu operasi tidak dapat diinterupsi.

3. Operasi dalam suatu pekerjaan harus diproses secara berurutan yaitu setelah operasi sebelumnya selesai dilakukan.

4. Setiap mesin hanya dapat memproses satu pekerjaan pada suatu waktu.

Definisi formal untuk job shop adalah sebagai berikut : 1. Himpunan pekerjaan J = {j1, j2,… jn}

2. Himpunan mesin M = {m1,m2,… mn}

3. Himpunan operasi per job i Oi = {Oi1, Oi 2,… Oi n}

4. Tiap operasi memiliki waktu pemrosesan T = { τ 1,τ 2,…τ n}

Masalah penjadwalan job shop merupakan masalah penjadwalan yang memiliki karakteristik sebagai berikut :

1. Penjadwalan job shop memiliki sejumlah job yang harus diselesaikan, direpresentasikan sebagai J = {J1,J2,...,Jn}.

2. Penjadwalan job shop memiliki sejumlah resource yang digunakan untuk menyelesaikan setiap operasi, direpresentasikan sebagai R= {R1,R2,...,Rm}.


(28)

Pada beberapa referensi, resource biasa disebut machine dilambangkan dengan M.

3. Setiap job memiliki sejumlah operasi yang harus d iselesaikan pada tenggat waktu mulai dari ready time(rt) sampai due time(dt). Suatu job Ji memiliki

sejumlah operasi yang direpresentasikan dengan Oi = {Oi1,Oi2,...Oin}. 4. Setiap operasi memiliki waktu proses yang berbeda-beda. Himpunan operasi

Oi memiliki sejumlah waktu proses yang direpresentasikan dengan

{τi1,τi2,...τi

n}.

5. Setiap operasi pada satu job memiliki precedence. Pada suatu job Ji , Oi1

harus dikerjakan lebih dulu daripada Oi2 ,direpresentasikan dengan (Oi1, Oi2) € Oi .

Konsep penjadwalan job shop adalah menentukan waktu suatu operasi mulai dikerjakan dan mengalokasikan resource untuk mengerjakan operasi tersebut. Pada saat menjadwalkan suatu operasi selain menentukan kapan operasi tersebut mulai dikerjakan juga ditentukan resource mana yang dipakai oleh operasi tersebut. Oleh karena itu,pada saat menjadwalkan suatu operasi perlu diperhatikan dua constraint

berikut :

1. Precedence constraint; penjadwalan untuk setiap operasi dari job yang sama harus berurutan sesuai dengan precedence constra int job tersebut. Sebagai contoh, masalah job shop yang ditunjukkan oleh gambar II-4 memiliki beberapa precedence constraint. Salah satunya adalah pada operasi O11, O12,

O13, dan O15 yang berada pada job yang sama yaitu J1. Oleh karena itu,

operasi O15 harus dijadwalkan setelah operasi O11, O12, dan O13 selesai

diproses. Namun, operasi O15 dan O22 berada pada job yang berbeda, maka

urutan penjadwalan kedua operasi ini tidak menjadi masalah.

2. Resource constraint , merupakan penjadwalan setiap operasi membutuhkan sebuah resource untuk mengerjakan operasi tersebut. Pada saat operasi ini mulai diproses resour ce tersebut harus sedang tidak dipakai operasi lain. Resource ini juga menjadi tidak dapat dipakai oleh operasi lain sampai operasi tersebut selesai.


(29)

Jika penjadwalan suatu operasi melanggar salah satu constraint, maka penjadwalan operasi tersebut harus dialihkan waktunya, dimana pengalihan waktu ini bisa membuat proses penyelesaian job dapat berlangsung lebih lama dan bahkan membuat seluruh proses mengalami keterla mbatan.

Suatu operasi yang akan dijadwalkan pada suatu waktu, penjadwalan tersebut harus memenuhi kedua constraint yang telah disebutkan diatas. Jika penjadwalan tersebut melanggar salah satu constra int, maka operasi tersebut harus dijadwalkan pada waktu yang lain. Ketika penjadwalan melanggar salah satu constraint, hal ini dikatakan penjadwalan tersebut mengalami konflik. Oleh karena itu, operasi itu akan dijadwalkan pada waktu yang lain. Jika penjadwalan pada waktu tersebut tetap menghasilkan konflik, maka harus dipilih kembali satu waktu lain yang tidak menimbulkan konflik, begitu seterusnya. Proses penjadwalan yang berulang-ulang dan terus menemui konflik ini membuat efisiensi dari algoritma penjadwalan itu semakin buruk.

Adapun dua sasaran utama pada algoritma penjadwalan job shop adalah:

1. Feasibility; menemukan solusi yang memenuhi setiap constraint. Jika sudah ditemukan solusi, dapat dilakukan optimisasi berdasarkan kriteria tertentu. 2. Efficiency; meminimalisasi jumlah terjadinya konflik pada setiap

penjadwalan operasi. Untuk dapat mencegah terjadinya konflik dalam proses penjadwalan operasi dapat diantisipasi dengan mendeteksi kapan resource untuk mengerjakan operasi tersebut sedang tidak dipakai.

3.2 Penerapan Algoritma Genetik Pada Optimasi Penja dwalan

Algoritma genetika adalah algoritma heuristik adaptif yang memiliki dasar pemikiran atau gagasan evolusioner untuk proses seleksi alami dan genetika. Konsep dasar dari algoritma genetika dirancang untuk menirukan proses di dalam sistem alami


(30)

yang penting bagi evolusi makhluk hidup untuk dapat terus bertahan hidup, yang

secara rinci teori ini dicetuskan oleh Charles Darwin yaitu “Survival of the Fittest”.

Dengan menirukan teori dari Charles Darwin, algoritma genetika dapat digunakan untuk mencari solusi dari segala macam permasalahan dalam ilmu pengetahuan seperti dalam mencari solusi penjadwalan job shop.

Berdasarkan waktu kedatangan job, penjadwalan job shop dapat dikelompokkan sebagai static job shop scheduling dan dynamic job shop scheduling. Pada static job shop scheduling, semua job diterima pada saat yang sama. Pada dynamic job shop scheduling, waktu kedatangan job bervariasi tetapi sudah diketahui sebelumnya (deterministic) atau waktu kedatangan job bervariasi dan tidak dapat diketahui sebelumnya (non deterministic) (Thiang, 2001).

Pada umumnya suatu penerapan algoritma genetika secara generasional sederhana terdiri dari 3 bagian, yaitu:

1. Memilih populasi awal (inisial populasi).

2. Evaluasi nilai fitness dari setiap individu didalam populasi. 3. Ulangi sampai proses berhenti (nilai fitness terbaik terpenuhi).

a. Pilih individu terbaik berdasar ranking untuk reproduksi.

b. Bentuk generasi baru melalui pindah silang dan mutasi untuk menghasilkan keturunan baru.

c. Evaluasi nilai fitness keturunan yang dihasilkan.

d. Setelah diatur terlebih dahulu, gantikan individu dengan nilai fitness terburuk dengan keturunan yang dihasilkan.

Maka proses Algoritma genetika yang dilakukan dapat dijelaskan pada gambar flow chart di bawah ini :


(31)

Populasi Awal

Evaluasi

Mutasi Pindah Silang

Seleksi

Individu Terbaik Fitnes Terbaik ?

yes

no

Gambar 3.1 Flowchart Algoritma Genetika

3.3 Pemodelan

Dalam pemodelan algoritma genetika pada kasus penjadwalan job shop

mempunyai beberapa karakteristik khusus dan harus sesuai dengan beberapa batasan yang ditetapkan sebelumnya.

Ada empat hal dasar yang perlu diperhatikan, antara lain : 1. Pemilihan representasi masalah ke bentuk string 2. Operator genetik


(32)

4. Parameter genetik.

Pada penjadwalan job shop akan dipergunakan permutation encoding. Satu karakter mewakili suatu operasi, nilai karakter (a llele) mewakili nomor job dan nomor unit operasi pada job tersebut. Allele akan dipetakan oleh fungsi yang memasangkan nomor job dan nomor unit operasi menjatli nomor mesin dan lama proses. Jika ada n job dan tiap job maksimal terdiri dari m operasi, panjang string maksimal x karakter. Sebagai contoh, dimaksimalkan ada 3 job yang di proses pada 5 buah mesin dengan urutan dan waktu operasi seperti table 3.1. m adalah nomor mesin pada operasi ke I dan p lamanya penggunaan mesin untuk operasi ke i.

M1, P1 M2, P2 M3, P3 M4, P4 M5, P5

Job 1 3,4 1,3 2,6 4,4 5,3

Job 2 1,7 3,5 2,5 5,5 4,6

Job 3 3,6 2,4 1,5 5,5 4,6

Tabel 3.1 Contoh Job Shop

Pada table 3.1, job 1 diproses secara berurutan pada mesin 3,1,2,4 dan 5 dengan lama pengerjaan ditiap mesin 4,3,6,4 dan 3 satuan waktu yang terdiri dari 9 karakter.

Tabel 3.2 Contoh Reprensentasi String untuk table 3.1

Pada gambar 3.2, Allele 3-1 berarti Job ke 3 operasi ke 1, bila dipetakan ke table terlihat dikerjakan dimesin 3 selama 6 satuan waktu. Allele 1-1 berarti job ke 1 operasi ke 1 dimesin 3 selama 4 satuan waktu, dst. Bila sebuah job tidak diproses di semua mesin, operasi akhir job tersebut akan otomatis dikosongkan.


(33)

Pemodelan penjadwalan yang dimaksud adalah proses penyusunan jadwal dari string. Permutasi operasi-operasi yang dipresentasikan oleh string akan di decode untuk menghasilakn jadwal yang ada.

2. Pemodelan penjadwalan Job Shop dengan algoritma genetik

Adapun langkah penjadwalan job shop dengan algoritma genetika adalah sebagai berikut :

a. Menetapkan peluang crossover dan mutasi.

b. Bentuk populasi awal secara acak.

c. Bentuk populasi akhir dengan nilai string terbaik. d. Tampilkan jadwal akhir dari nilai string terbaik.

e. Bila ada tambahan job baru, bentuk string baru dari sisa operasi yang belum dikerjakan pada jadwal lama, dan dari operasi-operasi dari job yang baru.

f. Ulangi langkah b sampai c.

g. Tampilkan jadwal akhir dari nilai string terbaik.

3.4 Perancangan Interface Sistem

Interface yang baik dari suatu aplikasi harus mudah dipahami, sehingga user tidak mengalami kesulitan dalam menggunakan aplikasi tersebut. Perancangan interface system ini terdiri dari :

1. Form Utama 2. Form Job

3. Form Proses Job


(34)

Form utama merupakan form yang pertama kali ditampilkan form ini ber isi menu untuk mengakses form lain. Berikut rancangan form utama :

Job Scheduling Dengan Algoritma Genetika

Buat Job Baru Buka Job

Proses Job Keluar

Gambar 3.2 Rancangan Form Utama

2. Form Job

Form Job digunakan untuk mendefenisikan data-data job. Berikut Rancangan Form Job :

Form Job

Daftar Job

Tambah Edit Hapus Simpan

Gambar 3.3 Rancangan Form Job 3. Form Proses Job


(35)

Form proses job digunakan untuk melakukan proses penjadwalan job shoping dengan algoritma genetika. Berikut Rancangan Form proses job :

Form Proses Job

Hasil Proses

Buka Job Proses Kelular


(36)

BAB 4

ALGORITMA DAN IMPLEMENTASI

4.1 Algoritma Entry Job Cetak Menu Utama

Panggil prosedur Open_Connetion IF Open_Connetion = False THEN

Tampilakn Pesan “ Koneksi gagal “

ENDIF

4.2 Algoritma Form Proses Job ' STEP 1 : Inisialisasi Populasi

Panggil GenAlg.CREATEPOPULATION(GenAlg.PopulationSize) lngGeneration = 1

blnDoLoop = True Do

' STEP 2 : Evaluasi

Panggil GenAlg.EVALUATE DoEvents

„STEP 3 : Seleksi

Panggil GenAlg.SELECTION

„STEP 4 : Reproduksi

Panggil GenAlg.REPRODUCTION lngGeneration = lngGeneration + 1

Loop Until lngGeneration > LngNull(txtGenerations.Text) = False


(37)

Panggil Clear chromosome array

For lngX = 0 To (lngPopulationTotal - 1) Panggil AddChromosome(lngX)

Next lngX

Panggil ClearCounters

' set the actual mutationrate to the fixed mutationrate mActualMutationRate = mMutationRate

' set generation to 1 mGeneration = 1

' social disaster generation counter mSocDisGenCounter = 0

4.4 Algoritma Evaluasi lngStart = 0

lngEnd = (PopulationCount - 1) For lngIndex = lngStart To lngEnd

IF Chromosome(lngIndex).RecalculateFitness = True Then dblFitnessValue = Chromosome(lngIndex).Fitness

RaiseEvent EvaluateFitness(lngIndex, dblFitnessValue) Chromosome(lngIndex).Fitness = dblFitnessValue Chromosome(lngIndex).RecalculateFitness = False END IF

Next lngIndex

mblnSorted = False

mblnAllFitnessCalculated = True

dblStdDev = CalculateStandardDeviation ' Hitung Statistik

IF mblnKeepStatistics = True Then

IF blnPanggilFromEvaluate = False Then ReDim Preserve mStatistics(Generation)


(38)

mStatistics(Generation).LowestFitness = FitnessLowest mStatistics(Generation).StandardDeviation = dblStdDev mStatistics(Generation).SocialDisasterOccured = Fals e

mStatistics(Generation).SocialDisasterGenCounter = mSocDisGenCounter

mStatistics(Generation).BestChromosome = ShowChromosomestring(0, "TRUE")

END IF END IF

IF mMutationMethod = GAMutationRateAdaptive Then IF mAMRFitnessStdDev = dblStdDev Then

mAMRCounter = mAMRCounter + 1 mAMRCounterDIFf = 0

Else

mAMRFitnessStdDev = dblStdDev

mAMRCounterDIFf = mAMRCounterDIFf + 1 mAMRCounter = 0

END IF

IF mAMRCounter >= mAMRGenerations Then

mActualMutationRate = mActualMutationRate + 0.01 IF mActualMutationRate > 1 Then

mActualMutationRate = 1 END IF

mAMRCounter = 0 END IF

IF mAMRCounterDIFf >= mAMRGenerations Then mActualMutationRate = mActualMutationRate - 0.01 IF mActualMutationRate < mMutationRate Then mActualMutationRate = mMutationRate END IF

mAMRCounterDIFf = 0 END IF


(39)

IF mSocDisGenCounter >= mSocDisGenerations Then IF blnPanggilFromEvaluate = False Then

Panggil SocialDisaster

blnPanggilFromEvaluate = True Panggil EVALUATE

blnPanggilFromEvaluate = False

4.5 Algoritma Seleksi

Metode seleksi yang digunakan pada penelitian ini adalah metode rank, berikut algoritma seleksi rank

Do

For intX = 1 To 2

lngHulp = Int((Rnd * (PopulationCount))) If lngHulp > (PopulationCount - 1) Then lngHulp = PopulationCount - 1

End If

If intX = 1 Then

lngChromo1 = lngHulp Else

lngChromo2 = lngHulp End If

Next intX

Loop Until lngChromo1 <> lngChromo2 Return

4.6 Algoritma Reproduksi

Select Case mChromosomeType Case GAEncodingLongNbr

intX = CalculateActualLongGeneMaxLength(mlngSelectedIndex1) intY = CalculateActualLongGeneMaxLength(mlngSelectedIndex2) If intX > intY Then


(40)

mintLongActualLength = intX Else

mintLongActualLength = intY End If

Case GAEncodingDouble

intX = CalculateActualDoubleGeneMaxLength(mlngSelectedIndex1) intY = CalculateActualDoubleGeneMaxLength(mlngSelectedIndex2) If intX > intY Then

mintDoubleActualLength = intX Else

mintDoubleActualLength = intY End If

Case Else

mintLongActualLength = cLongMaxLength mintDoubleActualLength = cDoubleMaxLength End Select

lngChromoToReplace1 = LngNull(Int(Rnd * PopulationCount)) lngChromoToReplace2 = LngNull(Int(Rnd * PopulationCount)) For intX = 0 To intNodeMapUbound

For intY = 0 To Nodemap(intX).UboundEdges For intZ = 0 To intNodeMapUbound

If Nodemap(intX).Edges(intY).edge = Nodemap(intZ).HeaderElement Then

Nodemap(intX).Edges(intY).edgeHeaderIndex = intZ Exit For

End If Next intZ Next intY Next intX


(41)

Implementasi adalah tahap menerapkan algoritma dan perancangan ke dalam bentuk bahasa pemograman. Berikut gambar implementasi aplikasi job shop dengan metode algoritma genetik :

Gambar 4.1 Tampilan Hasil Implementasi Job Shop


(42)

(43)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan uraian dari bab sebelumnya maka penulis membuat suatu kesimpulan yaitu sebagai berikut :

1. Algoritma genetika dapat menyelesaikan penjadwalan job shopsecara efektif dan efisien karna dapat digunakan pada persoalan penjadwalan job shop yang produknya multi produk.

2. Penggunaan algoritma genetika dalam penjadwalan job shop dapat meningkatkan hasil produksi dengan meminimalkan waktu pengerjaan dan biaya produksi yang rendah.

5.2 Saran

Adapun saran yang dari penelitian ini adalah sebagai berikut :

1. Sebaiknya spesifikasi komputer yang digunakan untuk pembuatan aplikasi berbasis algoritma genetika sebaiknya mempunyai memori dan kecepatan prosesor yang tinggi agar mempercepat waktu proses pengerjaan.

2. Penelitian bisa dijadikan sebagai bahan referensi dalam bidang penelitian yang sama.


(44)

DAFTAR PUSTAKA

Baase, 1988 Computer Algorithms Introduction to Design and Ana lysis.

Bambrick, 1975. Adaption in Natural and Artificia l System.

Juniawati, 2003. Model Optimisasi Untuk Integrasi Alokasi Produksi . Penerbit Imformatika.

Knuth, D. E. (1973). The Art of Computer Programming, Volume Fundamental Algorithms.

Munir, Rinaldi. 2002. Algoritma dan Pemrograman. Penerbit Imformatika.

Munir, Rinaldi. 2005. Strategi Algor itmik, Lab Ilmu dan Rekayasa Komputansi, Departemen Teknik Informatika ITB.

Thiang, Ronald Kurniawan, Hany Ferdinando, 2001. Implementasi Algor itma

Genetika pada Mikrokontroler MCS51 Untuk Mencari Rute Terpendek.

Suyanto, 2005. Algoritma Genetika Dalam Matlab. Yogyakarta : Penerbit Andi.

Suyanto, 2007. Artificial Intellegence. Bandung : Penerbit Informatika.

Thiang, Ronald Kurniawan, Hany Ferdinando, 2001. Implementasi Algor itma

Genetika pada Mikrokontroler MCS51 Untuk Mencari Rute Terpendek.

http://www.deneprairie.com. Tanggal Akses 23 September. http://wikipedia.org/. Tanggal Akses 1 Desember.


(1)

IF mSocDisGenCounter >= mSocDisGenerations Then IF blnPanggilFromEvaluate = False Then

Panggil SocialDisaster

blnPanggilFromEvaluate = True Panggil EVALUATE

blnPanggilFromEvaluate = False

4.5 Algoritma Seleksi

Metode seleksi yang digunakan pada penelitian ini adalah metode rank, berikut algoritma seleksi rank

Do

For intX = 1 To 2

lngHulp = Int((Rnd * (PopulationCount))) If lngHulp > (PopulationCount - 1) Then lngHulp = PopulationCount - 1

End If

If intX = 1 Then

lngChromo1 = lngHulp Else

lngChromo2 = lngHulp End If

Next intX

Loop Until lngChromo1 <> lngChromo2 Return

4.6 Algoritma Reproduksi

Select Case mChromosomeType Case GAEncodingLongNbr

intX = CalculateActualLongGeneMaxLength(mlngSelectedIndex1) intY = CalculateActualLongGeneMaxLength(mlngSelectedIndex2) If intX > intY Then


(2)

Else

mintLongActualLength = intY End If

Case GAEncodingDouble

intX = CalculateActualDoubleGeneMaxLength(mlngSelectedIndex1) intY = CalculateActualDoubleGeneMaxLength(mlngSelectedIndex2) If intX > intY Then

mintDoubleActualLength = intX Else

mintDoubleActualLength = intY End If

Case Else

mintLongActualLength = cLongMaxLength mintDoubleActualLength = cDoubleMaxLength End Select

lngChromoToReplace1 = LngNull(Int(Rnd * PopulationCount)) lngChromoToReplace2 = LngNull(Int(Rnd * PopulationCount)) For intX = 0 To intNodeMapUbound

For intY = 0 To Nodemap(intX).UboundEdges For intZ = 0 To intNodeMapUbound

If Nodemap(intX).Edges(intY).edge = Nodemap(intZ).HeaderElement Then

Nodemap(intX).Edges(intY).edgeHeaderIndex = intZ Exit For End If Next intZ Next intY Next intX 4.7 Implementasi


(3)

Implementasi adalah tahap menerapkan algoritma dan perancangan ke dalam bentuk bahasa pemograman. Berikut gambar implementasi aplikasi job shop dengan metode algoritma genetik :

Gambar 4.1 Tampilan Hasil Implementasi Job Shop


(4)

(5)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan uraian dari bab sebelumnya maka penulis membuat suatu kesimpulan yaitu sebagai berikut :

1. Algoritma genetika dapat menyelesaikan penjadwalan job shop secara efektif dan efisien karna dapat digunakan pada persoalan penjadwalan job shop yang produknya multi produk.

2. Penggunaan algoritma genetika dalam penjadwalan job shop dapat meningkatkan hasil produksi dengan meminimalkan waktu pengerjaan dan biaya produksi yang rendah.

5.2 Saran

Adapun saran yang dari penelitian ini adalah sebagai berikut :

1. Sebaiknya spesifikasi komputer yang digunakan untuk pembuatan aplikasi berbasis algoritma genetika sebaiknya mempunyai memori dan kecepatan prosesor yang tinggi agar mempercepat waktu proses pengerjaan.

2. Penelitian bisa dijadikan sebagai bahan referensi dalam bidang penelitian yang sama.


(6)

Baase, 1988 Computer Algorithms Introduction to Design and Ana lysis.

Bambrick, 1975. Adaption in Natural and Artificia l System.

Juniawati, 2003. Model Optimisasi Untuk Integrasi Alokasi Produksi . Penerbit Imformatika.

Knuth, D. E. (1973). The Art of Computer Programming, Volume Fundamental Algorithms.

Munir, Rinaldi. 2002. Algoritma dan Pemrograman. Penerbit Imformatika.

Munir, Rinaldi. 2005. Strategi Algor itmik, Lab Ilmu dan Rekayasa Komputansi, Departemen Teknik Informatika ITB.

Thiang, Ronald Kurniawan, Hany Ferdinando, 2001. Implementasi Algor itma Genetika pada Mikrokontroler MCS51 Untuk Mencari Rute Terpendek.

Suyanto, 2005. Algoritma Genetika Dalam Matlab. Yogyakarta : Penerbit Andi.

Suyanto, 2007. Artificial Intellegence. Bandung : Penerbit Informatika.

Thiang, Ronald Kurniawan, Hany Ferdinando, 2001. Implementasi Algor itma Genetika pada Mikrokontroler MCS51 Untuk Mencari Rute Terpendek.

http://www.deneprairie.com. Tanggal Akses 23 September. http://wikipedia.org/. Tanggal Akses 1 Desember.