• Tidak ada hasil yang ditemukan

BAB IV PEMBANGUNAN PERANGKAT LUNAK

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV PEMBANGUNAN PERANGKAT LUNAK"

Copied!
14
0
0

Teks penuh

(1)

IV-1

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.

(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 Prolog. Oleh karena itu, sebelum melakukan instalasi PSP, perangkat lunak SWI-Prolog 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.

(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

(4)

Tabel IV-1 Tabel kebutuhan Fungsional

Kode Use Case Nama Kebutuhan Deskripsi

SRS-F-01 Manipulasi resource Menambahkan, mengubah, dan menghapus resource

dalam basis data deduktif

SRS-F-02 Manipulasi batasan Menambahkan, mengubah, dan menghapus batasan

dalam basis data deduktif.

SRS-F-03 Penjadwalan Melakukan proses penjadwalan resource dengan

menerapkan batasan-batasan

SRS-F-04 Mengatur ulang jadwal

solusi

Mengatur ulang jadwal solusi secara manual oleh pengguna

SRS-F-05 Menampilkan jadwal

solusi

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 Nama Kebutuhan Deskripsi

SRS-NF-1 User-friendly Menyediakan antarmuka yang user-friendly.

SRS-NF-2 Informasi penjadwalan

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.

Pengguna

Manipulasi resource

Manipulasi batasan

Penjadwalan DDBMS

Mengatur Ulang Jadwal Solusi

Menampilkan Jadwal Solusi

Gambar IV-3 Diagram Use Case

IV.4.2 Definisi Aktor

(5)

Tabel IV-3 Tabel Definisi Aktor

No Aktor Deskripsi

1 Pengguna Aktor yang menggunakan sistem secara langsung dan

melakukan eksekusi fungsi-fungsi utama yang ada dalam sistem.

2 DDBMS (Deductive

Database Management System)

Sistem basis data deduktif yang memiliki kemampuan sebagai media penyimpanan data sekaligus mampu mendeduksi fakta turunan dari fakta-fakta dan aturan-aturan 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 Use Case Deskripsi No.SRS

1 Manipulasi resource

Menambahkan, mengubah, dan menghapus resource dalam basis data.

SRS-F-01 2 Manipulasi

batasan

Menambahkan, mengubah, dan menghapus batasan dalam basis data

SRS-F-02

3 Penjadwalan Melakukan proses penjadwalan resource dengan

menerapkan batasan-batasan

SRS-F-03 4 Mengatur

ulang jadwal solusi

Mengatur ulang jadwal solusi secara manual oleh pengguna

Prekondisi: use case Penjadwalan

SRS-F-04

5 Menampilkan jadwal solusi

Menampilkan jadwal hasil berupa tabel waktu Prekondisi: use case Penjadwalan

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)

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 Reaksi Sistem

Skenario Normal (S-02-01) 1. Pengguna memilih menu Menambah

batasan

2. Menampilkan form yang berisi kotak teks sebagai masukan dari pengguna

3. Pengguna mengisi form menambahkan batasan.

4. Melakukan validasi masukan pengguna 5. Menerima masukan pengguna

6. Menambahkan fakta batasan pada basis data deduktif

7. DDBMS melakukan penyimpanan fakta batasan

8. 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

(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.

(8)

: Pengguna : DDBMS Antarmuka <<boundary>> KoneksiDB <<control>> KontrolDB <<control>> 1 : manipulasi_resource() 2 : connect_to_db() 3 : connect() 4 : handle_connection 5 : select_db() 6 : is_resource_exist() 7 : build_query() 8 : query 9 : result 10 : process_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.

(9)

: Pengguna : DDBMS Antarmuka <<boundary>> KoneksiDB <<control>> KontrolDB <<control>> 1 : manipulasi_batasan() 2 : connect_to_db() 3 : connect() 4 : handle_connection 5 : select_db() 6 : is_batasan_exist() 7 : build_query() 8 : query 9 : result 10 : process_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.

(10)

[num resource] loop : Pengguna : DDBMS Antarmuka <<boundary>> KoneksiDB <<control>> KontrolDB <<control>> 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() 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() 22 : status_db 23 : proses_status_penjadwalan() 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.

(11)

: Pengguna : DDBMS Antarmuka <<boundary>> KontrolDB <<control>> 1 : atur_ulang_jadwal_solusi() 2 : tampilkan_resource() 3 : pilih_resource() 4 : resource_terpilih 5 : ambil_solusi_lain() 6 : solusi_lain 7 : proses_solusi_lain() 8 : tampilkan_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.

(12)

: Pengguna : DDBMS Antarmuka <<boundary>> KoneksiDB <<control>> KontrolDB <<control>> 1 : permintaan_jadwal_solusi() 2 : connect_to_db() 3 : connect() 4 : handle_connection 5 : select_db() 6 : ambil_jadwal_solusi() 7 : jadwal_solusi 8 : proses_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.

(13)

Antarmuka +menu +resource +connect_to_db() +close_connection() +show_result() +show_status() +tampilkan_resource() +tampilkan_solusi_lain() +tampilkan_jadwal_solusi() DDBMS +fakta +aturan +status_db +query +result +execute_query() +pembobotan_resource_prioritas() +cari_resource_tipeI() +pembobotan_resource_tipeII() +proses_simpan() +proses_update() +cek_resource_teroptimasi() +update_jadwal_solusi() KoneksiDB +atribut_db +handle_connection +connect() +select_db() +disconnect() KontrolDB +query +fakta_turunan +is_resource_exist() +is_batasan_exist() +build_query() +proses_result() +proses_status_penjadwalan() +proses_status_optimasi() Scheduler +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() Optimizer +solusi_lain +resource_teroptimasi +status_optimasi +ambil_solusi_lain() +proses_solusi_lain() +proses_resource_teroptimasi() 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.

Gambar IV-10 Rancangan Antarmuka Layar Utama

Header Panel Menu Panel Layar Utama Menu 1 Menu 2 Menu 3 Menu 4 Menu 5

(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

Gambar

Gambar IV-1 Arsitektur perangkat lunak
Gambar IV-2 Mekanisme Aliran Data Aplikasi DedSched - DDBMS
Diagram  use case  perangkat lunak menggambarkan objek-objek yang berinteraksi  dengan sistem
Tabel IV-3 Tabel Definisi Aktor
+7

Referensi

Dokumen terkait

Dengan adanya kegiatan-kegiatan pengolahan limbah radioaktif di IPLR yang akan melibatkan manusia dan setiap personil memerlukan jaminan keselamatan terhadap bahaya

[r]

Percobaan adsorpsi yang telah dilakukan menghasilkan kondisi optimum untuk mengadsorpsi zat warna Congo Red dengan karbon aktif dari tempurung kelapa pada pH 2,2,

Kebolehan mendengar yang ada pada klien dapat membantu seseorang pekerja sosial itu menjadikan proses penerimaan sebagai panduan untuk memilih

Maka dari itu dalam masalah ini penulis akan membahas mengenai suatu hubungan yang terdapat dalam efektivitas sistem informasi akuntansi di dalam hotel, karena di dalam

Pengurus MGMP PPKn SMA, SMK, dan MA Kabupaten Bulungan Propinsi Kalimantan Utara dipilih dari dan oleh anggota dalam rapat pleno setiap akhir periode kepengurusan.. Pengurus

Submitted to Faculty of Cultural Studies University of Sumatra Utara Medan in partial fulfillment of the requirements for the degree of Sarjana Sastra from Departement of