Setiap ganti semester, staf akademik melakukan pembuatan jadwal kuliah. Untuk membuat jadwal kuliah, staf pendidikan membutuhkan beberapa komponen, antara lain.
- Daftar ruang kuliah, berisi nama ruang kuliah, gedung tempat ruang kuliah tersebut, kapasitas ruang kuliah.
- Daftar kuliah, berisi nama kuliah, jumlah mahasiswa maksimum dalam kuliah, dan dosen pengampu
- Daftar waktu sesi kuliah selama satu pekan, hari dan waktu mulai dan selesai tiap sesi
- Daftar pengecualian, berisi pengecualian yang bersinggungan antara tempat, waktu, dan dosen.
Keempat daftar tersebut diolah oleh staf secara manual untuk mendapatkan ramuan perkuliahan yang pas. Namun, hal tersebut membutuhkan waktu yang lama. Satu semester lebih dari seratus kuliah terselenggara.
Untuk memudahkan staf akademik dalam melakukan pembuatan jadwal, dikembangkan sebuah aplikasi untuk membangkitkan jadwal kuliah secara otomatis.
Aplikasi yang dikembangkan dalam bentuk website. Website dipilih karena tidak perlu melakukan instalasi pada setiap komputer staf, dan juga dapat mudah dibuka di manapun oleh siapapun yang mempunyai akses. Adapun spesifikasi aplikasi website yang dirancang adalah sebagai berikut:
- Website – ASP.Net MVC
- Database – SQL Server
Untuk penempatannya, aplikasi web ini ditempatkan pada komputasi awan Azure Web App. Penggunaan azure dilakukan karena Azure Web App merupakan komputasi awan yang paling cocok untuk menginang aplikasi website berbasis ASP.Net dengan database SQL Server.
Setelah menyusun infrastruktur, kemudian disusun algoritma agar dapat menghasilkan jadwal perkuliahan yang tepat. Contohnya, antara kapasitas ruang kuliah dengan maksimum mahasiswa tiap kuliah harus lebih besar kapasitasnya, namun selisihnya tidak terlalu besar.
Algoritma tersebut sebagai berikut.
- Menghitung apakah alokasi sesi perkuliahan lebih banyak daripada jumlah kuliah yang terdaftar. Kalau tidak, maka perhitungan akan dibatalkan karena akan ada kuliah yang tidak masuk dalam sesi.
- Melakukan pengelompokan kuliah pada ruang kuliah yang tersedia berdasarkan kapasitasnya. Kuliah yang maksimum mahasiswanya lebih kecil dari kapasitas ruang kuliah dikumpulkan kemudian diurutkan berdasarkan selisih antara kapasitas ruang dengan maksimum mahasiswa. Diurutkan dari yang paling kecil (ascending)
- Melakukan iterasi untuk setiap kelompok untuk dimasukkan waktu sesi dalam satu pekan. Saat dimasukkan, dicek apakah ada pengecualian terhadap ruang, waktu, dan dosen yang bersangkutan. Kalau tidak ada pengecualian maka akan disimpan. Iterasi ini dilakukan sampai kuliah yang terdaftar habis.
Algoritma itu disusun dan dibuat kode dalam bahasa pemrograman C# yang didukung ASP.Net. Algoritma tersebut merupakan inti pemrosesan penjadwalan otomatis.
Alur penggunaannya dapat dijabarkan sebagai berikut.
- Pengguna memasukkan sesi kuliah selama sepekan.
- Pengguna memasukkan ruangan dan kapasitasnnya.
- Pengguna memasukkan daftar kuliah beserta dosen pengampunya.
- Pengguna memasukkan pengecualian-pengecualian.
- Sistem menggenerate jadwal.
- Jadwal selesai digenerate, dapat disimpan atau diunduh oleh pengguna.
Dari pengembangan aplikasi penjadwalan otomatis ini, didapatkan hasil berupa screenshot sebagai berikut.
Video mengenai aplikasi Jadwalin ini dapat disimak pada link berikut.