• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. A.1 Pengunjung dapat memilih menu diagnosa untuk mengetahui penyakit. yang menyerang adenium miliknya.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. A.1 Pengunjung dapat memilih menu diagnosa untuk mengetahui penyakit. yang menyerang adenium miliknya."

Copied!
49
0
0

Teks penuh

(1)

30 4.1 Analisa Kebutuhan Software A. Tahap Analisa

Halaman Pengunjung :

A.1 Pengunjung dapat memilih menu diagnosa untuk mengetahui penyakit yang menyerang adenium miliknya.

A.2 Pengunjung dapat memilih menu penyakit untuk melihat informasi.

seputar penyakit adenium.

A.3 Pengunjung dapat memilih menu artikel untuk melihat artikel seputar adenium.

Halaman Admin :

B.1 Admin dapat mengelola data penyakit B.2 Admin dapat menglola data gejala B.3 Admin dapat mengelola data relasi B.4 Admin dapat mengelola data artikel B.5 Admin dapat mengelola data pakar B.6 Admin dapat mengelola info penyakit B.7 Admin dapat melakukan login

Halaman Pakar :

C.1 Pakar dapat melihat data Penyakit C.2 Pakar dapat melihat data gejala C.3 Pakar dapat menambah artikel

(2)

C.4 Pakar dapat mengubah password C.5 Pakar dapat melakukan login B. Use Case Diagram

1. Use Case Diagram Sistem Pakar Penyakit Adenium Halaman Pengunjung

Gambar IV.1

Usecase Sistem Pakar Adenium Halaman Pengunjung

Table IV.1

Deskripsi Use Case Sistem Pakar Adenium Halaman Pengunjung

(Menu Diagnosa)

Use Case Name Menu Diagnosa

Requirements A1

Goal Pengunjung dapat mengetahui penyakit yang menyerang adenium miliknya.

Pre-conditions Pengunjung telah memilih menu diagnosa dan melakukan konsultasi

Post-conditions Sistem mengirim hasil diagnosa yang telah disamakan dengan basis data

(3)

Primary Actors Pengunjung

Main Flow / Basic Path 1. Pengunjung memilih menu diagnosa 2. Sistem menampilkan form daftar pasien 3. Pasien mengisi form pendaftaran 4. Kemudian Sistem menampilkan gejala

pada adenium

5. Pengunjung memilih gejala yang menjangkit adenium miliknya

6. Sistem mengirim hasil konsultasi ke basis pengetahuan

7. Sistem menampilkan hasil diagnosa

Tabel IV.2

Deskripsi Use Case Sistem Pakar Adenium Halaman Pengunjung

(Menu Penyakit)

Use Case Name Menu Penyakit

Requirements A2

Goal Pengunjung dapat melihat informasi

penyakit adenium

Pre-conditions Pengunjung telah memilih menu penyakit Post-conditions Sistem menampilkan informasi penyakit

dari basis pengetahuan

Failed end conditions Pengunjung batal melihat informasi penyakit

Primary Actors Pengunjung

Main Flow / Basic Path 1. Pengunjung memilih menu penyakit

2. Sistem menampilkan daftar penyakit

3. Pengunjung memilih salah satu penyakit.

(4)

4. Sistem Menampilkan detail dari penyakit yang dipilih pengunjung

Tabel IV.3

Deskripsi Use Case Sistem Pakar Adenium Halaman Pengunjung

(Menu Artikel)

Use Case Name Menu Artikel

Requirements A3

Goal Pengunjung dapat melihat artikel seputar adenium Pre-conditions Pengunjung telah memilih menu artikel

Post-conditions Sistem menampilkan artikel dari database Failed end conditions Pengunjung batal melihat artikel

Primary Actors Pengunjung

Main Flow / Basic Path 1. Pengunjung memilih menu artikel 2. Sistem menampilkan data artikel 3. Pengunjung memilih salah satu artikel 4. Sistem menampilkan detail dari artikel

tersebut

(5)

Gambar IV.2

Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(6)

Tabel IV.4

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(Data Penyakit)

Use Case Name Menu Penyakit

Requirements B1

Goal Admin dapat menambahkan penyakit baru.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data penyakit 2. Sistem menampilkan halaman data

penyakit

3. Admin mengklik link tambah penyakit untuk menambah data penyakit

4. Sistem menampilkan form tambah penyakit

5. Admin mengisi data penyakit yang baru kemudian mengklik tombol simpan 6. Sistem menyimpan data penyakit baru ke

basis pengetahuan

7. Sistem kembali menampilkan halaman penyakit.

Invariant A 1. Admin memilih tombol “Edit” pada salah satu penyakit

2. Sistem menampilkan form edit penyakit 3. Admin mengedit data penyakit

4. Sistem mengubah data penyakit pada basis pengetahuan dan menampilkan kembali data penyakit yang telah diubah Invariant B : 1. Admin memilih tombol “Hapus” pada

salah satu penyakit

2. Sistem menghapus data penyakit pada basis pengetahuan.

(7)

Tabel IV.5

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(Data Gejala)

Use Case Name Data Gejala

