PENJADWALAN PERKULIAHAN
MENGGUNAKAN ALGORITME GENETIKA
MUHAMMAD SYADID
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
PENJADWALAN PERKULIAHAN
MENGGUNAKAN ALGORITME GENETIKA
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
MUHAMMAD SYADID
G64104059
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
Judul : Penjadwalan Perkuliahan Menggunakan Algoritme Genetika
Nama : Muhammad Syadid
NRP : G64104059
Menyetujui:
Pembimbing I,
Pembimbing II,
Irman Hermadi, S.Kom, MS
Sony Hartono Wijaya, S.Kom
NIP 132321422
Mengetahui :
Dekan Fakultas Matematika Dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Dr. Drh. Hasim, DEA
NIP 131578806
ABSTRAK
MUHAMMAD SYADID. Penjadwalan Perkuliahan Menggunakan Algoritme Genetika. Dibimbing oleh IRMAN HERMADI dan SONY HARTONO WIJAYA.
Penjadwalan perkuliahan merupakan proses penempatan aktivitas perkuliahan ke dalam slot waktu dan ruang yang tersedia. Jika jumlah aktivitas perkuliahan dan persyaratan yang harus dipenuhi jumlahnya sangat besar, maka penyelesaian masalah penjadwalan perkuliahan akan menjadi rumit dan membutuhkan waktu yang sangat lama. Penelitian ini bertujuan memperbaiki penelitian Penjadwalan Perkuliahan menggunakan Algoritme Genetika yang tidak dapat mengakomodasi masalah kapasitas ruangan dan ukuran kelas. Selain itu bertujuan memperoleh informasi kinerja Algoritme Genetika.
Pada penelitian ini, representasi kromosom berbentuk matrik aktivitas perkuliahan. Matrik aktivitas perkuliahan adalah sebuah matrik yang berisi aktivitas perkuliahan selama satu semester. Baris pada matrik merepresentasikan jumlah slot waktu yang digunakan selama satu minggu perkuliahan dari Senin sampai dengan Jumat. Sedangkan kolom pada matrik merepresentasikan jumlah ruangan yang tersedia.
Data pada penelitian ini merupakan data jadwal perkuliahan di FMIPA IPB yang diperoleh dari Buku Panduan Program Sarjana IPB edisi 2006 (revisi). Selanjutnya, data yang diperoleh diolah atau dilakukan pengkodean untuk didapatkan data mahasiswa, data pengajar, data mata kuliah, data slot waktu, dan data aktivitas perkuliahan. Data mahasiswa dalam penelitian ini ada dua jenis, yaitu data mahasiswa safe dan unsafe. Data mahasiswa safe adalah data mahasiswa yang mengabaikan kapasitas ruangan dan jumlah mahasiswa. Sedangkan data mahasiswa unsafe adalah data mahasiswa yang mempertimbangkan kapasitas ruangan dan jumlah mahasiswa.
Hasil percobaan pada penelitian ini menunjukkan bahwa kinerja Algoritme Genetika menghasilkan solusi yang optimal pada kombinasi nilai parameter crossover 0.7, mutasi 0.2, jumlah populasi 50, maksimum generasi 500, threshold 0, dan stall generation 100. Hasil percobaan menunjukkan bahwa jumlah pelanggaran yang dihasilkan dari data mahasiswa unsafe lebih besar daripada data mahasiswa
safe. Jadwal terbaik dihasilkan pada pengalokasian 6 slot waktu per hari pada 6 ruangan dengan nilai efektivitas sebesar 97.02% dan efisiensi sebesar 93.33%.
RIWAYAT HIDUP
Penulis dilahirkan di Rembang pada tanggal 20 Juni 1986 sebagai anak kedua dari tiga bersaudara dari pasangan Ayahanda Sapar dan Ibu Harni.
Penulis menyelesaikan pendidikan menengah atas di SMA Negeri 2 Rembang pada tahun 2004. Pada tahun yang sama penulis berkesempatan untuk melanjutkan studi di Institut Pertanian Bogor (IPB) melalui jalur Undangan Seleksi Masuk Institut Pertanian Bogor (USMI) sebagai civitas akademika S1 Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah SWT atas limpahan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan karya ilmiah ini. Sholawat dan salam semoga senantiasa tercurah kepada Nabi besar Muhammad SAW, keluarganya, para sahabat, serta para pengikutnya.
Penulis menyampaikan penghargaan dan terima kasih kepada Bapak Irman Hermadi, S.Kom, MS selaku pembimbing pertama, atas bimbingan, dukungan moral, nasehat, ilmu, dan waktu yang diluangkan untuk membimbing penulis, sehingga penelitian ini dapat diselesaikan dengan baik. Penulis juga menyampaikan terima kasih kepada Bapak Sony Hartono Wijaya, S.Kom selaku pembimbing kedua, atas bimbingan, waktu yang diluangkan, dan bantuannya dalam mempercepat proses penyelesaian penelitian ini. Penulis juga mengucapkan terima kasih kepada Bapak Toto Haryanto, S.Kom yang berkenan sebagai moderator, serta Bapak Aziz Kustiyo, S.Si, M.Kom yang berkenan sebagai penguji.
Penulis menyampaikan terima kasih dan penghargaan yang mendalam kepada seluruh keluarga, terutama Bapak dan Ibu yang telah memberikan dukungan moral, kasih sayang, doa, serta pengorbanannya selama ini. Penulis menyampaikan terima kasih kepada Halida atas dukungan moral, semangat, keceriaan, kebersamaan, dan pengorbanan selama penulis menyelesaikan skripsi. Penulis menyampaikan terima kasih kepada saudara Arif Nurwidyantoro yang telah rela meminjamkan komputer dan saran yang diberikan selama ini, teman-teman Sengkederz (Arif, Pandu, dan Ferdi), Apemerz, Mangroverz, Trackers, HKRBerz dan teman-teman satu bimbingan (Welly, Teny, Deny, Udin, Wawan, Yohan) atas dukungan dan masukan yang diberikan. Terima kasih kepada seluruh teman-teman seperjuangan Ilkomerz’41 atas dukungan dan kebersamaan selama menuntut ilmu di Ilmu Komputer IPB, serta Ilkomerz seluruhnya.
Sebagaimana manusia yang tidak luput dari kesalahan, penulis menyadari bahwa karya ilmiah ini jauh dari sempurna. Namun penulis berharap semoga karya ilmiah ini dapat bermanfaat bagi siapapun yang membacanya.
Bogor, 19 Juli 2008
DAFTAR ISI
Halaman
DAFTAR GAMBAR ... v
DAFTAR LAMPIRAN ... v
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan ... 1
Ruang Lingkup ... 1
Manfaat ... 1
TINJAUAN PUSTAKA ... 1
Masalah Penjadwalan Perkuliahan ... 1
Persyaratan Penjadwalan ... 1
Kesulitan Masalah Penjadwalan ... 2
Efektivitas dan Efisiensi Penjadwalan ... 2
Algoritme Genetika ... 2
METODE PENELITIAN ... 5
Studi Pustaka ... 5
Pembentukan Data Simulasi ... 5
Pengembangan Sistem ... 6
Pengujian dan Analisis ... 7
Lingkungan Pengembangan Sistem ... 7
HASIL DAN PEMBAHASAN... 7
Percobaan 1 Menentukan nilai parameter Algoritme Genetika yang paling optimal ... 7
Percobaan 2 Membandingkan penggunaan data mahasiswa safe dan unsafe ... 9
Percobaan 3 Mengetahui pengaruh perubahan jumlah slot waktu dan ruang ... 9
KESIMPULAN DAN SARAN... 11
Kesimpulan ... 11
Saran ... 11
v
DAFTAR GAMBAR
Halaman
1 One-point crossover. ... 4
2 Two-point crossover. ... 4
3 N-point crossover. ... 4
4 Skema metodologi penelitian. ... 5
5 Representasi kromosom. ... 6
6 Grafik rata-rata pelanggaran crossover. ... 8
7 Grafik rata-rata generasi crossover. ... 8
8 Grafik rata-rata pelanggaran mutasi. ... 8
9 Grafik rata-rata generasi mutasi. ... 8
10 Grafik rata-rata pelanggaran populasi. ... 8
11 Grafik rata-rata generasi populasi. ... 8
12 Grafik pelanggaran data mahasiswa safe dan unsafe. ... 9
13 Grafik rata-rata pelanggaran. ... 10
14 Grafik efektivitas dan efisiensi. ... 10
DAFTAR LAMPIRAN
Halaman 1 Data mahasiswa ... 132 Data pengajar ... 14
3 Data mata kuliah ... 15
4 Data 30 slot waktu ... 18
5 Data 35 slot waktu ... 19
6 Data 40 slot waktu ... 20
7 Data ruang ... 21
8 Data aktivitas perkuliahan ... 22
9 Uji Crossover ... 25
10 Uji mutasi ... 26
11 Uji Populasi ... 28
12 Uji data mahasiswa safe dan unsafe ... 29
13 Uji slot waktu dan ruang ... 30
14 Antarmuka aplikasi penjadwalan perkuliahan menggunakan Algoritme Genetika ... 32
15 Kromosom jadwal ... 33
PENDAHULUAN
Latar BelakangPenjadwalan merupakan salah satu permasalahan pengalokasian aktivitas perkuliahan ke dalam slot waktu yang telah ditentukan. Lebih spesifik lagi penjadwalan perkuliahan merupakan masalah penempatan jadwal suatu aktivitas kuliah tertentu pada slot waktu dan ruang yang telah ditentukan. Penyelesaian masalah penjadwalan perkuliahan dalam jumlah yang sangat besar hingga saat ini masih menjadi permasalahan yang rumit untuk diselesaikan secara manual. Persyaratan-persyaratan yang harus dipenuhi menambah semakin kompleks dan rumitnya penyelesaian masalah penjadwalan. Semakin banyaknya persyaratan yang diajukan maka akan mempengaruhi lama waktu penyelesaian dan tingkat optimalitas output yang dihasilkan.
Algoritme Genetika merupakan algoritme pencarian yang didasarkan atas seleksi alami dan genetik yang pertama kali dikembangkan oleh John Holland dan mahasiswanya di University of Michigan (Goldberg 1989). Algoritme Genetika merupakan salah satu algoritme yang dapat menemukan solusi global yang paling optimal dalam ruang pencarian yang sangat besar dan kompleks. Algoritme Genetika dapat digunakan untuk menyelesaikan masalah penjadwalan perkuliahan.
Penelitian yang dilakukan oleh Tamba (2004) menghasilkan sebuah sistem yang mampu menyelesaikan masalah penjadwalan perkuliahan menggunakan Algoritme Genetika (studi kasus FMIPA IPB). Namun, penelitian yang dilakukan belum mengakomodasi masalah penjadwalan ruangan. Oleh karena itu, penelitian yang dilakukan merupakan tindak lanjut dari penelitian sebelumnya. Penelitian yang dilakukan, diharapkan dapat menerapkan Algoritme Genetika dengan menggunakan representasi kromosom yang berbeda sehingga dapat menyempurnakan kekurangan penelitian sebelumnya. Selain itu, penelitian ini juga diharapkan dapat memperoleh informasi berupa analisis kinerja dari Algoritme Genetika yang diterapkan pada masalah penjadwalan perkuliahan.
Tujuan
Tujuan dari penelitian ini adalah menyempurnakan penelitian sebelumnya agar jadwal yang dihasilkan dapat mengakomodasi masalah penjadwalan ruangan. Sekaligus
menerapkan dan menganalisis kinerja dari Algoritme Genetika untuk masalah penjadwalan perkuliahan.
Ruang Lingkup
Ruang lingkup dari penelitian ini adalah : 1 Penelitian dibatasi pada penjadwalan
perkuliahan mahasiswa phasing out.
2 Data yang digunakan dalam penelitian ini adalah data yang dibentuk secara manual. 3 Penelitian belum mengakomodasi masalah
penjadwalan mahasiswa yang mengulang atau belum mengambil mata kuliah pada waktu yang telah ditentukan.
4 Satuan slot waktu terkecil untuk aktivitas perkuliahan adalah tiga SKS (Satuan Kredit Semester).
Manfaat
Penelitian ini diharapkan dapat membantu proses pembuatan jadwal perkuliahan yang mengakomodasi masalah penjadwalan ruangan dan memberikan informasi berupa analisis kinerja penerapan Algoritme Genetika dalam penyelesaian masalah penjadwalan perkuliahan.
TINJAUAN PUSTAKA
Masalah Penjadwalan PerkuliahanKomponen dari masalah penjadwalan perkuliahan adalah :
Kelompok dari mahasiswa Kelompok dari pengajar Kelompok dari mata kuliah Kelompok dari ruangan
Kelompok dari slot waktu yang telah ditentukan
Aktivitas perkuliahan merupakan gabungan dari kelompok mahasiswa, dosen yang mengajar, dan mata kuliah yang diajarkan. Permasalahan yang sebenarnya dihadapi dalam kasus ini adalah permasalahan penempatan beberapa aktivitas perkuliahan yang ada ke dalam dimensi slot waktu dan ruangan yang telah ditentukan sehingga diperoleh solusi yang paling optimal. Solusi paling optimal dapat diperoleh ketika pelanggaran terhadap persyaratan-persyaratan yang diberikan berjumlah paling sedikit atau tidak ada.
Persyaratan Penjadwalan
2 suatu institusi untuk menyelenggarakan sebuah
kegiatan perkuliahan. Persyaratan-persyaratan tersebut adalah :
1 Hanya ada satu kegiatan perkuliahan yang dapat berlangsung dalam satu ruangan dalam satu waktu tertentu.
2 Setiap ruangan memiliki keterbatasan kapasitas daya tampung mahasiswa.
3 Setiap pengajar hanya mengajar satu kegiatan perkuliahan dalam satu waktu tertentu.
4 Satu kelompok mahasiswa hanya mengikuti satu kegiatan perkuliahan dalam satu waktu tertentu.
Kesulitan Masalah Penjadwalan
Kesulitan yang dihadapi dalam masalah penjadwalan adalah (Tamba 2004) :
1 Persyaratan khusus yang ditambahkan akan menambah lama waktu komputasi secara polinomial dalam pencarian solusi.
2 Perancangan metode heuristik yang efektif merupakan salah satu pekerjaan yang tidak mudah untuk dilakukan. Penggunaan prinsip heuristik untuk memotong ruang pencarian solusi yang tidak perlu, tidak dapat menjamin dapat menemukan solusi yang optimal atau mendekati optimal.
3 Tingkat visibilitas dari penjadwalan yang dihasilkan sangat dipengaruhi oleh beberapa persyaratan yang harus dipenuhi. Banyaknya persyaratan yang diajukan akan membuat masalah penjadwalan terlihat lebih kompleks dan sulit untuk diselesaikan. 4 Masalah penjadwalan sering terbentur
dengan persyaratan di dunia nyata yang tidak dapat direpresentasikan dengan tepat ke dalam sistem.
Efektivitas dan Efisiensi Penjadwalan
Tingkat efektivitas penjadwalan berkaitan erat dengan jumlah pelanggaran yang dihasilkan terhadap jumlah aktivitas perkuliahan yang dijadwalkan. Tingkat efektivitas penjadwalan dapat dirumuskan sebagai berikut :
0%
Tingkat efisiensi penjadwalan berkaitan erat dengan jumlah sumber daya yang tersedia dengan jumlah aktivitas perkuliahan yang dijadwalkan. Sumber daya yang dimaksud adalah ketersediaan slot waktu dan ruangan. Tingkat efisiensi suatu jadwal dapat dirumuskan sebagai berikut :
Jadwal yang baik adalah sebuah jadwal yang memiliki nilai efektivitas dan efisiensi terbaik.
Algoritme Genetika
Algoritme Genetika merupakan bentuk algoritme pencarian solusi yang paling optimal berdasarkan pada mekanisme seleksi alam dan sifat-sifat genetika alamiah (Goldberg 1989). Kemunculan Algoritme Genetika banyak diinspirasikan oleh teori-teori yang ada dalam ilmu biologi, sehingga banyak istilah dan konsep-konsep ilmu biologi yang digunakan dalam Algoritme Genetika. Istilah-istilah biologi yang digunakan dalam Algoritme Genetika dapat dilihat pada Tabel 1.
Tabel 1 Istilah Biologi yang digunakan dalam Algoritme Genetika Istilah Biologi dalam Algoritme Genetika Definisi dalam Algoritme Genetika
Kromosom Solusi dari suatu permasalahan
Gen Bagian dari suatu solusi
Lokus Posisi suatu gen dalam kromosom
Allele Nilai dari suatu gen
Fenotip Bentuk solusi dalam nilai sebenarnya
Genotip Bentuk solusi dalam nilai yang disandikan
Crossover Pindah
silang/pertukaran string bit kromosom antar
parent
Mutasi Perubahan nilai string bit kromosom
Tahapan Algoritme Genetika
Tahapan dari Algoritme Genetika adalah (Lawrence 1991):
1 Inisialisasi populasi 2 Evaluasi populasi
3 Memilih anggota populasi yang terbaik untuk membentuk populasi baru atau disebut dengan proses seleksi.
5 Evaluasi kromosom yang baru dan memasukkan ke dalam populasi.
6 Jika memenuhi kriteria termination, proses berhenti dan mengembalikan kromosom terbaik, jika belum maka kembali ke tahap dua.
Algoritme Genetika mulai melakukan pencarian solusi dengan melakukan inisialisasi populasi terlebih dahulu. Selanjutnya dilakukan proses evaluasi dan seleksi terhadap populasi yang terbentuk. Proses seleksi dilakukan berdasarkan fungsi fitness yang telah ditentukan. Individu yang memenuhi nilai
fitness yang telah ditentukan akan bertahan hidup dan menentukan generasi berikutnya. Tahap selanjutnya, melalui operator rekombinasi dan mutasi, gen akan mengalami pengubahan materi genetik untuk membentuk generasi baru.
Operator rekombinasi bertugas menukar susunan genetik dari individu yang dipilih secara acak pada bagian titik potong tertentu. Operator mutasi bertugas melakukan pembalikan gen secara acak untuk membentuk individu baru. Satu iterasi dari Algoritme Genetika dianggap sebagai satu generasi.
Populasi ini selanjutnya secara terus menerus akan membentuk sebuah generasi yang lebih baik dari generasi-generasi sebelumnya. Hal ini disebabkan oleh kromosom yang memiliki nilai fitness relatif baik, akan bertahan hidup dan menjadi penerus untuk generasi-generasi selanjutnya. Sebaliknya, jika kromosom tersebut relatif buruk maka akan mati.
Komponen Utama Algoritme Genetika
Menurut Michalewicz (1996), Algoritme Genetika harus memiliki lima komponen berikut :
1 Representasi genetik dari setiap solusi yang mungkin dari suatu permasalahan.
2 Cara pembentukan populasi awal atau inisialisasi populasi
3 Fungsi evaluasi yang berperan menilai
fitness dari solusi yang mungkin.
4 Operator genetik yang mengubah komposisi kromosom.
5 Nilai parameter yang digunakan dalam Algoritme Genetika, meliputi ukuran populasi, nilai probabilitas yang diterapkan dalam operator genetik (seleksi, crossover,
mutasi).
Representasi Kromosom
Representasi kromosom dari solusi suatu permasalahan harus dilakukan sebelum dilakukan inisialisasi populasi. Hal ini disebut juga dengan encoding. Encoding schema
merupakan cara menerjemahkan masalah ke dalam framework Algoritme Genetika.
Inisialisasi Populasi
Inisialisasi populasi merupakan salah satu tahapan awal yang paling penting dalam Algoritme Genetika agar menghasilkan solusi yang optimal. Inisialisasi populasi merupakan tahap pembentukan populasi yang dibentuk dari sekumpulan individu secara acak.
Fungsi Fitness (Fitness Function)
Suatu individu atau kromosom dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Fungsi yang digunakan untuk mengukur nilai kecocokan atau derajat optimalitas suatu kromosom disebut dengan
fitness function (Suyanto 2005).
Nilai yang dihasilkan dari fungsi tersebut menandakan seberapa optimal solusi yang diperoleh. Nilai yang dihasilkan oleh fungsi
fitness merepresentasikan seberapa banyak jumlah persyaratan yang dilanggar, sehingga dalam kasus penjadwalan perkuliahan semakin kecil jumlah pelanggaran yang dihasilkan maka solusi yang dihasilkan akan semakin baik.
Elitisme
Elitisme merupakan salah satu teknik dari Algoritme Genetika dalam mempertahankan kromosom yang memiliki nilai fitness terbaik untuk tetap bertahan hidup di generasi berikutnya. Elitisme dalam teknisnya dilakukan dengan meng-copy satu kromosom jika jumlah populasi ganjil, meng-copy dua kromosom jika jumlah populasi genap, atau dengan ketentuan nilai probabilitas tertentu.
Seleksi (Selection)
4 1 Hitung nilai fitness eval(vi) untuk tiap
kromosom vi ( i = 1, ..., population_size). 2 Hitung total fitness untuk populasi:
size pop i i v eval F _ 1 )
3 Hitung peluang seleksi pi untuk tiap kromosom vi ( i = 1, ..., population_size).
F v eval
p i
i
4 Hitung peluang kumulatif qi untuk tiap kromosom vi( i = 1, ..., population_size).
i j j i p q 1
5 Proses seleksi dimulai dengan memutar Roulette Wheel sebanyak ukuran populasi (population-size). Pada sekali putaran, sebuah kromosom dipilih untuk membentuk populasi yang baru dengan cara berikut:
- Bangkitkan sebuah bilangan acak r pada selang [0, 1].
- Jika r < q1 maka pilih kromosom pertama (v1); selainnya pilih kromosom ke-i vi (2 ≤ i ≤ population_size) sehingga qi-1 < r < qi.
Rekombinasi (Crossover)
Crossover merupakan salah satu operator Algoritme Genetika yang sangat penting peranannya dalam menghasilkan sebuah solusi yang optimal. Crossover dapat dibedakan menjadi tiga jenis cara yang berbeda dalam menentukan titik segmen pertukaran string bit kromosomnya (Tamba 2004).
Pertama, One-point Crossover adalah sebuah cara penentuan titik segmen pertukaran string bit kromosom dengan memilih satu titik potong pertukaran. Titik potong dipilih secara acak, kemudian bagian pertama dari parent 1 digabungkan dengan bagian kedua parent 2. Skema One-point crossover dapat dilihat pada Gambar 1.
Gambar 1 One-point crossover.
Kedua, Two-point crossover yang merupakan perkembangan dari cara sebelumnya dengan memilih dua titik potong secara acak untuk melakukan pertukaran string bit kromosom. Skema Two-point crossover dapat dilihat pada Gambar 2.
Gambar 2 Two-point crossover.
Ketiga, jika jumlah gen dalam kromosom berjumlah sangat banyak maka penentuan titik potong pertukaran string bit kromosom dapat dilakukan dengan memilih lebih dari dua titik pertukaran yang dipilih secara acak. Cara yang ketiga ini disebut dengan N-point Crossover, n merupakan jumlah titik potong pertukaran yang dipilih secara acak. Skema N-point crossover
dapat dilihat pada Gambar 3.
Gambar 3 N-point crossover.
Mutasi (Mutation)
Mutasi adalah salah satu operator Algoritme Genetika yang mengubah nilai gen pada kromosom untuk mendapatkan keturunan yang lebih baik dari generasi sebelumnya.
Termination
Tahap termination dari Algoritme Genetika dapat dilakukan dengan beberapa cara, antara lain :
Menentukan jumlah generasi maksimum.
Menentukan kriteria dari solusi yang diharapkan.
Menentukan nilai fitness yang ingin dicapai.
Kombinasi dari kondisi-kondisi di atas. 0 1 1 0 0 1
0 0 1 1 1 1
0 1 1 1 0 1
0 0 1 0 1 1
Parent 1
Parent 2
Child 1
Child 2
0 1 0 0 0 1
0 0 1 1 1 0
0 1 1 1 0 0
Parent 1
Parent 2
Child 1
Child 2 0 0 0 0 1 1
Parent 1
Parent 2
Child 1
Child 2
0 1 1 0 0 1
0 0 1 1 1 1
0 0 1 0 0 1
METODE PENELITIAN
Tahap-tahap dalam pengerjaan penelitian dilakukan sesuai dengan metode penelitian yang dapat dilihat pada Gambar 4.
Gambar 4 Skema metodologi penelitian.
Studi Pustaka
Pada tahap ini, dilakukan pengumpulan informasi dari buku, jurnal, dan artikel mengenai Algoritme Genetika dalam penyelesaian masalah penjadwalan perkuliahan. Literatur-literatur yang digunakan dapat dilihat pada bagian daftar pustaka.
Pembentukan Data Simulasi
Data yang digunakan dalam simulasi penelitian ini adalah data dari delapan departemen yang ada di FMIPA IPB. Delapan departemen tersebut adalah :
1 Departemen Statistika
2 Departemen Geofisika dan Meteorologi 3 Departemen Biologi
4 Departemen Kimia 5 Departemen Matematika 6 Departemen Ilmu Komputer
7 Departemen Fisika 8 Departemen Biokimia
Data yang digunakan berasal dari Buku Panduan Program Sarjana IPB edisi 2006 (revisi). Selanjutnya, data yang diperoleh diolah atau dilakukan pengkodean untuk didapatkan data mahasiswa, data pengajar, data mata kuliah, data slot waktu, dan data aktivitas perkuliahan.
Data kelompok mahasiswa dibentuk dari 8 departemen dari 3 angkatan (41, 42, dan 43) sehingga diperoleh 24 buah data mahasiswa. Penelitian ini menggunakan dua istilah dalam penentuan data mahasiswa, yaitu data mahasiswa safe dan data mahasiswa unsafe.
Data mahasiswa safe adalah data mahasiswa yang mengabaikan kapasitas ruangan dan jumlah mahasiswa. Sedangkan data mahasiswa
unsafe adalah data mahasiswa yang mempertimbangkan kapasitas ruangan dan jumlah mahasiswa. Data mahasiswa yang terbentuk dapat dilihat pada Lampiran 1.
Data pengajar dibentuk dengan pendekatan masing-masing departemen terdapat 7 pengajar sehingga jika terdapat 8 departemen maka diperoleh 56 buah data pengajar. Data pengajar yang terbentuk dapat dilihat pada Lampiran 2.
Data mata kuliah dibentuk dengan pendekatan bahwa mahasiswa dari masing-masing angkatan untuk setiap departemen mengambil 7 mata kuliah dalam satu semester, sehingga jika terdapat 24 kelompok mahasiswa maka akan terbentuk data mata kuliah sebanyak 168 buah. Data mata kuliah yang terbentuk dapat dilihat pada Lampiran 3.
Data slot waktu dalam penelitian ini dibuat sebanyak 3 macam. Pertama data slot waktu berjumlah 6 buah per hari sehingga dalam seminggu (Senin-Jumat) diperoleh data sebanyak 30 buah. Kedua, data berjumlah 7 buah per hari sehingga diperoleh 35 buah. Ketiga, data berjumlah 8 buah per hari sehingga diperoleh data sebanyak 40 buah. Data slot waktu dapat dilihat pada Lampiran 4, 5, dan 6. Data ruang dalam penelitian ini dibedakan menjadi 3 macam data, yaitu data ruang yang berjumlah 5, 6, dan 7 ruang. Data ruang yang terbentuk dapat dilihat pada Lampiran 7.
Pembentukan data aktivitas perkuliahan dalam penelitian ini dilakukan secara manual. Data dibuat agar lebih mirip atau mendekati dengan keadaan sebenarnya. Pendekatan yang dilakukan, yaitu jumlah mata kuliah yang diambil oleh setiap angkatan mahasiswa dalam satu semester berjumlah 7 mata kuliah dan Mulai Studi Pustaka Perumusan Masalah Pembentukan Data Simulasi PengembanganSistem
Data Simulasi Sistem
6 setiap pengajar mengajar sebanyak 3 mata
kuliah di setiap departemen. Dari pendekatan yang dilakukan, sehingga diperoleh data aktivitas sebanyak 168 buah yang merupakan hasil penggabungan dari 24 data kelompok mahasiswa dengan 56 data pengajar dan 168 data mata kuliah. Data aktivitas perkuliahan yang terbentuk dapat dilihat pada Lampiran 8. Proses pengkodean dalam penelitian ini dilakukan secara manual oleh peneliti.
Pengembangan Sistem
Pengembangan sistem dimulai dengan pembuatan kode program sesuai dengan tahapan yang ada dalam Algoritme Genetika. Tahapan yang dilakukan adalah:
1 Representasi Kromosom
Kromosom pada penelitian ini direpresentasikan ke dalam bentuk matrik aktivitas perkuliahan. Matrik aktivitas perkuliahan adalah sebuah matrik yang berisi aktivitas perkuliahan yang terdiri dari mahasiswa, pengajar, dan mata kuliah yang diajarkan selama satu semester. Baris pada matrik aktivitas perkuliahan merepresentasikan jumlah slot waktu yang digunakan selama satu minggu perkuliahan (Senin – Jumat). Kolom pada matrik aktivitas perkuliahan merepresentasikan jumlah ruangan yang tersedia. Representasi kromosom dalam penelitian ini dapat dijelaskan pada Gambar 5.
Aktivitas perkuliahan dalam matrik aktivitas perkuliahan dikodekan sebagai berikut :
Mahasiswa : KOM41 (mahasiswa Ilmu Komputer angkatan 41) Dosen : WAK (Wisnu Ananta Kusuma) Mata kuliah : KOM271 (Basis Data)
Aktivitas perkuliahan dikodekan menjadi ‘&KOM41&&WAK&&KOM271&’.
Gambar 5 Representasi kromosom.
2 Inisialisasi Populasi
Populasi dibentuk dari n matrik aktivitas perkuliahan yang masing-masing matrik berisi seluruh aktivitas perkuliahan yang ditempatkan secara acak (n adalah ukuran populasi). Jika jumlah slot waktu ada 30 slot dan ruang ada 6 ruang maka matrik yang terbentuk akan berukuran 30x6 sebanyak n buah matrik.
3 Fungsi fitness
Fitness akan dihitung berdasarkan jumlah pelanggaran yang terjadi pada setiap kromosom/matrik aktivitas kuliah. Pelanggaran yang dimaksud adalah :
1 Ketidaksesuaian antara jumlah mahasiswa dengan kapasitas ruangan.
2 Terdapat mahasiswa yang sama pada ruangan yang berbeda dalam satu slot waktu.
3 Terdapat pengajar yang sama pada ruangan yang berbeda dalam satu slot waktu.
Nilai fitness dalam penelitian ini dikatakan terbaik jika jumlah pelanggaran dari setiap kromosom diperoleh nilai yang paling kecil.
4 Elitisme
Jika jumlah populasi genap maka elitisme dalam penelitian ini dilakukan dengan
meng-copy dua buah kromosom yang memiliki nilai
fitness terbaik. Jika jumlah populasi ganjil maka hanya meng-copy satu buah kromosom yang memiliki nilai fitness terbaik. Kromosom elit akan bertahan hidup dalam generasi selanjutnya tanpa melalui proses rekombinasi (Crossover) dan mutasi (Mutation).
5 Seleksi (Selection)
Skema seleksi yang digunakan dalam penelitian ini adalah Roulette Wheel. Penggunaan skema ini memungkinkan kromosom yang memiliki nilai fitness terbaik akan memiliki peluang terpilih yang besar, sehingga populasi baru yang dihasilkan dimungkinkan akan terdiri dari sekumpulan kromosom yang memiliki nilai fitness terbaik. 6 Rekombinasi (Crossover)
7 Mutasi (Mutation)
Mutasi dalam penelitian ini dilakukan dengan menukar posisi elemen matrik secara acak. Pertukaran dilakukan dengan menentukan dua buah posisi atau sepasang posisi elemen matrik secara acak untuk dilakukan pertukaran. Jumlah kromosom yang dimutasi ditentukan secara acak dengan nilai probabilitas tertentu.
8 Termination
Penelitian ini menggunakan maksimum generasi, nilai threshold fitness, dan stall generation sebagai kriteria berhentinya proses Algoritme Genetika. Algoritme Genetika akan berhenti ketika diperoleh sebuah individu yang memiliki nilai fitness sama dengan nilai
threshold yang didefinisikan sebelumnya atau Algoritme Genetika akan berhenti ketika mencapai batas maksimum generasi. Algoritme Genetika juga akan berhenti ketika nilai fitness
yang dihasilkan tidak berubah selama generasi tertentu (stall generation).
Pengujian dan Analisis
Pengujian dan analisis dalam penelitian ini dibagi menjadi beberapa tahap. Tahap pertama, yaitu untuk mengetahui kombinasi nilai parameter (crossover, mutasi, maksimum generasi, jumlah populasi, threshold, dan stall generation) terbaik sehingga menghasilkan jumlah pelanggaran yang paling kecil. Tahap kedua, yaitu untuk mengetahui perbedaan nilai
fitness ketika digunakan data mahasiswa safe
dan data mahasiswa unsafe. Tahap ketiga dilakukan untuk mengetahui pengaruh perubahan sumber daya yaitu ketersediaan slot waktu dan ruangan terhadap jumlah pelanggaran yang dihasilkan ketika digunakan data mahasiswa unsafe.
Lingkungan Pengembangan Sistem
Penelitian ini dikerjakan menggunakan perangkat keras komputer desktop dengan spesifikasi sebagai berikut :
Processor : Intel Pentium Dual Core CPU 1.66 GHz,
Memori : 960 MB, dan
Harddisk : 80 GB.
Perangkat lunak yang digunakan dalam pengembangan sistem adalah :
Sistem operasi : Windows XP,
Tools : Matlab 7.0.1, dan
Media penyimpanan data : Microsoft Excel 2003.
HASIL DAN PEMBAHASAN
Pada penelitian ini, percobaan dilakukan sebanyak tiga kali. Percobaan pertama dilakukan untuk menentukan nilai parameter Algoritme Genetika yang paling optimal. Percobaan kedua dilakukan untuk mengetahui perbedaan hasil pelanggaran dari penggunaan data mahasiswa safe dan unsafe. Percobaan ketiga dilakukan untuk mengetahui pengaruh perubahan slot waktu dan ruang terhadap pelanggaran yang dihasilkan.Percobaan dilakukan menggunakan aplikasi sederhana yang dibuat menggunakan Matlab 7.0.1. Antarmuka grafis dari aplikasi tersebut dapat dilihat pada Lampiran 14. Output dari aplikasi tersebut berupa kromosom jadwal yang tersimpan dalam file Microsoft Excel 2003.
Kromosom jadwal dapat dilihat pada Lampiran 15. Selanjutnya, kromosom
jadwal diolah menjadi jadwal yang lebih representatif agar mudah dipahami. Hasil olah kromosom jadwal dapat dilihat pada Lampiran 16.
Percobaan 1
Percobaan pertama dilakukan untuk mengetahui kombinasi nilai parameter terbaik sehingga diperoleh jumlah pelanggaran yang paling sedikit. Percobaan dilakukan pengulangan masing-masing sebanyak 5 kali. Percobaan untuk mengetahui nilai parameter
crossover terbaik dilakukan dengan mengubah nilai parameter crossover, sedangkan nilai parameter yang lain dibuat konstan. Begitu juga untuk memperoleh nilai parameter mutasi dan jumlah populasi, nilai parameter bukan uji dibuat konstan. Data yang digunakan adalah data aktivitas sebanyak 168 buah, data mahasiswa safe, data slot waktu 30 buah, dan data ruang 6 buah. Percobaan ini menggunakan nilai parameter mutasi, maksimum generasi, jumlah populasi, threshold, dan stall generation
secara berurutan 0.1, 500, 50, 0, dan 100.
Nilai parameter crossover yang diuji adalah 0.6, 0.7, 0.8, dan 0.9. Hasil pengujian dapat dilihat pada Lampiran 9. Gambar 6 menunjukkan plotting nilai crossover dengan rata-rata pelanggaran yang dihasilkan, sedangkan Gambar 7 menunjukkan rata-rata generasi yang dicapai dalam memperoleh nilai
fitness yang optimal. Hasil pengujian menunjukkan bahwa nilai parameter crossover
8 Gambar 6 Grafik rata-rata pelanggaran
crossover.
Gambar 7 Grafik rata-rata generasi crossover.
Nilai parameter mutasi yang diuji adalah 0.1, 0.2, 0.3, 0.4, 0.5, dan 0.6. Setiap pengujian dilakukan pengulangan sebanyak 5 kali dengan menggunakan nilai parameter crossover terbaik yang diperoleh pada percobaan sebelumnya, yaitu 0.7. Hasil pengujian dapat dilihat pada Lampiran 10. Hasil rata-rata pelanggaran dalam setiap pengujian dapat dilihat pada Gambar 8, sedangkan rata-rata generasi yang dicapai dalam setiap pengujian dapat dilihat pada Gambar 9. Hasil pengujian menunjukkan bahwa nilai mutasi yang paling optimal adalah 0.2.
Gambar 8 Grafik rata-rata pelanggaran mutasi.
Gambar 9 Grafik rata-rata generasi mutasi.
Jumlah populasi yang diuji adalah 40, 50, dan 60. Setiap pengujian dilakukan pengulangan sebanyak 5 kali. Nilai parameter
crossover dan mutasi yang digunakan adalah 0.7 dan 0.2. Hasil pengujian dapat dilihat pada Lampiran 11, sedangkan hasil rata-rata pelanggaran dan rata-rata generasi dari setiap pengujian dapat dilihat pada Gambar 10 dan Gambar 11. Hasil pengujian menunjukkan bahwa jumlah populasi yang paling optimal adalah 50.
Gambar 10 Grafik rata-rata pelanggaran populasi.
Penentuan maksimum generasi dilakukan tanpa pengujian karena dari percobaan sebelumnya dapat dilihat bahwa rata-rata nilai optimal dicapai di bawah 250 generasi, sehingga pemberian nilai 500 pada maksimum generasi tidak terlalu bermasalah. Stall generation yang digunakan adalah 100, penentuan nilai ini diambil berdasarkan nilai rata-rata selisih generasi pada satu pengulangan disaat terjadi perbaikan nilai fitness. Penentuan nilai stall generation yang terlalu kecil mengakibatkan algoritme berhenti terlalu cepat sehingga hasil yang diperoleh tidak optimal, sebaliknya nilai stall generation yang terlalu besar mengakibatkan proses semakin lama.
Percobaan 2
Percobaan kedua dilakukan dengan mengulang proses uji sebanyak 5 kali menggunakan data aktivitas, data slot waktu, dan data ruang yang sama dengan percobaan pertama. Nilai parameter yang digunakan pada
crossover, mutasi, maksimum generasi, jumlah populasi, threshold, dan stall generation
diambil dari percobaan pertama yang memiliki nilai fitness terbaik. Crossover, mutasi, maksimum generasi, jumlah populasi,
threshold, dan stall generation yang digunakan secara berurutan bernilai 0.7, 0.2, 500, 50, 0, dan 100.
Percobaan kedua dilakukan untuk melihat perbedaan hasil yang diperoleh ketika digunakan data mahasiswa safe dan unsafe.
Hasil percobaan menggunakan data mahasiswa
safe menunjukkan bahwa dari 5 kali pengulangan jumlah rata-rata pelanggaran yang dihasilkan adalah 2 buah, sedangkan percobaan yang menggunakan data mahasiswa unsafe
jumlah rata-rata pelanggaran yang dihasilkan sebanyak 12 buah. Hasil percobaan dapat dilihat pada Lampiran 12.
Hasil percobaan menunjukkan bahwa jumlah pelanggaran yang dihasilkan dari data mahasiswa unsafe lebih besar daripada data mahasiswa safe. Grafik pelanggaran yang dihasilkan dari data mahasiswa safe dan data mahasiswa unsafe dapat dilihat pada Gambar 12.
Gambar 12 Grafik pelanggaran data mahasiswa
safe dan unsafe.
Percobaan 3
Percobaan yang dilakukan sebelumnya menunjukkan bahwa jumlah pelanggaran yang dihasilkan dari data mahasiswa unsafe lebih besar daripada data mahasiswa safe. Hal ini kemungkinan dipengaruhi oleh ketersedian sumber daya yang ada atau lebih tepatnya ketersediaan slot waktu dan ruang. Percobaan ketiga dilakukan untuk mengetahui pengaruh perubahan sumber daya yang ada yaitu ketersediaan slot waktu dan ruangan terhadap jumlah pelanggaran yang dihasilkan ketika digunakan data mahasiswa unsafe. Percobaan ini akan menghasilkan kombinasi jumlah slot waktu dan ruangan yang tepat sehingga menghasilkan sebuah jadwal yang memiliki tingkat efisiensi dan efektivitas yang tinggi.
Percobaan dilakukan dengan melakukan 6 kali uji dan setiap uji dilakukan 5 kali pengulangan. Pada percobaan kali ini seluruh nilai parameter dan data dibuat konstan kecuali data slot waktu dan data ruangan. Nilai parameter yang digunakan adalah 0.7 untuk
10 Tabel 2 Tabel uji
Uji I II III IV V VI
Slot waktu per hari
6 7 7 8 6 7
Slot waktu per minggu
30 35 35 40 30 35
Jumlah ruang
6 5 6 5 7 7
Jumlah sumber daya
180 175 210 200 210 145
Hasil uji pertama menunjukkan bahwa nilai
fitness terbaik yang dicapai pada ulangan ke-4 berjumlah 5 buah pada generasi ke-500 dengan lama waktu proses 7974.84 detik. Hasil dari 5 kali pengulangan rata-rata nilai fitness yang diperoleh sebesar 8. Hasil uji kedua nilai fitness
terbaik dicapai pada ulangan ke-5 pada generasi ke-391 dengan jumlah pelanggaran sebanyak 11 buah dan lama proses 5560.81 detik, sedangkan rata-rata nilai fitness yang diperoleh sebesar 14. Hasil uji ketiga nilai fitness terbaik dicapai pada ulangan ke-3 dengan jumlah pelanggaran sebanyak 4 buah dicapai pada generasi ke-347 dengan lama proses 5939.56 detik, sedangkan rata-rata pelanggaran yang diperoleh sebesar 6. Hasil uji keempat nilai fitness terbaik dicapai pada ulangan ke-1 dengan jumlah pelanggaran sebanyak 3 buah pada generasi ke-500 dengan lama proses 7277.56 detik, sedangkan rata-rata nilai fitness yang diperoleh sebesar 8. Hasil uji kelima nilai fitness terbaik dicapai pada ulangan ke-3 dengan jumlah pelanggaran sebanyak 6 buah pada generasi ke-269 dengan lama proses 5052.73 detik, sedangkan rata-rata nilai fitness
yang diperoleh sebesar 8. Hasil uji keenam nilai fitness terbaik dicapai pada ulangan ke-1 dan ke-2 dengan jumlah pelanggaran sebanyak 4 buah. Pada ulangan ke-1 dicapai pada generasi ke-300 dengan lama proses 5938.63 detik, sedangkan pada ulangan ke-2 dicapai pada generasi ke-277 dengan lama proses 3722.47 detik. Rata-rata pelanggaran yang dihasilkan sebesar 6. Hasil uji keseluruhan dapat dilihat pada Lampiran 13. Nilai rata-rata pelanggaran dari seluruh pengujian adalah sebesar 8.3 yang ditunjukkan berupa garis lurus pada grafik. Hubungan antara rata-rata nilai
fitness yang dihasilkan terhadap masing-masing pengujian dapat dilihat pada Gambar 13.
Gambar 13 Grafik rata-rata pelanggaran. Hasil uji pertama menunjukkan bahwa tingkat efektivitas yang dicapai sebesar 97.02%, sedangkan tingkat efisiensi yang dicapai sebesar 93.33%. Hasil uji kedua memiliki tingkat efektivitas sebesar 93.45% dan tingkat efisiensi sebesar 96%. Hasil uji ketiga menunjukkan bahwa tingkat efektivitas yang dicapai sebesar 97.62%, sedangkan tingkat efisiensi yang dicapai sebesar 80%. Hasil uji keempat memiliki tingkat efektivitas sebesar 98.21% dan tingkat efisiensi sebesar 84%. Hasil uji kelima menunjukkan bahwa tingkat efektivitas yang dicapai sebesar 96.43%, sedangkan tingkat efisiensi yang dicapai sebesar 80%. Hasil uji keenam memiliki tingkat efektivitas sebesar 97.62% dan tingkat efisiensi sebesar 68.57%. Hubungan antara tingkat efektivitas dan efisiensi dari masing-masing pengujian dapat dilihat pada Gambar 14.
efektivitas dan efisiensi yang tidak terlalu besar. Pada pengujian pertama diperoleh nilai efektivitas dan efisiensi yang cukup tinggi dan selisih yang tidak terlalu besar, sehingga jadwal yang dihasilkan pada pengujian pertama merupakan hasil yang terbaik. Pada pengujian pertama nilai efektivitas yang dihasilkan sebesar 97.02% dan nilai efisiensi yang dihasilkan sebesar 93.33%.
KESIMPULAN DAN SARAN
KesimpulanPenelitian yang dilakukan telah berhasil menyempurnakan kekurangan pada penelitian sebelumnya dalam hal pengakomodasian masalah penjadwalan ruangan. Penelitian juga telah berhasil menerapkan Algoritme Genetika sebagai metode untuk menyelesaikan masalah penjadwalan perkuliahan.
Hasil dari penelitian ini menunjukkan bahwa kinerja Algoritme Genetika mencapai nilai optimal pada kombinasi nilai parameter
crossover 0.7, mutasi 0.2, jumlah populasi 50, maksimum generasi 500, threshold 0, dan stall generation 100. Hasil percobaan menunjukkan bahwa jumlah pelanggaran yang dihasilkan dari data mahasiswa unsafe lebih besar daripada data mahasiswa safe. Hasil percobaan pengalokasian 6 slot waktu per hari dan 6 ruang menghasilkan jadwal terbaik dengan nilai efektivitas sebesar 97.02% dan efisiensi sebesar 93.33%.
Saran
Penelitian ini dapat dikembangkan lagi untuk mengakomodasi masalah penjadwalan perkuliahan Mayor-Minor dan praktikum. Proses eksekusi Algoritme Genetika dapat dipercepat dengan menerapkan Algoritme Genetika Paralel.
DAFTAR PUSTAKA
Burke E, Elliman D, Weare R. 1994. A Genetic Algorithm Based University Timetabling System. Department of Computer Science.University of Nottingham. Goldberg D. 1989. Genetic Algorithm in
Search, Optimization, and Machine Learning. New York : Addison-Wesley Publishing Company.
Lawrence D. 1991. Handbook of Genetic Algorithms. New York : Van Nostrand Reinhold.
Michalewicz Z. 1996. Genetic Algorithms + Data Structure = Evolution Programs. New York: Springer-Verlag Berlin Heidelberg.
Suyanto. 2005. Algoritma Genetika dalam Matlab. Yogyakarta : Penerbit Andi. Tamba GMP. 2004. Sistem Penjadwalan
Lampiran 1 Data mahasiswa
No Mahasiswa Angkatan Kode Jumlah
mahasiswa
safe
Jumlah mahasiswa
unsafe
1 Statistika 41 STK41 60 55
2 Geofisika dan Meteorologi 41 GFM41 60 60
3 Biologi 41 BIO41 60 65
4 Kimia 41 KIM41 60 53
5 Matematika 41 MAT41 60 48
6 Ilmu Komputer 41 KOM41 60 80
7 Fisika 41 FIS41 60 68
8 Biokimia 41 BIOKIM41 60 45
9 Statistika 42 STK42 60 56
10 Geofisika dan Meteorologi 42 GFM42 60 49
11 Biologi 42 BIO42 60 57
12 Kimia 42 KIM42 60 58
13 Matematika 42 MAT42 60 61
14 Ilmu Komputer 42 KOM42 60 97
15 Fisika 42 FIS42 60 77
16 Biokimia 42 BIOKIM42 60 59
17 Statistika 43 STK42 60 70
18 Geofisika dan Meteorologi 43 GFM42 60 47
19 Biologi 43 BIO42 60 66
20 Kimia 43 KIM42 60 69
21 Matematika 43 MAT42 60 54
22 Ilmu Komputer 43 KOM42 60 64
23 Fisika 43 FIS42 60 62
14 Lampiran 2 Data pengajar
NO DOSEN KODE
1 Dr. Ir. Hari Wijayanto HAW
2 Ir. Kusman Sadik, M.Si KUS
3 Ir. Purwowidodo, MS PUR
4 Ir. Aji Hamim Wigena, M.S AHW 5 Dr. Ir. Irfiani. M.Si IRF
6 Bunawan Sunarlim BUS
7 Bambang Juanda BAJ
8 Ir. Bregas Budianto BRB
9 Ir. Heny Suharyono, M.S HES 10 Prof. Dr. Ir. Ahmad Bey AHB 11 Prof. Dr. Ir. Yonny Koesmaryono YOK
12 Dr. Ir. Rizaldi Boer RIB
13 Dr. Ir. Handoko HAN
14 Ir. Sobbry Effendy, M.Si SOE
15 Achmad Farajallah ACF
16 I.Muhadiono IMU
17 Soekisman T. SOT
18 Muhammad Jusuf MUJ
19 Agustin Wydia Gunawan AWG
20 Tedja Imas TEI
21 Anja Meryandini ANM
22 Hendra Adijuwana HEA
23 M. Anwar Nur MAN
24 Sri Mulyani SRM
25 Tetty Kemala TEK
26 Charlena CHA
27 Suminar Achmadi SUA
28 Zuraida Fatma ZUF
29 Ir. N. K. Kutha Ardana, M.S NKK 30 Dra. Nur Aliqtiningtyas, M NUA
31 Dr. Ir. Siswadi SIS
32 Ir. Fahren Bukhari, M.Sc FAB 33 Drs. Prapto Tri Supriyo PTS
34 Drs. Effendi Syahril EFS
35 Ir. Retno Budiarti, M.S REB 36 Ir. Julio Adisantoso, M.Kom JUA 37 Dr.Ir. Sri Nurdiati, M.Sc SRN 38 Ir. Agus Buono, M.Si, M.Kom AGB 39 Wisnu Ananta Kusuma, S.T. WAK 40 Aziz Kustiyo, S.Si. M.Kom AZK 41 Firman Ardiansyah, S.Kom FIA
42 Heru Sukoco HSU
43 Abd. Djamil Husin, M.Si ADH
44 Ardian Arief, M.Si ARA
45 Drs. Sulistiyosos G. MT SUL
46 Drs. Bambang Sugeng BAS
47 Ir. Hanedi Darmasetiawan HAD
48 Dr. Kiagus Dahlan KID
49 Drs. Moh. Nur Indro, M.Sc MNI
50 Laksmi Ambarsari LAA
51 Eman Kustaman EMK
52 I Made Artika IMA
53 Dimas Andrianto DIA
54 Djarot Sasongko HS DSH
55 Suryani SUR
Lampiran 3 Data mata kuliah
NO MATA KULIAH KODE
1 Fisiologi Tumbuhan Dasar BIO230
2 Fisiologi Mikrob BIO261
3 Taksonomi Tumbuhan Berpembuluh BIO271 4 Biologi Alga dan Bryophyta BIO272
5 Ekologi Dasar BIO220
6 Vertebrata BIO281
7 Genetika Dasar BIO240
8 Biologi Seluler dan Molekuler BIO340
9 Fisiologi Hewan BIO380
10 Evolusi BIO381
11 Pengenalan Keanekaragaman Hayati BIO300 12 Dasar Penulisan dan Penyajian Karya Ilmiah BIO390
13 Wanatani BIO320
14 Ilmu Lingkungan BIO321
15 Kolokium BIO491
16 Seminar BIO492
17 Prinsip Bioteknologi BIO440
18 Radiobiologi BIO401
19 Mikroteknik BIO403
20 Ekologi Vegetasi BIO420
21 Kultur Tanaman BIO432
22 Kimia Dasar III KIM201
23 Kimia Anorganik I KIM211
24 Kimia Organik I KIM221
25 Kimia Analitik I KIM231
26 Kimia Fisik I KIM241
27 Kimia Anorganik II KIM212
28 Kimia Organik II KIM222
29 Kimia Organik Fisik KIM323
30 Kimia Analitik III KIM333
31 Kimia Fisik III KIM343
32 Biokimia I KIM351
33 Biokimia II KIM352
34 Kimia Analitik IV KIM334
35 Kimia Fisik IV KIM344
36 Kimia Bioanorganik KIM415
37 Kimia Kuantum KIM445
38 Kimia Permukaan KIM446
39 Kimia Bahan Alam KIM425
40 Elektromalitik KIM438
41 Kimia Permukaan KIM446
42 Kimia Kuantum KIM445
43 Pemodelan Matematika MAT412
44 Aljabar Linear Lanjut MAT421 45 Pengantar Analisis Fungsional MAT452 46 Alir Jaringan dan Pengoperasian Diskret MAT461
47 Matematika Ekologi MAT481
48 Matematika Ekonomi MAT483
49 Analisis Real Lanjut MAT451
50 Kapita Selekta Matematika Industri MAT302 51 Pengenalan Teori Komputasi MAT374
52 Riset Operasi 2 MAT367
53 Matematika Keuangan MAT381
54 Kapita Selekta Matematika Ekonomi MAT301
55 Proses Stokastik MAT394
16 Lampiran 3 lanjutan
NO MATA KULIAH KODE
57 Aljabar Linear MAT221
58 Persamaan Diferensial Biasa MAT232
59 Geometri MAT241
60 Riset Operasi MAT262
61 Geometri MAT242
62 Graph Algoritmik MAT272
63 Kalkulus III MAT212
64 Metode Penelitian dan Telaah Pustaka STK492 65 Analisis Peubah Ganda STK424
66 Topik Khusus STK440
67 Ujian Komprehensif STK490
68 Seminar STK498
69 Pengendalian Mutu dan Reliabilitas STK435
70 Kolokium STK497
71 Komputasi Statistika STK381
72 Analisis Eksplorasi Data STK311 73 Perancangan Percobaan STK338
74 Metode Simulasi STK385
75 Analisis Deret Waktu STK322
76 Manajemen Data STK380
77 Metode Riset Operasi STK324
78 Pengantar Hitung Peluang STK201
79 Metode Statistika II STK212
80 Metode Penarikan Contoh STK242
81 Metode Statistika I STK210
82 Teori Statistika 1 STK202
83 Analisisi Data Kategorik STK313 84 Analisis dan Perancangan Survei STK441
85 Meteorologi Dinamik MET418
86 Kapita Selekta Meteorologi MET403
87 Meteorologi Satelit MET417
88 Metoda Klimatologi MET424
89 Analisis Hidrologi MET431
90 Teknik Penulisan Ilmiah MET402
91 Seminar MET405
92 Intrumentasi Meteorologi MET301
93 Meteorologi Tropika MET315
94 Biometeorologi MET322
95 Meteorologi Tropika MET315
96 Klimatologi Pertanian MET323 97 Model Simulasi Pertanian MET342
98 Analisis Meteorologi MET316
99 Meteorologi Fisik MET213
100 Meteorologi MET210
101 Pengantar Geosains MET200
102 Klimatologi MET221
103 Metode Observasi Cuaca dan Iklim MET211 104 Komputasi Meteorologi MET212
105 Hidrometeorologi MET330
106 Analisis Numerik KOM401
107 Kapita Selekta Ilmu Komputer KOM451 108 Interaksi Manusia dan Komputer KOM441
109 MPTP KOM492
110 Basis Data Terdistribusi KOM471
111 Sistem Pakar KOM431
Lampiran 3 lanjutan
NO MATA KULIAH KODE
113 Sistem Informasi Geografis KOM372 114 Komunikasi Data & Jaringan Komputer KOM332
115 Pemrosesan Paralel KOM333
116 Pengantar Kecerdasan Buatan KOM381 117 Pengantar Kriptografi KOM303 118 Pengenalan Pola dan Analisis Citra KOM382
119 Metode Kuantitatif KOM301
120 Basis Data KOM271
121 Organisasi Komputer KOM232
122 Teori Bahasa dan Otomata KOM211 123 Rekayasa Perangkat Lunak KOM261 124 Pengantar Hitung Peluang KOM201
125 Rangkaian Digital KOM231
126 Struktur Data KOM212
127 Biomaterial FIS434
128 Fisika Pangan FIS444
129 Kapita Selekta Fisika FIS494
130 Seminar Fisika FIS490
131 Spektroskopi Molekuler FIS462 132 Fisika Semikonduktor FIS461 133 Pendahuluan Fisika Zat Padat FIS431 134 Pendahuluan Fisika Inti FIS332
135 Mikroprosesor FIS374
136 Difraksi sinar-X FIS364
137 Optik Modern FIS382
138 Teori Relativitas Khusus FIS361
139 Instrumental Fisika FIS376
140 Fisika Komputasi FIS355
141 Elektronika Dasar II FIS272 142 Elektronika Antar Muka FIS273
143 Termodinamika FIS212
144 Gelombang FIS214
145 Fisika Modern FIS216
146 Mekanika FIS221
147 Fisika Matematika FIS201
148 Struktur dan Fungsi Subseluler BIK201 149 Teknik Penulisan Ilmiah BIK298 150 Struktur dan Fungsi Biomolekul BIK301
151 Biologi Molekuler BIK302
152 Metabolisme BIK303
153 Bioenergitika BIK304
154 Instrumentasi Bioanalisis BIK305
155 Biokimia Lingkungan BIK311
156 Bioindustri BIK321
157 Pengantar Penelitian Biokimia BIK306 158 Integrasi dan Regulasi Metabolisme BIK307
159 Biokimia Klinis BIK312
160 Biokimia Nutrisi BIK313
161 Biokimia Tumbuhan BIK331
162 Biosinyal BIK401
163 Teknologi Asam Nukleat dan Protein BIK402
164 Bioinformatika BIK403
165 Imunokimia BIK411
166 Kolokium BIK497
167 Seminar BIK498
18 Lampiran 4 Data 30 slot waktu
NO HARI WAKTU SLOT
1
SENIN
07.00-08.40 1
2 08.41-10.20 2
3 10.21-12.00 3
4 12.01-13.40 4
5 13.41-15.20 5
6 15.21-17.00 6
7
SELASA
07.00-08.40 7
8 08.41-10.20 8
9 10.21-12.00 9
10 12.01-13.40 10
11 13.41-15.20 11
12 15.21-17.00 12
13
RABU
07.00-08.40 13
14 08.41-10.20 14
15 10.21-12.00 15
16 12.01-13.40 16
17 13.41-15.20 17
18 15.21-17.00 18
19
KAMIS
07.00-08.40 19
20 08.41-10.20 20
21 10.21-12.00 21
22 12.01-13.40 22
23 13.41-15.20 23
24 15.21-17.00 24
25
JUMAT
07.00-08.40 25
26 08.41-10.20 26
27 10.21-12.00 27
28 12.01-13.40 28
29 13.41-15.20 29
Lampiran 5 Data 35 slot waktu
NO HARI WAKTU SLOT
1
SENIN
07.00-08.40 1
2 08.41-10.20 2
3 10.21-12.00 3
4 12.01-13.40 4
5 13.41-15.20 5
6 15.21-17.00 6
7 17.01-18.40 7
8
SELASA
07.00-08.40 8
9 08.41-10.20 9
10 10.21-12.00 10
11 12.01-13.40 11
12 13.41-15.20 12
13 15.21-17.00 13
14 17.01-18.40 14
15
RABU
07.00-08.40 15
16 08.41-10.20 16
17 10.21-12.00 17
18 12.01-13.40 18
19 13.41-15.20 19
20 15.21-17.00 20
21 17.01-18.40 21
22
KAMIS
07.00-08.40 22
23 08.41-10.20 23
24 10.21-12.00 24
25 12.01-13.40 25
26 13.41-15.20 26
27 15.21-17.00 27
28 17.01-18.40 28
29
JUMAT
07.00-08.40 29
30 08.41-10.20 30
31 10.21-12.00 31
32 12.01-13.40 32
33 13.41-15.20 33
34 15.21-17.00 34
20 Lampiran 6 Data 40 slot waktu
NO HARI WAKTU SLOT
1
SENIN
07.00-08.40 1
2 08.41-10.20 2
3 10.21-12.00 3
4 12.01-13.40 4
5 13.41-15.20 5
6 15.21-17.00 6
7 17.01-18.40 7
8 18.41-20.20 8
9
SELASA
07.00-08.40 9
10 08.41-10.20 10
11 10.21-12.00 11
12 12.01-13.40 12
13 13.41-15.20 13
14 15.21-17.00 14
15 17.01-18.40 15
16 18.41-20.20 16
17
RABU
07.00-08.40 17
18 08.41-10.20 18
19 10.21-12.00 19
20 12.01-13.40 20
21 13.41-15.20 21
22 15.21-17.00 22
23 17.01-18.40 23
24 18.41-20.20 24
25
KAMIS
07.00-08.40 25
26 08.41-10.20 26
27 10.21-12.00 27
28 12.01-13.40 28
29 13.41-15.20 29
30 15.21-17.00 30
31 17.01-18.40 31
32 18.41-20.20 32
33
JUMAT
07.00-08.40 33
34 08.41-10.20 34
35 10.21-12.00 35
36 12.01-13.40 36
37 13.41-15.20 37
38 15.21-17.00 38
39 17.01-18.40 39
Lampiran 7 Data ruang
a. Data 7 ruang
NO RUANGAN KODE KAPASITAS
1 RK. OFAC B11 1 100
2 RK. 16 FAC 401 B 2 80
3 RK. Wing S Lt.4 3 80
4 RK. 20 FAC4 4 80
5 RK. B1 – C3 5 80
6 RK. B1 – C2 6 80
7 RK. H103 7 60
b. Data 6 ruang
NO RUANGAN KODE KAPASITAS
1 RK. OFAC B11 1 100
2 RK. 16 FAC 401 B 2 80
3 RK. Wing S Lt.4 3 80
4 RK. 20 FAC4 4 80
5 RK. B1 – C3 5 80
6 RK. H103 6 60
c.Data 5 ruang
NO RUANGAN KODE KAPASITAS
1 RK. OFAC B11 1 100
2 RK. 16 FAC 401 B 2 80
3 RK. Wing S Lt.4 3 80
4 RK. 20 FAC4 4 80
22 Lampiran 8 Data aktivitas perkuliahan
Lampiran 8 lanjutan
24 Lampiran 8 lanjutan
Lampiran 9 Uji Crossover
a. Uji crossover 0.6
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 3 182
2 0 97
3 3 187
4 4 155
5 1 210
Rata-rata 2.2 166.2
b. Uji crossover 0.7
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 0 160
2 2 235
3 2 290
4 1 142
5 2 259
Rata-rata 1.4 217.2
c. Uji crossover 0.8
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 1 152
2 5 135
3 1 319
4 2 138
5 2 196
Rata-rata 2.2 188
d. Uji crossover 0.9
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 2 149
2 3 137
3 1 204
4 1 204
5 1 211
26 Lampiran 10 Uji mutasi
a. Uji mutasi 0.1
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 0 160
2 2 235
3 2 290
4 1 142
5 2 259
Rata-rata 1.4 217
b. Uji mutasi 0.2
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 2 154
2 0 153
3 0 159
4 1 174
5 0 117
Rata-rata 0.6 151
c. Uji mutasi 0.3
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 1 251
2 0 186
3 3 208
4 0 220
5 0 59
Rata-rata 0.8 185
d. Uji mutasi 0.4
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 1 260
2 3 163
3 2 171
4 1 186
5 2 223
Rata-rata 1.8 201
e. Uji mutasi 0.5
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 0 110
2 2 146
3 0 122
4 2 185
5 0 82
Lampiran 10 lanjutan
f. Uji mutasi 0.6
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 0 110
2 1 171
3 0 92
4 1 201
5 4 105
28 Lampiran 11 Uji Populasi
a. Uji populasi 40
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 1 120
2 0 107
3 2 104
4 3 114
5 1 110
Rata-rata 1.4 111
b. Uji populasi 50
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 2 154
2 0 153
3 0 159
4 1 174
5 0 117
Rata-rata 0.6 151
c. Uji populasi 60
Ulangan Jumlah Pelanggaran Dicapai pada Generasi
1 0 265
2 0 71
3 0 187
4 2 149
5 2 153
Lampiran 12 Uji data mahasiswa safe dan unsafe
a. Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100 Data mahasiswa safe
Ulangan Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 1 39 260 3965.98
2 2 35 214 3250.27
3 0 21 182 2805.05
4 3 49 208 3180.86
5 2 19 251 3858.09
Rata-rata 2 223 3412.05
b. Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100 Data mahasiswa unsafe
Ulangan Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 13 3 166 3308.516
2 6 49 500 9146.282
3 13 49 322 4943.094
4 15 29 132 2032.265
5 11 19 235 3600.016
30 Lampiran 13 Uji slot waktu dan ruang
a. Hasil uji I
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 9 1 359 5756.65
2 8 49 493 7890.86
3 8 49 261 4158.12
4 5 3 500 7974.84
5 11 17 409 6526.73
Rata-rata 8.2 404
6461.44
b. Hasil uji II
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 14 43 333 4701.38
2 13 10 204 2894.61
3 18 3 138 1972.34
4 13 33 229 3230.55
5 11 9 391 5560.81
Rata-rata 13.8 259 3671.94
c. Hasil uji III
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 5 23 281 4852.98
2 4 12 347 5939.56
3 8 31 174 2954.04
4 8 49 176 2882.91
5 5 49 267 4527.16
Rata-rata 6 249 4231.33
d. Hasil uji IV
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 3 1 500 7277.56
2 6 7 231 3431.90
3 12 49 136 1999.12
4 8 7 152 2260.67
5 9 39 183 2746.75
Rata-rata 7.6 240 3543.20
e. Hasil uji V
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 8 49 148 2778.6
2 8 49 214 4006.65
3 6 2 269 5052.73
4 10 18 231 4378.24
5 10 6 237 4515.51
Lampiran 13 lanjutan
f. Hasil uji VI
Crossover = 0.7 Mutasi = 0.2 Maksimum generasi = 500 Jumlah populasi = 50
Treshold = 0 Stall generation = 100
Ulangan Jumlah Pelanggaran Posisi Kromosom Generasi Lama Proses (detik)
1 4 43 300 5938.63
2 4 49 277 3722.47
3 7 12 238 2820.99
4 8 33 362 6608.77
5 6 49 231 2604.25
Rata-rata 5.8 282 4339.02
PENJADWALAN PERKULIAHAN
MENGGUNAKAN ALGORITME GENETIKA
MUHAMMAD SYADID
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ABSTRAK
MUHAMMAD SYADID. Penjadwalan Perkuliahan Menggunakan Algoritme Genetika. Dibimbing oleh IRMAN HERMADI dan SONY HARTONO WIJAYA.
Penjadwalan perkuliahan merupakan proses penempatan aktivitas perkuliahan ke dalam slot waktu dan ruang yang tersedia. Jika jumlah aktivitas perkuliahan dan persyaratan yang harus dipenuhi jumlahnya sangat besar, maka penyelesaian masalah penjadwalan perkuliahan akan menjadi rumit dan membutuhkan waktu yang sangat lama. Penelitian ini bertujuan memperbaiki penelitian Penjadwalan Perkuliahan menggunakan Algoritme Genetika yang tidak dapat mengakomodasi masalah kapasitas ruangan dan ukuran kelas. Selain itu bertujuan memperoleh informasi kinerja Algoritme Genetika.
Pada penelitian ini, representasi kromosom berbentuk matrik aktivitas perkuliahan. Matrik aktivitas perkuliahan adalah sebuah matrik yang berisi aktivitas perkuliahan selama satu semester. Baris pada matrik merepresentasikan jumlah slot waktu yang digunakan selama satu minggu perkuliahan dari Senin sampai dengan Jumat. Sedangkan kolom pada matrik merepresentasikan jumlah ruangan yang tersedia.
Data pada penelitian ini merupakan data jadwal perkuliahan di FMIPA IPB yang diperoleh dari Buku Panduan Program Sarjana IPB edisi 2006 (revisi). Selanjutnya, data yang diperoleh diolah atau dilakukan pengkodean untuk didapatkan data mahasiswa, data pengajar, data mata kuliah, data slot waktu, dan data aktivitas perkuliahan. Data mahasiswa dalam penelitian ini ada dua jenis, yaitu data mahasiswa safe dan unsafe. Data mahasiswa safe adalah data mahasiswa yang mengabaikan kapasitas ruangan dan jumlah mahasiswa. Sedangkan data mahasiswa unsafe adalah data mahasiswa yang mempertimbangkan kapasitas ruangan dan jumlah mahasiswa.
Hasil percobaan pada penelitian ini menunjukkan bahwa kinerja Algoritme Genetika menghasilkan solusi yang optimal pada kombinasi nilai parameter crossover 0.7, mutasi 0.2, jumlah populasi 50, maksimum generasi 500, threshold 0, dan stall generation 100. Hasil percobaan menunjukkan bahwa jumlah pelanggaran yang dihasilkan dari data mahasiswa unsafe lebih besar daripada data mahasiswa
safe. Jadwal terbaik dihasilkan pada pengalokasian 6 slot waktu per hari pada 6 ruangan dengan nilai efektivitas sebesar 97.02% dan efisiensi sebesar 93.33%.
PENDAHULUAN
Latar BelakangPenjadwalan merupakan salah satu permasalahan pengalokasian aktivitas perkuliahan ke dalam slot waktu yang telah ditentukan. Lebih spesifik lagi penjadwalan perkuliahan merupakan masalah penempatan jadwal suatu aktivitas kuliah tertentu pada slot waktu dan ruang yang telah ditentukan. Penyelesaian masalah penjadwalan perkuliahan dalam jumlah yang sangat besar hingga saat ini masih menjadi permasalahan yang rumit untuk diselesaikan secara manual. Persyaratan-persyaratan yang harus dipenuhi menambah semakin kompleks dan rumitnya penyelesaian masalah penjadwalan. Semakin banyaknya persyaratan yang diajukan maka akan mempengaruhi lama waktu penyelesaian dan tingkat optimalitas output yang dihasilkan.
Algoritme Genetika merupakan algoritme pencarian yang didasarkan atas seleksi alami dan genetik yang pertama kali dikembangkan oleh John Holland dan mahasiswanya di University of Michigan (Goldberg 1989). Algoritme Genetika merupakan salah satu algoritme yang dapat menemukan solusi global yang paling optimal dalam ruang pencarian yang sangat besar dan kompleks. Algoritme Genetika dapat digunakan untuk menyelesaikan masalah penjadwalan perkuliahan.
Penelitian yang dilakukan oleh Tamba (2004) menghasilkan sebuah sistem yang mampu menyelesaikan masalah penjadwalan perkuliahan menggunakan Algoritme Genetika (studi kasus FMIPA IPB). Namun, penelitian yang dilakukan bel