PERANCANGAN DAN IMPLEMENTASI FINITE AUTOMATA

Download kuliah atau yang dalam istilah asing disebut university timetabling problem ini ... Kajian Pustaka ... Penelitian yang membahas tentang Imp...

0 downloads 429 Views 1MB Size
Perancangan dan Implementasi Penjadwalan Mata Kuliah Menggunakan Algoritma Steepest Ascent Hill Climbing (Studi Kasus : Fakultas Psikologi UKSW)

Artikel Ilmiah

Peneliti: Klaudius Nikotino Putranto (672008192) M. A. Ineke Pakereng, M.Kom. Ramos Somya, S.Kom., M.Cs.

Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen SatyaWacana Salatiga Mei 2012

1

2

3

Perancangan dan Implementasi Penjadwalan Mata Kuliah Menggunakan Algoritma Steepest Ascent Hill Climbing (Studi Kasus : Fakultas Psikologi UKSW) 1)

Klaudius Nikotino P., 2) M. A. Ineke Pakereng, 3) Ramos Somya Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50771, Indonesia Email: 1)[email protected], 2) [email protected] 3) [email protected] Abstract

Schedule of courses has been one of the most important part in a university’s teaching and learning activity. The large number of courses and lecturers that are involved, make some clashes on course’s schedule or class room’s schedule could happens frequently, so it requires an application to simplify the process of developing the course schedule. Steepest ascent hill climbing algorithm is an algorithm that generates all possible solutions, and then checks every solution to obtain optimum solution. The result of this research is this course scheduling system can facilitate courses schedulling, in addition steepest ascent hill climbing algorithm is able to obtain optimum scheduling courses solutions. Keywords : Course Schedulling, Steepest Ascent Hill Climbing Abstrak Jadwal mata kuliah telah menjadi salah satu bagian terpenting dalam proses belajar mengajar sebuah universitas. Banyaknya jumlah mata kuliah dan dosen yang terlibat, mengakibatkan sering terjadinya bentrokan jadwal mata kuliah atau pun dalam pemakaian ruang perkuliahan, sehingga diperlukan sebuah aplikasi guna mempermudah proses penyusunan jadwal mata kuliah tersebut. Algoritma steepest ascent hill climbing adalah algoritma yang mengumpulkan seluruh solusi yang mungkin, dan mengecek setiap solusi untuk memperoleh solusi yang optimal. Hasil dari penelitian ini adalah aplikasi yang dibangun dapat digunakan untuk memudahkan penjadwalan mata kuliah selain itu algoritma steepest ascent hill climbing mampu memperoleh solusi penjadwalan mata kuliah yang optimal. Kata Kunci : Penjadwalan Mata Kuliah, Steepest Ascent Hill Climbing. 1)

Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya Wacana Salatiga. 2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga. 3) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga.

4

1.

Pendahuluan

Jadwal mata kuliah menjadi salah satu bagian terpenting dalam proses belajar mengajar suatu lembaga pendidikan, termasuk Fakultas Psikologi Universitas Kristen Satya Wacana. Banyaknya jumlah mata kuliah dan dosen yang terlibat, mengakibatkan sering terjadinya bentrokan jadwal mata kuliah atau pun dalam pemakaian ruang perkuliahan. Terdapat beberapa aspek yang perlu dipertimbangkan dalam menyusun jadwal mata kuliah yang baik. Pada Aspek dosen perlu dihindari adanya jadwal mengajar 2 (dua) mata kuliah yang berbeda pada hari dan jam yang sama. Pada aspek ruang, ketersediaan ruang pun menjadi pertimbangan tersendiri dan menjadi poin penting yang tidak dapat diabaikan dalam pembuatan jadwal mata kuliah, di mana dalam pembuatan setiap jadwal mata kuliah, harus melihat ketersediaan ruang yang ada serta kapasitas maksimal masing-masing ruang. Proses penyusunan jadwal mata kuliah atau yang dalam istilah asing disebut university timetabling problem ini bukanlah pekerjaan mudah dan kerap kali terjadi kesalahan. Sejauh ini Fakultas Psikologi Universitas Kristen Satya Wacana masih melakukan penyusunan jadwal mata kuliah secara manual. Selain rentan terjadi kesalahan dalam pelaksanaannya, proses penyusunan jadwal mata kuliah tersebut juga merepotkan serta kurang efektif dan efisien, sehingga diperlukan sebuah aplikasi guna mempermudah proses penyusunan jadwal mata kuliah tersebut. Dalam aplikasi tersebut diperlukan pula metode optimasi untuk memperoleh hasil yang terbaik, mengingat banyaknya aspek yang harus dipertimbangkan. Sehingga dibutuhkan algoritma yang dapat menyelesaikan masalah multi-kriteria dan multi-objektif, seperti penyusunan jadwal mata kuliah. Salah satu algoritma yang dapat digunakan adalah steepest ascent hill climbing. Berdasarkan latar belakang tersebut, muncul sebuah ide untuk membuat sebuah penjadwalan mata kuliah menggunakan algoritma steepest ascent hill climbing. 2.

Kajian Pustaka

Penelitian tentang penjadwalan mata kuliah telah cukup banyak dilakukan. Pada penelitian berjudul Aplikasi Algoritma Genetik untuk Optimasi Penjadwalan Kegiatan Belajar Mengajar, diperoleh hasil bahwa aplikasi penjadwalan mata kuliah dapat menyusun jadwal mata kuliah secara optimal, selain itu dapat meminimalkan frekuensi mengajar seorang dosen, frekuensi kuliah suatu kelas dan faktor pengaruh lainnya [1]. Penelitian lainnya, yaitu Penggunaan Tabu Search dalam Penjadwalan Kuliah dan Ujian Perguruan Tinggi (Studi Kasus : Sekolah Tinggi Manajemen Bandung) diperoleh kesimpulan bahwa aplikasi penjadwalan ini mempermudah bagian sekretariat dalam menyusun jadwal kuliah dan ujian pada tiap semesternya [2]. Demikian pula dengan penerapan algoritma steepest ascent hill climbing dalam suatu aplikasi atau pun penelitian mengenai algoritma tersebut telah cukup banyak dilakukan. Penelitian yang membahas tentang Implementasi Metode Steepest Ascent Hill Climbing pada Mikrokontroler MCS51 untuk Robot Mobil Pencari Jalan Terpendek diperoleh kesimpulan bahwa algoritma steepest ascent

