• Tidak ada hasil yang ditemukan

Penjadwalan mata kuliah menggunakan Algoritma Semut : studi kasus Program Studi Pendidikan Guru Sekolah Dasar, Universitas Sanata Dharma, Yogyakarta

N/A
N/A
Protected

Academic year: 2021

Membagikan "Penjadwalan mata kuliah menggunakan Algoritma Semut : studi kasus Program Studi Pendidikan Guru Sekolah Dasar, Universitas Sanata Dharma, Yogyakarta"

Copied!
163
0
0

Teks penuh

(1)PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. PENJADWALAN MATA KULIAH MENGGUNAKAN ALGORITMA SEMUT (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar, Universitas Sanata Dharma, Yogyakarta) HALAMAN JUDUL SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika. Oleh H. Roy Wiranata. 105314064. PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015. i.

(2) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. COURSE SCHEDULING USING ANT SYSTEM ALGORITHM (Case Study at Primary School Teacher Education Study Program, Sanata Dharma University, Yogyakarta). Thesis Presented as Partial Fullfillment of the Requirements To Obtain Sarjana Komputer Degree In Department of Informatics Engineering. By H. Roy Wiranata. 105314064. INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015. ii.

(3) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. iii.

(4) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. iv.

(5) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. HALAMAN PERSEMBAHAN. Jika kita mempunyai keinginan yang kuat dari dalam hati, maka seluruh alam semesta akan bahu-membahu mewujudkannya -soekarno-. Skripsi ini ku persembahkan untuk : Yesus Kristus Bunda Maria Bapak, Ibu, dan Adik-adikku Mbah Kakung Sahabat dan Teman-teman. v.

(6) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya/bagian orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.. Yogyakarta, 27 Januari 2015 Penulis. H. Roy Wiranata. vi.

(7) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. PERNYATAAN PERSETUJUAN PUBLIKASI ILMIAH UNTUK KEPENTINGAN AKADEMIS. Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : H. Roy Wiranata NIM. : 105314064. Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul : PENJADWALAN MATA KULIAH MENGGUNAKAN ALGORITMA SEMUT (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar, Universitas Sanata Dharma, Yogyakarta) Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma untuk hak menyimpan, mengalihkan dalam bentuk media lain, mengolahnya dalam bentuk pangkalan data, mendistribusikannya secara terbatas, dan mempublikasikannya di internet dan media lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan saya ini saya buat dengan sebenarnya.. Yogyakarta, 27 Januari 2015 Penulis. H. Roy Wiranata. vii.

(8) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. INTISARI Penjadwalan dibuat agar kegiatan berjalan secara teratur. Salah satu bentuk penjadwalan adalah penjadwalan mata kuliah. Namun, tidak mudah dalam pembuatan suatu jadwal perkuliahan jika dilakukan secara manual. Banyak data dan hal lain dapat mempengaruhi penjadwalan mata kuliah sepeti dosen, mahasiswa, jumlah ruang dan waktu yang tersedia membuat proses pembuatan jadwal menjadi sulit dan membutuhkan banyak waktu. Untuk mempermudah dalam proses pembuatan jadwal mata kuliah, maka muncul beberapa algoritma untuk memroses pembuatan jadwal mata kuliah tersebut. Salah satu algoritma untuk penjadwalan adalah algoritma semut. Pada tugas akhir ini, algoritma semut diuji untuk membuat jadwal mata kuliah dengan program studi Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma sebagai studi kasus. Terdapat constraint yang harus dihindari, yaitu pelanggaran hard constraint yang mutlak tidak ada serta pelanggaran soft constraint yang bersifat preferensi. Hasil dari pengujian ini algoritma semut diuji untuk menghasilkan jadwal mata kuliah, dan menguji pemakaian dengan jumlah ruang berbeda, yaitu 8 ruang hingga maksimal 13 ruang, dalam menghasilkan solusi penjadwalan yang baik. Kata Kunci: Penjadwalan, Algoritma Semut, Hard constraint, Soft constraint. viii.

(9) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. ABSTRACT A schedule is made for activities to be done in orderly. One of scheduling types is course scheduling. But it’s not easy to make a course schedule if it’s being done manually. A lot of data and other things can influence course scheduling, for example teachers, students, amount of rooms and time available, make the scheduling process becomes difficult and needs more time. For simplify the course scheduling process, appears some algorithms for that course scheduling process. One of algorithms for course scheduling process is ant system algorithm. In this thesis, ant system algorithm is tested to make course schedule with Pendidikan Guru Sekolah Dasar study program from Sanata Dharma University as case study. There is constraint that must be avoided, it is hard constraint infraction that absolutely none and preference soft constraint. The goal is ant system algorithm is tested to generate the course schedule and to test the use of different room, it’s 8 rooms until maximum 13 rooms to produce a good scheduling solution. Keywords: Scheduling, Ant System Algorithm, Hard constraint, Soft constraint. ix.

(10) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. KATA PENGANTAR. Puji dan syukur kepada Tuhan Yesus Kristus yang telah senantiasa memberikan berkat dan rahmat yang tak berkesudahan serta kesempatan yang sangat berharga sehingga penulis dapat menyelesaikan skripsi dengan judul “Penjadwalan Mata Kuliah Menggunakan Algoritma Semut (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar, Universitas Sanata Dharma, Yogyakarta) “. Dalam kesempatan ini, penulis juga ingin mengucapkan terima kasih sebesar besarnya terhadap semua pihak yang telah memberi dukungan dan semangat sehingga skripsi ini dapat selesai : 1. Bapak Alb. Agung Hadhiatma, S.T., M.T., selaku dosen pembimbing. Terima kasih atas semua bantuan, bimbingan, diskusi, pengorbanan waktu, kesabaran, ilmu serta semangat yang telah diberikan. 2. Ibu Paulina Heruningsih Prima Rosa, S.si., M.Sc., selaku Dekan Fakultas Sains dan Teknologi. 3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku ketua jurusan Teknik Informatika Universitas Sanata Dharma. 4. Ibu Sri Hartati W., S.Si., M.Kom., selaku dosen pembimbing akademik Teknik Informatika kelas B angkatan 2010. 5. Bapak Eko Hari Parmadi, S.si., M.Kom. dan ibu Anastasia Rita Widiarti, S.Si., M.Kom., selaku dosen penguji. Terima kasih atas saran dan kritik yang telah diberikan. 6. Kedua orang tua penulis, serta kedua adik tercinta, Selin dan Tyas. Terima kasih untuk semua kasih sayang, semangat, dukungan dan perhatian yang tak terhingga. 7. Guru hidup dan penyemangat dalam mendapatkan gelar S1, mbah kakung Haryono (alm.). 8. Keluarga pakde Sis Sragen, terima kasih atas pelajaran hidup dan perhatian selama ini.. x.

(11) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 9. Rosa yang selalu memberikan semangat, doa, hiburan, dan masukan kepada penulis. 10. Untuk Adit, Aweng, Damai, Kristopel, Dita, Tomi, Radiks, dan seluruh teman-teman Teknik Informatika angkatan 2010. Terima kasih atas kebersamaan dan dukungannya. 11. Teman-teman kos plus, Andi, Febri, Aand, mas Rian, Jaja, Nando, Evi. Terima kasih atas kebersamaan dan dukungannya. 12. Agatha Gengges plus, Karin, Ella, Lita, Kak Surya, Bogi, yang selalu setia mengingatkan serta berbagi cerita bersama. Terima kasih atas dukungannya. 13. Semua pihak yang telah membantu penulis dalam menyelesaikan skripsi. Penulis menyadari masih banyak kekurangan yang terdapat dalam laporan tugas akhir ini. Saran dan kritik sangat diharapkan untuk hasil yang lebih baik di masa depan.. Yogyakarta, 27 Januari 2015. Penulis. xi.

(12) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. DAFTAR ISI HALAMAN JUDUL................................................................................................ i HALAMAN PERSETUJUAN .............................................................................. .iii HALAMAN PENGESAHAN ................................................................................ iv HALAMAN PERSEMBAHAN ............................................................................. v PERNYATAAN KEASLIAN KARYA ................................................................ vi PERNYATAAN PERSETUJUAN PUBLIKASI ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................................................ vii INTISARI............................................................................................................. viii ABSTRACT ............................................................................................................. ix KATA PENGANTAR ............................................................................................ x DAFTAR ISI ......................................................................................................... xii DAFTAR TABEL ................................................................................................. xv DAFTAR GAMBAR ........................................................................................... xvi BAB I PENDAHULUAN ...................................................................................... 1 1.1. Latar Belakang ......................................................................................... 1. 1.2. Rumusan Masalah .................................................................................... 3. 1.3. Tujuan Penelitian ...................................................................................... 3. 1.4. Batasan Masalah ....................................................................................... 3. 1.5. Metodologi Penelitian .............................................................................. 4. 1.6. Sistematika Penulisan ............................................................................... 4. BAB II LANDASAN TEORI ................................................................................ 6 2.1. Penjadwalan .............................................................................................. 6. 2.2. Algoritma Semut ...................................................................................... 7. 2.2.1. Sejarah Algoritma Semut .................................................................. 7. xii.

(13) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 2.2.2. Cara Kerja Semut Mencari Jalur Optimal ......................................... 8. 2.2.3. Cara Kerja Algoritma Semut ............................................................. 9. BAB III ANALISIS DAN PERANCANGAN SISTEM .................................... 12 3.1. Analisis Sistem ....................................................................................... 12. 3.1.1. Analisis Masalah ............................................................................. 12. 3.1.2. Aturan Penjadwalan ........................................................................ 13. 3.1.3. Sumber Data .................................................................................... 14. 3.2. Pemodelan Algoritma Semut untuk Penjadwalan Mata Kuliah ............. 16. 3.2.1. Inisialisasi Parameter ...................................................................... 16. 3.2.2. Mencari Probabilitas ....................................................................... 19. 3.2.2.1 Membandingkan Node dengan Node dalam Permintaan Kelas Mata Kuliah ................................................................................... 20 3.2.2.2 Membandingkan Dengan Node dengan Node di dalam Tabu List ... ................................................................................................. 22 3.2.2.3. Mendapatkan Probabilitas Tertinggi ........................................ 24. 3.2.3. Update Feromon ............................................................................. 29. 3.2.4. Update Solusi (Global Best) ........................................................... 31. 3.3. Spesifikasi Perangakat Keras dan Perangkat Lunak .............................. 33. 3.4. Perancangan Sistem ................................................................................ 33. 3.4.1. Diagram Use Case........................................................................... 34. 3.4.2. Narasi Use Case .............................................................................. 34. 3.4.3. Model Kelas Analisis ...................................................................... 50. 3.4.4. Diagram Kelas ................................................................................. 51. 3.5. Perancangan Basis Data ......................................................................... 56. 3.5.1. ER Diagram ..................................................................................... 56. xiii.