Requirements B2

Goal Admin dapat menambahkan gejala baru.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data Gejala 2. Sistem menampilkan halaman data

penyakit

3. Admin mengklik link untuk menambah data gejala

4. Sistem menampilkan form tambah Gejala 5. Admin mengisi data gejala yang baru

kemudian mengklik tombol simpan 6. Sistem menyimpan data gejala baru ke

database

7. Sistem kembali menampilkan halaman data gejala.

Invariant A 1. Admin memilih tombol “Edit” pada salah satu gejala

1. Sistem menampilkan form edit gejala 2. Admin mengedit data gejala

3. Sistem mengubah data gejala pada basis pengetahuan dan menampilkan kembali data gejala yang telah diubah

Invariant B : 1. Admin memilih tombol “Hapus” pada salah satu gejala

2. Sistem menghapus data gejala pada basis pengetahuan.

(8)

Tabel IV.6

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(Data Relasi)

Use Case Name Data Relasi

Requirements B3

Goal Admin dapat menambahkan relasi baru.

Pre-conditions Admin telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data Relasi 2. Sistem menampilkan data relasi dari basis

pengetahuan

3. Admin memilih penyakit di data relasi terlebih dahulu

4. Kemudian admin memilih gejala yang cocok dengan penyakit tersebut

5. Admin memilih tombol simpan

Invariant A 1. Admin memilih penyakit yang sudah mempunyai relasi

2. Sistem menampilkan gejala dari penyakit tersebut

3. Admin mengubah relasi pada penyakit tersebut

4. Kemudian admin memilih tombol simpan

(9)

Tabel IV.7

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Pakar

(Data Artikel)

Use Case Name Data Artikel

Requirements B4

Goal Admin dapat mengolah artikel.

Pre-conditions Admin telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data artikel 2. Sistem menampilkan data artikel dari

basis pengetahuan

3. Admin memilih “edit” dari salah satu artikel

4. Sistem menampilkan form edit artikel 5. Admin mengedit data artikel

6. Sistem mengubah data artikel pada basis pengetahuan dan menampilkan kembali data artikel yang telah diubah

Invariant A 1. Admin memilih tombol “Hapus” pada salah satu artikel

2. Sistem menampilkan dialog konfirmasi penghapusan data

3. Admin memilih tombol “Yes”

4. Sistem menghapus artikel pada basis pengetahuan.

(10)

Tabel IV.8

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(Data Pakar)

Use Case Name Menu Data Pakar

Requirements B5

Goal Admin dapat menambahkan pakar.

Pre-conditions Admin telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data pakar 2. Sistem menampilkan data pakar

3. Admin mengklik link input pakar untuk menambah data

4. Sistem menampilkan form tambah pakar 5. Admin mengisi data pakar yang baru

kemudian mengklik tombol simpan 6. Sistem menyimpan data pakar baru ke

database

7. Sistem kembali menampilkan halaman data pakar.

Invariant A 1. Admin memilih tombol “Edit”

2. Sistem menampilkan form edit pakar 3. Admin mengedit data pakar

4. Sistem mengubah data pakar pada basis pengetahuan dan menampilkan kembali data pakar yang telah diubah

Invariant B : 1. Admin memilih tombol “Hapus” pada salah satu data pakar

2. Sistem menampilkan dialog konfirmasi penghapusan data

3. Admin memilih tombol “Yes”

4. Sistem menghapus data pakar pada database.

(11)

Tabel IV.9

Tabel Use Case Sistem Pakar Penyakit Adenium Halaman Admin

(Data Info Penyakit)

Use Case Name Menu Info Penyakit

Requirements B6

Goal Admin dapat menambahkan info penyakit.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai

Primary Actors Admin

Main Flow / Basic Path 1. Admin memilih menu data penyakit 2. Sistem menampilkan halaman info

penyakit

3. Admin mengklik link tambah info penyakit untuk menambah data info penyakit

4. Sistem menampilkan form tambah info penyakit

5. Admin mengisi data info penyakit yang baru kemudian mengklik tombol simpan 6. Sistem menyimpan data penyakit baru ke

basis data

7. Sistem kembali menampilkan halaman info penyakit.

Invariant A 1. Admin memilih tombol “Edit” pada salah satu info penyakit

2. Sistem menampilkan form edit info penyakit

3. Admin mengedit data info penyakit 4. Sistem mengubah data info penyakit pada

basis data dan menampilkan kembali data info penyakit yang telah diubah

(12)

Invariant B : 3. Admin memilih tombol “Hapus” pada salah satu info penyakit

4. Sistem menghapus data info penyakit pada basis data.

2. Use Case Sistem Pakar Penyakit Adenium Halaman Pakar

Gambar IV.3

Use Case Sistem Pakar Penyakit Adenium Halaman Pakar

(13)

Deskripsi Use Case Sistem Pakar Adenium Halaman Pakar

(Menu Penyakit)

Use Case Name Menu Penyakit

Requirements C1

Goal Pakar dapat melihat data penyakit.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai Primary Actors Pakar