5

hill climbing dapat diterapkan pada masalah pencarian jarak terpendek serta dapat bekerja dengan cukup baik [3]. Penelitian lain tentang Algoritma Steepest Ascent Hill Climbing untuk Menyelesaikan Masalah Penugasan menunjukkan bahwa algoritma steepest ascent hill climbing dapat melakukan perhitungan yang akurat pada kasus penugasan [4]. Berdasarkan penelitian sebelumnya terkait penjadwalan mata kuliah, dan penelitian penerapan algoritma steepest ascent hill climbing, maka melalui penelitian ini akan dirancang sebuah penjadwalan mata kuliah menggunakan algoritma steepest ascent hill climbing. Algoritma steepest ascent hill climbing memiliki keunggulan di mana semua solusi yang mungkin akan dibangkitkan kemudian akan diperiksa satu persatu, sehingga akan diperoleh solusi terbaik dan mendekati hasil optimasi yang diharapkan. Algoritma Steepest Ascent Hill Climbing Algoritma steepest ascent hill climbing adalah salah satu algoritma yang sering digunakan untuk memecahkan masalah optimasi. Secara harafiah steepest berarti tertinggi, sedangkan ascent adalah kenaikan. Sehingga steepest ascent dapat diartikan sebagai kenaikan tertinggi, di mana prinsip dasar dari algoritma ini adalah mencari kenaikan tertinggi dari solusi-solusi yang mungkin terjadi, untuk mencapai nilai yang paling optimal [5]. Algoritma steepest ascent hill climbing merupakan pengembangan dari algoritma simple hill climbing. Perbedaan kedua algoritma ini adalah, pada simple hill climbing, next state akan ditentukan dengan membandingkan current state dengan satu successor saja. Proses pembandingan ini dimulai dari sebelah kiri. Apabila ditemukan successor baru yang lebih baik dari current state maka successor tersebut akan menjadi next state. Sedangkan pada steepest ascent hill climbing dalam menentukan next state, current state akan dibandingkan dengan semua successor yang ada di dekatnya, sehingga next state yang diperoleh merupakan successor yang paling baik serta mendekati hasil optimasi yang diharapkan. Selain itu pada steepest ascent hill climbing urutan penggunaan operator tidak berpengaruh terhadap solusi, sedangkan pada simple hill climbing urutan penggunaan operator sangat berpengaruh. Adapun urutan atau langkah dari algoritma steepest ascent hill climbing [5] adalah sebagai berikut : (1) Pada keadaan awal dilakukan pengujian: jika merupakan tujuan maka berhenti; dan jika tidak maka lanjutkan pencarian dengan keadaan sekarang sebagai keadaan awal; (2) Lakukan proses berikut tujuan tercapai atau hingga iterasi tidak memberikan perubahan pada keadaan sekarang :; (a) Tentukan SUCC sebagai nilai heuristik terbaik dari successor-successornya; (b) Lakukan proses berikut untuk tiap operator yang digunakan oleh keadaan sekarang :; (i) Gunakan operator tersebut dan bentuk keadaan baru.; (ii) Evaluasi keadaan baru yang diperoleh. Jika merupakan tujuan, keluar. Jika bukan, bandingkan nilai heuristik yang ada dengan SUCC, apabila lebih baik, jadikan nilai heuristik keadaan baru sebagai SUCC. Namun apabila tidak lebih baik, maka nilai SUCC tetap.; (c) Jika SUCC lebih baik dari nilai heuristik keadaan sekarang, ubah node SUCC menjadi keadaan sekarang.

6

Algoritma steepest ascent hill climbing mempunyai rumus untuk memperoleh banyaknya solusi yang diperoleh apabila terdapat n operator yaitu : n! 2!(n-2)! Profil Fakultas Psikologi UKSW Fakultas Psikologi UKSW merupakan salah satu fakultas yang bisa dibilang cukup favorit di UKSW, terlihat dari jumlah mahasiswa baru tiap tahunnya yang cukup banyak. Pada sisi pelayanan dan kegiatan operasional fakultas, Fakultas Psikologi UKSW bisa dibilang belum banyak menerapkan sistem yang dapat mempermudah proses yang ada, demikian juga dengan proses pembuatan jadwal mata kuliah. Pihak Fakultas Psikologi UKSW selama ini dalam pembuatan jadwal mata kuliah masih menggunakan cara konvensional, di mana petugas menyusun jadwal menggunakan software Microsoft Excel. Informasi yang terkait penjadwalan mata kuliah Fakultas Psikologi UKSW ditunjukkan oleh tabel 1. Tabel 1 Informasi Terkait Penjadwalan Mata Kuliah Fakultas Psikologi UKSW

Mata Kuliah

Tenaga Pengajar Ruang Perkuliahan

Jumlah Mahasiswa

Keterangan Total 85 mata kuliah, di mana pada setiap semesternya dibuka sekitar 40 mata kuliah Berbobot 2-3 SKS, namun terdapat satu mata kuliah yaitu Kode Etik Psikologi yang berbobot 1 SKS Terdapat 18 dosen tetap, dengan beberapa tambahan dosen luar GXY 102, E 134, ABX 104, GXY 101, GX 204 Stiba H2, Stiba H3, Stiba H4 (khusus Mata Kuliah Bhs. Inggris) 700 orang (per tahun ajaran 2011-2012)