(14) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 3.5.2. Hubungan Relasional Antar Tabel .................................................. 57. 3.5.3. Model Fisikal (Struktur Tabel Dalam DBMS) .............................. 58. 3.5.4. Desain Model Interaksi Antar Kelas ............................................... 60. 3.6. Desain Antar Muka ................................................................................ 67. BAB IV IMPLEMENTASI DAN ANALISA HASIL ......................................... 86 4.1. Implementasi Proses ............................................................................... 86. 4.1.1 4.2. Implementasi Algoritma Semut ...................................................... 86. Implementasi Tampilan Antar Muka ..................................................... 98. 4.2.1. Halaman Awal (HOME) ................................................................. 98. 4.2.2. Halaman Data Dosen....................................................................... 99. 4.2.3. Halaman Data Mata Kuliah ........................................................... 104. 4.2.4. Halaman Data Ruang .................................................................... 108. 4.2.5. Halaman Pilih Mata Kuliah ........................................................... 113. 4.2.6. Halaman Pilih Dosen Pengampu ................................................... 118. 4.2.7. Halaman Permintaan Jadwal ......................................................... 130. 4.2.8. Pesan Buat Jadwal ......................................................................... 130. 4.2.9. Halaman Jadwal Mata Kuliah ....................................................... 131. 4.3. Analisa Hasil Pengujian ....................................................................... 134. 4.3.1. Analisis Hasil Berdasarkan Ruang ................................................ 135. BAB V KESIMPULAN DAN SARAN .............................................................. 145 5.1. Kesimpulan ........................................................................................... 145. 5.2. Saran ..................................................................................................... 145. DAFTAR PUSTAKA ......................................................................................... 146 LAMPIRAN ........................................................................................................ 148. xiv.

(15) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. DAFTAR TABEL Tabel 3.1 Tabel data hari ....................................................................................... 14 Tabel 3.2 Tabel data waktu ................................................................................... 15 Tabel 3.3 Tabel data timeslot yang disediakan ..................................................... 15 Tabel 3.4 Tabel matriks timeslot * ruang yang dihasilkan.................................... 15 Tabel 3.5 Tabel nilai inisialisasi parameter........................................................... 16 Tabel 3.6 Tabel node awal dan data kelas mata kuliah dari setiap semut ............. 17 Tabel 3.7 Contoh kunjungan pertama dan kedua semut pada setiap iterasi beserta isi kelas mata kuliah .............................................................................................. 29 Tabel 3.8 Tabel sample update feromon pada node.............................................. 31 Tabel 4.1 Tabel Jumlah Kelompok Kelas Semester Ganjil ................................ 134 Tabel 4.2 Tabel Jumlah Mata Kuliah dalam Penjadwalan .................................. 134 Tabel 4.3 Tabel Nilai Parameter ......................................................................... 135 Tabel 4.4 Tabel Percobaan 1 dengan 13 ruang dan 0 permintaan jadwal ........... 135 Tabel 4.5 Tabel Percobaan 2 dengan 13 ruang dan 36 permintaan jadwal ......... 136 Tabel 4.6 Tabel Percobaan 3 dengan 12 ruang dan 0 permintaan jadwal ........... 136 Tabel 4.7 Tabel Percobaan 4 dengan 12 ruang dan 36 permintaan jadwal ......... 137 Tabel 4.8 Tabel Percobaan 5 dengan 11 ruang dan 0 permintaan jadwal ........... 137 Tabel 4.9 Tabel Percobaan 6 dengan 11 ruang dan 36 permintaan jadwal ......... 138 Tabel 4.10 Tabel Percobaan 7 dengan 10 ruang dan 0 permintaan jadwal ......... 138 Tabel 4.11 Tabel Percobaan 8 dengan 10 ruang dan 36 permintaan jadwal ....... 139 Tabel 4.12 Tabel Percobaan 9 dengan 9 ruang dan 0 permintaan jadwal ........... 139 Tabel 4.13 Tabel Percobaan 10 dengan 9 ruang dan 36 permintaan jadwal ....... 140 Tabel 4.14 Tabel Percobaan 11 dengan 8 ruang dan 0 permintaan jadwal ......... 140 Tabel 4.15 Tabel Percobaan 12 dengan 8 ruang dan 36 permintaan jadwal ....... 141. xv.

(16) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. DAFTAR GAMBAR Gambar 2.1 Semut mencari makanan ......................................................................9 Gambar 3.1 Flowchart algoritma semut secara umum dalam menghasilkan jadwal mata kuliah .............................................................................................................18 Gambar 3.2 Detail flowchart algoritma semut pada bagian cek pelanggaran ........20 Gambar 3.3 Detail flowchart algoritma semut untuk mencari probabilitas tertinggi ..................................................................................................................24 Gambar 3.4 Node pada kunjungan pertama semut 0 pada iterasi 0 dengan kelas mata kuliah KM11 dan proses mengecek setiap node yang belum dikunjungi .....26 Gambar 3.5 Node pada kunjungan kedua semut 0 pada iterasi 0 dengan kelas mata kuliah KM071 dan proses mengecek setiap node yang belum dikunjungi ............28 Gambar 3.6 Detail flowchart algoritma semut untuk update feromon ..................30 Gambar 3.7 Detail flowchart algoritma semut untuk update solusi (global best) .32 Gambar 3.8 Flowchart end proses .........................................................................33 Gambar 3.9 Use Case .............................................................................................34 Gambar 4.1 Halaman Awal ....................................................................................99 Gambar 4.2 Halaman Data Dosen ........................................................................100 Gambar 4.3 Pesan Cek Data Belum Terisi ..........................................................102 Gambar 4.4 Pesan Data Dosen Berhasil Simpan .................................................103 Gambar 4.5 Pesan Data Dosen Berhasil Diubah ..................................................103 Gambar 4.6 Pesan Data Dosen Akan Dihapus .....................................................103 Gambar 4.7 Pesan Data Dosen Berhasil Dihapus ................................................104 Gambar 4.8 Halaman Data Mata Kuliah ..............................................................104 Gambar 4.9 Pesan Cek Data Belum Terisi ..........................................................106 Gambar 4.10 Pesan Data Mata Kuliah Berhasil Simpan .....................................107 Gambar 4.11 Pesan Data Mata Kuliah Berhasil Diubah ......................................107 Gambar 4.12 Pesan Data Mata Kuliah Akan Dihapus .........................................108 Gambar 4.13 Pesan Data Mata Kuliah Berhasil Dihapus ....................................108 Gambar 4.14 Halaman Data Ruang .....................................................................109. xvi.

(17) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. Gambar 4.15 Pesan Cek Data Belum Terisi ........................................................111 Gambar 4.16 Pesan Data Ruang Berhasil Simpan ...............................................111 Gambar 4.17 Pesan Data Ruang Berhasil Diubah ...............................................112 Gambar 4.18 Pesan Data Mata Kuliah Akan Dihapus .........................................112 Gambar 4.19 Pesan Data Mata Kuliah Berhasil Dihapus ....................................113 Gambar 4.20 Halaman Pilih Mata Kuliah ............................................................113 Gambar 4.21 Pesan Data Jumlah Kelas Belum Terisi .........................................115 Gambar 4.22 Pesan Keterangan Data Mata Kuliah yang akan dimasukkan ke rencana penjadwalan ............................................................................................116 Gambar 4.23 Pesan Keterangan Data Mata Kuliah sudah dimasukkan ke rencana penjadwalan..........................................................................................................116 Gambar 4.24 Pesan Keterangan Data Mata Kuliah yang akan dikurangi dari rencana penjadwalan ............................................................................................117 Gambar 4.25 Pesan Keterangan Data Mata Kuliah sudah dikurangi dari rencana penjadwalan..........................................................................................................117 Gambar 4.26 List Data Mata Kuliah Di Halaman Pilih Kelas Mata Kuliah ........118 Gambar 4.27 Pesan Lanjutkan ke Pilih Dosen Pengampu ...................................118 Gambar 4.28 Halaman Pilih Dosen Pengampu ....................................................119 Gambar 4.29 Tampilan Cari Dosen .....................................................................121 Gambar 4.30 Tampilan Cari Dosen Sesuai Dosen Tertentu ................................123 Gambar 4.31 Tampilan Tambah Dosen Darurat ..................................................123 Gambar 4.32 Pesan Memasukkan Data Dosen Pengampu ..................................124 Gambar 4.33 Pesan SKS Dosen Pengampu Melebihi 20 sks ..............................124 Gambar 4.34 Pesan Dosen Pengampu Berhasil ditambahkan .............................125 Gambar 4.35 Pesan Dosen Pengampu akan dihapus dari rencana penjadwalan..126 Gambar 4.36 List Data Dosen Pengampu ............................................................129 Gambar 4.37 Pesan Cek Selesai Pilih Dosen Pengampu .....................................129 Gambar 4.38 Pesan Cek Buat Permintaan Jadwal ...............................................130 Gambar 4.39 Halaman Permintaan Jadwal ..........................................................130 Gambar 4.40 Pesan Pembuatan Jadwal ................................................................131 Gambar 4.41 Progress Bar pada Pembuatan Jadwal ...........................................131. xvii.