Main Flow / Basic Path 1. Pakar memilih menu penyakit

2. Sistem menampilkan informasi penyakit dari basis pengetahuan

3. Pakar memilih salah satu penyakit

4. Sistem menampilkan definis, solusi dan gejala yang berkaitan dengan penyakit terserbut

Tabel IV.11

Deskripsi Use Case Sistem Pakar Adenium Halaman Pakar

(Menu Gejala)

Use Case Name Menu Gejala

Requirements C2

Goal Pakar dapat melihat data gejala.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

(14)

Failed end conditions Gagal Login, email dan password tidak sesuai Primary Actors Pakar

Main Flow / Basic Path 1. Pakar memilih menu gejala

2. Sistem menampilkan data gejala dari basis pengetahuan

Tabel IV.12

Deskripsi Use Case Sistem Pakar Adenium Halaman Pakar

(Menu Rule)

Use Case Name Menu Rule

Requirements C3

Goal Pakar dapat melihat data relasi.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai Primary Actors Pakar

Main Flow / Basic Path 1. Pakar memilih menu relasi

2. Pakar memilih salah satu penyakit

3. Sistem menampilkan data gejala dari penyakit tersebut menurut rule dari basis pengetahuan

(15)

Deskripsi Use Case Sistem Pakar Adenium Halaman Pakar

(Menu Artikel)

Use Case Name Menu Artikel

Requirements C4

Goal Pakar dapat menambah artikel.

Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai Primary Actors Pakar

Main Flow / Basic Path 1. Pakar memilih menu artikel

2. Sistem menampilkan halaman artikel 3. Pakar mengklik link input artikel untuk

menambah data artikel

4. Sistem menampilkan form tambah artikel 5. Pakar mengisi data artikel yang baru

kemudian mengklik tombol simpan 6. Sistem menyimpan data artikel

7. Sistem kembali menampilkan halaman artikel

(16)

Tabel IV.14

Deskripsi Use Case Sistem Pakar Adenium Halaman Pakar

(Menu Ubah Password)

Use Case Name Menu Ubah Password

Requirements C5

Goal Pakar dapat melakukan ubah password Pre-conditions Pakar telah melakukan login

Post-conditions Sistem melakukan validasi dan menyamakan username dan password dengan database.

Failed end conditions Gagal Login, email dan password tidak sesuai Primary Actors Pakar

Main Flow / Basic Path 1. Pakar memilih menu ubah password 2. Sistem menampilkan form ubah password 3. Pakar mengisi password lama dan

password baru

4. Sistem mengubah password lama ke password baru

5. Sistem menampilkan dialog konfirmasi password berhasil dirubah

6. Sistem kembali menampilkan halaman utama

(17)

4.2.1 Entity Relationship Diagram (ERD)

Gambar IV.4

Entity Relationship Diagram

(18)

4.2.2 Logical Relationship Structure (LRS)

Gambar IV.5

Gambar Logical Relationship Struktur

(19)

Nama File : Tabel Penyakit Akronim : penyakit

Fungsi : Untuk menyimpan data penyakit Tipe File : File master

Organisasi File : Index Sequential Akses File : Random

Media : Hardisk Panjang Record : 124

Kunci File : kd_penyakit Software : Mysql

Tabel IV.15

Spesifikasi File Tabel Penyakit

NO. Elemen Data Akromi Tipe Panjang Keterangan

1 Id Penyakit id_penyakit Char 4 Primary Key

2 Nama Penyakit nm_penyakit Varchar 60

3 Nama Latin nm_latin Varchar 60

4 Karakter karakter Text

5 Solusi solusi Text

(20)

2. Spesifikasi File Data Gejala

Nama File : Tabel Gejala Akronim : gejala

Fungsi : Untuk menyimpan data gejala Tipe File : File master

Organisasi File : Index Sequential Akses File : Random

Media : Hardisk Panjang Record : 104 Kunci File : kd_gejala Software : Mysql

Table IV.16

Spesifikasi File Tabel Gejala

No. Elemen Data Akronim Tipe Panjang Keterangan

1 Id Gejala id_gejala Char 4 Primary Key

2 Nama Gejala nm_gejala Varchar 100

(21)

Nama File : Tabel Relasi Akronim : relasi

Fungsi : Untuk menghubungkan penyakit dan gejala Tipe File : File transaksi

Organisasi File : Index Squential Akses File : Random

Media : Hardisk Panjang Record : 8 Kunci File : - Software : Mysql

Table IV.17

Spesifikasi File Tabel relasi

No. Elemen Data Akronim Tipe Panjang Keterangan

1 Id Gejala id_gejala Char 4

2 Id Penyakit id_penyakit Char 4

(22)

4. Spesifikasi File Analisa Hasil

Nama File : Tabel Analisa Hasil Akronim : analisa_hasil

Fungsi : Untuk menyimpan data hasil analisa Tipe File : File master

Organisasi File : Index Sequential Akses File : Random

Media : Hardisk Panjang Record : 288 Kunci File : id Software : Mysql

Tabel IV.18

Spesifikasi File Tabel Analisa Hasil

