PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PENJADWALAN MATA KULIAH MENGGUNAKAN ALGORITMA PARTICLE SWARM OPTIMIZATION (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar,
Universitas Sanata Dharma, Yogyakarta)
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
oleh Antonius Rianditya Putra
10 5314 044
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
COURSE SCHEDULING USING PARTICLE SWARM OPTMIZATION ALGORITHM (Case Study at Primary School Teacher Education Study Program,
Sanata Dharma University, Yogyakarta)
Thesis Presented as Partial Fullfillment of the Requirements To Obtain Sarjana Komputer Degree In Department of Informatics Engineering
By : Antonius Rianditya Putra
10 5314 044
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
.
HALAMAN PERSEMBAHAN
“Ketika dirimu tidak merasa lelah, berarti kamu sedang tidak
memperjuangkan sesuatu”
“To accomplish great things, we must not only act, but also dream, not only plan, but also believe” -Anatole France-
Knowledge is Power
Skripsi ini ku persembahkan untuk : Yesus Kristus Papa, Mama, kakak dan adikku Sahabat dan Teman-teman
Terima Kasih Semua ....
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan daftar pustaka , sebagaimana layaknya karya ilmiah.
Yogyakarta , 27 Januari 2015 Penulis
Antonius Rianditya Putra
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini , saya mahasiswa Universitas Sanata Dharma: Nama
: Antonius Rianditya Putra
Nomor mahasiswa
: 105314044
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul : “PENJADWALAN MATA KULIAH MENGGUNAKAN ALGORITMA PARTICLE SWARM OPTIMIZATION (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma, Yogyakarta)” beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya. Yogyakarta,
29 Januari 2015
Yang menyatakan
Antonius Rianditya Putra
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRAK Banyak faktor yang berpengaruh dalam pembuatan jadwal mata kuliah seperti dosen, mahasiswa, mata kuliah, permintaan ruang dan waktu serta jumlah ruang dan waktu yang tersedia. Namun dalam pembuatan jadwal mata kuliah, masih dilakukan secara manual. Hal ini mengakibatkan proses pembuatan jadwal membutuhkan ketelitian dan membutuhkan waktu yang sangat lama dalam pembuatan jadwal setiap semesternya. Dalam penelitian ini, dikembangkan sebuah Sistem Penjadwalan Mata Kuliah yang berfungsi membantu pihak Sekretariat PGSD dalam pembuatan jadwal menggunakan algoritma Particle Swarm Optimization (PSO). Metode PSO merupakan metode dengan membangkitkan populasi partikel di awal iterasi dan pada setiap iterasi, partikel-partikel tersebut memperbaiki posisinya menuju posisi terbaik, yaitu posisi mata kuliah yang memenuhi semua batasan hard constraint. Hasil akhir yang diperoleh adalah sebuah Sistem Penjadwalan Mata Kuliah Menggunakan Algoritma Particle Swarm Optimization (PSO) pada Program Studi Pendidikan Guru Sekolah Dasar di Universitas Sanata Dharma Yogyakarta yang menghasilkan jadwal dengan memenuhi hard constraint dan meminimalkan waktu pembuatan jadwal mata kuliah.
Kata kunci : Particle Swarm Optimization, matakuliah, jadwal, partikel.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT There are several influential factors in the forming of scheduling, such as lecturers, students, subjects, room and time request and the availability of those rooms and time. However, in the forming of lecturing time-table, everything is done manually. As a result, the scheduling process requires extra precision and consumes extra time for each semester. This study is developing a System of Course Scheduling which is expected to help the secretariat of Elementary School Study Program (PGSD) in creating the course schedule using Particle Swarm Optimization algorithm. PSO method is a method which evokes the population of particles in the beginning of iteration, the particles repair its position to the best position, which is position of the courses are meets all hard constraint limitation. The final result is a Course Scheduling System Using The Particle Swarm Optimization (PSO) has been made for the Study Program of Primary School Teacher Education in Sanata Dharma University in Yogyakarta, which generates schedules that fulfill the hard constraint and minimize the time of making.
Keyword : Particle Swarm Optimization, Courses, Schedule, Particle.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR
Puji dan syukur senantiasa penulis haturkan kepada Tuhan Yesus Kristus karena hanya dengan anugerah, berkat, kasih, dan pertolongan-Nya penulis dapat menyelesaikan penelitian dan penyusunan skripsi yang berjudul “Penjadwalan matakuliah menggunakan algoritma Particle Swarm Optimization (Studi Kasus Program Studi Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma Yogyakarta)”. Skripsi ini disusun guna memenuhi salah satu syarat untuk memperoleh gelar Sarjana Strata Satu Program Studi Teknik Informatika (S.Kom). Terselesaikannya penulisan laporan akhir ini tidak lepas dari bantuan berbagai pihak yang telah membantu penulis. Oleh karena itu, penulis mengucapkan terima kasih kepada : 1.
Tuhan Yesus Kristus dan Bunda Maria yang selalu memberikan anugerah, rahmat, dan kekuatan sehingga penulis dapat menyelesaikan penelitian dan penyusunan skripsi ini hingga selesai.
2.
Kedua orang tua saya, Agustinus Supriyadi, S.Pd., dan Marcella Ety Widajanti, S.Pd., kakak ku Laurensius Widi Andhika Putra, S.Farm., Apt., dan adik ku Irene Melani Putri yang selalu memberikan curahan kasih sayang tak terhingga, doa, dukungan baik moral maupun moril kepada penulis.
3.
Ibu P.H. Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
4.
Ibu Ridowati Gunawan, S.Kom., M.T., selaku Ketua Jurusan Teknik Informatika, Universitas Sanata Dharma.
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5.
Bapak Alb. Agung Hadhiatma, S.T., M.T. selaku dosen pembimbing saya yang selalu memberikan bimbingan, dukungan, waktu dan saran.
6.
Seluruh Dosen Universitas Sanata Dharma, Dosen yang mengajar jurusan Teknik Informatika khususnya yang telah mengajarkan banyak ilmu kepada penulis.
7.
Team Penjadwalan, H.Roy Wiranata, Aweng dan Damai yang telah berjuang bersama-sama dan membantu penulisan skripsi ini.
8. Mafia Tangerang, Erick, Bella, Andy, Diky, dan Shela yang selalu memberikan semangat dengan kata-kata “Kapan maju Sidang? Tenang masih sampai 14 semester, gak usah buru-buru”. 9.
Semua teman-teman TI angkatan 2010, khususnya Tomi, Kristopel, Krisma, Radikstya, serta teman-teman Heavenly Shin dan teman-teman Josefic yang selalu memberikan dukungan dalam penulisan skripsi ini.
10. Serta semua pihak yang telah banyak membantu penyusunan skripsi ini yang tidak dapat disebutkan satu per satu. Penulis menyadari bahwa penulisan skripsi ini masih banyak kekurangan dan kelemahan karena keterbatasan pikiran, tenaga, dan waktu penulis. Untuk itu penulis mengharapkan saran dan kritik yang membangun dari semua pihak. Akhir kata semoga skripsi ini dapat berguna dan bermanfaat bagi pembaca semua.
Yogyakarta,
Penulis
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI
HALAMAN JUDUL................................................................................................ i HALAMAN PERSETUJUAN ............................................................................... iii HALAMAN PENGESAHAN .............................................................................. iv HALAMAN PERSEMBAHAN ............................................................................. v PERNYATAAN KEASLIAN KARYA ................................................................ vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................................................ vii ABSTRAK ........................................................................................................... viii ABSTRACT ........................................................................................................... ix KATA PENGANTAR ............................................................................................ x DAFTAR ISI ......................................................................................................... xii DAFTAR GAMBAR ............................................................................................ xv DAFTAR TABEL ............................................................................................... xvii BAB I PENDAHULUAN ....................................................................................... 1 1.1.
Latar Belakang ......................................................................................... 1
1.2.
Rumusan Masalah .................................................................................... 3
1.3.
Batasan Masalah ....................................................................................... 3
1.4.
Tujuan Penelitian ...................................................................................... 4
1.5.
Metodologi Penelitian .............................................................................. 4
1.6.
Sistematika Penulisan ............................................................................... 5
BAB II LANDASAN TEORI ................................................................................. 7 2.1.
Penjadwalan .............................................................................................. 7
2.2.
Particle Swarm Optimization ................................................................... 9
2.2.1.
Penjelasan algoritma Particle Swarm Optimization .......................... 9
2.2.2.
Proses Algoritma Particle Swarm Optmization .............................. 12
2.2.3.
Cara Kerja Algoritma Particle Swarm Optimization ...................... 14
BAB III ANALISA DAN PERANCANGAN SISTEM ....................................... 18 3.1.
Analisis Sistem ....................................................................................... 18
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.1.1.
Analisis Masalah ............................................................................. 18
3.1.2.
Aturan Penjadwalan ........................................................................ 19
3.2.
Pemodelan Algoritma Particle Swarm Optimization untuk penjadwalan 20
3.2.1. Memploting matakuliah secara random (Pembangkitan posisi dan kecepatan awal) ............................................................................................. 22 3.2.2.
Menentukan nilai fitness masing-masing partikel ........................... 38
3.2.3.
Proses Update Velocity dan Posisi .................................................. 44
3.2.4.
Stopping Condition ......................................................................... 49
3.3.
Analisa Kebutuhan Sistem ..................................................................... 50
3.3.1.
Spesifikasi Perangkat Keras ............................................................ 50
3.3.2.
Spesifikasi Perangkat Lunak ........................................................... 50
3.4.
Sumber Data ........................................................................................... 50
3.5.
Perancangan Sistem ................................................................................ 61
3.5.1 Diagram Use Case ................................................................................ 62 3.5.2
Narasi Use Case .............................................................................. 64
3.5.3 Diagram Activity untuk setiap use case ................................................ 73 3.5.4 Model Kelas Analisis ........................................................................... 86 3.5.5 Diagram Kelas ...................................................................................... 87 3.6 Perancangan Basis Data .............................................................................. 94 3.6.1 ER Diagram .......................................................................................... 94 3.6.2 Hubungan Relasi Antar Tabel .............................................................. 95 3.6.3 Model Fisikal (Struktur Tabel dalam DBMS) ..................................... 96 3.6.4 Desain Model Interaksi Antar Kelas .................................................. 100 3.7 Desain Antar Muka ................................................................................... 110 1.
Tampilan Halaman Utama ................................................................ 110
2.
Tampilan Mata Kuliah ...................................................................... 111
3.
Tampilan Dosen ................................................................................ 112
4.
Tampilan Ruang ................................................................................ 112
5.
Tampilan Lihat Jadwal...................................................................... 113
6.
Tampilan Kelas Matakuliah .............................................................. 115
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7.
Tampilan Permintaan Kelas .............................................................. 116
8.
Tampilan Buat Jadwal ...................................................................... 117
BAB IV IMPLEMENTASI DAN ANALISIS SISTEM .................................... 118 4.1 Implementasi Sistem ................................................................................. 118 4.1.1
Home ............................................................................................. 118
4.1.2
Data Mata Kuliah ......................................................................... 119
4.1.3
Data Dosen .................................................................................... 124
4.1.4
Data Ruang .................................................................................... 130
4.1.5
Data Kelas Matakuliah .................................................................. 134
4.1.6
Pilih Permintaan ............................................................................ 140
4.1.7
Buat Jadwal ................................................................................... 148
4.18
Jadwal............................................................................................ 165
4.2 Analisis Sistem .......................................................................................... 169 4.2.1 Uji Coba ........................................................................................... 169 BAB V KESIMPULAN DAN SARAN .............................................................. 192 5.1 Kesimpulan ............................................................................................... 192 5.2 Saran .......................................................................................................... 193 DAFTAR PUSTAKA ......................................................................................... 194 LAMPIRAN ........................................................................................................ 196
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 3. 1 Algoritma PSO dalam pembuatan jadwal ....................................... 21 Gambar 3. 2 Konfigurasi Sistem ........................................................................... 61 Gambar 3. 3 Use Case Diagram ............................................................................ 62 Gambar 3. 4 Model Kelas Analisis ....................................................................... 86 Gambar 3. 5 ER Diagram ...................................................................................... 94 Gambar 3. 6 Hubungan relasi antar table .............................................................. 95 Gambar 3. 7 Tampilan Menu Utama................................................................... 110 Gambar 3. 8 Menu Matakuliah ........................................................................... 111 Gambar 3. 9 isi Tabel Matakuliah ....................................................................... 111 Gambar 3. 10 Menu Tampilan Dosen ................................................................. 112 Gambar 3. 11 Menu Tampilan Ruang ................................................................. 112 Gambar 3. 12 Tampilan Lihat Jadwal Mahasiswa .............................................. 113 Gambar 3. 13 Tampilan Lihat Jadwal Dosen ...................................................... 114 Gambar 3. 14 Tampilan Kelas Matakuliah ......................................................... 115 Gambar 3. 15 Tampilan Permintaan Kelas ......................................................... 116 Gambar 3. 16 Tampilan Buat Jadwal .................................................................. 117 Gambar 4. 1 Home .............................................................................................. 118 Gambar 4. 2 Data Matakuliah ............................................................................. 119 Gambar 4. 3 Tabel Data Matakuliah ................................................................... 120 Gambar 4. 4 Pesan cek data belum terisi ............................................................ 124 Gambar 4. 5 Data Dosen ..................................................................................... 125 Gambar 4. 6 Data Ruang ..................................................................................... 130 Gambar 4. 7 Pesan cek data belum terisi ............................................................ 133 Gambar 4. 8 Data Kelas Matakuliah ................................................................... 135 Gambar 4. 9 Data Dosen ..................................................................................... 136 Gambar 4. 10 Data Permintaan ........................................................................... 142 Gambar 4. 11 Tabel Matakuliah direncanakan ................................................... 142 Gambar 4. 12 Pesan cek belum terpilih jumlah kelas ......................................... 144 Gambar 4. 13 Buat Jadwal .................................................................................. 148 Gambar 4. 14 Jadwal Pilihan Dosen ................................................................... 166 Gambar 4. 15 Jadwal Pilihan Mahasiswa ........................................................... 167 Gambar 4. 16 Tabel Pelanggaran ........................................................................ 167 Gambar 4. 17 Buat Jadwal .................................................................................. 169 Gambar 4. 18 Grafik Fitness parameter 1 ........................................................... 172 Gambar 4. 19 Grafik Fitness parameter 2 ........................................................... 173 Gambar 4. 20 Grafik fitness parameter 3 ............................................................ 175 Gambar 4. 21 Grafik fitness parameter 4 ............................................................ 176 Gambar 4. 22 Grafik fitness parameter 5 ............................................................ 178 Gambar 4. 23 Grafik Fitness perbandingan ........................................................ 178 Gambar 4. 24 Grafik fitness 10 partikel .............................................................. 180 xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4. 25 Grafik fitness 8 partikel ................................................................ 181 Gambar 4. 26 Grafik fitness 5 partikel ................................................................ 183 Gambar 4. 27 Grafik fitness perbandingan antar partikel ................................... 183 Gambar 4. 28 Grafik fitness dengan 13 ruang .................................................... 185 Gambar 4. 29 Grafik fitness dengan 8 ruang ...................................................... 186 Gambar 4. 30 Grafik fitness perbandingan 13 dan 8 ruang ................................ 187
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 3. 1 Tabel Data hari ..................................................................................... 23 Tabel 3. 2 Tabel data waktu .................................................................................. 23 Tabel 3. 3 Tabel data struktur time slot................................................................. 24 Tabel 3. 4 Tabel data Struktur Matriks time slot dengan Ruang .......................... 25 Tabel 3. 5 Tabel Dosen ......................................................................................... 26 Tabel 3. 6 Tabel Kelas Matakuliah ....................................................................... 26 Tabel 3. 7 Tabel Slot Matakuliah .......................................................................... 27 Tabel 3. 8 Nilai Posisi awal................................................................................... 28 Tabel 3. 9 Tabel pembangkitan posisi dan velocity jadwal matakuliah ............... 29 Tabel 3. 10 Posisi baru jadwal matakuliah ........................................................... 49 Tabel 3. 11 Tabel Data NIP dan Nama Dosen ...................................................... 51 Tabel 3. 12 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 1 53 Tabel 3. 13 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 2 54 Tabel 3. 14 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 3 55 Tabel 3. 15 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 4 56 Tabel 3. 16 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 5 57 Tabel 3. 17 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 6 58 Tabel 3. 18 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 7 58 Tabel 3. 19 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 8 59 Tabel 3. 20 Tabel Ruang Kelas ............................................................................. 60 Tabel 4. 1 Parameter 1 w=0.4 ............................................................................. 171 Tabel 4. 2 Hasil Uji coba parameter 1................................................................. 171 Tabel 4. 3 Tabel parameter 2, w=0.5 .................................................................. 172 Tabel 4. 4 Hasil Ujicoba parameter 2.................................................................. 173 Tabel 4. 5 Tabel parameter 3, w=0.6 .................................................................. 174 Tabel 4. 6 Hasil Ujicoba parameter 3.................................................................. 174 Tabel 4. 7 Tabel parameter 4, w=1 ..................................................................... 175 Tabel 4. 8 Hasil Ujicoba parameter 4.................................................................. 176 Tabel 4. 9 Tabel parameter 5, w = 1.4 ................................................................ 177 Tabel 4. 10 Hasil Ujicoba parameter 5................................................................ 177 Tabel 4. 11 Tabel parameter 1 , 10 partikel ........................................................ 179 Tabel 4. 12 Hasil Ujicoba parameter 1................................................................ 179 Tabel 4. 13 Tabel parameter 2 , 8 partikel .......................................................... 180 Tabel 4. 14 Hasil Ujicoba parameter 2................................................................ 181 Tabel 4. 15 Tabel parameter 3, 5 partikel ........................................................... 182 Tabel 4. 16 Hasil Ujicoba parameter 3................................................................ 182 Tabel 4. 17 Tabel parameter 1, 13 ruang ............................................................ 184 Tabel 4. 18 Hasil Ujicoba parameter 1, 13 ruang ............................................... 184 Tabel 4. 19 Tabel parameter 2, 8 ruang .............................................................. 185
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4. 20 Hasil Ujicoba parameter 2, 8 ruang ................................................. 186
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN
1.1.
Latar Belakang Penjadwalan adalah suatu proses membuat suatu urutan aktivitas yang berfungsi untuk menyelesaikan sekumpulan pekerjaan dengan waktu yang optimal (Morton,1993). Jadwal mata kuliah menjadi salah satu bagian terpenting dalam proses belajar mengajar suatu lembaga pendidikan, termasuk di dalam Program Studi Pendidikan Guru Sekolah Dasar di Universitas Sanata Dharma Yogyakarta. Pada pelaksaanaannya, seringkali jadwal yang telah dikeluarkan belum fix sehingga membutuhkan adanya penjadwalan ulang. Hal ini mengakibatkan perkuliahan di awal semester berjalan tidak efektif karena harus melakukan penyesuaian jadwal dengan keadaan real setelah jadwal dikeluarkan. Selain itu, kesulitan dalam hal pencarian slot yang masih kosong juga menjadi suatu kendala terutama pada saat mencari jadwal kuliah pengganti atau kuliah tambahan. Ada beberapa faktor yang berpengaruh dalam pembuatan jadwal mata kuliah seperti dosen, mahasiswa, mata kuliah serta jumlah ruang dan waktu yang tersedia. Banyaknya jumlah mata kuliah dan dosen yang terlibat mengakibatkan munculnya persoalan seperti terbatasnya ruang yang digunakan untuk menyelenggarakan perkuliahan tidak terjadi secara bersamaan, terbatasnya jam mengajar dosen yang hanya bisa mempunyai kuota tidak lebih dari 20 sks dan terjadinya dosen yang mengajar secara bersamaan. Selain dilihat
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
dari sisi mahasiswa, juga harus dilihat dari sisi dosen, yaitu kemungkinankemungkinan dosen akan mengampu lebih dari satu matakuliah yang ada, sebab ada kemungkinan jumlah mata kuliah dan jumlah dosen tidak sebanding, sehingga harus dipikirkan juga solusi agar dosen tidak mengampu dua mata kuliah berbeda pada hari dan jam yang sama. Faktor lain yang menjadi kesulitan adalah dibutuhkan waktu yang lama untuk membuat satu jadwal dalam satu semester, karena banyaknya data dosen, mata kuliah, ruang, yang diperlukan ketelitian karena masih dibuat secara manual. Permasalahan
penjadwalan
kuliah
terkait
erat
dengan
masalah
optimasi.Oleh karena itu, pengembangan sistem penjadwalan kuliah dilakukan dengan melalui beberapa iterasi perbaikan.Untuk mengatasi penjadwalan kuliah di Program Studi Guru Sekolah Dasar, dapat dilakukan penelitian dengan membuat desain sebuah model penjadwalan menggunakan algoritma Particle Swarm Optimization (PSO). Contoh kasus yang digunakan untuk penelitian adalah Model Penjadwalan Matakuliah Secara Otomatis Berbasis Algoritma Particle Swarm Optimization (PSO) yang dilakukan di Universitas Islam Indonesia yang menyimpulkan bahwa algoritma PSO dapat digunakan untuk membantu pembuatan table jadwal yang sesuai dengan semua kriteria mata kuliah yang bersifat wajib ,memenuhi permintaan dosen dalam memilih waktu mengajar dan dapat membantu tugas penjadwalan yang cukup rumit. Algoritma PSO merupakan sebuah teknik optimasi stokastik berdasarkan populasi yang teriinspirasikan oleh perilaku sekumpulan burung atau sekelompok ikan (Haupt,R.I.,2004). Fungsi dan tujuan dari penelitian ini adalah untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
memperoleh penjadwalan mata kuliah dengan menggunakan Particle Swarm Optimiztion (PSO) sehingga dapat diperoleh kombinasi terbaik untuk pasangan mata kuliah dan dosen secara keseluruhan dan mengoptimalkan jumlah hari mengajar dosen serta menganalisa parameter-parameter terbaik pada algoritma Particle Swarm Optimiztion (PSO) untuk melakukan penjadwalan mata kuliah.
1.2.
Rumusan Masalah 1. Bagaimana penerapan algoritma Particle Swarm Optimiztion dalam menjadwalkan mata kuliah di Program Studi Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma? 2. Bagaimana menyelesaikan masalah penjadwalan mata kuliah di prodi PGSD Universitas Sanata Dharma dengan mencari jadwal yang tidak terdapat bentrokan ruang, dosen dan kelompok kelas ?
1.3.
Batasan Masalah 1. Penelitian Ini hanya di lakukan di Prodi PGSD Sanata Dharma 2. Penjadwalan ini hanya untuk mata kuliah satu semester, tanpa memperhitungkan adanya mahasiswa yang mengambil ulang mata kuliah tertentu. 3. Hanya melakukan pemetaan penjadwalan mata kuliah tanpa memperhatikan status dosen. 4. Ruangan yang diprioritaskan dipakai adalah ruangan yang hanya milik PGSD Sanata Dharma yang berjumlah 13 kelas.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
5. Hanya menangani matakuliah teori yang berjumlah 34 dengan jumlah sks sebanyak 79.
1.4.
Tujuan Penelitian 1. Mempelajari dan mendesain algoritma Particle Swarm Optimiztion sehingga dapat di gunakan untuk sistem penjadwalan kuliah. 2. Membuat sistem penjadwalan kuliah di Prodi PGSD Sanata Dharma
1.5.
Metodologi Penelitian Metode yang digunakan dalam menyusun jadwal mata kuliah PGSD adalah metode System Development Life Cycle (Paradigma Waterfall).Metode ini terdiri dari berbagai tahap :
1. Analisis Kebutuhan Pada tahap ini, akan dilakukan Identifikasi tentang kebutuhan system serta
pengumpulan
data–data
yang
diperlukan
dalam
proses
penjadwalan. 2. PerancanganSistem Pada tahap ini, akan dilakukan penerjemahan rancangan system kedalam perangkat lunak. Proses perancangan meliputi Perancangan Sistem, desain Basis Data, user interface dan rancangan implementasi program.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
3. PenulisanProgam Pada tahap ini, akan dilakukan penerjemahan dari perancangan system ke dalam bahasa pemrograman. 4. Pengujian Pada tahap ini akan dilakukan pengujian program. Pengujian bertujuan untuk menemukan kesalahan – kesalahan hingga program dapat sesuai dengan yang diharapkan.
1.6.
Sistematika Penulisan
BAB I
: PENDAHULUAN
Bab ini berisi penjelasan tentang latar belakang masalah, rumusan masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II
: LANDASAN TEORI
Bab ini berisi tentang teori metode Particle Swarm Optimization yang menjadi dasar dalam pembuatan system penjadwalan perkuliahan di PGSD.
BAB III
: ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan perancangan sistem yang akan di bangun, serta meliputi analisis data penjadwalan, aturan dalam
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
proses penjadwalan, dan penjelasan algoritma metode Particle Swarm
Optimization
dalam
menyelesaikan
permasalahan
penjadwalan perkuliahan.
BAB IV
: IMPLEMENTASI DAN ANALISA HASIL
Bab ini berisi tentang implementasi dari perancangan pada Bab III. Implementasi tersebut meliputi tampilan progam (input dan output) dan analisa dari progam yang dibuat.
BAB V
: KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran dari sistem yang akan di buat berdasarkan pada bab-bab sebelumnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II LANDASAN TEORI 2.1. Penjadwalan Menurut Kenneth R. Baker (2009) Penjadwalan (Scheduling) merupakan proses pengalokasian sekumpulan tugas yang dimasukan ke dalam rentetan waktu tertentu. Penjadwalan merupakan sebuah fungsi pengambilan keputusan dari sekumpulan tugas untuk menentukan jadwal yang paling tepat. [6] Menurut Thomas Morton (1993) Penjadwalan adalah pengambilan suatu keputusan dalam penyesuaian aktivitas dan sumber daya untuk menyelesaikan sekumpulan pekerjaan agar mempunyai kualitas yang diinginkan.[7] Keputusan yang dibuat didalam Penjadwalan adalah pengurutan pengerjaan, waktu mulai dan waktu selesai, serta urutan operasi suatu pekerjaan. Permasalahan penjadwalan merupakan permasalahan kombinatorial yang rumit karena memiliki daerah alternative solusi yang luas dan banyak dijumpai lokal optimal (Yu, 2006) [8].Penjadwalan mata kuliah menjadi salah satu bagian terpenting dan selalu menjadi masalah yang selalu dihadapi oleh setiap universitas. Penjadwalan mata kuliah adalah proses penyusunan daftar perkuliahaan atau daftar kegiatan belajar yang dimasukkan pada slot waktu tertentu yang tersedia selama satu minggu beserta pembagian ruang kelasnya.
7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8
Dalam penjadwalan mata kuliah, terdapat dua kategori batasan yaitu batasan yang bersifat wajib atau disebut batasan mutlak (hard constraint) dan batasan yang bersifat preferensi atau disebut batasan lunak (soft constraint) (Oner,A., 2011). Batasan yang bersifat multak yang harus dipenuhi yaitu : 1. Dosen yang sama tidak dapat mengajarkan matakuliah yang berbeda dalam waktu yang bersamaan. 2. Setiap satu mata kuliah diselenggarakan di suatu ruang kuliah pada slot waktu yang tertentu. 3. Jam pelajaran per mata kuliah harus sesuai dengan beban SKSnya. 4. Kapasistas ruang kuliah harus mampu menampung sejumlah mahasiswa yang akan mengambil suatu mata kuliah tertentu. 5. Matakuliah yang lebih dari 3 sks diadakan sebanyak 2 kali dan diusahakan tidak diadakan dalam satu hari sekaligus. sedangkan batasan lunak, yaitu: 1. Mata kuliah yang diadakan secara paralel dengan dosen yang sama, sebaiknya tidak dijadwalkan dalam waktu yang bersamaan dan/atau berurutan. 2. Matakuliah yang dimungkinkan diambil oleh beberapa angkatan yang berbeda, tidak boleh dilaksanakan dalam waktu yang bersamaan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
3. Beberapa matakuliah dengan kelas yang hanya satu (tidak paralel) yang diambil oleh angkatan yang sama, sebaiknya tidak dilaksanakan dalam waktu yang bersamaan. [9]
Untuk mengatasi masalah penjadwalan, terdapat beberapa algoritma yang dapat memberikan solusinya, contohnya algoritma Particle Swarm Optimization. 2.2. Particle Swarm Optimization 2.2.1. Penjelasan algoritma Particle Swarm Optimization Algoritma particle swarm optimization pertama kali dikenalkan oleh Dr. Eberhart dan Dr. Kennedy ditahun 1995 dalam sebuah konferensi jaringan syaraf di Perth, Australia . Algoritma particle swarm optimization merupakan teknik optimasi berbasis stochastic yang diinspirasi oleh tingkah laku sosial sekawanan burung atau sekumpulan ikan (swarm) dalam bertahan hidup. Tiap-tiap makhluk hidup (selanjutnya disebut particle) akan disebar di ruang solusi secara acak yang uniform. Kemudian setiap particle akan berusaha berpindah posisi untuk mencari posisi lain yang dapat menghasilkan fungsi tujuan yang lebih baik. Setiap pergerakan particle akan dipandu oleh dua hal, posisi terbaik yang pernah ditempati particle tsb dan posisi terbaik yang pernah ditemui oleh seluruh particle. Sehingga, particle-particle tersebut akan bekerja sama dalam mencari solusi optimal.[10]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
Kata partikel menunjukkan, misalnya, seekor burung dalam kawanan burung. Setiap individu atau partikel berperilaku secara terdistribusi dengan cara menggunakan kecerdasannya (intelligence) sendiri dan juga dipengaruhi perilaku kelompok kolektifnya. Dengan demikian, jika satu partikel atau seekor burung menemukan jalan yang tepat atau pendek menuju ke sumber makanan, sisa kelompok yang lain juga akan dapat segera mengikuti jalan tersebut meskipun lokasi mereka jauh di kelompok tersebut.
Metode optimasi yang didasarkan pada swarm intelligence ini disebut algoritma behaviorallyinspired sebagai alternatif dari algoritma genetika, yang sering disebut evolution-based procedures. Algoritma PSO ini awalnya diusulkan oleh Eberhart R. Dalam konteks optimasi multivariabel, kawanan diasumsikan mempunyai ukuran tertentu atau tetap dengan setiap partikel posisi awalnya terletak di suatu lokasi yang acak dalam ruang multidimensi. Setiap partikel diasumsikan memiliki dua karakteristik: posisi dan kecepatan. Setiap partikel bergerak dalam ruang/space tertentu dan mengingat posisi terbaik yang pernah dilalui atau ditemukan terhadap sumber makanan atau nilai fungsi objektif. Setiap partikel menyampaikan informasi atau posisi bagusnya kepada partikel yang lain dan menyesuaikan posisi dan kecepatan masingmasing berdasarkan informasi yang diterima mengenai posisi yang bagus tersebut. Sebagai contoh, misalnya perilaku burung-burung dalam
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
dalam kawanan burung. Meskipun setiap burung mempunyai keterbatasan dalam hal kecerdasan, biasanya ia akan mengikuti kebiasaan (rule) seperti berikut :
1. Seekor burung tidak berada terlalu dekat dengan burung yang lain 2.
Burung tersebut akan mengarahkan terbangnya ke arah ratarata keseluruhan burung
3. Akan memposisikan diri dengan rata-rata posisi burung yang lain dengan menjaga sehingga jarak antar burung dalam kawanan itu tidak terlalu jauh
Dengan demikian perilaku kawanan burung akan didasarkan pada kombinasi dari 3 faktor simpel berikut: 1. Kohesi - terbang bersama 2. Separasi - jangan terlalu dekat 3. Penyesuaian(alignment) - mengikuti arah bersama Jadi PSO dikembangkan dengan berdasarkan pada model berikut: 1. Ketika seekor burung mendekati target atau makanan (atau bisa minimum atau maximum suatu fungsi tujuan) secara cepat mengirim informasi kepada burung-burung yang lain dalam kawanan tertentu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
2. Burung yang lain akan mengikuti arah menuju ke makanan tetapi tidak secara langsung 3. Ada komponen yang tergantung pada pikiran setiap burung, yaitu memorinya tentang apa yang sudah dilewati pada waktu sebelumnya.
Model ini akan disimulasikan dalam ruang dengan dimensi tertentu dengan sejumlah iterasi sehingga di setiap iterasi, posisi partikel akan semakin mengarah ke target yang dituju (minimasi atau maksimasi fungsi). Ini dilakukan hingga maksimum iterasi dicapai atau bisa juga digunakan kriteria penghentian yang lain.
2.2.2. Proses Algoritma Particle Swarm Optmization Proses algoritma particle swarm optimization yaitu sebagai berikut : 1)Inisialisasi sekumpulan particle secara random (setiap particlemerepresentasikan solusi yang mungkin untuk masalah optimasi). 2)Inisialisasi posisi dari setiap particle (𝑋𝑖 ) dan kecepatan dari setiapparticle (𝑉𝑖 ). 3)Hitung nilai fitness dari setiap particle𝐹𝑖 berdasarkan formula dan model yang telah ditentukan sesuai dengan masalah optimasinya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
4)Untuk setiap particle, bandingkan nilai fitness𝐹𝑖 dengan nilaiterbaiknya yang telah dicapai 𝑃𝑖𝑑 (local best) .jika𝐹𝑖 <𝑃𝑖𝑑 , maka 𝑃𝑖𝑑 diganti dengan 𝐹𝑖 . 5)Untuk setiap particle, bandingkan nilai fitness 𝐹𝑖 dengan Nilai terbaik yang dicapai dalam populasi 𝑃𝑔𝑑 (global best), jika𝐹𝑖 <𝑃𝑔𝑑 , maka 𝑃𝑔𝑑 diganti dengan 𝐹𝑖 . 6)Berdasarkan persamaaan 4 dan 5 , kecepatan (𝑉𝑖 )dan posisi dari particle(𝑋𝑖 ) diubah.
Rumus perubahan kecepatan (𝑉𝑖 ) : 𝑖 𝑉𝑘+1 = 𝑤 ∗ 𝑉𝑘𝑖 + 𝑐1 ∗ 𝑅𝑎𝑛𝑑 ∗ (𝑋𝑖𝑑 − 𝑋𝑘𝑖 ) + 𝑐2 ∗ 𝑅𝑎𝑛𝑑
∗ (𝑋𝑔𝑑 − 𝑋𝑘𝑖 ) Rumus perubahan posisi (𝑋𝑖 ) : 𝑖 𝑖 𝑋𝑘+1 = 𝑋𝑘𝑖 + 𝑉𝑘+1
7) Jika telah mencapai kondisi akhir (mencapai nilai iterasi maksimum atau perulangan telah mencapai nilai optimum) maka perulangan berhenti dan nilai optimumnya didapatkan namun jika belum maka diulangi pada nomor 3.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
Berikut Pseudo code dari algoritma PSO [5] : For setiap partikel Inisialisasi partikel End Repeat For setiap partikel Hitung nilai fitness If nilai fitness baru lebih baik daripada nilai fitness lama Update nilai fitness dari partikel tersebut End End Pilih partikel dengan nilai fitness terbaik diantara semua partikel tetangganya dan simpan nilai fitness terbaik tersebut. For setiap partikel Hitung velocity partikel menggunakan rumus pertama di atas Update posisi partikel menggunakan rumus ke dua diatas End Until (Kriteria Berhenti = true)
2.2.3. Cara Kerja Algoritma Particle Swarm Optimization Misalkan kita mempunyai fungsi berikut : min 𝑓(𝑥) 𝑑𝑖𝑚𝑎𝑛𝑎 𝑋 (𝐵) ≤ 𝑋 ≤ 𝑋 (𝐴) dimana𝑋 (𝐵) adalah batas bawah dan 𝑋 (𝐴) adalah batas atas dari X. Prosedur PSO dapat dijabarkan dengan langkah-langkah sebagai berikut [13]:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
1. Asumsikan bahwa ukuran kelompok atau kawanan (jumlah partikel) adalah N. Untuk mengurangi jumlah evaluasi fungsi yang diperlukan untuk menemukan solusi, sebaiknya ukuran N tidak terlalu besar, tetapi juga tidak terlalu kecil,agar ada banyak kemungkinan posisi menuju solusi terbaik atau optimal. Jika terlalu kecil, sedikit kemungkinan menemukan posisi partikel yang baik. Terlalu besar juga akan membuat perhitungan jadi panjang. Biasanya digunakan ukuran kawanan adalah 20 sampai 30 partikel.
2. Bangkitkan populasi awal X dengan rentang𝑋 (𝐵) 𝑑𝑎𝑛𝑋 (𝐴) secara random sehingga didapat 𝑋1 , 𝑋2 , … , 𝑋𝑁. Setelah itu, untuk mudahnya,partikelj dan kecepatannya pada iterasi i dinotasikan (𝑖)
(𝑖)
sebagai 𝑋𝑗 𝑑𝑎𝑛 𝑉𝑗 Sehingga partikel-partikel awal ini akan menjadidisebut𝑋1 (0), 𝑋2 (0), … , 𝑋𝑁 (0). Vektor 𝑋𝑗 (0), 𝑗(1,2, … , 𝑁) partikel atau vektor koordinat dari partikel. (seperti kromosom dalam algoritma genetika). Evaluasi nilai fungsi tujuan untuk setiap partikel dan nyatakan dengan 𝑓[𝑋1(0)], 𝑓[𝑋2 (0)], … , 𝑓[𝑋𝑁 (0)]
3. Hitung kecepatan dari semua partikel. Semua partikel bergerak menujutitik optimal dengan suatu kecepatan. Awalnya semua
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
kecepatan daripartikel diasumsikan sama dengan nol. Set iterasi i =1.
4. Pada iterasi ke-i, temukan 2 parameter penting untuk setiap partikel j yaitu: (a) Nilai terbaik sejauh ini dari 𝑋𝑗 (𝑖)(koordinat partikel jpada iterasi i) dan nyatakan sebagai𝑃𝑏𝑒𝑠𝑡,𝑗 ,dengan nilai fungsi obyektif paling rendah (kasus minimasi) ,𝑓[𝑋𝑗 (𝑖)] , yang ditemui sebuah partikel jpada semua iterasi sebelumnya. Nilai terbaik untuk semua partikel 𝑋𝑗 (𝑖) yang ditemukan sampai iterasi ke-i, 𝐺𝑏𝑒𝑠𝑡 , dengan nilai fungsi tujuan paling kecil/minimum diantara semua partikel untuk semua iterasi sebelumnya,𝑓[𝑋𝑗 (𝑖)].
(b) Hitung kecepatan partikel j pada iterasi ke i dengan rumus sebagai berikut: 𝑉𝑗 (𝑖) = 𝑉𝑗 (𝑖 − 1) + 𝑐1 𝑟1 [𝑃𝑏𝑒𝑠𝑡,𝑗 − 𝑥𝑗 (𝑖 − 1)] +𝑐2 𝑟2 [𝐺𝑏𝑒𝑠𝑡 − 𝑥𝑗 (𝑖 − 1)], 𝑗 = 1,2, … , 𝑁 dimana𝑐1 𝑑𝑎𝑛 𝑐2 masing-masing adalah learning rates untuk kemampuan individu (cognitive) dan pengaruh sosial
(group),
dan𝑟1 𝑑𝑎𝑛 𝑟2 bilangan
random
yang
berdistribusi uniforml dalam interval 0 dan 1. Jadi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
parameters𝑐1 𝑑𝑎𝑛 𝑐2 menunjukkan bobot dari memory (position) sebuah partikel terhadap memory (posisi) darikelompok(swarm). Nilai dari 𝑐1 𝑑𝑎𝑛 𝑐2 adalah 2 sehingga perkalian 𝑐1 𝑟1 𝑑𝑎𝑛 𝑐2 𝑟2memastikan bahwa partikel-partikel akanmendekati target sekitar setengah selisihnya.
(c) Hitung posisi atau koordinat partikel j pada iterasi ke-i dengan cara 𝑋𝑗 (𝑖) = 𝑋𝑗 (𝑖 − 1) + 𝑉𝑗 (𝑖); 𝑗 = 1,2 … , 𝑁(3) Evaluasi nilai fungsi tujuan untuk setiap partikel dan nyatakan sebagai 𝑓[𝑋1 (𝑖)], 𝑓[𝑋2 (𝑖)], 𝑓 … , 𝑓[𝑋𝑁 (𝑖)]
5. Cek apakah solusi yang sekarang sudah konvergen. Jika posisi semua partikel menuju ke satu nilai yang sama, maka ini disebut konvergen. Jika belum konvergen maka langkah 4 diulang dengan memperbarui iterasi i = i + 1, dengan cara menghitung nilai baru dari 𝑃𝑏𝑒𝑠𝑡,𝑗 𝑑𝑎𝑛 𝐺𝑏𝑒𝑠𝑡 .Proses iterasi ini dilanjutkan sampai semua partikel menuju ke satu titik solusi yang sama. Biasanya akan ditentukan dengan kriteria penghentian (stopping criteria), misalnya jumlah selisih solusi sekarang dengan solusi sebelumnya sudah sangat kecil.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III ANALISA DAN PERANCANGAN SISTEM
3.1.
Analisis Sistem Sistem yang akan dibangun pada tugas akhir ini adalah sistem optimasi penjadwalan MataKuliah menggunakan algoritma Particle Swarm Optimization. Aplikasi ini merupakan alat bantu untuk proses perataan jam mengajar mata kuliah di PGSD Univesitas Sanata Dharma. Sistem ini akan diimplementasikan ke sebuah aplikasi dengan bahasa pemrograman Java dan MySQL sebagai database
3.1.1.
Analisis Masalah Kegiatan belajar mengajar di PGSD dilaksanakan pada hari senin
sampai jumat, dimulai pukul 07.00 sampai jam 19.00. Proses penyusunan penjadwalan mata kuliah di PGSD diawali dengan pemaketan mata kuliah pada tiap semester. Kemudian masing-masing mata kuliah ditugaskan kepada
dosen
yang
kompeten
mengajar
pada
mata
kuliah
tersebut.Selanjutnya, mata kuliah dijadwalkan pada hari, jam, dan ruang yang tersedia dengan mempertimbangkan kesedian waktu dan kuota dosen mengajar.Ketika terdapat dosen luar yang mengajar di PGSD maka,dosen luar akan diprioritaskan untuk mendapatkan jam dan hari mengajar yang diinginkan.
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
Hasil akhir dari penyusunan mata kuliah ini adalah jadwal mata kuliah selama satu semester yang disusun berdasarkan jam, ruang, kelas dan mata kuliah. 3.1.2.
Aturan Penjadwalan Dalam penjadwalan mata kuliah, terdapat batasan yang tidak boleh dilanggar oleh sistem.Terdapat 2 batasan, yang bersifat wajib atau disebut batasan mutlak (hard constraint) dan batasan yang bersifat preferensi atau disebut batasan lunak (soft constraint).Hard constraint merupakan batasan yang wajib terpenuhi oleh sistem, Sedangkan soft constraint merupakan batasan yang tidak wajib di penuhi oleh sistem. Batasan yang bersifat multak yang harus dipenuhi yaitu : 1. Dosen yang sama tidak boleh mengajar mata kuliah yang berbeda di waktu yang bersamaan. 2. Setiap matakuliah, diselenggarakan di satu ruang yang berbeda dengan matakuliah 3. Satu mata kuliah dapat diampu lebih dari satu dosen. 4. Setiap dosen memiliki batasan maksimal mengajar sebanyak 20 sks pada semester di tahun bersangkutan. 5. 1 kelas hanya mampu menampung maksimal 50 mahasiswa pada kelas teori, dan 30 pada kelas praktikum. 6. Waktu kuliah dalam sehari dimulai dari jam 07.00 wib sampai pukul 19.00 wib.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
sedangkan batasan lunaknya, yaitu: 1.
Untuk Kelompok Kelas yang sama, tidak lebih dari 3 matakuliah yang di selenggarakan dalam sehari.
2.
Dosen tidak mengajar secara berurutan lebih dari 3 matakuliah per hari.
3.2.Pemodelan Algoritma Particle Swarm Optimization untuk penjadwalan
Algoritma particle swarm optimization merupakan teknik komputasi evolusioner, yang mana populasi pada PSO didasarkan pada penelusuran algoritma dan diawali dengan suatu populasi yang random yang disebut dengan particle. Algoritma particle swarm optimization memodelkan pencarian solusi terbaik dalam suatu ruang solusi sebagai aktivitas bergeraknya kelompok partikel dalam suatu ruang solusi tersebut. Setiap posisi pada partikel dalam ruang solusi merupakan kandidat solusi yang berisi variabel – variabel dari optimasi. Algoritma dasar PSO terdiri dari tiga tahap, yaitu pembangkitan posisi serta kecepatan partikel, updatevelocity (update kecepatan), updateposition (update posisi).Partikel berubah posisinya dari suatu perpindahan (iterasi) ke posisi lainnya berdasarkan pada update velocity.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Start
Ploting matakuliah (random) Inialisasi nilai w,c1,c2,jumlah partikel, max iterasi Iterasi < jumlah iterasi ya Hitung nilai fitness tiap partikel Iterasi =0
tidak
ya Simpan nilai fitness ke dalam arraylist simpanlocal
Simpan nilai fitness ke dalam arraylist simpanlocal dan simpan global
Fitness baru < Fitness lama ya
Buat String tampungglobal = simpanglobal.get(0)
Simpan nilai fitness ke dalam arraylist simpanglobal
j = 0; j < simpanglobal.size(); j++
ya
Buat String tampunglocal = simpanlocal.get(0)
Int pel=simpanglobal.get(j), Int pel2 =tampungglobal
j = 0; j < simpanlocal.size(); j++
tidak Pel < pel2
ya
tidak ya
Int pel=simpanlocal.get(j), Int pel2 =tampunglocal tidak tidak
tampungglobal=simpanglobal.get(j)
Pel < pel2
globalbest = tampungglobal tidak
ya Tampunglocal=simpanlocal.get(j)
Localbest = tampunglocal
Memenuhi stopping condition?
tidak
ya Simpan Jadwal End
Gambar 3. 1 Algoritma PSO dalam pembuatan jadwal
Inisialisasi posisi
21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Proses
penjadwalan
kuliah
menggunakan
Particle
22
Swarm
Optimization (PSO) dapat dilihat pada flowchart Gambar 3.1 diatas. Proses awal yang dilakukan adalah dengan memploting matakuliah secara random kedalam matriks 2 dimensi. Proses penjadwalan mata kuliah menggunakan algoritma Particle Swarm Optimization sebagai berikut: 3.2.1. Memploting matakuliah secara random (Pembangkitan posisi dan kecepatan awal) Untuk memploting matakuliah secara random, maka di gunakan matriks 2 dimensi. Matriks tersebut merupakan persilangan antara kelas “timeslot” dengan kelas “Ruang” untuk mendapatkan kelas matakuliah. Dalam studi kasus di PGSD, terdapat 5 hari waktu perkuliahan yaitu dari hari Senin – Jumat. Waktu perkuliahan dalam satu hari di bagi menjadi 4 sesi (waktu), 1 sesi memiliki 3 jam dan memiliki 13 ruang teori. Untuk mendapatkan timeslot , maka kita harus mensilangkan hari dan waktu yang sudah ditentkan, sehingga di dapatkan timeslot = 5 hari * 4 waktu = 20 timeslot.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 3. 1 Tabel Data hari
Id Hari
Nama Hari
H1
Senin
H2
Selasa
H3
Rabu
H4
Kamis
H5
Jumat
Tabel 3. 2 Tabel data waktu
Id Waktu
Jam
W1
07.00-10.00 WIB
W2
10.00-13.00 WIB
W3
13.00-16.00 WIB
W4
16.00-19.00 WIB
23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Tabel 3. 3 Tabel data struktur time slot
Time slot Kode
Kode
Kode
TS
Hari
Jam
TS1
H1
W1
TS2
H1
W2
TS3
H1
W3
TS4
H1
W4
TS5
H2
W1
…
…
…
TS20
H5
W4
Setelah mendapatkan timeslot, maka akan di tentukan timeslot kelas matakuliah yang didapatkan antara persilangan timeslot hari dan waktu * ruang teori, sehingga didapatkan 20 * 13 ruang = 260 timeslot kelas matakuliah.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
Tabel 3. 4 Tabel data Struktur Matriks time slot dengan Ruang
" Time Slot "
"Ruang" R1
R2
R3
R4
R5
…
R13
ts1
KM1
KM50
?
?
?
…
?
ts2
?
?
?
?
?
…
?
ts3
?
?
?
?
?
…
?
ts4
?
?
?
?
?
…
?
ts5
?
?
?
?
?
…
?
ts6
?
?
?
?
?
…
?
ts7
?
?
?
?
?
…
?
ts8
?
?
?
?
?
…
?
ts9
?
?
?
?
?
…
?
…
…
…
…
…
…
…
…
ts20
?
?
?
?
?
…
?
Ket : ? = Kode "Kelas MataKuliah" hasil random Proses memploting matakuliah dengan sample 3 matakuliah dengan 4 dosen yang mempunyai 15 kelas matakuliah dengan menggunakan 1 partikel sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 3. 5 Tabel Dosen
ID D1 D2 D3 D4
Nama Dosen Apri Damai S., S.S., M.Pd. Galih Kusumo, M.Pd. AG. Sujatmiko BS., M.Hum. Rusmawan, S.Pd., M.Pd.
Tabel 3. 6 Tabel Kelas Matakuliah
No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Mata kuliah Bahasa dan Sastra Indo (1A) Bahasa dan Sastra Indo (1B) Bahasa dan Sastra Indo (1C) Bahasa dan Sastra Indo (1D) Bahasa dan Sastra Indo (1E) Bahasa Inggris 1 (i) (1A) Bahasa Inggris 1 (i) (1B) Bahasa Inggris 1 (i) (1C) Bahasa Inggris 1 (i) (1D) Bahasa Inggris 1 (i) (1E) IPS (3A) IPS (3B) IPS (3C) IPS (3D) IPS (3E)
Dosen D1 D1 D1 D2 D2 D3 D3 D3 D3 D3 D4 D4 D4 D4 D4
Sks 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3
26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
Buat slot yang akan menampung posisi dan velocity. Gambaran dari slot awal yang akan di gunakan untuk tiap partikel adalah sebagai berikut : Tabel 3. 7 Tabel Slot Matakuliah
TS1 TS2 TS3 TS4
TS5 TS6 TS7 TS8
TS9 TS10 TS11 TS12
TS13 TS14 TS15 TS16
TS17 TS18 TS19 TS20
R1 0 13 26 39
R2 1 14 27 40
R3 2 15 28 41
R4 3 16 29 42
R5 4 17 30 43
Senin R6 R7 5 6 18 19 31 32 44 45
R8 7 20 33 46
R9 8 21 34 47
R10 9 22 35 48
R9 60
R10 R11 R12 R13 61 62 63 64
72 85 98
73 86 99
74 87 100
R8
R9
R10 R11 R12 R13
111 124 137 150
112 125 138 151
113 126 139 152
R8
R9
R10 R11 R12 R13
163 176 189 202
164 177 190 203
165 178 191 204
R8
R9
R10 R11 R12 R13
215 228 241 254
216 229 242 255
217 230 243 256
R1 52
R2 53
R3 54
R4 55
R5 56
Selasa R6 R7 R8 57 58 59
65 78 91
66 79 92
67 80 93
68 81 94
69 82 95
70 83 96
R1
R2
R3
R4
R5
R6
104 117 130 143
105 118 131 144
106 119 132 145
107 120 133 146
108 121 134 147
109 122 135 148
R1
R2
R3
R4
R5
110 123 136 149 Kamis R6 R7
156 169 182 195
157 170 183 196
158 171 184 197
159 172 185 198
160 173 186 199
161 174 187 200
R1
R2
R3
R4
R5
162 175 188 201 Jumat R6 R7
208 221 234 247
209 222 235 248
210 223 236 249
211 224 237 250
212 225 238 251
213 226 239 252
71 84 97 Rabu R7
214 227 240 253
R11 10 23 36 49
75 88 101
114 127 140 153
166 179 192 205
218 231 244 257
R12 11 24 37 50
76 89 102
115 128 141 154
167 180 193 206
219 232 245 258
R13 12 25 38 51
77 90 103
116 129 142 155
168 181 194 207
220 233 246 259
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Berdasarkan table di atas, di dapat nilai posisi awal (x) adalah sebagai berikut : Tabel 3. 8 Nilai Posisi awal R1
R2
R3
R4
R5
R6
Senin R7
R8
R9
R10
R11
R12
R13
x0=0
x1=1
x2=2
x3=3
x4=4
x5=5
x6=6
x7=7
x8=8
x9=9
x10=10
x11=11
x12=12
x13=13
x14=14
x15=15
x16=16
x17=17
x18=18
x19=19
x20=20
x21=21
x22=22
x23=23
x24=24
x25=25
x26=26
x27=27
x28=28
x29=29
x30=30
x31=31
x32=32
x33=33
x34=34
x35=35
x36=36
x37=37
x38=38
x39=39
x40=40
x41=41
x42=42
x43=43
x44=44
x45=45
x46=46
x47=47
x48=48
x49=49
x50=50
x51=51
R10
R11
R12
R13
R1
R2
R3
R4
R5
R6
Selasa R7
R8
R9
x52=52
x53=53
x54=54
x55=55
x56=56
x57=57
x59=58
x59=59
x60=60
x61=61
x62=62
x63=63
x64=64
x65=65
x66=66
x67=67
x68=68
x69=69
x70=70
x71=71
x72=72
x73=73
x74=74
x75=75
x76=76
x77=77
x78=78
x79=79
x80=80
x81=81
x82=82
x83=83
x84=84
x85=85
x86=86
x87=87
x88=88
x89=89
x90=90
x91=91
x92=92
x93=93
x94=94
x95=95
x96=96
x97=97
x98=98
x99=99
x100=100
x101=101
x102=102
x103=103
R1
R2
R3
R4
R5
R6
Rabu R7
R8
R9
R10
R11
R12
R13
x104=104
x105=105
x106=106
x107=107
x108=108
x109=109
x110=110
x111=111
x112=112
x113=113
x114=114
x115=115
x116=116
x117=117
x118=118
x119=119
x120=120
x121=121
x122=122
x123=123
x124=124
x125=125
x126=126
x127=127
x128=128
x129=129
x130=130
x131=131
x132=132
x133=133
x134=134
x135=135
x136=136
x137=137
x138=138
x139=139
x140=140
x141=141
x142=142
x143=143
x144=144
x145=145
x146=146
x147=147
x148=148
x149=149
x150=150
x151=151
x152=152
x153=153
x154=154
x155=155
R1
R2
R3
R4
R5
R6
Kamis R7
R8
R9
R10
R11
R12
R13
x156=156
x157=157
x158=158
x159=159
x160=160
x161=161
x162=162
x163=163
x164=164
x165=165
x166=166
x167=167
x168=168
x169=169
x170=170
x171=171
x172=172
x173=173
x174=174
x175=175
x176=176
x177=177
x178=178
x179=179
x180=180
x181=181
x182=182
x183=183
x184=184
x185=185
x186=186
x187=187
x188=188
x189=189
x190=190
x191=191
x192=192
x193=193
x194=194
x195=195
x196=196
x197=197
x198=198
x199=199
x200=200
x201=201
x202=202
x203=203
x204=204
x205=205
x206=206
x207=207
R1
R2
R3
R4
R5
R6
Jumat R7
R8
R9
R10
R11
R12
R13
x208=208
x209=209
x210=210
x211=211
x212=212
x213=213
x214=214
x215=215
x216=216
x217=217
x218=218
x219=219
x220=220
x221=221
x222=222
x223=223
x224=224
x225=225
x226=226
x227=227
x228=228
x229=229
x230=230
x231=231
x232=232
x233=233
x234=234
x235=235
x236=236
x237=237
x238=238
x239=239
x240=240
x241=241
x242=242
x243=243
x244=244
x245=245
x246=246
x247=247
x248=248
x249=249
x250=250
x251=251
x252=252
x253=253
x254=254
x255=255
x256=256
x257=257
x258=258
x259=259
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
x0 menginialisasikan posisi ke 0 atau posisi awal di dalam slot. Kemudian masukkan jadwal perkuliahan secara acak ke dalam slot. Dimisalkan proses memasukkan jadwal perkuliahan dapat dilihat pada gambar di bawah ini Tabel 3. 9 Tabel pembangkitan posisi dan velocity jadwal matakuliah
TS
TS1
R1
R2 R3
0. Bahasa dan Sastra Indo (1AD1)
13
1
14
15
27
28
TS2
TS3
26. Bahasa dan Sastra Indo (1CD1)
39
16.Bahasa dan Sastra Indo(1D-D2)
29
40
41
17
5
30
R8
R9
6. Bahasa dan Sastra Indo (1BD1)
18.Bahasa Inggris 1 (i) (1D-D3)
R10 R11 R12 R13
7
9
10
11
12
21
22
23
24
25
34
35
36
37
38
47
48
49
50
51
8. IPS (3C-D4)
19
31
43
20
32
44
45
46
R1
Slot 1 R2
52.Bahasa dan Sastra Indo(1E-D2)
53
R3
R4
54. Bahasa Inggris 1 (i) (1A-D3)
55
65
66
67
68
78
79. IPS (3ED4)
80
81
91
92
93
94
TS6
TS7
TS8
R6
4
42. IPS (3BD4)
Nilai Posisi
TS5
R5 3
33. IPS (3A-D4)
TS4
TS
R4
2
Senin R7
Selasa R6 R7
R5 56
69.Bahasa Inggris 1 (i) (1B-D3)
57
R8
58.Bahasa Inggris 1 (i) (1C-D3)
R9
R10 R11 R12 R13 60
61
62
63
64
73
74
75
76
77
87
88
89
90
100
101
102
103
59. IPS (3C-D4)
70
71
72
82
83
84
85
95
96
97
98
86.Bahasa Inggris 1 (i) (1E-D3)
99
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
TS
R1
R2
R3
R4
R5
R6
Rabu R7 R8
R9
R10
30
R11
R12 R13
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
TS9
TS10
TS11
TS12
TS
R1
R2
R3
R4
R5
R6
Kamis R7 R8
R9
R10
R11
R12 R13
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
TS13
TS14
TS15
TS16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
TS
R1
R2
R3
R4
208
209
210
211
221
222
223
224
234
235
236
237
247
258
249
250
R5
R6
Jumat R7 R8
R9
R10
31
R11
R12 R13
212
213
214
215
216
217
218
219
220
225
226
227
228
229
230
231
232
233
238
239
240
241
242
243
244
245
246
251
252
253
254
255
256
257
258
259
TS17
TS18
TS19
TS20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
Lalu matakuliah yang di random akan di ploting ke dalam timeslot kelas matakuliah awal dan akan disimpan sebagai hasil ploting random matakuliah awal. Satu ploting matakuliah awal terdiri dari idSolusi = timeslot hari waktu, satu ruang kelas dan satu kelas matakuliah. 0 = satu kelas matakuliah + satu timeslot hari,waktu + satu ruang kelas Jadi,ploting matakuliah awal itu terdiri dari kumpulan idSolusi ke - 0 sampai ke - n. Sehingga di dapatkan batas minimal perpindahan partikel yaitu 0 dan batas maksimal perpindahan partikel yaitu 259. Berikut merupakan atribut-atribut yang digunakan : private static List
simpansementara[][] = new List[iterasi][maxparticle]; private static List<solusi> partikel1[] = new List[maxparticle]; private static List bantusimpan[][] = new List[iterasi][maxparticle]; private static int beban[][] = new int[iterasi][maxparticle]; private static List simpantabrakandosen[][] = new List[iterasi][maxparticle]; private static List simpantabrakanruang[][] = new List[iterasi][maxparticle]; private static List simpantabrakankelas[][] = new List[iterasi][maxparticle]; private static List bantupermintaan = new ArrayList(); private static List simpanglobal = new ArrayList(); private static List simpanlocal = new ArrayList();
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
Keterangan : 1. Simpan sementara, digunakan untuk menyimpan perpindahan partikel yang sudah melalui tahap pengecekan tabrakan. 2. partikel1, digunakan untuk menyimpan ploting matakuliah random. 3. bantusimpan, digunakan untuk menyimpan perpindahan partikel sementara. 4. beban, digunakan untuk menyimpan hasil fitness setiap partikel. 5. simpantabrakandosen, digunakan untuk menyimpan hasil dari jadwal yang masih terdapat tabrakan dosen. 6. simpantabrakankelas, digunakan untuk menyimpan hasil dari jadwal yang masih terdapat tabrakan kelompok kelas. 7. simpantabrakanruang, digunakan untuk menyimpan hasil dari jadwal yang masih terdapat tabrakan ruang kelas. 8. bantupermintaan, digunakan untuk menyimpan jadwal permintaan. 9. simpanglobal, digunakan untuk menyimpan tabrakan terkecil dari seluruh partikel di seluruh iterasi. 10. simpanlocal, digunakan untuk menyimpan tabrakan terkecil dari seluruh partikel di setiap iterasinya.
Berikut merupakan metod yang digunakan untuk memploting matakuliah secara random : 1.
Mulai
2.
Membuat method Ploting Awal dengan tipe pengembalian static List<solusi>
3.
Membuat variabel partikel dengan tipe class solusi di dalam list.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
List<solusi> partikel1 = new ArrayList<solusi>(); 4. Membuat variabel bantutimeslot dengan tipe objek untuk menyimpan kodetimeslot, kode ruang dan nama hari. List bantutimeslot = new ArrayList(); 5. Membuat variabel bantupermintaan dengan tipe objek untuk menyimpan jadwal permintaan. List bantupermintaan = new ArrayList(); 6. Membuat variabel timeslot dengan tipe class timeslot untuk menyimpan idTS,waktu, idHari dan namahari. List timeslot = timeSlotKontrol.getKoneksiTimeSlot().getAllTimeSlot(); 7. Membuat variabel ruang dengan tipe class ruangkelas untuk menyimpan idRuang, nama ruang dan jenis ruang. List ruang = RuangKelasKontrol.getRuangKelasKontrol().getAllKelas(); 8. Untuk i=0 sampai i sebanyak “timeslot”, lakukan, 1. Untuk j=0 sampai j sebanyak “ruang” , lakukan -
String simpantimeslot = kode_timeslot + " " + kode_ruang + " " + hari;
-
Simpan simpantimeslot kedalam list bantutimeslot.
9. Untuk m=0 sampai m sebanyak “bantupermintaan”, lakukan, 10. Untuk i=0 sampai i sebanyak “bantutimeslot” , lakukan -
cek jika idts dan idRuang di permintaan sama dengan kodets dan kode ruang di bantutimeslot
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
remove bantutimeslot.get i - cek jika kode ruang pada bantutimeslot = “0” remove bantutimeslot.get i 11. Random kelas matakuliah List bantukm = getRandomMatakuliah(); 12. Inialisasi kode = 0. 13. Membuat objek Solusi sol = new Solusi; 14. Untuk i=0 sampai i sebanyak “bantukm” , lakukan a. Untuk m=0 sampai m sebanyak “bantupermintaan”, lakukan -
cek jika kode =idsolusi didalam list bantu permintaan, maka kode = kode+1;
b. memasukan idSolusi, idKelas, idTS, dan idRuang ke dalam objek sol. c. memasukan objek sol ke dalam list partikel1. 15. Selesai.
Keterangan : 1. Solusi sol = new Solusi(), digunakan untuk mengeset semua atribut yang memiliki class solusi. 2. Bantukm, digunakan untuk menyimpan satu jadwal penuh matakuliah hasil random. 3. List p = permintaanKontrol.getKoneksiPermintanKontrol().getPermintaanAw
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
al();, digunakan untuk mengambil seluruh data jadwal permintaan di dalam database. 4. List timeslot = timeSlotKontrol.getKoneksiTimeSlot().getAllTimeSlot();, digunakan untuk mengambil seluruh data idTS, idHari, waktu, dan nama hari yang terdapat di dalam database. 5. List ruang = RuangKelasKontrol.getRuangKelasKontrol().getAllKelas();, digunakan untuk menyimpan seluruh data ruang kelas yang terdapat di dalam database.
Berikut merupakan method yang di gunakan untuk random matakuliah : 1. Mulai 2. Membuat method dengan nama getRandomMatakuliah dengan tipe static List 3. Membuat arraylist dengan nama variabel bantukm dengan tipe data objek . List bantukm = new ArrayList(); 4. Membuat arraylist dengan nama variabel km dengan tipe data objek. List km = new ArrayList(); 5. Membuat arraylist dengan nama variabel bantupermintaan dengan tipe data Objek. List bantupermintaan = new ArrayList();
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
6. Membuat arraylist dengan nama variabel kelasmatkul dengan tipe data class kelasMatkul. List kelasMatKul = kelasMatkulKontrol.getkelasMatkulKontrol().getAllKelasMakul(); 7. Membuat objek baru dengan nama random. Random random = new Random(); 8. Untuk i =0 sampai i sebanyak “kelasMatkul.size()”, lakukan 1. idkelas, iddosen,namakelas, semester, dan kode mk di simpan kedalam list km. 9. Untuk i =0 sampai i sebanyak “bantupermintaan.size()”, lakukan 1. Untuk j=0 sampai j sebanyak “km.size()”, lakukan -
cek jika kelas di dalam list km sama dengan idkelas di bantupermintaan, jika ya maka lakukan : a. remove km.get(i)
10. Untuk i = km.size()-1 sampai 0 lakukan 1. Melakukan random kelasmatakuliah berdasarkan index. int next_num = random.nextInt(km.size()); 2. Mengambil isi dari index hasil random, lalu di simpan ke dalam string KodeKelasMatkul. kodeKelasMatKul = km.get(next_num).toString(); 3. Simpan kodeKelasMatkul ke dalam list bantu km 4. remove km.get(next_number) 11. Selesai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
3.2.2. Menentukan nilai fitness masing-masing partikel Nilai fitness digunakan untuk mengetahui posisi partikel.Baik ataupun buruknya posisi partikel dilihat dari nilai fitnesnya. Ada 3 faktor yang mempengaruhi evaluasi fitness terhadap solusi : a. Banyaknya dosen yang bentrok jam mengajar b. Banyaknya ruangan yang bentrok c. Banyaknya kelompok kelas semester yang sama berada pada hari dan jam yang bersamaan
Dari nilai fitness yang didapat akan menentukan pelanggaran – pelanggaran konstrain dari penjadwalan kuliah. Apabila pada tiap - tiap partikel terjadi pelanggaran terhadap konstrain – konstrain diatas maka nilai fitness masing – masing partikel akan di-increment sebanyak satu untuk tiap pelanggaran yang terjadi. Berikut ini merupakan pseudocode algoritma method yang di gunakan untuk menghitung fitnes : 1. Mulai 2. Membuat arraylist dengan nama variabel cekDosen3 dengan tipe data String. List<String> cekDosen3 = new ArrayList<String>(); 3. Membuat arraylist dengan nama variabel ceksem3 dengan tipe data String. List<String> ceksem3 = new ArrayList<String>(); 4. Membuat variabel dengan nama pelanggaranRuang, pelanggaranDosen, pelanggaranKelas,pelanggaranSemester, pelanggaranDosenlbh3, jumlah dan jumlah soft bertipe int, dan diinisialisasi = 0; 5. untuk i=0 sampai i sebanyak maxparticle, lakukan 6.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
a. untuk k=0 sampai k sebanyak simpansementara[itera][i].size, lakukan 1). untuk l = k+1 sebanyak simpansementara[itera][i].size, lakukan - Membuat variabel dengan nama cekRuang, cekDosen, cekKelas,cekSemester, cekdosenlebih3 bertipe int, dan diinisialisasi = 1. - cek jika kodets dan koderuang (k) sama dengan kodets dan kode ruang (l), jika ya, maka cekruang=cekruang+1. a) cek jika cekruang=2, jika ya maka pelanggaranRuang=pelanggaranRuang+1;
- cek jika kodets,kelompokkelas dan semester (k) sama dengan kodets,kelompokkelas, dan semester (l), jika ya. maka cekkelas=cekkelas+1. a) cek jika cekkelas=2, jika ya maka pelanggaranKelas=pelanggaranKelas+1.
- cek jika kodets dan iddosen (k) sama dengan kodets dan iddosen (l), jika ya, maka cekdosen=cekdosen+1. a) cek jika cekdosen=2, jika ya maka pelanggaranDosen=pelanggaranDosen+1;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
- cek jika namahari dan iddosen (k) sama dengan namahari dan iddosen (l), jika ya, namahari dan id dosen di masukan ke dalam list cekDosen3. Membuat cekDos dengan tipe data int untuk memanggil method searchSequential(). a) cek jika cekdos=4, jika ya maka pelanggarandosenlbh3=pelanggarandosenlbh3+1; - cek jika namahari, semester, dan kelompokkelas (k) sama dengan namahari, semester dan kelompokkelas (l), jika ya, namahari,semester dan kelompok kelas di masukan ke dalam list cekSem3. Membuat cekSem dengan tipe data int untuk memanggil method searchSequential(). a) cek jika ceksem=4, jika ya maka pelanggaranSemester=pelanggaranSemester+1; 6.
Menghitung jumlah hardconstraint . jumlah = pelanggaranDosen+pelanggaranKelas+pelanggaranRuang.
7.
Menghitung jumlah soft constraint. jumlahsoft = pelanggarandosenlbh3+pelanggaranSemester.
8.
Selesai. Keterangan : 1. searchSequential(). digunakan untuk membandingkan data yang ingin dicari dengan data yang terdapat di dalam list.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
Berikut pseudocode algoritma method mencari global best ; 1.
Mulai
2.
Membuat arraylist dengan nama variabel simpanglobal dengan tipe data objek. List simpanglobal = new ArrayList();
3.
untuk j =0 sampai j sebanyak iterasi, lakukan a. untuk i =0 sampai i sebanyak maxparticle, lakukan -
Membuat array 2 dimensi dengan nama variabel beban dengan tipe data int. diinialisasikan beban[itera][par]= jumlah;
-
cek jika beban[itera][i] < beban[itera-1][i], jika ya, maka simpan beban[itera][i] ke dalam list simpanglobal.
4. Membuat variabel tampungmin dengan tipe data String. di set kan tampung min dengan list simpanglobal.get(0). 5. Untuk i =0 sebanyak simpanglobal, lakukan a. cek jika tampungmin < simpanglobal, jika ya maka tampungmin = simpanglobal.get(i) 6.
Selesai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
Berikut pseudocode algoritma method mencari local best ; 1. Mulai 2. Membuat arraylist dengan nama variabel simpanlocal dengan tipe data objek. List simpanlocal = new ArrayList(); 3. untuk j =0 sampai j sebanyak iterasi, lakukan a) untuk i =0 sampai i sebanyak maxparticle, lakukan -
Membuat array 2 dimensi dengan nama variabel beban dengan tipe data int. diinialisasikan beban[itera][par]= jumlah;
-
simpan beban[itera][i] ke dalam list simpanlocal.
4. Membuat variabel tampunglocal dengan tipe data String. di set kan tampung min dengan list simpanlocal.get(0). 5. Untuk i =0 sebanyak simpanlocal, lakukan a. cek jika tampunglocal < simpanlocal, jika ya maka tampunglocal = simpanlocal.get(i) 6. Selesai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
Contoh proses menentukan nilai-nilai parameter di PSO sebagai berikut : Jumlah partikel = 1, jumlah iterasi = 1, w=0.5, c1 = 2, c2=2 Kemudian tentukan populasi awal secara random, untuk awal proses nilai velocity sama dengan nilai posisi. Setiap terjadi pelanggaran maka nilai fitness akan diincrement sebanyak satu karena nilai fitness merealisasikan jumlah bentrokan yang terjadi sehingga di dapat nilai fitness sebagai berikut -
Nilai fitness untuk partikel 1. f1 = 3
Dari nilai fitness yang sudah di dapat, kita dapat menentukan nilai local best dan global best. Adapun nilai local best ini adalah fitness yang mempunyai nilai bentrokan/pelanggaran paling sedikit dan nilai global best adalah nilai local best yang paling baik dari setiap iterasi sehingga di dapat nilai local best sebagai berikut : -
Local best = 3
Setelah didapat nilai local best kita dapat menentukan nilai global best. Pada perhitungan manual ini jumlah iterasi = 1 dimaksudkan sebagai iterasi awal. Maka pada iterasi awal nilai local best sama dengan nilai global best, sehingga didapat nilai global best sebagai berikut : -
Global best = 3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
3.2.3. Proses Update Velocity dan Posisi Nilai dari localbest dan global best yang didapat akan digunakan untuk proses update kecepatan dan update posisi. Adapun 3 parameter yang
mempengaruhi
pencarian
pada
algoritma
particleswarmoptimization ini adalah w (inertiaweight), c1 (faktor learning local partikel), c2 (faktor learning global partikel) yang digabungkan dalam satu persamaan [3] : 𝑔
𝑖 𝑉𝑘+1 = 𝑤 ∗ 𝑉𝑘𝑖 + 𝑐1 ∗ 𝑟𝑛𝑑 ∗ (𝑃𝑘𝑖 − 𝑋𝑘𝑖 ) + 𝑐2 ∗ 𝑟𝑛𝑑 ∗ (𝑃𝑘 − 𝑋𝑘𝑖 ) (1)
Dimana : w = faktor inersia (inertia weight) range 0,4-1,4 𝑖 𝑉𝑘 = kecepatan 𝑋𝑘𝑖 = posisi rnd = parameter random range 0 - 1 c1 = laju belajar (learning rates) untuk komponen cognition (kecerdasan individu), memiliki batasan nilai antara 1,5-2 c2 = laju belajar untuk komponen social (hubungan sosial antar individu), memiliki batasan nilai antara 2-2,5 𝑃𝑘𝑖 = fitness terbaik per iterasi ( local best ) 𝑔
𝑃𝑘 = fitness terbaik (global best) i = partikel
Persamaan diatas adalah persamaan yang digunakan untuk proses update velocity (update kecepatan) untuk masing - masing partikel dengan menggunakan nilai fitness terbaik yang didapat dari perulangan partikel. Perumusan dari update velocity ini menggunakan beberapa
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
parameter random (rnd) dengan range 0 - 1 untuk mendapatkan nilai velocity yang baik. Proses terakhir yang dilakukan adalah update posisi dari nilai update velocity, seperti pada persamaan [4]: 𝑿𝒊𝒌+𝟏 = 𝑿𝒊𝒌 + 𝑽𝒊𝒌+𝟏
(2)
Dalam update posisi ini, partikel atau yang dalam kasus penjadwalan ini adalah kelas mata kuliah yang berada pada posisi yang salah (mengalami bentrokan jadwal) maka akan melakukan perpindahan posisi sebanyak hasil update posisi. Berikut pseudocode algoritma method update velocity : 1. Mulai 2. Membuat array 2 dimensi dengan nama particlevector. int particlevector[][] = new int[iterasi][maxparticle]; 3. Membuat array 2 dimensi dengan nama particlevelocity. int particlevelocity[][] = new int[iterasi][maxparticle]; 4. Untuk i = 0 sebanyak maxparticle, lakukan a. Untuk j = 0 sebanyak simpansementara[itera][i], lakukan -
Membuat objek baru dengan nama random. Random random = new Random();
-
untuk r = 0 sebanyak r<=1, lakukan 1) melakukan random number antara 0 – 1. next_number = random.nextFloat();
-
Menginialisasi posisi partikel. particlevector[itera][i] = idSol;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
-
46
particlevelocity[itera + 1][i] = (int) ((w * particlevelocity[itera][i]) + (c1 * (next_number * (localbest - particlevector[itera][i]))) + (c2 * (next_number * (globalbest - particlevector[itera][i]))));
5. Selesai Keterangan : 1. Globalbest, digunakan untuk mencari fitness terkecil yang terdapat di semua partikel. 2. Localbest, digunakan untuk mencari fitness terkecil yang terdapat di semua partikel pada setiap iterasi.
Berikut pseudocode algoritma method update posisi : 1. Mulai 2. Membuat variabel V_MAX dengan tipe data int 3. Untuk i=0 sebanyak maxparticle , lakukan a. Untuk j =0 sebanyak simpansementara[itera][i], lakukan -
particlevector[itera
+
1][i]
=
particlevector[itera][i]
+
particlevelocity[itera + 1][i]; -
cek jika particlevector[itera+1] > V_MAX, jika ya maka particlevector[itera + 1][i] = particlevector[itera + 1][i] - V_MAX;
4. Selesai. Keterangan : 1. V_MAX, digunakan untuk membatasi perpindahan maksimal partikel, ketika nilai posisi melebihi nilai V_MAX, maka posisi partikel yang didapat dikurangi dengan nilai V_MAX.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
Setiap partikel yang berpindah dari satu posisi ke posisi yang lain dipengaruhi
oleh
suatu
velocity
(kecepatan)
yang
menggambarkan
perpindahan posisi. Didalam persamaan untuk mencari velocity terdapat parameter random yang berada pada range 0-1. Nilai posisi (x) awal yang telah ditentukan dimasukkan ke dalam persamaan velocity : R1
R2
R3
R4
R5
R6
Senin R7
R8
R9
R10
R11
R12
R13
x0=0
x1=1
x2=2
x3=3
x4=4
x5=5
x6=6
x7=7
x8=8
x9=9
x10=10
x11=11
x12=12
x13=13
x14=14
x15=15
x16=16
x17=17
x18=18
x19=19
x20=20
x21=21
x22=22
x23=23
x24=24
x25=25
x26=26
x27=27
x28=28
x29=29
x30=30
x31=31
x32=32
x33=33
x34=34
x35=35
x36=36
x37=37
x38=38
x39=39
x40=40
x41=41
x42=42
x43=43
x44=44
x45=45
x46=46
x47=47
x48=48
x49=49
x50=50
x51=51
R10
R11
R12
R13
R1
R2
R3
R4
R5
R6
Selasa R7
R8
R9
x52=52
x53=53
x54=54
x55=55
x56=56
x57=57
x59=58
x59=59
x60=60
x61=61
x62=62
x63=63
x64=64
x65=65
x66=66
x67=67
x68=68
x69=69
x70=70
x71=71
x72=72
x73=73
x74=74
x75=75
x76=76
x77=77
x78=78
x79=79
x80=80
x81=81
x82=82
x83=83
x84=84
x85=85
x86=86
x87=87
x88=88
x89=89
x90=90
x91=91
x92=92
x93=93
x94=94
x95=95
x96=96
x97=97
x98=98
x99=99
x100=100
x101=101
x102=102
x103=103
R1
R2
R3
R4
R5
R6
Rabu R7
R8
R9
R10
R11
R12
R13
x104=104
x105=105
x106=106
x107=107
x108=108
x109=109
x110=110
x111=111
x112=112
x113=113
x114=114
x115=115
x116=116
x117=117
x118=118
x119=119
x120=120
x121=121
x122=122
x123=123
x124=124
x125=125
x126=126
x127=127
x128=128
x129=129
x130=130
x131=131
x132=132
x133=133
x134=134
x135=135
x136=136
x137=137
x138=138
x139=139
x140=140
x141=141
x142=142
x143=143
x144=144
x145=145
x146=146
x147=147
x148=148
x149=149
x150=150
x151=151
x152=152
x153=153
x154=154
x155=155
R1
R2
R3
R4
R5
R6
Kamis R7
R8
R9
R10
R11
R12
R13
x156=156
x157=157
x158=158
x159=159
x160=160
x161=161
x162=162
x163=163
x164=164
x165=165
x166=166
x167=167
x168=168
x169=169
x170=170
x171=171
x172=172
x173=173
x174=174
x175=175
x176=176
x177=177
x178=178
x179=179
x180=180
x181=181
x182=182
x183=183
x184=184
x185=185
x186=186
x187=187
x188=188
x189=189
x190=190
x191=191
x192=192
x193=193
x194=194
x195=195
x196=196
x197=197
x198=198
x199=199
x200=200
x201=201
x202=202
x203=203
x204=204
x205=205
x206=206
x207=207
R1
R2
R3
R4
R5
R6
Jumat R7
R8
R9
R10
R11
R12
R13
x208=208
x209=209
x210=210
x211=211
x212=212
x213=213
x214=214
x215=215
x216=216
x217=217
x218=218
x219=219
x220=220
x221=221
x222=222
x223=223
x224=224
x225=225
x226=226
x227=227
x228=228
x229=229
x230=230
x231=231
x232=232
x233=233
x234=234
x235=235
x236=236
x237=237
x238=238
x239=239
x240=240
x241=241
x242=242
x243=243
x244=244
x245=245
x246=246
x247=247
x248=248
x249=249
x250=250
x251=251
x252=252
x253=253
x254=254
x255=255
x256=256
x257=257
x258=258
x259=259
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
Di dapatkan nilai velocity sebagai berikut : R1
R2
R3
R4
R5
R6
v0=9
v1=6
v2=3
v3=0
v4=-3
v5=-6
v13=30 v26=69 v39=108
v14-33 v27=72 v40=111
v15=36 v28=75 v41=114
v16=39 v29=78 v42=117
v17=42 v30=81 v43=120
v18=45 v31=84 v44=123
R1
R2
R3
R4
R5
R6
v52=147 v65=186 v78=225 v91=264
v53=150 v66=189 v79=228 v92=267
v54=153 v67=192 v80=231 v93=270
v55=156 v68=195 v81=234 v94=273
v56=159 v69=198 v82=237 v95=276
v57=162 v70=201 v83=240 v96=279
Senin R7
R8
R9
v6=-9
v7=-12
v8=-15
v19=48 v32=87 v45=126
v20=51 v33=90 v46=129
v21=54 v34=93 v47=132
R8
R9
R10
R11
R12
v59=168 v72=207 v85=246 v98=285
v60=171 v73=210 v86=249 v99=288
v61=174 v74=213 v87=252 v100=291
v62=177 v75=216 v88=255 v101=294
v63=180 v76=219 v89=258 v102=297
Selasa R7 v58=165 v71=204 v84=243 v97=282
R10
R11
R12
R13
v9=-18
v10=-21
v11=-24
v22=-57
v23=-60
v24=-63
v35=-96
v36=-99
v48=135
v49=138
v37=102 v50=141
v12=27 v25=66 v38=105 v51=144
R13 v64=183 v77=222 v90=261 v103=300
Adapun proses update posisi menggunakan persamaan (2). Sehingga di dapat posisi yang lama dengan velocity yaitu :
R1
R2
R3
R4
R5
R6
x0=9
x1=7
x2=5
x3=3
v4=-3
x5=1
x13=-17
x14=-19
x15=-21
x16=-23
x17=-25
x26=-43
x27=-45
x28=-47
x29=-49
x39=-69
x40=-71
x41=-73
R1
R2
R3
x52==95 x65=121 x78=147 x91=173
x53=-97
x54=-99
x66=123 x79=149 x92=175
x67=125 x80=151 x93=177
Senin R7
R8
R9
v6=-3
x7=-5
x8=-7
x9=-9
x10=-11
x11=-13
x18=-27
x19=-29
x20=-31
x21=-33
x22=-35
x23=-37
x24=-39
x30=-51
x31=-53
x32=-55
x33=-57
x34=-59
x35=-61
x36=-63
x37=-65
x42=-75
x43=-77
x44=-79
x45=-81
x46=-83
x47=-85
x48=-87
x49=-89
x50=-91
R4
R5
R6
R8
R9
R10
R11
R12
R13
x55=101 x68=127 x81=153 x94=179
x56=103 x69=129 x82=155 x95=181
x57=105 x70=131 x83=157 x96=183
x59=109 x72=135 x85=161 x98=187
x60=111 x73=137 x86=163 x99=189
x61=-113
x62=-115
x63=-117
x74=-139
x75=-141
x76=-143
x87=-165 x100=191
x88=-167 x101=193
x89=-169 x102=195
x64=119 x77=145 x90=171 x103=197
Selasa R7 x59=107 x71=133 x84=159 x97=185
R10
R11
R12
R13 x12=15 x25=41 x38=67 x51=93
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Jika posisi baru yang didapatkan di tampilkan ke dalam bentuk representasi posisi, maka dapat dilihat pada gambar di bawah ini Tabel 3. 10 Posisi baru jadwal matakuliah
Waktu
R1
R2
R3
Senin R6 R7 R8
R5
3. Bahasa dan Sastra Indo (1B-D1)
4
15
16
17
18
19
28
29
30
31
40
41
42
43. Bahasa dan Sastra Indo (1C-D1)
44
1
0
2
TS1 13
R4
14
R9
R10
R11
27.Bahasa Inggris 1 (i) (1D-D3)
TS3 39
9. Bahasa dan Sastra Indo (1A-D1)
10
11
12
20
21
22
23.Bahasa dan Sastra Indo(1DD2)
24
25
32
33
34
35
36
37
38
45
46
47
48
49
50
51
7. IPS (3C-D4)
TS4
Waktu
R1
R2
R3
R4
R5
52
53
54
55
56
68
69
82
TS5 65
66
67
Selasa R7 R8
R6
R9
R10
58
59
60
61
70
71
72
73
74
83
84
85
86
87
96
97
98
100
57. IPS (3AD4)
TS6 78
79
80
81
91
92
93
94
R13
8
6
5
TS2 26
R12
R11
R12 62
R13
63
64
76
77
88
89
90
101
102
103
75. IPS (3BD4)
TS7
TS8
95.Bahasa dan Sastra Indo(1ED2)
99. Bahasa Inggris 1 (i) (1A-D3)
3.2.4. Stopping Condition Dalam penjadwalan mata kuliah menggunakan algoritma Particle Swarm Optimization, terdapat 2 stopping condition.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
1. Jika jumlah iterasi maksimum telah dilampaui. 2. Jika nilai fitness terbaik telah dilampaui. Jika salah satu dari 2 stopping condition telah diperoleh oleh program, maka iterasi akan diberhentikan dan menampilkan hasil dari penjadwalan yang telah diperoleh.
3.3.Analisa Kebutuhan Sistem 3.3.1. Spesifikasi Perangkat Keras Berikut adalah spesifikasi kebutuhan perangkat keras sistem: a. Processor :Intel(R) Core(TM) i5-3317U CPU @ 1.70 GHz b. Memori
: RAM 4 GB
c. Hard disk : 500 GB
3.3.2. Spesifikasi Perangkat Lunak Berikut adalah spesifikasi kebutuhan perangkat lunak sistem: a. Sistem Operasi Windows 7 b. NetBeans 7 c. JDK 7 d. MySQL
3.4. Sumber Data Data yang digunakan untuk penelitian ini adalah data dosen, data mata kuliah, dan data jumlah SKS dari program studi PGSD universitas Sanata Dharma. Data hardcopy yang diberikan meliputi :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
NIP Dosen.
Nama dosen.
Kode mata kuliah
Nama mata kuliah.
SKS dan JP.
Kegiatan Tri Dharma (berkaitan dengan mata kuliah apa saja yang diampu dosen).
Ruang kelas.
Berikut adalah data NIP dan nama Dosen di PGSD : Tabel 3. 11 Tabel Data NIP dan Nama Dosen
NIP
Nama Dosen
P.1002
Drs. Paulus Wahana, M.Hum.
P.1171
Drs. Y.B. Adimassana, M.A.
P.1482
Catur Rismiati, S.Pd., M.A., Ph.D.
P.2164
G. Ari Nugrahanta, S.J, M.A.
P.2222
Rusmawan, S.Pd., M.Pd
P.2269
Eny Winarti, Ph.D.
P.2315
Galih Kusumo, S.Pd, M.Pd.
P.2317
Theresia Yunia Setyawan, S.Pd, M.Hum.
P.1812
Dra. Ignatia Esti S, M.Hum.
P.904
Drs. Puji Purnomo, M.Si.
P.2336
Andri Anugrahana, S.Pd., M.Pd.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
P.2338
Wahyu Wido Sari, S.Si., M.Biotech.
P.2337
Elisabeth Desiana Mayasari, S.Psi., M.A.
P.2339
Agnes Herlina Dwi Hadiyanti, M.T., M.Sc.
P.2341
Christiyanti Aprinastuti, S.Si., M.Pd.
P.2342
Laurensia Aptik Evanjeli, S.Psi., M.A.
P.2340
Brigitta Erlita Tri Anggadewi, S.Psi., M.Psi.
P.2381
Irine Kurniastuti, S.Psi., M.Psi.
P.2375
Apri Damai Sagita Krissandi, S.S., M.Pd.
P.2225
Maria Melani Ika Susanti, S.Pd
Data diatas merupakan data NIP dan nama Dosen yang mengajar di PGSD Universitas Sanata Dharma.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
Daftar kode mata kuliah, nama mata kuliah, SKS dan JP per Semester di PGSD : Tabel 3. 12 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 1
No
Kode
Matakuliah
SKS
JP
1
USD 120
Pendidikan Agama
2
2
2
PDW 2106
Logika
2
2
PDW 2107
Pendidikan Keterampilan Menulis Indah
2
2
3
dan Kerajinan Tangan
4
PDW 2119
Perkembangan dan Belajar Peserta Didik
2
2
5
PDW 2122
Bahasa dan Sastra Indonesia
2
2
6
PDW 2123
IPA Biologi
3
3
7
PDW 2124
IPA Fisika
3
3
8
PDW 2125
Matematika 1
3
3
9
PDW 2126
Bahasa Inggris 1
2
2
10
PDW 2155
Keterampilan Menulis Ilmiah
2
2
11
PDW 2127
Kursus Mahir Dasar Pramuka
0
0
0
0
0
0
12 13
Pelatihan
Pengembangan
Kepribadian
Mahasiswa 1 (PPKM 1) English Club 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
54
Tabel 3. 13 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 2
No
Kode
Matakuliah
SKS
JP
1
USD121/122 Teologi Moral/Filsafat Moral
2
2
2
PDW 2208
Pendidikan Seni Rupa
2
2
3
PDW 2217
Landasan Pendidikan
3
2
4
PDW 2218
Bimbingan dan Konseling
2
2
5
PDW 2228
Praktikum IPA Biologi
2*
4
6
PDW 2229
Praktikum IPA Fisika
2*
4
7
PDW 2230
Matematika 2
3
3
8
PDW 2231
Keterampilan Bahasa Indonesia
3
3
9
PDW 2232
Bahasa Inggris 2
2
2
10
PDW 2233
Bimbingan Pramuka
1
1
Pelatihan Pengenmbangan Kepribadian
0
0
0
0
11 12
Mahasiswa 2 (PPKM 2) English Club 2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
Tabel 3. 14 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 3
No
Kode
Matakuliah
SKS
JP
1
USD 123
Pendidikan Pancasila
2
2
2
PDW 2319
Perkembangan dan Belajar Peserta Didik 2
2
2
3
PDW 2334
PKn
2
2
4
PDW 2335
IPS
3
3
5
PDW 2336
Permainan Anak
2
2
6
PDW 2337
Bimbingan Belajar 1
1
1
7
PDW 2343
Pendidikan IPA
3
3
8
PDW 2344
Pendidikan Matematika 1
3
3
9
PDW 2345
Pendidikan Bahasa dan Sasatra Indonesia 1
3
3
10
PDW 2356
Statistik Pendidikan
2
2
English Club 2
0
0
11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
Tabel 3. 15 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 4
SKS
JP
Pendidikan Religiositas Anak
2
2
PDW 2420
Pendidikan Anak Berkebutuhan Khusus
2
2
3
PDW 2438
Bimbingan Belajar 2
1
1
4
PDW 2446
Pendidikan PKn
2
2
5
PDW 2447
Pendidikan IPS
3
3
6
PDW 2448
Pendidikan Matematika 2
3
3
7
PDW 2449
Pendidikan Bahasa dan Sasatra Indonesia 2
3
3
8
PDW 2450
Evaluasi Pembelajaran
3
3
9
PDW 2451
Media Pembelajaran Berbasis ICT
3
3
English Club 3
0
0
No
Kode
1
PDW 2409
2
10
Matakuliah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
Tabel 3. 16 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 5
No
Kode
Matakuliah
SKS
JP
1
USD 224
Pendidikan Kewarganegaraan/Kewiraan
2
2
2
PDW 2510
Kesehatan Sekolah
2
2
PDW 2539
Program Pengakraban dengan Lingkungan
1
1
3
1
4
PDP 25x1
Matakuliah Pilihan 1
3
3
5
PDP 25x3
Matakuliah Pilihan 3
2
2
6
PDW 2552
Pembelajaran Terpadu
3
3
PDW 2553
Pengembangan Kurikulum dan
3
3
7
Pembelajaran
8
PDW 2554
Manajemen Kelas
2
2
9
PDW 2557
Metode Penelitian Pendidikan
3
3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Tabel 3. 17 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 6
SKS
JP
Pendidikan Jasmani
2
2
PDW 2612
Pendidikan Seni Musik
2
2
3
PDW 2613
Pendidikan Seni Tari
2
2
4
PDW 2614
Pendidikan Seni Tari
2
2
5
PDW 2615
Pendidikan Seni Drama
2
2
6
PDW 2621
Pendidikan Bahasa Jawa/Budaya Jawa
2
2
7
PDW 2640
Pengajaran Mikro
2*
4
PDW 2641
Program Pengakraban dengan Lingkungan
1
1
No
Kode
1
PDW 2611
2
8
Matakuliah
2
9
PDP 26x2
Matakuliah Pilihan 2
2
2
10
PDP 26x4
Matakuliah Pilihan 4
2
2
11
PDW 2658
Penelitian Tindakan Kelas
3
3
Tabel 3. 18 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 7
No
Kode
Matakuliah
SKS
JP
1
USD 325
Filsafat Ilmu
2
2
2
PDW 2742
PPL/PKM
3
-
3
PDW 2759
Seminar Pendidikan**
2
-
4
PDW 2760
Tugas Akhir Skripsi
6
-
5
PDW 2761
Tugas Akhir Non Skripsi**
4
-
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
Tabel 3. 19 Tabel Data Matakuliah, Nama Matakuliah, SKS dan JP Semester 8
SKS
JP
Tugas Akhir Skripsi (lanjutan)
6***
-
PDW 2863
Tugas Akhir Non Skripsi (lanjutan)
4***
-
PDW 2864
Seminar Pendidikan (lanjutan)
2***
-
No
Kode
1
PDW 2862
2 3
Matakuliah
= Matakuliah praktikum * Praktikum IPA Biologi, Praktikum IPA Fisika, dan Pengajaran Mikro berbobot masing-masing 2 sks dengan 4 JP ** Tugas akhir melalui jalur non skripsi *** Tugas akhir skripsi atau non skripsi pada semester genap
Data diatas merupakan data kode matakuliah, nama matakuliah, SKS dan JP di PGSD Universitas Sanata Dharma. Setiap 1 sks memiliki 1 jam pelajaran, kecuali matakuliah praktikum. 1 sks pada matakuliah praktikum memiliki 2 jam pelajaran.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Data ruang kelas yang digunakan mengajar : Tabel 3. 20 Tabel Ruang Kelas
No
No Ruang
Nama Ruang
Fungsi Ruang
1
11
I PGSD 1
Ruang Teori
2
12
I PGSD 2
Ruang Teori
3
13
I PGSD 3/Lab IPS/Pkn
Ruang Teori/Praktikum
4
21
II PGSD 1/ Lab Matematika
Ruang Teori/Praktikum
5
22
II PGSD 2/ Lab Matematika
Ruang Teori/Praktikum
6
23
II PGSD 3
Ruang Teori
7
24
II PGSD 4 / Lab Bahasa
Ruang Teori/Praktikum
8
Xav
Xaverius
Ruang Teori
9
300
Lt. 3 depan Xaverius
Ruang Teori
10
L.Lis
L4. 4 Pojok
Ruang Praktikum
11
401
Lt. 4
Ruang Teori
12
402
Lt. 4
Ruang Teori
13
L.Sbk
Lab. SBK
Ruang Praktikum
Data diatas merupakan data Ruang kelas di PGSD Universitas Sanata Dharma.Setiap ruang kelas teori memiliki kapasitas bangku sebanyak 50 kursi, sedangkan ruang praktikum memiliki kapasitas bangku sebanyak 30 kursi.Karena terbatasnya ruangan dan jadwal perkuliahan yang padat membuat adanya kelas teori yang digunakan sebagai kelas praktikum.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
3.5.Perancangan Sistem INPUT DATA KULIAH
DATABASE
PARTICLE SWARM OPTIMIZATION
PENJADWALAN MATA KULIAH
Gambar 3. 2 Konfigurasi Sistem
Sistem penjadwalan ini nantinya hanya dapat digunakan oleh petugas , yang bertugas dalam penyusunan sebuah jadwal mata kuliah di PGSD jadwal dibuat dengan ketentuan : 1. Tidak ada bentrok mahasiswa, yaitu setiap mahasiswa hanya dapat mengikuti satu mata kuliah dalam hari dan jam yang sama. 2. Tidak ada bentrok dosen, yaitu setiap dosenhanya bisa mengajar di satu kelas pada hari dan jam yang sama. 3. Setiap dosen hanya bisa mengajar pada suatukelas sebanyak satu kali pada hari yang sama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
3.5.1 Diagram Use Case Lihat Mata Kuliah
<>
Lihat Ruang Kelas
<<extend>> <<extend>>
Input Mata Kuliah Edit Mata Kuliah <<extend>>
<>
Input Ruang Kelas
Edit Ruang Kelas
<<extend>>
Hapus Mata Kuliah Admin Lihat Dosen
<>
<>
<>
<<extend>>
Hapus Ruang Kelas
Input Dosen
Edit Dosen
Proses Penjadwalan Kuliah dgn PSO
<<extend>> Hapus Dosen <> <<extend>> Buat Jadwal Mata Kuliah
<<extend>> Help Lihat Jadwal
Gambar 3. 3 Use Case Diagram
3.5.1.1Tabel Penjelasan
Use Case Buat Jadwal Mata Kuliah
Keterangan Terdapat satu halaman untuk membuat jadwal kuliah, yaitu dengan
memasukkan
data
sesuai dengan yang diperlukan dari data dosen, kelas, dan mata kuliah.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Lihat Jadwal
63
digunakan untuk menampilkan Jadwal Mata Kuliah yang sudah dibuat.
Input Mata Kuliah
Digunakan untuk memasukkan data mata kuliah.
Edit Mata Kuliah
Digunakan
untuk
meng-edit
data mata kuliah yang ingin diubah sesuai pilihan. Hapus Mata Kuliah
Digunakan untuk menghapus data mata kuliah yang pernah dibuat.
Lihat Mata Kuliah
Digunakan untuk menampilkan semua data mata kuliah yang sudah pernah dibuat.
InputRuang Kelas
Digunakan untuk memasukkan data kelas.
Edit Ruang Kelas
Digunakan
untuk
meng-edit
data kelas yang ingin diubah sesuai pilihan. Hapus Ruang Kelas
Digunakan untuk menghapus data kelas yang pernah dibuat.
Lihat Ruang Kelas
Digunakan untuk menampilkan semua data kelas yang sudah pernah dibuat.
Input Dosen
Digunakan untuk memasukkan data dosen.
Edit Dosen
Digunakan
untuk
meng-edit
data dosen yang ingin diubah sesuai pilihan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Hapus Dosen
64
Digunakan untuk menghapus data dosen yang pernah dibuat.
Lihat Dosen
Digunakan untuk menampilkan semua data dosen yang sudah pernah dibuat.
Help
Digunakan untuk menjelaskan cara penggunaan sistem ini.
3.5.2 Narasi Use Case Nama use case Tambah Mata Kuliah Aktor Admin Diskripsi Admin memasukkan data matakuliah Prakondisi Tampilan Halaman data matakuliah Aksi aktor Reaksi sistem 1. Admin memasukkan data 2. Sistem mengecek matakuliah dan mengklik kelengkapan data yang tombol “simpan”.. dimasukan. Langkah kerja 3. System melakukan penyimpanan data inputan kedalam database matakuliah. 3. Jika data yang diinputkan tidak lengkap, maka Alternate system akan memunculkan pesan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
Edit Mata Kuliah Admin Admin mengedit data matakuliah Tampilan Halaman data matakuliah Aksi aktor Reaksi sistem 2. Sistem akan menampilkan 1. Admin mengklik button Jdialog yang berisi tabel “Tabel matakuliah” matakuliah. 3. Admin memilih dengan cara mengklik matakuliah yang ingin diedit. 5. Admin Mengedit matakuliah dan menekan tombol “Ubah”.
Alternate
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
65
4. Sistem akan menampilkan data ke form “Tampilan data matakuliah” 6. System menyimpan data yang sudah di edit kedalam database matakuliah. 5. Jika admin mengklik tombol “Batal”. sehingga sistem akan menghapus isi dari tampilan form “Tampilan data matakuliah”. 6. Jika data yang diinput tidak lengkap, system akan memunculkan pesan.
Hapus Mata Kuliah Admin Admin menghapus data matakuliah Tampilan Halaman data matakuliah Aksi aktor Reaksi sistem 1. Admin mengklik button 2. Sistem akan menampilkan “Tabel matakuliah” Jdialog yang berisi tabel matakuliah. 3. Admin memilih dengan cara mengklik matakuliah 4. Sistem akan menampilkan yang ingin di hapus.. data ke form “Tampilan data matakuliah” 5. Admin menekan tombol “Hapus”.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
6. System akan menghapus data matakuliah tersebut dari database matakuliah.
Alternate
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
Lihat Mata Kuliah Admin Admin melihat data matakuliah Mengaktifkan aplikasi Aksi aktor Reaksi sistem 2. Sistem akan menampilkan 1. Mengklik tombol “Tabel Jdialog yang berisi tabel matakuliah”. matakuliah.
Alternate
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
Alternate
Tambah Dosen Admin Admin memasukkan data Dosen Tampilan Halaman Deson Aksi aktor Reaksi sistem 2. Sistem mengecek kelengkapan data yang 1. Admin memasukkan data dimasukan. dosen dan mengklik 3. System melakukan tombol “simpan”.. penyimpanan data inputan kedalam database dosen. 3. Jika data yang diinputkan tidak lengkap, maka system akan memunculkan pesan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
Edit Dosen Admin Admin mengedit data Dosen Tampilan Halaman Dosen Aksi actor 1. Admin memilih dengan cara mengklik dosen yang ingin diedit. 3. Admin Mengedit dosen dan menekan tombol “Ubah”.
Alternate
67
Reaksi sistem 2. Sistem akan menampilkan data ke form “Tampilan data dosen” 4. System menyimpan data yang sudah di edit kedalam database dosen. 3. Jika admin mengklik tombol “Batal”. sehingga sistem akan menghapus isi dari tampilan form “Tampilan data Dosen”. 4. Jika data yang diinput tidak lengkap, system akan memunculkan pesan.
Nama use case
Hapus Dosen
Aktor
Admin
Diskripsi
Admin menghapus data Dosen
Prakondisi
Tampilan Halaman Dosen
Langkah kerja
Aksi actor
Reaksi sistem
1. Admin memilih dengan cara mengklik dosen yang ingin dihapus.
2. Sistem akan menampilkan data ke form “Tampilan data dosen”
3. Admin menekan tombol “Hapus”.
4. System akan menghapus data dosen tersebut dari database dosen.
Alternate
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nama use case
Lihat Dosen
Aktor
Admin
Diskripsi
Admin melihat data Dosen
Prakondisi
Tampilan Halaman Dosen
Langkah kerja
Aksi actor 1. Memilih tombol “Data Dosen”
68
Reaksi sistem 2. Sistem akan menampilkan tabel data Dosen.
Alternate
Nama use case
Tambah Ruang
Aktor
Admin
Diskripsi
Admin memasukkan data Ruang
Prakondisi
Tampilan Halaman data Ruang
Langkah kerja
Aksi actor
Reaksi sistem
1. Admin memasukkan data ruang dan mengklik tombol “simpan”.
2. Sistem mengecek kelengkapan data yang dimasukan.
Alternate
3. System melakukan penyimpanan data inputan kedalam database ruang. 3. Jika data yang diinputkan tidak lengkap, maka system akan memunculkan pesan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
Nama use case
Edit Ruang
Aktor
Admin
Diskripsi
Admin mengedit data Ruang
Prakondisi
Tampilan Halaman data Ruang
Langkah kerja
Aksi actor
Reaksi sistem
1. Admin memilih dengan cara mengklik ruang yang ingin diedit.
2. Sistem akan menampilkan data ke form “Tampilan data ruang”
3. Admin Mengedit ruang dan menekan tombol “Ubah”.
4. System menyimpan data yang sudah di edit kedalam database ruang. 3. Jika admin mengklik tombol “Batal”. sehingga sistem akan menghapus isi dari tampilan form “Tampilan data Ruang”. 4. Jika data yang diinput tidak lengkap, system akan memunculkan pesan.
Alternate
Nama use case
Hapus Ruang
Aktor
Admin
Diskripsi
Admin menghapus data Ruang
Prakondisi
Tampilan Halaman data Ruang
Langkah kerja
Aksi actor
Reaksi sistem
1. Admin memilih dengan cara mengklik dosen yang ingin dihapus.
2. Sistem akan menampilkan data ke form “Tampilan data ruang”
3. Admin menekan tombol “Hapus”.
4. System akan menghapus data dosen tersebut dari database ruang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nama use case
Lihat Ruang
Aktor
Admin
Diskripsi
Admin melihat data Ruang
Prakondisi
Tampilan Halaman data Ruang
Langkah kerja
Aksi actor 1. Memilih tombol “Data Ruang”
70
Reaksi sistem 1. Sistem akan menampilkan tabel data Ruang.
Alternate
Nama use case Aktor Diskripsi Prakondisi
Langkah kerja
Buat jadwal Kuliah Admin Admin membuat jadwal perkuliahan 1 semester Tampilan Halaman data Kelas Matakuliah Aksi actor Reaksi sistem 1. Admin mengklik tombol 2. Sistem akan menampilkan “Data Kelas tampilan halaman Matakuliah”. Semester (Ganjil/Genap). 4. Sistem akan menampilkan halaman tabel data 3. Admin memilih semester matakuliah semester 1 jika (Gasal/Genap). ganjil, semester 2 jika genap. 5. Admin memilih 6. System akan matakuliah yang akan menampilkan tabel data digunakan pada semester matakuliah yang telah 1 atau 2 dan memilih dibagi kedalam beberapa jumlah kelas yang akan di kelas (Tabel data ajarkan. Lalu Admin matakuliah yang mengklik tombol direncanakan). “Tambah” 7. Admin mengklik kanan tabel data matakuliah 8. Sistem akan menampilkan yang telah direncanakan, Jdialog tabel Dosen. lalu mengklik “Masukkan dosen” untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
menambahkan dosen pengampu.
9. Admin memilih dosen yang akan mengampu kelas matakuliah tersebut pada Semester 1 atau 2. 11. Admin memilih matakuliah yang akan digunakan pada semester 3 atau 4 dan memilih jumlah kelas yang akan di ajarkan. Lalu Admin mengklik tombol “Tambah”
10. Sistem akan mengupdate data dosen di tabel data matakuliah yang telah direnanakan. Setelah itu sistem akan menampilkan data matakuliah di Semester 3 atau 4.
12. System akan menampilkan tabel data matakuliah yang telah dibagi kedalam beberapa kelas (Tabel data matakuliah yang direncanakan).
13. Admin mengklik kanan tabel data matakuliah yang telah direncanakan, 14. Sistem akan menampilkan lalu mengklik “Masukkan Jdialog tabel Dosen. dosen” untuk menambahkan dosen pengampu. 16. Sistem akan mengupdate data dosen di tabel data 15. Admin memilih dosen matakuliah yang telah yang akan mengampu direnanakan. Setelah itu kelas matakuliah tersebut sistem akan menampilkan pada Semester 3 atau 4. data matakuliah di Semester 5 atau 6. 17. Admin memilih matakuliah yang akan digunakan pada semester 5 atau 6 dan memilih jumlah kelas yang akan di ajarkan. Lalu Admin mengklik tombol “Tambah”
18. System akan menampilkan tabel data matakuliah yang telah dibagi kedalam beberapa kelas (Tabel data matakuliah yang direncanakan). 20. Sistem akan menampilkan Jdialog tabel Dosen.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
19. Admin mengklik kanan tabel data matakuliah yang telah direncanakan, lalu mengklik “Masukkan dosen” untuk menambahkan dosen pengampu.
21. Admin memilih dosen yang akan mengampu kelas matakuliah tersebut pada Semester 5 atau 6.
23. Admin memilih matakuliah yang akan digunakan pada semester 7 atau 8 dan memilih jumlah kelas yang akan di ajarkan. Lalu Admin mengklik tombol “Tambah”
22. Sistem akan mengupdate data dosen di tabel data matakuliah yang telah direnanakan. Setelah itu sistem akan menampilkan data matakuliah di Semester 7 atau 8.
24. System akan menampilkan tabel data matakuliah yang telah dibagi kedalam beberapa kelas (Tabel data matakuliah yang direncanakan).
25. Admin mengklik kanan tabel data matakuliah yang telah direncanakan, 26. Sistem akan menampilkan lalu mengklik “Masukkan Jdialog tabel Dosen. dosen” untuk menambahkan dosen pengampu. 28. Sistem akan mengupdate data dosen di tabel data 27. Admin memilih dosen matakuliah yang telah yang akan mengampu direnanakan. Setelah itu kelas matakuliah tersebut sistem akan menampilkan pada Semester 7 atau 8. tampilan data permintaan hari,jam dan ruang jadwal matakuliah. 29. Admin mengisi jadwal permintaan
32. Admin mengklik tombol “Buat jadwal”.
30. Sistem akan menyimpan data permintaan ke dalam database tabel permintaan. 31. Sistem akan menampilkan tampilan pembuatan jadwal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
33. Sistem akan memproses pembuatan jadwal kelas. setelah selesai, sistem akan menampilkan tampilan halaman “Lihat Jadwal” dan menyimpan hasil jadwal ke dalam database. Alternate
3.5.3 Diagram Activity untuk setiap use case 1. Case : Tambah matakuliah. Aktor Sistem
Sistem mengecek data
Masukkan data matakuliah dan klik “SIMPAN”
Tidak lengkap
lengkap
Sistem menyimpan data matakuliah ke dalam database
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Case : Edit matakuliah Aktor
Klik tombol “Tabel matakuliah”
Sistem
Sistem menampilkan JdDialog
Klik tabel matakuliah yang ingin di edit
Menampilkan pada form Matakuliah Mengedit data matakuliah dan menekan tombol Ubah
Sistem menyimpan data ke database matakuliah ( Menu utama)
74
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Case : Hapus Mata kuliah Aktor Sistem
Klik tombol “Tabel matakuliah”
Sistem menampilkan JdDialog
Klik tabel matakuliah yang ingin di edit
Menampilkan pada form Matakuliah
Menekan tombol Hapus
Sistem menyimpan data ke database matakuliah ( Menu utama)
75
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Case : Lihat Mata kuliah Aktor
Sistem
Klik tombol “Tabel matakuliah”
5. Case : Tambah Dosen Aktor
Sistem menampilkan Jdialog data matakuliah
Sistem
Sistem mengecek data
Masukkan data dosen dan klik “SIMPAN”
Tidak lengkap
lengkap
Sistem menyimpan data dosen ke dalam database
76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6. Case : Edit Dosen Aktor
Klik tabel dosen yang ingin di edit
Sistem
Menampilkan pada form Dosen
Mengedit data dosen dan menekan tombol Ubah
Sistem menyimpan data ke database matakuliah ( Menu utama)
77
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7. Case : Hapus Dosen Aktor
Sistem
Klik tabel dosen yang ingin di hapus
Menampilkan pada form dosen
menekan tombol Hapus
Sistem menyimpan data ke database matakuliah ( Menu utama)
8. Case : Lihat Data Dosen Aktor
Klik tampilan “Data Dosen”
Sistem
Sistem menampilkan tabel data dosen
78
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9. Case : Tambah Ruang Aktor
Sistem
Sistem mengecek data
Masukkan data ruang dan klik “SIMPAN”
Tidak lengkap
lengkap Sistem menyimpan data ruang ke dalam database
79
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10. Case : Edit Ruang Aktor
Sistem
Klik tabel ruang yang ingin di edit
Menampilkan pada form Ruang
Mengedit data Ruang dan menekan tombol Ubah Sistem menyimpan data ke database matakuliah ( Menu utama)
11. Case : Hapus Ruang Aktor
Klik tabel ruang yang ingin di hapus
Sistem
Menampilkan pada form ruang
menekan tombol Hapus
Sistem menyimpan data ke database matakuliah ( Menu utama)
80
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12. Case : Lihat Ruang Aktor
Sistem
Klik tampilan “Data Ruang”
Sistem menampilkan tabel data Ruang
13. Case : Buat Jadwal Aktor
Sistem
Klik “Data Kelas Matakuliah”
Memilih semester
Memilih matakuliah yang digunakan disemester 1 atau 2 dan memilih jumlah kelas. klik tombol “Tambah”
klik kanan pada tabel yang direncanakan, lalu klik “Masukkan dosen”
Sistem akan menampilkan halaman untuk mengisi semester
Sistem menampilkan halaman tabel matakuliah semester 1 atau 2
Sistem menampilkan tabel data matakuliah yang direncanakan dengan belum ada dosen pengampu
Sistem menampilkan JDialog tabel Dosen
81
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Memasukkan dosen pengampu semester 1 atau 2
Memilih matakuliah yang digunakan disemester 3atau 4 dan memilih jumlah kelas. klik tombol “Tambah”
klik kanan pada tabel yang direncanakan, lalu klik “Masukkan dosen”
Memasukkan dosen pengampu semester 3 atau 4
Memilih matakuliah yang digunakan disemester 5 atau 6 dan memilih jumlah kelas. klik tombol “Tambah”
Sistem mengupdate dosen pengampu di tabel matakuliah yang direncanakan. Sistem menampilkan data matakuliah Semester 3 atau 4
Sistem menampilkan tabel data matakuliah yang direncanakan dengan belum ada dosen pengampu
Sistem menampilkan JDialog tabel Dosen
Sistem mengupdate dosen pengampu di tabel matakuliah yang direncanakan. Sistem menampilkan data matakuliah Semester 5 atau 6
82
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Sistem menampilkan tabel data matakuliah yang direncanakan dengan belum ada dosen pengampu klik kanan pada tabel yang direncanakan, lalu klik “Masukkan dosen”
Sistem menampilkan JDialog tabel Dosen
Memasukkan dosen pengampu semester 5 atau 6
Memilih matakuliah yang digunakan disemester 7 atau 8 dan memilih jumlah kelas. klik tombol “Tambah”
klik kanan pada tabel yang direncanakan, lalu klik “Masukkan dosen”
Sistem mengupdate dosen pengampu di tabel matakuliah yang direncanakan. Sistem menampilkan data matakuliah Semester 7 atau 8
Sistem menampilkan tabel data matakuliah yang direncanakan dengan belum ada dosen pengampu
Sistem menampilkan JDialog tabel Dosen
Memasukkan dosen pengampu semester 5 atau 6 Sistem mengupdate dosen pengampu di tabel matakuliah yang direncanakan. Sistem menampilkan data matakuliah permintaan
83
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Memasukkan data permintaan Menyimpaan data permintaan kedalam database
Menampilkan tampilan pembuatan Jadwal Mengklik tombol “Buat Jadwal”
Sistem melakukan pembuatan jadwal 1 semester dan menyimpan ke dalam database.
14. Case : Lihat Jadwal Kuliah Aktor Sistem
Klik tombol “Jadwal”
Sistem menampilkan jadwal kuliah
84
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15. Case : Help Aktor
Sistem
Klik Tombol “Help”
Menampilkan menu help
85
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
86
3.5.4 Model Kelas Analisis
Tambah Matakuliah
Matakuliah Kontrol
Matakuliah
EditMatakuliah
Hapus Matakuliah Dosen Kontrol
Dosen
Ruang Kontrol
Ruang Kelas
Lihat Matakuliah
Tambah Dosen
Edit Dosen
Hapus Dosen KelasMatkul Kontrol
Kelas matkul
Admin Lihat Dosen
Tambah Ruang
Solusi Kontrol
Solusi
Edit Ruang
Hapus Ruang
Permintaan Kontrol
Permintaan
Lihat Ruang Timeslot Kontrol
Timeslot
Buat Jadwal
SimpanidSolusi Kontrol Lihat Jadwal
SimpanidSolusi
Help Tabrakan Kontrol
Gambar 3. 4 Model Kelas Analisis
Tabrakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.5.5 Diagram Kelas 1. Kelas Hari
2. Kelas Waktu
87
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Kelas Dosen
4. Kelas Ruang Kelas
88
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5. Kelas Matakuliah
6. Kelas KelasMatkul
89
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7. Kelas Timeslot
8. Kelas Solusi
90
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9. Kelas SimpanidSolusi
10. Kelas Tabrakan
91
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11. Kelas Permintaan
92
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12. Kelas PSO
93
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
94
3.6 Perancangan Basis Data 3.6.1 ER Diagram 1..1
1..*
Permintaan
1..1
Ruang kelas 1..1
idRuang (PK) namaRuang jenis
1..1
1..*
1..1
kelasMatkul
idPermintaan (PK) idSolusi idTS idRuang idKelas idDosen idMK
1..1
1..1
idKelas (PK) namaKelas idDosen idMK
1..1 1..*
1..1
1..* 1..1
1..* 1..*
1..1
Dosen
Solusi
mataKuliah
idDosen (PK) nipDosen namaDosen status sks
idSolusi (PK) idKelas idTS idRuang
idMK (PK) namaMK sks semester JP Jenis kodeMK status
1..1
1..*
1..*
simpanidSolusi 1..1
idSolusi (PK) idTS idRuang
Tabrakan
1..* 1..*
1..1
idSolusi (PK) idKelas idTS idRuang status
1..1 1..*
TimeSlot idTS (PK) idWaktu idHari 1..*
1..1
1..1
1..* 1..1
waktu
Hari
idWaktu (PK) jam
idHari (PK) namaHari
Gambar 3. 5 ER Diagram
1..1
1..1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
95
3.6.2 Hubungan Relasi Antar Tabel 1..1
1..*
Permintaan
1..1
Ruang kelas 1..1
idRuang (PK) namaRuang jenis
1..1
1..*
1..1
kelasMatkul
idPermintaan (PK) idSolusi (FK) idTS (FK) idRuang (FK) idKelas (FK) idDosen (FK) idMK (FK)
1..1
1..1
idKelas (PK) namaKelas idDosen (FK) idMK (FK)
1..1 1..*
1..1
1..* 1..1
1..* 1..*
Solusi
mataKuliah
idSolusi (PK) idKelas (FK) idTS (FK) idRuang (FK)
idMK (PK) namaMK sks semester JP Jenis kodeMK status
Dosen idDosen (PK) nipDosen namaDosen status sks
1..1
1..1
1..*
1..*
simpanidSolusi 1..1
idSolusi idTS (FK) idRuang (FK)
Tabrakan idSolusi (PK) idKelas (FK) idTS (FK) idRuang (FK) status
1..* 1..*
1..1
1..1 1..*
TimeSlot idTS (PK) idWaktu (FK) idHari (FK) 1..1
1..*
1..1
1..* 1..1
waktu
Hari
idWaktu (PK) jam
idHari (PK) namaHari
Gambar 3. 6 Hubungan relasi antar table
1..1
1..1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
96
3.6.3 Model Fisikal (Struktur Tabel dalam DBMS) 1. Tabel Hari Atribut Tipe data
Panjang
idHari
Varchar2
10
namaHari
Varchar2
20
2. Tabel Waktu Atribut Tipe data
Panjang
idWaktu
Varchar2
50
jam
Varchar2
50
3. Tabel Time_slot Atribut Tipe data
Panjang
idTS
Varchar2
50
idWaktu
Varchar2
50
idHari
Varchar2
50
Primary key
Primary key
Primary key
Not null
Not null
Not null
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Tabel Dosen Atribut Tipe data
Panjang
idDosen
Varchar2
100
nipDosen
Varchar2
100
namaDosen
Varchar2
100
status
Varchar2
100
Sks
Number
50
5. Tabel Mata_kuliah Atribut Tipe data
Panjang
idMK
Varchar2
50
namaMK
Varchar2
10
sks
Varchar2
100
semester
Number
10
JP
Number
10
jenis
Number
10
kodeMK
Varchar2
50
status
Varchar2
10
Primary key
Primary key
97
Not null
Not null
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6. Tabel Ruang_kelas Atribut Tipe data
Panjang
idRuang
Varchar2
50
namaRuang
Varchar2
50
jenis
Varchar2
50
7. Tabel Kelas_makul Atribut Tipe data
Panjang
Primary key
Primary
Foreign
Not
key
Key
null
Varchar2
50
namaKelas
Varchar2
5
idDosen
Varchar2
50
idMK
Varchar2
50
Panjang
Not null
idKelas
8. Tabel Solusi Atribut Tipe data
98
Primary Foreign
Not
key
null
Key
idSolusi
Int
10
idKelas
Varchar2
50
idTS
Varchar2
50
idRuang
Varchar2
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9. Tabel Permintaan Atribut Tipe data
Panjang
99
Primary Foreign
Not
key
null
Key
idPermintaan
Int
10
idSolusi
Varchar2
10
idTS
Varchar2
10
idRuang
Varchar2
10
idKelas
Varchar2
10
idDosen
Varchar2
10
idMK
Varchar2
10
10. Tabel Tabrakan Atribut
Tipe data
Panjang
Primary
Foreign
Not
key
Key
null
idSolusi
Int
10
idKelas
Varchar2
50
idTS
Varchar2
50
idRuang
Varchar2
50
Status
Varchar2
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11. Tabel SimpanidSolusi Atribut Tipe data Panjang
Primary Foreign key
100
Not null
Key
idSolusi
Int
10
IdTS
Varchar2
50
idRuang
Varchar2
50
3.6.4 Desain Model Interaksi Antar Kelas Interaksi antar kelas merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program secara logika. Berikut ini adalah langkah-langkah Interaksi antar kelas pada bagian aplikasi penjadwalan yang dibuat : 1. Tambah Matakuliah
<>
:viewMatakuliah
Admin
Tambah Matakuiah
<> :MataKuliahKont rol
tambahMatakuliah (Matakuliah)
:mataKuliah
tambahMatakuliah(Matakulia h) Data Matakuliah
Data tidak lengkap
Data Matakuliah ditambah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Edit Matakuliah
<>
<> : MataKuliahKontrol
: viewMatakuliah
:mataKuliah
Admin
updateMatakuiah
updateMatakuiah (Matakuliah)
updateMatakuliah (Matakuliah) Data Matakuliah
Data tidak lengkap
Data Matakuliah ter-Update
3. Hapus Matakuliah <>
: viewMatakuliah
<> : MataKuliahKontrol
:mataKuliah
Admin
HapusMatakuiah
hapusMatakuiah (idMK)
hapusMatakuliah (idMK)
Data Matakuliah Kodematkul tidak ada
Data Matakuliah terhapus
101
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Lihat Matakuliah <>
: viewMatakuliah
<> : MataKuliahKontrol
:mataKuliah
Admin
Lihat Matakuliah
getAllMataKuliah ()
getAllMataKuliah ()
Data Matakuliah Data masih Kosong
Data Matakuliah
5. Tambah Dosen
<> :View Dosen
<> :DosenKontrol
:Dosen
Admin
Tambah Dosen
tambahDosen(Dosen)
tambahDosen(Dosen)
Data Dosen Data tidak lengkap
Data Dosen ditambah
102
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6. Edit Dosen
<> : View Dosen
<> : DosenKontrol
:Dosen
Admin
Edit Dosen
updateDosen(Dosen)
updateDosen(Dosen)
Data Dosen Data tidak lengkap
Data Dosen ter-Update
7. Hapus Dosen <> :ViewDosen
<> :DosenKontrol
:Dosen
Admin
Hapus Dosen
hapusDosen (idDosen)
hapusDosen(idDosen)
Data Dosen idDosen tidak ada
Data Dosen terhapus
103
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8. Lihat Dosen
<> :ViewDosen
<> :DosenKontrol
:Dosen
Admin
Lihat Dosen
getAllDosen ()
getAllDosen ()
Data Dosen Data masih Kosong
Data Dosen
9. Tambah Ruang
<> :ViewRuang
<> :RuangKelasKontrol
:RuangKelas
Admin
Tambah Ruang Kelas
tambahRuangKelas(Ruang)
tambahRuangKelas(Ruang)
Data Ruang Kelas Data tidak lengkap
Data Ruang Kelas ditambah
104
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10. Edit Ruang
<> :ViewRuang
<> :RuangKelasKontrol
:RuangKelas
Admin
Edit Ruang Kelas
updateRuangKelas(Ruang)
updateRuangKelas(Ruang)
Data Ruang Kelas Data tidak lengkap
Data Ruang ter-Update
11. Hapus Ruang <> :ViewRuang
<> :RuangKelasKontrol
:RuangKelas
Admin
Hapus Ruang Kelas
hapusRuangKelas(idRuang)
hapusRuangKelas(idRuan g) Data Ruang Kelas
KodeRuang tidak ada
Data Ruang terhapus
105
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12. Lihat Ruang
<> :ViewRuang
<> :RuangKelasKontrol
:RuangKelas
Pengguna
Lihat Ruang
getAllKelas()
getAllKelas()
Data Ruang Kelas Data masih Kosong
Data Ruang
106
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
107
13. Buat Jadwal <> Home
<> viewKelas
<> KelasMatkulKontrol
:KelasMatkul
<> Dosen
Klik Data Kelas Matakuliah Masuk ke Form viewKelas
Admin
Memilih Semester Memilih Semester Menampilkan halaman tabel
Input Kelas matakuliah semester 1 atau 2, Klik tombol Tambah tambahKelasMakul(kelasMatkul) tambahKelasMakul(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Klik MasukkanDosen Klik MasukkanDosen
JDialog Dosen InputDosen updateDosen(kelasMatkul) updateDosen(kelasMatkul) updateDosen(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Menampilkan semester 3 atau 4
Input Kelas matakuliah semester 3 atau 4, Klik tombol Tambah tambahKelasMakul(kelasMatkul) tambahKelasMakul(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Klik MasukkanDosen Klik MasukkanDosen
JDialog Dosen
InputDosen updateDosen(kelasMatkul) updateDosen(kelasMatkul) updateDosen(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Menampilkan semester 5 atau 6
Input Kelas matakuliah semester 5 atau 6 Klik tombol Tambah tambahKelasMakul(kelasMatkul) tambahKelasMakul(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Klik MasukkanDosen Klik MasukkanDosen
JDialog Dosen
Input Kelas matakuliah semester 7 atau 8 Klik tombol Tambah tambahKelasMakul(kelasMatkul) tambahKelasMakul(kelasMatkul) Menampilkan pesan
Result KelasMatkul
Klik MasukkanDosen Klik MasukkanDosen
JDialog Dosen
InputDosen updateDosen(kelasMatkul) updateDosen(kelasMatkul) updateDosen(kelasMatkul) Menampilkan pesan
Menampilkan form Permintaan
Result KelasMatkul
:Dosen
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
108
Desain Model permintaan kelas.
<> ViewPilihPermint aan
<> PermintaanKontrol
:Permintaan
<> PSO
<> BuatJadwal
Input Permintaan tambahPermintaan(permintaan) tambahPermintaan(permintaan)
Admin
Result Jadwal MenampilkanPesan
Menampilkan Buat Jadwal
Klik Buat Jadwal PSO Algorithm Simpan Result Jadwal
Menampilkan tampilan Lihat Jadwal
14. Lihat Jadwal
<> :Jadwal
<> :SolusiKontrol
:Solusi
Admin
Lihat Jadwal
getAllJadwal(semester, kelas)
getAllJadwal(semester, kelas) Data Jadwal
Data masih Kosong
Data Jadwal
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15. Help
<> :Home
<> :HelpKontrol
Help.chm
Admin
Klik Help
Help ()
Help ()
Tampilan Menu Help Help
109
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
110
3.7 Desain Antar Muka Dalam merancang sebuah sistem aplikasi tentu memiliki desain antar muka untuk mengetahui informasi-informasi apa saja yang akan terlibat didalamnya.
Dalam rancangan antar muka aplikasi penjadwalan ini
diharapkan mampu memenuhi aspek-aspek, seperti mudah dimengerti dan sederhana. Rancangan yang akan dibuat adalah sebagai berikut : 1. Tampilan Halaman Utama
Logo Home
PENJADWALAN KELAS MATA KULIAH PGSD UNIVERSITAS SANATA DHARMA
Mata Kuliah
Dosen
Ruang
Kelas Mata Kuliah
Jadwal
Help
Gambar 3. 7 Tampilan Menu Utama
Ini adalah halaman utama, terdiri dari 7 tombol utama yaitu untuk menuju ke menu tertentu, maka pengguna dapat memilih salah satu tombol diantara tombol Home, informasi mata kuliah, informasi dosen, informasi ruang, dan informasi Kelas matakuliah, lihat jadwal dan menu Help. Dari setiap tombol, akan mengarahkan pengguna ke tampilan masing-masing menu yang di pilih.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
111
2. Tampilan Mata Kuliah Data Mata Kuliah Kode Mata Kuliah
Jam Pelajaran
Nama Mata Kuliah
Jenis
Sks Semester
Simpan
Batal
Hapus
Tabel Matakuliah
Gambar 3. 8 Menu Matakuliah
Pada Tampilan viewMatakuliah, memiliki 4 tombol, yaitu untuk menyimpan, menghapus isi field, menghapus isi matakuliah, dan melihat tabel matakuliah. Berikut tampilan tabel mata kuliah :
IDMatkul
Nama Matkul
sks
semester
JP
Jenis
Gambar 3. 9 isi Tabel Matakuliah
KodeMatkul
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
112
3. Tampilan Dosen
Data Dosen NIP Dosen Nama Dosen
NIP
Nama
Status
Status
Simpan
Hapus
Batal
Gambar 3. 10 Menu Tampilan Dosen
Pada Tampilan viewDosen, memiliki 3 tombol, yaitu untuk menyimpan, menghapus isi field, dan menghapus isi Dosen. 4. Tampilan Ruang
Data Ruang id Ruang
ID
Nama Ruang
Nama
Jenis
Jenis Ruang
Simpan
Batal
Hapus
Gambar 3. 11 Menu Tampilan Ruang
Pada Tampilan viewRuang, memiliki 3 tombol, yaitu untuk menyimpan, menghapus isi field, dan menghapus isi Ruang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
113
5. Tampilan Lihat Jadwal Jadwal
Mahasiswa
T.A Semester
NO
HARI
Ganjil
JAM
RUANG
Semester
KODEMK
1
NAMAMK
Kelas
KELAS
A
Semster
Pelanggaran
SKS
JP
Dosen
Cetak
Kembali
Gambar 3. 12 Tampilan Lihat Jadwal Mahasiswa
Pada tampilan ini, user dapat melihat jadwal berdasar kan semester dan kelas yang ingin dilihat. Terdapat 3 tombol, tombol pelanggaran digunakan untuk melihat kelas matakuliah yang masih terdapat tabrakan (dosen, ruang, ataupun kelompok kelas), tombol kembali digunakan untuk kembali ke home, dan tombol cetak digunakan untuk mencetak jadwal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Jadwal
Dosen Pelanggaran
Cari berdasarkan nama dosen
NO
114
HARI
JAM
RUANG
KODEMK
NAMAMK
KELAS
Semster
Kembali
SKS
JP
Dosen
Cetak
Gambar 3. 13 Tampilan Lihat Jadwal Dosen
Pada tampilan ini, user dapat melihat jadwal dosen yang mengajar, Terdapat 3 tombol, tombol pelanggaran digunakan untuk melihat kelas matakuliah yang masih terdapat tabrakan (dosen, ruang, ataupun kelompok kelas), tombol kembali digunakan untuk kembali ke home, dan tombol cetak digunakan untuk mencetak jadwal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
115
6. Tampilan Kelas Matakuliah
Gambar 3. 14 Tampilan Kelas Matakuliah
Pada tampilan ini, user dapat memilih matakuliah yang akan di jadwalkan pada semester (Ganjil/genap), Ketika pilihan semester ganjil, maka akan muncul jadwal matakuliah pada semester 1,3,5 dan 7, Jika pilihan semester genap, maka akan muncul jadwal matakuliah pada semester 2,4,6 dan 8. Terdapat 2 tabel, tabel pertama (atas) digunakan untuk melihat jadwal keseluruh matakuliah yang ada pada semester (1 atau 2), Tabel kedua (bawah) digunakan untuk melihat jadwal yang akan di ajarkan pada semester (1 atau 2) yang sudah di bagi menjadi beberapa kelompok kelas. Pada tabel kedua juga digunakan untuk menambah dosen pengampu yang akan mengajar matakuliah tertentu. Terdapat 3 tombol, tombol kembali digunakan untuk kembali ke home, tombok semester sebelum di gunakan untuk memilih matakuliah di semester sebelumnya, tombol
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
116
semester sesudah digunakan untuk memilih matakuliah di semester selanjutnya. 7. Tampilan Permintaan Kelas
Gambar 3. 15 Tampilan Permintaan Kelas
Pada tampilan permintaan, user dapat memasukan kelas matakuliah yang ingin memiliki jam,hari dan ruang tertentu. Terdapat 2 tabel, tabel pertama (atas) merupakan tabel yang berisi jadwal kelas matakuliah yang telah di rencanakan, sedangkan tabel kedua (bawah) merupakan tabel permintaan yang ingin mimiliki jam, hari dan ruang tertentu. Terdapat 2 tombol, tombol kembali digunakan untuk kembali ke tampilan kelas matakuliah, tombol lanjut ke pembuatan jadwal digunakan untuk melanjutkan proses pembuatan jadwal sesuai dengan algoritma Particle Swarm Optimization.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
117
8. Tampilan Buat Jadwal
PROSES PEMBUATAN JADWAL SILAHKAN KLIK BUAT JADWAL UNTUK PEMBUATAN JADWAL Buat Jadwal
Gambar 3. 16 Tampilan Buat Jadwal
Pada tampilan ini, proses pembuatan akan berlangsung, selama pembuatan jadwal, user menunggu hingga pembuatan jadwal selesai dibuat, setelah itu user akan langsung di arahkan ke tampilan Lihat Jadwal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV IMPLEMENTASI DAN ANALISIS SISTEM Dalam bab ini dibahas tentang implementasi dari sistem informasi yang berupa interface dari sistem informasi yang dibuat. Serta analisa hasil dari sistem informasi. 4.1 Implementasi Sistem 4.1.1 Home Home merupakan halaman yang pertama kali ditampilkan. Pada halaman ini terdapat menu-menu, yaitu menu Home, Data Mata Kuliah, Data Dosen, Data Ruang, Data Kelas Matakuliah, dan Jadwal. Home dapat dilihat pada Gambar 4.1.
Gambar 4. 1 Home
118
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
119
4.1.2 Data Mata Kuliah Pada halaman data matakuliah digunakan untuk memasukan nama matakuliah yang ditawarkan pada semester tersebut. Pada halaman ini berisi inputan text field seperti Kode Matakuliah, Nama Matakuliah, jumlah sks, semester, jam pelajaran, dan jenis pelajaran (Teori/praktikum). Terdapat 4 button yang berada pada tampilan tersebut, yaitu Simpan, Batal, Hapus dan Tabel Matakuliah. Pada button Tabel Matakuliah, terdapat JDialog yang berisi tabel Matakuliah yang ditawarkan. Data Mata Kuliah dapat dilihat pada Gambar 4.2. dan Gambar 4.3.
Gambar 4. 2 Data Matakuliah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4. 3 Tabel Data Matakuliah
Kode program yang di gunakan : public static MataKuliahKontrol getMataKuliahKontrol() { MataKuliahKontrol mkKontrol = new MataKuliahKontrol(Koneksi.getKoneksi()); return mkKontrol;
}
public void tambahMataKuliah(mataKuliah mk) throws SQLException { String idMK = mk.getIdMK(); String namaMK = mk.getNamaMK(); int sks = mk.getSks(); int semester = mk.getSemester(); int JP = mk.getJP(); String jenis = mk.getJenis(); String kodeMK = mk.getKodeMK(); String sql = "insert into " + "mata_kuliah(idMK,namaMK,sks,semester,JP,jenis,kodeMK,status)" + "values('" + idMK + "','" + namaMK + "'," + sks + "," + semester + "," + JP + ",'" + jenis + "','" + kodeMK + "','F')"; Statement stat = conn.createStatement(); stat.executeUpdate(sql);}
120
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
121
Tambah matakuliah digunakan untuk memasukkan data mata kuliah ke dalam tabel matakuliah. public void UpdateMataKuliah(mataKuliah mk) throws SQLException { String idMK = mk.getIdMK(); String namaMK = mk.getNamaMK(); int sks = mk.getSks(); int semester = mk.getSemester(); int JP = mk.getJP(); String jenis = mk.getJenis(); String kodeMK = mk.getKodeMK(); String sql = "update mata_kuliah set namaMK = '" + namaMK + "',sks = " + sks + ",semester = " + semester + ",JP = " + JP + ",jenis = '" + jenis + "', kodeMK = '" + kodeMK + "' where idMK = '" + idMK + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
122
Update matakuliah digunakan untuk mengubah nama mata kuliah, sks, semester , jenis, dan kode matakuliah sesuai dengan id matakuliah. public void hapusMataKuliah(mataKuliah mk) throws SQLException { String idMK = mk.getIdMK(); String sql = "delete from mata_kuliah where idMK = '" + idMK + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql);
}
Hapus matakuliah digunakan untuk menghapus data matakuliah yang sesuai dengan id matakuliah yang ingin di hapus. public List<mataKuliah> getAllMataKuliah(String id) throws SQLException { PreparedStatement psmt = null; ResultSet rset = null; conn.setAutoCommit(false); String sql = "select *, substring(idmk,2,4)*1 as urut " + " from mata_kuliah where idMK like 'M%' and namaMK is not null and status = 'F' " + " order by urut asc"; psmt = (PreparedStatement) conn.prepareStatement(sql); rset = psmt.executeQuery(); List<mataKuliah> mk = new ArrayList<mataKuliah>(); while (rset.next()) { mataKuliah mk1 = new mataKuliah(); mk1.setIdMK(rset.getString(1)); mk1.setNamaMK(rset.getString(2));
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
123
mk1.setSks(Integer.parseInt(rset.getString(3))); mk1.setSemester(Integer.parseInt(rset.getString(4))); mk1.setJP(Integer.parseInt(rset.getString(5))); mk1.setJenis(rset.getString(6)); mk1.setKodeMK(rset.getString(7)); mk.add(mk1); } conn.commit(); return mk; } List getAllmatakuliah digunakan untuk menampilkan data seluruh matakuliah ke dalam tabel mata kuliah.
public int idMKotomatis() throws SQLException { ResultSet rset = null; int id = 0; String sql = "select count(idmk) from mata_kuliah where idMK like 'M%' and namaMK is not null"; Statement stat = conn.createStatement(); rset = stat.executeQuery(sql);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
124
while (rset.next()) { id = rset.getInt(1); } conn.close(); return id; } idMKotomatis digunakan untuk membuat id matakuliah secara otomatis menggunakan perintah count. Ketika dalam proses pengisian matakuliah terdapat field data belum di isi, maka akan terdapat pesan error seperti di tunjukkan pada Gambar 4.4
Gambar 4. 4 Pesan cek data belum terisi
4.1.3 Data Dosen Pada Halaman data dosen, digunakan untuk memasukan data kelengkapan tentang Dosen. Terdapat 2 masukan Textfield dan satu pilihan combobox, yaitu masukan NIP dosen dan Nama Dosen serta memilih dosen tersebut merupakan dosen tetap, tidak tetap atau dosen tamu. Terdapat 3 button, yaitu Simpan, batal dan hapus. Button simpan di gunakan untuk menambah dosen, button batal di gunakan untuk membersihkan field yang diisi, dan hapus digunakan untuk menghapus data dosen. Terdapat satu tabel yang berisi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
125
seluruh data dosen yang telah di masukkan. Data Dosen dapat dilihat pada Gambar 4.5.
Gambar 4. 5 Data Dosen
Kode Program yang digunakan : public void tambahDosen(Dosen dosen) throws SQLException { String idDosen = dosen.getIdDosen(); String namaDosen = dosen.getNamaDosen(); String status = dosen.getStatus(); int sks = dosen.getSks(); String sql = "insert into " + "dosen(idDosen,namaDosen,status,jmlsks)" + "values('" + idDosen + "','" + namaDosen + "','" + status + "'," + sks + ")"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
126
Tambah dosen digunakan untuk menambah daftar nama Dosen yang akan digunakan dalam penjadwalan, dengan memasukan parameter idDosen, nama dosen, status dosen dan jumlah sks. public void UpdateDosen(Dosen dosen) throws SQLException { String idDosen = dosen.getIdDosen(); String namaDosen = dosen.getNamaDosen(); String status = dosen.getStatus(); int sks = dosen.getSks(); String sql = "update dosen set namaDosen = '" + namaDosen + "',status = '" + status + "' where idDosen = '" + idDosen + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); } Update dosen digunakan untuk mengubah data dosen yang ingin diubah, dengan mengganti nama dosen dan status dosen.
public void hapusDosen(Dosen dosen) throws SQLException { String idDosen = dosen.getIdDosen(); String sql = "delete from dosen where idDosen = '" + idDosen + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql);} Hapus dosen digunakan untuk menghapus data dosen di dalam tabel dosen.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
127
public List getAllDosenCari(String id) throws SQLException { PreparedStatement psmt = null; ResultSet rset = null; conn.setAutoCommit(false); String sql = "select idDosen, namaDosen, status, jmlsks, substring(idDosen,2,4) * 1 as urut" + "from dosen where namadosen like '%" + id + "%' and status is not null " + "order by urut asc"; psmt = (PreparedStatement) conn.prepareStatement(sql); rset = psmt.executeQuery(); List dsn = new ArrayList(); while (rset.next()) { Dosen ds = new Dosen(); ds.setIdDosen(rset.getString(1)); ds.setNamaDosen(rset.getString(2)); ds.setStatus(rset.getString(3)); ds.setSks(rset.getInt(4)); dsn.add(ds); } conn.commit(); List getAlldosencari digunakan untuk menampilkan seluruh data dari return dsn; dalam tabel dosen, yang memiliki nama sesuai dengan data input yang }
diinginkan oleh user.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
128
public int cekJumlahSKS(String key) throws SQLException { ResultSet rset = null; int id = 0; String sql = "select jmlsks from dosen where idDosen = '" + key + "'"; Statement stat = conn.createStatement(); rset = stat.executeQuery(sql); while (rset.next()) { id = rset.getInt(1); } conn.close(); return id; }
cekjumlahsks digunakan untuk mengecek jumlah sks dosen telah melebihi batas maksimum mengajar atau belum. Total maksimum jumlah sks dosen yaitu sebanyak 20 sks.
public void updateJMLsks(Dosen dosen) throws SQLException { String idDosen = dosen.getIdDosen(); String namaDosen = dosen.getNamaDosen(); String status = dosen.getStatus(); int sks = dosen.getSks(); String sql = "update dosen set jmlsks = " + sks + " where idDosen = '" + idDosen + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
129
Update jumlah sks digunakan untuk menambah maupun mengurangi jumlah sks dosen tertentu.
public int idDosenOtomatis() throws SQLException { ResultSet rset = null; int id = 0; String sql = "select count(idDosen) from dosen where idDosen like 'D%' and namaDosen is not null"; Statement stat = conn.createStatement(); rset = stat.executeQuery(sql); while (rset.next()) { id = rset.getInt(1);} conn.close(); return id;}
idDosenOtomatis digunakan untuk membuat id Dosen secara otomatis tanpa harus menginput data secara manual.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
130
4.1.4 Data Ruang Pada halaman data ruang, digunakan untuk memasukan data ruangan yang dipakai oleh PGSD dalam melakukan perkuliahaan. Terdapat 2 input Textfield dan satu combobo, yaitu Kode Ruang, nama Ruang dan Jenis ruang yang digunakan. . Terdapat 3 button, yaitu Simpan, batal dan hapus. Button simpan di gunakan untuk menambah dosen, button batal di gunakan untuk membersihkan field yang diisi. dan hapus digunakan untuk menghapus data ruang. Terdapat satu tabel yang berisi seluruh data ruang yang telah di masukkan. Data Ruang dapat dilihat pada Gambar 4.6.
Gambar 4. 6 Data Ruang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
131
Kode program yang digunakan : public void tambahRuangKelas(ruangKelas rk) throws SQLException { String idRuang = rk.getIdRuang(); String namaRuang = rk.getNamaRuang(); String jenis = rk.getJenis(); String sql = "insert into ruang_kelas (idRuang,namaRuang,jenis) " + "values('" + idRuang + "','" + namaRuang + "','" + jenis + "')"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); }
Tambah ruang kelas digunakan untuk menambah data ruang yang akan di pakai didalam penjadwalan. public void UpdateRuangKelas(ruangKelas rk) throws SQLException { String idRuang = rk.getIdRuang(); String namaRuang = rk.getNamaRuang(); String jenis = rk.getJenis(); String sql = "update ruang_kelas set namaRuang = '" + namaRuang + "',jenis = '" + jenis + "' where idRuang = '" + idRuang + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); } Update ruang kelas digunakan untuk mengubah data ruang kelas yang ingin di ubah dengan cara mengganti nama ruang dan jenis ruang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
132
public List getAllKelasCari(String id) throws SQLException { PreparedStatement psmt = null; ResultSet rset = null; conn.setAutoCommit(false); String sql = "select * , substring(idRuang,2,4)*1 as urut from ruang_kelas where idRuang like '%" + id + "%' " + "or namaRuang like '%" + id + "%' " + "or jenis like '%" + id + "%'" + " order by urut asc"; psmt = (PreparedStatement) conn.prepareStatement(sql); rset = psmt.executeQuery(); List rk = new ArrayList(); while (rset.next()) { ruangKelas rk1 = new ruangKelas(); rk1.setIdRuang(rset.getString(1)); rk1.setNamaRuang(rset.getString(2)); rk1.setJenis(rset.getString(3)); rk.add(rk1); } conn.commit(); return rk; }
List getAll kelasCari digunakan untuk menampilkan seluruh data ruang yang digunakan sesuai dengan nama ruang atau jenis ruang tersebut.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
133
public void hapusRuangKelas(ruangKelas rk) throws SQLException { String idRuang = rk.getIdRuang(); String sql = "delete from ruang_kelas where idRuang = '" + idRuang + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); } Hapus ruang kelas digunakan untuk menghapus data ruang. public int idRuangOtomatis() throws SQLException { ResultSet rset = null; int id = 0; String sql = "select count(idRuang) from ruang_kelas"; Statement stat= conn.createStatement(); rset = stat.executeQuery(sql); while(rset.next()){ id = rset.getInt(1); } conn.close(); return id; } idRuang otomatis digunakan untuk membuat idRuang secara otomatis, tanpa harus menginput secara manual. Ketika dalam proses pengisian matakuliah terdapat field data belum di isi, maka akan terdapat pesan error seperti di tunjukkan pada Gambar 4.7.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
134
Gambar 4. 7 Pesan cek data belum terisi
4.1.5 Data Kelas Matakuliah Pada halaman data kelas matakuliah, digunakan untuk menjadwalkan matakuliah yang ingin digunakan pada tiap semester, lalu memilih dosen yang akan mengajar pada matakuliah tersebut. Setiap matakuliah memiliki jumlah kelas yang sesuai dengan kelompok kelas di awal masuk. Terdapat combobox semester, jika memilih semester ganjil, maka akan menampilkan data matakuliah pada semester ganjil, dan jika memilih semester genap, maka akan menampilkan data matakuliah pada semester genap. Terdapat 2 tabel, Tabel pertama merupakan table yang berisi mata kuliah, dan table kedua adalah table yang berisi matakuliah yang akan direncanakan di semester tersebut. Untuk memasukan matakuliah ke dalam matakuliah yang direncanakan, dengan cara meng-klik di table tersebut, lalu pilih jumlak kelompok kelas yang akan mendapatkan matakuliah tersebut.
Lalu klik
button tambah untuk
menambahkan matakuliah ke dalam jadwal yang direncanakan. Button kurangi di gunakan untuk mengurangi matakuliah yang telah direncanakan. Untuk memasukan dosen kedalam matakuliah yang direncanakan, meng-klik kanan pada table matakuliah direncanakan, lalu pilih masukkan dosen. Setelah itu, akan muncul JDialog yang berisi data dosen yang akan mengajar matakuliah tersebut. Klik pada dosen tersebut, lalu akan secara otomatis mengisi data dosen
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
135
yang akan mengajar pada kelas matakuliah tersebut. Setelah selesai memasukan data matakuliah pada semester tertentu, maka dapat meng-klik button Semester untuk melanjutkan ke semester berikutnya. Button kembali digunakan untuk kembali ke tampilang Home awal. Data Kelas Matakuliah dapat dilihat pada Gambar 4.8. dan table dosen pada gambar 4.9.
Gambar 4. 8 Data Kelas Matakuliah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
136
Gambar 4. 9 Data Dosen
Kode Program yang digunakan : public void tambahKelasMakul(kelasMatkul kelasMakul) throws SQLException { String idKelas = kelasMakul.getIdKelas(); String namaKelas = kelasMakul.getNamaKelas(); String idDosen = kelasMakul.getIdDosen().getIdDosen(); String idMK = kelasMakul.getIdMK().getIdMK(); String sql = "insert into " + "kelas_makul(idKelas,namaKelas,idDosen,idMK) " + " values('" + idKelas + "','" + namaKelas + "','" + idDosen + "','" + idMK + "')"; Statement stat = conn.createStatement(); stat.executeUpdate(sql);
}
Tambah kelas matakuliah digunakan untuk menambah data kelas matakuliah kedalam tabel kelas makul yang berisi idKelas, nama kelas, idDosen dan id MK.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
137
public void UpdateKelasMakul(kelasMatkul kelasMakul) throws SQLException { String idKelas = kelasMakul.getIdKelas(); String namaKelas = kelasMakul.getNamaKelas(); String idDosen = kelasMakul.getIdDosen().getIdDosen(); String idMK = kelasMakul.getIdMK().getIdMK(); String sql = "update kelas_makul set namaKelas = '" + namaKelas + "',idDosen = '" + idDosen + "',idMK = '" + idMK + "' where idKelas = '" + idKelas + "'"; Statement stat = conn.createStatement(); Update kelas matakuliah digunakan untuk mengubah data kelas stat.executeUpdate(sql); matakuliah yang ingin diubah dengan mengganti namakelas, idDosen, idMK } sesuai dengan idKelas yang ingin diubah.
public void UpdateDosenKelasMakul(kelasMatkul kelasMakul) throws SQLException { String idKelas = kelasMakul.getIdKelas(); String namaKelas = kelasMakul.getNamaKelas(); String idDosen = kelasMakul.getIdDosen().getIdDosen(); String sql = "update kelas_makul set idDosen = '" + idDosen + "' where idKelas = '" + idKelas + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql); }
Update dosen kelas matakuliah digunakan untuk mengganti idDosen yang mengajar pada kelas matakuliah tersebut sesuai dengan idKelas nya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
138
public void hapusKelasMakul(kelasMatkul kelasMakul) throws SQLException { String idKelas = kelasMakul.getIdKelas(); String idMK = kelasMakul.getIdMK().getIdMK(); String sql = "delete from kelas_makul where idMK = '" + idMK + "'"; Statement stat = conn.createStatement(); stat.executeUpdate(sql);
}
Hapus kelas matakuliah digunakan untuk menghapus kelas matakuliah didalam tabel kelas makul. public List getAllKelasMakulCari(String id) throws SQLException { PreparedStatement psmt = null; ResultSet rset = null; conn.setAutoCommit(false); String sql = "select a.idKelas,a.namaKelas,a.idDosen,c.namaDosen,a.idMK, b.semester,b.namaMK,b.kodeMK,b.sks, substring(a.idKelas,3,5) * 1 as URUT " + " from kelas_makul a , mata_kuliah b, dosen c " + " where a.idKelas like '%KM%' and a.idMK = b.idMK and b.semester = '" + id + "' and a.idDosen = c.idDosen order by urut"; psmt = (PreparedStatement) conn.prepareStatement(sql); rset = psmt.executeQuery(); List km = new ArrayList(); while (rset.next()) { kelasMatkul km1 = new kelasMatkul();
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
139
Dosen ds1 = new Dosen(); mataKuliah mk1 = new mataKuliah(); km1.setIdKelas(rset.getString(1)); km1.setNamaKelas(rset.getString(2)); ds1.setIdDosen(rset.getString(3)); ds1.setNamaDosen(rset.getString(4)); km1.setIdDosen(ds1); mk1.setIdMK(rset.getString(5)); mk1.setSemester(rset.getInt(6)); mk1.setNamaMK(rset.getString(7)); mk1.setKodeMK(rset.getString(8)); mk1.setSks(rset.getInt(9)); km1.setIdMK(mk1); km.add(km1); } conn.commit(); return km;
}
List getAllmakulCari digunakan untuk menampilkan data kelas matakuliah yang sesuai dengan semester tertentu.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
140
public int idKelasMatakuliahotomatis() throws SQLException { ResultSet rset = null; int id = 0; String sql = "select count(idkelas) from kelas_makul where idKelas like 'KM%' and namaKelas is not null"; Statement stat = conn.createStatement(); rset = stat.executeQuery(sql); while (rset.next()) { id = rset.getInt(1); } conn.close(); return id; }
idKelas matakuliah otomatis digunakan untuk membuat idKelas matakuliah secara otomatis, tanpa harus menginput secara manual.
4.1.6 Pilih Permintaan Pada halaman permintaan ini, digunakan untuk memasukan data permintaan hari, jam mengajar dan ruang yang diinginkan pada kelas matakuliah tertentu. Terdapat 2 tabel, Tabel pertama merupakan table yang berisi mata kuliah yang sudah direncanakan, dan table kedua adalah table yang berisi matakuliah yang akan menjadi permintaan hari, waktu dan ruang. Mengklik pada table pertama atau mencari nama kelas matakuliah yang ingin di
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
141
jadikan permintaan dengan meng-klik button table kelas mata kuliah, lalu akan muncul JDialog kelas matakuliah, lalu dapat mencarinya kelas mata kuliah di dalam JDialog. Setelah itu, pilih hari, jam dan ruang yang akan di gunakan. Klik button tambah untuk melakukan penyimpanan ke dalam kelas matakuliah permintaan. Jika ada kesalahan hari, waktu dan ruang pada kelas matakuliah tersebut, dapat meng-klik pada table kelas matakuliah permintaan, lalu ubah hari, jam dan ruang yang diinginkan, setelah itu klik update untuk mengganti informasi data tersebut. Jika permintaan tersebut tidak jadi digunakan, maka dapat meng-klik button kurangi untuk menghapus data permintaan. Button bersihkan digunakan untuk membersihkan field yang tidak jadi digunakan. Button kembali digunakan untuk kembali ke data kelas matakuliah perencanaan. Setelah selesai memasukkan data permintaan, meng-klik button buat jadwal untuk melanjutkan proses pembuatan jadwal. Data Permintaan dapat dilihat pada Gambar 4.10. dan table matakuliah direncanakan pada Gambar 4.11.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4. 10 Data Permintaan
Gambar 4. 11 Tabel Matakuliah direncanakan
142
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
143
Kode Program yang digunakan : public void tambahPermintaan(permintaan per) throws SQLException { PreparedStatement statement = null; conn.setAutoCommit(false); int idPermintaan = per.getIdPermintaan(); kelasMatkul KM = per.getIdKelas(); String idKelas = KM.getIdKelas(); timeSlot ts = per.getIdTS(); String idTS = ts.getIdTS(); int idSolusi = per.getIdSolusi().getIdSolusi(); ruangKelas rg = per.getIdRuang(); String idRuang = rg.getIdRuang(); String idmk = per.getIdMk().getIdMK(); String idDosen = per.getIdDosen().getIdDosen(); String sql = "insert into permintaan (idpermintaan,idSolusi,idKelas, idTS, idRuang,idDosen,idMk) values(?,?,?,?,?,?,?)"; statement = conn.prepareStatement(sql); statement.setInt(1, idPermintaan); statement.setInt(2, idSolusi); statement.setString(3, idKelas); statement.setString(4, idTS); statement.setString(5, idRuang); statement.setString(6, idDosen);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
144
statement.setString(7, idmk); statement.executeUpdate(); conn.commit(); } Tambah permintaan digunakan untuk memasukkan data permintaan kelas matakuliah yang meminta hari, ruang dan jam tertentu untuk kelas matakuliah yang diinginkan. Ketika mengklik tombol tambah tetapi belum menentukan jumlah kelasnya, maka akan terdapat pesan error, dan user diminta untuk memasukkan ulang kembali.
Gambar 4. 12 Pesan cek belum terpilih jumlah kelas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public void updatePermintaan(permintaan per) throws SQLException { PreparedStatement statement = null; conn.setAutoCommit(false); int idPermintaan = per.getIdPermintaan(); kelasMatkul KM = per.getIdKelas(); String idKelas = KM.getIdKelas(); timeSlot ts = per.getIdTS(); String idTS = ts.getIdTS(); int idSolusi = per.getIdSolusi().getIdSolusi(); ruangKelas rg = per.getIdRuang(); String idRuang = rg.getIdRuang(); String idmk = per.getIdMk().getIdMK(); String idDosen = per.getIdDosen().getIdDosen(); String sql = "update permintaan set idSolusi =? ,idKelas=?, idTS=? , idRuang = ?, idDosen =?, idMk = ? where idPermintaan=?"; statement = conn.prepareStatement(sql); statement.setInt(7, idPermintaan); statement.setInt(1, idSolusi); statement.setString(2, idKelas); statement.setString(3, idTS); statement.setString(4, idRuang); statement.setString(5, idDosen); statement.setString(6, idmk); statement.executeUpdate(); conn.commit();}
145
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
146
Update permintaan digunakan untuk mengubah data permintaan idSolusi, idKelas, idTS, idRuang, idDosen dan idMK sesuai dengan idPermintaan yang ingin di ubah public void hapusPermintaan(permintaan per) throws SQLException { PreparedStatement statement = null; conn.setAutoCommit(false); int idPermintaan = per.getIdPermintaan(); String sql = "delete from permintaan where idPermintaan = " + idPermintaan + ""; statement = conn.prepareStatement(sql); statement.executeUpdate(); conn.commit(); } Hapus permintaan digunakan untuk menghapus data permintaan. public List getAllPermintaan() throws SQLException { PreparedStatement psmt = null; ResultSet rset = null; conn.setAutoCommit(false); String sql = "SELECT p.idPermintaan,p.idSolusi,p.idTS,c.namahari,d.jam,p.idRuang,km.idKelas,km. idMK, mk.kodeMK,mk.namaMK, dsn.idDosen,dsn.namaDosen, mk.semester,km.namakelas,mk.jenis, rg.namaRuang " + " FROM time_slot b, hari c, waktu d, dosen dsn, kelas_makul km, mata_kuliah mk, ruang_kelas rg, permintaan p " + " WHERE p.idTS = b.idTS AND b.idHari=c.idHari AND b.idwaktu=d.idwaktu and p.idruang = rg.idruang and p.idmk=mk.idmk " + " and p.idKelas =km.idKelas and p.idDosen = dsn.idDosen";
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
147
List getAll permintaan digunakan untuk menampilkan seluruh permintaan jadwal public int getCariPermintaanRuang(String timeslot, String ruang) throws SQLException { int id = 0; String sql = "SELECT COUNT(idPermintaan) FROM permintaan WHERE idts='" + timeslot + "' AND idruang='" + ruang + "'"; psmt = (PreparedStatement) conn.prepareStatement(sql);
getCariPermintaan Ruang digunakan untuk mencari pelanggaran ruang yang akan terjadi pada tabel permintaan, ketika menambahkan data permintaan baru.
public int getCariPermintaanKelas(String timeslot, String kelas, String sem) throws SQLException { int id = 0; String sql = "SELECT COUNT(idPermintaan) FROM permintaan p, mata_kuliah m, kelas_makul km " + " WHERE p.idKelas = km.idKelas and p.idMK = m.idMK " + " and idts='" + timeslot + "' and km.namaKelas = '" + kelas + "' and m.semester='" + sem + "'";
getCariPermintaan Kelas digunakan untuk mencari pelanggaran Kelas yang akan terjadi pada tabel permintaan, ketika menambahkan data permintaan baru.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
148
public int cekJumlahPermintaan() throws SQLException { int id = 0; String sql = "select count(idPermintaan) from permintaan";
cekJumlah permintaan digunakan untuk menghitung total permintaan yang ditambahkan oleh user.
4.1.7 Buat Jadwal Pada halaman buat jadwal, digunakan untuk melakukan proses pembuatan jadwal. Pada halaman ini hanya terdapat 1 button buat jadwal. Setelah meng-klik button tersebut, lalu menunggu hingga ada pesan pembuatan jadwal telah selesai. Buat jadwal dapat dilihat pada Gambar 4.13.
Gambar 4. 13 Buat Jadwal
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
149
Kode program yang digunakan : public static List getRandomMatakuliah() { String kodekm = ""; List bantukm = new ArrayList(); try { List kelasMatKul = kelasMatkulKontrol.getkelasMatkulKontrol().getAllKelasMakul(); List km = new ArrayList(); List p = permintaanKontrol.getKoneksiPermintanKontrol().getAllPermintaan(); List bantupermintaan = new ArrayList(); for (int i = 0; i < p.size(); i++) { int idPer = p.get(i).getIdPermintaan(); int idSol = p.get(i).getIdSolusi().getIdSolusi(); String idKel = p.get(i).getIdKelas().getIdKelas(); String idts = p.get(i).getIdTS().getIdTS(); String idR = p.get(i).getIdRuang().getIdRuang(); String idD = p.get(i).getIdDosen().getIdDosen(); String idMk = p.get(i).getIdMk().getIdMK(); int idsem = p.get(i).getIdMk().getSemester(); String idNamakelas = p.get(i).getIdKelas().getNamaKelas(); String kodemk = p.get(i).getIdMk().getKodeMK(); String namahari = p.get(i).getIdTS().getIdHari().getNamaHari(); String simpanpermintaan = idPer + " " + idSol + " " + idKel + " " + idts + " " + idR + " " + idD + " " + idMk + " " + idsem + " " + idNamakelas + " " + kodemk + " " + namahari; bantupermintaan.add(simpanpermintaan);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
} Random random = new Random();
for (int i = 0; i < kelasMatKul.size(); i++) { km.add(kelasMatKul.get(i).getIdKelas() + " " + kelasMatKul.get(i).getIdDosen().getIdDosen() + " " + kelasMatKul.get(i).getNamaKelas() + " " + kelasMatKul.get(i).getIdMK().getSemester() + " " + kelasMatKul.get(i).getIdMK().getKodeMK()); } System.out.println(" " + km.size()); for (int j = 0; j < bantupermintaan.size(); j++) { for (int i = 0; i < km.size(); i++) {
String ts2 = (String) km.get(i); String[] splitKM = ts2.split(" "); String kelas = splitKM[0]; String ts3 = (String) bantupermintaan.get(j); String[] splitPermintaan = ts3.split(" "); String idPer = splitPermintaan[0]; String idSol = splitPermintaan[1]; String idkel = splitPermintaan[2]; String idts = splitPermintaan[3]; String idr = splitPermintaan[4]; String idd = splitPermintaan[5]; String idmk = splitPermintaan[6];
150
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
151
String idsem = splitPermintaan[7]; String idNamakelas = splitPermintaan[8]; String kodemkpermintaan = splitPermintaan[9]; String namahari = splitPermintaan[10]; if (kelas.equals(idkel)) { km.remove(km.get(i)); i = km.size(); }} } for (int i = km.size() - 1; i >= 0; i--) { String kodeKelasMatKul = ""; int next_num = random.nextInt(km.size()); kodeKelasMatKul = km.get(next_num).toString(); kodekm = kodeKelasMatKul;//disini pegambilan kode kelas matakuliah bantukm.add(kodekm);//masuk dalam penyimpanan temporary bantukm km.remove(km.get(next_num)); } catch (SQLException ex) { Logger.getLogger(solusi.class.getName()).log(Level.SEVERE, null, ex); } return bantukm;} getRandomMatakuliah
digunakan
untuk
memanggil
seluruh
kelasmatakuliah secara random lalu disimpan kedalam arraylist bantukm.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public static List<solusi> SolusiAwal() { solusiKontrol sk; List<solusi> partikel1 = new ArrayList<solusi>(); try { List timeslot = timeSlotKontrol.getKoneksiTimeSlot().getAllTimeSlot(); List p = permintaanKontrol.getKoneksiPermintanKontrol().getPermintaanAwal();
sk = solusiKontrol.getKoneksiSolusiKontrol(); solusi sol = new solusi(); timeSlot ts = new timeSlot(); kelasMatkul km = new kelasMatkul(); ruangKelas rg = new ruangKelas(); Dosen ds = new Dosen(); mataKuliah mk = new mataKuliah(); Hari h = new Hari(); List ruang = RuangKelasKontrol.getRuangKelasKontrol().getAllKelas(); int no = 1; List bantukm = getRandomMatakuliah(); List bantutimeslot = new ArrayList(); List bantupermintaan = new ArrayList(); for (int i = 0; i < p.size(); i++) { int idPer = p.get(i).getIdPermintaan(); int idSol = p.get(i).getIdSolusi().getIdSolusi();
152
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
String idKel = p.get(i).getIdKelas().getIdKelas(); String idts = p.get(i).getIdTS().getIdTS(); String idR = p.get(i).getIdRuang().getIdRuang(); String idD = p.get(i).getIdDosen().getIdDosen(); String idMk = p.get(i).getIdMk().getIdMK();
String simpanpermintaan = idPer + " " + idSol + " " + idKel + " " + idts + " " + idR + " " + idD + " " + idMk; bantupermintaan.add(simpanpermintaan); }
for (int i = 0; i < timeslot.size(); i++) { for (int j = 0; j < ruang.size(); j++) { String kode_timeslot = timeslot.get(i).getIdTS(); String hari = timeslot.get(i).getIdHari().getNamaHari(); String kode_ruang = ruang.get(j).getIdRuang(); ts.setIdTS(kode_timeslot); rg.setIdRuang(kode_ruang); String timeslott = kode_timeslot + " " + kode_ruang + " " + hari; bantutimeslot.add(timeslott); } } for (int m = 0; m < bantupermintaan.size(); m++) { for (int i = 0; i < bantutimeslot.size(); i++) { String timeslot3 = (String) bantutimeslot.get(i);
153
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
String[] split = timeslot3.split(" "); String kodets = split[0]; String koderuang = split[1]; String namahari = split[2];
String ts3 = (String) bantupermintaan.get(m); String[] splitPermintaan = ts3.split(" "); String idSol = splitPermintaan[1]; String idts = splitPermintaan[3]; String idR = splitPermintaan[4];
if (idts.equals(kodets) && idR.equals(koderuang)) { System.out.println("bantu time " + bantutimeslot.get(i)); bantutimeslot.remove(bantutimeslot.get(i)); } if (koderuang.equals("0")) { System.out.println("bantu time 2 " + bantutimeslot.get(i)); bantutimeslot.remove(bantutimeslot.get(i)); } } } int kode = 0; for (int i = 0; i < bantukm.size(); i++) { sol = new solusi(); ts = new timeSlot();
154
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ds = new Dosen(); km = new kelasMatkul(); rg = new ruangKelas(); mk = new mataKuliah(); h = new Hari();
String timeslot3 = (String) bantutimeslot.get(i); String[] split = timeslot3.split(" "); String kodets = split[0]; String koderuang = split[1]; String namahari = split[2]; String pisahkodekmkm = (String) bantukm.get(i); String[] pisah1 = pisahkodekmkm.split(" "); String kodekm = pisah1[0]; String iddosen = pisah1[1]; String kelas = pisah1[2]; int semester = Integer.parseInt(pisah1[3]); String kodemk = pisah1[4]; for (int j = 0; j < bantupermintaan.size(); j++) { String ts3 = (String) bantupermintaan.get(j); String[] splitPermintaan = ts3.split(" "); String idSol = splitPermintaan[1]; if (kode == Integer.parseInt(idSol)) { kode = kode + 1;}}
155
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
156
km.setIdKelas(kodekm); ds.setIdDosen(iddosen); mk.setSemester(semester); mk.setKodeMK(kodemk); km.setIdDosen(ds); km.setNamaKelas(kelas); km.setIdMK(mk); h.setNamaHari(namahari); ts.setIdTS(kodets); ts.setIdHari(h); rg.setIdRuang(koderuang); sol.setIdSolusi(kode); sol.setIdKelas(km); sol.setIdTS(ts); sol.setIdRuang(rg); kode = kode + 1; partikel1.add(sol); } } catch (SQLException ex) { Logger.getLogger(solusi.class.getName()).log(Level.SEVERE, null, ex);} return partikel1; } method Solusi awal digunakan untuk membuat jadwal random dengan menggabungkan kelas matakuliah, hari dan ruang. IdSolusi merupakan hasil dari pemasangan id ruang dan id timeslot, Setiap idSolusi memiliki nilai yang berbeda-beda.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
157
public static void permintaanSimpan() { try { p= permintaanKontrol.getKoneksiPermintanKontrol().getAllPermintaan(); for (int m = 0; m < p.size(); m++) { // untuk menyimpan isi permintaan kedalam list bantupermintaan String simpanpermintaan = idPer + " " + idSolusi + " " + idKel + " " + idtsm + " " + idR + " " + idD + " " + idMk + " " + idsem + " " + idNamakelas + " " + kodemk + " " + namahari; bantupermintaan.add(simpanpermintaan); } } catch (SQLException ex) { Logger.getLogger(coba.class.getName()).log(Level.SEVERE, null, } }
ex);
public static void deleteSemuaSolusi() { try { tabrakanKontrol t = tabrakanKontrol.getKoneksitabrakanKontrol(); t.deleteTabrakanSolusi(); solusiKontrol s = solusiKontrol.getKoneksiSolusiKontrol(); s.deletesolusi(); } catch (SQLException ex) { Logger.getLogger(PSO.class.getName()).log(Level.SEVERE, null, ex);}}
Method permintaan simpan digunakan untuk menyimpan jadwal permintaan kedalam list bantupermintaan. Method deleteSemuaSolusi digunakan untuk menghapus seluruh isi dari tabel tabrakan dan isi dari tabel solusi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
private static final int maxparticle = 10; private static final int V_MAX = cekTotalIdSolusi(); private static final int iterasi = 400; private static List simpansementara[][] = new List[iterasi][maxparticle]; private static List<solusi> partikel1[] = new List[maxparticle]; private static List bantusimpan[][] = new List[iterasi][maxparticle]; private static int globalbest = 0; private static int localbest =0; private static int globalIterasi = 0; private static int globalPartikel = 0; private static int beban[][] = new int[iterasi][maxparticle]; private static List simpantabrakandosen[][] = new List[iterasi][maxparticle]; private static List simpantabrakanruang[][] = new List[iterasi][maxparticle]; private static List simpantabrakankelas[][] = new List[iterasi][maxparticle]; private static List bantupermintaan = new ArrayList(); private static List p = null; private static List simpanglobal = new ArrayList(); private static List simpanlocal = new ArrayList();
158
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
159
public static void inisialisasi() { int itera = 0; while (itera < iterasi) { // melakukan looping selama itera lebih kecil dari max iterasi if (itera == 0) { // jika itera masih 0 maka lakukan for (int i = 0; i < maxparticle; i++) { simpanglobal = new ArrayList(); partikel1[i] = new ArrayList<solusi>(); partikel1[i] = SolusiAwal(); // mengambil matakuliah secara random sebanyak partikel ke i simpansementara[itera][i] = new ArrayList(); // melakukan inisialisasi matriks simpansementara for (int j = 0; j < partikel1[i].size(); j++) { // melakukan looping sebanyak isi dari partikel ke i simpansementara[itera][i].add(partikel1[i].get(j).getIdSolusi() + " " + partikel1[i].get(j).getIdKelas().getIdKelas() +""+ partikel1[i].get(j).getIdKelas().getIdDosen().getIdDosen() + " " + partikel1[i].get(j).getIdTS().getIdTS() + " " + partikel1[i].get(j).getIdRuang().getIdRuang() + " " + partikel1[i].get(j).getIdKelas().getNamaKelas() + " " + partikel1[i].get(j).getIdKelas().getIdMK().getSemester() + " " + partikel1[i].get(j).getIdKelas().getIdMK().getKodeMK() + " " + partikel1[i].get(j).getIdTS().getIdHari().getNamaHari()); // mengambil isi dari list partikel, dimasukan kedalam matriks simpansementara iterasi ke n dan partikel ke n}
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
160
for (int i = 0; i < maxparticle; i++) { System.out.println("max particle -------------------------------------------" + i); for (int k = 0; k < bantupermintaan.size(); k++) { //memasukan jadwal permintaan kedalam list jadwal utuh di list simpansementara simpansementara[itera][i].add(idSol + " " + idkel + " " + idd + " " + idts + " " + idr + " " + idNamakelas + " " + idsem + " " + idmk + " " + namaharipermintaan);} private static void hitungTabrakan(int itera) { List<String> cekDosen3 = new ArrayList<String>(); List<String> cekSem3 = new ArrayList<String>(); simpantabrakandosen[itera][i] = new ArrayList(); simpantabrakankelas[itera][i] = new ArrayList(); simpantabrakanruang[itera][i] = new ArrayList(); int pelanggaranRuang = 0; int pelanggaranKelas = 0; int pelanggaranDosen = 0; int pelanggaranSemester = 0; int pelanggaranDosenlbh3 = 0; int jumlah = 0; int jumlahsoft = 0; for (int k = 0; k < simpansementara[itera][i].size(); k++) { for (int l = k + 1; l < simpansementara[itera][i].size(); l++) { int cekruang = 1; int cekkelas = 1; int cekdosen = 1;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
161
if (!koderuang.equals("0")) { if (kodets2.equals(kodets) && koderuang2.equals(koderuang)) { // untuk menghitung tabrakan ruang cekruang = cekruang + 1; if (cekruang == 2) { simpantabrakanruang[itera][i].add(idsolusi + " " + kodekmkm + " " + dosen + " " + kodets + " " + koderuang + " " + kelas + " " + semester + " " + kodemk + " " + namahari); pelanggaranRuang = pelanggaranRuang + 1; }} } Untuk menghitung adanya tabrakan ruang. if (kodets2.equals(kodets) && semester2.equals(semester) && kelas2.equals(kelas)) { // untuk menghitung tabrakan kelas matakuliah dgn semester yang sama cekkelas = cekkelas + 1; if (cekkelas == 2) { simpantabrakankelas[itera][i].add(idsolusi + " " + kodekmkm + " " + dosen + " " + kodets + " " + koderuang + " " + kelas + " " + semester + " " + kodemk + " " + namahari); pelanggaranKelas = pelanggaranKelas + 1;}} Untuk menghitung adanya tabrakan semester dan kelompok kelas yang sama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
162
if (!dosen2.equals("0")) { if (kodets2.equals(kodets) && dosen2.equals(dosen)) {// untuk menghitung tabrakan dosen cekdosen = cekdosen + 1; if (cekdosen == 2) { simpantabrakandosen[itera][i].add(idsolusi + " " + kodekmkm + " " + dosen + " " + kodets + " " + koderuang + " " + kelas + " " + semester + " " + kodemk + " " + namahari); pelanggaranDosen = pelanggaranDosen + 1; } }}} Untuk menghitung tabrakan dosen. if (namahari2.equals(namahari) && semester2.equals(semester) && kelas2.equals(kelas) && !kodemk2.equals(kodemk)) { // untuk menghitung tabrakan semester dan kelas yang sama tidak boleh lebih dari 3 matkul sehari ceksemester = ceksemester + 1; if (ceksemester == 4) { pelanggaranSemester = pelanggaranSemester + 1;}}
Untuk menghitung tabrakan soft constrain, semester yang sama tidak boleh ada kelas lebih dari 3 matakuliah dalam sehari. if (namahari2.equals(namahari) && dosen2.equals(dosen)) { // untuk menghitung tabrakan dosen yang tidak boleh lebih dari 3 matkul sehari cekdosenlebih3 = cekdosenlebih3 + 1; if (cekdosenlebih3 == 4) { pelanggaranDosenlbh3 = pelanggaranDosenlbh3 + 1; }} }} Untuk menghitung tabrakan soft constrain, dosen yang sama tidak boleh mengajar lebih dari 3 matakuliah dalam sehari.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
163
beban[itera][i] = jumlah; // mengambil tabrakan pada partikel dan iterasi ke n if (itera == 0) { System.out.println("menambah"); simpanglobal.add(itera + " " + i + " " + beban[itera][i]); simpanlocal.add(itera + " " + i + " " + beban[itera][i]); } else { simpanlocal.add(itera + " " + i + " " + beban[itera][i]); if (beban[itera][i] < beban[itera - 1][i]) { System.out.println("beban " + beban[itera][i] + " < " + beban[itera 1][i]); System.out.println("jumlah pelanggaran lebih kecil"); System.out.println("" + beban[itera - 1][i] + " diganti dengan " + beban[itera][i]); simpanglobal.add(itera + " " + i + " " + beban[itera][i]); //mengupdate fitnes pada partikel tertentu ketika bebannya lebih kecil dari sebelumnya } else { System.out.println("jumlah pelanggaran lebih besar dari " + beban[itera - 1][i]);}} Memasukan tabrakan terbaik kedalam matriks beban[itera][i]. Local best merupakan posisi terbaik dari setiap partikel disetiap iterasinya. Jumlah pelanggaran terkecil dari seluruh iterasi akan dimasukan kedalam arraylist simpanglobal. Setelah melakukan inisialisasi dan hitung tabrakan, kemudian melakukan update velocity dan update posisi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
164
public static void updateVelocity_Partikel (int itera) { // method velocity double c1 = 1.5; // nilai c1 double c2 = 2; // nilai c2 double w = 0.5; // nilai inertia weight float next_number = 0; for (int r = 0; r <= 1; r++) { // melakukan random nilai dari 0 - 1 next_number = random.nextFloat(); } particlevector[itera][i] = idSol; // menginialisasi posisi tiap partikel particlevelocity[itera + 1][i] = (int) ((w * particlevelocity[itera][i]) + (c1 * (next_number * (localbest - particlevector[itera][i]))) + (c2 * (next_number * (globalbest - particlevector[itera][i])))); // melakukan perhitungan velocity particlevector[itera + 1][i] = particlevector[itera][i] + particlevelocity[itera + 1][i]; // melakukan update posisi if (particlevector[itera + 1][i] <= -1) { // ketika nilai nya minus, maka harus di ubah menjadi positif particlevector[itera + 1][i] = particlevector[itera + 1][i] * -1; } while (particlevector[itera + 1][i] > V_MAX) { // melakukan pembatasan velocity ketika nilai posisi lebih besar dari time slot yang disediakan particlevector[itera + 1][i] = particlevector[itera + 1][i] - V_MAX; }
Update velocity digunakan untuk menginialisasi posisi partikel, menghitung pergerakan velocity, mengupdate posisi partikel, dan membatasi posisi partikel ketika posisi partikel melebihi batas maksimal ataupun batas minimal Velocity.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
165
Proses pembangkitan matakuliah secara random dengan cara menggabungkan timeslot, ruang dan kelas matakuliah. Pembangkitan matakuliah secara random juga menginialisasi posisi awal partikel dalam timeslot waktu dan ruang. Setiap 1 partikel memiliki 1 jadwal keseluruhan kelas matakuliah yang sudah memiliki posisi awal yang berbeda dengan yang lain. Setiap partikel akan mengevaluasi dirinya sendiri dengan cara menghitung banyaknya pelanggaran yang terjadi di dalam partikel tersebut. Pelanggarannya yaitu, tabrakan ruang, tabrakan dosen dan tabrakan kelompok kelas. Setelah pelanggarannya dihitung, lalu setiap partikel akan melakukan update velocity dan update posisi untuk mencari posisi yang baru. Kemudian, partikel yang sudah mendapatkan posisi yang baru akan di hitung kembali pelanggaran fitnes nya sampai mencapai posisi terbaiknya, yaitu global best yang mendekati 0.
4.18 Jadwal Pada halaman Jadwal, terdapat pilihan combobox, yaitu Dosen dan mahasiswa. Pilihan Dosen digunakan untuk melihat jadwal dosen yang akan mengajar, sedangkan pilihan mahasiswa untuk melihat jadwal mahasiswa pada semester dan kelompok kelas tertentu mengikuti pelajaran. Terdapat 1 button pelanggaran yang digunakan untuk memberitahu user bahwa masih ada terjadi tabrakan kelompok kelas ataupun dosen yang akan mengajar. Jika memilih Pilihan Dosen, maka akan keluar tabel hari, jam dan ruang yang akan di pakai oleh dosen untuk mengajar. Jika memilih pilihan Mahasiswa, akan keluar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
166
pilihan Tahun Ajaran Semester (ganjil/genap), semester mahasiswa, dan Kelompok kelas mahasiswa, lalu akan keluar tabel hari, jam dan ruang mahasiswa dengan semester tertentu dan kelompok kelas tertentu akan mendapat jadwal pada tahun ajaran semester teresebut. Pilihan dosen, pilihan mahasiswa dan tabel pelanggaran dapat dilihat pada Gambar 4.14., 4.15 dan 4.16.
Gambar 4. 14 Jadwal Pilihan Dosen
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4. 15 Jadwal Pilihan Mahasiswa
Gambar 4. 16 Tabel Pelanggaran
167
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
168
Kode program yang digunakan : public List<solusi> getAllJadwal(String sem, String kel) throws SQLException { String sql = "SELECT Distinct(s.idSolusi),h.namaHari,w.jam,r.namaRuang,m.idMK,m.kodeMK,m.n amaMK,k.namaKelas,m.semester,d.namaDosen, substring(s.idsolusi,1)*1 as urut" + " FROM solusi s, kelas_makul k, mata_kuliah m, dosen d, time_slot t, waktu w,hari h, ruang_kelas r " + " WHERE s.idKelas=k.idKelas AND s.idTS=t.idTS AND s.idRuang=r.idRuang AND k.idMK= m.idMK AND k.idDosen=d.idDosen AND t.idWaktu=w.idWaktu " + " AND t.idHari=h.idHari and m.semester='" + sem + "' and k.namakelas ='" + kel + "' and m.namaMK is not null ORDER BY urut,m.semester,m.idMK,k.namaKelas ASC"; ..... method getAlljadwal digunakan untk menampilkan keseluruha jadwal sesuai dengan semester dan kelompok kelas tertentu. public List<solusi> getAllJadwalDosen(String nama) throws SQLException { String sql = "SELECT Distinct(s.idSolusi),h.namaHari,w.jam,r.namaRuang,m.idMK,m.kodeMK,m.n amaMK,k.namaKelas,m.semester,d.namaDosen, substring(s.idsolusi,1)*1 as urut" + " FROM solusi s, kelas_makul k, mata_kuliah m, dosen d, time_slot t, waktu w,hari h, ruang_kelas r " + " WHERE s.idKelas=k.idKelas AND s.idTS=t.idTS AND s.idRuang=r.idRuang AND k.idMK= m.idMK AND k.idDosen=d.idDosen AND t.idWaktu=w.idWaktu " + " AND t.idHari=h.idHari and d.namaDosen like '%" + nama + "%' and m.namaMK is not null ORDER BY m.semester,m.idMK,k.namaKelas ASC";
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
169
Method getallJadwalDosen digunakan untuk menampilkan seluruh jadwal Dosen sesuai dengan nama Dosen tertentu.
public List getAllKelas(String kel) throws SQLException { String sql = "SELECT DISTINCT(k.namakelas) FROM kelas_makul k, mata_kuliah m WHERE k.idMK= m.idMK AND m.semester='" + kel + "'";
Method getAllKelas digunakan untuk menampilkan seluruh nama kelompok kelas
4.2 Analisis Sistem 4.2.1 Uji Coba Untuk menjalankan aplikasi penjadwalan ini user akan menekan button Buat Jadwal untuk menjalankan keseluruhan proses penjadwalan, dimulai dari pembangkitan partikel jadwal awal hingga menghasilkan jadwal yang optimal, setelah itu aplikasi akan menampilkan hasil penjadwalan serta pelanggaran yang masih terjadi jika hasil dari penjadwalan tersebut tidak menemukan posisi terbaik.
Gambar 4. 17 Buat Jadwal
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
170
4.2.1.1 Hasil Percobaan Pada uji coba aplikasi penjadwalan mata kuliah dengan menggunakan algoritma particle swarm optimization ini akan menggunakan hard constraint sebagai berikut : 1.
Tidak Boleh ada bentrok penggunaan ruang.
2.
Tidak Boleh ada bentrok jam mengajar dosen.
3.
Tidak boleh adanya bentrok Kelompok Kelas.
Ujicoba aplikasi penjadwalan matakuliah dengan menggunakan algoritma Particle Swarm Optimization ini akan melakukan beberapa analisa sebagai berikut : 1.
Mengubah nilai parameter inertia weight (w) dengan batas 0,4 – 1,4 dan menggunakan parameter c1 dan c2 dengan nilai 2
2.
Mengubah-ubah jumlah partikel, dari 5 partikel, 8 partikel, dan 10 partikel dengan nilai parameter inertia weight (w) = 0.4, c1 = 2, dan c2 = 2.
3.
Membandingkan hasil jadwal antara penggunaan 13 ruang dengan 8 ruang.
4.2.1.1.1
Mengubah nilai parameter inertia weight (w) dengan batas 0,4 – 1,4 dan menggunakan parameter c1 dan c2 dengan nilai 2 -
Ujicoba dengan parameter 1 Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
171
Tabel 4. 1 Parameter 1 w=0.4
w
C1
C2
0.4
2
2
Iterasi maksimum 400
Uji coba 1 yang akan dilakukan pada pengujian aplikasi penjadwalan ini akan dilakukan dengan menggunkan jumlah partikel 10. Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini : Tabel 4. 2 Hasil Uji coba parameter 1
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
5
132
0
0
0
0
1
36
0:06:56
2
7
75
0
0
0
0
1
36
0:04:09
3
9
151
0
0
0
0
1
36
0:07:32
4
5
86
0
0
0
0
1
36
0:04:41
5
1
104
0
0
0
0
1
36
0:05:40
6
6
108
0
0
0
0
1
36
0:05:53
7
4
70
0
0
0
0
1
36
0:03:53
8
1
233
0
0
0
0
1
36
0:11:55
9
8
76
0
0
0
0
1
36
0:04:06
10
8
27
0
0
1
1
0
36
0:20:20
90%
36
0:07:30
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
172
Grafik Fitness pada percobaan dengan parameter 1
w = 0.4 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
Gambar 4. 18 Grafik Fitness parameter 1
-
Ujicoba dengan parameter 2 Parameter yang digunakan pada uji coba 2 ini di tunjukkan pada
tabel berikut : Tabel 4. 3 Tabel parameter 2, w=0.5
w 0.5
C1 2
C2 2
Iterasi maksimum 400
Uji coba 2 yang akan dilakukan pada pengujian aplikasi penjadwalan ini akan dilakukan dengan menggunkan jumlah partikel 10. Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
173
Tabel 4. 4 Hasil Ujicoba parameter 2
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
8
30
0
0
0
0
1
36
0:02:06
2
7
64
0
0
0
0
1
36
0:03:35
3
10
25
0
0
0
0
1
36
0:01:37
4
5
315
0
0
0
0
1
36
0:15:55
5
3
104
0
0
0
0
1
36
0:05:37
6
3
165
0
0
0
0
1
36
0:08:34
7
2
3
0
0
0
0
1
36
0:00:30
8
2
354
0
0
0
0
1
36
0:17:54
9
5
47
0
0
1
1
0
36
0:20:27
10
1
187
0
0
0
0
1
36
0:09:48
90%
36
0:08:36
rata-rata
Grafik Fitness pada percobaan dengan parameter 2
w = 0.5 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
Gambar 4. 19 Grafik Fitness parameter 2
-
Ujicoba dengan parameter 3 Parameter yang digunakan pada uji coba 3 ini di tunjukkan pada
tabel berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
174
Tabel 4. 5 Tabel parameter 3, w=0.6
w 0.6
C1 2
C2 2
Iterasi maksimum 400
Uji coba 3 yang akan dilakukan pada pengujian aplikasi penjadwalan ini akan dilakukan dengan menggunkan jumlah partikel 10. Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini : Tabel 4. 6 Hasil Ujicoba parameter 3
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
4
199
0
0
0
0
1
36
0:10:23
2
3
114
0
0
0
0
1
36
0:06:07
3
3
26
0
0
1
1
0
36
0:20:27
4
6
20
0
0
0
0
1
36
0:01:20
5
6
88
0
0
0
0
1
36
0:04:46
6
2
129
0
0
0
0
1
36
0:06:55
7
6
234
0
0
0
0
1
36
0:11:53
8
1
5
0
0
1
1
0
36
0:20:14
9
8
290
0
0
0
0
1
36
0:14:45
10
10
78
0
0
0
0
1
36
0:04:25
80%
36
0:10:07
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
175
Grafik Fitness pada percobaan dengan parameter 3
w = 0.6 1,2
1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
Gambar 4. 20 Grafik fitness parameter 3
-
Ujicoba dengan parameter 4 Parameter yang digunakan pada uji coba 4 ini di tunjukkan pada
tabel berikut :
Tabel 4. 7 Tabel parameter 4, w=1
w 1
C1 2
C2 2
Iterasi maksimum 400
Uji coba 4 yang akan dilakukan pada pengujian aplikasi penjadwalan ini akan dilakukan dengan menggunkan jumlah partikel 10. Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
176
Tabel 4. 8 Hasil Ujicoba parameter 4
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
2
17
1
0
0
1
0
36
0:20:27
2
3
98
0
0
0
0
1
36
0:05:15
3
3
377
0
0
0
0
1
36
0:19:05
4
10
78
0
0
0
0
1
36
0:04:18
5
7
298
0
0
0
0
1
36
0:14:03
6
9
26
0
0
1
1
0
36
0:21:33
7
9
154
0
0
0
0
1
36
0:07:59
8
4
174
0
0
0
0
1
36
0:09:03
9
6
9
0
0
0
0
1
36
0:00:47
10
8
125
0
0
0
0
1
36
0:06:42
80%
36
0:10:55
rata-rata
Grafik Fitness pada percobaan dengan parameter 4
w=1 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
Gambar 4. 21 Grafik fitness parameter 4
-
Ujicoba dengan parameter 5 Parameter yang digunakan pada uji coba 5 ini di tunjukkan pada
tabel berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
177
Tabel 4. 9 Tabel parameter 5, w = 1.4
w 1.4
C1 2
C2 2
Iterasi maksimum 400
Uji coba 4 yang akan dilakukan pada pengujian aplikasi penjadwalan ini akan dilakukan dengan menggunkan jumlah partikel 10. Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini : Tabel 4. 10 Hasil Ujicoba parameter 5
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
6
198
0
0
0
0
1
36
0:10:09
2
8
236
0
0
0
0
1
36
0:12:20
3
6
91
0
0
0
0
1
36
0:04:52
4
6
61
0
0
1
1
0
36
0:20:24
5
8
6
0
0
0
0
1
36
0:00:49
6
9
10
1
0
0
1
0
36
0:20:21
7
5
218
0
0
0
0
1
36
0:11:16
8
8
38
1
0
0
1
0
36
0:20:19
9
8
17
0
0
1
1
0
36
0:20:43
10
7
13
0
0
0
0
1
36
0:01:03
60%
36
0:12:14
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
178
Grafik Fitness pada percobaan dengan parameter 5
w = 1.4 1,2 1 0,8 0,6 0,4
0,2 0 1
2
3
4
5
6
7
8
9
10
Gambar 4. 22 Grafik fitness parameter 5
Grafik Perbandingan Fitness seluruh parameter
Grafik Perbandingan Fitness 1,2 1 0,8 0,6 0,4 0,2 0 1
2 w = 0.4
3
4 w = 0.5
5
6 w = 0.6
Gambar 4. 23 Grafik Fitness perbandingan
7
8 w=1
9 w = 1.4
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.1.1.2
179
Mengubah-ubah jumlah partikel, dari 5 partikel, 8 partikel, dan 10 partikel dengan nilai parameter inertia weight (w) = 0.4, c1 = 2, dan c2 = 2. -
Ujicoba dengan parameter 1 Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut : Tabel 4. 11 Tabel parameter 1 , 10 partikel
w
C1
C2
0.4
2
jumlah partikel
Iterasi maksimum
10
400
2
Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini : Tabel 4. 12 Hasil Ujicoba parameter 1
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
5
132
0
0
0
0
1
36
0:06:56
2
7
75
0
0
0
0
1
36
0:04:09
3
9
151
0
0
0
0
1
36
0:07:32
4
5
86
0
0
0
0
1
36
0:04:41
5
1
104
0
0
0
0
1
36
0:05:40
6
6
108
0
0
0
0
1
36
0:05:53
7
4
70
0
0
0
0
1
36
0:03:53
8
1
233
0
0
0
0
1
36
0:11:55
9
8
76
0
0
0
0
1
36
0:04:06
10
8
27
0
0
1
1
0
36
0:20:20
1
90%
36
0:07:30
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
180
Grafik Fitness pada percobaan dengan parameter 1
10 partikel 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
10 partikel
Gambar 4. 24 Grafik fitness 10 partikel
-
Ujicoba dengan parameter 2 Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut : Tabel 4. 13 Tabel parameter 2 , 8 partikel
w 0.4
C1
C2 2
2
jumlah partikel
Iterasi maksimum
8
400
Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
181
Tabel 4. 14 Hasil Ujicoba parameter 2
Percobaan Partikel
pelanggaran
iterasi
dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
1
258
0
0
0
0
1
36
0:10:31
2
7
11
0
0
0
0
1
36
0:00:46
3
5
169
0
0
0
0
1
36
0:06:40
4
6
15
0
0
0
0
1
36
0:00:56
5
7
12
0
0
0
0
1
36
0:00:49
6
2
265
0
0
0
0
1
36
0:10:58
7
8
312
0
0
0
0
1
36
0:13:02
8
2
81
0
0
1
1
0
36
0:15:56
9
7
150
0
0
0
0
1
36
0:06:15
10
2
228
0
0
0
0
1
36
0:09:08
90%
36
0:07:30
rata-rata
Grafik Fitness pada percobaan dengan parameter 2
8 partikel 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
8 partikel
Gambar 4. 25 Grafik fitness 8 partikel
-
Ujicoba dengan parameter 3 Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
182
Tabel 4. 15 Tabel parameter 3, 5 partikel
w
C1
C2
0.4
2
jumlah partikel
Iterasi maksimum
5
400
2
Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini :
Tabel 4. 16 Hasil Ujicoba parameter 3
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
1
192
0
0
0
0
1
36
0:04:58
2
2
8
0
0
0
0
1
36
0:00:29
3
1
20
0
0
1
1
0
36
0:09:50
4
1
42
0
0
1
1
0
36
0:10:02
5
2
191
0
0
0
0
1
36
0:04:53
6
1
52
1
0
0
1
0
36
0:09:58
7
4
281
0
0
0
0
1
36
0:07:11
8
2
106
0
0
1
1
0
36
0:09:57
9
3
7
0
0
1
1
0
36
0:10:06
10
1
109
0
0
1
1
0
36
0:09:58
40%
36
0:07:44
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
183
Grafik Fitness pada percobaan dengan parameter 3
5 partikel 1,2 1
0,8 0,6 0,4 0,2 0
1
2
3
4
5
6
7
8
9
10
5 partikel
Gambar 4. 26 Grafik fitness 5 partikel
Grafik Perbandingan Fitness seluruh parameter
Grafik perbandingan fitness antar partikel 1,2 1 0,8 0,6 0,4
0,2 0 1
2
3
4
5 partikel
5
6
8 partikel
7
8
10 partikel
Gambar 4. 27 Grafik fitness perbandingan antar partikel
9
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.1.1.3
184
Membandingkan hasil jadwal antara penggunaan 13 ruang dengan 8 ruang. -
Ujicoba dengan parameter 1 dan 13 ruang Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut : Tabel 4. 17 Tabel parameter 1, 13 ruang
w
C1
C2
0.4
2
jumlah partikel
Iterasi maksimum
10
400
2
Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini : Tabel 4. 18 Hasil Ujicoba parameter 1, 13 ruang
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
5
132
0
0
0
0
1
36
0:06:56
2
7
75
0
0
0
0
1
36
0:04:09
3
9
151
0
0
0
0
1
36
0:07:32
4
5
86
0
0
0
0
1
36
0:04:41
5
1
104
0
0
0
0
1
36
0:05:40
6
6
108
0
0
0
0
1
36
0:05:53
7
4
70
0
0
0
0
1
36
0:03:53
8
1
233
0
0
0
0
1
36
0:11:55
9
8
76
0
0
0
0
1
36
0:04:06
10
8
27
0
0
1
1
0
36
0:20:20
90%
36
0:07:30
rata-rata
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
185
Grafik Fitness pada percobaan dengan parameter 1
13 ruang 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
9
10
13 ruang
Gambar 4. 28 Grafik fitness dengan 13 ruang
-
Ujicoba dengan parameter 2 dan 8 ruang Parameter yang digunakan pada uji coba 1 ini di tunjukkan pada
tabel berikut : Tabel 4. 19 Tabel parameter 2, 8 ruang
w 0.4
C1
C2 2
2
jumlah partikel
Iterasi maksimum
10
400
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
186
Setelah dilakukan beberapa kali percobaan pada data inputan, maka dihasilkan data-data pada tabel-tabel berikut ini :
Tabel 4. 20 Hasil Ujicoba parameter 2, 8 ruang
Percobaan Partikel
iterasi
pelanggaran dosen ruang kelas
Jumlah Hard Constraint
sukses 100%
permintaan kelas
time
1
2
65
0
0
1
1
0
21
0:07:34
2
7
55
0
0
0
0
1
21
0:01:16
3
5
51
0
0
1
1
0
21
0:07:27
4
9
12
0
0
0
0
1
21
0:00:30
5
6
35
0
0
1
1
0
21
0:07:29
6
2
37
1
0
0
1
0
21
0:07:25
7
8
133
0
0
0
0
1
21
0:02:43
8
3
351
0
0
0
0
1
21
0:06:35
9
7
323
0
0
0
0
1
21
0:06:06
10
9
284
0
0
1
1
0
21
0:07:32
50%
21
0:05:28
rata-rata
Grafik Fitness pada percobaan dengan parameter 2
8 ruang 1,2 1 0,8 0,6 0,4 0,2 0 1
2
3
4
5
6
7
8
8 ruang
Gambar 4. 29 Grafik fitness dengan 8 ruang
9
10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
187
Grafik Perbandingan Fitness menggunakan 13 ruang dan 8 ruang
Grafik Perbandingan ruang 1,2 1 0,8 0,6 0,4 0,2 0
1
2
3
4
5
8 ruang
6
7
8
9
10
13 ruang
Gambar 4. 30 Grafik fitness perbandingan 13 dan 8 ruang
4.2.1.2 Analisa 4.2.1.2.1 Analisa mengubah nilai parameter inertia weight (w) dengan batas 0,4 – 1,4 dan menggunakan parameter c1 dan c2 dengan nilai 2 Pada ujicoba pertama dengan parameter w = 0.4, di dapatkan hasil sangat baik dengan menggunakan 10 partikel, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 1 kali dari 10 kali percobaan terjadi tabrakan hard constraint
kelompok
kelas.
Pada
percobaan
dengan
menggunakan parameter pertama dapat disimpulkan bahwa, nilai w yang minimum dapat dengan baik mengontrol laju kecepatan c1 dan c2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
188
Pada ujicoba kedua dengan parameter w = 0.5, di dapatkan hasil sangat baik dengan menggunakan 10 partikel, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 1 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas. Pada percobaan dengan menggunakan parameter kedua dapat disimpulkan bahwa, nilai w dapat dengan baik mengontrol laju kecepatan c1 dan c2. Pada ujicoba ketiga dengan parameter w = 0.6, di dapatkan hasil cukup baik dengan menggunakan 10 partikel, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 2 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas. Pada percobaan dengan menggunakan parameter ketiga dapat disimpulkan bahwa, nilai w dapat dengan cukup baik mengontrol laju kecepatan c1 dan c2. Pada ujicoba keempat dengan parameter w = 1, di dapatkan hasil cukup baik dengan menggunakan 10 partikel, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 2 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas dan dosen. Pada percobaan dengan menggunakan parameter keempat dapat disimpulkan bahwa, nilai w dapat dengan cukup baik mengontrol laju kecepatan c1 dan c2. Pada ujicoba kelima dengan parameter w = 1.4, di dapatkan hasil tidak baik dengan menggunakan 10 partikel, algoritma ini
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
189
dapat membuat penjadwalan dengan baik, meskipun terdapat 4 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas dan dosen. Pada percobaan dengan menggunakan parameter kelima dapat disimpulkan bahwa, nilai w yang maksimum tidak dapat dengan baik mengontrol laju kecepatan c1 dan c2. 4.2.1.2.2 Mengubah-ubah jumlah partikel, dari 5 partikel, 8 partikel, dan 10 partikel dengan nilai parameter inertia weight (w) = 0.4, c1 = 2, dan c2 = 2. Pada ujicoba pertama menggunakan 10 partikel, di dapatkan hasil yang sangat baik, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 1 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas. Pada percobaan dengan menggunakan partikel 10 dapat disimpulkan bahwa, dalam proses pembuatan ketika menghasilkan jadwal dengan memiliki hard constraint, memiliki waktu yg lama saat proses pembuatan, tetapi memiliki tingkat ketepatan yang sangat baik dibandingkan dengan 8 dan 5 partikel. Pada ujicoba kedua menggunakan 8 partikel, di dapatkan hasil yang sangat baik, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 1 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas. Pada percobaan dengan menggunakan partikel 8 dapat disimpulkan bahwa, dalam
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
190
proses pembuatan ketika menghasilkan jadwal dengan memiliki hard constraint, memiliki waktu yg cukup lama saat proses pembuatan, tetapi memiliki tingkat ketepatan yang cukup baik dibandingkan dengan 5 partikel. Pada ujicoba ketiga menggunakan 5 partikel, di dapatkan hasil yang tidak baik, algoritma ini dapat membuat penjadwalan dengan tidak baik, terdapat 5 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas maupun dosen. Pada percobaan dengan menggunakan partikel 5 dapat disimpulkan bahwa, dalam proses pembuatan ketika menghasilkan jadwal dengan memiliki hard constraint, memiliki waktu yg cepat yaitu membutuhkan waktu 7 menit tetapi memiliki tingkat ketepatan yang tidak baik dibandingkan dengan 8 dan 10 partikel.
4.2.1.2.3 Membandingkan hasil jadwal antara penggunaan 13 ruang dengan 8 ruang. Pada ujicoba pertama dengan menggunakan 13 ruang, di dapatkan hasil yang sangat baik, algoritma ini dapat membuat penjadwalan dengan baik, meskipun terdapat 1 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas. Pada percobaan dengan menggunakan 13 ruang dapat disimpulkan bahwa, penjadwalan dapat menghasilkan hasil jadwal yang optimal,
dikarenakan
masih
memiliki
sisa
104
slot
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
191
kelasmatakuliah, tetapi membutuhkan waktu yang cukup lama dalam proses pembuatan. Pada ujicoba kedua dengan menggunakan 8 ruang, di dapatkan hasil yang tidak baik, algoritma ini dapat membuat penjadwalan dengan tidak baik, terdapat 5 kali dari 10 kali percobaan terjadi tabrakan hard constraint kelompok kelas maupun dosen. Pada percobaan dengan menggunakan 8 ruang dapat disimpulkan bahwa, penjadwalan dapat menghasilkan hasil jadwal rata-rata optimal, dikarenakan jumlah ruang yang tersisa yaitu 4 slot, tetapi mendapatkan waktu yang cukup cepat dalam proses pembuatan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan Setelah dilakukan pengujian dan analisa terhadap penjadwalan matakuliah menggunakan algoritma Particle Swarm Optimization dapat disimpulkan : 1. Algoritma Particle Swarm Optimization dapat digunakan untuk penjadwalan mata kuliah di Pendidikan Guru Sekolah Dasar Universitas Sanata Dharma. 2. Untuk mendapatkan jadwal yang optimal maka nilai parameter w, c1, dan c2 harus di kombinasikan dengan baik. Hasil solusi akhir dari penjadwalan matakuliah menggunakan algoritma PSO yang paling baik yaitu saat menggunakan parameter w=0.4, c1= 2 dan c2 = 2 dengan jumlah partikel 10. 3. Dengan parameter yang tetap dan jumlah partikel yang diubah-ubah dapat mempengaruhi hasil jadwal, yaitu semakin banyak partikel, semakin kecil kesalahan dan waktu proses pembuatan yang lebih lama dibandingkan dengan sedikit partikel. 4. Dengan menggunakan parameter w = 0.4, c1 = 2 dan c2 = 2 dengan jumlah partikel 10, dari10 kali percobaan dapat menghasilkan hasil yang diharapkan sebanyak 9 kali, dengan memiliki nilai fitness 0, akan tetapi 1
192
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
193
kali percobaan tidak dapat menghasilkan nilai fitness 0 pada maksimum iterasi (masih terdapat bentrokan jadwal) 5.2 Saran Dengan melihat hasil dari ujicoba maka dapat di sarankan terhadap penjadwalan matakuliah menggunakan algoritma Particle Swarm Optimization sebagai berikut : 1. Mencoba memasukkan kelas praktikum di dalam penjadwalan matakuliah 2. Algoritma PSO cukup efisien untuk memecahkan masalah penjadwalan di PGSD Universitas Sanata Dharma, tetapi parameter yang di gunakan dapat di ubah untuk mendapatkan jadwal yang optimal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
194
DAFTAR PUSTAKA Alrijadjis. (2010). Optimasi Parameter Kontroler PID Berbasis Algoritma Particle Swarm Optmization (PSO) Untuk Sistem Dengan Waktu Tunda. Institut Teknologi Sepuluh Nopember. Surabaya. Ariani, Dian. (2010). Optimasi Penjadwalan Mata Kuliah Dengan Menggunakan Algoritma Particle Swarm Optimization (PSO). Politeknik Elektronika Negeri Surabaya-Institut Teknologi Sepuluh Nopember. Surabaya. Gazali, Harry Rahmat. (2010). Penjadwalan Kuliah Menggunakan Genetic Algortihm. Politeknik Caltex Riau. Pekanbaru. Shiau, Der-Fang,. (2011). A Hybrid Particle Swarm Optimization for a University Course Scheduling Problem with Flexible Preferences. Fooyin University, Kaohsiung, Taiwan, ROC.http://www.elsevier.com/locate/eswa Suyanto. 2010. Algoritma Optimasi Deterministik atau Probabilistik, Graha Ilmu, Yogyakarta. Baker, Kenneth R., Trietsch, Dan (2009). Principles of Sequencing and Scheduling.Wiley,First Edition . Morton, Thomas., Pentico, David W., (1993). Heuristic Scheduling Systems: With Applications to Production Systems and Project Management. WileyIntersience, First Edition. Yu, J. (2006). Scheduling of an assembly line with a multi-objective genetic algorithm. International Journal of Advanced Manufacturing Technology, 551-555. Oner,A., Ozcan,S., Dengi, D. (2011). Optimization Of University Course Scheduling Problem With A Hybrid Artificial Bee Colony Algorithm. Evolutionary Computation (CEC), 2011 IEEE Congress on, 339 346.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
195
Kennedy J. & Eberhart R. (Nov. 1995). Particle Swarm Optimization. International Conference on Neural Networks, vol. 4, Nov 1995, 1942-1948. Haupt, R.L.. Haupt, S.E. (2004). Practical Genetic Algorithm, Second Edition. Wiley, Second Edition.
Wati, Dwi Ana Ratna. Rochman, Yuli Agusti. 2012, Model Penjadwalan Matakuliah Secara Otomatis Berbasis Algoritma Particle Swarm Optimization (PSO), https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2 &cad=rja&ved=0CC8QFjAB&url=http%3A%2F%2Fjournal.unpar.ac.id% 2Findex.php%2Fjrsi%2Farticle%2FviewFile%2F782%2F850&ei=oLtXUs 6tEoexrge5uYGYDQ&usg=AFQjCNFH74yo09TTmG19Ar4omZkGR7pG 3Q&sig2=F8hT_89SWs7xRDcRotGt-Q&bvm=bv.53899372,d.bmk , [pdf] , diakses pada tanggal 11 Oktober 2013.
Singiresu S. Rao. Engineering Optimization, Theory and Practice.John Wiley & Sons, New York, fourth edition, 2009. Bansal, J. C., Singh, P. K., M., Verma, A., Jadon, S. S., Ajith A. “Inertia Weight Strategies in Particle Swarm Optimization”. Third World Congress on Nature and Biologically Inspired Computing. 640-647.2011.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
196
LAMPIRAN 1. Tabel Matakuliah. No
Kode MatKul
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
PDW 2122 USD 120 PDW 2125 PDW 2126 PDW 2119 PDW 2124 PDW 2106 PDW 2155 PDW 2107 PDW 2123 PDW 2126 PDW 2343 PDW 2319 PDW 2336 PDW 2345 USD 123 PDW 2335 PDW 2344 PDW 2356 PDW 2334 PDW 2343 PDW 2510 PDP 25x3 PDW 2554 USD 224 PDP 25x1 PDW 2553 PDW 2539 PDW 2552 PDW 2557 PDW 2557 USD 325
Matakuliah
Bahasa dan Sastra Indonesia Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 IPA Fisika logika Keterampilan Menulis Ilmiah PKMKT IPA Biologi Bahasa Inggris 1 Pendidikan IPA (Fisika) PBPD 2 Permainan Anak PBSI 1 Pendidikan Pancasila IPS Pendidikan Matematika 1 Statistik Pendidikan PKn Pendidikan IPA Kesehatan Sekolah Matakuliah Pilihan 3 (International Curr.3) Manajemen Kelas Pendidikan Kewarganegaraan Matakuliah Pilihan 1 (International Curr.1) Pengembangan Kurikulum dan Pembelajaran Probaling SD 1 Pembelajaran Terpadu Metode Penelitian Pendidikan Metode Penelitian Pendidikan (2) Filsafat Ilmu Pengetahuan
Sem.
Jenis
1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 7
Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori Teori
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Tabel Dosen No
NIP
NAMA
JENIS
1 2 3 4 5 6 7 8 9 10 11 12
D1 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D2
Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap
13
D20
14 15
D21 D22
16
D23
17 18 19 20 21
D24 D25 D26 D27 D28
22
D29
23 24 25 26 27 28 29 30 31 32 33
D3 D30 D31 D32 D33 D34 D35 D36 D4 D5 D6
AG. Sujatmiko BS., M.Hum. Christiyanti A., S.Si., M.Pd. Th. Laksmi W. S.Pd., M.Hum. Pdt. Jonsa Manulang, M.Th. Agnes H., M.T., M.Sc. Dr. C. Teguh Dalyono, M.S. Drs. YB Adimassana., M.A. M. Agustina Amelia, M.Si Lathifatul Izzah, M.Ag. Drs. St. Kartono, M.Hum. Ir. Sri Agustiningsih S., M.Si. Apri Damai S., S.S., M.Pd. Laurensia Aptik E., S.Psi., M.A. Irine Kurniastuti, M.Psi. Rusmawan, S.Pd., M.Pd. Andri Anugrahana, S.Pd., M.Pd. Drs. P. Wahana, M.Hum. Catur Rismiati, M.A., Ed.D. E. D. Mayasari, S.Psi., M.A. Dra. Haniek Sri P., M.Pd. Dr. H. Purwanta, M.A. Imma Indra D.W., S.H., M.Hum Brigitta Erlita TA., M.Psi. Widi Astutik, M.Pd. Yoh Sabari Th. Yunia S., S.Pd., M.Hum. Song Kyu Hee, M.Pd. Eny Winarti, Ph.D. Drs. Puji Purnomo, M.Si. Dra. Maslichah Asyari M.Pd. Galih Kusumo, M.Pd. Dra. Ignatia Esti S., M.Hum. M. Melani Ika S., M.Pd.
Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap Tetap
197
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
D7
35 36
D8 D9
W. Wido Sari, S.Si., M.Biotech G. Ari Nugraha, S.J.,M.A. Esther Mayliana, M.Pd.
198
Tetap Tetap Tetap
3. Tabel Kelas Matakuliah. No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Matakuliah Bahasa dan Sastra Indonesia Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 IPA Fisika logika Keterampilan Menulis Ilmiah PKMKT IPA Biologi Bahasa Inggris 1 Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 IPA Fisika logika Keterampilan Menulis Ilmiah PKMKT IPA Biologi Bahasa Inggris 1 Bahasa dan Sastra Indonesia IPA Fisika logika Keterampilan Menulis Ilmiah PKMKT IPA Biologi Bahasa Inggris 1
Kelas Sem. Dosen Pegampu A 1 Apri Damai SK, S.S., M.Pd A 1 Dra. Ignatia Esti S., M.Hum. A 1 Christiyanti A., S.Si., M.Pd. A 1 Th. Laksmi W., M.Hum A 1 Brigitta Erlita TA., S.Psi., M.Psi. A 1 M.Melani Ika S., M.Pd A 1 G. Ari Nugraha, S.J.,M.A. A 1 Galih K. S.Pd. M.Pd. A 1 Esther M., M.Pd. A 1 Wahyu Wido S., S.Si., M.Biotech A 1 AG. Sujatmiko BS., M.Hum. B 1 Jonsa Manullang B 1 Christiyanti A., S.Si., M.Pd. B 1 Th. Laksmi W., M.Hum B 1 Brigitta Erlita TA., S.Psi., M.Psi. B 1 M.Melani Ika S., M.Pd B 1 G. Ari Nugraha, S.J.,M.A. B 1 Galih K. S.Pd. M.Pd. B 1 Esther M., M.Pd. B 1 Agnes Herlina DH, MT., M.Si. B 1 AG. Sujatmiko BS., M.Hum. B 1 Apri Damai SK, S.S., M.Pd C 1 M.Melani Ika S., M.Pd C 1 G. Ari Nugraha, S.J.,M.A. C 1 Galih K. S.Pd. M.Pd. C 1 Esther M., M.Pd. C 1 Agnes Herlina DH, MT., M.Si. C 1 AG. Sujatmiko BS., M.Hum.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Bahasa dan Sastra Indonesia Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 PKMKT IPA Biologi Bahasa Inggris 1 Bahasa dan Sastra Indonesia Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 IPA Fisika logika Keterampilan Menulis Ilmiah Bahasa dan Sastra Indonesia Pendidikan Agama Matematika 1 Bahasa Inggris 1 (2) PBPD 1 IPA Fisika logika PKMKT IPA Biologi Bahasa Inggris 1 Keterampilan Menulis Ilmiah Pendidikan IPA (Fisika) PBPD 2 Permainan Anak PBSI 1 Pendidikan Pancasila IPS Pendidikan Matematika 1 Statistik Pendidikan PKn
C C C C C D D D D D D D D D D D E E E E E E E E E E E A A A A A A A A A
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3
199
Apri Damai SK, S.S., M.Pd Dra. Ignatia Esti S., M.Hum. Christiyanti A., S.Si., M.Pd. Th. Laksmi W., M.Hum Brigitta Erlita TA., S.Psi., M.Psi. Esther M., M.Pd. Wahyu Wido S., S.Si., M.Biotech AG. Sujatmiko BS., M.Hum. Galih K. S.Pd. M.Pd. Lathifatul Izzah, M.Ag. M. Agustina Amelia, M.Si. Th. Laksmi W., M.Hum Brigitta Erlita TA., S.Psi., M.Psi. M.Melani Ika S., M.Pd Drs. YB Adimassana, M.A. Drs. St. Kartono, M.Hum. Galih K. S.Pd. M.Pd. Dra. Ignatia Esti S., M.Hum. M. Agustina Amelia, M.Si. Th. Laksmi W., M.Hum Brigitta Erlita TA., S.Psi., M.Psi. Ir. Sri Agustiningsih S., M.Si Drs. YB Adimassana, M.A. Esther M., M.Pd. Agnes Herlina DH, MT., M.Si. AG. Sujatmiko BS., M.Hum. Drs. St. Kartono, M.Hum. M.Melani Ika S., M.Pd Laurentia Aptik E., S.Psi., M.A. Irine Kurniastuti, M.Psi. Galih K. S.Pd. M.Pd. Drs. P. Wahana, M.Hum. Rusmawan, S.Pd., M.Pd. Andri Anugrahana, M.Pd. M. Agustina Amelia, M.Si. DR. H. Purwanta
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Pendidikan IPA PBPD 2 Permainan Anak PBSI 1 Pendidikan Pancasila IPS Pendidikan Matematika 1 Statistik Pendidikan PKn Pendidikan IPA Pendidikan IPA (Fisika) Pendidikan Pancasila IPS Pendidikan Matematika 1 Statistik Pendidikan PKn Pendidikan IPA Pendidikan IPA (Fisika) PBPD 2 Permainan Anak PBSI 1 PKn Pendidikan IPA Pendidikan IPA (Fisika) PBPD 2 Permainan Anak PBSI 1 Pendidikan Pancasila IPS Pendidikan Matematika 1 Statistik Pendidikan Statistik Pendidikan Pendidikan IPA (Fisika) PBPD 2 Permainan Anak PBSI 1
A B B B B B B B B B B C C C C C C C C C C D D D D D D D D D D E E E E E
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
200
Wahyu Wido S., S.Si., M.Biotech Laurentia Aptik E., S.Psi., M.A. E. Desiana Mayasari, S.Psi., M.A. Galih K. S.Pd. M.Pd. Drs. P. Wahana, M.Hum. Rusmawan, S.Pd., M.Pd. Dra. Haniek SP, M.Pd. Catur Rismiati, M.A., Ed.D. DR. H. Purwanta Wahyu Wido S., S.Si., M.Biotech M.Melani Ika S., M.Pd Imma Indra D.W., S.H Rusmawan, S.Pd., M.Pd. Andri Anugrahana, M.Pd. Catur Rismiati, M.A., Ed.D. Drs. P. Wahana, M.Hum. Wahyu Wido S., S.Si., M.Biotech M.Melani Ika S., M.Pd Laurentia Aptik E., S.Psi., M.A. E. Desiana Mayasari, S.Psi., M.A. Galih K. S.Pd. M.Pd. Drs. P. Wahana, M.Hum. Agnes Herlina DH, MT., M.Si. M.Melani Ika S., M.Pd E. Desiana Mayasari, S.Psi., M.A. Irine Kurniastuti, M.Psi. Apri Damai SK, S.S., M.Pd Imma Indra D.W., S.H Rusmawan, S.Pd., M.Pd. Andri Anugrahana, M.Pd. Laurentia Aptik E., S.Psi., M.A. M. Agustina Amelia, M.Si. M.Melani Ika S., M.Pd E. Desiana Mayasari, S.Psi., M.A. Irine Kurniastuti, M.Psi. Apri Damai SK, S.S., M.Pd
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
Pendidikan Pancasila IPS Pendidikan Matematika 1 PKn Pendidikan IPA Kesehatan Sekolah International Curr.3 Manajemen Kelas Pendidikan Kewarganegaraan International Curr.1 PKP Probaling Pembelajaran Terpadu Metode Penelitian Pendidikan Metode Penelitian Pendidikan (2) Pendidikan Kewarganegaraan International Curr.1 PKP Probaling Pembelajaran Terpadu Metode Penelitian Pendidikan Metode Penelitian Pendidikan (2) Kesehatan Sekolah International Curr.3 Manajemen Kelas Probaling Pembelajaran Terpadu Metode Penelitian Pendidikan Metode Penelitian Pendidikan (2) Kesehatan Sekolah International Curr.3 Manajemen Kelas Pendidikan Kewarganegaraan International Curr.1 PKP Metode Penelitian Pendidikan (2)
E E E E E A A A A A A A A A A B B B B B B B B B B C C C C C C C C C C D
3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
201
Widi Astutik., M.Pd Rusmawan, S.Pd., M.Pd. Christiyanti A., S.Si., M.Pd. Drs. P. Wahana, M.Hum. Agnes Herlina DH, MT., M.Si. Song Kyu Hee, M.Pd Eny Winarti, Ph.D. Th. Yunia S., S.Pd., M.Hum. Johannes Sabari Irine Kurniastuti, M.Psi. Drs. Puji P., M.Si. tidak pakai dosen pegampu Rusmawan, S.Pd., M.Pd. Brigitta Erlita TA., S.Psi., M.Psi. Catur Rismiati, M.A., Ed.D. Johannes Sabari Wahyu Wido S., S.Si., M.Biotech Drs. Puji P., M.Si. tidak pakai dosen pegampu Dra. Maslichah A., M.Pd. Laurentia Aptik E., S.Psi., M.A. E. Desiana Mayasari, S.Psi., M.A. Song Kyu Hee, M.Pd Eny Winarti, Ph.D. Th. Yunia S., S.Pd., M.Hum. tidak pakai dosen pegampu Drs. Puji P., M.Si. Irine Kurniastuti, M.Psi. Catur Rismiati, M.A., Ed.D. Song Kyu Hee, M.Pd Eny Winarti, Ph.D. Th. Yunia S., S.Pd., M.Hum. Drs. YB Adimassana, M.A. E. Desiana Mayasari, S.Psi., M.A. Drs. Puji P., M.Si. Th. Yunia S., S.Pd., M.Hum.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
Kesehatan Sekolah International Curr.3 Manajemen Kelas Pendidikan Kewarganegaraan International Curr.1 PKP Probaling Pembelajaran Terpadu Metode Penelitian Pendidikan Pendidikan Kewarganegaraan International Curr.1 PKP Probaling Pembelajaran Terpadu Metode Penelitian Pendidikan Metode Penelitian Pendidikan (2) Kesehatan Sekolah International Curr.3 Manajemen Kelas Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan
D D D D D D D D D E E E E E E E E E E A B C D E F
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 7 7 7 7 7 7
202
Song Kyu Hee, M.Pd Laurentia Aptik E., S.Psi., M.A. Dra. Ignatia Esti S., M.Hum. Drs. YB Adimassana, M.A. Andri Anugrahana, M.Pd. Eny Winarti, Ph.D. tidak pakai dosen pegampu Agnes Herlina DH, MT., M.Si. G. Ari Nugraha, S.J.,M.A. Johannes Sabari Dra. Haniek SP, M.Pd. Eny Winarti, Ph.D. tidak pakai dosen pegampu Agnes Herlina DH, MT., M.Si. Th. Yunia S., S.Pd., M.Hum. Eny Winarti, Ph.D. Song Kyu Hee, M.Pd Laurentia Aptik E., S.Psi., M.A. Dra. Ignatia Esti S., M.Hum. Dr.C. Teguh Dalyono, M.S Dr.C. Teguh Dalyono, M.S Dr.C. Teguh Dalyono, M.S Dr.C. Teguh Dalyono, M.S Drs. P. Wahana, M.Hum. Drs. P. Wahana, M.Hum.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
203
4. Tabel Permintaan. No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
Matakuliah PKMKT PKMKT PKMKT PKMKT PKMKT Bahasa dan Sastra Indonesia Bahasa dan Sastra Indonesia Bahasa dan Sastra Indonesia Bahasa dan Sastra Indonesia Bahasa dan Sastra Indonesia PBSI 1 PBSI 1 PBSI 1 PBSI 1 PBSI 1 Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Filsafat Ilmu Pengetahuan Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling Probaling
Kelas Sem. Hari Jam A 1 RABU 13.00-16.00 B 1 RABU 10.00-13.00 C 1 KAMIS 10.00-13.00 D 1 KAMIS 13.00-16.00 E 1 JUMAT 10.00-13.00 A 1 SELASA 07.00-10.00 B 1 SENIN 07.00-10.00 C 1 SELASA 10.00-13.00 D 1 KAMIS 10.00-13.00 E 1 KAMIS 13.00-16.00 A 3 SELASA 10.00-13.00 B 3 RABU 10.00-13.00 C 3 RABU 13.00-16.00 D 3 SELASA 13.00-16.00 E 3 SENIN 10.00-13.00 A 7 SENIN 13.00-16.00 B 7 SENIN 16.00-19.00 C 7 SELASA 16.00-19.00 D 7 SELASA 13.00-16.00 E 7 KAMIS 13.00-16.00 F 7 KAMIS 16.00-19.00 A 5 KAMIS 07.00-10.00 A 5 KAMIS 10.00-13.00 A 5 KAMIS 13.00-16.00 B 5 KAMIS 07.00-10.00 B 5 KAMIS 10.00-13.00 B 5 KAMIS 13.00-16.00 C 5 KAMIS 07.00-10.00 C 5 KAMIS 10.00-13.00 C 5 KAMIS 13.00-16.00 D 5 KAMIS 07.00-10.00 D 5 KAMIS 10.00-13.00 D 5 KAMIS 13.00-16.00 E 5 KAMIS 07.00-10.00 E 5 KAMIS 10.00-13.00 E 5 KAMIS 13.00-16.00
Ruang R-Lab SBK R-Lab SBK R-Lab SBK R-Lab SBK R-Lab SBK R-2 PGSD 4 R-2 PGSD 4 R-2 PGSD 4 R-2 PGSD 4 R-2 PGSD 4 R-Listening R-Listening R-Listening R-Listening R-Listening R-1 PGSD 1 R-1 PGSD 1 R-1 PGSD 1 R-1 PGSD 1 R-1 PGSD 1 R-1 PGSD 1 tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai tidak pakai