(18) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. Gambar 4.42 Halaman Jadwal Mata Kuliah ........................................................132 Gambar 4.43 Rata-rata pelanggaran hard constraint berdasarkan permintaan jadwal ...................................................................................................................142 Gambar 4.44 Rata-rata pelanggaran soft constraint berdasarkan permintaan jadwal ...................................................................................................................142 Gambar 4.45 Rata-rata waktu pembuatan jadwal berdasarkan permintaan jadwal ...................................................................................................................143. xviii.

(19) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 1. BAB I. PENDAHULUAN 1.1. Latar Belakang Pada jaman yang serba cepat ini, banyak hal atau pekerjaan yang harus. dilakukan dengan cepat dan tertata. Setiap orang atau institusi memerlukan penjadwalan kegiatan dalam melakukan kegiatan. Arti dari jadwal adalah pembagian waktu berdasarkan pengaturan urutan kerja, daftar atau tabel kegiatan, atau rencana kegiatan dengan pembagian waktu pelaksanaan yang terperinci. Penjadwalan mempunyai arti proses, cara, perbuatan menjadwalkan atau memasukkan di jadwal (Setiawan, 2012). Kegiatan atau pekerjaan yang terjadwal dapat mempermudah seseorang atau institusi untuk melakukan kegiatan yang sudah tersusun secara teratur. Banyak sekali contoh dari penjadwalan, seperti penjadwalan kereta api, penjadwalan mesin produksi, penjadwalan mata kuliah, dsb. Salah satu contoh penjadwalan mata kuliah adalah penjadwalan mata kuliah pada program studi Pendidikan Guru Sekolah Dasar (PGSD) di Universitas Sanata Dharma Yogyakarta. Bagi program studi PGSD Universitas Sanata Dharma, penjadwalan mata kuliah merupakan hal yang sangat penting, terlebih karena penjadwalan mata kuliah berfungsi untuk mengatur kegiatan belajar-mengajar. Dalam membuat suatu penjadwalan, banyak faktor yang perlu diperhatikan, diantaranya dosen, ruang, waktu kuliah, jumlah mahasiswa, dan beban sks maksimal seorang dosen (Sarwosri, dkk., 2009). Hal ini juga terjadi pada program studi PGSD Universitas Sanata Dharma dalam pembuatan jadwal, seperti sulitnya menentukan waktu dosen mengajar dengan matakuliah berbeda agar tidak bersamaan, menentukan pemakaian ruang agar tidak bersamaan, dan dosen tidak mengajar melebihi kuota 20 sks per semester. Faktor lain yang menjadi kesulitan adalah dibutuhkan waktu yang lama untuk membuat satu jadwal dalam satu semester, karena banyaknya data dosen, mata kuliah, ruang, yang diperlukan ketelitian karena masih dibuat secara manual.. 1.

(20) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 2. Terdapat cara pembuatan jadwal secara komputerisasi menggunakan suatu algoritma. Algoritma semut merupakan salah satu algoritma yang dapat digunakan. untuk. membantu. pembuatan. jadwal. perkuliahan. secara. komputerisasi. Algoritma semut merupakan suatu algoritma yang dibuat dengan mengadopsi cara semut menemukan jarak terpendek menuju suatu makanan (Dorigo, 1996). Algoritma ini bekerja seperti semut yang mencari makanan dari sarang menuju sumber makanan. Setiap perjalanannya, semut akan bebas menuju suatu titik yang akan dilalui menuju sumber makanan. Setiap perjalanannya, semut akan meninggalkan jejak berupa feromon, yang nantinya akan berguna ketika dalam perjalanan selanjutnya. Jika suatu titik dilalui oleh banyak semut, maka semut akan berjalan ke titik tersebut dan tidak melalui titik lain yang tidak banyak dilalui oleh semut, sehingga mendapatkan jarak terpendek dalam pencarian makanan. Contoh pemakaian algoritma Semut diantaranya adalah untuk Perancangan Sistem Optimasi Rute Distribusi Pengangkutan Sampah di Surabaya (Pranata, et all). Tidak berhenti pada penggunaan untuk mencari jarak terpendek, algoritma semut juga dapat digunakan untuk membuat penjadwalan mata kuliah, seperti pada Implementasi Penjadwalan Matakuliah di Jurusan Teknik Informatika ITS (Sarwosri, dkk., 2009). Dalam pencarian solusi terbaik, akan dipakai parameter-parameter yang mempengaruhi pembuatan solusi penjadwalan. Diadaptasi dari pencarian jarak terpendek, parameter-parameter ini dapat digunakan pula dalam pencarian solusi penjadwalan mata kuliah. Parameter tersebut meliputi intensitas jejak semut antar node dan perubahannya (τij) yang dapat digunakan untuk mencari intensitas semut antar mata kuliah dengan aturan agar terhindar dari pelanggaran, banyak node (n) yang digunakan sebanyak timeslot * ruang, jarak antar node (dij) untuk mendapatkan jarak antara suatu mata kuliah, dosen, kelompok kelas, yang sudah dijadwalkan menuju node selanjutnya untuk menjadwalkan suatu mata kuliah, dosen, dan kelompok kelas. Penentuan node awal untuk menempatkan jadwal pertama, dilakukan secara random. Selain itu, parameter lain untuk tetapan siklus-semut (Q), tetapan pengendali intensitas jejak semut (α), tetapan pengendali visibilitas (β), visibilitas antar node = 1/dij.

(21) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 3. (ηij) untuk mencari visibilitas antar node, jumlah semut (m), serta tetapan penguapan jejak semut (ρ). Dari hal ini, maka pembuatan jadwal dapat dilakukan dengan memanfaatkan algoritma semut dalam pembuatan jadwal perkuliahan di program studi PGSD Universitas Sanata Dharma. 1.2. Rumusan Masalah Berdasarkan latar belakang di atas, maka masalah yang dapat diselesaikan. adalah sebagai berikut : 1. Bagaimana menerapkan algoritma Semut dalam pembuatan sistem penjadwalan mata kuliah di prodi PGSD Universitas Sanata Dharma? 2. Bagaimana fungsi jumlah ruang dalam algoritma semut untuk menghasilkan solusi penjadwalan? 1.3. Tujuan Penelitian Tujuan dari penelitian ini adalah : 1. Menghasilkan jadwal mata kuliah di prodi PGSD Universitas Sanata Dharma, dari penerapan algoritma Semut. 2. Mengetahui fungsi jumlah ruang dalam algoritma semut untuk menghasilkan solusi penjadwalan.. 1.4. Batasan Masalah Penelitian ini mempunyai beberapa batasan, yaitu : 1. Penjadwalan mata kuliah di Prodi PGSD Universitas Sanata Dharma. 2. Hanya memperhitungkan dan menghasilkan jadwal matakuliah pada 1 semester bersangkutan. 3. Tidak menangani jika terjadi jadwal tabrakan antara mahasiswa dan matakuliah dengan semester berbeda. 4. Dosen tertentu dimungkinkan untuk dijadwalkan terlebih dahulu (permintaan jadwal) sesuai waktu dan ruang yang disediakan. 5. Hanya menangani mata kuliah teori..

(22) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 1.5. 4. Metodologi Penelitian Metode yang digunakan dalam menyusun jadwal mata kuliah PGSD. adalah metode System Development Life Cycle (Paradigma Waterfall). Metode ini terdiri dari berbagai tahap : 1. Analisis Kebutuhan Pada tahap ini, akan dilakukan Identifikasi tentang kebutuhan system serta. pengumpulan. data–data. yang. diperlukan. dalam. proses. penjadwalan. 2. Perancangan Sistem Pada tahap ini, akan dilakukan penerjemahan rancangan system kedalam perangkat lunak. Proses perancangan meliputi Perancangan Sistem, desain Basis Data, user interface dan rancangan implementasi program. 3. Penulisan Progam Pada tahap ini, akan dilakukan penerjemahan dari perancangan system ke dalam bahasa pemrograman. 4. Pengujian Pada tahap ini akan dilakukan pengujian program. Pengujian bertujuan untuk menemukan kesalahan – kesalahan hingga program dapat sesuai dengan yang diharapkan. 1.6. Sistematika Penulisan BAB I. : PENDAHULUAN. Bab ini berisi penjelasan tentang latar belakang masalah, rumusan masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.. BAB II. : LANDASAN TEORI. Bab ini berisi tentang Algortima Semut yang menjadi dasar dalam pembuatan sistem penjadwalan perkuliahan di PGSD..

(23) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. BAB III. 5. : ANALISA DAN PERANCANGAN SISTEM. Bab ini berisi tentang analisis dan perancangan sistem yang akan di bangun, serta meliputi analisis data penjadwalan, aturan dalam proses penjadwalan, dan penjelasan algoritma Semut dalam menyelesaikan permasalahan penjadwalan perkuliahan.. BAB IV. : IMPLEMENTASI DAN ANALISA HASIL. Bab ini berisi tentang implementasi dari perancangan pada Bab III. Implementasi tersebut meliputi tampilan progam (input dan output) dan analisa dari penjadwalan yang dihasilkan dari algoritma semut.. BAB V. : KESIMPULAN DAN SARAN. Bab ini berisi tentang kesimpulan dan saran dari sistem yang akan di buat berdasarkan pada bab-bab sebelumnya..

(24) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 2. BAB II. LANDASAN TEORI 2.1. Penjadwalan Penjadwalan memiliki kata dasar jadwal, yang artinya pembagian waktu. berdasarkan pengaturan urutan kerja, daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksanaan yang terperinci. Sedangkan untuk penjadwalan memiliki arti proses, cara, perbuatan menjadwalkan atau memasukkan di jadwal (Setiawan, 2012). Menurut Thomas Morton (1993) Penjadwalan adalah pengambilan suatu keputusan dalam penyesuaian aktivitas dan sumber daya untuk menyelesaikan sekumpulan pekerjaan agar mempunyai kualitas yang diinginkan. Keputusan yang dibuat di dalam penjadwalan adalah pengurutan pengerjaan, waktu mulai dan waktu selesai, serta urutan operasi suatu pekerjaan. Permasalahan penjadwalan merupakan permasalahan kombinatorial yang rumit, karena memiliki daerah alternative solusi yang luas dan banyak dijumpai lokal optimal (Yu, 2006). Penjadwalan mata kuliah menjadi salah satu bagian terpenting dan selalu menjadi masalah yang sering dihadapi oleh setiap universitas. Penjadwalan mata kuliah adalah proses penyusunan daftar perkuliahaan atau daftar kegiatan belajar yang dimasukkan pada slot waktu dan ruang tertentu yang tersedia selama lima hari dalam seminggu (yaitu hari senin hingga jumat) beserta pembagian ruang kelasnya. Dalam penjadwalan matakuliah, terdapat dua kategori batasan, yaitu batasan yang bersifat wajib atau disebut batasan mutlak (hard constraint) dan batasan yang bersifat preferensi atau disebut batasan lunak (soft constraint) (Oner, et all, 2011). Batasan yang bersifat multak yang harus dipenuhi yaitu :. 6.

