Bemtdlll..dlfunl.lUl§ lHIama«llll19 §lUlyalDlto JEdlWaJlll"d29R.osntan JH[ell"allWatii3 1,2,3
nmu Komputer Unika Soegijapranata Semarang
[email protected]
AbstO'act JPew,jatiwmaw, MoiakadialJlJ mempaktm peli'SOalan klasik daKmn maMjemew, alademilk d4 pelfgU4nJtaTJU, !tiTJU,ggi. JPenoaHa1!O. yang meouJasari pada iTJU,!tiw,ya telfktal pf.84lla U4SaM meTJU,jatiwmluJm ugUotto.TJU, pelfkU4u'MTJU, p_ TJ1MJ/,TJU,g fisik yaTJU,g telfsedia. l'elfdapat baTJU,ytatllc piUDum aim balllJtu.u, ~ mewUlljU4duTJU, pTfogll'tllm plmjadwa'km. MU4lai dmi pemililJlJa1!O. jeTJU,is basis data yaTJU,g di.palud tIIt.dam pengolalJlJaTJU, daTJU, peTlU,JimpaMTJU, tfiatt.z sampai. plfoglfam apliJcasi yaTJU,g dipal/cai U4mu1c meysglJlJU4bUltng1a&TJU, antaT!'a basis dJata dengaTJU, pemaJJcai. JPeyseliti mencoba meneliti pemaluu.wn akot balJim opeys SOU4lfce da_ mewU4jwllum plfogmm penjadwalays sepelfti mysql daYS JPlHIJP. Metode telllBik penjadwalan yang diglJtllMllcaTJU, dengaTJU, membU4at matrilbgiattm dari semum ugiman yang mll4ngkiY& dijadwalJcan pada mang yang teli'Sedia dan membl/4at ~g dan semum legiatan yemg telalJlJ dapat dijadwlfJllkan di. mang yau&g teTfsedia. lKegiatan yang beTflJu&sH dijadwal1a&pg, dipUilJlJ dengan mempelfbandinglcan boboMJobot ugiatan yang telfbelllJtu.u,l da'Imn matrikkegiata1& dan ditempatkan dalam, mtltriklfUlJaysg. JlJoboMJobot lcegUdim diJaimwg dengan mellll8bandingkan tlk1Ia peselJ1a delltgan kapasitas /1'UUi,w,gaTJU,. JPenempataY/t bobot ugUW;m yang ltellJPilii.lJIJ dlJlmue. mIfIlItIlik mang dengan mempermmuu& miw,imal 2 lJIJal yaim cel tumiblJt!can semesltelf an mmbll4§can pew,gampll4. Jl)(iIsm peu&elitiau& 6.u&6. digll4u!can sistem operasi lLinl4X, JPlHIJP sebagai balJlJasa pemlfogmmaw" qaclJlJe sebagai web sener dan mys"l sebagm database sell'VeTf. Database yag dibau&gU4YS reUati/ kecH selJlJ6.ngga mys"l sudah memenulBi syarm. JPlHIP daYS mys"l CII4AP 6w;flUial daHam mewuj'lMihl!D. pTl'og'llY.D.m peYUjadwalan mtJiaIcuilialB. 7l'iu&gkat kemmww, dalam mewU4jUMflkaw, proglfam iw,u, IllIiaMJJ banyalysya eel seperli mmbllt§caTJU, semester da1& pe1&gampu serllJ, cel mmbu!uo.8B mMiun slks doJ.am matrik T!'Uau&g. lKeywortd: peTJU,jadwalau&, mys,,$, plJIJp
.1&
konsisten dengan penggunaan dan pengembangan aplikasi open source, meIljadi suatu yang penting untuk mengembangkan program-program aplikasi berbasis open licence. Berdasar hal tersebut peneliti mengangkat penelitian pengembangan teknik penjadwalan dengan menggunakan MySQL dan PHlP. Penelitian ini menghasilkan jadwal matakuliah yang optimum dengan menggunakan alat bantu MySQL dan PHlP. Jadwal optimum yang dimaksud adalah jadwal tanpa tumbukan semester dan pengampu. Program penjadwalan matakuliah kuliah yang terbentuk dapat dipergunakan oleh perguruan tinggi dan lembaga pendidikan lain yang memiliki persoalan penjadwalan. Teknik. penjadwalan yang berhasil
11.. JPlenndlalllhnwhlllaJllDl Penjadwalan Matakuliah merupakan persoalan klasik dalam manajemen akademik: di perguruan tinggi. Setiap semester atau setiap tahun ajaran para pimpinan akademis di tingkat fakultas seperti Pembantu Dekan I dan KetualSekretaris Jurusan di tingkat program studi melakukan proses ploting matakuliah untuk para pengampu matakuliah dan menjadwalkannya pada ruang yang tersedia di lingkungan prodi maupun fakultas. Penjadwalan diperlukan pada persoalan keterbatasan sumber daya. Pada persoalan penjadwalan matakuliah sumber daya yang dimaksud adalah sumber daya ruang yang digunakan pada perlruliahan Bagi Fakultas TImu Komputer Universitas Katolik. Soegijapranata yang 27
diterapkan pada persoalan penjadwalan dapat memperkaya aplikasi algoritma yang dapat diterapkan pada persoalan penjadwalan yang sama
diantara kegiatan yang akan dijadwalakan dalam ruang yang sarna dan melakukan proses cek tumbukan semester dan pengampu.
2. Tihmja1Lum. Pustaka 2.1 Pemlf'oglf'amal!D. Basis Data
3. Metodoiogi Penelitian Penelitian dilakukan menggunakan alur sebagai berikut :
Mysql adalah database server yang banyak digunakan dan mysql adalah gratis. Kemampuan mysql untuk menyimpan records hinggga milyard menunjukkan bahwa mysql cukup handal. Pada penelitian ini database yang dibangun relatif sangat kecil sehingga mysql sudah memenuhi syarat Bahasa pemrograman untuk database antara lain: PHP, perl, dan java. PHP merupakan bahasa pemrograman script dan bias a digunakan untuk membangun aplikasi berbasis web. PHP bisa diinstal berbarengan dengan apache sebagai web server dan mysql sebagai database server. Penelitian ini PHP sebagai bahasa menggunakan pemrograman, apache sebagai web server dan mysql sebagai database server. PHP adalah bahasa pemrograman di sisiserver (server-side) dalam pemrograman berbasis web. Keuntungan pemrograman sisi-server adalah kemudahan koneksi ke database server. Karena database server ada di sisi-server maka koneksi ke database bisa dilakukan dengan user dan password localhost. Karena PHP berproses di sisiserver maka user dan password yang digunakan tidak akan nampak di browser (client). Hanya hasil proses PHP yang kemudian di "kirim" ke client untuk ditampilkan di alayar browser.
dengan
r-------------------- -----------, I
I
: I
MySO,L
BUI LD
:I
DATAB~E:
:
1
I
1
I
1______ - - - - - - - - - - - - - - -
___________ ~
---------------------
-----------~
INISIALISASI (Me mbe nt u k mat rlk keg Vs Rg)
PEMBOBOTAN MySO,L& PHP
(Membentuks eluruh bobot pd matrik keg)
Matching (denlliln mil)(() &. cek)
Gambar 3.1 Metodologi lPenelitian
Langkah awal dilakukan dengan membangun Database. Langkah inisialisasi dilakukan dengan membentuk matrik kegiatan vs ruang dan merupakan ruang masalah yang akan digarap dalam proses penjadwalan.. Langkah pembobotan dilakukan dengan menghitung bobot seluruh kegiatan dati ruang masalah yang terbentuk dalam matrik kegiatan dengan memperhatikan data ruangan dan data matakuliah. Langkah matching dilakukan dengan memperbandingkan bobot-bobot kegiatan yang akan ditempatkan dalam ruang dan jam
2.2 Konsep Matrik Pada Penjadlwaian Penerapan teori graf di dalam proses penjadwalan diwujudkan dengan membentuk matrikkegiatan yang mengandung besaran bobot-bobot kegiatan dan matrikruang yang datanya diambil dari matrik kegiatan dengan memperhatikan kesesuaian (matching) dengan kondisi ruang kelas, peserta dan pengampu. Proses penempatan dalam matrik ruang dilakukan dengan memilih bobot maksimum 28
antara jumlah data hari, ruang, jam dan matakuliah.
yang sama dengan memperhatikan cek tumbukan semester kuliah dan pengampu. Hasil yang diharapkan berupa jadwal matakuliah yang paling pas untuk kondisi matakuliah seperti semester, jumlah peserta dan kondisi ruang seperti kapasitas ruangan.
Pemberian Nilai Bobot Pemberian nilai bobot pada setiap record data di dalam matrikkegiatan pada dasarnya adalah menghitung dan menempatkan nilai bobot pada setiap rekaman data yang terdapat dalam matrikkegiatan. Penghitungan bobot dikerjakan dengan menggunakan rumus:
4. Hasil Penelitian dan Pembahasal1l Penelitian dilakukan dengan metode pembobotan kegiatan di seluruh kemungkinan ruang, mengadu bobot pada tiap kemungkinan ruang dan menempatkan hasilnya pada ruang jadwal. Penempatan hasil di ruang jadwal dengan melakukan operasi cek terhadap tumbukan semester matekuliah, tumbukan pengampu matakuliah dan tumbukan runtun sks. Proses penjadwalan pada dasamya terbagi dalam : • proses inisialisasi matrikkegiatan • proses pemberian nilai bobot pada setiap record data di dalam matrikkegiatan • proses inisialisasi matrikruang • proses perhitungan dan pemilihan bobot maksimum • proses penempatan dengan cek tumbukan semester dan tumbukan pengampu
set xbobot =(peserta/kaps) *100. Harga 100 digunakan untuk mengubah bilangan bobot pecahan menjadi bilangan bobot dengan tipe integer. Harga bobot yang didapat masih harus dikenai proses normalisasi. Normalisasi terhadap nilai bobot diterapkan dengan alasan bahwa bila data peserta melebihi kapasitas ruang maka akan mengurangi bobot kegiatannya. Semakin besar kelebihannya semakin berkurang bobotnya, seperti ditunjukkan dalam tabel 1 berikut:
.
Tabell Normalisasi mIai booot , x bebet normaiisasi x bobot <= 100 100 101 < x bobot <= 110 90 111 < x bobot <= 120 50 x bobot > 121 1
Inisialisasi matrikkegiatan Inisialisasi matrikkegiatan pada dasarnya adalah proses menyiapkan matrik kegiatan yang berupa pengisian tabel matrik jadwal dengan data jumlah hari, ruang, jam, data matakuliah cek dan bobot. Data hari diisi dengan data 5 hari kerja dari senin sId jumat, data ruang disesuaikan dengan ketersediaan ruang, data jam diisi denga 8 jam kerja dari 07.30 sId 15.30, data matakuliah diisi dengan jumlah matakuliah yang akan dijadwalkan pada semester berjalan, data cek diset 0 dengan maksud bahwa data belum dijadwalkan dan data bobot diset NULL sebagai default. Proses ini diwujudkan dalam pembuatan stored procedure initMatrikJdw(IN kuliah int, IN ruang int, IN hari int, IN jam int) yang dapat dipanggil dari script PHP. Jumlah record data yang terbentuk sebanyak perkalian
Proses ini diwujudkan dengan stored procedure isibobotO. CREATE DEFINER='roof@'localhosf PROCEDURE'isibobofO BEGIN DECLARE xnomr int; DECLARE peserta int; DECLARE kaps int; DECLARE xbobot float; DECLARE xxbobot int; declare 1_lasCrow_fetched iot; DECLARE cursocbobot CURSOR FOR SELECT matrikjadwal.nomr, rntkuliah.peserta, rg.kaps FROM mtkuliah. rg, matrikjadwal WHERE mtkuliah.nomrnk=rnatrikjadwal.nomrnk AND rg.oorg=matrikjadwal.norg;
29
DECLARE CONTINUE HANDLER FOR NOT FOUND SET Uascrow3etched=l; OPEN cursoCbobot; putaran: LOOP FETCH cursoCbobot into xnomr, peserta, kaps; set xbobot= (peserta/kaps)*100; if xbobot<=100 then set xxbobot=xbobot; else if xbobot<= 110 then set xxbobot=90; else if xbobot<= 120 then set xxbobot=50; else if xbobot<= 500 then set xxbobot=l; end if; end if; end if; end if;
dengan asumsi bahwa tidak mungkin peserta pada saat bersamaan mengikuti dua perkuliahan sekaligus. Cek tumbukan pengampu diadakan dengan asumsi bahwa tidak mungkin pada saat yang bersamaan seseorang mengampu dua perkuliahan sekaligus di ruang yang berbeda.
s. KesimpUIlHim dam Sanm. Kesimpulan yang dapat diambil dari penelitian ini adalah : o ~erhitungan bobot dikerjakan dengan membandingkan data peserta kegiatan dan data kapasitas ruangan. @ Pemberian nilai bobot pada setiap kegiatan yang terbentuk dikerjakan dengan penambahan proses normalisasi karena bobot yang melebihi nilai normal dalam arti jumlah peserta melebihi kapasitas ruangan maka bobotnya harus dibuat kecil karena nilai efektivitas penggunaan ruangan yang kecil. e Proses penempatan data kegiatan ke dalam ruang dilakukan dengan memilih bobot terbesar dari kegiatan yang akan ditempatkan pada ruan, hari dan jam yang sama. Proses berikutnya sebelum ditempatkan adalah cek tumbukan semester dan tumbukan pengampu ® Pemakaian basisdata mysql cukup stabil dalam membangun basisdata penjadwalan dan pemakaian pemrograman PHP dapl::.t memenuhi kebutuhan dalam pemrograman penjadwalan.
SELECT xnomr, peserta, kaps, xxbobot; UPDATE matrikjadwal SET bobot=xxbobot, cek=O where nomr=xnomr; if UasCrow3etched=1 then leave putaran; end if; END LOOP pUtaran; CLOSE cursocbobot; END$$
Inisiaiisasi matrikruang Inisialisasi matrikruang merupakan pengisian data dalam matrikruang dengan data jumlah hari, ruang, jam, data matakuliah dan bobot. Jumlah record data yang terbentuk tidak sebanyak matrikkegiatan yaitu dihitung dengan mengalikan jumlah data hari, ruang dan jam. Proses ini divvujudkan dengan stored procedure initMatrikRg (ruang int, hari int, jam int,kuliah int).
Daftar lPuIstab
Perhitungan dan pemilihan bobot
[1] Harnadi, B., 2010, " Perancangan Algoritma Assignment pada Proses Penjadwalan Berdasarkan Data Matrik dari Graph Bipartite Matching ", Prosiding EECCIS Teknik Elektro UNffiRAW Malang, Vol.ll, E.8.1-E.8.4.
maksimum Proses perhitungan dan pemilihan bobot maksimum dikerjakan dengan menggunakan fungsi maksimum pada data matrik ruang. Penempatan dengan cek tumbukan semester dan tumbukan pengampu Proses penempatan bobot maksimum ke dalam matrik ruang dengan memperhatikan cek tumbukan semester dan tumbukan pengampu. Cek tumbukan semester diadakan
[2] Harnadi, B., Susianto, F., 2006, " Penjadwalan Mata Kuliah di Perguruan Tinggi", Media Teknik Ff. UGM, Th. xxvrn, no. 1.
30
[3] Purwanto, E.B., Perancangan dan Analisis Algoritma, Graha llmu, Yogyakarta, 2008. [4] MySQL and PHP from scratch, Wade Maxfield, QUE, 201 West 103rd Street, Indianapolis, Indiana 46290 [5] Database Nonnalization Basics, By Mike Guide, Chapple, About. com http://databases.about.comlodlspecificproduc tslalnonnalization.htm
31