NO. Elemen Data Akromi Tipe Panjang Keterangan

1 Id id Int 4 Primary Key

2 Nama Nama Varchar 60

3 Kelamin kelamin Enum

4 Alamat alamat Varchar 100

5 Pekerjaan solusi Varchar 60

6 Kode Penyakit kd_penyakit Char 4

7 Noip noip Varchar 60

8 Tanggal tanggal datetime

(23)

Aplikasi Sistem Pakar Online Mendiagnosa Penyakit Adenium ini merupakan pemrograman terstruktur. Berikut adalah software architecturenya :

1. Activity Diagram

Gambar IV.6

Activity Diagram Halaman Admin (Menu Tambah Penyakit)

(24)

2. Deployment Diagram

Gambar IV.7

Deployment Diagram

(25)

Gambar IV.8

Component Diagram

(26)

4.2.4 User Interface

1. Tampilan Interface Pengunjung A. Front Page

Gambar IV.9

Tampilan Utama (Home) Pengunjung

(27)

Gambar IV.10 Tampilan Menu Diagnosa

(28)

C. Tampilan Menu Hasil

Gambar IV.11 Tampilan Hasil

(29)

Gambar IV.12 Tampilan Menu Artikel

(30)

E. Tampilan Menu Penyakit

Gambar IV.13 Tampilan Menu Penyakit

(31)

A. Tampilan Menu Penyakit

Gambar IV.14

Tampilan Menu Penyakit (Admin)

(32)

B. Tampilan Menu Gejala

Gambar IV.15

Tampilan Menu Gejala (Admin)

(33)

Gambar IV.16

Tampilan Menu Relasi (Admin)

(34)

3. Tampilan halaman pakar A. Tampilan Ubah Password

Gambar IV.17

Tampilan Menu Penyakit (Admin)

(35)

A. Code Form Konsultasi

<?php

include "librari/inc.koneksidb.php";

$NOIP = $_SERVER['REMOTE_ADDR'];

# Periksa apabila sudah ditemukan

$sql_cekh = "SELECT * FROM tmp_penyakit WHERE noip='$NOIP' GROUP BY kd_penyakit";

$qry_cekh = mysql_query($sql_cekh, $koneksi);

$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, $koneksi);

$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, $koneksi);

echo"<meta http-equiv='refresh' content='0;

url=index.php?page=hasil'>";

exit;

}

$sqlcek = "SELECT * FROM tmp_analisa WHERE noip='$NOIP'";

$qrycek = mysql_query($sqlcek, $koneksi);

$datacek= mysql_num_rows($qrycek);