(25) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 7. 1) Dosen yang sama tidak dapat mengajarkan matakuliah yang berbeda dalam waktu yang bersamaan. 2) Setiap satu matakuliah diselenggarakan di suatu ruang kuliah pada slot waktu yang tertentu. 3) Jam pelajaran per mata kuliah harus sesuai dengan beban SKS-nya. 4) Kapasistas ruang kuliah harus mampu menampung sejumlah mahasiswa yang akan mengambil suatu mata kuliah tertentu. 5) Mata kuliah yang lebih dari 3 sks diadakan sebanyak 2 kali dan diusahakan tidak diadakan dalam satu hari sekaligus. Sedangkan batasan lunak, yaitu: 1) Mata kuliah yang diadakan secara paralel dengan dosen. yang sama,. sebaiknya tidak dijadwalkan dalam waktu yang bersamaan dan/atau berurutan. 2) Mata kuliah yang dimungkinkan diambil oleh beberapa angkatan yang berbeda, tidak boleh dilaksanakan dalam waktu yang bersamaan. 3) Beberapa mata kuliah dengan kelas yang hanya satu (tidak paralel) yang diambil oleh angkatan yang sama, sebaiknya tidak dilaksanakan dalam waktu yang bersamaan. Dari penjadwalan ini, perlu diketahui bagaimana suatu algoritma menghasilkan suatu penjadwalan. Berikut ini adalah penjelasan mengenai algoritma semut secara umum. 2.2 2.2.1. Algoritma Semut Sejarah Algoritma Semut Wardy (2013) dalam penelitian yang berjudul “Penggunaan Graf dalam. Algoritma Semut untuk Melakukan Optimisasi”, menuliskan bahwa pada tahun 1996, algoritma semut, atau Ant Colony Optimization, mulai diperkenalkan sebagai sebuah simulasi multi agen yang menggunakan metafora alami semut untuk menyelesaikan problem ruang fisik. Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan.

(26) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 8. jalur terbaik melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan. 2.2.2. Cara Kerja Semut Mencari Jalur Optimal Semut mampu mengindera lingkungannya yang kompleks untuk mencari. makanan dan kemudian kembali ke sarangnya dengan meninggalkan zat feromon pada jalur-jalur yang mereka lalui. Feromon adalah zat kimia yang berasal dari kelenjar endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan untuk membantu proses reproduksi. Berbeda dengan hormon, feromon menyebar ke luar tubuh dan hanya dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies). Proses peninggalan feromon ini dikenal sebagai stigmergy, sebuah proses memodifikasi lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga memungkinkan para semut berkomunikasi dengan koloninya. Seiring waktu, bagaimanapun juga jejak feromon akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah feromon menguap. Agar semut mendapatkan jalur optimal, diperlukan beberapa proses (Wardy, 2013) : 1) Pada awalnya, semut berkeliling secara acak, hingga menemukan makanan. 2) Ketika menemukan makanan mereka kembali ke koloninya sambil memberikan tanda dengan jejak feromon. 3) Jika semut-semut lain menemukan jalur tersebut, mereka tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak tersebut. 4) Kembali dan menguatkannya jika pada akhirnya mereka pun menemukan makanan. 5) Seekor semut yang secara tidak sengaja menemukan jalur optimal akan menempuh jalur ini lebih cepat dari rekan-rekannya, melakukan round-trip lebih sering, dan dengan sendirinya meninggalkan feromon lebih banyak dari jalur-jalur yang lebih lambat ditempuh..

(27) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 9. Gambar 2.1 Semut mencari makanan Seluruh proses ini menunjukkan berlangsungnya optimisasi alami kaum semut yang bisa kita tiru dalam kehidupan sehari-hari. 2.2.3. Cara Kerja Algoritma Semut Dalam mencari jalur optimal, algoritma Semut memiliki urutan. pengerjaannya. Berikut adalah urutan algoritma Semut (Wong, Edwin, et all, 2011). 1) Inisialisasi parameter α (tetapan intensitas jejak semut), β (tetapan visibilitas), η, τ, m (jumlah semut), iterasi, dan Q (konstanta). 2) Letakkan semut ke salah satu node secara acak. 3) Selama dalam iterasi, lakukan langkah 4-6 4) Untuk setiap semut, lakukan : a. memilih probabitas (berdasarkan persamaan sebelumnya) untuk bergerak ke node berikutnya; b. tambahkan node yang dilalui ke list untuk setiap semut; c. ulangi sampai setiap semut menyelesaikan solusi; 5) Untuk setiap semut yang telah menyelesaikan solusi lakukan : update feromon τ untuk setiap node yang dilalui semut; 6) Jika solusi lokal terbaik lebih baik daripada solusi global :.

