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
52
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.
Kelas yang diimplementasikan dalam subsistem Flow Engine terlihat di table V-4.
53
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 untuk
fungsionalitas
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.
54
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
melakukan
bertugas
untuk
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
55
waktu
kemudian
sesuai
dengan spesifikasi proses. FlowControl
Kelas
dasar
untuk
operasi
yang
bertugas
untuk
proses. Join
Kelas
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
bertugas
untuk
berjalan paralel. UserTask
Kelas
yang
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) { $program = new saltanera_autoflow_model_Program();
56
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; case 4 :
57
$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
mengakses ResourceManager
untuk kelas di
subsistem flow engine. autoflow_studio
App
Kelas aplikasi dari subsistem
58
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
pertama
kali
muncul subsistem
dijalankan. autoflow_control
CodeEditor
Kelas
antar
muka
untuk
menulis kode program FlowCanvas
Kelas
antar
muka
menggambar
untuk 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. Start
Kelas
59
komponen
diagram
untuk permulaan proses. Stop
Kelas
komponen
diagram
untuk penghentian proses. Split
Kelas untuk
komponen
diagram
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"); nodeFlow.setIcon("images/saltanera/autoflow/button/flow.png");
60
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.
Gambar V-3. Implementasi antarmuka pembuatan diagram proses
61
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.
62
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”.
63
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
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Nama program
Program bernama test
Program bernama test
“Test”
tercatat di database
tercatat di database
- Deskripsi program
internal, saat dibuka
internal, saat dibuka
“Deskripsi Test”
ulang diagram proses
ulang diagram proses
- Unit “UnitA”
sama seperti saat
sama seperti saat
- Table “TableA”
disimpan
disimpan
- Aplikasi khusus tipe HTTP ke “http:/localhost/test.ph p” - Koneksi StartUserTask dan UserTask-Stop
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”.
Menambahkan tombol ke form.
64
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
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Form untuk “unit1”
Form terdaftar dalam
Form terdaftar dalam
dengan nama “form1”
unit , saat dibuka ulang
unit , saat dibuka ulang
form sama seperti saat
form sama seperti saat
disimpan
disimpan
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
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Komponen decision
Komponen decision
Komponen decision
dengan skrip
menyimpan skrip yang
menyimpan skrip yang
pemilihannya
ditulis.
ditulis.
65
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
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Staf dengan nama
Staf terdaftar dalam
Staf terdaftar dalam
“admin”
database dan data
database dan data tetap
tetap sama saat
sama saat dibuka ulang
dibuka ulang
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.
66
Tabel V-11. Tabel pengujian case membuat instan proses baru Masukan
Keluaran yang
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Pemilihan program
Tercipta instan baru
Tercipta instan baru
Test
dengan state ke state
dengan state ke state
- Penekanan tombol
kedua
kedua
“send”
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
Hasil yang Didapat
Kesimpulan
Daftar tugas staff
Lolos Uji
Diharapkan - Pemilihan tab
Daftar tugas staff
MyTask
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.
67
Tabel V-13. Tabel pengujian case menjalankan form Masukan
Keluaran yang
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - Pemilihan task dari
Proses pada state
Proses pada state
daftar task
selanjutnya
selanjutnya
- Penekanan tombol “Execute”
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
Hasil yang Didapat
Kesimpulan
Lolos Uji
Diharapkan - membuka aplikasi
Tampil statistik
Tampil statistik
dashboard
performansi proses
performansi proses
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.
68