Terdapat beberapa aspek yang perlu dipenuhi dalam menyusun jadwal mata kuliah Fakultas Psikologi UKSW, di mana aspek tersebut menentukan kualitas dari jadwal mata kuliah yang dihasilkan. Aspek tersebut adalah : (1) Dosen dapat mengajar lebih dari satu mata kuliah, namun tidak boleh terjadi tabrakan pada dosen yang bersangkutan. Misalnya seorang dosen mengajar dua mata kuliah yang berbeda namun pada jam yang sama; (2) Satu mata kuliah dapat diampu oleh 2 orang dosen; (3) Beban maksimal mengajar seorang dosen adalah 9 SKS; (4) Satu ruang perkuliahan tidak dapat digunakan untuk 2 mata kuliah atau lebih pada waktu yang bersamaan atau bertabrakan; (5) Ketersediaan ruang dengan kapasitas yang cukup untuk setiap mata kuliah yang ada; (6) Kegiatan belajar mengajar berlangsung dari pukul 7 pagi hingga pukul 4 sore. Pembuatan jadwal mata kuliah Fakultas Psikologi UKSW membutuhkan ketelitian yang lebih, mengingat banyaknya aspek yang perlu diperhatikan. Kerumitan inilah yang sering kali menyebabkan terjadinya kesalahan dalam pengaturan jadwal sehingga memungkinkan satu ruang perkuliahan digunakan

7

pada waktu yang bersamaan untuk 2 mata kuliah yang berbeda ataupun dosen yang mengajar mata kuliah yang berbeda pada waktu yang bersamaan. Selain itu diperlukan waktu yang cukup lama sampai benar-benar memperoleh jadwal mata kuliah yang optimal, sehingga kurang efisien. 3.

Metode dan Perancangan Sistem

Metode penelitian yang digunakan dalam pengembangan sistem adalah Prototype Model. Prototype Model adalah metode pengembangan perangkat lunak yang banyak digunakan. Metode ini memungkinkan adanya interaksi antara pengembang sistem dengan pengguna sistem nantinya, sehingga dapat mengatasi ketidakserasian antara pengembang dan pengguna. Bagan mengenai prototype model dapat dilihat pada Gambar 1.

Gambar 1 Bagan Prototype Model [6]

Tahap-tahap dalam Prototype Model adalah sebagai berikut: (1) Listen to Costumer, di mana dilakukan analisis mengenai kebutuhan pengguna sistem dilakukan berdasar proses bisnis yang ada. Hanya terdapat 2 (dua) pengguna yaitu pembuat jadwal itu sendiri serta administrator. Kebutuhan dari pembuat jadwal adalah sebagai berikut : membuat jadwal mata kuliah, dapat memperoleh informasi mengenai mata kuliah-mata kuliah yang ada, dapat memperoleh informasi mengenai dosen, serta mata kuliah yang diampu oleh masing-masing dosen pada jadwal mata kuliah, dapat memperoleh informasi mengenai ruang perkuliahan yang tersedia, serta jadwal penggunaan ruang berdasar jadwal mata kuliah, dapat menentukan mata kuliah apa saja yang ada pada jadwal yang dibuat, dapat menentukan banyak kelas untuk setiap mata kuliah yang ada pada jadwal yang dibuat, dapat menentukan jumlah dosen pengampu mata kuliah pada jadwal yang dibuat. Sedangkan untuk Administrator : dapat melakukan manipulasi data mata kuliah, dapat melakukan manipulasi data dosen, dapat melakukan manipulasi data ruang kelas; (2) Build, setelah memperoleh informasi dan kebutuhan lainnya guna merancang sebuah aplikasi web penjadwalan mata kuliah dengan algoritma steepest ascent hill climbing, langkah berikutnya adalah membangun perancangan dengan menggunakan UML atau Unified Modelling Languange mengenai sistem yang akan dibangun nantinya. Selain itu dilakukan pula perancangan pada user interface dan algoritma. Kemudian rancangan sistem akan diterjemahkan ke dalam bahasa pemrograman PHP 5 dan untuk interface sistem dibangun dengan

8

menggunakan bahasa pemrograman HTML dan CSS; (3) Costumer Test, tahap ini dilakukan guna melihat apakah dari prototype yang dibuat sudah memenuhi ekspektasi dan kriteria sistem yang akan dikembangkan. Apabila sudah memenuhi maka akan dilanjutkan ke tahap berikutnya, namun apabila belum maka akan kembali ke tahap awal yaitu pengumpulan kebutuhan, membangun prototype dan melakukan evaluasi kembali sampai prototype sesuai dengan apa yang diharapkan. Perancangan Sistem Sistem dirancang dengan menggunakan UML (Unified Modelling Language) yang terdiri dari use case diagram, activity diagram, class diagram dan deployment diagram. Pada use case diagram, seorang user harus melakukan login terlebih dahulu ke dalam sistem, di mana login akan menentukan hak akses dari seorang user. Terdapat dua akses yaitu administrator dan pembuat jadwal seperti pada Gambar 2.

Gambar 2 Use Case Diagram