(28) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 10. simpan solusi lokal terbaik sebagai solusi global; 7) Selesai; Keterangan : Untuk memilih probabilitas node selanjutnya (Wong, Edwin, et all, 2011) :. Probabilitas (pilih edge e yang tersedia = (i,j))= [τ(e)]α .[η(e)]β β α ∑ e` = (i,j) [τ(e`)] .[η(e`)]. , if j ∉ Mk (tabu list). 0 , selain itu . e` adalah edge / node yang belum di lalui semut.. . Setiap semut memiliki tabu list berisi node yang dikunjungi untuk setiap iterasi.. . Update feromon edge / node yang dilalui oleh semut pada iterasi tersebut : Update feromon. (1- ρ).τ(e), τ(e) { (1- ρ).τ(e) + ∆τ. jika node tidak dilalui jika node dilalui. ∆τ didapat dari Q/Lk. Q adalah konstanta yang telah ditetapkan. Sedangkan Lk adalah length of tour (panjang jarak) atau faktor yang ingin di optimalkan, misalnya Q dan panjang tour semut. Feromon dalam algoritma ini dapat dikatakan sebagi memori jangka panjang koloni semut. Untuk parameter 0 < 𝜌 < 1, disebut laju penguapan. Jika ρ kecil, maka penguapan rendah sehingga adaptasi lambat. Sedangkan jika ρ besar, maka penguapan tinggi sehingga adaptasi cepat. Catatan: aturan probabilistik berlaku, sehingga kesalahan dapat terjadi! "Feromon baru" atau Δτ biasanya berisi konstanta Q dan faktor yang ingin di optimalkan, misalnya Q dan panjang tour semut..

(29) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. . 11. Nilai α dan β merupakan parameter-parameter yang mengontrol bobot relatif antara jejak feromon dan nilai heuristik. Jika α = 0, maka pencarian akan berdasarkan nilai heuristik semata. Jika sebaliknya nilai β = 0, maka pencarian didasarkan pada informasi jejak feromon (Sarwosri., dkk., 2009)..

(30) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 3. BAB III. ANALISIS DAN PERANCANGAN SISTEM 3.1. Analisis Sistem Sistem yang dibuat memiliki kemampuan untuk menghasilkan penjadwalan. mata kuliah, yang dibuat dengan menggunakan algoritma Semut. Data yang dibutuhkan adalah data dari prodi PGSD Universtas Sanata Dharma seperti data dosen yang meliputi keterangan dosen beserta jumlah sks yang diampu, data mata kuliah meliputi keterangan id, nama, dan bobot sks, data kelompok kelas yang meliputi semester dan nama kelas, data ruang yang digunakan, serta data waktu yang meliputi jam dan hari. Data ini sudah mencakup setiap kebutuhan setiap semester yang diselenggarakan. Sistem akan diimplementasikan ke sebuah aplikasi dengan bahasa pemrograman Java dan MySQL sebagai database. 3.1.1. Analisis Masalah Perkuliahan di prodi PGSD Universitas Sanata Dharma berlangsung selama. 5 hari dalam seminggu, yaitu setiap hari senin sampai jumat, dimana waktu perkuliahan setiap harinya dilaksanakan mulai pukul 07.00 wib hingga pukul 18.50 wib. Proses penyusunan penjadwalan mata kuliah di PGSD diawali dengan pemaketan mata kuliah pada tiap semester. Kemudian dosen akan diberikan tugas untuk mengampu mata kuliah yang ada sesuai bidang masing masing dosen. Selanjutnya, penjadwalan mata kuliah dilakukan dengan mempertimbangkan hari, jam, dan ruang yang tersedia, serta mempertimbangkan kesediaan waktu dan kuota jumlah sks dari dosen yang mengajar mata kuliah tersebut. Selain itu, akan dibedakan antara dosen prodi PGSD (baik tetap maupun tidak tetap) dan dosen undangan yang berasal dari universitas / instansi di luar program studi Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma. Pada bagian ini, dosen undangan akan diprioritaskan dalam memilih jadwal.. 12.

(31) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 13. Hasil akhir dari penyusunan mata kuliah ini adalah jadwal mata kuliah selama satu semester (gasal / genap) yang disusun berdasarkan jam, ruang, kelompok kelas dan mata kuliah serta dosen pengampu. 3.1.2. Aturan Penjadwalan Dalam pembuatan penjadwalan ini, pertama-tama perlu diperhitungkan. beberapa kendala yang mungkin terjadi, dan tidak boleh dilanggar oleh sistem, dan jika semua aturan yang ditentukan dapat terpenuhi maka penjadwalan mata kuliah tersebut dapat dikatakan optimal. Kendala-kendala tersebut akan dibedakan menjadi 2, yaitu hard constraint dan soft constraint. Adapun kendala-kendala yang merupakan hard constraint adalah sebagai berikut : 1. Tidak ada dosen yang mengajar lebih dari satu kelas mata kuliah yang berbeda pada waktu yang bersamaan. 2. Tidak ada matakuliah yang diselenggarakan bersamaan pada waktu dan ruang yang sama. 3. Tidak ada kelompok kelas pada semester yang sama, yang berkuliah pada waktu yang bersamaan. 4. Dosen tidak boleh mengajar lebih dari 3 mata kuliah per hari. 5. Setiap dosen tidak boleh mengajar lebih dari 20 sks. 6. Waktu kuliah dalam sehari dimulai dari jam 07.00 wib sampai pukul 18.50 wib. Lama setiap satuan 1 sks waktu kuliah adalah 50 menit dan perkuliahan berlangsung selama 5 hari yaitu dari hari senin-jumat setiap minggunya. Kendala-kendala di atas merupakan kendala yang harus dipenuhi dan tidak boleh dilanggar. Selain hard constraint, terdapat soft constraint yang ada dalam penjadwalan ini. Perbedaan antara hard constraint dan soft constraint adalah, jika hard constraint mutlak terpenuhi, sedangkan soft constraint boleh tidak terpenuhi, namun akan lebih baik jika soft constraint terpenuhi. Semakin banyak soft constraint yang juga terpenuhi, maka semakin baik penjadwalannya dihasilkan. Berikut soft constraint yang terdapat di penjadwalan ini :.

(32) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 14. Maksimal mata kuliah yang diselenggarakan per hari untuk setiap kelompok kelas adalah 3 mata kuliah. 3.1.3. Sumber Data Data yang digunakan untuk pembuatan jadwal mata kuliah meliputi data. dosen, data mata kuliah, data kelompok kelas (berisi semester dan nama kelas), data ruang yang digunakan, serta data waktu yang meliputi jam dan hari dari program studi PGSD Universitas Sanata Dharma. Data-data dosen yang mengajar pada semester gasal tahun ajaran 2014/2015 terdapat pada lampiran 1. Selain memerlukan dosen, ruang kelas juga diperlukan dalam pembuatan jadwal. Datadata ruangan yang disediakan untuk proses perkuliahan pada semester gasal tahun ajaran 2014/2015 terdapat pada lampiran 2. Dalam penjadwalan mata kuliah, prodi PGSD Universitas Sanata Dharma menyelenggarakan selama 5 hari, yaitu senin hingga jumat. Waktu yang digunakan untuk menyelenggarakan satu mata kuliah adalah maksimal 3 sks untuk 1 timeslot, dimana per hari memiliki 4 timeslot. Maka, dari data tersebut ditambah 13 ruang yang disediakan, akan terbentuk matriks timeslot * ruang dengan perhitungan 5 hari * 4 timeslot * 13 ruang = 260 slot yang tersedia untuk pembuatan jadwal. Ini berarti, maksimal perkuliahan yang dijadwalkan sejumlah maksimal 260 perkuliahan dalam seminggu. Berikut ini adalah tabel keterangan mengenai data timeslot yang terdiri dari waktu dan hari, serta matriks yang dihasilkan dari pasangan timeslot dan ruang. Tabel 3.1 Tabel data hari Id Hari H1 H2 H3 H4 H5. Nama Hari Senin Selasa Rabu Kamis Jumat.

(33) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 15. Tabel 3.2 Tabel data waktu Id Waktu W1 W2 W3 W4. Jam 07.00-10.00 WIB 10.00-13.00 WIB 13.00-16.00 WIB 16.00-19.00 WIB. Tabel 3.3 Tabel data timeslot yang disediakan. Id TS TS1 TS2 TS3 TS4 TS5 TS6 TS7 … TS 20. Time slot Id Hari Id Waktu H1 W1 H1 W2 H1 W3 H1 W4 H2 W1 H2 W2 H2 W3 … … H5 W4. Dari data timeslot * ruang yang ada, maka dapat dihasilkan matriks seperti pada tabel di bawah ini : Tabel 3.4 Tabel matriks timeslot * ruang yang dihasilkan R1. R2. R3. R4. R5. ….. TS1. ….. TS2. ….. TS3. ….. TS4. ….. TS5. ….. ….. ….. ….. ….. ….. ….. ….. TS19. ….. TS20. ….. R12. R13. ….. …..

(34) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 16. Selain data tersebut, sebelum masuk ke dalam algoritma, ada proses saat diperlukan suatu permintaan jadwal untuk perkuliahan tertentu. Data permintaan akan disimpan di dalam database permintaan, yang nantinya digunakan untuk membandingkan dengan data yang dibuat dengan algoritma untuk menghindari pelanggaran yang ada. Data perkuliahan yang diminta untuk ditempatkan pada ruang dan waktu tertentu dengan id kelas, id dosen, dan id mata kuliah terdapat pada lampiran 3. 3.2. Pemodelan Algoritma Semut untuk Penjadwalan Mata Kuliah Dalam algoritma semut, ada beberapa komponen yang harus diperhatikan. dalam proses pembuatan jadwal mata data penjadwalan. 3.2.1. Inisialisasi Parameter Pada proses awal, ada beberapa parameter yang harus ditetapkan sebelum. algoritma berjalan. Beberapa parameter yang perlu ditetapkan di awal meliputi kuliah α (alfa), β (beta), 𝞀 (rho), Q (konstanta), m (Jumlah Semut), t (Iterasi), dan τ0.. Tabel 3.5 Tabel nilai inisialisasi parameter Parameter α (alfa) β (beta) 𝞀 (rho) Q (konstanta) m (Jumlah Semut) t (Iterasi) τ0. Pada. proses. pembentukan. Nilai 9,6 0,2 0,5 0,5 5 5 0,2. solusi. penjadwalan,. algoritma. semut. membutuhkan posisi awal untuk menentukan langkah selanjutnya. Untuk penentuan node awal, semut diletakkan di salah satu posisi secara random..

(35) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 17. 1. Panggil method getRandomNode() ; 2. Panggil method getRandomKelasMaKul(); 3. Panggil method getKelasMaKul_Permintaan(); 4. Ambil node dan kelas mata kuliah pertama dari list yang berasal dari method getRandomNode() dan getRandomKelasMaKul(); 5. Simpan pada tabulist.. Keterangan :  getRandomNode(); Atribut ini digunakan memanggil list berisi node dari matriks timeslot * ruang yang diurutkan secara random;  getRandomKelasMaKul(); Atribut ini digunakan untuk memanggil list berisi kelas mata kuliah (mata kuliah, dosen, semester, kelas) dari daftar kelas mata kuliah yang masuk dalam rencana penjadwalan, yang diurutkan secara random. Pada awal proses, semut pada kunjungan pertama menempati node secara random. Node ini akan digunakan sebagai titik awal yang tidak akan berubah hingga iterasi terakhir dari setiap semut. Pada node yang dikunjungi ini, akan diletakkan pula kelas mata kuliah yang akan dijadwalkan. Data kelas mata kuliah berasal dari list yang berasal dari method getRandomKelasMaKul(). Urutan data kelas mata kuliah untuk setiap iterasi akan sama. Berikut ini adalah contoh penempatan semut pada kunjungan pertama dengan data kelas mata kuliah pertama. Tabel 3.6 Tabel node awal dan data kelas mata kuliah dari setiap semut Semut Semut 0 Semut 1 Semut 2 Semut 3 Semut 4. Kunjungan 1 Node (2, 7) Node (18, 4) Node (3, 3) Node (11, 8) Node (4, 5). Kelas Mata Kuliah KM011 KM011 KM011 KM011 KM011.

(36) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 18. Mulai. Inisialisasi Paramater α, β, 𝞀, Q, maxSemut, maxIterasi, τ0, list kelas mata kuliah, list permintaan kelas mata kuliah. Menentukan node awal semut secara random. Iterasi < max Iterasi. Cetak solusi terbaik. Tidak. Ya. Selesai. kunjungan < max kunjungan. Tidak. Ya. Semut < max semut. Ya. Tidak. Cek pelanggaran hard dan pelanggaran soft. Hitung probabilitas node. Update feromon. Simpan Solusi. Gambar 3.1 Flowchart algoritma semut secara umum dalam menghasilkan jadwal mata kuliah.

(37) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 19. Setelah menempatkan posisi awal semut, maka semut harus menuju ke node selanjutnya. Untuk menuju node selanjutnya, semut harus memilih node dengan probabilitas tertinggi. Jika ini merupakan langkah pada iterasi 0, maka semua node τ0 bernilai sama, yaitu 0,2. Matriks τ0 dari semua node pada iterasi 0. Perbedaan dalam menentukan probabilitas node yang akan dikunjungi berada pada iterasi 1. Pada iterasi 1, maka penentuan node memakai update feromon dari iterasi sebelumnya. Untuk lebih jelasnya, berikut ini adalah proses untuk mencari probabilitas tertinggi. 3.2.2. Mencari Probabilitas Dalam proses pencarian probabilitas tertinggi, algoritma berjalan selama. masih didalam iterasi yang ditetapkan pada inisialisasi awal. 1. Lakukan selama di dalam iterasi yang ditentukan; 2. Selama kunjungan semut kurang dari maxKunjungan (jumlah kelas mata kuliah dikurangi jumlah kelas mata kuliah permintaan), lakukan langkah 3. 3. Nilai probabilitas = 0; 4. Untuk setiap semut, lakukan langkah 5. 5. Untuk setiap node, lakukan langkah 6 sampai 8. 6. Proses membandingkan node dengan node yang ada pada permintaan kelas mata kuliah. 7. Proses membandingkan node dengan node telah dilalui oleh semut. 8. Proses mendapatkan probabilitas tertinggi.. Dalam proses pencarian node dengan probabilitas tertinggi, setidaknya ada tiga hal yang harus dilalui semut, yaitu proses membandingkan node dengan node yang ada pada permintaan kelas mata kuliah, proses membandingkan node dengan node telah dilalui oleh semut, dan yang terakhir proses mendapatkan probabilitas tertinggi..

(38) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 20. Mulai. Menentukan node awal semut secara random, kunjungan = 1. Inisialisasi Paramater α, β, 𝞀, Q, Jumlah Semut, Jumlah Iterasi, τ0. 1 Tidak. Iterasi < max Iterasi Tidak 4. i < jumlah permintaan. Ya. Sebanyak node. Ya. 3. Tidak Ya Tidak. Ya. kunjungan< max kunjungan. Cek pelanggaran hard dan soft permintaan Kunjungan terakhir < kunjungan. i < jumlah node tabulist. Ya. Tidak. Ya Semut < max semut. Ya. Cek pelanggaran hard dan soft node tabulist. Tidak Tidak 2. Pelanggaran hard = 0. Ya Tidak. Simpan node, pelanggaran soft, pelanggaran hard, pada list nodeTerkunjung. Gambar 3.2 Detail flowchart algoritma semut pada bagian cek pelanggaran. 3.2.2.1 Membandingkan Node dengan Node dalam Permintaan Kelas Mata Kuliah Berikut ini adalah pseudocode pada proses perbandingan antara node yang akan di lalui dengan node yang sudah ada pada permintaan kelas mata kuliah. 1. Atribut untuk menghitung pelanggaran hard constraint, pelanggaran hard constraint dosen (mengajar lebih dari 3 mata kuliah per hari), dan pelanggaran soft constraint kelompok kelas (berkuliah lebih dari 3 mata kuliah per hari) pada node tertentu di set dengan nilai 0. 2. Sebanyak isi list dapat_PermintaanKelasMakul, lakukan langkah berikut. 3. Jika dosen_Permintaan dan iRG_Permintaan tidak bernilai 0, maka :.

(39) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 21. 4. Hitung pelanggaran hard constraint node akan bernilai sama dengan 1.. Pelanggaran hard constraint node + nilai method dari. cariTabrakanDosen() + nilai dari method cariTabrakanRuang() + nilai dari method cariTabrakanKelompokKelas(); 5. Jika dosen_Permintaan atau iRG_Permintaan bernilai 0, maka : 6. Hitung pelanggaran hard constraint node akan bernilai sama dengan pelanggaran hard constraint node + nilai dari method cariTabrakanKelompokKelas();Atribut untuk menghitung hard constraint dosen bernilai sama dengan. atribut untuk menghitung. hard constraint + nilai dari mehod cariDosenMaxTS(); 7. Jika pelanggaran hard constraint dosen lebih dari sama dengan 3, maka : 8. Atribut. untuk. mengecek. pelanggaran. hard. constraint. ditambahkannilai 1; 9. Kelompok kelas akan dimasukkan ke dalam list untuk mendapatkan urutan. 10.. Urutan kelompok kelas bernilai sama dengan method cekListPembandingKelasMataKuliah();. 11.. Atribut untuk menghitung soft constraint kelas mata kuliah. akan bernilai sama dengan atribut untuk menghitung soft constraint kelas. mata. kuliah. ditambah. nilai. dari. method. cariKelasMaKulMaxTS(); 12.. Jika pelanggaran soft constraint kelas mata kuliah lebih dari. sama dengan 3, maka : 13.. Atribut untuk mengecek pelanggaran soft constraint kelas mata. kuliah ditambahkan nilai 1; Keterangan :  dapat_PermintaanKelasMakul, adalah list yang berisi kelas mata kuliah permintaan..

(40) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 22.  dosen_Permintaan dan iRG_Permintaan, adalah atribut untuk dosen dan ruang yang ada di dalam list dapat_PermintaanKelasMakul.  cariTabrakanDosen(), method ini digunakan untuk mencari persamaan node yang. memiliki. timeslot. dan. dosen. yang. sama. dengan. list. dapat_PermintaanKelasMakul.  cariTabrakanRuang(), method ini digunakan untuk mencari persamaan node yang. memiliki. timeslot. dan. ruang. yang. sama. dengan. list. dapat_PermintaanKelasMakul.  cariTabrakanKelompokKelas(), method ini digunakan untuk mencari persamaan node yang memiliki timeslot dan kelompok kelas yang sama dengan list dapat_PermintaanKelasMakul.  cariDosenMaxTS, method ini digunakan untuk mencari berapa banyak node yang memiliki hari yang sama untuk dosen tertentu di dalam list dapat_PermintaanKelasMakul.  cekListPembandingKelasMataKuliah(), method ini digunakan untuk membandingkan kelompok kelas tertentu sebelum dimasukkan ke dalam list untuk mendapatkan urutan yang nantinya digunakan untuk perbandingan yang berkaitan dengan kelompok kelas.  cariKelasMaKulMaxTS(), method ini digunakan untuk mencari berapa banyak node yang memiliki hari yang sama untuk kelompok kelas tertentu di dalam list dapat_PermintaanKelasMakul. 3.2.2.2 Membandingkan Dengan Node dengan Node di dalam Tabu List Berikut ini adalah pseudocode pada proses perbandingan antara node yang akan di lalui dengan node yang sudah ada pada tabulist. 1. Sebanyak kunjungan semut, lakukan langkah berikut 2. Jika cariIdDosen2 dan rgString1 tidak bernilai 0, maka : 3. Hitung pelanggaran hard constraint node akan bernilai sama dengan pelanggaran hard constraint node + nilai method dari cariTabrakanDosen() + nilai dari method cariTabrakanRuang() + nilai dari method cariTabrakanKelompokKelas();.

(41) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 23. 4. Jika cariIdDosen2 atau rgString1 bernilai 0, maka : 5. Hitung pelanggaran hard constraint node akan bernilai sama dengan pelanggaran hard constraint node + nilai dari method cariTabrakanKelompokKelas(); 6. Atribut untuk menghitung hard constraint dosen bernilai sama dengan atribut untuk menghitung hard constraint + nilai dari mehod cariDosenMaxTS(); 7. Jika pelanggaran hard constraint dosen lebih dari sama dengan 3, maka : 8. Atribut untuk mengecek pelanggaran hard constraint ditambahkan nilai 1; 9. Kelompok kelas akan dimasukkan ke dalam list untuk mendapatkan urutan. 10.. Urutan kelompok kelas bernilai sama dengan method cekListPembandingKelasMataKuliah();. 11.. Atribut untuk menghitung soft constraint kelas mata kuliah akan bernilai sama dengan atribut untuk menghitung soft constraint. kelas. matakuliah. ditambah. nilai. dari. method. cariKelasMaKulMaxTS(); 12.. Jika pelanggaran soft constraint kelas mata kuliah lebih dari. sama dengan 3, maka : 13.. Atribut untuk mengecek pelanggaran soft constraint kelas mata. kuliah ditambahkan nilai 1; Keterangan :  cariIdDosen2 dan rgString1, adalah atribut untuk dosen dan ruang yang pernah dilalui node..

(42) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 24. 3.2.2.3 Mendapatkan Probabilitas Tertinggi Pada tahap ini, probabilitas node selanjutnya didapatkan dari. rumus. pencarian probabilitas. Setiap node yang dilalui akan dihitung dengan rumus probabilitas, sedangkan untuk node yang tidak dikunjungi, akan bernilai 0. 1. probabilitas = probabilitas node 2. Simpan node probabilitas tertinggi pada list simpanNodeKunjung 3. Simpan node pada tabulist. 1. 2. 4. Ya. Tidak. Probabilitas node > probabilitas. i < nodeTerkunjung. Tidak. Ya. Probabilitas node = 0. Tidak. Pelanggaran hard = 0. Ya. Probabilitas node =. Gambar 3.3 Detail flowchart algoritma semut untuk mencari probabilitas tertinggi Gambar di atas adalah flowchart yang menggambarkan alur untuk menentukan probabilitas node. Berikut ini adalah pseudocode untuk mencari probabilitas node. 1. Jika jumlah hitung pelanggaran hard constraint node bernilai 0, maka lakukan langkah 2-8: 2. Atribut yang menghitung jumlah pelanggaran softconstraint bernilai sama dengan jumlah soft constraint dosen ditambah jumlah soft constraint kelompok kelas; 3. Hitung local matriks node dengan mencari kalkulasi Euclidian Distance dari node terkahir ke calon node..

(43) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 25. 4. Nilai ETA node didapat dari method visibilityEta(localMatrix[iTS][iRG]). 5. Nilai probabilitas node adalah rata-rata dari ETA[iTS][iRG] pangkat ALPHA dikali TAU[iTS][iRG] pangkat BETA. 6. Tambahkan nilai probabilitas node ke dalam nilai probabilitas semua node yang belum dikunjungi. 7. Tambahkan node, pelanggaran soft dan hard ke dalam list nodeTerkunjung, probabilitas node ke dalam list nodeTerkunjung. 8. Jika jumlah hitung pelanggaran hard constraint node bernilai lebih besar dari 0, maka lakukan langkah 9-12: 9. Atribut yang menghitung jumlah pelanggaran softconstraint bernilai sama dengan jumlah soft constraint dosen ditambah jumlah soft constraint kelompok kelas; 10. Nilai probabilitas node adalah 0. 11. Tambahkan nilai probabilitas node ke dalam nilai probabilitas semua node yang belum dikunjungi. 12. Tambahkan node, pelanggaran soft dan hard ke dalam list nodeTerkunjung, probabilitas node ke dalam list nodeTerkunjung. 13. Jika sudah semut sudah selesai mengunjungi semua node, lakukan langkah berikut : 14. Lakukan sebanyak list nodeTerkunjung dari langkah 15 hingga 17. 15. Untuk setiap node yang disimpan di dalam list, hitung probabilitasnya dengan cara membagi probabilitas node dengan jumlah seluruh probabilitas node yang belum dikunjungi. 16. Jika probabilitas node lebih besar sama dengan probabilitas sebelumnya, maka : 17. Simpan node ke dalam list simpanNodeKunjung. 18. Hitung pelanggaran hard constraint semut pada iterasi tertentu dengan menjumlahkan dengan pelanggaran hard constraint Padanode bagian penentuan nilai probabilitas, terdapat dua bagian penting yang tersebut. menentukan probabilitas node, yaitu η (Eta) dan pada τ (Tau). η adalah atribut 19. Simpan nodesuatu dengan probabilitas tertinggi tabulist..

(44) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 26. yang berisi nilai 1/distance antara node i dan node j. Sedangkan τ adalah update feromon dari node yang didapat dari iterasi sebelumnya. Rumus untuk mencari distance antar node didapat dari rumus Euclidian Distance. Rumus Euclidian Distance = √(𝑝1 − 𝑞1 )2 + (𝑝2 − 𝑞2 )2 Proses ini berjalan sampai semua node yang dimungkinkan dikunjungi sebanyak jumlah kelompok kelas mata kuliah. Proses mencari probabilitas dapat dijabarkan langkah-langkah dengan menentukan node yang akan dikunjungi semut. Berikut adalah contoh semut dalam menentukan probabilitas node. Mulai dari iterasi 0 dan kunjungan pertama, setiap semut sudah menentukan node secara random. Berikut ini adalah ilustrasi saat semut mengunjungi node pertama pada iterasi 0. R1. R2. R3. R4. R5. …. …. …. … …... R6. R7. R8. R9. R10. R11. R12. R13. …. …. …. …. …... …... …... ….. TS1 TS2 TS3 TS… TS19 TS20. Gambar 3.4 Node pada kunjungan pertama semut 0 pada iterasi 0 dengan kelas mata kuliah KM11 dan proses mengecek setiap node yang belum dikunjungi Semut akan mengecek setiap node yang belum dikunjungi untuk dicari nilai probabilitas terbesar. Jika semut sudah mendapatkan node dengan probabilitas terbesar, maka kelas mata kuliah pada list dengan urutan kedua akan dipasangkan dengan node tersebut. Berikut ini adalah contoh perhitungan kunjungan ke 2 semut 0 pada iterasi 0. τ0 pada iterasi 0 pada semua node adalah 0,2 dan perhitungan untuk probabilitas node yang belum dikunjungi adalah seperti berikut ini : Node asal = (2, 7) Jarak node yang belum dikunjungi :.

(45) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 27. Node (2,5) = √(2 − 2)2 + (7 − 5)2 = Node (1,6) = √(2 − 1)2 + (7 − 6)2 1,4142. = 1,4142. Node (2,6) = √(2 − 2)2 + (7 − 6)2 = 1 Node (1,8) = √(2 − 1)2 + (7 − 8)2 = 1,4142 Node (2,8) = √(2 − 2)2 + (7 − 8)2 = 1 Node (3,6) = √(2 − 3)2 + (7 − 6)2 = 1,4142 Node (2,9) = √(2 − 2)2 + (7 − 9)2 = Node (3,8) = √(2 − 3)2 + (7 − 8)2 1,4142. = 1,4142. Nilia 1/distance dari beberapa node : Node (2,5) =. 1 1,4142. = 0,70711. 1. Node (2,6) = = 1. Node (1,8) =. 1 1. Node (2,8) = = 1. Node (3,6) =. 1. Node (2,9) =. 1 1,4142. Node (1,6) =. = 0,70711. Node (3,8) =. 1 1,4142 1 1,4142 1 1,4142 1 1,4142. = 0,70711 = 0,70711 = 0,70711 = 0,70711. Probabilitas setiap node yang belum dikunjungi : Node (2,5) =. (0,70711)0,2 +(0,2)9,6 164,53. 0,00564 Node (2,6) =. = Node (1,6) =. (0,70711)0,2 +(0,2)9,6 164,53. =. 0,00564 (1)0,2 +(0,2)9,6 164,53. = 0,00608. Node (1,8) =. (0,70711)0,2 +(0,2)9,6 164,53. =. 0,00564 Node (2,8) =. (1)0,2 +(0,2)9,6 164,53. = 0,00608. Node (3,6) = 00564. (0,70711)0,2 +(0,2)9,6 164,53. = 0,.

(46) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. Node (2,9) =. (0,70711)0,2 +(0,2)9,6 164,53. = Node (3,8) =. 0,00564. 28. (0,70711)0,2 +(0,2)9,6 164,53. =. 0,00564. Dari perhitungan probabilitas, node (2,6) dan (2,8) memiliki probabilitas tertinggi. Jika terdapat lebih dari satu node yang memiliki probabilitas tertinggi, maka akan dipilih salah satu dari node tersebut, dan yang terpilih adalah node (2,8). Perhitungan ini juga berlaku untuk semut lainnya. Perbedaan akan terjadi ketika proses terjadi pada iterasi diatas iterasi 0. Perbedaan akan terjadi pada nilai τ (tau), karena perbedaan update feromon pada node yang dilalui semut. Berikut adalah gambar ilustrasi perjalanan semut pada kunjungan ke dua dari setiap semut.. R1. R2. R3. R4. R5. R6. R7. R8. R9. KM011. KM071. …... …... R10. R11. R12. R13. …... …... …... …... TS1 TS2 TS3 TS…. …... …... …... …... …... …... …... TS18 TS19 TS20. Gambar 3.5 Node pada kunjungan kedua semut 0 pada iterasi 0 dengan kelas mata kuliah KM071 dan proses mengecek setiap node yang belum dikunjungi Keterangan gambar : 1). Arah pengecekan probabilitas node oleh semut dari node tertentu.. 2). Arah kunjungan semut.. 3). Node yang dikunjungi semut.. 4). Node yang belum dikunjungi semut..

