BAB V IMPLEMENTASI DAN PENGUJIAN
V.1 Implementasi Perangkat Lunak Perangkat lunak yang dibangun adalah Aplikasi DedSched menggunakan basis data deduktif. V.1.1 Batasan Perangkat Lunak Perangkat lunak yang dikembangkan untuk melakukan proses penjadwalan memiliki batasan sebagai berikut: 1. Pre-processing data fakta dan batasan dilakukan oleh pengguna mengikuti definisi model data yang telah dijelaskan pada Subbab III.1 dan Subbab III.2. Perangkat lunak yang dibangun tidak mendukung pre-processing data secara langsung. Apabila pengguna sudah memiliki data dalam bentuk lain, pengguna harus melakukan pendefinisian ulang data sesuai dengan definisi model data agar data dapat digunakan pada sistem penjadwalan.
V.1.2 Lingkungan Implementasi Spesifikasi perangkat keras yang digunakan dalam implementasi, antara lain: 1. Processor: Intel(R) Core(TM)2 CPU T5600 1.83 GHz 2. Memori (RAM): 1014 MB 3. Harddisk: 120 GB
Spesifikasi perangkat lunak yang digunakan dalam implementasi, antara lain: 1. Sistem Operasi: Windows Vista Business 2. Server: Apache / 2.0.58 dan IIS 7. Aplikasi DedSched dikembangkan pada server Apache, sedangkan web server inferensi menggunakan IIS 7. 3. Browser: Mozilla Firefox 2.0.0.6 4. PHP: PHP 5.14 5. PSP (Prolog Server Pages): PSP 0.4 6. RDBMS: MySQL 5.0.22-community-nt
V-1
V-2 7. Mesin inferensi: SWI-Prolog 5.5.17 8. Development Tools: WAMP 1.6.4 (mencakup server Apache, PHP, dan MySQL), Notepad++ 4.1.2 V.1.3 Implementasi Kelas Perangkat lunak dikembangkan dengan bahasa pemrograman HTML, PHP, dan PSP. RDBMS yang digunakan oleh MySQL. Daftar nama file fisik perangkat lunak setiap kelas dapat dilihat pada Tabel V-1. Tabel V-1 Daftar nama file fisik perangkat lunak
No. Nama Kelas
Nama File Fisik
1.
Antarmuka
index.html
2.
KoneksiDB
db_function.php
3.
KontrolDB
page_1.php, page_2.php, page_3.php, page_4.php, page_5.php
4.
Scheduler
page_3.php, scheduler_function.php
5.
Optimizer
page_4.php
6.
Viewer
page_5.php
7.
DDBMS
apply_rules_priority.prolog, apply_rules_typeI_typeII.prolog
V.1.4 Implementasi Penggunaan Batasan Untuk menerapkan batasan pada sistem penjadwalan, perangkat lunak melakukan inferensi pada 3 goal, yaitu: 1. Goal untuk memberikan bobot prioritas pada setiap resource. Pada sistem penjadwalan mata kuliah goal ini memiliki 4 parameter, yaitu Kode mata kuliah, Nomor Kelas Mata Kuliah, SKS dan Jumlah Bobot. Jumlah Bobot merupakan parameter keluaran yang digunakan untuk menentukan prioritas setiap resource. Contoh: prioritas_mk(Kode_mk, Kelas_mk, SKS, Jml_bobot) 2. Goal untuk mencari pasangan slot jadwal yang dapat digunakan. Pada sistem penjadwalan mata kuliah goal ini memiliki 7 parameter, yaitu Prioritas, Kode mata kuliah, Nomor kelas mata kuliah, Nomor SKS, Kode waktu, Kode ruang, dan Jumlah Bobot. Kode waktu dan Kode ruang adalah parameter keluaran yang berisi pasangan slot jadwal yang tersedia untuk kelas mata kuliah yang dijadwalkan. Jumlah Bobot merupakan parameter keluaran yang digunakan untuk menentukan prioritas setiap pasangan slot jadwal solusi. Contoh: slot_avail(Prioritas, Kode_mk, Kelas_mk, SKS_no, Kode_waktu, Kode_ruang, Jml_bobot)
3. Goal untuk mengecek pasangan slot jadwal yang dihasilkan.
V-3 Pada sistem penjadwalan mata kuliah goal ini memiliki 5 parameter, yaitu Kode mata kuliah, Nomor kelas mata kuliah, Nomor SKS, Kode waktu, dan Kode ruang. Penggunaan dari goal ini adalah untuk mendapatkan informasi apakah slot jadwal yang telah dialokasikan valid atau tidak. Contoh: cek_slot(Kode_mk, Kelas_mk, SKS_no, Kode_waktu, Kode_ruang)
V.2 Pengujian Perangkat Lunak Pengujian perangkat lunak dilakukan pada studi kasus sistem penjadwalan mata kuliah ITB. Pengujian ini dibagi menjadi tiga bagian, yaitu: 1. Pengujian normal. 2. Pengujian dengan kasus jumlah slot mencukupi dan tidak ditemukan hasil. 3. Pengujian dengan kasus jumlah slot lebih sedikit dibandingkan dengan jumlah resource. V.2.1 Tujuan Pengujian Pengujian dilakukan dengan tujuan untuk mengetahui apakah perangkat lunak berjalan sesuai dengan fungsinya, yaitu: 1. Manipulasi Resource 2. Manipulasi Batasan 3. Proses Penjadwalan 4. Mengatur Ulang Jadwal Solusi 5. Menampilkan Tabel Waktu Solusi Jadwal
V.2.2 Lingkungan Pengujian Spesifikasi perangkat keras yang digunakan dalam pengujian, antara lain: 1. Processor: Intel(R) Core(TM)2 CPU T5600 1.83 GHz 2. Memori (RAM): 1014 MB 3. Harddisk: 120 GB
Spesifikasi perangkat lunak yang digunakan dalam pengujian adalah: 1. Sistem Operasi: Windows Vista Business 2. Server: Apache / 2.0.58 dan IIS 7 3. Browser: Mozilla Firefox 2.0.0.6 4. PSP (Prolog Server Pages): PSP 0.4 5. RDBMS: MySQL 5.0.22-community-nt
V-4 6. Mesin inferensi: SWI-Prolog 5.5.17 7. Development Tools: WAMP 1.6.4 (mencakup server Apache, PHP, dan MySQL), Notepad++ 4.1.2
V.2.3 Data Pengujian Data yang digunakan untuk pengujian terbagi menjadi dua, yaitu fakta resource dan batasan. Fakta resource yang digunakan dapat dilihat pada Tabel V-2. Tabel V-2 Data pengujian: Fakta resource
No 1.
2.
3.
4.
5.
6.
Fakta resource
Daftar atribut
Contoh nilai atribut
Mata kuliah
a. Kode mata kuliah
‘IF3211’
b. Nama mata kuliah
‘Sistem Basis Data’
c. SKS
3
d. Jumlah kelas mata kuliah
2
e. Sifat
‘Wajib’
a. Kode mata kuliah
‘IF3211’
b. Nomor kelas
‘01’
c. SKS
3
d. Tingkat
3
e. NIP dosen
‘132164563’
f. Jumlah perkiraan peserta
50
a. NIP dosen
‘132164563’
b. Nama dosen
‘Tricya Widagdo’
c. Prodi
‘IF’
a. Kode ruang
‘7606’
b. Kapasitas ruang
76
c. Letak lantai
3
a. Kode waktu
‘11’
b. Hari
‘Senin’
c. Jam
’07.00-08.00’
a. Id (urutan penjadwalan)
2
b. Kode mata kuliah
‘IF3211’
Kelas mata kuliah
Dosen
Ruangan kelas
Waktu
Jadwal
c. Kelas mata kuliah (nomor ‘01’ kelas) d. Kode waktu
‘11’
e. Kode ruang
‘7606’
V-5
Data pengujian yang digunakan dan pendefinisiannya dalam basis data deduktif dapat dilihat pada Lampiran E. Data fakta resource yang digunakan dalam pengujian dapat dilihat pada Lampiran E.1. Batasan yang digunakan dalam pengujian dapat dilihat pada Lampiran E.2. V.2.4 Skenario Pengujian Pengujian dilakukan dengan empat skenario, yaitu: 1. Pengujian normal, dibagi menjadi dua, yaitu: a. Pengujian normal dengan tingkat penggunaan slot rendah. b. Pengujian normal dengan tingkat penggunaan slot tinggi. 2. Pengujian dengan kasus jumlah slot mencukupi dan tidak ditemukan hasil. 3. Pengujian dengan kasus jumlah slot lebih sedikit dibandingkan dengan jumlah resource. 4. Pengujian pengaturan slot jadwal normal dan dengan kasus jadwal solusi hasil melanggar batasan yang ada.
Untuk menjalankan skenario pengujian, berikut adalah prosedur pengujian yang dilakukan: 1. Jalankan service WAMPApache dan WAMPMySQLD. 2. Jalankan service IIS7. 3. Buka halaman web aplikasi dengan menggunakan server lokal dan masukkan URL server lokal pada browser yang digunakan. Contoh URL pada browser: http://localhost/scheduler/index.html 4. Pilih menu Manipulasi resource. 5. Definisikan resource sesuai dengan skenario pengujian yang digunakan 6. Tambahkan fakta resource. 7. Pilih menu Manipulasi Batasan. 8. Definisikan batasan prioritas, tipeI dan tipeII. 9. Definisikan penggunaan batasan prioritas, penggunaan batasan penjadwalan, dan pengecekan slot jadwal. 10. Plih menu Menjadwalkan Resource. 11. Tekan tombol Hapus Jadwal Sebelumnya, jika sebelumnya sudah melakukan proses penjadwalan. Setelah kotak dialog berisi pesan “Jadwal sudah dihapus”, tekan Tombol OK. 12. Tekan Tombol Jadwalkan untuk memulai proses penjadwalan. 13. Tunggu hingga proses penjadwalan resource selesai.
V-6 14. Tekan Esc untuk menghentikan proses penjadwalan. 15. Setelah proses selesai, tekan Simpan Proses untuk menyimpan proses penjadwalan yang telah dilakukan. 16. Pilih menu Pengaturan Jadwal Solusi, untuk mengatur ulang jadwal solusi yang dihasilkan. * Khusus skenario pengujian 4, Pada langkah ini, tekan tombol Periksa Jadwal untuk melakukan pengecekan terhadap semua resource yang telah dijadwalkan apakah memenuhi batasan tipe I atau tidak. 17. Pilih menu Tampilkan Jadwal Solusi untuk melihat jadwal solusi dalam bentuk tabel waktu. V.2.5 Hasil Pengujian V.2.5.1 Pengujian I 1. Pengujian normal dengan tingkat penggunaan slot rendah menggunakan data uji fakta sebagai berikut: a. Fakta kelas mata kuliah: 6 kelas mata kuliah dengan total sks yang harus dijadwalkan adalah 16. Data fakta ini dapat dilihat pada Tabel V-3. Tabel V-3 Pengujian I: Fakta kelas mata kuliah
Kode_mk
No_kelas
SKS
Jml_peserta
IF1282
01
2
5
IF3111
01
3
50
IF3111
02
3
55
IF4062
01
2
50
IF40Z1
01
3
150
IF5054
01
3
50
b. Fakta waktu: 12 slot waktu Kode waktu yang digunakan: 11, 12, 13, 14, 15, 16, 17, 18, 19, 110, 31, 36.
c. Fakta ruangan: 7 ruangan. Data fakta ini dapat dilihat pada Tabel V-4. Tabel V-4 Pengujian I: Fakta ruangan
Kode ruang
Kapasitas
7602
150
7603
50
7604
60
7606
55
V-7 7608
35
7609
60
7610
55
Data pengujian batasan yang digunakan dapat dilihat pada Lampiran D-2. Pada pengujian ini didapatkan hasil sebagai berikut: a.
Slot waktu yang digunakan: 8 slot waktu
b.
Slot ruang yang digunakan: 3 ruang
c.
Total slot jadwal yang digunakan: 16 slot jadwal
d.
Tingkat penggunaan ruang: (3 / 7) * 100% = 42,9%
e.
Tingkat penggunaan slot waktu: (8 / 12) * 100% = 66,7%
f.
Tingkat penggunaan slot jadwal: (16 / 84) * 100% = 19,04%
Jadwal solusi untuk setiap kelas mata kuliah berhasil ditemukan dan terdapat backtrack beberapa kali.
2. Pengujian normal dengan tingkat penggunaan slot tinggi menggunakan data uji sebagai berikut: a. Fakta kelas mata kuliah: 39 kelas mata kuliah, dengan total sks yang harus dijadwalkan adalah 112. b. Fakta waktu: 50 slot waktu, yaitu 5 slot hari dan 10 slot jam. c. Fakta ruangan: 11 ruangan dan 4 laboratorium dasar
Detail dari data uji fakta dan batasan dapat dilihat pada Lampiran E-1 dan Lampiran E-2. Pada pengujian ini didapatkan hasil sebagai berikut: a.
Slot waktu yang digunakan: 42 slot waktu
b.
Slot ruang yang digunakan: 6 ruang
c.
Total slot jadwal yang digunakan: 112 slot jadwal
d.
Tingkat penggunaan ruang: (6 / 11) * 100% = 54,5% (4 laboratorium dasar tidak dimasukkan ke dalam perhitungan)
e.
Tingkat penggunaan slot waktu: (42 / 50) * 100% = 84%
f.
Tingkat penggunaan slot jadwal: (112 / 550) * 100% = 20,4% (4 laboratorium dasar tidak dimasukkan ke dalam perhitungan)
Jadwal solusi untuk setiap kelas mata kuliah berhasil ditemukan dengan intensitas backtrack tinggi.
V-8 V.2.5.2 Pengujian II Pengujian dengan kasus jumlah slot mencukupi dan tidak ditemukan hasil data uji fakta sebagai berikut: a. Fakta kelas mata kuliah: 6 kelas mata kuliah, dengan total sks yang harus dijadwalkan adalah 17. Data fakta ini dapat dilihat pada Tabel V-5. Tabel V-5 Pengujian II: Fakta kelas mata kuliah
Kode_mk
No_kelas
SKS
Jml_peserta
IF1282
01
3
5
IF3111
01
3
50
IF3111
02
3
60
IF4061
01
3
50
IF40Z1
01
3
150
IF5054
01
2
50
b. Fakta waktu: 10 slot waktu Kode waktu yang digunakan: 11, 12, 16, 17, 21, 22, 26, 27, 31, dan 36.
c. Fakta ruangan: 2 ruangan Kode ruang yang digunakan: 7602 kapasitas 150, 7609 kapasitas 60.
Data pengujian batasan yang digunakan dapat dilihat pada Lampiran E-2. Dari pengujian yang telah dilakukan didapatkan hasil, yaitu: jadwal solusi tidak berhasil ditemukan dan backtrack dilakukan hingga tidak ada lagi slot yang dapat dicoba untuk digunakan.
V.2.5.3 Pengujian III Pengujian dengan kasus slot lebih sedikit dibandingkan dengan jumlah resource menggunakan data uji sebagai berikut: a. Fakta kelas mata kuliah: 6 kelas mata kuliah, dengan total sks yang harus dijadwalkan adalah 17. Data fakta ini dapat dilihat pada Tabel V-6. Tabel V-6 Pengujian III: Fakta kelas mata kuliah
Kode_mk
No_kelas
SKS
Jml_peserta
IF1282
01
3
5
IF3111
01
3
50
IF3111
02
3
60
V-9 Kode_mk
No_kelas
SKS
Jml_peserta
IF4061
01
3
50
IF40Z1
01
3
150
IF5054
01
2
50
b. Fakta waktu: 5 slot waktu Kode waktu yang digunakan: 11, 12, 17, 31, dan 21.
c. Fakta ruangan: 2 ruangan Kode ruang yang digunakan: 7602 kapasitas 150, 7609 kapasitas 60.
Data pengujian batasan yang digunakan dapat dilihat pada Lampiran E-2. Dari pengujian yang telah dilakukan didapatkan hasil, yaitu: proses penjadwalan tidak dilakukan dengan pemberitahuan bahwa slot yang tersedia lebih kecil daripada jumlah resource yang harus dijadwalkan.
V.2.5.4 Pengujian IV Pengujian pengaturan jadwal solusi menggunakan data uji jadwal hasil yang dapat dilihat pada Gambar V-1. Pengujian pertama: Kelas mata kuliah yang diatur jadwalnya adalah IF5054 kelas 01 sks ke-3, slot waktu hari Selasa jam 16.0017.00 (ditandai dengan huruf cetak tebal). Kelas mata kuliah ini diganti ruangannya menjadi 7602. Lalu, pengecekan dilakukan dan didapat bahwa slot jadwal kelas mata kuliah IF5054 kelas 01 sks ke-3 adalah valid.
Pengujian kedua: Kelas mata kuliah yang diatur jadwalnya adalah IF5054 kelas 01 sks ke-1, slot waktu hari Kamis jam 15.00-16.00 (ditandai dengan huruf cetak tebal). Kelas mata kuliah ini diganti pasangan slot jadwalnya menjadi slot waktu 59 dan ruang 7609. Lalu, pengecekan dilakukan dan didapat bahwa slot jadwal kelas mata kuliah IF5054 kelas 01 sks ke-1 dan IF5054 kelas 01 sks ke-2 adalah tidak valid. Untuk membuat kedua slot jadwal, sks ke-1 dan sks ke-2, menjadi valid, terdapat beberapa alternatif solusi, dua di antaranya yaitu: a. SKS ke-1 diganti menjadi slot waktu 49 dan ruang 7603. b. SKS ke-2 diganti menjadi slot waktu 510 dan ruang 7609.
V-10
Gambar V-1 Data Uji Pengujian Pengaturan Ulang Solusi Jadwal
V.2.6 Evaluasi Hasil Pengujian Berdasarkan pengujian yang telah dilakukan, diperoleh beberapa kesimpulan sebagai berikut: 1. Tujuan pengujian berhasil dicapai dan setiap fungsi perangkat lunak berjalan sesuai dengan yang diharapkan.
V-11 2. Pengkonversian batasan yang tidak benar akan menyebabkan hasil tidak sesuai dengan yang diharapkan. 3. Penjadwalan membutuhkan waktu yang lama karena adanya proses backtracking yang membutuhkan proses I/O yang besar untuk melakukan penyimpanan pasangan slot jadwal untuk setiap tahap dalam proses penjadwalan. 4. Hasil penjadwalan terkonsentrasi pada slot waktu tertentu, seperti Senin dan Rabu karena penjadwalan menggunakan konsep algoritma greedy, sehingga slot yang dialokasikan adalah slot yang tersedia dan terbaik pada satu waktu tertentu dengan kriteria terbaik adalah pasangan slot yang memiliki jumlah bobot terbesar dan memiliki urutan pertama dalam daftar pasangan slot jadwal solusi.