BAB IV PEMBANGUNAN PERANGKAT LUNAK Pada bab ini dijelaskan mengenai analisis dan perancangan perangkat lunak yang dibangun.
IV.1 Deskripsi Umum Perangkat Lunak Perangkat lunak yang dibangun diberi nama DedSched. DedSched adalah perangkat lunak berbasis web yang memanfaatkan basis data deduktif. Adapun alasan perangkat lunak berbasis web yaitu untuk memudahkan dalam mengimplementasikan perangkat lunak. DedSched dibangun untuk melakukan proses penjadwalan dari sejumlah resource dengan batasan-batasan tertentu dengan studi kasus penjadwalan mata kuliah. Masukan untuk DedSched adalah fakta dan batasan mengenai resource. Sedangkan keluarannya adalah tabel waktu yang berisi jadwal seluruh resource. DedSched dirancang sedemikian rupa agar dapat digunakan dengan data yang berbeda-beda dan tidak terbatas pada penjadwalan mata kuliah. Sistem basis data deduktif yang digunakan dikembangkan dengan menggunakan basis data relasional, mesin inferensi, dan web server inferensi. Pembahasan mengenai perancangan basis data deduktif ini dapat dilihat pada Subbab IV.2. Arsitektur perangkat lunak yang dibangun dapat dilihat pada Gambar IV-1.
Gambar IV-1 Arsitektur perangkat lunak
IV.2 Perancangan Basis Data Deduktif Basis data deduktif yang digunakan pada perangkat lunak yang dibangun terdiri dari dua komponen utama, yaitu basis data relasional (RDBMS) dan mesin inferensi. Selain itu, terdapat satu komponen pendukung, yaitu web server inferensi. Komponen pendukung ini digunakan oleh komponen utama untuk saling berkomunikasi. Alasan penggunaan basis data deduktif seperti ini karena tidak ditemukan aplikasi basis data deduktif yang dapat digunakan bersama aplikasi pengembang perangkat lunak.
IV-1
IV-2 Untuk mengimplementasikan basis data deduktif ini, diperlukan beberapa perangkat lunak pendukung, yaitu: 1. RDBMS, contoh: MySQL 2. Mesin inferensi, contoh: SWI-Prolog 3. PSP (Prolog Server Pages). PSP yang digunakan pada basis data deduktif ini adalah PSP versi 0.4 yang dapat diaplikasikan bersama mesin inferensi SWIProlog. Oleh karena itu, sebelum melakukan instalasi PSP, perangkat lunak SWIProlog harus terlebih dahulu terinstalasi. PSP yang digunakan pada basis data deduktif ini didapat dari: http://www.benjaminjohnston.com.au/ 4. Web Server Inferensi yang dapat melakukan parse pada file dalam bahasa PSP. Pada PSP versi 0.4, web server yang dapat digunakan adalah Apache pada Linux dan IIS (Internet Information Services) pada Windows. Konfigurasi IIS untuk dapat menjalankan PSP dapat dilihat pada Lampiran A.
Aplikasi DedSched melakukan sejumlah aksi untuk memperoleh hasil proses inferensi yang dilakukan oleh Mesin Inferensi, yaitu: 1. Mengambil semua fakta dari RDBMS. 2. Membangun suatu file prolog dalam bahasa PSP yang berisi fakta yang telah diambil. Contoh: facts.prolog 3. Mengambil semua batasan dari RDBMS. 4. Membangun suatu file prolog dalam bahasa PSP yang berisi batasan yang telah diambil. Contoh: rules_priority.prolog, rulesI.prolog, rulesII.prolog 5. Membangun suatu file prolog dalam bahasa PSP yang berisi penggunaan fakta dan penerapan
batasan.
Contoh:
apply_rules_priority.prolog,
apply_rules_typeI_typeI.prolog. File prolog dalam bahasa PSP inilah yang menjadi media komunikasi antara Aplikasi DedSched dengan Web Server Inferensi. 6. Melakukan request pada Web Server Inferensi untuk melakukan parse file prolog pada poin 5. 7. Menerima hasil mekanisme inferensi yang telah disesuaikan dalam bahasa PHP. 8. Menggunakan data yang diterima untuk proses selanjutnya, seperti menentukan prioritas berdasarkan bobot setiap fakta.
Bersamaan dengan aksi yang dilakukan oleh Aplikasi DedSched, Web Server Inferensi melakukan sejumlah aksi sebegai berikut: 1. Melakukan parse pada file prolog yang dibangun oleh Aplikasi DedSched. 2. Mengirimkan hasil parsing berupa query ke Mesin Inferensi untuk diproses.
IV-3 3. Menerima fakta turunan dari Mesin Inferensi sesuai dengan query yang diberikan. 4. Menyusun fakta turunan agar dapat diterima sebagai data dalam bahasa PHP.
Untuk proses-proses yang berhubungan langsung dengan pendefinisian fakta atau batasan, seperti manipulasi batasan, Aplikasi DedSched langsung berkomunikasi dengan RDBMS. Web server Inferensi untuk mengimplementasikan basis data deduktif terpisah dengan web server utama pada Aplikasi DedSched agar model proses tetap dapat digunakan apabila terdapat basis data deduktif yang sesungguhnya. Mekanisme aliran data pada Aplikasi DedSched dengan DDBMS yang dirancang dapat dilihat pada Gambar IV-2.
Gambar IV-2 Mekanisme Aliran Data Aplikasi DedSched - DDBMS
Agar rancangan basis data deduktif mendekati basis data deduktif yang sebenarnya, komunikasi Aplikasi DedSched dengan RDBMS seharusnya digantikan dengan komunikasi Web Server Inferensi dengan RDBMS. Namun, hal ini tidak dilakukan karena dalam tahap implementasi, Web Server Inferensi belum memiliki dokumentasi yang jelas mengenai komunikasi yang dapat dilakukan dengan RDBMS. Untuk mengantisipasi hal tersebut, Aplikasi DedSched menggunakan suatu web server yang telah teruji dan memiliki dokumentasi yang jelas mengenai komunikasi dengan RDBMS.
IV.3 Spesifikasi Kebutuhan Perangkat Lunak Pada bagian ini akan dideskripsikan seluruh fitur utama yang dibutuhkan perangkat lunak yang dibangun dalam bentuk deskripsi fungsional dan deskripsi non-fungsional. IV.3.1 Kebutuhan Fungsional Kebutuhan fungsional untuk perangkat lunak ini dapat dilihat pada Tabel IV-1.
IV-4 Tabel IV-1 Tabel kebutuhan Fungsional
Kode Use Case SRS-F-01
Nama Kebutuhan Manipulasi resource
SRS-F-02
Manipulasi batasan
SRS-F-03
Penjadwalan
SRS-F-04
Mengatur ulang jadwal solusi Menampilkan jadwal solusi
SRS-F-05
Deskripsi Menambahkan, mengubah, dan menghapus resource dalam basis data deduktif Menambahkan, mengubah, dan menghapus batasan dalam basis data deduktif. Melakukan proses penjadwalan resource dengan menerapkan batasan-batasan Mengatur ulang jadwal solusi secara manual oleh pengguna Menampilkan jadwal solusi berupa tabel waktu
IV.3.2 Kebutuhan Non Fungsional Kebutuhan fungsional untuk perangkat lunak ini dapat dilihat pada Tabel IV-2. Tabel IV-2 Tabel kebutuhan Non-Fungsional
Kode Use Case SRS-NF-1 SRS-NF-2
Nama Kebutuhan User-friendly Informasi penjadwalan
Deskripsi Menyediakan antarmuka yang user-friendly. Menampilkan info resource yang sedang dijadwalkan
IV.4 Model Use Case Model use case perangkat lunak dapat dilihat pada subbab berikut. IV.4.1 Diagram Use Case Diagram use case perangkat lunak menggambarkan objek-objek yang berinteraksi dengan sistem. Diagram ini dapat dilihat pada Gambar IV-3. Manipulasi resource
Manipulasi batasan
Pengguna
Penjadwalan
DDBMS
Mengatur Ulang Jadwal Solusi
Menampilkan Jadwal Solusi
Gambar IV-3 Diagram Use Case
IV.4.2 Definisi Aktor Definisi aktor yang terlibat pada perangkat lunak dapat dilihat pada Tabel IV-3.
IV-5 Tabel IV-3 Tabel Definisi Aktor
No 1
Aktor Pengguna
2
DDBMS (Deductive Database Management System)
Deskripsi Aktor yang menggunakan sistem secara langsung dan melakukan eksekusi fungsi-fungsi utama yang ada dalam sistem. Sistem basis data deduktif yang memiliki kemampuan sebagai media penyimpanan data sekaligus mampu mendeduksi fakta turunan dari fakta-fakta dan aturanaturan yang ada.
IV.4.3 Definisi Use Case Definisi use case yang terdapat pada perangkat lunak yang dibangun dapat dilihat pada Tabel IV-4. Tabel IV-4 Tabel Definisi Use Case
No 1 2 3 4
5
Use Case Manipulasi resource Manipulasi batasan Penjadwalan Mengatur ulang jadwal solusi Menampilkan jadwal solusi
Deskripsi Menambahkan, mengubah, dan menghapus resource dalam basis data. Menambahkan, mengubah, dan menghapus batasan dalam basis data Melakukan proses penjadwalan resource dengan menerapkan batasan-batasan Mengatur ulang jadwal solusi secara manual oleh pengguna Prekondisi: use case Penjadwalan Menampilkan jadwal hasil berupa tabel waktu Prekondisi: use case Penjadwalan
No.SRS SRS-F-01 SRS-F-02 SRS-F-03 SRS-F-04
SRS-F-05
IV.4.4 Skenario Use Case Skenario (flow of event) yang menggambarkan urutan interaksi aktor dengan use case, dari awal sampai akhir terbagi menjadi beberapa skenario sebagai berikut. 1. Use Case: Manipulasi resource Skenario normal use case manipulasi resource dapat dilihat pada Tabel IV-5 dan skenario alternatif dapat dilihat pada Lampiran B.1. Tabel IV-5 Tabel Skenario Use Case Manipulasi Resource
Aksi Aktor
Reaksi Sistem
Skenario Normal (S-01-01) 1. Pengguna memilih menu Menambah resource 2. Menampilkan form yang berisi kotak teks sebagai masukan dari pengguna 3. Pengguna mengisi form menambahkan resource 4. Melakukan validasi masukan pengguna 5. Menerima masukan pengguna 6. Menambahkan fakta resource pada basis
IV-6 Aksi Aktor
Reaksi Sistem data deduktif
7. DDBMS melakukan penyimpanan fakta resource 8. DDBMS mengembalikan status penyimpanan fakta resource 9. Menampilkan pesan status penyimpanan (berhasil atau gagal) 2. Use Case: Manipulasi batasan Skenario normal use case manipulasi batasan dapat dilihat pada Tabel IV-6 dan skenario alternatif dapat dilihat pada Lampiran B.2. Tabel IV-6 Tabel Skenario Use Case Manipulasi Batasan
Aksi Aktor
1.
3.
7. 8.
Reaksi Sistem Skenario Normal (S-02-01) Pengguna memilih menu Menambah batasan 2. Menampilkan form yang berisi kotak teks sebagai masukan dari pengguna Pengguna mengisi form menambahkan batasan. 4. Melakukan validasi masukan pengguna 5. Menerima masukan pengguna 6. Menambahkan fakta batasan pada basis data deduktif DDBMS melakukan penyimpanan fakta batasan DDBMS mengembalikan status penyimpanan fakta batasan 9. Menampilkan pesan status penyimpanan (berhasil atau gagal)
3. Use Case: Penjadwalan Skenario normal use case penjadwalan dapat dilihat pada Tabel IV-7 dan skenario alternatif dapat dilihat pada Lampiran B.3. Tabel IV-7 Tabel Skenario Use Case Penjadwalan
Aksi Aktor
Reaksi Sistem Skenario Normal (S-03-01) 1. Pengguna memilih menu Penjadwalan resource 2. Menjadwalkan resource sesuai dengan fakta resource dan fakta batasan yang ada 3. Menampilkan status proses penjadwalan 4. Menampilkan pesan status penjadwalan (berhasil atau gagal) 4. Use Case: Mengatur ulang jadwal solusi Prekondisi: Terdapat fakta jadwal solusi pada basis data deduktif.
IV-7 Skenario normal use case mengatur ulang jadwal solusi dapat dilihat pada Tabel IV-8 dan skenario alternatif dapat dilihat pada Lampiran B.4. Tabel IV-8 Tabel Skenario Use Case Mengatur Ulang Jadwal Solusi
Aksi Aktor
Reaksi Sistem
Skenario Normal (S-04-01) 1. Pengguna memilih menu Pengaturan ulang jadwal solusi 2. Menampilkan seluruh fakta jadwal solusi yang terdapat pada basis data deduktif 3. Pengguna memilih fakta jadwal solusi untuk diatur ulang 4. Pengguna memilih menu Tampilkan jadwal solusi lain untuk fakta jadwal yang dipilih 5. Menampilkan pilihan slot pasangan jadwal solusi lainnya yang dapat digunakan 6. Pengguna memilih pasangan slot jadwal solusi lainnya 7. Melakukan validasi fakta jadwal solusi yang baru 8. Menampilkan pesan status pengaturan ulang jadwal solusi (berhasil atau gagal) 5. Use Case: Menampilkan jadwal solusi Prekondisi: Terdapat fakta jadwal solusi pada basis data deduktif. Skenario normal use case Menampilkan Jadwal Solusi dapat dilihat pada Tabel IV-9 dan skenario alternatif dapat dilihat pada Lampiran B.5. Tabel IV-9 Tabel Skenario Use Case Menampilkan Jadwal Solusi
Aksi Aktor
Reaksi Sistem Skenario Normal (S-05-01) 1. Pengguna memilih menu Tampilkan jadwal solusi 2. Mengambil fakta jadwal solusi pada basis data deduktif dan membangun tampilan dalam bentuk tabel waktu 3. Menampilkan jadwal solusi pada browser
IV.5 Model Interaksi dengan Diagram Sequence Diagram sequence dari perangkat lunak yang dibangun antara lain: 1. Diagram Sequence Manipulasi Resource Diagram sequence manipulasi resource menggambarkan perilaku sistem dalam melakukan proses manipulasi resource. Diagram sequence ini dapat dilihat pada Gambar IV-4. Langkah aksi yang dilakukan dapat dilihat pada Tabel C-1.
IV-8
<
> Antarmuka
<> KoneksiDB
<> KontrolDB : DDBMS
: Pengguna 1 : manipulasi_resource() 2 : connect_to_db()
3 : connect() 4 : handle_connection 5 : select_db() 6 : is_resource_exist() 7 : build_query() 8 : query
10 : process_result()
9 : result
11 : show_result()
12 : close_connection() 13 : disconnect()
Gambar IV-4 Diagram Sequence Manipulasi Resource
2. Diagram Sequence Manipulasi Batasan Diagram sequence manipulasi batasan menggambarkan perilaku sistem dalam melakukan proses manipulasi batasan. Diagram sequence ini dapat dilihat pada Gambar IV-5. Langkah aksi yang dilakukan dapat dilihat pada Tabel C-2.
IV-9
<> Antarmuka
<> KoneksiDB
<> KontrolDB : DDBMS
: Pengguna 1 : manipulasi_batasan() 2 : connect_to_db()
3 : connect() 4 : handle_connection 5 : select_db() 6 : is_batasan_exist() 7 : build_query() 8 : query
10 : process_result()
9 : result
11 : show_result()
12 : close_connection() 13 : disconnect()
Gambar IV-5 Diagram Sequence Manipulasi Batasan
3. Diagram Sequence Penjadwalan Resource Diagram sequence ini menjelaskan proses yang dilakukan dalam menjadwalkan resource. Diagram ini dapat dilihat pada Gambar IV-6. Langkah aksi yang dilakukan dapat dilihat pada Tabel C-3.
IV-10
<> Antarmuka
<> KontrolDB
<> KoneksiDB
: DDBMS
: Pengguna 1 : menjadwalkan_resource() 2 : connect_to_db()
3 : connect() 4 : handle_connection 5 : select_db()
6 : get_resource() 7 : resource 8 : create_file_facts() 9 : create_file_rule_priority() 10 : apply_batasan_prioritas() 11 : resource_dengan_bobot_prioritas 12 : prioritas_resource()
loop [num resource]
13 : get_resource_max_prioritas() 14 : create_file_ruleI_ruleII() 15 : apply_batasan_tipeI_tipeII()
16 : resource_dengan_bobot_tipeII 17 : simpan_resource() 18 : get_resource_max_bobot() 19 : isBacktrack() 20 : update_resource() 21 : simpan_jadwal()
23 : proses_status_penjadwalan()
22 : status_db
24 : show_status() 25 : close_connection() 26 : disconnect()
Gambar IV-6 Diagram Sequence Proses Penjadwalan Resource
4. Diagram Sequence Pengaturan Ulang Jadwal Solusi Diagram sequence ini menjelaskan proses yang dilakukan dalam pengaturan ulang jadwal solusi. Diagram ini dapat dilihat pada Gambar IV-7. Langkah aksi yang dilakukan dapat dilihat pada Tabel C-4.
IV-11
<> Antarmuka
<> KontrolDB : DDBMS
: Pengguna
1 : atur_ulang_jadwal_solusi() 2 : tampilkan_resource() 3 : pilih_resource()
4 : resource_terpilih 5 : ambil_solusi_lain()
8 : tampilkan_solusi_lain()
7 : proses_solusi_lain()
6 : solusi_lain
9 : optimasi_resource() 10 : resource_teroptimasi 11 : proses_resource_teroptimasi()
12 : status_optimasi 13 : proses_status_optimasi() 14 : show_status()
Gambar IV-7 Diagram Sequence Pengaturan Ulang Jadwal Solusi
5. Diagram Sequence Menampilkan Jadwal Solusi Diagram sequence ini menjelaskan proses yang dilakukan dalam menampilkan jadwal solusi. Diagram ini dapat dilihat pada Gambar IV-8. Langkah aksi yang dilakukan dapat dilihat pada Tabel C-5.
IV-12
<> Antarmuka
<> KoneksiDB
<> KontrolDB
: Pengguna
: DDBMS
1 : permintaan_jadwal_solusi() 2 : connect_to_db()
3 : connect() 4 : handle_connection 5 : select_db() 6 : ambil_jadwal_solusi()
8 : proses_jadwal_solusi()
7 : jadwal_solusi
9 : tampilkan_jadwal_solusi() 10 : close_connection()
11 : disconnect()
Gambar IV-8 Diagram Sequence Menampilkan Jadwal Solusi
IV.6 Diagram Kelas Perangkat Lunak Diagram kelas perangkat lunak yang dibangun dapat dilihat pada Gambar IV-9. Berikut adalah penjelasan singkat dari kelas yang dibangun: 1. Antarmuka Antarmuka merupakan kelas untuk menerima masukan dari pengguna dan menampilkan hasil yang diberikan perangkat lunak. Kelas ini merupakan kelas boundary yang menghubungkan perangkat lunak dengan pengguna. 2. KoneksiDB Kelas koneksiDB adalah kelas yang mengatur koneksi dengan basis data. Tipe kelas ini adalah kelas controller. 3. KontrolDB Kelas kontrolDB adalah kelas yang mengatur transaksi data dengan basis data. Tipe kelas ini adalah kelas controller. 4. DDBMS DDBMS adalah kelas basis data deduktif yang mengatur penyimpanan data dan mekanisme deduksi. Tipe kelas ini adalah kelas controller.
IV-13
Antarmuka +menu +resource
KoneksiDB +atribut_db +handle_connection
+connect_to_db() +close_connection() +show_result() +show_status() +tampilkan_resource() +tampilkan_solusi_lain() +tampilkan_jadwal_solusi()
+connect() +select_db() +disconnect() DDBMS +fakta +aturan +status_db +query +result
KontrolDB +query +fakta_turunan +is_resource_exist() +is_batasan_exist() +build_query() +proses_result() +proses_status_penjadwalan() +proses_status_optimasi()
Scheduler
Optimizer
+jadwal +status_penjadwalan +get_resource() +apply_batasan_prioritas() +prioritas_resource() +apply_batasan_tipeI_tipeII() +get_resource_max_prioritas() +simpan_resource() +get_resource_max_bobot() +isBacktrack() +update_resource() +simpan_jadwal()
+solusi_lain +resource_teroptimasi +status_optimasi +ambil_solusi_lain() +proses_solusi_lain() +proses_resource_teroptimasi()
+execute_query() +pembobotan_resource_prioritas() +cari_resource_tipeI() +pembobotan_resource_tipeII() +proses_simpan() +proses_update() +cek_resource_teroptimasi() +update_jadwal_solusi()
Viewer +jadwal_solusi +ambil_jadwal_solusi() +proses_jadwal_solusi()
Gambar IV-9 Diagram kelas perangkat lunak
IV.7 Rancangan Antarmuka Perangkat Lunak Rancangan antarmuka layar utama perangkat lunak dapat dilihat pada Gambar IV-10 dan keterangan mengenai antarmuka dapat dilihat pada Tabel IV-10. Rancangan antarmuka setiap menu dapat dilihat pada Lampiran D.
Header Menu 1 Menu 2 Panel Layar Utama
Menu 3 Menu 4 Menu 5 Panel Menu
Gambar IV-10 Rancangan Antarmuka Layar Utama
IV-14
Tabel IV-10 Keterangan Antarmuka Layar Utama
Id
Jenis
Keterangan
Layar Utama
Panel
Berisi content dari setiap menu yang terdapat pada panel menu. Panel ini berubah sesuai dengan aksi yang diberikan pengguna.
Menu
Panel
Berisi menu-menu yang merupakan fitur utama dari perangkat lunak.
Header
Label
Header halaman web perangkat lunak.
Menu 1
Link
Link untuk melakukan manipulasi terhadap resource, yaitu mendefinisikan, menambah, mengedit, dan menghapus resource.
Menu 2
Link
Link untuk melakukan manipulasi terhadap batasan, yaitu menambah, mengedit, dan menghapus batasan.
Menu 3
Link
Link untuk melakukan proses penjadwalan berdasarkan resource dan batasan yang telah didefinisikan.
Menu 4
Link
Link untuk mengatur ulang jadwal yang dihasilkan pada proses penjadwalan.
Menu 5
Link
Link untuk menampilkan jadwal hasil yang didapatkan dari proses penjadwalan.