(47) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 29. Karena ada kemungkinan perubahan nilai τ (tau) yang akan mempengaruhi nilai probabilitas node, maka kunjungan setiap semut pada kunjungan kedua dan selanjutnya dimungkinkan berubah. Berikut ini adalah contoh perbandingan kunjungan semut pada iterasi 0 hingga 5 pada semut 0. Setelah semut menyelesaikan perjalanannya, maka tahap selanjutnya adalah melakukan update feromon untuk semua node yang ada. Berikut ini akan dijelaskan mengenai update feromon. Tabel 3.7 Contoh kunjungan pertama dan kedua semut pada setiap iterasi beserta isi kelas mata kuliah Semut. Iterasi 0 1. 0. 2 3 4. Kunjungan Node 1 (2, 7) 2 (3, 7) 1 (2, 7) 2 (3, 8) 1 (2, 7) 2 (3, 8) 1 (2, 7) 2 (3, 8) 1 (2, 7) 2 (3, 8). Kelas Mata Kuliah KM011 KM071 KM011 KM071 KM011 KM071 KM011 KM071 KM011 KM071. . 3.2.3. Update Feromon Pada proses update feromon, akan dihitung nilai feromon dari node untuk. iterasi selanjutnya. Di dalam rumus update feromon, ada perbedaan untuk node yang dikunjungi dan node yang tidak dikunjungi. Perbedaan hanya pada penambahan ∆𝑡 pada node yang dikunjungi. Berikut adalah alur proses update feromon..

