Jurnal Ilmiah STMIK U’Budiyah
Vol.1, No.2, Maret 2012
QUERY PENJADWALAN MATAKULIAH MENGGUNAKAN BASIS DATA TERELASI Irvanizam Zamanhuri Jurusan Matematika, Program Studi Informatika, Universitas Syiah Kuala (MoU STMIK U’Budiyah Indonesia dengan Fakultas MIPA Universitas Syiah Kuala)
ABSTRAK Pembuatan jadwal matakuliah di suatu universitas merupakan masalah yang rumit. Selain jadwal kuliah yang diadakan pada waktu yang bersamaan dan kapasitas ruangan yang tidak sebanding dengan jumlah mahasiswa, jadwal dosen yang mengajar pun menjadi salah satu kendala. Banyak para peneliti telah mengusulkan algoritma seperti heuristic dan genetic sebagai solusi dalam memecahkan permasalahan ini. Namun, kesemua algoritma tersebut terdapat kelebihan dan kekurangannya masing-masing. Peneliti mengembangkan sebuah metode penjadwalan dengan menggunakan basis data yang terelasi dan mengusulkan sebuah algorima untuk mendistribusikan matakuliahmatakuliah ke dalam sebuah jadwal kuliah dengan menggunakan teknik random data. Algoritma tersebut pada mulanya mengkombinasikan sejumlah kemungkinan jadwal yang tersedia berdasarkan jumlah matakuliah, jumlah waktu, dan jumlah ruangan. Kemudian algoritma mengambil setiap matakuliah secara random lalu didistribusikan ke dalam jadwal. Jika jadwal tersebut telah digunakan untuk sebuah matakuliah yang lain, maka jadwal untuk matakuliah tersebut harus dirandom kembali sedemikian hingga jadwalnya terdistribusikan dengan baik. Keywords: random, query, heuristic, genetic.
I. PENDAHULUAN Pembuatan jadwal matakuliah di suatu universitas merupakan masalah yang rumit [4]. Permasalahan ini tidak hanya berhubungan dengan bagaimana membangun jadwal matakuliah yang baik tetapi juga bagaimana membangun jadwal matakuliah yang optimal pada waktu yang sama [5]. Banyak hal yang harus diperhatikan seperti dosen, mahasiswa, waktu mengajar, dan ruang. Dosen yang tidak bisa mengajar pada waktu yang telah ditentukan karena sedang tugas di luar universitas atau sudah memiliki waktu mengajar pada matakuliah yang lain. Selain itu adanya jadwal matakuliah yang bersamaan dengan jadwal kuliah angkatan sebelumnya maupun sesudahnya, sehingga mahasiswa dapat mengambil matakuliah angkatan sebelumnya maupun sesudahnya. Ruang yang akan digunakan untuk proses belajar mengajar harus sesuai dengan banyaknya mahasiswa yang mengambil matakuliah. Penyelesaian dalam penyusunan matakuliah dapat dilakukan dengan berbagai macam algoritma seperti algoritma heuristic, genetic, dan sebagainya [4]. Algoritma tersebut ada kelebihan dan kekurangannya masing-masing. Akan tetapi tujuan dari algoritma ini untuk menghasilkan jadwal matakuliah secara optimal pada waktu yang sama sehingga jadwal dosen mengajar tidak berada pada waktu yang sama walaupun dosen tersebut memiliki
beberapa matakuliah yang akan diajarkan, begitu juga dengan ruang yang akan digunakan untuk proses belajar mengajar bisa dimanfaatkan dengan baik. Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam (FMIPA) Universitas Syiah Kuala mempunyai tiga program studi yaitu Strata satu (S1) Matematika dan Diploma Tiga (D3) Manajemen Informatika. Jurusan ini harus menjalankan proses administrasinya dengan baik, khususnya pada proses penjadwalan matakuliah. Proses penjadwalan matakuliah merupakan hal yang sangat penting untuk diperhatikan, mengingat semua faktor yang mendukung di dalamnya, seperti dosen yang tidak bisa mengajar pada waktuyang telah ditentukan karena kesibukannya. Ruang yang digunakan telah digunakan untuk matakuliah yang lain. Penjadwalan yang baik dan teratur akan membantu kelancaran proses belajar mengajar. Matakuliah dipilih berdasarkan program studi, semester dan tahun ajaran. Matakuliah yang dipilih harus disesuaikan dengan kapasitas ruang. Pemilihan jadwal dan ruang akan dilakukan secara acak sehingga ditemukan jadwal dan ruang yang cocok untuk matakuliah tersebut. Jika jadwal dan ruang telah digunakan maka harus dilakukan pemilihan lagi sampai ditemukan jadwal yang tepat.
8
Query Penjadwalan Matakuliah Menggunakan Basis Data Terelasi (Irvanizam Zamanhuri) _____________________________________________________________________________________________________________
Adapun realita sekarang ini, Jurusan Matematika sering mengalami kesulitan dalam proses penjadwalan matakuliah, alokasi waktu pengajar dan ruangan yang akan digunakan untuk proses belajar mengajar. Hal ini menyusahkan administrasi yang bekerja dalam penyusunan jadwal matakuliah. Berdasarkan masalah yang ada maka diperlukan sebuah sistem manajemen informasi untuk memudahkan administrasi dalam menyusun penjadwalan matakuliah pada Jurusan Matematika.
II. METODOLOGI Bahan Perangkat keras yang digunakan dalam penelitian ini berupa satu unit laptop dengan spesifikasi processor iCore3, RAM 4 GB dan harddisk 350 GB. Sedangkat perangkat lunak yang digunakan adalah MySQL Server yang mendukung perintah Standard Query Language (SQL). Metode Penelitian 1.
Pengumpulan fakta dan Penganalisisan kebutuhan sistem
Langkah ini dilakukan untuk mengumpulkan datadata sebagai kelengkapan perancangan. Adapun data tersebut diperoleh dari hasil interview dengan pembuat jadwal matakuliah dan pengumpulan jadwal matakuliah yang dibuat dengan file excell.
menuangkan algoritma tersebut ke dalam bentuk flowchat. 3. Pengimplementasian program Pada tahap ini, penulis mengimplementasikan sebuah program penjadwalan kuliah yang diperoleh dari hasil final mapping. Adapun program tersebut diimplementasikan dengan menggunakan sebuah bahasa pemrograman query standar yang dikenal dengan Standard Query Language (SQL).
III. HASIL DAN PEMBAHASAN 1.
Entity Relational Digram (ER-Diagram) penjadwalan matakuliah
ER-Diagam digunakan untuk menggambarkan hubungan antar entitas yang dilibatkan dalam sistem [3] seperti pada Gambar 3.1. Pada ERDiagram ini terdapat enam entitas yang saling berelasi yaitu entitas dosen yang memiliki tujuh atribut, entitas matakuliah yang terdiri dari empat atribut, entitas prodi yang terdiri dari dua atribut, entitas mahasiswa yang terdiri dari dua atribut, entitas jadwal yang terdiri dari empat atribut, dan entitas ruang yang terdiri dari tiga atribut. Selain itu, pada ER-Diagram juga terdapat tiga relasi yaitu relasi mengajar yang terdiri dari tiga atribut, relasi ambil terdiri dari tiga atribut, dan relasi punya terdiri dari empat atribut.
Setelah data-data tersebut diperoleh, penulis mendeskripsikan semua data ke dalam bentuk dokumen permintaan (requirement) setelah proses analisa permasalahan dilaksanakan. 2.
Perancangan aplikasi
Pada tahap ini, penulis melakukan perancangan Entity Relational Diagram (ER-Diagram) yang diperoleh dari hasil dokumen permintaan. ERDiagram merupakan penjabaran semua permintaan dari konsumen ke dalam bentuk diagram sehingga memudahkan pengembang aplikasi di dalam mengimplementasikan aplikasi penjadwalan. Sebagai hasil dari tahap ini, penulis menjelaskan dan mendeskripsikan ke dalam bentuk dokumen final mapping. Selain itu, penjadwalan kuliah juga membutuhkan sebuah algoritma untuk mendistribusikan matakuliah-matakuliah secara otomatis ke dalam bentuk jadwal kuliah. Algoritma yang digunakan penulis dalam merancang aplikasi ini adalah dengan menggunakan metode random sederhana. Untuk memudahkan dalam pembuatan program, penulis
2.
Final mapping
Final mapping dilakukan untuk menjelaskan sistem ER-Diagram ke dalam bentuk struktur tabel [6]. Terdapat tujuh langkah yang dilakukan dalam proses mapping[2]. Adapun hasil mapping dari ER-Diagram pada gambar 3.1 adalah:
dosen (nip:string, nama:string) matakuliah (kode_mk:string, mk:string,
9
Query Penjadwalan Matakuliah Menggunakan Basis Data Terelasi (Irvanizam Zamanhuri) _____________________________________________________________________________________________________________
sks:string, semester:string, kode_prodi:string) prodi (kode_prodi:string, nprodi:string) mahasiswa (nim:string, nama:string) waktu(id_waktu:string, hari:string,
jam_masuk:string, jam_keluar:string) ruang (kode_ruang:string, ruang:string, kapasitas:string) mengajar (thnajar:string, kdmk:string, nip:string) mengambil (thnajar:string, kdmk:string, nim:string) punya (thnajar:string, idwaktu:string, kode_ruang:string, nip:string)
3. Flowchart dan algoritma penjadwalan Flowchart merupakan keterangan yang lebih rinci tentang setiap langkah program. Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi. Bentuk flowchart dari aplikasi ini dapat dilihat pada gambar 3.2.
Adapun jumlah ruang dari setiap ruang yang dimiliki oleh Jurusan Matematika adalah tujuh ruangan dengan rincian kapasitas muat dari setiap ruangan dapat dilihat pada tabel 1. Tabel 1. Ruangan dan kapasitas No Nama Ruang 1 RKU 12.01.001 2 RKU 12.01.002 3 RKU 13.02.004 4 RKU 13.02.010 5 MIPA 3A 6 MIPA 3B 7 Diseminasi
Kapasitas 100 100 70 70 45 45 50
Pada tahap awal, semua matakuliah berdasarkan prodi, tahun ajaran dan semester, dan jumlah mahasiswa yang mengambil matakuliah tersebut ditampilkan secara terpisah. Kemudian aplikasi menampilkan jumlah ruangan beserta kapasitasnya. Karena jumlah ruangan adalah tujuh dan jumlah waktu mengajar dalam seminggu adalah 24, maka jumlah kombinasi dari ruangan dan jumlah waktu akan menjadi slot jadwal kuliah untuk masing-masing matakuliah. Selanjutnya setiap matakuliah diambil secara acak (random) dan didistribusikan ke dalam slot jadwal kuliah tadi. Jika slot tersebut masih kosong, maka jadwal matakuliahnya adalah pada slot itu. Sedangkan jika slotnya tidak kosong maka akan dilakukan proses penjadwalan kembali (reschedule). Proses ini terus dilakukan sampai semua matakuliah terisi pada slot jadwal kuliah dan tidak ada slot yang terduplikasi dengan matakuliah. Gambar 3.3. merupakan algoritma untuk melalukan proses schedule untuk setiap matakuliah dengan menggunakan algoritma random.
Gambar 3.2 menjelaskan bahwa inputan kode prodi, tahun ajaran dan semester sangat dibutuhkan pada saat program ini dijalankan. Adapun inisialisasi waktu perkuliahan telah ditetapkan sebanyak lima hari dari hari senin sampai hari jumat. Karena dalam satu hari waktu yang dilaksanakan untuk mengajar sebanyak lima waktu (pukul 08:00-10:00, 10:0012:00, 12:00-14:00, 14:00-16:00, dan 16:00-18:00) dan hari jumat sebanyak empat waktu (kecuali jam 12:00-14:00 karena pelaksanaan ibadah sholat jum’at), maka total waktu mengajar yang dibutuhkan adalah 24 waktu.
10
Query Penjadwalan Matakuliah Menggunakan Basis Data Terelasi (Irvanizam Zamanhuri) _____________________________________________________________________________________________________________
Selanjutnya algoritma akan mengacak matakuliah untuk didistribusikan ke dalam slot jadwal kuliah. Jika seandainya jumlah mahasiswa yang mengikuti matakuliah lebih banyak dari kapasistas ruangan, maka algoritma akan mencarikan ruangan lain yang sesuai dengan daya tampung ruangan. Proses pengacakan dan pendistribusian untuk setiap matakuliah dapat dijalankan melalui potongan program 3. SELECT t1.* FROM ( SELECT d.kd_mk, d.jmlMHS, r. ruang, r.kapasitas,j.hari,j.jMasuk,j.jKelu ar FROM mengajar AS d, ruang AS r, jadwal AS j WHERE d.kdProdi = '01' AND semester= '3' " AND kd_mk = 'MPA001'AND d.jmlMhs<=r.kapasitas ORDER BY ruang,hari,jMasuk ) AS t1 ORDER BY rand() LIMIT 1
Program 3. matakuliah.
Pada gambar 3.3, proses awal yang dilakukan adalah mengkombinasi kemungkinan waktu dan ruang yang tersedia untuk pengalokasian slot jadwal kuliah. Proses ini dapat ditampilkan dengan menggunakan perintah SQL yang dapat dilihat melalui potongan program 1. SELECT j.hari, j.jMasuk,j.jKeluar,r.ruang FROM jadwal AS j, ruang AS r WHERE kdProdi ='01' ORDER BY r.ruang, j.hari
Program 1. Perintah SQL untuk mengkombinasikan waktu dan ruang
Kemudian algoritma tersebut akan menampilkan semua matakuliah yang disajikan oleh prodi, semester, dan tahun ajaran tertentu. Matakuliahmatakuliah tersebut dapat diperoleh dengan menggunakan potongan program 2. SELECT m.kd_mk, m.mk, m.sks, a.jmlMhs, IF(m.bobot>3,2,1) AS jmlMasuk FROM matakuliah AS m JOIN ( SELECT d.kd_mt_kul8, d.jmlMhs FROM mengajar as d WHERE d.kdProdi='01’ AND d.semester='3' AND d.jmlMhs >= 7 ORDER BY d.jmlMhs DESC ) AS a ON m.kd_mk=a.kd_mk
Program 2. Perintah SQL untuk matakuliah pada prodi, semester dan tahun ajaran tertentu.
Perintah
SQL
untuk
mengacak
Program 3 menunjukkan salah satu contoh pengalokasian matakuliah “MPA001 Matematika Dasar I” yang didistribusikan melalui hasil acakan dari aplikasi. Misalkan jumlah mahasiswa yang mengambil matakuliah ini adalah 50 orang mahasiswa dan jumlah ruangan yang sangup menampung jumlah mahasiswa tersebut adalah 3 ruangan serta jumlah sesi waktu belajar adalah 24 sesi, maka terdapat 72 kemungkinan waktu yang bisa dialokasikan kepada matakuliah MPA001. Jika diasumsikan waktu untuk matakuliah MPA001 adalah pada hari senin, pukul 10:0012:00, ruang A. Jika hasil kombinasi tersebut tidak kosong atau sedang dijadwalkan untuk matakuliah yang lain maka jadwal untuk matakuliah tersebut harus random kembali sampai ditemukannya waktu dan ruang yang muat. Proses random akan terus dilakukan sampai dengan semua matakuliah sudah terjadwal di dalam semua kemungkinan waktu yang diberikan. KESIMPULAN 1. Jumlah ruangan yang relatif sedikit dapat dioptimalkan dengan pemilihan ruang yang digunakan berdasarkan banyaknya mahasiswa yang mengambil matakuliah. 2. Semakin banyak ruangan yang memuat jumlah mahasiswa yang banyak, maka semakin banyak pula kemungkinan jumlah jadwal yang tersedia. 3. Aplikasi masih belum bisa menyelesaikan permasalah jika seorang mahasiswa mengulang 11
Query Penjadwalan Matakuliah Menggunakan Basis Data Terelasi (Irvanizam Zamanhuri) _____________________________________________________________________________________________________________
matakuliah pada tahun ajaran sebelumnya. UCAPAN TERIMA KASIH Penulis mengucapkan terima kasih kepada Mutiana Siska atas bantuannya sehingga penelitian ini dapat terlaksana dengan baik.
REFERENSI 1. Aria, 2005, M. Aplikasi Algoritma Genetik Untuk Optimasi Penjadwalan Matakuliah. 2. Fathansyah, 2007. Basis Data. Informatika, Bandung. 3. Kusrini, 2007. Strategi Perancangan dan Pengelolaan Basis Data. Andi, Y ogyakarta. 4. M.A. Al-Betar, A.T. Khader, T.A. Gani. A harmony search algorithm for university course timetabling, University Sains, Penang, Malaysia.
Bunafit, 2005. Database Relasional dengan MySQL. Andi, Yokyakarta 6. Pohan, Iskandar, H. Bahri, Saiful K, 1997. Pengantar Perancangan Sistem. Erlangga, Jakarta. 7. Prasetyo, Didik Dwi, 2005. Mengolah Database dengan Visual Basic.NET dan MySQL Server. Gramedia, Jakarta. 8. R. Ramakhrishnan, J. Gehrke, J. Derstadt, S. Selikoff, L. Zhu, Database Management Systems Solution Manual, 1998. Edisi Ketiga, Adison Wesley, USA. 9. Wahana Komputer, 2006. Pemrograman Visual Basic.Net 2005. Andi, Y ogyakarta. 10. Wahana Komputer. 2009. Visual Basic 2008. Andi, Yogyakarta. 11. W. Nutt, 2008. Introduction to Database Course, Slide Matakuliah, Free University of Bozen- Bolzano.
5. Meliani. Algoritma-algoritma yang digunakan dalam Penjadwalan Matakuliah. Nugroho,
12