if ($datacek >= 1) {

$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, $koneksi) or die ("Gagal $qryg :

".mysql_error());

$datag = mysql_fetch_array($qryg) or die ("Gagal datag :

".mysql_error());

$kdgejala = $datag['kd_gejala'];

$gejala = $datag['nm_gejala'];

//echo " ADA ($sqlg)";

}else {

(36)

$sqlg = "SELECT * FROM gejala ORDER BY kd_gejala LIMIT 1";

$qryg = mysql_query($sqlg, $koneksi);

$datag = mysql_fetch_array($qryg);

$kdgejala = $datag['kd_gejala'];

$gejala = $datag['nm_gejala'];

}

?>

<html>

<head>

<title>Form Utama Penelusuran</title>

</head>

<body>

<form action="?page=konsulcek" method="post" name="form1"

target="_self">

<table width="100%" border="0" cellpadding="2" cellspacing="1"

bgcolor="#DBEAF5">

<tr>

<td><b>JAWABLAH PERTANYAAN BERIKUT :</b></td>

</tr>

<tr>

<td width="312" bgcolor="#FFFFFF">Apakah Ayam Anda mengalami

<?php echo $gejala; echo "[ $kdgejala ]"; ?> ?

<input name="TxtKdGejala" type="hidden" value="<?php echo

$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>

<tr>

<td bgcolor="#FFFFFF">&nbsp;</td>

</tr>

<tr>

<td><strong>GEJALA YANG TERPILIH YA (BENAR)

</strong></td>

</tr>

<tr>

(37)

<?php

$sql_gjl = "SELECT gejala.* FROM gejala, tmp_gejala WHERE gejala.kd_gejala=tmp_gejala.kd_gejala AND tmp_gejala.noip='$NOIP' ORDER BY tmp_gejala.kd_gejala";

$qry_gjl = mysql_query($sql_gjl, $koneksi) or die ("Gagal Query".mysql_error());

$cekAda = mysql_num_rows($qry_gjl);

if ($cekAda == 0) { echo "BELUM ADA";

}

while($hsl_gjl = mysql_fetch_array($qry_gjl)) {

echo "[ $hsl_gjl[kd_gejala] ] = $hsl_gjl[nm_gejala] <br>";

}

?>

</td>

</tr>

<tr>

<td><strong>PENYAKIT YANG MUNGKIN TERSERANG

</strong></td>

</tr>

<tr>

<td bgcolor="#FFFFFF">

<?php

$sql_pyk = "SELECT penyakit.* FROM penyakit, tmp_penyakit WHERE penyakit.kd_penyakit=tmp_penyakit.kd_penyakit AND tmp_penyakit.noip='$NOIP' GROUP BY tmp_penyakit.kd_penyakit";

$qry_pyk = mysql_query($sql_pyk, $koneksi) or die ("Gagal Query".mysql_error());

$cekAda2 = mysql_num_rows($qry_pyk);

if ($cekAda2 == 0) { echo "BELUM ADA";

while($hsl_pyk = mysql_fetch_array($qry_pyk)) {

echo "[ $hsl_pyk[kd_penyakit] ] = $hsl_pyk[nm_penyakit] <br>";

}

?>

</td>

</tr>

</table>

</form>

</body>

</html>

(38)

B. Code Periksa Konsultasi

<?php

include "librari/inc.koneksidb.php";

# Baca variabel Form (If Register Global ON)

$RbPilih = $_POST['RbPilih'];

$TxtKdGejala= $_POST['TxtKdGejala'];

# Mendapatkan No IP

$NOIP =

$_SERVER['REMOTE_ADDR'];

# Fungsi untuk menambah data ke tmp_analisa function AddTmpAnalisa($kdgejala, $IP) {

$sql_sakit = "SELECT relasi.* FROM relasi,tmp_penyakit WHERE relasi.kd_penyakit=tmp_penyakit.kd_penyakit

AND noip='$IP' ORDER BY relasi.kd_penyakit,relasi.kd_gejala";

$qry_sakit = mysql_query($sql_sakit) or die ("Query error :".mysql_error());

while ($data_sakit = mysql_fetch_array($qry_sakit)) {

$sqltmp = "INSERT INTO tmp_analisa (noip, kd_penyakit,kd_gejala) VALUES ('$IP','$data_sakit[kd_penyakit]','$data_sakit[kd_gejala]')";

mysql_query($sqltmp) or die ("Query error :".mysql_error());

}

# Fungsi hapus tabel tmp_gejala

function AddTmpGejala($kdgejala, $IP) {

$sql_gejala = "INSERT INTO tmp_gejala (noip,kd_gejala) VALUES ('$IP','$kdgejala')";

mysql_query($sql_gejala) or die ("Query error :".mysql_error());

}

# Fungsi hapus tabel tmp_sakit function DelTmpSakit($IP) {

$sql_del = "DELETE FROM tmp_penyakit WHERE noip='$IP'";

mysql_query($sql_del) or die ("Query error :".mysql_error());

}

# Fungsi hapus tabel tmp_analisa function DelTmpAnlisa($IP) {

$sql_del = "DELETE FROM tmp_analisa WHERE noip='$IP'";

mysql_query($sql_del) or die ("Query error :".mysql_error());

}

(39)

if ($RbPilih == "YA") {

$sql_analisa = "SELECT * FROM tmp_analisa ";

$qry_analisa = mysql_query($sql_analisa, $koneksi) or die ("Query error :".mysql_error());

$data_cek = mysql_num_rows($qry_analisa);

if ($data_cek >= 1) {

# Kode saat tmp_analisa tidak kosong DelTmpSakit($NOIP);

$sql_tmp = "SELECT * FROM tmp_analisa WHERE kd_gejala='$TxtKdGejala' AND noip='$NOIP'";

$qry_tmp = mysql_query($sql_tmp, $koneksi) or die ("Query error :".mysql_error());

while ($data_tmp = mysql_fetch_array($qry_tmp)) {

$sql_rsakit = "SELECT * FROM relasi WHERE kd_penyakit='$data_tmp[kd_penyakit]' GROUP BY kd_penyakit";

$qry_rsakit = mysql_query($sql_rsakit, $koneksi) or die ("Query error :".mysql_error());

while ($data_rsakit = mysql_fetch_array($qry_rsakit)) { // Data penyakit yang mungkin dimasukkan ke tmp

$sql_input = "INSERT INTO tmp_penyakit

(noip,kd_penyakit)VALUES ('$NOIP','$data_rsakit[kd_penyakit]')";

mysql_query($sql_input, $koneksi) or die ("Query error :".mysql_error());

} }

// Gunakan Fungsi DelTmpAnlisa($NOIP);

AddTmpAnalisa($TxtKdGejala, $NOIP);

AddTmpGejala($TxtKdGejala, $NOIP);

}else {

# Kode saat tmp_analisa kosong

$sql_rgejala = "SELECT * FROM relasi WHERE kd_gejala='$TxtKdGejala'";

$qry_rgejala = mysql_query($sql_rgejala, $koneksi) or die ("Query error :".mysql_error());

while ($data_rgejala = mysql_fetch_array($qry_rgejala)) {

$sql_rsakit = "SELECT * FROM relasi WHERE kd_penyakit='$data_rgejala[kd_penyakit]' GROUP BY kd_penyakit";

$qry_rsakit = mysql_query($sql_rsakit, $koneksi) or die ("Query error :".mysql_error());

while ($data_rsakit = mysql_fetch_array($qry_rsakit)) {

(40)

// Data penyakit yang mungkin dimasukkan ke tmp

$sql_input = "INSERT INTO tmp_penyakit (noip,kd_penyakit) VALUES ('$NOIP','$data_rsakit[kd_penyakit]')";

mysql_query($sql_input, $koneksi) or die ("Query error :".mysql_error());

} }

// Menggunakan Fungsi

AddTmpAnalisa($TxtKdGejala, $NOIP);

AddTmpGejala($TxtKdGejala, $NOIP);

}

echo "<meta http-equiv='refresh' content='0;

url=index.php?page=konsul'>";

}