(48) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 30. 4. Sebanyak list simpanNodeKunjung. Tidak. 5. Ya. Ya. dikunjungi. Tidak. Gambar 3.6 Detail flowchart algoritma semut untuk update feromon Berikut ini adalah pseudocode untuk update feromon untuk semut yang telah menyelesaikan perjalanan tiap iterasi. 1. Untuk sebanyak node, lakukan : 2. Proses sebanyak list simpanNodeKunjung, lakukan langkah 3: 3. Jika terdapat persamaan timeslot dan ruang, lakukan langkah 46: 4. Cek ketersediaan =1. 5. Jika pelanggaran soft dan hard = 0, maka totalPelanggaran = totalPelanggaran + 1. 6. Selain itu, maka totalPelanggaran = totalPelanggaran + (Q / (pelanggaranSoft + pelanggaranHard)) 7. Jika cek ketersediaan = 0, maka update feromon untuk node adalah. TAU[TS][RG] = (1 - RHO) * TAU[iTS][iRG]. 8. Jika cek ketersediaan >, maka update feromon untuk node adalah. TAU[iTS][iRG] = (1 - RHO) * TAU[iTS][iRG] +. totalPelanggaran Nilai ∆𝑡 didapatkan dari jumlah kunjungan semut ke node tersebut. Bobot ∆𝑡 dibedakan menjadi 2. Jika node tersebut dilalui oleh semut dan tidak terdapat pelanggaran, maka nilai ∆𝑡 adalah 1. Sedangkan jika node dilalui oleh semut dan.

(49) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. terdapat pelanggaran, maka nilai ∆𝑡 adalah. 𝑸 totalPelanggaran. 31. . Nilai ∆𝑡 akan. diakumulasi dari jumlah kunjungan semut, termasuk jika terdapat pelanggaran. Karena jumlah semut yang digunakan adalah 5, maka nilai ∆𝑡 paling besar adalah 5 untuk setiap iterasi. Berikut ini adalah contoh perhitungan update feromon dari semut 0 pada iterasi 0. Tabel 3.8 Tabel sample update feromon pada node Node (1-𝞀).τ(e) ∆𝑡 Nilai Update Feromon (0, 1) (1-0,5).0,2 2 2,1 (0, 2) (1-0,5).0,2 1 1,1 (0, 3) (1-0,5).0,2 1 1,1 (0, 4) (1-0,5).0,2 3 3,1 (0, 5) (1-0,5).0,2 0,1 Setelah update feromon selesai, proses selanjutnya adalah mencari solusi terbaik (global best). Berikut adalah penjelasan untuk update solusi (global best). 3.2.4. Update Solusi (Global Best) Ini adalah proses terakhir setiap iterasi. Saat semua semut sudah. menyelesaikan kunjungan, maka algoritma akan menghitung solusi terbaik. Solusi dikategorikan lebih baik, jika pelanggaran hard constraint dan pelanggaran soft constraint semut pada iterasi tertentu lebih kecil atau sama dengan pelanggaran hard constraint dan pelanggaran soft constraint semut pada iterasi sebelumnya. Berikut ini adalah flowchart untuk mendapatkan solusi terbaik..

