OPTIMASI JADWAL MENGAJAR ASISTEN LABORATORIUM MENGGUNAKAN ALGORITMA GENETIKA Indana Zulfa1, Wayan Firdaus Mahmudy2, Budi Darma Setiawan3 Teknik Informatika, Program Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya Jl. Veteran, Malang 65145 E-mail:
[email protected],
[email protected],
[email protected] ABSTRAK Penjadwalan merupakan hal yang penting dilakukan agar suatu kegiatan dapat berlangsung dengan baik. Permasalahan tersebut terjadi pada penjadwalan mengajar asisten pada laboratorium Komputer Dasar PTIIK Universitas Brawijaya. Proses penyusunan jadwal dilakukan dengan beberapa pertimbangan diantaranya jumlah asisten, kelas praktikum yang telah ditentukan serta kesediaan mengajar dari asisten laboratorium. Penentuan jadwal mengajar asisten secara manual banyak menemukan permasalahan, diantaranya bentroknya jadwal yang dihasilkan dengan kegiatan asisten dan proses penyusunan jadwal yang membutuhkan waktu lama. Konsep algoritma genetika dapat diterapkan dalam permasalahan penjadwalan mengajar asisten laboratorium. Dengan penerapan algoritma genetika, akan dilakukan pencarian solusi terbaik dengan menggunakan operator genetika (crossover, mutasi dan seleksi). Solusi terbaik yang dihasilkan dapat diukur dari nilai fitnessnya. Pada kasus penjadwalan mengajar asisten laboratorium ini, terdapat 52 asisten yang harus mengajar pada 26 kelas praktikum. Masing-masing asisten memiliki kode asisten. Dari data tersebut akan dibuat kromosom berdasarkan pada kode asisten. Selanjutnya akan dibentuk kumpulan dari kromosom dengan jumlah yang bervariasi yang dikenal dengan istilah populasi. Pada penelitian ini, ukuran populasi optimal dari hasil pengujian adalah 70. Dengan generasi optimal sebanyak 140 generasi. Nilai kombinasi crossover rate dan mutation rate yang dihasilkan dari solusi dengan rata-rata fitness terbaik didapatkan dengan crossover rate 0.2 dan mutation rate 0.8. Hasil akhir yaitu didapatkan jadwal dari kromosom terbaik dengan dengan waktu yang optimal dan fitness tertinggi. Kata Kunci : Algoritma genetika, penjadwalan asisten, optimasi. ABSTRACT Scheduling is a important things undertaken that an activity be run well. These problem occur in scheduling assistant teaching in the basic computer laboratory PTIIK Brawijaya University. Scheduling process undertaken with some consideration including amount of assistant, practicum classes that been determined and willingness to teach from laboratory assistant. Determining scheduling assistant teaching manually discover many problems, including collisions the resulting schedule with activities assistant and the assistant scheduling process takes a long time. The concept of genetic algorithms can be applied in making scheduling teaching assistant laboratory. With implementation of genetic algoritm, will be finding the best solution by using genetic operators (crossover, mutation and selection). The best solution result can be measured by the value of fitness. In the case scheduling teaching assistant laboratory, there are 52 assistants who must teach 26 class practicum. Each of assistant has a codeassistant. From these data, will be made chromosome based of code assistant. Next will be a pool of chromosomes which is varying amounts known as the population. In this research, the optimal population size from the test result is 70. With optimal generation as much as 140 generations. The result of value combination between crossover rate and mutation rate from solution with the average of best fitness obtained by crossover rate 0.2 and mutation rate 0.8. The final result is obtained schedule from the best chromosome with optimal timing and highest fitness. Keywords: Genetic algorithms, scheduling assistant, optimization.
1 Zulfa, I, Mahmudy, WF & Setiawan, BD 2015, 'Optimasi jadwal mengajar asisten laboratorium menggunakan algoritma genetika', DORO: Repository Jurnal Mahasiswa PTIIK Universitas Brawijaya, vol. 5, no. 11.
1.
para tenaga pengajar (asisten laboratorium) yang harus ditempatkan terhadap setiap periode perencanaan waktu mengajar pada sebuah laboratorium. Kriteria penjadwalan mengajar asisten laboratorium didasarkan pada penggunaan sumber daya pengajar (asisten) dan pengalokasian waktu mengajar yang sesuai. Masalah penjadwalan merupakan masalah yang sulit jika dikerjakan secara manual. Karena pada penjadwalan harus mempertimbangkan tujuan yang banyak (multiple objectives). Dengan adanya aturan dan tujuan tertentu dalam setiap masalah penjadwalan, mengakibatkan penjadwalan sangat sulit untuk diselesaikan, walaupun dengan cara teknik matematika. Penjadwalan yang tepat akan dapat memenuhi tujuan dari penjadwalan itu secara optimal.
PENDAHULUAN
1.1
Latar Belakang Penjadwalan merupakan hal yang penting dilakukan agar suatu kegiatan dapat berlangsung dengan lancar. Permasalahan tersebut terjadi pada penjadwalan mengajar asisten laboratorium. Proses penyusunan jadwal dilakukan dengan beberapa pertimbangan diantaranya jumlah asisten, kelas praktikum yang telah ditentukan serta kesediaan mengajar dari asisten laboratorium. Penentuan jadwal yang dilakukan secara manual menimbulkan permasalahan yaitu bentroknya jadwal yang dihasilkan dengan kegiatan asisten dan waktu pembuatan jadwal yang lama. Metode algoritma genetika telah banyak diimplementasikan dalam penjadwalan, salah satunya yaitu penelitian yang dilakukan oleh Promcharoen, Pana dan Tanhan (2009) yang menyelesaikan kasus penjadwalan pengawas ujian pada salah satu universitas di Jepang. Penelitian tersebut menghasilkan jadwal yang hamper mendekati optimum untuk kasus dengan data 145 staff pengawas ujian, 14 hari ujian, 4 periode ujian per hari, 325 jumlah ruang dan 760 total pengawas yang dibutuhkan. Penelitian lainnya pada kasus penjadwalan menggunakan algoritma genetika yaitu penelitian yang dilakukan oleh Bangun, Oktaria dan Virgo (2012). Pada penelitian tersebut, algoritma juga berhasil diterapkan untuk penyusunan jadwal mata kuliah semester ganjil di jurusan Matematika FMIPA UNSRI dengan memenuhi kondisi dan syarat yang telah ditentukan. Karena algoritma genetika telah berhasil diterapkan pada berbagai masalah kompleks, maka pada skripsi ini algoritma genetika digunakan untuk penentuan jadwal mengajar asisten laboratorium. Pada skripsi ini akan dilakukan pengujian terhadap parameterparametar algoritma genetika pada kasus penjadwalan asisten. 2.
2.2
Algoritma Genetika Algoritma genetika adalah algoritma teknik dan proses yang terinspirasi dari evolusi biologi untuk memecahkan masalah optimasi yang kompleks (Peteghem, 2010). Dalam proses evolusi, individu secara terus – menerus mengalami perubahan agar dapat bertahan pada lingkungannya. Individu yang kuat dan mampu bertahan yang akan dapat terus hidup. Pada algoritma genetika, pencarian terhadap solusi dilakukan sekaligus yang disebut dengan populasi. Individu yang terdapat dalam populasi disebut dengan kromosom. Kromosom-kromosom inilah yang nantinya akan berevolusi, sehingga menghasilkan anak terbaik yang akan menjadi solusi terbaik dari sebuah permasalahan. Semua individu pada algoritma genetika memiliki nilai fitnessnya. Nilai fitness digunakan untuk mengukur seberapa baik individu (Mahmudy, 2013). Nilai fitness terbaik merupakan representasi dari individu terbaik yang akan menjadi solusi terbaik dari sebuah permasalahan. 2.2.1
Struktur Algoritma Genetika
2.2.1.1 Inisialisasi Inisialisasi merupakan proses pendefinisian individu yaitu proses paling awal yang harus dilakukan dalam penyelesaian masalah menggunakan algoritma genetika. Proses pembangkitan populasi awal yaitu dengan menciptakan populasi secara acak. Populasi tersebut berisi kumpulan individu (kromosom). Dalam kasus penjadwalan mengajar asisten ini, inisialisasi untuk pembangkitan populasi awal dilakukan dengan pengkodean permutasi berdasarkan pada kode asisten. Kode asisten pada kasus ini bersifat unik karena setiap asisten memiliki satu kode asisten. Contoh dari
TINJAUAN PUSTAKA
2.1
Penjadwalan Penjadwalan adalah pengalokasian sumber daya pada objek-objek yang ada pada ruang waktu dan tergantung pada kendalakendala yang sedemikian sehingga sedapat mungkin memenuhi sekumpulan sasaran yang diinginkan (Rifai, 2011). Penjadwalan suatu kegiatan meliputi dua unsur, yaitu tentang alokasi sarana kegiatan dan tentang yang diramalkan dalam waktu kegiatan tersebut (Rifai, 2011). Masalah penjadwalan mengajar asisten laboratorium adalah masalah dalam menentukan
2
representasi kromosom satu buah inidividu dapat dilihat pada Gambar 1. Gen keKromosom
1 4
2 3
3 5
4 6
5 8
6 9
7 7
8 2
penentuan nilai mutation rate(mr) yang akan menentukan rasio offspring yang dihasilkan dari proses mutasi. Anak (offspring) yang dihasilkan yaitu dengan mengalikan nilai mr dengan ukuran populasi (popsize). Pada penelitian ini, metode mutasi yang digunakan yaitu reciprocal exchange mutation. Proses mutasi diawali dengan memilih 1 buah individu parent secara random. Kemudian memilih dua titik pada individu parent tersebut. Nilai pada kedua titik gen terpilih tersebut kemudian saling ditukar. Contoh dari mutasi dengan metode reciprocal exchange mutation dapat dilihat pada Gambar 3.
9 1
Gambar 1 Contoh representasi kromosom Gambar 1 merupakan contoh representasi kromosom satu buah individu. Nomor gen tersebut mewakili jadwal, sedangkan isi dari gen mewakili kode asisten. 2.2.1.2 Reproduksi Reproduksi merupakan sebuah proses yang dilakukan untuk menghasilkan keturunan (offspring) yang berasal dari induk kromosom yang dipilih secara random. Terdapat dua operator genetika dalam reproduksi yaitu crossover dan mutasi.
Parent Child
3 9 3
5 6 5
6 2 6
8 1 9
9 4 2
7 5 4
2 8 8
5 5
6 6
8 3
9 9
7 7
2 2
1 1
Pada Gambar 2, dua gen yang terpilih yaitu gen ke-3 dan gen ke-5. Kemudian nilai gen ke-3 ditukarkan dengan nilai gen ke-5 untuk childnya.
Tukar Silang (Crossover) dengan Metode One-Cut Point Persilangan pada algoritma genetika melibatkan dua buah individu yang dipilih secara acak menjadi parent yang akan membentuk kromosom baru. Proses ini diawali dengan penentuan tingkat crossover (crossover rate / cr). Nilai ini menentukan rasio dari keturunan (offspring) yang dihasilkan dari proses crossover. Hasil offspring dari proses crossover diperoleh dengan mengalikan cr dengan ukuran populasi (popsize). Metode crossover yang digunakan pada penelitian ini yaitu one-cut point. Metode crossover ini diawali dengan pemilihan 2 buah parent yang dilakukan secara random. Dalam kasus ini, 2 individu parent akan menghasilkan 1 anak. Selanjutnya yaitu memilih satu titik gen untuk dijadikan sebagai titik potong. Segmen kiri dari child didapatkan dari segmen kiri pada parent 1. Kemudian segmen kanan child didapatkan dari sisa gen pada parent 2. Contoh dari crossover one-cut point terdapat pada Gambar 2.
1 3 1
3 8
Gambar 3 Contoh Mutasi
2.2.1.2.1
Parent1 Parent2 Child
4 4
2.2.1.3
Evaluasi Pada proses ini dilakukan proses evaluasi terhadap nilai fitness dari setiap chromosome. Fungsi fitness (fungsi tujuan) adalah fungsi yang dimiliki oleh masing-masing individu yang menentukan tingkat kesesuaian individu tersebut dengan kriteria yang ingin dicapai (Amelia, 2014). Untuk perhitungan nilai fitness terdapat pada persamaan 1. Fitness = 1000 – (10 * ∑penalty)
(1)
Dari persamaan diatas, nilai fitness dievaluasi berdasarkan jumlah pelanggaran yang terjadi. Jumlah pelanggaran ini dalam algoritma genetika disebut dengan nilai penalty. Jadi nilai fitness bergantung pada nilai penaltynya pada kromosom. 2.2.1.4 Seleksi Tahap seleksi bertujuan untuk mendapatkan calon induk (parent) yang baik. Induk yang baik akan menghasilkan anak yang baik. Untuk proses seleksi dilakukan dengan menghitung nilai fitness. Semakin tinggi nilai fitness-nya maka semakin tinggi pula kesempatan individu untuk terpilih. Terdapat beberapa jenis seleksi dalam algoritma genetika, yaitu roulette wheel, binary tournament dan elitis. Pada penelitian ini, seleksi dilakukan dengan elitis. Seleksi elitis (elitism) berarti usaha untuk mempertahankan individu-individu terbaik yang telah diperoleh di suatu generasi ke generasi selanjutnya (Amelia, 2014). Sehingga dalam generasi berikutnya, individu-individu terbaik
4 7 7
Gambar 2 Contoh crossover Pada Gambar 2, individu child didapatkan dari sisi kiri parent1 dan sisa gen pada parent2. 2.2.1.2.2
Mutasi dengan Metode Reciprocal Exchange Mutation Mutasi merupakan operator algoritma genetika yang mengubah salah satu atau lebih gen pada individu. Proses mutasi diawali dengan
3
tersebut akan tetap ada dan dipertahankan. Individu terbaik diperoleh dengan memilih kromosom terbaik dari kumpulan populai dan anak-anaknya yang memiliki fitness tertinggi sebanyak popsize. PERANCANGAN Proses optimasi jadwal mengajar asisten laboratorium menggunakan algoritma genetika ditunjukkan pada Gambar 4. 3.
Mulai
Gambar 5 Halaman utama (proses genetika)
Input popsize, cr, mr, jumlah_generasi
Untuk halaman data kesediaan asisten dapat dilihat pada Gambar 6.
Pengkodean Kromosom
Inisialisasi populasi awal
For i=1 ke jumlah_generasi
Crossover
Mutasi
Gambar 6 Halaman kesediaan asisten
Seleksi
Untuk halaman hasil penjadwalan dapat dilihat pada Gambar 7.
i++
Individu terbaik
Selesai
Gambar 4 Proses algoritma genetika IMPLEMENTASI Implementasi antar muka terdiri dari 5 halaman yaitu halaman utama (proses genetika), halaman data asisten, halaman jadwal praktikum, halaman kesediaan asisten dan halaman hasil penjadwalan. Halaman utama (proses genetika) berfungsi untuk input parameter dan menampilkan proses genetikanya dari generasi 0 hingga generasi terakhir sesuai inputan popsize dari user. Sedangkan untuk halaman data asisten, jadwal praktikum dan halaman kesediaan asisten berfungsi untuk menampilkan data. Untuk halaman hasil penjadwalan berfungsi untuk menampilkan hasil jadwal dari kromosom terbaik pada proses genetika. Halaman utama (proses genetika) dapat dilihat pada Gambar 5. 4.
Gambar 7 Halaman hasil penjadwalan 5.
PENGUJIAN DAN ANALISIS
Hasil Pengujian Ukuran Populasi Pada pengujian ini, jumlah individu yang digunakan yaitu 10, 20, 30, 40, 50, 60, 70, 80 dan 90 dengan masing-masing 10 kali pengujian. Nilai parameter crossover rate dan mutation rate 0.5. Sedangkan jumlah generasinya yaitu 10. Hasil dari setiap pengujian akan didapatkan rata-rata fitness untuk mengetahui solusi terbaik dari solusi yang optimal. Gambar 8 merupakan grafik hasil pengujian ukuran populasi. 5.1
4
berbeda-beda. Hal tersebut membuktikan bahwa terlalu banyak ukuran generasi belum tentu membuat algoritma genetika menjadi lebih optimal (Suprayogi, dkk, 2015). Dengan jumlah generasi yang besar, proses komputasi akan lebih lama, namun nilai fitness yang dihasilkan juga belum tentu lebih baik dari jumlah generasi yang lebih rendah. Pada setiap generasi, dilakukan proses reproduksi yang terdiri dari crossover dan mutasi. Sehingga semakin banyak generasi maka individu-individu yang dihasilkan akan semakin bervariasi. Dengan demikian, akan memberikan peluang yang lebih besar untuk mendapatkan nilai fitness yang lebih baik. Berdasarkan pengujian yang dilakukan, jumlah generasi yang optimal dihasilkan dari jumlah generasi 140. Meskipun pada jumlah generasi 160 juga menghasilkan ratarata fitness yang sama, namun waktu komputasi yang digunakan lebih tinggi daripada jumlah generasi 140, sehingga jumlah generasi optimal yang digunakan adalah 140.
Ukuran Populasi 800 778 779 780
789 784 787
796 795 794
763
760 740 10
20
30
40 50
60
70
80 90
Gambar 8 Grafik hasil pengujian ukuran populasi Pada Gambar 8 dapat dilihat pada ukuran populasi 10 hingga 70 rata-rata fitness selalu mengalami kenaikan. Kemudian pada ukuran populasi 70 hingga 90 rata-rata fitness mengalami penurunan. Pada umumnya, semakin tinggi ukuran populasi maka berpengaruh terhadap ratarata nilai fitness yang didapatkan namun semakin tinggi ukuran populasi juga berpengaruh pada waktu pemrosesan algoritma genetika yang semakin lama (Suprayogi, dkk, 2015). Namun, dengan melihat grafik pada Gambar 8, ukuran populasi yang besar tidak menjamin akan menghasilkan nilai fitness yang besar juga dan ukuran populasi yang kecil tidak menjamin akan menghasilkan nilai fitness yang kecil. Hal tersebut dikarenakan konsep random yang digunakan pada algoritma genetika. Pada pengujian ini, didapatkan parameter ukuran populasi (popsize) yang optimal adalah 70.
Hasil Pengujian Kombinasi Crossover Rate dan Mutation Rate Penentuan kombinasi nilai crossover rate dan mutation rate sangat penting dilakukan untuk mendapatkan solusi yang mendekati optimum. Nilai dari kombinasi cr dan mr yang digunakan pada pengujian ini yaitu 0.1:0.9, 0.2:0.8, 0.3:0.7, 0.4:0.6, 0,5:0.5, 0.6:0.4, 0.7:0.3, 0.8:0.2 dan 0.9:0.1 dengan masing-masing 10 kali pengujian. Perbandingan nilai cr dan mr tersebut akan menghasilkan jumlah anak yang sama pada masing-masing parameter, sehingga proses pembandingan masing-masing parameter kombinasi cr dan mr akan seimbang. Jika menggunakan kombinasi nilai cr dan mr yang terlalu kecil maka peluang untuk menghasilkan individu yang baik akan lebih kecil dari pada menggunakan kombinasi cr dan mr yang besar. Hal ini menyebabkan rata-rata fitness yang dihasilkan dari kombinasi cr dan mr yang kecil lebih rendah dibandingkan kombinasi cr dan mr yang tinggi (Mahmudy, 2013). Untuk ukuran populasi yang digunakan yaitu 70 dan untuk jumlah generasinya yaitu 140. Gambar 10 merupakan grafik hasil pengujian kombinasi cr dan mr. 5.3
Hasil Pengujian Jumlah Generasi Pada pengujian ini, jumlah generasi yang digunakan dalam pengujian ini yaitu 20, 40, 60, 80, 100, 120, 140 dan 160 dengan masing-masing 10 kali pengujian. Pada pengujian ini nilai parameter crossover rate dan mutation rate 0.5. Untuk ukuran populasi yaitu 70 sesuai ukuran populasi optimal pada pengujian pertama. Gambar 9 merupakan grafik hasil pengujian terhadap jumlah generasi. 5.2
Jumlah Generasi 1500 1000
948 967 980 998 998 997 825 866 912
500 0 20 40 60 80 100 120 140 160 180
Gambar 9 Grafik hasil pengujian jumlah generasi Pada Gambar 9 terlihat bahwa rata-rata fitness yang dihasilkan dari setiap parameter
5
Crossover Rate: Mutation Rate 1010 1000 990 980 970
998 999 996 996
990 988 989 988
3. 980
dan mutation rate yaitu 0.2:0.8 yang memiliki nilai rata-rata fitness tertinggi. Kualitas solusi yang dihasilkan diukur menggunakan fungsi fitness. Semakin besar nilai fitness dari solusi, maka semakin baik solusi yang dihasilkan. Semakin kecil nilai fitness yang dihasilkan, maka semakin buruk solusi yang didapatkan.
Saran Aplikasi optimasi jadwal mengajar asisten laboratorium menggunakan algoritma genetika ini dapat dikembangkan lagi dengan menambah beberapa constraint dan dapat mengaplikasikannya dengan metode crossover, mutasi dan seleksi yang lainnya. 6.2
Gambar 10 Grafik hasil pengujian kombinasi crossover rate dan mutation rate Pada Gambar 10 terlihat bahwa dari semua kombinasi cr dan mr yang digunakan menghasilkan fitness yang berbeda. Dalam pengujian ini, kombinasi cr dan mr yang optimal didapatkan dari cr:mr 0.2:0.8 dengan rata-rata fitness sebesar 999. 6.
Referensi Amelia. 2014. Implementasi Hybrid Algoritma Genetika untuk Penjadwalan Auditor pada Audit Internal Mutu Universitas Brawijaya.Skripsi Program Teknologi Informasi dan Ilmu Komputer. Universitas Brawijaya. Bangun, PBJ, Octarina, S & Virgo, GA 2012. ”Penerapan Konsep Algoritma Genetika untuk Penjadwalan Kegiatan Perkuliahan Semester Ganjil Kurikulum 2012 di Jurusan Matematika FMIPA UNSRI”, Jurnal Penelitian Sains, Volume 15 nomer 2(A), Universitas sriwijaya. Mahmudy, WF 2013. Algoritma Evolusi. Program Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya, Malang. Peteghem, Vincent Van., dan Mario Vanhoucke., 2010. “A genetic algorithm for the preemptive and non-preemptive multi-mode resource-constrained project scheduling problem”. European journal of Operational Research 201, 409-418. Promcharoen, S, Pana, W, & Tanhan, P 2009. ”Genetic Algorithm for Exam Proctor Schedule”. ICROS-SICE International Joint Conference 2009, Fukuoka International Congress center, Japan. Putri, FB, Mahmudy, WF & Ratnawati, DE, 2014. ”Penerapan Algoritma Genetik Untuk Vehicle Routing Problem with Time Windows (VRPTW) Pada Kasus Optimasi Distribusi Beras Berdistribusi”. DORO: Repository Jurnal Mahasiswa PTIIK Universitas Brawijaya, vol 5 No.1. Rifai, Ulisna A. 2011. Pengembangan Aplikasi Penjadwalan Kegiatan dengan Menggunakan Algoritma Genetika (Studi Kasus: Humas Kementrian Agama RI). Skripsi Fakultas Sains dan Teknologi
PENUTUP
Kesimpulan Berdasarkan hasil implementasi dan pengujian dalam menerapkan algoritma genetika untuk penjadwalan mengajar asisten laboratorium, maka dapat diambil beberapa kesimpulan sebagai berikut : 1. Algoritma Genetika dapat diimplementasikan dalam proses pembuatan jadwal mengajar asisten laboratorium pemrograman dasar PTIIK Universitas Brawijaya dengan baik. Algoritma genetika pada kasus ini direpresentasikan dengan representasi permutasi berbasis kode asisten. Penggunaan metode one-cut point dalam proses crossover dan metode reciprocal exchange mutation dalam proses mutasi memberikan hasil yang optimal. Metode seleksi yang digunakan yaitu elitis yang menghasilkan nilai fitness yang cukup baik dan hampir mendekati maksimum. Hal tersebut sesuai dengan penelitian yang dilakukan oleh Suprayogi & Mahmudy (2015) dan Putri, Mahmudy, Ratnawati (2015) yang membuktikan bahwa seleksi elitis lebih baik dari pada seleksi roulette wheel dan binary tournament. 2. Untuk menentukan parameter algoritma genetika maka dilakukan pengujian parameter yang terdiri dari ukuran populasi (popsize), jumlah generasi dan kombinasi crossover rate (cr) dan mutation rate (mr). Hasil dari pengujian merupakan parameter dengan nilai rata-rata fitness tertinggi dari percobaan yang dilakukan sebanyak 10 kali. Hasilnya didapatkan ukuran populasi 70, jumlah generasi 140 dan kombinasi crossover rate 6.1
6
Universitas Islam Negeri Syarif Hidayatullah. Jakarta. Suprayogi, DA & Mahmudy, WF 2015. “Penerapan Algoritma Genetika Travelling Salesman Problem with Time Window: Studi Kasus Rute Antar Jemput Laundry”, Jurnal Buana Informatika, vol.6, no. 2, pp. 121-130.
7