if ($RbPilih == "TIDAK") {

$sql_analisa = "SELECT * FROM tmp_analisa ";

$qry_analisa = mysql_query($sql_analisa, $koneksi) or die ("Query error :".mysql_error());

$data_cek = mysql_num_rows($qry_analisa);

if ($data_cek >= 1) {

# Kode saat tmp_analisa tidak kosong

$sql_relasi = "SELECT * FROM tmp_analisa WHERE kd_gejala='$TxtKdGejala'";

$qry_relasi = mysql_query($sql_relasi, $koneksi) or die ("Query error :".mysql_error());

while($hsl_relasi = mysql_fetch_array($qry_relasi)){

// Hapus daftar relasi yang sudah tidak mungkin dari tabel tmp

$sql_deltmp = "DELETE FROM tmp_analisa WHERE kd_penyakit='$hsl_relasi[kd_penyakit]' AND noip='$NOIP'";

mysql_query($sql_deltmp, $koneksi) or die ("Query error :".mysql_error());

// Hapus daftar penyakit yang sudah tidak ada kemungkinan

$sql_deltmp2 = "DELETE FROM tmp_penyakit WHERE kd_penyakit='$hsl_relasi[kd_penyakit]' AND noip='$NOIP'";

mysql_query($sql_deltmp2, $koneksi) or die ("Query error :".mysql_error());

} }else {

# Pindahkan data relsi ke tmp_analisa

$sql_relasi= "SELECT * FROM relasi ORDER BY kd_penyakit,kd_gejala";

$qry_relasi= mysql_query($sql_relasi, $koneksi) or die ("Query error :".mysql_error());

(41)

$sql_intmp = "INSERT INTO tmp_analisa (noip, kd_penyakit,kd_gejala)VALUES ('$NOIP','$hsl_relasi[kd_penyakit]', '$hsl_relasi[kd_gejala]')";

mysql_query($sql_intmp,$koneksi) or die ("Query error :".mysql_error());

// Masukkan data penyakit yang mungkin terjangkit

$sql_intmp2 = "INSERT INTO tmp_penyakit(noip,kd_penyakit) VALUES ('$NOIP','$hsl_relasi[kd_penyakit]')";

mysql_query($sql_intmp2,$koneksi) or die ("Query error :".mysql_error());

}

# Hapus tmp_analisa yang tidak sesuai

$sql_relasi2 = "SELECT * FROM relasi WHERE kd_gejala='$TxtKdGejala'";

$qry_relasi2 = mysql_query($sql_relasi2, $koneksi) or die ("Query error :".mysql_error());

while($hsl_relasi2 = mysql_fetch_array($qry_relasi2)){

$sql_deltmp = "DELETE FROM tmp_analisa WHERE kd_penyakit='$hsl_relasi2[kd_penyakit]' AND noip='$NOIP'";

mysql_query($sql_deltmp, $koneksi) or die ("Query error :".mysql_error());

// Hapus penyakit yang sudah tidak mungkin

$sql_deltmp2 = "DELETE FROM tmp_penyakit WHERE kd_penyakit='$hsl_relasi2[kd_penyakit]' AND noip='$NOIP'";

mysql_query($sql_deltmp2, $koneksi) or die ("Query error :".mysql_error());

} }

echo "<meta http-equiv='refresh' content='0;

url=index.php?page=konsul'>";

}

?>

C. Code Hasil Analisa

<?php

include "librari/inc.koneksidb.php";

$NOIP = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT analisa_hasil.*, penyakit.*

FROM analisa_hasil,penyakit

WHERE penyakit.kd_penyakit=analisa_hasil.kd_penyakit

(42)

AND analisa_hasil.noip='$NOIP'

ORDER BY analisa_hasil.id DESC LIMIT 1";

$qry = mysql_query($sql, $koneksi) or die ("Query Hasil salam".mysql_error());

$data= mysql_fetch_array($qry);

if ($data['kelamin']=="P") {

$kelamin = "Pria";

}else {

$kelamin = "Wanita";

}

?>

<html>

<head>

<title>Hasil Analisa Pasien</title>

</head>

<body>

<table width="100%" border="0" cellpadding="2" cellspacing="1"

bgcolor="#DBEAF5">

<tr align="center">

<td colspan="2" bgcolor="#22B5DD"><b>HASIL ANALISA PENYAKIT AYAM</b></td>

</tr>

<tr>

<td colspan="2"><b>DATA PASIEN :</b></td>

</tr>

<tr bgcolor="#FFFFFF">

<td width="86">Nama</td>

