Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Implementasi Algoritma First In First Served (FIFS) Pada Sistem Penjadwalan Perkuliahan (Studi Kasus Di Direktorat Akademik Universitas Halmahera)
Benisius*
[email protected]
Abstrak Sejak kemunculannya, teknologi informasi telah menjadi komponen penting dalam standar pelayanan publik. Perguruan Tinggi sebagai lembaga pendidikan tidak lepas dari tuntutan memanfaatkan teknologi informasi. Dalam pelayanannya, Direktorat Akademik telah memiliki Sistem Akademik berbasis teknologi informasi namun belum dilengkapi dengan kemampuan untuk mendeteksi kondisi tabrakan pada penjadwalan. Penelitian ini bermaksud mengembangkan suatu aplikasi yang mampu mendeteksi terjadinya tabrakan ruang, dosen dan matakuliah, di samping juga memberikan informasi rekap pemakaian ruang dan jumlah sks mengajar dosen. Kondisi tabrakan dapat dideteksi dengan mengimplementasikan algoritma First In-First Served (FIFS) yang sejatinya merupakan algoritma penjadwalan pada CPU. Dalam hal ini instruksi merupakan jadwal kelas yang sudah terlebih dahulu terdaftar, sehingga apabila ada jadwal baru yang menggunakan nilai atribut yang sama akan dideteksi sebagai kondisi tabrakan. Hasil dari perancangan diimplementasikan dengan menggunakan bahasa pemrograman Visual FoxPro dan database dbf. Pengujian dilakukan dengan mengamati output yang berikan oleh sistem pada setiap kondisi. Kata kunci: FIFS, First in-First Served, Sistem penjadwalan.
*
Dosen pada Program Studi Matematika Universitas Halmahera.
Page I 104
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Pendahuluan Sejak kemunculannya, teknologi informasi telah menjadi komponen penting dalam standar pelayanan publik. Perusahaan-perusahaan besar maupun organisasi-organisasi kecil saling berlomba untuk memanfaatkan keunggulan TI demi pelayanan yang lebih baik. Perguruan Tinggi sebagai lembaga pendidikan yang memberikan pelayanan kepada stakeholders-nya tidak lepas dari tuntutan itu. Universitas Halmahera sejak 2011 telah memiliki Sistem Informasi Akademik berbasis teknologi informasi yang digunakan untuk menunjang pelayanan-pelayanan akademik seperti penginputan jadwal kelas, pencetakan presensi kelas, DRS-DHS dan lain-lain. Namun, sistem yang ada belum dilengkapi dengan kemampuan untuk mendeteksi kondisi tabrakan dalam penjadwalan sehingga kasus-kasus tabrakan masih dapat terjadi. Penelitian ini bermaksud mengembangkan suatu aplikasi yang mampu mendeteksi terjadinya tabrakan ruang, dosen dan matakuliah pada semester yang sama, di samping juga memberikan
informasi rekap pemakaian ruang dan jumlah sks mengajar dosen. Algoritma First In–First Serve (FIFS) FIFS atau Pertama Masuk-Pertama Dilayani merupakan salah satu algoritma penjadwalan pada CPU yang bekerja memproses instruksi sesuai waktu kedatangan. Selanjutnya dengan sedikit penyesuaian, algoritma ini juga dapat diimplementasikan dalam kasus pemesanan meja restoran, penjualan tiket, pemesanan taxi dan sebagainya. Termasuk juga dalam kasus penjadwalan perkuliahan. Dalam hal ini instruksi merupakan jadwal kelas yang sudah terlebih dahulu terdaftar, sehingga apabila ada jadwal baru yang menggunakan nilai atribut yang sama akan ditolak. Perancangan dan Implementasi Basis Data Pada sistem penjadwalan, entitas kelas dengan atribut kd_prodi, kd_mk, matakuliah, semester, grup, ruang, hari, jam_awal, jam_akhir, kd_dosen merupakan entitas utama.
Gambar 1 Entitas Kelas
Page I 105
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Penerapan dari entitas Kelas secara lebih detail menghasilkan tabel dengan struktur sebagai berikut: Tabel Kelas Name id prodi Kode matakuliah semester sks grup ruang hari jam_awal jam_akhir kd_dosen gabungan id_ptgs kapasitas max semester ta
Type Integer Character Character Character Character Character Character Character Character Character Character Character Logical Character Numeric Numeric Character Character
Perancangan Alur Program Berdasarkan algoritma FIFS maka pada kasus penjadwalan data pertama yang diinputkan akan mendapatkan skala prioritas terbesar. Hal ini akan mengakibatkan beberapa data berikutnya yang memiliki kemiripan nilai dengan data yang sudah ada
Width 4 2 7 50 1 1 1 5 9 5 5 20 10 3 3 5 9
Index Ascending
Keterangan Kode prodi Kode matakuliah Nama matakuliah
Kelas gabungan Id petugas Kapasitas kelas Maks pengambil
akan dikategorikan ke dalam kondisi tabrakan. Kondisi tabrakan akan mengakibatkan pencatatan data ditolak oleh sistem. Algoritma sistem penjadwalan adalah tampak seperti pada flowchart gambar 2.
Page I 106
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Mulai
Pilih kode matakuliah
Input grup, kapasitas, gabungan, id_dosen, hari, jam_awal, jam_keluar, ruang, prodi, smtr
Kelas gabungan?
Ya
Tidak
Tabrakan semester?
Ya
Tampilkan pesan “Tabrakan matakuliah di semester yang sama”
Ya
Tampilkan pesan “Ruangan sudah dipakai”
Ya
Tampilkan pesan “Dosen sudah terjadwal di ruang lain”
Tidak
Ya
Tampilkan pesan “Tabrakan matakuliah di semester yang sama”
Tidak
Tabrakan ruang?
Tabrakan semester?
Tabrakan ruang?
Tidak
Ya
Tampilkan pesan “Ruangan sudah dipakai”
Tabrakan dosen?
Tidak
Tidak
Lakukan pencatatan data Tabrakan dosen?
Ya
Tampilkan pesan “Dosen sudah terjadwal di ruang lain”
Tidak Lakukan pencatatan data
Selesai
Gambar 2 Algoritma pencatatan jadwal Pada alur program, beberapa tahapan penting yang terjadi adalah sebagai berikut: 1. Pengecekan kelas gabungan
Tahapan pertama yang dilakukan adalah mengecek apakah kelas yang akan diinput merupakan kelas gabungan atau tidak. Hal berdasarkan kondisi bahwa terdapat beberapa kelas lintas prodi yang
Page I 107
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 penyelenggaraannya digabungkan. Selanjutnya penanganan tabrakan untuk kelas status gabungan dan yang bukan pun akan berbeda.
Algoritma ini digunakan untuk mendeteksi kondisi tabrakan penjadwalan matakuliah pada semester yang sama. Alurnya adalah seperti pada gambar 3.
2. Pengecekan tabrakan matakuliah di semester yang sama Mulai
Input hari, jam_m, jam_k, smtr, prodi, grup
Untuk semua baris tabel kelas
kelas.hari = hari & kelas.sem = smtr & kelas.prodi = prodi & kelas.grup = grup
Ya
(kelas.jam_m jam_m kelas.jam_k) OR kelas.jam_m ≤ jam_k ≤ kelas.jam_k)
Tidak
Tidak
Tabrakan = False
Tabrakan = False
Ya
Tabrakan = True break
Selesai
Gambar 3 Algoritma pengecekan tabrakan matakuliah semester
3. Pengecekan Tabrakan Ruang Algoritma yang digunakan untuk mendeteksi kondisi tabrakan ruang adalah seperti pada gambar 4.
Page I 108
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Mulai
Input hari, jam_m, jam_k, ruang
Untuk semua baris tabel kelas
kelas.hari=hari & kelas.ruang=ruang
Tidak
Tabrakan = False
Ya
(kelas.jam_m jam_m kelas.jam_k) OR kelas.jam_m ≤ jam_k ≤ kelas.jam_k)
Ya
Tabrakan = True break
Tidak
Tabrakan = False
Selesai
Gambar 4 Algoritma pengecekan tabrakan ruang
4. Pengecekan Tabrakan Dosen Algoritma ini digunakan untuk mendeteksi kondisi tabrakan penjadwalan dosen. Alurnya adalah seperti pada gambar 5. Algoritma ini akan mengembalikan kondisi tabrakan bernilai true apabila dosen sudah dijadwalkan di kelas lain pada waktu yang sama.
Page I 109
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Mulai
Input hari, jam_m, jam_k, dosen
Untuk semua baris tabel kelas
kelas.hari=hari & kelas.dosen=dosen
Tidak
Tabrakan = False
Ya
(kelas.jam_m jam_m kelas.jam_k) OR kelas.jam_m ≤ jam_k ≤ kelas.jam_k)
Ya
Tabrakan = True break
Tidak
Tabrakan = False
Selesai
Gambar 5 Algoritma pengecekan tabrakan dosen
Implementasi Sistem Sesuai dengan rancangan yang sudah dibuat maka tampilan aplikasi setelah diimplementasikan adalah sebagai berikut:
Page I 110
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Gambar 6 Tampilan menu utama aplikasi Tampilan seperti pada gambar 6.a adalah tampilan yang muncul pertama kali sewaktu aplikasi dijalankan. Di sini penguna diminta untuk mengeset kode program studi. Gambar 6.b adalah menu utama sistem dimana untuk melakukan penginputan jadwal maka pengguna harus memilih menu Input Jadwal.
Page I 111
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Gambar 7 Tampilan form Menu Input Segera setelah tombol menu “Input Jadwal” ditekan maka tampilan seperti pada gambar 7 akan muncul. Pencatatan dapat dilakukan dengan menekan tombol “Baru” pada pojok kanan.
Gambar 8 Penginputan data Gambar 8 adalah ilustrasi bagaimana proses penginputan data dilakukan. Pada bagian ini semua informasi seperti matakuliah, grup, kapasitas, gabungan, dosen, hari, jam_awal, jam_keluar, dan ruang harus diisikan dan
diakhiri dengan menekan tombol simpan. Selanjutnya sistem akan melakukan pengecekan terhadap setiap kemungkinan tabrakan yang terjadi dan menampilkan peringatan seperti pada gambar 9-11.
Page I 112
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Gambar 9 Tampilan pesan matakuliah dan grup sudah tercatat
Gambar 10 Tampilan pesan tabrakan matakuliah di semester yang sama
Page I 113
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Gambar 11 Peringatan tabrakan dosen
Gambar 12 Pencatatan berhasil Page I 114
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013 Gambar 12 adalah tampilan yang akan muncul ketika penginputan berhasil dilakukan. Dalam hal ini jadwal yang baru diinput akan dimunculkan dalam grid dan tombol “Baru” kembali diaktifkan.
Gambar 13 Rekap SKS dosen Gambar 13 adalah dan 14 adalah tampilan rekap SKS dosen dan penggunaan ruang kelas yang dapat diakses lewat menu “Rekap SKS” sedangkan “Rekap Penggunaan Ruang Kelas” pada menu utama. Keduanya merupakan output yang dihasilkan oleh sistem.
Page I 115
Jurnal UNIERA Volume 2 Nomor 2; ISSN 2086-0404 Agustus 2013
Gambar 14 Rekap penggunaan ruang kelas per hari Penutup
Dengan sedikit penyesuaian, algoritma FIFS dapat diterapkan dalam kasus penjadwalan matakuliah pada Direktorat Akademik Universitas Halmahera sehingga kasus-kasus tabrakan dapat dihindari. Daftar Pustaka Aryanto, 2001, Pengolahan Database dengan Microsoft Visual FoxPro 6.0, PT Elex Media Komputindo, Jakarta. Fatansyah, 1999, Basis Data, Informatika, Bandung. Gitam Resource, Scheduling Algorithms, First-Come, First-Served (FCFS) Scheduling, http://www.gitam.edu/eresource/com
p/gvr%28os%29/5.3.htm, diakses 12 Juni 2013. Kristanto, Harianto, 1996, Konsep dan Perancangan Database, Andi Offset, Yogyakarta. Nugroho, Adi, 2011, Perancangan dan Implementasi Sistem Basis Data, Andi Offset, Yogyakarta. Tutorials Point, OS - Scheduling algorithms, http://www.tutorialspoint.com/operat ing_system/os_process_scheduling_a lgorithms.htm, diakses 8 Mei 2013 Wikipedia, Scheduling (computing), http://en.wikipedia.org/wiki/Scheduli ng_%28computing%29#First_in_firs t_out, diakses 12 Mei 2013.
Page I 116