Pada Bab ini diuraikan analisis dan perancangan aplikasi program optimasi
menggunakan Algoritma Genetika ( Genetic Algorithm). Sub Bab 3.1 berikut ini akan
menjelaskan latar belakang masalah yang dihadapi, yang kemudian dilakukan suatu
analisis permasalahan pada sub bab 3.2, dan pada sub bab 3.3 diberikan solusi untuk
Pada Sub Bab 3.4 dirancang suatu proses yang mengambil pendekatan
dalam aplikasi diberikan pada sub bab 3.5. Perancangan proses dan algoritma yang
dituangkan ke dalam suatu perancangan aplikasi program terdapat di dalam sub Bab 3.6.
Pada setiap perusahaan, masalah utama yang selalu dihadapi adalah masalah
perusahaan tersebut dapat mendapatkan suatu “balik modal” atau kalau bisa ada
keuntungan yang didapat perusahaan tersebut. Begitu juga permasalahan yang dihadapi
mahasiswa yang kuliah dan pengeluaran yang dilakukan untuk memelihara universitas
tersebut. Salah satu pengeluaran biaya yang harus dapat dioptimalkan adalah biaya
45
gedung, terutama perawatannya. Pada kasus ini, penulis mengadakan studi kasus pada
lainnya, kampus JWC pun menginginkan pengoptimalan penggunaan biaya yang salah
ialah bagaimana menentukan berapa jumlah mahasiswa yang dapat diterima pada tahun
ajaran baru, supaya penggunaan ruang pada kampus tersebut dapat maksimal, yang juga
Saat ini proses dalam menentukan berapa jumlah mahasiswa yang dapat diterima
pada tahun ajaran baru masih menggunakan cara manual, yaitu dengan menghitung
jumlah mahasiswa yang sudah diterima dan masih aktif pada perkuliahan. Perhitungan
yang dilakukan berdasarkan jadwal yang sudah terbentuk dan sudah berjalan, sehingga
proses penentuan jumlah mahasiswa yang akan diterima tidak bisa langsung ditentukan
secara pasti, karena mereka harus menunggu waktu pada semester dua untuk melihat
berapa yang akan dapat dipastikan jumlah yang dapat mereka terima, ditambah lagi saat
ini mereka masih sepenuhnya menggunakan sistem krs, sehingga banyak yang
memungkin untuk banyak kelas yang tidak akan dibuka. Proses inilah yang membuat
mereka kesulitan untuk menentukan berapa jumlah mahasiswa yang dapat mereka
Dalam mencapai tujuan tersebut, penulis menggunakan salah satu cara dalam
matakuliah pada tahun ajaran baru tersebut, sehingga terdapat suatu gambaran jelas
46
oleh setiap universitas yang ada di Indonesia maupun di dunia. Masalah ini biasanya
berada sekitar pada bagaimana menjadwalkan suatu kelas, sehingga dosen, mahasiswa,
ruang kelas, dan slot waktu agar proses belajar mengajar yang terjadi dapat berjalan
dengan sempurna dan tidak terbentur adanya suatu bentrokan. Bentrokan atau masalah
yang bisa timbul disini misalnya: Dosen A harus mengajar dua atau lebih kelas yang
berbeda pada ruang dan waktu yang berbeda. Keempat hal tersebut, yaitu ketersediaan
dosen, kelas, ruang kelas, dan slot waktu, merupakan hard constraint yang harus
dengan sempurna.
Pada saat ini proses penjadwalan yang dilakukan masih dilakukan dengan
secara semi otomatis, tentunya dengan melihat hasil dari sistem krs yang dilakukan
untuk melihat kelas yang matakuliahnya dapat dibuka, yaitu dengan memasukan secara
manual kode matakuliah, kode kelas mahasiswa, kode hari, kode shift, kode dosen dan
kode ruangan kelas, dan secara sistem penjadwalan, semua itu akan diperiksa apakah
terdapat bentrok di antara semua kode-kode tersebut. Jika terdapat bentrokan diantara
tersebut agar di dalam sistem tidak terdapat bentrokan penjadwalan. Hal ini akan
Masalah yang akan dibahas melalui tulisan ini adalah bagaimana sebuah
universitas, dengan bangunan yang tetap, dapat menentukan berapa banyak mahasiswa
yang dapat diterima pada tahun ajaran yang baru, sehingga pihak marketing dapat
Untuk dapat menentukan jumlah mahasiswa yang dapat kita terima pada tahun
ajaran masuk, maka kita harus dapat melihat kapasitas ruangan yang kita miliki,
kemudian setelah itu kita harus dapat meramalkan ruangan yang sudah terpakai,
sehingga sisanya dapat kita gunakan untuk memperkirakan berapa mahasiswa yang
dapat kita terima. Yang jadi permasalahan adalah bagaimana cara menentukan berapa
banyak ruangan yang sudah terpakai pada saat penerimaan mahasiswa baru. Untuk
Masalah penjadwalan merupakan masalah yang klasik. Hingga saat ini telah
tersebut. Umumnya masalah ini sangat sulit untuk diselesaikan, janganlah uantuk
melakukan optimalisasi, untuk melakukan hanya sekedar optimasi pun sulit. Hal ini
dikarenakan suatu proses penjadwalan ini diperlukan hard contraint dan soft constraint.
Hard Contraint yang dimaksud dapat disebut juga Hard Requirements, adalah
merupakan salah satu kebutuhan dari suatu penjadwalan yang jika kebutuhan ini
48
dilanggar, maka akan mengakibatkan penjadwalan yang dibentuk tidak akan bisa
2. Tidak ada dosen maupu kelas mahasiswa yang dapat memiliki lebih dari satu
4. Jika ada kelas yang memiliki kebutuhan yang lebih khusus, seperti laboratorium,
maka harus ditempatkan ke dalam suatu ruangan yang khusu pula seperti
ruangan lab.
Soft Contraint atau bisa juga disebut sebagai Soft Requirements ini merupakan
salah satu persyaratan dalam penjadwalan yang jika syarat ini tidak terpenuhi tetapi
Untuk mendapai tujuan yang telah digambarkan pada sub bab sebelumnya, maka
sehingga dapat membuat suatu penjadwalan mata kuliah yang dapat berjalan tanpa
49
bentrokan. Aplikasi ini akan menerima inputan-inputan dasar seperti informasi dosen,
informasi matakuliah, informasi ruang kelas, informasi jumlah mahasiswa dalam satu
matakuliah satu kelas, dan informasi pembagian mengajar dosen dengan kelas tersebut.
Metode yang yang akan digunakan untuk menyelesaikan data itu semua adalah
optimalisasi penjadwalan demi mencapai tujuan dan nantinya akan dibahas tentang
constraint yang dimaksudkan dapat dicapai dengan pencapaian suatu hasil penjadwalan
yang melibatkan semua data resources dasar tersebut supaya penjadwalan itu dapat
Orientasi).
3.4.1 Database
master_dosen_generate
Transaksi_Kelas_Mahasiswa_Kdmtk
PK no
PK no
PK kddsn
PK kelas
PK nmdsn master_matakuliah_data
PK jmlmhs
PK nama
PK kdmtk PK kdfak
PK kdjur
PK thang
Transaksi_Kelas_Mahasiswa PK smang
PK kdstu
Transaksi_Kelas_Mahasiswa_Generate
PK no PK kdpmt
PK kelas PK no PK kdsemkur
PK jmlmhs PK kelas PK kdmtk
PK jmlmhs
Transaksi_Kelas_Mahasiswa_Generate, Transaksi_Kelas_Mahasiswa_Kdmtk,
tabel_ruang_use, merupakan tabel yang sengaja dibuat oleh penulis untuk memudahkan
52
dalam mengenerate data dari tabel-tabel yang sebelumnya sudah tersedia pada sistem
Berikut ini adalah rancangan algoritma atau langkah kerja aplikasi program
Hal pertama yang harus kita cari ketika kita ingin berhubungan dengan proses
menjadi sebuah kromosom – kromosom, yang nantinya memungkinkan bagi kita untuk
melakukan segala aktifitas genetika seperti crossover dan mutation. Selain itu kita juga
harus dapat merepresentasikan seberapa baiknya solution yang kita hasilkan atau dalam
Kromosom yang dimaksudkan diatas kita representasikan dalam suatu slot- slot
waktu yang didefinisikan dalam jarak waktu satu jam untuk setiap hari dan setiap
ruangan. Untuk waktu perkuliahan pun kita definisikan dengan menetapkan bahwa
waktu perkuliahan dari jam 9 pagi sampai jam 6 malam dan berlaku dalam waktu kerja
yaitu dari hari Senin sampai Jumat. Dengan keadaan ini maka kita membentuk vektor
sebesar 9 * 5 * jumlah ruangan yang tersedia. Vektor – vektor inilah yang akan
Kromosom akan memiliki tiga kemampuan yang utama, yaitu Kode, Fitness,
dan Skill. Kode dari kromosom adalah merupakan representasi dari solusi-solusi yang
akan terbentuk, dalam program nanti Kode-kode kromosom ini diwakilkan dalam hash
53
map dan vektor – vektor slot. Fitness Kromosom adalah suatu nilai yang menyimpan
seberapa baiknya solusi yang telah terbentuk itu. Sedangkan Skill dari kromosom itu
menyimpan semua kebutuhan yang diperlukan dalam operasi genetic yang akan
dilakukan terhadap kromosom tersebut , seperti operasi fitness, operasi crossover, dan
operasi mutation atau mutasi. Selain skill juga menyimpan parameter-parameter yang
akan digunakan dalam operasi genetik tersebut. Skill kromosom ini nantinya disimpan
dapat digambarkan seperti ini misalnya kita membuat kromosom pertama, kita
seperti membuat kromosom baru yang sama persis dengan kromosom yang pertama kita
kirimkan dengan beberapa cara seperti membuat dengan kromosom yang pertama kita
kirimkan dengan beberapa cara seperti membuat copy dari kromosom tersebut atau
membuat prototype dari kromosom tersebut. Kromosom baru ini digunakan jika
misalnya ketika terjadi mutasi dan crossover, hasil yang diharapkan tidak maksimal,
Kemudian kita harus memberi nilai fitness ke setiap kromosom yang kita buat.
Untuk pertama kali kita gunakan kualifikasi yang paling minimum untuk setiap kelas
mengajar pada setiap waktu, tanpa adanya batasan waktu ketersediaan waktu dosen.
Untuk menentukan nilai fitness, maka kita akan melakukan hal – hal berikut :
2. Jika kelas menggunakan ruang kelas yang kosong, maka nilain fitness ya akan
kita tambahkan.
3. Jika kelas menggunakan ruangan kelas yang kosong dan memiliki kapasitas
yang cukup atau lebih, maka kita akan menambahkan nilai fitness nya.
4. Jika dosen yang mengajar pada kelas tersebut hanya mengajar kelas tersebut
pada satuan waktu yang sama, maka nilai fitness dari kelas tersebut kita
tambahkan.
5. Kriteria terakhir adalah kita cek group mahasiswa yang mengikuti kelas tersbut,
apakah memiliki jadwal yang bentrok. Jika tidak maka nilai fitness dari kelas
6. Jika ada Kelas-kelas yang tidak sesuai dengan kriteria-kriteria diatas, nilai fitness
7. Total nilai fitness dari penjadwalan tersebut ialah total dari semua total nilai
8. Nilai fitness terakhir, yang nantinya kita gunakan sebagai patokan bahwa
penjadwalan yang kita lakukan sudah optimal atau belum ialah merupakan
perhitungan dari total nilai fitness dari penjadwalan dibagi dengan nilai
kelas * 5.
terdapat pada hash map dari dua induk kromosom atau istilah umumnya menyilangkan
55
dua induk kromosom, hal ini juga nantinya akan menentukan nilai fitness nya (sudah
dijelaskan pada bab 2 ). Kemudian kita lakukan operasi mutation, hal ini juga kita
Dengan semua langkah yang dilakukan, maka algoritma genetika dapat berjalan
dengan baik. Kita juga perlu menentukan kapan algoritma genetik ini akan berhenti
melakukan prosesnya, dalam program ini proses algoritma genetik ini akan berhenti
berdasarkan nilai fitnessnya dimana nilai itu merupakan nilai fitness dari kromosom
terbaik yang dihasilkan. Algoritma Genetik ini pulalah yang membuat populasi yang
nantinya akan digunakan sebagai pembanding dalam mencari nilai fitness yang terbaik
dari kromosom yang terbaik. Dalam program ini algoritma genetik ini akan selesai
melanjutkan dengan menghitung berapa jumlah mahasiswa yang akan dapat diterima
masuk pada tahun dan semester yang penjadwalannya tadi telah kita input. Perhitungan
1. Kita harus menghitung berapa banyak ruangan yang tersedia dalam satu minggu
tersebut. Cara ini dapat dicari dengan menggunakan rumus jumlah ruangan *
2. Dari penjadwalan yang telah kita lakukan dengan algoritma genetik, maka kita
akan mendapatkan berapa banyak ruangan yang telah terisi. Dari ruangan yang
56
telah berisi itulah, kita harus dapat mencari ruangan yang masih kosong atau
belum digunakan.
sebelumnya kita harus menentukan berapa banyak sks yang diambil oleh setiap
jurusan yang ada, dalam hal ini banyak sks penulis berikan merupakan inputan
4. Setelah mengetahui setiap jurusan memiliki jumlah sks tertentu pada tahun
pertamanya, maka selanjutnya kita dapat menghubungkan dari jumlah sks yang
telah terdefinisi dengan jumlah shift kosong yang tersedia dari perhitungan awal,
Aplikasi program yang dibuat adalah merupakan aplikasi windows form, dimana
dalam satu windows tersebut memiliki tiga fungsi, yang memiliki fungsi-fungsi
Fungsi pertama memiliki untuk mengolah data-data yang terdapat pada database
untuk dapat mengenerate suatu data configuration output yang bertipe file .cfg yang
57
Data yang di generate itu berjumlah lima jenis, masing-masing adalah data dosen, data
ruangan, data matakuliah, data jumlah mahasiswa perkelas, dan data dosen mengajar.
Untuk data dosen, data ruangan, data matakuliah dapat langsung diambil dari tabel
kampus JWC. Untuk yang jumlah mahasiswa perkelas dan data dosen mengajar, itu
harus mengolah data-data yang terdapat pada tabel-tabel yang ada pada Kampus JWC.
memperkirakan berapa jumlah matakuliah yang akan dibuka pada tahun ajaran baru
tersebut, misal penulis ingin mengetahui berapa orang mahasiswa yang akan diterima
pada tahun 2008 semester 1, maka penulis harus memperkirakan matakuliah apa yang
akan dibuka pada tahun 2008 semester 1 kecuali matakuliah yang akan dibuka untuk
baru tersebut.
period
kdsem
generate
Setelah data hasil generate telah terbentuk, maka fungsi kedua dijalankan, yaitu
masukan data hasil generate tersebut kedalam program optimasi penjadwalan dengan
58
menggunakan algoritma genetik. Pada program tersebut aka digambarkan proses yang
terjadi pada saat penjadwalan tersebut dilakukan, dan akan dilakukan terus sampai data
yangdiolah menjadi suatu jadwal yang optimal dan dapat berjalan dengan baik.
generate
Ketika tombol generate diklik, maka akan munsul suatu windows baru yang
dimana pada windows tersebut terhadap perhitungan yang akan dilakukan untuk
open configuration
start solving
stop configuration
exit
Setelah muncul hasil yang optimal dari penjadwalan yang dilakukan, maka
fungsi ketiga yaitu kita menginput data-data hasil penjadwalan yang telah dilakukan
pada fungsi kedua kedalam database, sehingga dapat kita peroleh berapa jumlah
mahasiswa yang dapat diterima pada saat penerimaan mahasiswa baru tersebut dengan
memperhitungkan ruangan yang yang kosong yang belum digunakan dalam jadwal yang
class 2 09.00-10.00
…………………………………………………………………………………………
class 3
17.00-18.00
save
jumlah mahasiswa yang akan dapat diterima. Hasil keluaran ialah berupa jumlah
mahasiswa yang dapat diterima pada tahun ajaran baru dan juga penjadwalan yang
Total Mahasiswa yang Dapat Diterima Pada Tahun Ajaran Baru Periode
2008 Semester 1
count