(50) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 32. 5. PelanggaranHard[iterasi][semut] <= pelanggaran hard global. Ya. PelanggaranSoft[iterasi][semut] <= pelanggaran soft global. Ya. Update Solusi terbaik. Gambar 3.7 Detail flowchart algoritma semut untuk update solusi (global best) Secara detail, proses pseudoceode untuk update solusi terbaik, dijelaskan pada bagian di bawah ini. 1. Untuk proses sebanyak semut yang ada, lakukan : 2. Cek pelanggaran hard constraint dan pelanggaran soft constraint dari masing-masing semut 3. Bandingkan global best sebelumnya dengan pelanggaran hard constraint dan pelanggaran soft constraint dari semut tertentu. 4. Jika hard constraint dan pelanggaran soft constraint lebih kecil atau sama dengan global best, maka : 5. Update hard constraint dan pelanggaran soft constraint pada global. best. 6. Hapus list solusiSemutList yang menampung solusi terbaik jika terdapat isi pada list tersebut. 7. Simpan semua node pada semut dengan global best pada list solusiSemutList 8. Selesai.. Setelah proses selesai hingga iterasi terakhir, maka node pada global best yang disimpan pada list solusiSemutList akan disimpan ke dalam database, dan proses pembuatan jadwal telah selesai..

(51) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 33. 3. Cetak Solusi Penjadwalan. Selesai. Gambar 3.8 Flowchart end proses. 3.3. Spesifikasi Perangakat Keras dan Perangkat Lunak Spesifikasi perangkat keras dan perangkat lunak yang digunakan untuk memenuhi kebutuhan system ini adalah : 1) Perangkat Keras a. Processor. : Intel Core-i3 1,80 GHz. b. Memori. : 2.00 GB. c. Hardisk. : 500 GB. 2) Perangkat lunak a) Sistem Operasi. : Windows 7 Ultimate. b) Database. : MySQL – SQLyog Enterprise. c) Aplikasi Pembuat. : Java Netbeans 7.1.1. d) Lain-lain. : Office Excel 2007, Adobe Reader. PDF. 3.4. Perancangan Sistem Pada bagian ini, akan dijelaskan apa saja tahap-tahap yang terdapat dalam. perancangan system. Berikut penjelasannya :.

(52) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 3.4.1. 34. Diagram Use Case Masukkan data mata kuliah. Lihat Jadwal Kuliah Extend. extend extend. Hapus data mata kuliah. Lihat Data Mata Kuliah. Buat Jadwal Kuliah. extend. Edit data mata kuliah Masukkan data dosen Pembuat Jadwal. Extend. Lihat data dosen Hapus data dosen. Extend Extend. Edit data dosen Edit data ruang Bantuan. Hapus data ruang. Masukkan data ruang. Extend. Extend. Lihat data ruang Extend. Gambar 3.9 Use Case. 3.4.2 Narasi Use Case Nama use case. Lihat Mata Kuliah. Aktor. Pengguna. Diskripsi. Pengguna menampilkan halaman Lihat Mata Kuliah. Prakondisi. Home Tampil Aksi aktor. Reaksi sistem.

(53) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 1. Pengguna. menekan. tombol Mata Kuliah. Langkah Kerja. 2. Sistem. 35. menampilkan. halaman. lihat. mata. kuliah. 3. Sistem mengambil data mata. kuliah. dari. database. dan. menampilkannya.. Nama use case. Tambah Mata Kuliah. Aktor. Pengguna. Diskripsi. Pengguna menambahkan data mata kuliah. Prakondisi. Halaman Lihat Mata Kuliah Aksi aktor. Reaksi sistem. 1. Pengguna mengetikkan. data. mata kuliah. 2. Pengguna. menekan. tombol simpan. 3. Sistem. mengecek. kelengkapan data mata kuliah. yang. dimasukkan 4. Sistem menampilkan. Langkah Kerja. pesan. berupa. keterangan mengenai mata kuliah yang akan di simpan. 5. Pengguna tombol. menekan ya,. untuk. menyimpan data mata kuliah.. 6. Sistem. menyimpan. data mata kuliah ke dalam data base..

(54) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 36. 7. Sistem menampilkan pesan. untuk. menerangkan. bahwa. data sudah disimpan. 8. Sistem menampilkan semua. data. mata. kuliah. 2. Pengguna Alternatif 1. menekan 3. Sistem. tombol bersihkan.. menghapus. data-data yang telah diketikkan pengguna. 3. Sistem. mengecek. kelengkapan data mata. Alternatif 2. kuliah. yang. dimasukkan. 4. Sistem menampilkan pesan untuk mengisi data. mata. secara lengkap. 5. Pengguna. menekan. tombol tidak, untuk Alternatif 3. membatalkan. penyimpanan. data. mata kuliah.. Nama use case. Edit Mata Kuliah. Aktor. Pengguna. Diskripsi. Pengguna mengubah data mata kuliah. Prakondisi. Halaman Lihat Mata Kuliah Aksi aktor. Reaksi sistem. kuliah.

(55) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 1. Pengguna. menekan 2. Data. yang. 37. dipilih. salah satu data mata. ditampilkan pada text. kuliah pada table mata. field.. kuliah. 4. Pengguna mengubah data mata kuliah.. 3. Teks. pada. simpan. diubah. menjadi “Ubah”. 6. Sistem. 5. Pengguna. menekan. tombol ubah.. tombol. mengecek. kelengkapan data mata kuliah. yang. dimasukkan. 7. Sistem menampilkan pesan. berupa. keterangan mengenai. Langkah Kerja. mata kuliah yang akan diubah. 8. Pengguna tombol. menekan 9. Sistem mengubah data ya,. untuk. mata. kuliah. dan. menyimpan data mata. menyimpan ke dalam. kuliah yang diubah.. data base. 10.. Sistem. menampilkan. pesan. untuk. menerangkan. bahwa. data. sudah. diubah. 11.. Sistem. menampilkan. semua. data mata kuliah..

(56) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 5. Pengguna Alternatif 1. menekan 6. Sistem. tombol bersihkan.. 38. menghapus. data-data pada text field. 6. Sistem. mengecek. kelengkapan data mata kuliah. yang. dimasukkan.. Alternatif 2. 7. Sistem menampilkan pesan untuk mengisi data. mata. kuliah. secara lengkap. 6. Pengguna. menekan. tombol tidak, untuk Alternatif 3. membatalkan. penyimpanan. data. mata kuliah. 2. Sistem menampilkan. 1. Pengguna Alternatif 4. mengetikkan. data-data mata kuliah. data. pada table yang mirip. mata kuliah yang akan. dengan. diubah.. data. dicari oleh pengguna.. Nama use case. Hapus Mata Kuliah. Aktor. Pengguna. Diskripsi. Pengguna menghapus data mata kuliah. Prakondisi. Halaman Lihat Mata Kuliah Aksi aktor. Langkah Kerja. 1. Pengguna. yang. Reaksi sistem menekan. salah satu data mata. 2. Data. yang. dipilih. ditampilkan pada text field..

(57) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI. 39. kuliah pada table mata kuliah. 4. Sistem menampilkan 3. Pengguna. menekan. tombol hapus.. pesan. berupa. keterangan. mata. kuliah. akan. yang. dihapus. 5. Pengguna. menekan 6. Sistem. tombol ya.. menghapus. data mata kuliah 7. Sistem. menampilkan. pesan. berupa. keterangan bahwa data mata. kuliah. telah. dihapus. 8. Sistem menampilkan data mata kuliah. Alternatif 1. 5. Pengguna. menekan. tombol tidak. 2. Sistem menampilkan. 1. Pengguna Alternatif 2. mengetikkan. data. mata kuliah yang akan diubah.. data-data mata kuliah pada table yang mirip dengan. data. yang. dicari oleh pengguna.. Nama use case. Lihat Dosen. Aktor. Pengguna. Diskripsi. Pengguna menampilkan halaman Lihat Dosen. Prakondisi. Home Tampil Aksi aktor. Reaksi sistem.

Gambar

Tabel 3.3 Tabel data timeslot yang disediakan  Time slot  Id TS  Id Hari  Id Waktu  TS1  H1  W1  TS2  H1  W2  TS3  H1  W3  TS4  H1  W4  TS5  H2  W1  TS6  H2  W2  TS7  H2  W3  …  …  …  TS 20  H5  W4
Tabel 3.5 Tabel nilai inisialisasi parameter
Tabel 3.6 Tabel node awal dan data kelas mata kuliah dari setiap  semut
Gambar 3.1 Flowchart algoritma semut secara umum dalam menghasilkan  jadwal mata kuliah
+7

Referensi

Dokumen terkait

Two compounds from cultivation of the endophytic fungi Penicillium sp of leaves of kunyit putih (Curcuma zedoaria have been isolated. The endophytic fungus was cultivated on 5 L

Descartes, en una carta a Mersenne, ya conf íaba poder demostrar que los únicos números perfectos pares eran los de Euclides y que si había números perfectos impares tenían

Sekiranya Kementerian Kewangan Malaysia mendapati syarikat telah melanggar syarat-syarat yang ditentukan di atas, ataupun telah menyerahkan pengurusan syarikat dan kontrak

Penelitian ini bertujuan untuk mengetahui kadar unsur dan senyawa kimia limbah cangkang kerang Totok (Geloina sp.) hasil tangkapan masyarakat desa Bulupayung Cilacap di

Bahan penolong adalah suatu bahan yang digunakan untuk memperlancar proses produksi, tetapi tidak tampak di bagian akhir produk.. Bahan penolong yang digunakan adalah

kepada khalayak. Sebenarnya khalayak kurang senang menerima pesan yang disertai ancaman yang menakutkan, sebab meraka tidak memiliki kebebasan untuk menentukan sikap

Pelaksanaan Peningkatan Kemampuan Pengawak Simak BMN dan Penerapan Aplikasi Simak BMN Kemenkeu di Lingkungan Kemhan/TNI terdiri dari teori tentang penatausahaan

Using inexpensive off-the-shelf equipment, you can build high speed data networks that connect remote areas together, provide broadband network access in areas that even dialup