BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1. Analisa ... · Tampilan Form Edit Penyakit L....
Transcript of BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1. Analisa ... · Tampilan Form Edit Penyakit L....
59
BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1. Analisa Kebutuhan Software
A. Tahapan Analisis
Sistem pakar adalah sistem yang dirancang untuk mendiagnosa penyakit
secara online dimana User dan admin tidak bertatap muka secara langsung. User
melakukan konsultasi melalui media browser. Berikut ini spesifikasi kebutuhan
(system requirement) dari sistem pakar ;
Halaman User :
A1. User dapat melihat daftar penyakit dan daftar gejala
A2. User dapat melakukan konsultasi dengan mengisi data pengunjung dan
menjawab pertanyaan pada menu konsultasi
A3. User dapat mengetahui cara User menjalankan program di menu bantuan.
Halaman Admin
B1 Admin dapat memilih input penyakit, input gejala, input relasi,
B2. Admin dapat melakukan ubah penyakit, ubah gejala,
B3. Admin dapat melihat isi laporan penyakit, dan laporan gejala.
B. Use Case Diagram
Sistem pakar menggunakan penggambaran use case diagram dengan melihat
secara keseluruhan fungsi-fungsi yang ada pada sistem, sebagai berikut :
60
Gambar IV.1. Use Case Diagram User
Table IV.1
Deskripsi Use Case Diagram Menu User
Use Case Name Daftar penyakit
Requirements A1
Goal User dapat melihat daftar penyakit dan daftar gejala
Pre-conditions User dapat mengklik menu lihat di daftar penyakit
Post-conditions User dapat melihat tampilan daftar penyakit
Failed end condition User tidak mendapatkan tampilan daftar penyakit dan
daftar gejala
Primary Actors User
Main Flow / Basis Path 1. User memilih menu daftar penyakit
2. User memilih jenis penyakit mengklik menu lihat
untuk melihat daftar gejala
Invariant User dapat masuk ke daftar penyakit
61
Table IV.2
Deskripsi Use Case Diagram Menu Konsultasi
Use Case Name Menu konsultasi
Requirements A2
Goal User dapat melihat hasil analisa penyakit pada tanaman
tomat
Pre-conditions User mengklik menu konsultasi dan mengisi daftar
pengunjung
Post-conditions Menjawab setiap pertanyaan yang muncul sesuai
dengan gejalan
Failed end condition User tidak mendapatkan tampilan hasil analisa
penyakit pada tanaman tomat
Primary Actors User
Main Flow / Basis Path 1 User memilih menu konsultasi
2 User mendaftar sebagai pengunjung
3 User menjawab setiap pertanyaan yang muncul
sesuai dengan yang di cari
4 User menerima hasil akhir dari analisa hasil
penyakit
Invariant User dapat masuk ke hasil analisa penyakit
Table IV.3
Deskripsi Use Case Diagram Menu Bantuan
Use Case Name Menu bantuan
Requirements A3
Goal User dapat melihat menu bantuan
Pre-conditions User mengklik menu bantuan
Post-conditions Tampil form menu bantuan
Failed end condition Gagal tampil form menu panduan
Primary Actors User
Main Flow / Basis Path 1. User melihat menu bantuan
Invariant User dapat masuk ke menu bantuan
62
Gambar IV.2. Use Case Diagram Admin
Table IV.4
Deskripsi Use Case Diagram Menu input
Use Case Name Menu Input
Requirements B1
Goal Admin dapat melakukan input penyakit, input gejala,
dan input relasi dan akan hasil yang di masukkan akan
bertambah
Pre-conditions Admin mengklik menu input penyakit, input gejala,
dan input relasi
Post-conditions Tampil form menu input penyakit, menu gejala dan
menu relasi
63
Failed end condition Gagal tampil form menu input penyakit,menu gejala,
dan menu relasi
Primary Actors Admin
Main Flow / Basis Path 1. Admin melihat menu input penyakit,menu gejala
dan menu relasi
2. Admin melakukan /memasukan data penyakit ke
daftar input penyakit.
Invariant Admin dapat masuk ke menu input penyakit, input
gejala dan input relasi
Table IV.5
Deskripsi Use Case Diagram Menu Ubah
Use Case Name Menu Ubah
Requirements B2
Goal Admin dapat melakukan ubah penyakit, ubah gejala,
dan hasil yang di masukkan akan bertambah
Pre-conditions Admin mengklik menu ubah penyakit, ubah gejala
Post-conditions Tampil form menu ubah penyakit, menu ubah gejala
Failed end condition Gagal tampil form menu ubah penyakit,menu ubah
gejala
Primary Actors Admin
Main Flow / Basis Path 1. Admin melihat menu ubah penyakit, dan menu
ubah gejala
2. Admin melakukan / mengubah data penyakit dan
data gejala
Invariant Admin dapat masuk ke menu ubah penyakit ubah
gejala
Table IV.6
Deskripsi Use Case Diagram Menu Laporan
Use Case Name Menu laporan
Requirements B3
64
Goal Admin melihat hasil laporan penyakit dan laporan
gejala
Pre-conditions Admin mengklik menu lap.penyakit dan lap.gejala
Post-conditions Tampil form menu lap penyakit dan lap gejala
Failed end condition Gagal tampil form menu lap penyakit dan lap gejala
Primary Actors Admin
Main Flow / Basis Path 1. Admin melihat menu lap. penyakit, dan menu lap
gejala
Invariant Admin dapat masuk ke menu lap penyakitdan lap
gejala
4.2. Desain
Pada tahap desain program ini penulis menggunakan perancangan database
dengan model ERD dan menggunakan metode software architecture seperti
Activity diagram, Component diagram, Deployment diagram yang dapat
menyediakan gambaran sistem secara fisik dan akan terlihat. Sehingga penulis
mampu menciptakankan User interface yang mudah di pahami antara User dan
program.
4.2.1. Database
1. ERD
ERD merupakan suatu model yang menjelaskan hubungan antar data dalam
basis data yang terstruktur datanya mempunyai hubungan antar relasi. ERD
memodelkan struktur data dan hubungan antar data, untuk menggambarkannya
digunakan beberapa notasi dan simbol. Dan Berikut ini adalah ERD awal yang
digunakan untuk mendapatkan sebuah rancangan database yang minimal dapat
mengakomodasi penyimpanan data terhadap sistem yang sedang ditinjau.
65
Gambar IV.3. ERD Sistem Pakar Tomat
2. Spesifikasi File
Spesifikasi file yang ada pada program ini merupakan kumpulan dari
beberapa tabel yang terdapat dalam database.
a. Spesifikasi File Analisa Hasil
66
Nama Database : pakartomatdb.myb
Nama file : Tabel analisa hasil
Akronim : Analisa hasil
Tipe file : File Master
Akses file : Random
Panjang Record : 288 byte
Primary Key : id
Tabel IV.7
Tabel Analisa Hasil
No Elemen Data Akronim Type Size Keterangan 1 id hasil Id int 4 Primary Key 2 nama nama Varchar 60 3 kelamin kelamin enum 4 alamat alamat Varchar 100 5 pekerjaan pekerjaan Varchar 60 4 kode penyakit kd_penyakit char 4 Foreign key 5 noip noip varchar 60 Foreign key 6 tanggal tanggal datetime
b. Spesifikasi file tabel gejala
Nama Database : pakartomatdb.myb
Nama file : Tabel gejala
Akronim : gejala
Tipe file : File Master
Akses file : Random
Panjang Record : 104 byte
Primary Key : kd_gejala
67
Tabel IV.8
Tabel Gejala
No Elemen Data Akronim Type Size Keterangan 1 kode Gejala kd_gejala Char 4 Primary Key 2 nama Gejala nm_gejala Varchar 100
c. Spesifikasi file table Admin
Nama Database : pakartomatdb.myb
Nama file : Tabel Admin
Akronim : Admin
Tipe file : File Master
Akses file : Random
Panjang Record : 100 byte
Primary Key : UserId
Tabel IV.9
Tabel Admin
No Elemen Data Akronim Type Size Keterangan 1 User name UserID Varchar 50 Primary Key 2 Password passID Varchar 50
d. Spesifikasi file tabel penyakit :
Nama Database : pakartomatdb.myb
Nama file : Tabel penyakit
Akronim : penyakit
Tipe file : File Master
68
Akses file : Random
Panjang Record : 120 byte
Primary Key : kd_penyakit
Tabel IV.10
Tabel Penyakit
No Elemen Data Akronim Type Size Keterangan 1 Kode Penyakit kd_penyakit Char 4 Primary Key 2 Nama Penyakit nm_penyakit Varchar 60 3 Nama Latin nm_latin Varchar 60 4 Definisi definisi Text 5 Solusi solusi Text 4 Definisi definisi Text 5 Solusi solusi Text
e. Spesifikasi file tabel relasi
Nama Database : pakartomatdb.myb
Nama file : Tabel Relasi
Akronim : relasi
Tipe file : File Master
Akses file : Random
Panjang Record : 8 byte
Primary Key : kd_penyakit
Tabel IV.11
Tabel Relasi
No Elemen Data Akronim Type Size Keterangan 1 kode penyakit kd_penyakit char 4 Primary Key 2 kode gejala kd_gejala char 4 Foregn key
69
4.2.2. Software Architecture
Dalam pembuatan program sistem pakar diagnosa penyakit tanaman tomat
penulis menggunakan pemrograman terstruktur, maka pada tahapan ini penulis
menggambarkan :
A. Activity Diagram
1. Activity Diagram Login Admin
Gambar IV.4. Activity Diagram Login Admin
70
2. Activity Diagram Admin Input Data Gejala
Gambar IV.5. Activity Diagram Admin Mengelola Data Gejala
3. Activity Diagram Admin Input Data Penyakit
Gambar IV.6. Activity Diagram Admin Input Data Penyakit
71
4. Deployment Diagram
Deployment Diagram menyediakan gambaran bagaimana sistem secara fisik akan
terlihat. Sistem diwakili oleh node-node, dimana masing-masing node diwakili oleh
sebuah kubus. Garis yang menghubungkan kedua kubus menunjukkan hubungan
diantara kedua node tersebut.
Gambar IV.7. Deployment Diagram
5. Component Diagram
Component Diagram adalah sebuah kode-kode modul yang merupakan fisik
sebenarnya dari Diagram Class. Component Diagram menggambarkan struktur dan
hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency).
Gambar IV.8. Component Diagram
72
4.2.3. User Interface
Berikut ini adalah tampilan-tampilan dalam program sistem pakar diagnosa
penyakit pada tanaman tomat
A. Tampilan Beranda
Gambar IV.9. Tampilan beranda
B. Tampilan Jenis Penyakit
Gambar IV.10. Tampilan jenis penyakit
73
C. Tampilan Gejala
Gambar IV.11.Tampilan Gejala
D. Tampilan Konsultasi
1) Pengunjung Mendaftar di Menu konsultasi
Gambar IV.12. Tampilan Form Input Data Pengunjung
74
2) Pengunjung melakukan konsultasi dengan menjawab pertanyaan
Gambar IV.13. Tampilan Form Kuesioner
3) Hasil Analisa
Gambar IV.14. Tampilan Hasil Analisa
75
E. Tampilan Bantuan
Gambar IV.15. Tampilan Bantuan
F. Tampilan Login Admin
Gambar IV.16. Tampilan Login Admin
76
G. Tampilan Menu Admin
Gambar IV.17. Tampilan Menu Admin
H. Tampilan Input Penyakit
Gambar IV.18. Tampilan Input Penyakit
77
I. Tampilan Input Gejala
Gambar IV.19. Tampilan Input Gejala
J. Tampilan Input Relasi
Gambar IV.20. Tampilan Input Relasi
78
K. Tampilan Form Edit Penyakit
Gambar IV.21. Tampilan Form Edit Penyakit
L. Tampilan Form Edit Gejala
Gambar IV.22. Tampilan Form Edit Gejala
79
M. Tampilan Daftar Semua Penyakit
Gambar IV.23. Tampilan Daftar Semua Penyakit
N. Tampilan Daftar Gejala Per Penyakit
Gambar IV.24. Tampilan Daftar Gejala Per Penyakit
80
4.3. Code Generation
1. Coding untuk tampilan penyakit
<?php
include "koneksi.php";
?>
<html>
<head>
<title>Tampilan Data Penyakit</title>
</head>
<body>
<table width="500" border="0" cellpadding="2" cellspacing="1"
bgcolor="#22B5DD">
<tr>
<td colspan="4"><b>DAFTAR SEMUA PENYAKIT</b></td>
</tr>
<tr bgcolor="#DBEAF5">
<td width="24"><b>No</b></td>
<td width="185"><b>Nama Penyakit</b></td>
<td width="205"><b>Nama Latin </b></td>
<td width="65" align="center"><strong>Pilih</strong></td>
</tr>
<?php
$sql = "SELECT * FROM penyakit ORDER BY kd_penyakit";
$qry = mysql_query($sql)
81
or die ("SQL Error".mysql_error());
while ($data=mysql_fetch_array($qry)) {
$no++;
?>
<tr bgcolor="#FFFFFF">
<td><?php echo $no; ?></td>
<td><?php echo $data['nm_penyakit']; ?></td>
<td><?php echo $data['nm_latin']; ?></td>
<td align="center"><a href="../pakartomat/?s=dafgejala&kdsakit=<?=
$data['kd_penyakit'];?>">Lihat</a></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
2. Coding untuk tampilan gejala
<?php
include "koneksi.php";
$kdsakit = $_REQUEST['kdsakit'];
$sqlp = "SELECT * FROM penyakit WHERE kd_penyakit='$kdsakit' ";
$qryp = mysql_query($sqlp);
82
$datap= mysql_fetch_array($qryp);
$sakit = $datap['nm_penyakit'];
?>
<html>
<head>
<title>Tampilan Data Gejala</title>
</head>
<body>
<table width="400" border="0" cellpadding="2" cellspacing="1"
bgcolor="#22B5DD">
<tr>
<td colspan="3"><b>GEJALA PENYAKIT : <?= strtoupper($sakit);
?></b></td>
</tr>
<tr bgcolor="#DBEAF5">
<td width="21" align="center"><b>No</b></td>
<td width="47"><b>Kode</b></td>
<td width="316" bgcolor="#DBEAF5"><b>Nama Gejala</b></td>
</tr>
<?php
$sqlg = "SELECT gejala.* FROM gejala,relasi ";
$sqlg .= "WHERE gejala.kd_gejala=relasi.kd_gejala ";
$sqlg .= "AND relasi.kd_penyakit='$kdsakit' ";
$sqlg .= "ORDER BY gejala.kd_gejala";
83
$qryg = mysql_query($sqlg)
or die ("SQL Error".mysql_error());
while ($datag=mysql_fetch_array($qryg)) {
$no++;
?>
<tr bgcolor="#FFFFFF">
<td align="center"><?php echo $no; ?></td>
<td><?php echo $datag['kd_gejala']; ?></td>
<td><?php echo $datag['nm_gejala']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="3" bgcolor="#DBEAF5"> </td>
</tr>
</table>
</body>
</html>
3. Coding untuk tampilan konsultasi
<?php
include "koneksi.php";
$NOIP = $_SERVER['REMOTE_ADDR'];
84
# Periksa apabila sudah ditemukan
$sql_cekh = "SELECT * FROM tmp_penyakit
WHERE noip='$NOIP'
GROUP BY kd_penyakit";
$qry_cekh = mysql_query($sql_cekh);
$hsl_cekh = mysql_num_rows($qry_cekh);
if ($hsl_cekh == 1) {
$hsl_data = mysql_fetch_array($qry_cekh);
$sql_pasien = "SELECT * FROM tmp_pasien WHERE
noip='$NOIP'";
$qry_pasien = mysql_query($sql_pasien);
$hsl_pasien = mysql_fetch_array($qry_pasien);
$sql_in = "INSERT INTO analisa_hasil SET
nama='$hsl_pasien[nama]',
kelamin='$hsl_pasien[kelamin]',
alamat='$hsl_pasien[alamat]',
pekerjaan='$hsl_pasien[pekerjaan]',
kd_penyakit='$hsl_data[kd_penyakit]',
noip='$hsl_pasien[noip]',
tanggal='$hsl_pasien[tanggal]'";
mysql_query($sql_in);
85
echo "<meta http-equiv='refresh' content='0; url=index.php?s=hasil'>";
exit;
}
$sqlcek = "SELECT * FROM tmp_analisa WHERE noip='$NOIP'";
$qrycek = mysql_query($sqlcek);
$datacek= mysql_num_rows($qrycek);
if ($datacek >= 1) {
// Seandainya tmp kosong
$sqlg = "SELECT gejala.* FROM gejala,tmp_analisa
WHERE gejala.kd_gejala=tmp_analisa.kd_gejala
AND tmp_analisa.noip='$NOIP'
AND NOT tmp_analisa.kd_gejala
IN(SELECT kd_gejala
FROM tmp_gejala WHERE noip='$NOIP')
ORDER BY gejala.kd_gejala LIMIT 1";
$qryg = mysql_query($sqlg);
$datag = mysql_fetch_array($qryg);
$kdgejala = $datag['kd_gejala'];
$gejala = $datag['nm_gejala'];
//echo " ADA BOS ($sqlg)";
}
else {
86
// Seandainya tmp kosong
$sqlg = "SELECT * FROM gejala ORDER BY kd_gejala LIMIT 1";
$qryg = mysql_query($sqlg);
$datag = mysql_fetch_array($qryg);
$kdgejala = $datag['kd_gejala'];
$gejala = $datag['nm_gejala'];
}
?>
<html>
<head>
<title>Form Utama Penelusuran</title>
</head>
<body>
<form action="../pakartomat/?s=konsulcek" method="post" name="form1"
target="_self">
<table width="450" border="0" cellpadding="2" cellspacing="1"
bgcolor="#DBEAF5">
<tr>
<td><b>JAWABLAH PERTANYAAN BERIKUT :</b></td>
</tr>
<tr>
<td width="312" bgcolor="#FFFFFF">Apakah
<?= $gejala; ?> ?
87
<input name="TxtKdGejala" type="hidden" value="<?= $kdgejala;
?>"></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> <input type="radio" name="RbPilih"
value="YA" checked>
Benar (YA)
<input type="radio" name="RbPilih" value="TIDAK">
Salah (TIDAK)</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> <input type="submit" name="Submit"
value="Jawab"></td>
</tr>
</table>
</form>
</body>
</html>
4.4. Testing
Hasil pengujian dengan menggunakan whitebox testing dilakukan pada form
input data pengunjung, dengan coding dan digambarkan dalam flowgraph berikut :
1. $TxtNama = $_REQUEST['TxtNama'];
2. $RbKelamin = $_REQUEST['RbKelamin'];
88
3. $TxtAlamat = $_REQUEST['TxtAlamat'];
4. $TxtPekerjaan = $_REQUEST['TxtPekerjaan'];
# Validasi Form
5. if (trim($TxtNama)=="") {include "PasienAddFm.php";
echo "Nama belum diisi, ulangi kembali";
}
6. elseif (trim($TxtAlamat)=="") {
include "PasienAddFm.php";
echo "Alamat masih kosong, ulangi kembali";
}
7. elseif (trim($TxtPekerjaan)=="") {
include "PasienAddFm.php";
echo "Pekerjaan masih kosong, ulangi kembali";
}
8. else {
$NOIP = $_SERVER['REMOTE_ADDR'];
$sqldel = "DELETE FROM tmp_pasien WHERE noip='$NOIP'";
mysql_query($sqldel);
$sql_del = "DELETE FROM analisa_hasil WHERE noip='$NOIP'";
mysql_query($sql_del);
$sql = " INSERT INTO tmp_pasien
(nama,kelamin,alamat,pekerjaan,noip,tanggal) VALUES
('$TxtNama','$RbKelamin','$TxtAlamat','$TxtPekerjaan','$NOIP',NOW())";
mysql_query($sql)
89
or die ("SQL Error 2".mysql_error());
$sqlhapus = "DELETE FROM tmp_penyakit WHERE noip='$NOIP'";
mysql_query($sqlhapus)
or die ("SQL Error 1".mysql_error());
$sqlhapus2 = "DELETE FROM tmp_analisa WHERE noip='$NOIP'";
mysql_query($sqlhapus2)
or die ("SQL Error 2".mysql_error());
$sqlhapus3 = "DELETE FROM tmp_gejala WHERE noip='$NOIP'";
mysql_query($sqlhapus3)
or die ("SQL Error 3".mysql_error());
echo "<meta http-equiv='refresh' content='0; url=index.php?s=konsul'>";
}
?>
Gambar IV.25. Flowgraph Testing
90
Dengan menggunakan blackbox testing, penulis dapat menemukan kesalahan
dalam kategori sebagai berikut :
1. Fungsi tidak benar
2. Kerusakan antarmuka
3. Kesalahan pada struktur data
4. Kesalahan inisialisasi dan akhir program
5. Kesalahan kinerja
Untuk mengetahui hasil dari pengujian menggunakan blackbox testing,
penulis membagikan kuesioner kepada beberapa responden dan penulis jabarkan
pada Tabel IV.12 dan Tabel IV.13. Hasil kuesioner dapat dilihat pada lampiran B.
Tabel IV.12
Pengujian Perangkat Lunak Pada Admin
No. Fungsi Cara Hasil Harapan Hasil
Pengujian
1 Login Melakukan login untuk
membuka form utama admin
Menampilkan form utama Valid
2 Form
Utama
Membuka form utama Menampilkan daftar menu
dari fasilitas yang
disediakan
Valid
3 Tambah
data
penyakit
Pada form utama pilih input
penyakit
Menambahkan data
penyakit
Valid
4 Tambah
data gejala
Pada form utama pilih input
gejala
Menambahkan data gejala Valid
5 Merelasikan
penyakit
dan gejala
Pada form utama pilih input
relasi
Merelasikan penyakit dan
gejalanya
Valid
91
6 Mengelola
data
penyakit
Pada form utama pilih ubah
penyakit
Dapat mengubah atau
menghapus data penyakit
Valid
7 Mengelola
data gelaja
Pada form utama pilih Dapat mengubah atau
menghapus data gejala
Valid
8 Lap.
Penyakit
Pilih laporan penyakit Dapat menampilkan seluruh
data penyakit dan
penjelasan
Valid
9 Lap. Gejala Pilih laporan gejala per
penyakit
Dapat menampilkan seluruh
gejala per penyakit
Valid
10 Logout Melakukan logout untuk
menutup form utama admin
Kembali ke beranda Valid
Tabel IV.13
Pengujian Perangkat Lunak Pada User
No. Fungsi Cara Hasil Harapan Hasil
Pengujian
1 Form
utama
Membuka form utama Menampilkan daftar menu
dari fasilitas yang
disediakan
Valid
2 Melihat
daftar
penyakit
dan gejala
Pada form utama pilih daftar
penyakit
Melihat Daftar Penyakit dan
gejalanya
Valid
4 Konsultasi
pengguna
Pada form utama pilih
konsultasi
Pengguna mendapat hasil
analisa dari konsultasi
Valid
5 Melihat
bantuan
Pada form utama pilih
bantuan
Pengguna mendapat
informasi mengenai
penggunaan menu
Valid
4.5. Support
4.5.1 Spesifikasi Hardware Dan Software
Adapun spesifikasi kebutuhan implementasi dalam pembuatan aplikasi ini
yaitu menggunakan perangkat keras dan perangkat lunak komputer sebagai berikut:
92
Perangkat-perangkat pendukung program ini adalah perangkat keras dan perangkat
lunak komputer.
Spesifikasi hardware yang diusulkan penulis adalah :
Processor : Intel® Celeron ® CPU 1017U @1.60GHz 1.60GHz
RAM : 2.00 GB
Printer : HP Deskjet 1010
System type : 64-bit Operating System
Spesifikasi software yang disusulkan penulis adalah :
Operating System : Windows 7 Ultimate
Program design : PHP dan Macromedia Dreamweaver 8
Web server : XAMPP
Database : Mysql
Web Browser : phpMyAdmin
Browser : Mozilla Firefox