<td width="689"><?php echo $data['nama']; ?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td>Kelamin</td>

<td><?php echo $kelamin; ?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td>Alamat</td>

<td><?php echo $data['alamat']; ?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td>Pekerjaan</td>

<td><?php echo $data['pekerjaan']; ?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

(43)

<td colspan="2"><b>HASIL ANALISA TERAKHIR :</b></td>

</tr>

<tr bgcolor="#FFFFFF">

<td>Nama Penyakit</td>

<td><?php echo $data['kd_penyakit']." | ".$data['nm_penyakit'];

?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td valign="top">Gejala</td>

<td>

<?php

// Menampilkan daftar gejala

$sql_gejala = "SELECT gejala.* FROM gejala,relasi WHERE gejala.kd_gejala=relasi.kd_gejala

AND relasi.kd_penyakit='$data[kd_penyakit]'";

$qry_gejala = mysql_query($sql_gejala, $koneksi);

$i= 0;

while ($hsl_gejala=mysql_fetch_array($qry_gejala)) {

$i++;

echo "$i . $hsl_gejala[nm_gejala] <br>";

}

?> </td>

</tr>

<tr bgcolor="#FFFFFF">

<td valign="top">Keterangan</td>

<td><?php echo $data['keterangan']; ?></td>

</tr>

<tr bgcolor="#FFFFFF">

<td valign="top">Solusi</td>

<td><?php echo $data['solusi']; ?></td>

</tr>

</table>

</body>

</html>

4.4 Testing

<?php

include "librari/inc.koneksidb.php";

$NOIP = $_SERVER['REMOTE_ADDR'];

# Periksa apabila sudah ditemukan

$sql_cekh = "SELECT * FROM tmp_penyakit WHERE noip='$NOIP'

(44)

GROUP BY kd_penyakit";

$qry_cekh = mysql_query($sql_cekh, $koneksi);

$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, $koneksi);

$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, $koneksi);

echo"<meta http-equiv='refresh' content='0;

url=index.php?page=hasil'>";

exit;

}

$sqlcek = "SELECT * FROM tmp_analisa WHERE noip='$NOIP'";

$qrycek = mysql_query($sqlcek, $koneksi);

$datacek= mysql_num_rows($qrycek);

