52
BAB V
IMPLEMENTASI DAN PENGUJIAN PERANGKAT
LUNAK
Bab ini menjelaskan tahap implementasi serta pengujian yang dilakukan pada perangkat lunak IECS.
V.1 Implementasi
Implementasi ke tujuh bagian subsistem yang terdapat dalam sistem IECS. Masing-masing subsistem tersebut seperti yang dijelaskan pada bab sebelumnya adalah Simulator, Studio, Setting Panel, Workspace, Dashboard, Flow Engine dan Unit Server.
Flow Engine dan Unit Server adalah aplikasi server yang bertugas menerima permintaan dari aplikasi klien dan memberikan balikan sesuai dengan permintaan, sedangkan Simulator, Studio, Setting Panel, Workspace dan Dashboard merupakan aplikasi yang berjalan di mesin klien. Implementasi diawali dengan implementasi Flow Engine dan Unit Engine baru kemudian diikuti oleh implementasi Simulator, Studio, Control Panel, Workspace dan Dashboard.
V.1.1 Lingkungan Implementasi
Lingkungan implementasi terdiri dari dua bagian yaitu perangkat keras dan perangkat lunak. Lingkungan perangkat keras terlihat di tabel V-1
Tabel V.1. Lingkungan Implementasi Server
Item Spesifikasi
Processor Intel Core Duo 1.4 GHz
RAM 512 MB
Layar 14 Inch
Periferal Mouse, keyboard
53
Sedangkan untuk lingkungan perangkat lunak yang dipergunakan terbagi menjadi dua bagian menurut letak kerja dari subsistem. Lingkungan perangkat lunak yang dipergunakan terlihat di table V-2 dan V-3.
Tabel V-2. Lingkungan perangkat lunak server Server (FlowEngine dan UnitServer)
Item Spesifikasi
Sistem Operasi Windows XP
Web Server Apache 2.0
Bahasa Pemrograman PHP 5.1
Database MySQL 5.0
FrameWork Klorofil Platform (www.klorofil.org)
IDE PSPad (Script Editor)
Tabel V-3. Lingkungan perangkat lunak klien Client (Studio, Control Panel dan Workspace)
Item Spesifikasi
Sistem Operasi Windows XP
Web Browser Mozilla FireFox 2.0 dan Internet Explorer 7.0 Bahasa Pemrograman JavaScript
FrameWork Purefect Desktop (www.klorofil.org)
IDE PSPad (Script Editor)
V.1.2 Implementasi Kelas
Modul pertama yang diimplementasikan adalah Flow Engine diimplementasikan sebagai aplikasi server dengan menggunakan bahasa pemrograman PHP.
54
Tabel V-4. Implementasi Flow Engine
Package Kelas Keterangan
autoflow ResourceManager Kelas ini berfungsi sebagai antar muka modul workflow engine dengan modul lain yang menyediakan fungsionalitas untuk manajeman resource dalam AutoFlow.
RemoteResourceMgr Interface dari kelas
ResourceManager.
ProcessManager Kelas ini berfungsi sebagai antar muka modul workflow engine dengan modul lain yang
berhubungan dengan pelaksanaan instan proses.
RemoteProcessMgr Interface dari kelas
ProcessManager.
DashboardManager Kelas yang berfungsi menerima permintaan fungsi - fungsi dashboard
RemoteDashboardMgr Interface dari kelas DashboardManager
Process Kelas objek proses yang dapat diserialisasi antar modul.
Unit Kelas objek unit yang dapat diserialisasi antar modul.
UnitServer Kelas objek unit server yang dapat diserialisasi antar modul. autoflow_model Component Kelas yang dipergunakan untuk
mengambil dan menyimpan data komponen untuk studio dari database internal AutoFlow.
55
Process Kelas yang dipergunakan untuk mengambil dan menyimpan data proses dari database.
ProcessAttachment Kelas yang dipergunakan untuk mengambil dan menyimpan data attachment proses dari database. ProcessHistory Kelas yang dipergunakan untuk
mengambil dan menyimpan data sejarah proses dari database. ProcessValue Kelas yang dipergunakan untuk
mengambil dan menyimpan data nilai yang dipergunakan proses dari database.
Program Kelas yang dipergunakan untuk mengambil dan menyimpan data program dari database.
Unit Kelas yang dipergunakan untuk mengambil dan menyimpan data unit dari database.
UnitServer Kelas yang dipergunakan untuk mengambil dan menyimpan data unit server dari database.
autoflow_struct CallFunction Kelas yang bertugas untuk melakukan pemanggilan fungsi Decision Kelas yang bertugas untuk
melakukan pemilihan jalur proses sesuai dengan data yang dimiliki instan proses tersebut. Delay Kelas yang bertugas untuk
memasukkan instan proses ke pool menunggu untuk diaktifkan di waktu kemudian sesuai
56
dengan spesifikasi proses.
FlowControl Kelas dasar untuk operasi proses.
Join Kelas yang bertugas untuk menggabungkan beberapa sub instan menjadi satu instan.
Start Kelas yang bertugas untuk memulai instan proses.
Stop Kelas yang bertugas untuk menghentikan instan proses. Split Kelas yang bertugas untuk
membagi satu instan menjadi beberapa sub instan yang berjalan paralel.
UserTask Kelas yang bertugas untuk membangkitkan tugas untuk divisi tertentu.
Salah satu kode contoh kode yang diimplementasi di subsistem Flow Engine dapat dilihat di gambar V-1. Potongan kode di gambar tersebut berasal dari kelas ProcessManager dari paket autoflow.
public function startProcess($processId, $selectedStaff = null)
{
$result = null;
$process = new saltanera_autoflow_model_Process();
if ($process->open($processId)) {
$system =
$this->getSessionObjectByClass("klorofil_purefect_System");
if ($system instanceof klorofil_purefect_System) {
57 if ($program->open($process->getProgramName())) { $xml = $program->getFlowXML(); $programObj = new saltanera_autoflow_struct_Program(); $programObj->fromXML($xml); $start = $programObj->getStart(); if ($start instanceof saltanera_autoflow_struct_FlowControl) $stateId = $start->getFlowId(); else $stateId = null; uses("saltanera_autoflow_model_ProcessHistory"); $hist = new saltanera_autoflow_model_ProcessHistory(); $hist->add($processId, $stateId, $start->getCaption(), "", $system->getUserId(), $system->getUserName()); if ($start->isUseDeadLine()) { $deadLineCount = $start->getDeadLine();
if (($deadLineCount != null) &&
($deadLineCount > 0)) { $deadLineUnit = $start->getDeadLineUnit(); switch ($deadLineUnit) { case 1 :
$deadLine = strtotime("+$deadLineCount hours"); break;
case 2 :
$deadLine = strtotime("+$deadLineCount days"); break;
case 3 :
$deadLine = strtotime("+$deadLineCount weeks"); break;
58
$deadLine = strtotime("+$deadLineCount months"); break;
case 5 :
$deadLine = strtotime("+$deadLineCount years"); break;
}
$deadLine = date("Y-m-d H:i", $deadLine); $process->setCurrentProcessDeadLine($deadLine); }
} }
}
$result = $this->moveProcess($processId, $selectedStaff); if ($result) $process->start(); } return $result; }
Gambar V-1. Contoh kode di subsistem Flow Engine
Subsistem disisi klien yang diimplementasikan pertama kali adalah Studio. Studio merupakan aplikasi web yang diimplementasikan dengan menggunakan bahasa pemrograman javascript.
Kelas yang diimplementasikan dalam subsistem Studio terlihat pada tabel V-5
Tabel V-5. Kelas implementasi subsistem Studio
Package Kelas Keterangan
autoflow Process Kelas untuk menyimpan data proses yang dapat diserialisasi
antar subsistem.
RemoteResourceMgr Kelas interface untuk
mengakses kelas ResourceManager di subsistem flow engine.
59
Studio.
StudioForm Kelas tampilan utama dari subsistem Studio.
NewForm Kelas tampilan untuk pembuatan program baru.
OpenForm Kelas tampilan untuk membuka program yan sudah ada.
SplashForm Kelas tampilan untuk identitas subsistem yang muncul pertama kali subsistem dijalankan.
autoflow_control CodeEditor Kelas antar muka untuk menulis kode program
FlowCanvas Kelas antar muka untuk menggambar diagram spesifikasi proses.
FormCanvas Kelas antar muka untuk mendesain form tugas.
autoflow_control_flow CallFunction Kelas komponen diagram untuk pemanggilan fungsi.
Decision Kelas komponen diagram
untuk pemilihan jalur proses.
Delay Kelas komponen diagram
untuk penundaan ekssekusi instan proses.
FlowControl Kelas dasat komponen
diagram.
Join Kelas komponen diagram
untuk penggabungan beberapa sub instan menjadi satu instan.
60
untuk permulaan proses.
Stop Kelas komponen diagram
untuk penghentian proses.
Split Kelas komponen diagram
untuk pembagian instan menjadi beberapa sub instan yang berjalan secara paralel.
UserTask Kelas komponen diagram
untuk pembangkitan tugas manual staff.
Contoh kode progam dari subsistem Studio dapat dilihat di gambar V-2. Potongan kode program tersebut berasal dari kelas StudioForm dari paket autoflow_studio. Kode program tersebut berfungsi untuk pembuatan program proses baru dan penyiapan tampilan untuk program baru tersebut.
window.saltanera_autoflow_studio_StudioForm.prototype.doNewProgram = function(name, desc, version) {
var id = this.manager.addProgram(name, desc, version);
if (id) {
var program = new saltanera_autoflow_struct_Program(); program.setProgramName(name); program.setDescription(desc); program.setVersion(version); program.setDeployed(false); this.programs.set(name, program);
var projectNode = new
klorofil_controls_TreeItem(this.treeProject); projectNode.setCaption(name);
var nodeFlow = new klorofil_controls_TreeItem(projectNode); nodeFlow.setCaption("Flow");
61
var nodeForm = new klorofil_controls_TreeItem(projectNode); nodeForm.setCaption("Start Form");
nodeForm.setIcon("images/saltanera/autoflow/button/form.png"); nodeForm.onDblClick.set(this, "nodeFormDblClick");
var nodeUnit = new klorofil_controls_TreeItem(projectNode); nodeUnit.setCaption("Units"); nodeUnit.setPopUpMenu(this.popTreeUnit); this.manager.getProgramFlow(name); } }
Gambar V-2 Contoh kode di subsistem Studio
Kelas implementasi selengkapnya dapat dilihat di Lampiran F.
V.1.3 Implementasi Antarmuka
Antarmuka yang diimplementasi dapat terlihat di gambar V-3 dan V-4.
62
Gambar V-4. Implementasi antarmuka pembuatan form tugas
Gambar implementasi antarmuka selengkapnya dapat terlihat di Lampiran G.
V.1.4 Batasan Dalam Implementasi
Berdasarkan analisa kebutuhan perangkat lunak dan implementasi diatas maka batasan dalam implementasi perangkat lunak dalam tesis ini adalah :
1. Pemodelan data hanya untuk pemodelan data standar seperti penciptaan tabel, manipulasi struktur tabel dan hubungan antara unit organisasi dengan tabel.
2. Notasi diagram proses bisnis yang diimplementasi adalah notasi diagram dasar seperti yang dijelaskan dalam bab 3.
3. Hubungan server aplikasi khusus yang diimplementasi hanya server aplikasi dengan protokol HTTP.
V.2 Pengujian
Sub bab ini berisi pengujian terhadap aplikasi yang telah dibuat. Pengujian dilakukan dengan menjalankan seluruh aplikasi pada sistem IECS kemudian melakukan pengujian terhadap fungsionalitas aplikasi dalam lingkup tesis ini.
63 V.2.1 Tujuan Pengujian
Pengujian dilakukan dengan tujuan sebagai berikut:
1. Membuktikan kesesuaian aplikasi dengan spesifikasi kebutuhan pada bagian analisis dan perancangan.
2. Mengetahui kinerja aplikasi. V.2.2 Lingkungan Pengujian
Pengujian perangkat lunak dilakukan dengan menggunakan komputer yang telah di diinstalasi sistem IECS. Spesifikasi perangkat keras pengujian dapat dilihat pada Tabel V-6.
Tabel V.6. Spesifikasi Perangkat Pengujian
Item Spesifikasi
Processor Intel Core Duo 1.4 GHz
RAM 512 MB
Layar 15 Inch
Periferal Mouse, keyboard
V.2.3 Prosedur Pengujian
Pengujian fungsionalitas aplikasi dilakukan dengan memasukkan data-data sesuai kebutuhan pada setiap layanan yang disediakan, mengeksekusi layanan yang disediakan tersebut, kemudian mengamati hasil keluaran aplikasi. Pengujian ini dilakukan untuk setiap use case dalam sistem. Hasil pengujian fungsionalitas aplikasi berdasarkan use
case yang telah dilakukan adalah sebagai berikut :
1. Use case membuat diagram proses
Prosedur pengujian untuk case membuat program flow adalah Membuka aplikasi Studio
Menekan tombol “New Program”
Memasukkan data program baru yaitu nama program “Test” dan deskripsi program “Deskripsi Test”.
Menambah unit baru bernama “UnitA” Menambah tugas ke unit “UnitA”
Menambah table bernama “TableA” ke diagram
Menambah server aplikasi khusus ke diagram dengan tipe “HTTP” dengan alamat koneksi ke “http:/localhost/test.php”.
64
Menambahkan komponen UserTask pada diagram
Menambahkan garis sekuens dari komponen Start ke UserTask dan dari UserTask ke stop.
Menyimpan program dengan menekan tombol “Save” Menutup dan membuka ulang aplikasi
Membuka ulang program yang telah disimpan untuk melihat keberhasilan penyimpanan.
Hasil pengujian terlihat di table V-7.
Tabel V-7 Tabel pengujian case membuat program flow
Masukan Keluaran yang Diharapkan
Hasil yang Didapat Kesimpulan
- Nama program “Test” - Deskripsi program “Deskripsi Test” - Unit “UnitA” - Table “TableA” - Aplikasi khusus tipe HTTP ke “http:/localhost/test.ph p” - Koneksi Start-UserTask dan UserTask-Stop
Program bernama test tercatat di database internal, saat dibuka ulang diagram proses sama seperti saat disimpan
Program bernama test tercatat di database internal, saat dibuka ulang diagram proses sama seperti saat disimpan
Lolos Uji
2. Use Case membuat form tugas unit
Prosedur pengujian untuk case membuat form tugas unit adalah : Membuka aplikasi Studio.
Membuka program “Test” dengan menekan tombol “Open”.
Menekan tombol menu “Add Form” pada unit “unit1” dengan nama “form1”. Mengklik ganda “form1” dari “unit1”.
65 Menutup dan membuka ulang aplikasi
Membuka ulang program yang telah disimpan untuk melihat keberhasilan penyimpanan.
Hasil pengujian terlihat di table V-8.
Tabel V-8. Tabel pengujian case membuat form tugas unit
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Form untuk “unit1” dengan nama “form1”
Form terdaftar dalam unit , saat dibuka ulang form sama seperti saat disimpan
Form terdaftar dalam unit , saat dibuka ulang form sama seperti saat disimpan
Lolos Uji
3. Use Case menulis kode skrip khusus
Prosedur pengujian untuk case membuat form tugas unit adalah : Membuka aplikasi Studio.
Membuka program “Test” dengan menekan tombol “Open”. Menambah komponen decision ke diagram.
Mengeset skrip pemilihan ke komponen decision. Menutup dan membuka ulang program “Test”.
Membuka ulang skrip komponen decision untuk melihat keberhasilan penyimpanan.
Hasil pengujian terlihat di table V-9.
Tabel V-9. Tabel pengujian case menulis kode skrip khusus
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Komponen decision dengan skrip
pemilihannya
Komponen decision menyimpan skrip yang ditulis.
Komponen decision menyimpan skrip yang ditulis.
66 4. Use Case manajemen staf unit
Prosedur pengujian untuk case manajemen unit adalah : Membuka aplikasi Setting Panel.
Membuka tab unit.
Menekan tombol “Open” pada “Unit1”. Menekan tombol “Add Staff”.
Memberi data staf baru dengan nama user “admin”. Menutup dan membuka ulang aplikasi .
Membuka ulang staf yang telah disimpan untuk melihat keberhasilan penyimpanan.
Hasil pengujian terlihat di table V-10.
Tabel V-10. Tabel pengujian case manajemen staf unit
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Staf dengan nama “admin”
Staf terdaftar dalam database dan data tetap sama saat dibuka ulang
Staf terdaftar dalam database dan data tetap sama saat dibuka ulang
Lolos Uji
5. Use Case membuat instan proses baru
Prosedur pengujian untuk case melihat daftar tugas adalah : Membuka aplikasi Workspace.
Membuka tab “Program”. Mengklik ganda program “Test1”
Menekan tombol “send” di form yang muncul Hasil pengujian terlihat di table V-11.
67
Tabel V-11. Tabel pengujian case membuat instan proses baru
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Pemilihan program Test
- Penekanan tombol “send”
Tercipta instan baru dengan state ke state kedua
Tercipta instan baru dengan state ke state kedua
Lolos Uji
6. Use Case melihat daftar tugas
Prosedur pengujian untuk case melihat daftar tugas adalah : Membuka aplikasi Workspace.
Membuka tab “MyTask”. Hasil pengujian terlihat di table V-12.
Tabel V-12. Tabel pengujian case melihat daftar tugas
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Pemilihan tab MyTask
Daftar tugas staff Daftar tugas staff Lolos Uji
7. Use Case menjalankan form tugas & menggerakkan state sesuai diagram Prosedur pengujian untuk case melihat daftar tugas adalah :
Membuka aplikasi Workspace. Membuka tab “MyTask”.
Klik 2 kali di task yang tersedia di daftar tugas
Menekan tombol “Execute” di tab “Flow” dari form yang muncul Hasil pengujian terlihat di table V-13.
68
Tabel V-13. Tabel pengujian case menjalankan form
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- Pemilihan task dari daftar task
- Penekanan tombol “Execute”
Proses pada state selanjutnya
Proses pada state selanjutnya
Lolos Uji
8. Use Case memonitor pelaksanaan proses
Prosedur pengujian untuk case melihat daftar tugas adalah : Membuka aplikasi dashboard.
Hasil pengujian terlihat di table V-14.
Tabel V-14. Tabel pengujian case memonitor pelaksanaan proses
Masukan Keluaran yang
Diharapkan
Hasil yang Didapat Kesimpulan
- membuka aplikasi dashboard Tampil statistik performansi proses Tampil statistik performansi proses Lolos Uji
V.2.4 Analisis Hasil Pengujian
Dari pengujian yang telah dilakukan, dapat diperoleh hasil pengamatan sebagai berikut: 1. Berdasarkan pengujian fungsionalitas aplikasi, dapat diambil kesimpulan bahwa
secara umum, fungsionalitas aplikasi IECS yang telah dibangun dapat berjalan dengan baik.
2. Pembuatan diagram dengan komponen diagram standar telah berjalan baik, tetapi perlu pengetesan untuk proses bisnis yang kompleks.