V-1
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
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)
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
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 Fakta resource Daftar atribut Contoh nilai atribut 1. 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’ 2. Kelas mata kuliah a. Kode mata kuliah ‘IF3211’
b. Nomor kelas ‘01’
c. SKS 3 d. Tingkat 3
e. NIP dosen ‘132164563’
f. Jumlah perkiraan peserta 50
3. Dosen a. NIP dosen ‘132164563’
b. Nama dosen ‘Tricya Widagdo’
c. Prodi ‘IF’
4. Ruangan kelas a. Kode ruang ‘7606’
b. Kapasitas ruang 76
c. Letak lantai 3
5. Waktu a. Kode waktu ‘11’
b. Hari ‘Senin’ c. Jam ’07.00-08.00’ 6. Jadwal a. Id (urutan penjadwalan) 2
b. Kode mata kuliah ‘IF3211’ c. Kelas mata kuliah (nomor
kelas)
‘01’
d. Kode waktu ‘11’
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.
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
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
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
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.00-17.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.
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.
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.