if ($datacek >= 1) {

$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, $koneksi) or die ("Gagal $qryg :

".mysql_error());

$datag = mysql_fetch_array($qryg) or die ("Gagal datag :

".mysql_error());

$kdgejala = $datag['kd_gejala'];

$gejala = $datag['nm_gejala'];

//echo " ADA ($sqlg)";

}else {

$sqlg = "SELECT * FROM gejala ORDER BY kd_gejala LIMIT 1";

$qryg = mysql_query($sqlg, $koneksi);

$datag = mysql_fetch_array($qryg);

$kdgejala = $datag['kd_gejala'];

$gejala = $datag['nm_gejala'];

}

?>

<html>

<head>

<title>Form Utama Penelusuran</title>

(45)

<body>

<form action="?page=konsulcek" method="post" name="form1"

target="_self">

<table width="100%" border="0" cellpadding="2" cellspacing="1"

bgcolor="#DBEAF5">

<tr>

<td><b>JAWABLAH PERTANYAAN BERIKUT :</b></td>

</tr>

<tr>

<td width="312" bgcolor="#FFFFFF">Apakah Ayam Anda mengalami

<?php echo $gejala; echo "[ $kdgejala ]"; ?> ?

<input name="TxtKdGejala" type="hidden" value="<?php echo

$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>

<tr>

<td bgcolor="#FFFFFF">&nbsp;</td>

</tr>

<tr>

<td><strong>GEJALA YANG TERPILIH YA (BENAR)

</strong></td>

</tr>

<tr>

<td bgcolor="#FFFFFF">

<?php

$sql_gjl = "SELECT gejala.* FROM gejala, tmp_gejala WHERE gejala.kd_gejala=tmp_gejala.kd_gejala AND tmp_gejala.noip='$NOIP' ORDER BY tmp_gejala.kd_gejala";

$qry_gjl = mysql_query($sql_gjl, $koneksi) or die ("Gagal Query".mysql_error());

$cekAda = mysql_num_rows($qry_gjl);

if ($cekAda == 0) { echo "BELUM ADA";

(46)

}

while($hsl_gjl = mysql_fetch_array($qry_gjl)) {

echo "[ $hsl_gjl[kd_gejala] ] = $hsl_gjl[nm_gejala] <br>";

}

?>

</td>

</tr>

<tr>

<td><strong>PENYAKIT YANG MUNGKIN TERSERANG

</strong></td>

</tr>

<tr>

<td bgcolor="#FFFFFF">

<?php

$sql_pyk = "SELECT penyakit.* FROM penyakit, tmp_penyakit WHERE penyakit.kd_penyakit=tmp_penyakit.kd_penyakit AND tmp_penyakit.noip='$NOIP' GROUP BY tmp_penyakit.kd_penyakit";

$qry_pyk = mysql_query($sql_pyk, $koneksi) or die ("Gagal Query".mysql_error());

$cekAda2 = mysql_num_rows($qry_pyk);

if ($cekAda2 == 0) { echo "BELUM ADA";

while($hsl_pyk = mysql_fetch_array($qry_pyk)) {

echo "[ $hsl_pyk[kd_penyakit] ] = $hsl_pyk[nm_penyakit] <br>";

}

?>

</td>

</tr>

</table>

</form>

</body>

</html>

(47)

1

3 2

4

5

6

Gambar IV.18

Grafik Alir Deteksi Penyakit Adenium

Kompleksitas Siklomatis (pengukuran kuantitatif terhadap kompleksitas logis suatu program) dari grafik dapat diperoleh dengan perhitungan :

V(G) = E – N + 2 Dimana :

E = Jumlah edge grafik alir yang ditandakan dengan gambar panah N = Jumlah simpul grafik alir yang ditandakan dengan gambar lingkaran.

Sehingga kompleksitas siklomatisnya adalah V(G)=5 – 6+ 2 = 1

Basis set yang dihasilkan dari jalur independent secara linier adalah jalur sebagai berikut :

1 – 2 – 3 – 4 – 5 – 6

Berdasarkan ketentuan tersebut dari segi kelayakan software, sistem ini telah memenuhi syarat.

(48)

4.5 Support

4.5.1 Publikasi Web

Publikasi website Sistem Pakar Online Untuk Mendiagnosa Penyakit Tanaman Adenium Menggunakan Metode Forward Chaining ini menggunakan hosting web ke idhostinger.com. Berikut daftar harga untuk hosting web ke idhostinger.com:

Tabel IV.19 Daftar Harga Hosting Web

Type Harga Spesifikasi hosting

Free Gratis -Disk Space 2000 MB

-Data Transfer 100 GB

-Script Auto Installer 50 Script -Backup Data Terbatas

-Garansi uptime 99%

Bayar Rp.38000/bln -Disk Space Unlimited

-Data Transfer Unlimited

-Script Auto Installer 60 Script -Backup data mingguan

-Garansi uptime 99,5%

Berdasarkan daftar harga diatas penulis memilih web hosting type free, untuk mencoba menghosting dan menjalankannya di web server, dikarenakan spesifikasi layanan web hosting gratis cukup untuk memenuhi kebutuhan minimal website Sistem Pakar Online Untuk Mendiagnosa Penyakit Tanaman Adenium Menggunakan Metode Forward Chaining

(49)

Kebutuhan hardware yang digunakan antara lain : Processor , Memory, Monitor, Hard Disk, Keyboard, Mouse. Kebutuhan software meliputi : Sistem Operasi , Software Aplikasi, dan Software Database.

Tabel IV.20

Spesifikasi Hardware dan Software Admin / Pakar

Kebutuhan Keterangan

Sistem Operasi : Windows 7, 8, 10

Processor RAM Hard Disk

: Intel® Atom™ CPU N570 @1.66 GHz 1.67GHz : 2.00 GB

: 500 GB

Monitor : LED

Keyboard : 84 key

Mouse : Standart

Browser : Mozilla Firefox, Google Chrome

Software : Adobe Dreamweaver, Adobe Photoshop, Php MyAdmin

Tabel IV.21

Spesifikasi Hardware dan Software Client

Kebutuhan Keterangan

Sistem Operasi : Windows 7, 8, 10

Processor RAM Hard Disk

: Intel® Atom™ CPU N570 @1.66 GHz 1.67GHz : 1.00 GB

: 500 GB

Monitor : LED

Keyboard : 84 Key

Mouse : Standart

Browser : Mozilla Firefox, Google Chrome, Internet Explorer

Referensi

Dokumen terkait

b) Admin dapat mengelola data kendaraan c) Admin dapat mengelola data konsumen d) Admin dapat mengelola data leasing e) Admin dapat mengelola data pengguna f) Admin

Admin dapat menginput pertanyaan-pertanyaan yang ada dalam sistem, admin mengelola daftar kasus, data gejala, data parameter yang akan diproses dalam sistem pakar

a) Admin dapat login dan masuk kehalaman beranda admin menggunakan username dan password sesuai yang ada pada database. b) Admin dapat mengolah dan menginputkan data

Pada edisi ke 101, ilustrator diambil alih oleh direktur artistik Ali Syahbana, sehingga ada sedikit pergeseran relasi, ilustrator merupakan mahasiswa komunikasi yang

1) Admin dapat mengelola tampilan web user dan admin. 2) Admin dapat mengelola manajemen surat masuk, surat keluar, disposisi, menu, level, data user, kode surat,

Goal Admin dapat mengelola data barang Pre-Conditions Admin memilih menu data barang Post-Conditions Data barang berhasil tersimpan Failed

Kegiatan yang dapat dilakukan oleh admin yaitu: login, mengelola data admin, mengelola data member, mengelola data kategori, mengelola data produk, mengelola

Halaman ini menampilkan untuk admin harus memasukan username dan password sesuai dengan data username dan password yang sudah dibuat, apabila berhasil maka akan