Pada sistem terdapat beberapa fungsi yang tersedia dalam hak akses sebagai pembuat jadwal. Selain dapat membuat jadwal, seorang pembuat jadwal juga dapat memperoleh informasi mengenai mata kuliah, memperoleh informasi mengenai dosen, memperoleh data ruang kuliah, menentukan mata kuliah yang ada pada jadwal, menentukan banyak kelas untuk setiap mata kuliah pada jadwal, menentukan banyak dosen pengampu masing-masing mata kuliah, serta melihat jadwal yang telah dibuat. Sedangkan fungsi yang ada pada hak akses sebagai administrator adalah dapat melakukan manipulasi data mata kuliah, dosen atau pun ruang kuliah, di mana fungsi manipulasi di sini meliputi fungsi untuk`dapat menambah data (insert), menghapus data (delete), serta mengubah data (update). Class diagram menggambarkan struktur dan deskripsi, entity, controller, dan boundry serta hubungannya satu sama lain. Aplikasi yang dibuat memiliki class diagram seperti yang terlihat pada Gambar 6.

9

Gambar 3 Class Diagram Sistem

Class Diagram sistem ditunjukkan oleh Gambar 3, di mana class diagram tersebut terdiri 3 bagian utama yaitu entity, controller dan boundry. Terdapat 5 (lima) entity pada class diagram yang ditunjukkan oleh Gambar 6, yaitu entity tbdosen, tbruang, tbmatakuliah, tbjadwal dan tbuser. Tbdosen terdiri dari 5 (lima) field yaitu idDosen, KodeDosen, Nama, idMK, BebanSKS. Tbruang terdiri dari 3 (tiga) field yaitu idRuang, KodeRuang, dan Kapasitas. Pada tbmatakuliah terdapat 8 (delapan) field yaitu idMK, KodeMK, MK, SKS, Semester, Keterangan, Bidang, dan Sem. Sedangkan pada tbjadwal terdapat 12 (dua belas) field yaitu KodeMK, MK, SKS, KodeDosen, Nama, KodeDosen, Nama, KodeRuang, Kapasitas, hari, jammulai, jamselesai, thnajaran, Angkatan. Pada setiap entity terdapat sebuah controller yang bertugas untuk menampung fungsi-fungsi manipulasi pada database. Fungsi manipulasi tersebut antara lain adalah insert, update, dan delete. Pada setiap controller juga terdapat sebuah boundry yang berupa user interface. Deployment diagram berfungsi untuk menampilkan rancangan fisik jaringan dalam sistem. Gambar 7 menunjukkan bahwa terdapat 4 (Empat) komponen dalam proses deployment, yaitu Model, Controller, Database, dan Client sebagai pengakses sistem

10

Gambar 4 Deployment Diagram Sistem

Seperti yang terlihat pada Gambar 4 saat client mengakses sistem dan mengirimkan request tertentu, maka request akan diproses terlebih dahulu oleh model yang kemudian akan diteruskan kepada controller. Controller sendiri menampung fungsi-fungsi manipulasi database yang diperlukan oleh sistem. Saat request dari client diterima, akan ditentukan fungsi manipulasi yang sesuai dan kemudian akan diteruskan ke database. Setelah respond diterima selanjutnya respond akan dikembalikan melalui controller dan model, hingga diterima oleh client.

11

Rancangan Algoritma Steepest Ascent Hill Climbing Rancangan algoritma steepest ascent hill climbing pada sistem dalam bentuk flow chart dapat dilihat pada Gambar 5.

Gambar 5 Flow Chart Algoritma Steepest Ascent Hill Climbing pada Sistem

Langkah-langkah penerapan algoritma steepest ascent hill climbing pada sistem adalah sebagai berikut : (1) Proses dimulai dengan user memasukkan parameter pada masing-masing mata kuliah. Parameter yang ada meliputi kapasitas, jumlah kelas dan dosen pengampu; (2) Memilih mata kuliah apa saja yang ada pada jadwal; (3) Diperoleh sebuah variabel yaitu JumData yang

12

mengacu pada banyaknya data (mata kuliah); (4) Diperoleh variabel JumlahKelas yang mengacu pada jumlah kelas pada masing-masing mata kuliah; (5) Selanjutnya akan dilakukan perulangan sebanyak jumlah data mata kuliah; (6) Akan dibangkitkan solusi jadwal yang mungkin terjadi pada setiap perulangan secara random, sebanyak jumlah kelas pada masing-masing mata kuliah. Solusi jadwal yang diperoleh akan dicek dengan beberapa kriteria untuk menentukan apakah merupakan sebuah solusi atau tidak. Solusi jadwal yang dibangkitkan secara random akan memiliki nilai heuristik yang dilambangkan dengan variabel h dan bernilai 0 (nol) pada awal proses. Pada setiap proses pengecekan solusi, nilai variabel h akan bertambah seiring dengan hasil yang diperoleh; (7) Pertamatama solusi jadwal akan dicek, apakah dosen pengampu memiliki sisa beban SKS yang cukup yaitu beban SKS kurang dari atau sama dengan 9 (sembilan). Apabila hasil yang diperoleh adalah ya maka akan berlanjut pada tahap berikut dan nilai h=1, namun apabila hasil yang diperoleh tidak, maka solusi jadwal bukan merupakan solusi yang tepat dan akan dibangkitkan solusi jadwal lain secara random dan kembali ke pengecekan awal; (8) Tahap berikutnya akan dilakukan pengecekan apakah solusi jadwal yang diperoleh tidak ada tabrakan pada dosen. Tabrakan yang dimaksud adalah dosen mengajar pada jam dan hari yang sama untuk 2 (dua) mata kuliah. Apabila hasil yang diperoleh adalah tidak, maka nilai h=2 dan akan berlanjut pada proses pengecekan berikutnya. Apabila hasil yang diperoleh adalah ya, maka solusi jadwal bukan merupakan solusi yang tepat dan akan dibangkitkan solusi jadwal lain secara random dan kembali ke pengecekan awal; (9) Pada proses pengecekan berikutnya solusi jadwal akan dilihat apakah ada tabrakan pada pemakaian ruang. Tabrakan pemakaian ruang berarti sebuah ruang perkuliahan dipakai pada jam dan hari yang sama oleh 2 (dua) mata kuliah. Apabila hasil yang diperoleh adalah tidak, maka nilai h=3 dan akan berlanjut pada proses berikutnya. Apabila hasil yang diperoleh adalah ya, maka solusi jadwal bukan merupakan solusi yang tepat dan akan dibangkitkan solusi jadwal lain secara random dan kembali ke pengecekan awal; (10) Setelah dilakukan pengecekan dan nilai h=3, maka solusi jadwal disimpulkan sebagai solusi yang tepat dan ditampilkan; (11) Solusi jadwal yang diperoleh akan disimpan sebagai solusi pembanding untuk solusi yang lain; (12) Langkah berikutnya adalah kembali ke langkah awal untuk membangkitkan solusi secara random; (13) Apabila nilai j sama dengan JumlahKelas, maka akan kembali ke perulangan awal dan dimulai proses untuk solusi jadwal mata kuliah yang lain; (14) Proses berulang terus menerus hingga diperoleh jadwal mata kuliah yang lengkap.

13

4.

Hasil dan Pembahasan

Penerapan Algoritma Steepest Ascent Hill Climbing Kode Program 1 Fungsi Mengenerate Solusi Jadwal Secara Random 1. function jadwal($KodeMK,$SKS,$Kapasitas,$jumlahkelas) { 2. $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; 3. include_once $DOCUMENT_ROOT."/PenjadwalanPsi/connectDB/sqlLib.php"; 4. $sqlLib = new sqlLib(); 5. $sql ="select a.idMK, a.KodeMK, a.MK, a.SKS, a.Semester, a.Keterangan,a.Sem, 6. b.idDosen, b.KodeDosen, b.Nama, b.idMK, b.BebanSKS, 7. c.idRuang, c.KodeRuang, c.Kapasitas, c.Makul, 8. d.idHari,d.hari, 9. e.idMulai, e.jammulai, 10. f.idSelesai,f.jamselesai 11. from tbmatakuliah a, tbdosen b,tbruang c, tbhari d, tbjammulai e, dbjamselesai f 12. where a.idMK=b.idMK and a.KodeMK = '$KodeMK' and (f.jamselesaie.jammulai=$SKS) 13. and c.Kapasitas >= $Kapasitas and c.Makul not like '%Bahasa Inggris%' 14. order by rand()"; 15. $rows = $sqlLib->select($sql); 16. return $rows;}

Kode Program 1 menunjukkan fungsi untuk mengenerate solusi jadwal mata kuliah secara random. Solusi jadwal yang diperoleh disesuaikan dengan mata kuliah pada jadwal yang akan dibuat, serta jumlah SKS dan kapasitas pada masing-masing mata kuliah. Solusi jadwal akan mengkombinasikan secara acak mata kuliah dengan dosen pengampu diikuti hari, jam mulai, dan jam selesai sebagai waktu mengajar dosen sekaligus pemakaian ruang. Baris 1 merupakan nama dari fungsi yaitu jadwal, serta parameter-parameter yang dibutuhkan untuk mengambil jadwal. Baris 5-14 adalah query yang dieksekusi saat fungsi jadwal dijalankan.

14

Kode Program 3 Script Pengecekan Solusi Algoritma Steepest Ascent Hill Climbing pada Sistem 1. foreach ($datajadwal as $row) { 2. $idMKCurent = $row["idMK"]; 3. $KodeMK = $row["KodeMK"]; 4. $MK = $row["MK"]; 5. $namaDosen = $row["Nama"]; 6. $sksCurrent = $row["SKS"]; 7. $idDosen = $row["idDosen"]; 8. $KodeDosen = $row["KodeDosen"]; 9. $idRuang = $row["idRuang"]; 10. $Ruang = $row["KodeRuang"]; 11. $idHari = $row["idHari"]; 12. $Hari = $row["hari"]; 13. $JamMulai = $row["jammulai"]; 14. $JamSelesai = $row["jamselesai"]; 15. $Sem = $row["Sem"]; 16. $Beban=$sksCurrent; 17. $getTotalBeban= selectBeban($KodeDosen); 18. foreach ($getTotalBeban as $row) { 19. $Bebanx=$row["totalbeban"]; 20. } 21. $getabjad = getAbjad($j+1); 22. foreach ($getabjad as $row) { 23. $abjad = $row["abjad"]; 24. } 25. $totalbeban=$Bebanx+$Beban; 26. if($j<$jumlahkelas) { 27. $iddosenmengajar= $namaDosen.$Hari.$JamMulai.$JamSelesai; 28. $idpakairuang = $Ruang.$Hari.$JamMulai.$JamSelesai; 29. $h=0; 30. if($totalbeban <=9) { 31. $h++; 32. if((strpos($idDosenMengajarSUCC, $iddosenmengajar) NULL)&&(strpos($idDosenMengajarSUCC, $iddosenmengajar) !== 0)) { 33. $h++; 34. if ((strpos($idPakaiRuangSUCC, $idpakairuang) NULL)&&(strpos($idPakaiRuangSUCC, $idpakairuang) !== 0)) { 35. $h++; 36. if($h==3) {

== ==

Kode Program 3 merupakan script untuk mengecek solusi jadwal mata kuliah apabila dosen pengampu adalah 1. PengeBaris 1 merupakan perintah untuk menampung hasil fungsi jadwal sebagai row. Baris 2-15 merupakan perintah untuk memperoleh data-data hasil fungsi jadwal berdasar nama kolom. Baris 1720 adalah perintah untuk mengambil data beban mengajar tiap dosen. Data beban berkaitan dengan beban maksimal mengajar tiap dosen sebanyak 9 SKS. Baris 2124 merupakan perintah untuk memperoleh data abjad yang digunakan dalam penamaan kode mata kuliah dan mata kuliah pada jadwal. Baris 28 merupakan perintah untuk mengecek apakah jumlah kelas sudah mencukupi atau belum. Baris 27 dan 28 adalah variabel yang menampung kombinasi jadwal mengajar dan pemakaian ruang kuliah agar dapat dilakukan pengecekan. Baris 31 adalah inisialisasi nilai heuristik yang dilambangkan dengan variabel h, nilai h pada tahap awal adalah 0 (nol). Baris 32 adalah perintah untuk melakukan pengecekan terhadap beban SKS dosen, apabila bernilai beban mengajar dosen mencukupi maka nilai h akan bertambah 1. Baris 34 merupakan perintah untuk membandingkan data mengajar yang diperoleh dengan data mengajar successor. Apabila tidak terjadi tabrakan, maka nilai h akan bertambah 1. Baris 36 adalah

15

perintah untuk membandingkan data pemakain ruang yang diperoleh dengan data pemakaian ruang successor. Apabila tidak terjadi tabrakan, maka nilai h akan bertambah 1. Apabila nilai h adalah 3 maka solusi penjadwalan yang diperoleh akan dianggap sebagai solusi penjadwalan yang optimal dan akan ditampilkan pada sistem. Kode Program 9 Script Penyimpanan Solusi 1. if($sksCurrent==3) { 2. $idDosenMengajarSUCC=$idDosenMengajarSUCC." ".$iddosenmengajar.” ".$iddosenmengajarexception1; $idPakaiRuangSUCC=$idPakaiRuangSUCC." ".$idpakairuang." ".$idpakairuangexception1; }

Kode Program 9 merupakan perintah untuk menyimpan solusi yang diperoleh ke dalam nilai dosen mengajar successor dan nilai pemakaian ruang kuliah successor. Nilai successor ini akan digunakan sebagai variabel pembanding solusi jadwal. Analisis dan Pengujian Aplikasi Evaluasi Prototype Setelah prototype pertama selesai, maka dilakukan evaluasi prototype. Pada evaluasi pertama diperoleh hasil sebagai berikut: - Dosen hanya boleh mengajar dengan beban maksimal 9 SKS. - Pada halaman pilih mata kuliah, tambahkan fungsi check all untuk mempermudah proses pemilihan data mata kuliah. - Penambahan data ruang kuliah, yaitu Stiba H2, Stiba H3, dan Stiba H4, yang hanya digunakan untuk mata kuliah Bahasa Inggris. - Pada halaman pembuat jadwal mata kuliah, ditambahkan halaman untuk melihat jadwal mengajar dosen dan penggunaan ruang kuliah berdasar jadwal. Pengujian dan Analisis Pengujian aplikasi dilakukan oleh developer, di mana developer akan memasukkan input kemudian akan dilihat output yang diperoleh. Pengujian aplikasi juga dilakukan oleh user untuk mencoba dan melakukan pengecekan pada setiap fungsi yang ada untuk mengetahui apakah ada bug dan apakah sudah sesuai dengan requirement sebelumnya.

16

Gambar 6 Halaman Awal Buat Jadwal Mata Kuliah

Pengujian pada halaman pembuat jadwal dilakukan dengan mencoba membuat jadwal mata kuliah baru. Gambar 6 menunjukkan halaman awal dalam proses membuat jadwal mata kuliah. Pembuat jadwal dalam membuat jadwal mata kuliah, dapat memilih semester serta melakukan input tahun ajaran jadwal yang akan dibuat. Pada Gambar 6 jadwal yang akan dibuat adalah jadwal pada Semester Genap Tahun Ajaran 2011-2012.

Gambar 7 Halaman Pilih Mata Kuliah

Setelah menentukan semester serta tahun ajaran jadwal yang akan dibuat, langkah berikutnya adalah menentukan mata kuliah yang akan terlibat dalam jadwal. Gambar 7 menunjukkan tampilan pada halaman pembuat jadwal saat memilih mata kuliah. Selain kode mata kuliah, nama mata kuliah dan jumlah sks, terdapat text box yang digunakan untuk input kapasitas kelas serta jumlah kelas masing-masing mata kuliah. Terdapat pula combo box untuk menentukan jumlah dosen pengampu mata kuliah dan check box untuk memilih mata kuliah. Sistem kemudian akan mengenerete solusi jadwal yang mungkin untuk setiap mata kuliah. Gambar 8 menunjukkan solusi jadwal mata kuliah Bahasa Inggris yang telah di-generate oleh sistem.

17

Gambar 8 Solusi Jadwal untuk Mata Kuliah Bahasa Inggris yang telah Di-generate

Sesuai dengan algoritma steepest ascent hill climbing yang diterapkan pada sistem, setelah solusi digenerate, langkah berikutnya adalah mengecek setiap solusi jadwal yang diperoleh untuk menentukan apakah merupakan solusi yang optimal atau tidak. Proses pengecekan solusi jadwal untuk mata kuliah Bahasa Inggris seperti yang terlihat pada Gambar 9.

Gambar 9 Proses Pengecekan Solusi Jadwal Mata Kuliah Bahasa Inggris

Solusi jadwal yang diperoleh untuk mata kuliah Bahasa Inggris adalah dosen FBS, jam mengajar Senin 14-16, ruang Stiba H3. Pertama-tama akan diperiksa beban mengajar dosen bersangkutan dan diperoleh hasil beban mengajar dosen FBS mencukupi, sehingga nilai H berubah dari 0 menjadi 1. Langkah berikutnya akan diperiksa apakah terjadi tabrakan pada jadwal mengajar Dosen FBS. Diperoleh hasil tidak terjadi tabrakan pada jam mengajar Dosen FBS sehingga nilai H berubah dari 1 menjadi 2. Terakhir akan diperiksa apakah terjadi tabrakan pada jadwal pemakaian ruang Stiba H3. Diperoleh hasil tidak terjadi

18

tabrakan pada jadwal pemakaian ruang sehingga nilai H berubah dari 2 menjadi 3 dan solusi penjadwalan merupakan solusi yang optimal. Langkah berikutnya dilakukan pengecekan pada solusi jadwal mata kuliah Bahasa Inggris yang lain yaitu pada solusi jadwal dosen FBS, dengan waktu mengajar Senin 14-16 pada ruang Stiba H4. Setelah dilakukan pengecekan ternyata terjadi tabrakan pada jam mengajar Dosen FBS, meskipun beban mengajar dosen masih mencukupi dan jadwal pemakaian ruang tidak bertabrakan. Nilai H yang diperoleh adalah 2 dan solusi yang diperoleh bukan merupakan solusi yang optimal. Solusi jadwal yang lain yaitu dosen FBS dengan waktu mengajar Jumat, 11-13 pada ruang Stiba H3, setelah dilakukan pengecekan selain beban mengajar dosen mencukupi, ternyata tidak terjadi tabrakan pada jam mengajar dosen dan tidak terjadi tabrakan pada jadwal pemakaian ruang sehingga nilai H adalah 3 dan merupakan solusi jadwal yang optimal. Proses akan berlangsung terus hingga diperoleh solusi jadwal sesuai dengan jumlah kelas pada setiap mata kuliah. Tabel 2 merupakan hasil jadwal mata kuliah Fakultas Psikologi UKSW dengan menggunakan aplikasi penjadwalan mata kuliah. Pada Tabel 2 terlihat bahwa pada jadwal yang diperoleh, algoritma steepest ascent hill climbing yang diterapkan dapat memperoleh solusi jadwal yang optimal di mana aturan-aturan dalam membuat jadwal mata kuliah Fakultas Psikologi UKSW telah terpenuhi. Pada Jadwal yang dihasilkan, tidak ditemukan tabrakan jam mengajar pada dosen, tidak ditemukan tabrakan pemakaian ruang perkuliahan, serta tidak ada dosen yang mengajar lebih dari 9 SKS. Selain itu Hasil penjadwalan mata kuliah dapat disimpan dalam format Microsoft Excel untuk pemrosesan lebih lanjut. Tabel 2 Jadwal Mata Kuliah Dengan Aplikasi Penjadwalan Mata Kuliah N O

Kode Mata Kuliah

MK

S K S

Kode Dosen

Nama

Kode Ruang

Kapa sitas

Hari

Jam Mulai

Jam Selesai

Angkatan

50

Senin

14

16

2011

50

Jumat

11

13

2011

50

Jumat

9

11

2011

70

Kamis

13

16

2011

10

13

2011

Angkatan 2011 1

PI 108 A

Bahasa Inggris II A

2

0

FBS

2

PI 108 B

Bahasa Inggris II B

2

0

FBS

3

PI 108 C

Bahasa Inggris II C

2

0

FBS

4

PI 109 A

Psikologi Umum II A

3

80513

Krismi Diah Ambarwati, S.Psi.

Stiba H3 Stiba H3 Stiba H3 E 134

5

PI 109 B

Psikologi Umum II B

3

80513

Krismi Diah Ambarwati, S.Psi.

E 134

70

Senin

6

PI 111 A

80004

Prof. Dr. Sutriyono, M.Sc.

Senin

7

10

2011

3

80004

Prof. Dr. Sutriyono, M.Sc.

75

Rabu

12

15

2011

8

PI 112 A

3

80002

75

Selasa

9

12

2011

9

PI 112 B

3

80504

E 134

75

Rabu

11

14

2011

10

PI 113 A

3

80514

Rabu

9

12

2011

PI 113 B

Psikologi Sosial I B

3

80514

ABX 104 E 134

75

11

75

Kamis

10

13

2011

12

PI 114 A

3

80522

E 134

75

Selasa

13

16

2011

13

PI 114 B

3

80522

E 134

75

Kamis

7

10

2011

14

PI 208 A

2

80520

E 134

80

Selasa

7

9

2011

15

PI 208 B

2

80520

Novita Utami, S.Psi., M.Si.

Jumat

11

13

2011

PI 209 A

2

80504

Ratriana Yuliastuti Endang Kusumiati, Psi., M.Si.

ABX 104 GX 204

80

16

Assesmen Psikologi A Assesmen Psikologi B Psikologi Industri dan Organisasi A Psikologi Industri dan Organisasi B Kesehatan Mental A

Dr. Christina Hari Soetjiningsih, M.S. Ratriana Yuliastuti Endang Kusumiati, Psi., M.Si. Jusuf Tjahjo Purnomo, Psi., M.Si. Jusuf Tjahjo Purnomo, Psi., M.Si. Margaretha Erna Setyaningrum, Psi. Margaretha Erna Setyaningrum, Psi. Novita Utami, S.Psi., M.Si.

ABX 104 ABX 104 E 134

75

PI 111 B

Statistika (Statistik I) A Statistika (Statistik I) B Psikologi Perkembangan II A Psikologi Perkembangan II B Psikologi Sosial I A

3

7

80

Kamis

7

9

2011

19

17

PI 209 B

Kesehatan Mental B

2

80516

18

PI 210 A

2

13809

19

PI 210 B

2

80508

20

PI 206 A

2

80503

21

PI 206 B

2

80503

22

PI 212 A

3

80004

23

PI 214 A

Psikologi Konseling A Psikologi Konseling B Psikologi Pendidikan A Psikologi Pendidikan B Metodologi Penelitian II A Psikologi Faal II A

2

0

24

PI 214 B

Psikologi Faal II B

2

25

PI 215 A

26

PI 215 B

27

PI 217 A

28

PI 217 B

29

PI 218 A

Tes Bakat dan Minat A Tes Bakat dan Minat B Psikologi Kepribadian II A Psikologi Kepribadian II B Psikologi Kognitif A

30

PI 218 B

31

PI 219 A

32

PI 219 B

33

PI 221 A

34

Rr. Indrastuti SS, Psi.

ABX 104

80

Selasa

10

12

2011

GX 204

40

Selasa

11

13

2010

ABX 104 GX 204

40

Senin

11

13

2010

80

Selasa

7

9

2010

GX 204

80

Jumat

10

12

2010

GXY 101 GX 204

50

Jumat

12

15

2010

Dr. Epsilon Dewanto, MM

80

Rabu

14

16

2010

0

Dr. Epsilon Dewanto, MM

GX 204

80

Kamis

14

16

2010

2

80519

Heru Astikasari S.M., S.Psi.

75

Jumat

7

9

2010

2

80504

75

Kamis

13

15

2010

3

80503

80

Kamis

10

13

2010

3

80522

Ratriana Yuliastuti Endang Kusumiati, Psi., M.Si. Berta Esti Ari Prasetyo, S.Psi., MA Rr. Indrastuti SS, Psi.

ABX 104 ABX 104 ABX 104 GX 204

80

Selasa

13

16

2010

2

80508

GX 204

75

Kamis

10

12

2010

Psikologi Kognitif B

2

80524

Sri Aryanti Kristianingsih, Psi, M.Si. Maria A. Tobing, S.Psi.

GX 204

75

Senin

11

13

2010

2

80510

75

Rabu

9

11

2010

2

80510

GX 204

75

Rabu

12

14

2010

2

80514

E 134

80

Rabu

7

9

2010

2

80502

GX 204

75

Selasa

9

11

2010

35

PI 301 B

Psikologi Klinis B

2

80513

Rudangta Arianti Sembiring, Psi., M.Si. Rudangta Arianti Sembiring, Psi., M.Si. Jusuf Tjahjo Purnomo, Psi., M.Si. Wahyuni Kristinawati, Psi., M.si. Krismi Diah Ambarwati, S.Psi.

E 134

PI 301 A

Psikologi Eksperimen A Psikologi Eksperimen B Psikologi Manajemen A Psikologi Klinis A

75

Selasa

12

14

2010

36

PI 311 A

Interviu A

3

80518

30

Selasa

7

10

37

PI 311 B

Interviu B

3

0

30

Kamis

10

13

38

PI 311 C

Interviu C

3

80518

Enjang Wahyuningrum, Psi.

30

Jumat

7

10

39

PI 312 A

Tes Roschach A

2

80522

70

Jumat

9

11

40

PI 313 A

3

80508

Kamis

7

10

PI 313 B

3

0

ABX 104 E 134

25

41

25

Senin

13

16

42

PI 411

Konseling dan psikoterapi A Konseling dan psikoterapi B Skripsi

Margaretha Erna Setyaningrum, Psi. Sri Aryanti Kristianingsih, Psi, M.Si. Maria Herlina I, M.Si., Psi,

ABX 104 GXY 102 GXY 101 E 134

6

-

-

-

0

-

0

0

2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya

43

PI 414

Skripsi Lanjut

4

-

-

-

0

-

0

0

2009 dan sebelumnya

44

PI 503 A

2

0

Jusuf W.H., SH

Rabu

7

9

PI 507 A

2

0

50

Senin

14

16

46

PI 511 A

2

80001

Mianto N. Agung, S.Pd., S.Si., M.Th Dr. Sutarto Wijono, MA

50

Senin

13

15

47

PI 515 A

Kapita Selekta PIO A

2

80520

Novita Utami, S.Psi., M.Si.

50

Jumat

7

9

48

PI 518 A

2

80516

Rr. Indrastuti SS, Psi.

50

Jumat

9

11

49

PI 520 A

2

13809

Kamis

14

16

PI 523 A

2

80002

50

Senin

9

11

51

PI 528 A

2

0

50

Senin

7

9

52

PI 534 A

Psikologi Public Relation A Psi. Pendidikan Anak berbakat A

Drs.Aloysius Lukas Soenarjo Soesilo,MA. Dr. Christina Hari Soetjiningsih, M.S. Rini Darmastuti, S.Sos., M.Si.

25

50

Psi. Pendidikan Khusus A Psikologi Kesehatan A Psikogerontologi A

GXY 102 ABX 104 GXY 101 GXY 102 GXY 102 GXY 102 GXY 101 E 134

50

45

Hukum Perburuhan A Psikologi Lintas Budaya A Ergonomik A

2

80518

Enjang Wahyuningrum, Psi.

E 134

50

Jumat

14

16

2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya 2009 dan sebelumnya

Angkatan 2010 Drs.Aloysius Lukas Soenarjo Soesilo,MA. Sri Aryanti Kristianingsih, Psi, M.Si. Berta Esti Ari Prasetyo, S.Psi., MA Berta Esti Ari Prasetyo, S.Psi., MA Prof. Dr. Sutriyono, M.Sc.

ABX 104 Angkatan 2009 dan Sebelumnya Enjang Wahyuningrum, Psi. Wiwiet Prasetyanti, Psi.

Mata Kuliah Pilihan

20

5.

Simpulan

Berdasarkan hasil pembuatan, pembahasan, dan pengujian aplikasi penjadwalan mata kuliah dapat disimpulkan bahwa penerapan algoritma steepest ascent hill climbing dalam sistem dapat menghasilkan output berupa jadwal mata kuliah yang optimal yaitu pada jadwal yang dihasilkan, tidak ditemukan tabrakan jam mengajar pada dosen, tidak ditemukan tabrakan pemakaian ruang perkuliahan, serta tidak ada dosen yang mengajar lebih dari beban maksimal mengajar. Aplikasi yang dibangun dapat membantu Fakultas Psikologi UKSW dalam menyusun jadwal mata kuliah sesuai dengan ketentuan yang berlaku. Algoritma steepest ascent hill climbing memiliki keunggulan di mana semua solusi jadwal yang mungkin akan dibangkitkan kemudian akan diperiksa satu persatu, sehingga proses cepat karena akan diperoleh solusi terbaik dan mendekati hasil optimasi yang diharapkan. Saran dan pengembangan aplikasi ini adalah pada proses pengecekan solusi jadwal ditambahkan fungsi agar tidak dilakukan proses pengecekan kembali pada solusi jadwal yang sama dan untuk menambahkan constraint pada proses pengecekan solusi, di luar contsraint yang sudah ada. Pada sistem dapat pula ditambahkan fungsi untuk laporan beban akademik dosen setiap semester. 6. Daftar Pustaka [1]

Nugraha, Ivan, 2008, Aplikasi Algoritma Genetik untuk Optimasi Penjadwalan Kegiatan Belajar Mengajar. Makalah IF2251 Strategi Algoritmik Tahun 2008., http://sutanto.staff.uns.ac.id/files/2008/09/makalahif2251-2008-023.pdf (diakses tanggal 10 Februari 2012)

[2]

Puspitasari, Bunga, 2008, Penggunaan Tabu Search Dalam Penjadwalan Kuliah dan Ujian Perguruan Tinggi (Studi Kasus : Sekolah Tinggi Manajemen Bandung), Yogyakarta : Fakultas Teknik Industri UII.

[3]

Thiang, Handry Khoswanto, Felix Pasila, Ferdi Ninaber, dkk., 2009, Implementasi Metode Steepest Ascent Hill Climbing pada Mikrokontroler MCS51 untuk Robot Mobil Pencari Rute Terpendek, Surabaya : Jurusan Teknik Elektro Universitas Kristen Petra.

[4]

Christiana, D. I., G. Virginia, and J. Purwadi, 2008, Algoritma SteepestAscent Hill Climbing untuk Menyelesaikan Masalah Penugasan, Jurnal Teknologi Komputer dan Informatika. Yogyakarta, Indonesia, April 2008, vol.4 no.1, ISSN 1693-7279, pp. 47-53.

[5]

Rich, Elaine, 1991, Artificial Intelligence. New York: McGraw-Hill.

[6]

Pressman, Roger S., 2001, Software Engineering a Practitioner’s Approach, New York : McGraw-Hill Higher Education.

21