PENJADWALAN SATPAM JAGA DENGAN ALGORITMA GENETIKA Ronny Program Studi Teknik Informatika, Unika Soegijapranata Semarang Abstract Schedule is useful to manage activities to be more effective. Schedule can tell what to do and when to do it. Many schedules still set manually, including security guard schedule. This project aims to create a security guard schedule automatically by using Genetic Algorithm which is usually used for schedule optimization. The purpose of this project is to create an effective security guard schedule with desired conditions such as working hours, shifts, and number of guard posts. Keywords: Genetic Algorithm, Security Scheduling, Optimization Pendahuluan Zaman sekarang ini, penjadwalan itu penting untuk mengatur kegiatan sehari-hari lebih mudah dan efektif. Dengan jadwal, kita jadi tahu apa yang harus dilakukan dan kapan kita melakukannya. Salah satu penjadwalan dalam kehidupan adalah penjadwalan satpam jaga. Dalam penjadwalan satpam, dibutuhkan data mengenai informasi satpam (nama dan jenis kelamin), jam kerja, dan pos jaga. Untuk mengoptimasi penjadwalan, dapat diselesaikan dengan banyak cara, salah satunya adalah dengan algoritma genetika. Algoritma genetika diawali dengan inisialisasi dari data-data yang ada yang membentuk individu. Lalu dilanjutkan dengan penghitungan nilai fitness tiap individu. Setelah itu diseleksi untuk memilih individu dengan fitness terbaik. Lalu dilanjutkan dengan crossover dan mutasi. Crossover itu proses dimana memilih antara 2 individu hasil seleksi lalu saling disilangkan data antar masing-masing individu. Sedangkan mutasi adalah proses memilih suatu individu untuk dimutasi datanya. Setelah itu di evaluasi nilai fitness lagi, dan akhirnya muncul hasil jadwal akhir. Landasan Teori Literatur dengan judul "Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika" oleh Nia Kurnia Mawaddah (2006) menjadi salah satu literatur dalam proyek ini. Jadwal dalam literatur ini berisi dosen, waktu ujian, PROXIES VOL. 1 NO. 2, TAHUN 2017 54
dan juga ruangan yang digunakan. Inputan data yang diperlukan dalam proses penjadwalan ini adalah mata kuliah, dosen, ruang kelas, dan waktu. Batasan dalam literatur ini adalah dosen jaga harus datang saat ujian dilakukan. Menurut Achmad Hidayatno (2010) dalam literatur berjudul "Penerapan Algoritma Genetika Pada Perencanaan Lintasan Kendaraan", proyek ini menggunakan algoritma genetika dengan menghitung dan memperoleh jalur pada permukaan yang telah dipisah menjadi bagian-bagian kecil. Pada permukaan yang ada halangan misalnya dataran tinggi atau ada sesuatu yang harus dihindari. Tujuan dari proyek ini untuk mencari jalur terpendek dari satu lokasi ke lainnya. Menurut Mery Hanita (2011) pada literatur berjudul "Penerapan Algoritma Genetika Pada Penjadwalan Mata Kuliah". Penjadwalan ini berisi mata kuliah, dosen, ruang kelas, waktu, dan mahasiswa yang mengambil mata kuliah itu. Itu juga tergantung pada kemungkinan dosen tidak bisa mengajar karena ada aktivitas akademik lain atau dosen mengajar lebih dari satu mata pelajaran di hari dan jam yang sama, mahasiswa yang mengambil mata kuliah yang bertabrakan, dan ketersediaan ruang kelas apakah sedang dipakai atau tidak. Hasil penjadwalan akan ditampilkan di GUI. Menurut Aulia Fitrah (2006) pada jurnal berjudul "Penerapan Algoritma Genetika Pada Persoalan Pedagang Keliling (TSP)". Tujuan dari proyek ini adalah untuk memperoleh jalur yang termurah untuk mengunjungi seluruh kota, kunjungan tiap kota hanya boleh sekali, dan lalu kembali ke kota awal. Biaya perjalanan dihitung berdasarkan jarak, waktu, dan bahan bakar. Pada "Optimasi Penjadwalan Mata Pelajaran Menggunakan Algoritma Genetika" oleh Zaini, Hidayat, dan Regasari (2014), literatur ini tentang bagaimana untuk menyusun jadwal jika jumlah ruang kelas hanya sedikit dan jumlah dosen juga terbatas. Proyek ini menggunakan algoritma genetika untuk menyusun jadwal menggunakan berbasis web. Parameter proyek ini adalah jumlah pelajaran dalam seminggu, guru, ruang kelas, hari, dan total jam kegiatan mengajar. Pada literatur "Produce Cross Word Answer Using Genetic Algorithm" oleh Donny Budiarto (2014), tujuan proyek ini adalah menghasilkan kemungkinan jawaban pada teka teki silang berdasarkan huruf yang ditemukan oleh pengguna. Jawaban tidak hanya dalam bahasa Indonesia, tetapi juga bahasa Inggris. Parameter di proyek ini menggunakan inputan pengguna seperti jumlah huruf dan huruf apa saja untuk menyusun kata. Hasil proyek ini akan menampilkan kemungkinan jawaban berdasarkan parameter. PROXIES VOL. 1 NO. 2, TAHUN 2017 55
Pada literatur "Algoritma Genetika Dalam Pemilihan Spesifikasi Komputer" oleh Anthony (2013), tujuan proyek ini untuk membantu pengguna untuk mengoptimalkan dalam pemilihan spesifikasi komputer yang sesuai kebutuhan. Parameter proyek ini adalah tujuan dari penggunaan komputer apakah untuk bermain game atau menonton film atau kebutuhan kantor. Pada "Penerapan Algoritma Genetik Pada Permainan Catur Jawa" oleh Nico Saputro dan Erdo Dirgagautama (2003), pada catur jawa ada tujuh strategi berdasarkan situasi papan catur untuk memilih jalan yang dilalui komputer dan tiap strategi memiliki bobot masing-masing. Algoritma genetika digunakan untuk mencari bobot pada tiap strategi. Parameter dari proyek ini adalah inputan pengguna dalam permainan. Metodologi Penelitian 1. Analisis Langkah awal dari proyek ini adalah dengan menganalisa data apa yang diperlukan di dalam penjadwalan satpam, antara lain data satpam, pos jaga, dan jam kerja. Tujuannya adalah membuat jadwal dengan menggunakan algoritma genetika. 2. Membuat Desain Program Langkah selanjutnya adalah membuat desain program berdasarkan data dari langkah pertama. Desain program terdiri dari input user, lalu input itu akan diproses dengan algoritma genetika, dan hasil output akan ditampilkan di GUI. Data yang diperoleh dari input user antara lain nama dan jenis kelamin satpam, jumlah pos jaga, mulai jam kerja, serta waktu tiap shift kerja. Dari data tersebut algoritma genetika akan menginisialisasi sebuah populasi yang terdiri dari beberapa individu. Dan nilai fitness masing-masing individu akan dihitung. Lalu semua individu itu akan diseleksi dengan menggunakan teknik seleksi roulette wheel. Seleksi berfungsi untuk memilih individu-individu terbaik. Lalu dilanjutkan dengan crossover, dimana proses ini akan menggabungkan data antara suatu individu dengan individu lain. Selanjutnya proses mutasi yang akan mengacak isi dari suatu individu yang terpilih. Setelah semua proses itu, maka akan terbentuk populasi baru, dan populasi itu akan di evaluasi juga nilai fitness tiap individunya. Setelah itu baru akan terpilih lah individu terbaik untuk ditampilkan di GUI. 3. Implementasi PROXIES VOL. 1 NO. 2, TAHUN 2017 56
Setelah semua langkah di atas, program siap untuk dibuat dengan menggunakan bahasa pemrograman Java dan algoritma genetika. Langkah ini termasuk pembuatan coding dan menampilkan hasil program di GUI. Setelah selesai membuat program, maka perlu dilakukan pengetesan. Akan dicoba menjalankan program untuk memperoleh hasil dan mengecek apakah ada kesalahan pada hasilnya. 4. Membuat Laporan Langkah terakhir adalah pembuatan laporan proyek. Laporan ini berisi data apa saja dari inputan user melalui GUI, proses untuk mencari data optimal, sampai hasil yang ditampilkan pada GUI. Hasil dari program ini adalah jadwal yang terdiri dari hari dan jam kerja, nama dan jenis kelamin satpam, serta pos jaga tiap satpam. Hasil dan Pembahasan Program ini membutuhkan inputan user seperti data satpam, jumlah pos jaga, dan jam mulai jaga serta jam tiap shift nya. Gambar 1: Input User Setelah itu lalu klik save as text file untuk menyimpan data dalam file .txt. Lalu klik generate schedule untuk mendapatkan jadwal di GUI. Proses awal dari algoritma genetika ini adalah generate data dari user input tadi secara acak. Misalnya Arif | Male | P1 | 06:00 (nama | gender | pos jaga | shift jaga). Dan tersimpan dalam array 2 dimensi. Acakan data terbentuk sebanyak 7 (total hari dalam seminggu) x jumlah satpam jaga dalam sehari dan membentuk satu individu. Dan generate itu akan berulang sampai membentuk 10 individu. 10 individu itu akan tergabung menjadi 1 populasi. PROXIES VOL. 1 NO. 2, TAHUN 2017 57
Arman; M; P1; S1 Vincent; M; P1; S1 Heru; M; P1; S1 Arman; M; P2; S1 Vincent; M; P2; S1 Heru; M; P2; S1 Arman; M; P1; S2 Vincent; M; P1; S2 Heru; M; P1; S2 Arman; M; P2; S2 Vincent; M; P2; S2 Heru; M; P2; S2 Arman; M; P1; S3 Vincent; M; P1; S3 Heru; M; P1; S3 Arman; M; P2; S3 Vincent; M; P2; S3 Heru; M; P2; S3 Arman; M; P1; S1 Vincent; M; P1; S1 Heru; M; P1; S1 Deni; M; P1; S1 Deni; M; P2; S1 Deni; M; P1; S2 Deni; M; P2; S2 Deni; M; P1; S3 Deni; M; P2; S3 Deni; M; P1; S1 Henry; M; P1; S1 Henry; M; P2; S1 Henry; M; P1; S2 Henry; M; P2; S2 Henry; M; P1; S3 Henry; M; P2; S3 Henry; M; P1; S1 Amin; M; P1; S1 Kris; M; P1; S1 Gian; M; P1; S1 Budi; M; P1; S1 Amin; M; P2; S1 Kris; M; P2; S1 Gian; M; P2; S1 Budi; M; P2; S1 Amin; M; P1; S2 Kris; M; P1; S2 Gian; M; P1; S2 Budi; M; P1; S2 Amin; M; P2; S2 Kris; M; P2; S2 Gian; M; P2; S2 Budi; M; P2; S2 Amin; M; P1; S3 Kris; M; P1; S3 Gian; M; P1; S3 Budi; M; P1; S3 Amin; M; P2; S3 Kris; M; P2; S3 Gian; M; P2; S3 Budi; M; P2; S3 Amin; M; P1; S1 Kris; M; P1; S1 Gian; M; P1; S1 Budi; M; P1; S1 Mario; M; P1; S1 Mario; M; P2; S1 Mario; M; P1; S2 Mario; M; P2; S2 Mario; M; P1; S3 Mario; M; P2; S3 Mario; M; P1; S1 Gambar 2: Contoh Satu Individu Setelah itu tiap individu akan di evaluasi nilai fitness nya, dengan adanya aturan maksimal satpam dalam tiap pos yang sesuai inputan user dan satpam wanita tidak boleh jaga di atas jam 18:00. Jika data dari array tersebut melanggar aturan itu maka akan mendapat poin 0, sedangkan data yang tidak melanggar akan mendapat poin 1. Lalu ada proses seleksi, pada program ini menggunakan seleksi roulette wheel. Di mana seleksi ini akan memilih beberapa individu untuk diproses lebih lanjut. Proses selanjutnya adalah crossover satu titik, di mana proses ini akan memilih dua individu dan saling bertukar datanya. Day Monday Tuesday Wednesday Thursday Friday Saturday Minggu 3 Vincent; M; F2; S3 Amin; M; F1; S3 Arman; M; F2; S3 Deni; M; F1; S1 Dewi; F; F2; S1 Ivan; M; F1; S3 Henry; M; F1; S1 Arman; M; F1; S1 Anisa; F; F2; S2 Cindy; F; F1; S1 Heru; M; F1; S3 Arman; M; F1; S3 Budi; M; F1; S2 Amin; M; F1; S3 Kris; M; F1; S3 Amin; M; F2; S3 Mario; M; F1; S2 Gian; M; F2; S3 Sandi; M; F2; S3 Heru; M; F1; S3 Foni; F; F2; S1 Deni; M; F1; S2 Amin; M; F1; S3 Arman; M; F2; S1 Heru; M; F2; S3 Deni; M; F2; S3 Amin; M; F1; S2 Arman; M; F1; S3 Anisa; F; F2; S3 Gian; M; F2; S2 Arman; M; F1; S2 Henry; M; F1; S3 Vincent; M; F1; S3 Mario; M; F2; S2 Amin; M; F2; S2 1 2 4 5 Day Monday Tuesday Wednesday Thursday Friday Saturday Minggu 1 2 Budi; M; F1; S3 Heru; M; F2; S1 Ivan; M; F1; S1 Mario; M; F1; S2 Gian; M; F2; S1 Budi; M; F2; S2 Dewi; F; F1; S2 Kris; M; F2; S3 Lola; F; F2; S2 Gian; M; F1; S3 Foni; F; F2; S3 Mario; M; F2; S3 Dewi; F; F1; S2 Lola; F; F1; S2 Foni; F; F2; S3 Kris; M; F2; S1 Budi; M; F2; S3 Henry; M; F2; S2 Cindy; F; F1; S2 Dewi; F; F2; S3 Heru; M; F2; S3 Vincent; M; F2; S2 Ivan; M; F1; S3 Dewi; F; F2; S2 Lola; F; F1; S3 Cindy; F; F1; S2 Dewi; F; F1; S1 Anisa; F; F2; S2 4 3 Vincent; M; F2; S1 Deni; M; F1; S3 Ivan; M; F2; S3 Cindy; F; F2; S3 Kris; M; F1; S3 Lola; F; F2; S3 Budi; M; F2; S1 5 Gambar 3: Sebelum Crossover PROXIES VOL. 1 NO. 2, TAHUN 2017 58
Day Monday Tuesday Wednesday Thursday Friday Saturday Minggu 3 Vincent; M; F2; S3 Amin; M; F1; S3 Arman; M; F2; S3 Deni; M; F1; S1 Dewi; F; F2; S1 Dewi; F; F1; S2 Foni; F; F2; S3 Cindy; F; F2; S3 Lola; F; F1; S2 Kris; M; F2; S1 Henry; M; F2; S2 Kris; M; F1; S3 Cindy; F; F1; S2 Dewi; F; F2; S3 Budi; M; F2; S3 Amin; M; F2; S3 Mario; M; F1; S2 Gian; M; F2; S3 Sandi; M; F2; S3 Heru; M; F1; S3 Foni; F; F2; S1 Deni; M; F1; S2 Amin; M; F1; S3 Arman; M; F2; S1 Heru; M; F2; S3 Deni; M; F2; S3 Amin; M; F1; S2 Arman; M; F1; S3 Anisa; F; F2; S3 Gian; M; F2; S2 Arman; M; F1; S2 Henry; M; F1; S3 Vincent; M; F1; S3 Mario; M; F2; S2 Amin; M; F2; S2 1 2 4 5 Day Monday Tuesday Wednesday Thursday Friday Saturday Minggu 2 Ivan; M; F1; S1 Mario; M; F1; S2 Gian; M; F2; S1 Kris; M; F2; S3 Ivan; M; F2; S3 Foni; F; F2; S3 Mario; M; F2; S3 Arman; M; F1; S1 Anisa; F; F2; S2 Cindy; F; F1; S1 Kris; M; F1; S3 Lola; F; F2; S3 Budi; M; F2; S1 1 4 3 5 Budi; M; F1; S3 Heru; M; F2; S1 Dewi; F; F1; S2 Budi; M; F2; S2 Lola; F; F2; S2 Gian; M; F1; S3 Ivan; M; F1; S3 Henry; M; F1; S1 Heru; M; F1; S3 Arman; M; F1; S3 Budi; M; F1; S2 Amin; M; F1; S3 Heru; M; F2; S3 Vincent; M; F2; S2 Ivan; M; F1; S3 Dewi; F; F2; S2 Lola; F; F1; S3 Cindy; F; F1; S2 Dewi; F; F1; S1 Anisa; F; F2; S2 Vincent; M; F2; S1 Deni; M; F1; S3 Gambar 4: Sesudah Crossover Proses berikutnya adalah mutasi, probabilitas terjadinya mutasi ini adalah 0,03. Jadi kemungkinan terjadinya mutasi ini sangatlah kecil. Proses ini akan memilih satu individu untuk dimutasi. Day Monday Tuesday Wednesday Thursday Friday Saturday Minggu 3 Vincent; M; F2; S3 Amin; M; F1; S3 Arman; M; F2; S3 Deni; M; F1; S1 Dewi; F; F2; S1 Gian; M; P1; S3 Mario; M; P1; S1 Henry; M; P2; S2 Ivan; M; P1; S2 Deni; M; P2; S2 1 2 4 Heru; M; F1; S3 Arman; M; F1; S3 Budi; M; F1; S2 Amin; M; F1; S3 Kris; M; F1; S3 Amin; M; F2; S3 Mario; M; F1; S2 Gian; M; F2; S3 Sandi; M; F2; S3 Heru; M; F1; S3 Foni; F; F2; S1 Deni; M; F1; S2 Amin; M; F1; S3 Arman; M; F2; S1 Heru; M; F2; S3 Deni; M; F2; S3 Amin; M; F1; S2 Arman; M; F1; S3 Anisa; F; F2; S3 Gian; M; F2; S2 Arman; M; F1; S2 Henry; M; F1; S3 Vincent; M; F1; S3 Mario; M; F2; S2 Amin; M; F2; S2 5 Gambar 5: Sesudah Mutasi Lalu proses terakhir adalah evaluasi kembali nilai dari tiap individu. Individu dengan nilai terbaik akan ditampilkan pada GUI sebagai jadwal akhir. PROXIES VOL. 1 NO. 2, TAHUN 2017 59
Gambar 6: Jadwal Pada GUI Kesimpulan Algoritma genetika dapat diaplikasikan pada penjadwalan yang lebih mudah dan menghemat waktu daripada membuat jadwal secara manual. Algoritma genetika juga dapat membuat jadwal tanpa adanya tabrakan jadwal karena di dalam genetika ada proses evaluasi yang berfungsi untuk menilai jadwal, jika jadwal itu ada yang tabrakan maka akan mengulangi proses genetika lagi. Daftar Pustaka [1] Anthony, "Algoritma Genetika Dalam Pemilihan Spesifikasi Komputer", Universitas Sumatra Utara, 2013 [2] Donny Budiyanto, "Produce Cross Word Answer Using Genetic Algorithm", Universitas Katolik Soegijapranata, 2014 [3] Aulia Fitrah, Achmad Zaky, dan Fitrasani, "Penerapan Algoritma Genetika Pada Persoalan Pedagang Keliling (TSP)", Institut Teknologi Bandung, 2006. [4] Mery Hanita, "Penerapan Algoritma Genetika Pada Penjadwalan Mata Kuliah", Universitas Bengkulu, 2011. [5] Achmad Hidayatno, Darjat, dan Hendry HLT, "Penerapan Algoritma Genetika Pada Perencanaan Lintasan Kendaraan", Universitas Diponegoro, 2010. [6] Andhika Lady Maharsi, "Sistem Penjadwalan Mata Pelajaran Sekolah Menggunakan Algoritma Genetika", Universitas Negeri Yogyakarta, 2013. [7] Nia Kurnia Mawaddah dan Wayan Firdaus Mahmudy, "Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika", Universitas Brawijaya, 2006. [8] Nico Saputro dan Erdo Dirgagautama, "Penerapan Algoritma Genetik Pada Permainan Catur Jawa", Universitas Katolik Parahyangan, 2003. PROXIES VOL. 1 NO. 2, TAHUN 2017 60