26
26 BAB IV
RANCANGAN SISTEM DAN PROGRAM USULAN 4.1 Analisis Kebutuhan Software
4.1.1. Tahap Analisis
Dari hasil analisis pada prosedur sistem berjalan, didapatkan spesifikasi kebutuhan untuk merancang website sebagai berikut:
Halaman Pasien :
A1. Pasien melakukan Login dengan memasukan Username dan Password A2. Pasien Konsultasi secara Online dengan dokter
A3. Pasien memilih menu pendaftaran A4. Pasien Input Data Pendaftaran A5. Pasien cetak pendaftaran Halaman Dokter:
B1. Dokter melakukan login dengan memasukan Username dan Password B2. Dokter pilih diagnosa pasien
B3. Dokter Input Diagnosa
B4. Dokter Melakukan Konsultasi Online dengan Pasien Halaman Admin:
C1. Admin melakukan login dengan memasukan Username dan Password C2. Admin menginput data administrasi (data poli,data user dan data pendaftaran
pasien.
C3. Admin membuat laporan diagnosa, data pasien.
4.1.2. Use Case Diagram
Penggambaran use case dari website sistem informasi pelayanan pasien yang akan dibangun sebagai berikut:
1. Use Case Diagram Halaman Pasien
Gambar IV.1. Use Case Diagram Halaman Pasien
Deskripsi Use Case Diagram Halaman Pasien Konsultasi Online:
Tabel IV.1. Deskripsi Use Case Diagram Halaman Pasien Konsultasi Online Use Case Name Halaman Pasien Konsultasi Online
Requirements A1-A2
Goal Pasien dapat melakukan konsultasi dengan dokter
uc Use Case Model
Halaman Pasien
Pasien
Pilih Pendaftaran Login
Masukan Username dan Passw ord
Input Data Pendaftaran
Cetak Kartu Pendaftaran Pilih Riw ayat Medis
Konsultasi Online
Dokter
«include»
«include»
«extend»
«include»
«extend»
Pre-condition Pasien login
Post-condition Data konsultasi tersimpan pada database Failed end condition URL tidak bisa diakses
Primary Actor Pasien
Main Flow/Basic Path 1.Pasien login dengan input username dan password
2.Pasien pilih menu konsultasi 3.Pasien konsultasi dengan dokter
Invariant -
Deskripsi Use Case Diagram Halaman Pasien Pendaftaran :
Tabel IV.2. Deskripsi Use Case Diagram Halaman Pasien Pendaftaran Use Case Name Halaman Pasien
Requirements A3-A5
Goal Pasien melakukan pendaftaran secara online Pre-condition Pasien memilih poli
Post-condition Data Pendaftaran Tersimpan pada database Failed end condition URL tidak bisa diakses
Primary Actor Pasien
Main Flow/Basic Path 1.Pasien melihat total pendaftaran 2.Pasien melakukan pendaftaran 3.Pasien cetak kartu pendaftaran
Invariant -
2. Use Case Diagram Halaman Dokter
Gambar IV.2. Use Case Diagram Halaman Dokter
Deskripsi Use Case Diagram Halaman Dokter :
Tabel IV.3. Deskripsi Use Case Diagram Halaman Dokter Use Case Name Halaman Dokter
Requirements B1-B4
Goal 1. Dokter input data diagnose pasien 2. Dokter Konsultasi Online dengan Pasien Pre-condition Dokter pilih menu diagnosa
Post-condition Data tersimpan kedalam database Failed end condition URL tidak bisa diakses
uc Use Case Model
Dokter
Login
Pilih Menu Diagnosa
Konsultasi Online
Input Data Diagnosa Username dan
passw ord
Pasien
«extend»
«include»
«include»
«include»
Primary Actor Dokter Main Flow/Basic Path -
Invariant -
3. Use Case Diagram Halaman Admin
Gambar IV.3. Use Case Diagram Halaman Admin
Tabel IV.4. Deskripsi Use Case Diagram Input Data Administrasi
Use Case Name Input data administrasi
Requirements C1,C2
Goal Data user, data poli, data pendaftaran tersimpan Pre-condition Admin melalukan login terlebih dahulu
uc Use Case Model
Halaman Admin Kepala IT
Admin Kepala IT
Login
Data Administrasi
Data Laporan Username dan
Passw ord
«extend»
«include»
«extend»
Post-condition Data disimpan pada database
Failed end condition Data tidak tersimpan, admin tidak menginputkan data
Primary Actor Admin
Main Flow /Basic Path 1. Admin login
2. Admin mengisi form data user 3. Admin mengisi form data poli
4. Admin mengisi form data pendaftaran Alternate Flow/Invariant 1 -
Invariant2 -
Tabel IV.5. Deskripsi Use Case Membuat Laporan
Use Case Name Membuat laporan
Requirements D1, D3
Goal 1. Melihat laporan diagnosa
2. Melihat laporan pendaftaran pasien Pre-condition Admin melakukan login
Post-condition Menampilkan laporan
Failed end condition Admin tidak melakukan pelaporan
Primary Actor Admin
Main Flow/Basic Path Admin melihat laporan
Invariant -
5. Activity Diagram
1. Activity Diagram Halaman Pasien
Gambar IV.4. Activity Diagram Halaman Pasien
act Business Process Model
Halaman Pasien Pasien
start
Membuka halaman web
Memilih Menu Pendaftaran Pasien
Online
Pilih Menu Login
Input Pendaftaran Pasien Baru
Input Username dan Pasword
Riwayat Medis
Konsultasi Cetak Kartu Pendaftaran
End
Simpan Daftar dan dapat nomor
antrian
Kartu Pendaftaran
Daftar Ulang [Tidak Sesuai]
2. Activity Diagram Halaman Dokter
Gambar IV.5. Activity Diagram Halaman Dokter
3. Activity Diagram Data Administrasi Halaman Admin
Gambar IV.6. Activity Diagram Data Administrasi Halaman Admin
act Activ ity Unit Pemeriksa
Halaman Dokter Dokter
Start
Melalukan Login
Validasi Login
Menampilkan Halaman Dokter
Pilih Form Data Diagnosa
T ampil Form Data Diagnosa
Input Data Diagnosa
Pilih Form Data Konsultasi
Simpan Data
FInal
act Aktiv ity Admin
Halaman Admin Admin
Start
Melakukan Login
Validasi Login
Menampilkan Halaman Admin
Pilih Data Administrasi
Menampilkan Data User, Data Poliklinik dan data pendaftaran pasien
Final
4. Activity Diagram Menu Laporan
Gambar IV.7. Activity Diagram Menu Laporan
4.1.3. Analisis Algoritma AES (Advanced Encryption Standard) untuk keamanan data
A. Kerangka Kerja Penelitian
Kerangka kerja yang digunakan penulis dalam menyelesaikan permasalahan ini yaitu :
act Activ ity Cetak Laporan
Halaman Admin Admin
Start
Pilih Menu Laporan
Pilih Menu Laporan Data Rekam Medis
Pilih Menu Laporan Pendaftaran
Tampil Laporan Rekam Medis
Tampil Laporan Pendaftaran
Cetak Laporan Pendaftaran Final
Gambar IV.8. Kerangka Kerja Penelitian B. AES (Advanced Encryption Standard)
Menurut penelitian Tentang Perancangan Pengamanan Data Menggunakan Algoritma AES diperoleh pengertian AES merupakan algoritma cryptographic yang dapat digunakan untuk mengamankan data. Algoritma AES adalah blok chipertext simetrik yang dapat mengenkripsi dan dekripsi informasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut ciphertext, sebaliknya dekripsi adalah merubah ciphertext data menjadi bentuk semula yang dikenal sebagai plaintext [2][6] [7].
Proses yang dilakukan pada setiap rondenya identik sama (dari ronde ke-1 sampai dengan ronde ke Nr-1) kecuali untuk ronde Nr. Proses yang identik tersebut terdiri atas SubBytes, ShiftRows, MixColumns dan AddRoundKey. Sedangkan pada
ronde Nr, proses MixColumns tidak dilakukan. Tiap ronde memilki roundkey yang dihasilkan dari ekspansi dari kunci utama.
Proses enkripsi yang dilakukan menggunakan algoritma AES yaitu:
1. AddRoundKey
Proses ini dilakukan di awal ronde dengan melakukan operasi XOR tiap byte pada matriks state (plaintext) dengan tiap byte pada cipherkey, tahap ini disebut juga initial round.
2. SubBytes
SubBytes merupakan transformasi byte dimana setiap elemen pada state akan dipetakan dengan menggunakan sebuah tabel substitusi ( S-Box ). Untuk setiap byte pada state dinyatakan dengan S’[r, c]. S’[r, c] adalah elemen di dalam tabel subtitusi yang merupakan perpotongan baris (x)dengan kolom (y).
Shiftrows
Shiftrows pada dasarnya adalah proses pergeseran bit dimana bit paling kiri akan dipindahkan menjadi bit paling kanan (rotasi bit). Namun jumlah pergeseran yang dilakukan berbeda, tergantung untuk setiap barisnya. Baris pertama tidak terjadi pergeseran. Setiap byte dari baris kedua pada matriks state digeser satu byte ke kiri. Selanjutnya baris ketiga digeser ke kiri sebanyak dua byte dan pada baris keempat digeser ke kiri sebanyak tiga byte. Proses ini bertujuan untuk menghasilkan diffusion yakni dengan menyebarkan pengaruh transformasi nonlinear pada baris-baris matriks state untuk putaran selanjutnya.
3. MixColumns
Pada proses MixColumns, tiap kolom dari matriks state dilakukan operasi perkalian. Hal ini bertujuan untuk menyebarkan pengaruh setiap bit plaintext dan cipherkey terhadap ciphertext yang dihasilkan, pada arah kolom matriks state.
Setiap kolom matriks state diperlakukan sebagai polinomial empat suku dalam Galois field, kemudian dikalikan dengan modulo (……….Operasi MixColumns juga dapat dipandang sebagai perkalian matriks, dengan mengalikan empat bilangan di dalam Galois field
MixColumns juga disebut sebagai proses mengalikan setiap kolom dengan matriks berikut: [ ]
4. AddRoundKey
Dalam tahap AddRoundKey ini, cipherkey yang telah ada di ekspansikan terlebih dahulu maka akan di dapat roundkey yang akan digunakan untuk proses selanjutnya. Kemudian setiap byte dari matriks state keluaran proses MixColumns dilakukan operasi XOR dengan setiap byte dari roundkey.
Proses round atau proses SubBytes, ShiftRows, MixColumns, dan AddRoundKey dilakukan hingga putaran ke-n dengan cara yang sama. Sedangkan utuk putaran terakhir atau disebut juga final round proses SubBytes, ShiftRows, dan AddRoundKey tetap dilakukan tetapi proses MixColumns tidak dilakukan.
C. Simulasi Proses Perhitungan AES
PlainText: 32 43 f6 a8 | 88 5a 30 8d | 31 31 98 a2 | - - - -
Karena kurang dari 16 karakter maka ditambah dengan 04 04 04 04 sehingga menjadi
PlainText: 32 43 f6 a8 | 88 5a 30 8d | 31 31 98 a2 | 04 04 04 04
Chiper Key : 2b 7e 15 16 | 28 ae d2 a6 | |- - - -
Karena kurang dari 16 karakter maka ditambah dengan 08 08 08 08 | 08 08 08 08 sehingga menjadi
ChiperKey: 2b 7e 15 16 | 28 ae d2 a6 | 08 08 08 08 | 08 08 08 08
Masukkan Ke Kolom 4 X 4 Plainteks :
Chiperkey :
Konversikan Ke Biner Plainteks, Chiperkey.
Kita hitung dulu key schedule, hasil dari perhitungan akan digunakan pada proses selanjutnya untuk proses enkripsi. Langkah- langkah ekspansi kunci (key schedule) sebagai berikut:
1. Kolom cipherkey paling kanan dirotasi dan dikonversi menggunakan tabel S- Box.
2. Kemudian hasilnya akan di xor kan dengan kolom cipherkey paling kiri dan di xor kan lagi dengan table rcon pada kolom 1.
3. Lakukan proses ini sampai semua kolom dihitung, sehingga akan diperoleh roundkey ke-n.
Contoh:
Enkripsi
AddRoundKey atau juga bisa disebut sebagai initial round
Plainteks:
Chiperkey:
32 XOR 2b = 00110010 XOR 00101011 = 00011001
Lakukan dengan cara yang sama sampai semua terhitung, maka diperoleh:
Konversi Ke Hexadesimal menjadi 19 3d e3 be | a0 f4 e2 2b | 39 39 90 aa | 0c 0c 0c 0c
Round 1
State : 19 3d e3 be | a0 f4 e2 2b | 39 39 90 aa | 0c 0c 0c 0c
Tahap selanjutnya adalah SubBytesdiketahui byte pertama 19, y = 1 dan x = 9, Begitu seterusnya sampai matriks tersubtitusi
After SubBytes : d4 27 11 ae | e0 bf 98 f1 | 12 12 60 ac | fe fe fe fe
Tahap selanjutnya adalah ShiftRows
After ShiftRows : d4 bf 60 fe | e0 12 fe ae | 12 fe 11 f1 | fe 27 98 ac
Tahap selanjutnya adalah MixColumns
After MixColumns : f7 ef b2 5f | bd 73 fc 90 | dd 37 c6 20 | ba af 1d e5, Di xor kan denganRound Key : 1a 4e 25 26 | 32 e0 f7 80 | 3a e8 ff 88 | 32 e0 f7 80 Maka hasilnya adalah
After AddRoundKey : ed a1 97 79 | 8f 93 0b 10 | e7 df 39 a8 | 88 4f ea 65
Proses seperti pada round 1 dilakukan sampai round 9 dan pada final round proses MixColumns tidak dilakukan.
Round 9
After SubBytes : c6 86 ea 84 | a8 38 b9 5b | bb 8f f4 19 | 03 55 58 50
After ShiftRows : c6 38 f4 50 | a8 8f 58 84 | bb 55 ea 5b | 03 86 b9 19
After MixColumns : 7b e1 fd 3d | 1d c1 00 27 | 23 6f cc df | 37 dd c7 08
Round Key 9 : 94 9b ba 31 | 89 a3 8c 3d | 36 a0 42 82 | 41 a0 0a 11
After AddRoundKey : ef 7a 47 0c | 94 62 8c 1a | 15 cf 8e 5d | 76 7d cd 19
Final Round
After SubBytes : df da a0 fe | 22 aa 64 a2 | 59 8a 19 4c | 38 ff bd d4
After ShiftRows : df aa 19 d4 | 22 8a bd fe | 59 ff a0 a2 | 38 da 64 4c
After AddRoundKey : 9d 56 21 66 | e9 d5 09 71 | a4 00 56 af | 84 85 98 50
Round Key 10 : 42 fc 38 b2 | cb 5f b4 8f | fd ff f6 0d | bc 5f fc 1c
Hasil CipherText adalah 9d 56 21 66 | e9 d5 09 71 | a4 00 56 af | 84 85 98 50
4.2 Desain 4.2.1 Database
1. Entity Relationship Diagram
Gambar IV.9. Entity Relationshop Diagram Pendaftaran Pasien Puskesmas Sukalarang
2. Logical Record Structure
Tb_rekam Tb_pasien
Tb_poli No_rekam
Tglperiksa Diagnosa Obat status
No_pendaftaran Tgl Nm_pasien
Usia Jk Alamat_p
Kode_poli Nm_poli
biaya
No_rekam No_pendaftaran
Tb_pesan Id_pesan No_pendaftaran
Nip Pesan Tanggal
Jam aktif Tb_pegawai
nip Nama_lengkap Alamat_pegawai Telepon_pegawai
Password Level No_rekam No_rekam
No_pendaftar an
nip
Gambar IV.10. Logical Record Structure Pendaftaran Pasien Puskesmas Sukalarang
3. Spesifikasi File
a. Spesifikasi File Tabel Pegawai Nama Database : db_puskesmas Nama File : Tabel Pegawai Akronim : tb_pegawai.myd Tipe File : File Master Akses File : Random Panjang Record : 65 Byte Kunci Field : nip
Tabel IV.6. Spesifikasi File Tabel Admin
No Nama Field Type Size Keterangan
1 Nip Varchar 15 Primary Key
2 nama_lengkap Varchar 35
3 alamat_pegawai Text -
4 telepon_pegawai Varchar 15
5 password Text -
6 Level enum('OBAT','ADM','DOKTER') -
b. Spesifikasi File Tabel Pasien
Nama Database : db_puskesmas Nama File : Tabel Pasien
Akronim : tb_pasienbarang.myd Tipe File : File Transaksi
Akses File : Random Panjang Record : 90 Byte
Kunci Field : no_pendaftaran
Tabel IV.7. Spesifikasi File Tabel Pasien
No Nama Field Type Size Keterangan
1 no_pendaftaran Varchar 12 Primary Key
2 tgl Varchar 10
3 nama_pasien Varchar 35
4 usia Varchar 2
5 jenis_kelamin enum('Laki-
Laki','Perempuan') -
6 alamat_pasien Text -
7 kode_poli Varchar 5 Foreign Key
8 Jnspelayanan Varchar 15
9 biaya int 11
c. Spesifikasi File Tabel Poli
Nama Database : db_puskesmas Nama File : Tabel Poli Akronim : tb_poli.myd Tipe File : File Master Akses File : Random Panjang Record : 51 Byte Kunci Field : kode_poli
Tabel IV.8. Spesifikasi File Tabel Poli
No Nama Field Type Size Keterangan
1 Kode_poli Varchar 5 Primary Key
2 Nama_poli Varchar 35
3 Biaya Int 11
d. Spesifikasi File Tabel Rekam
Nama Database : db_puskesmas Nama File : Tabel Rekam Akronim : tb_rekam.myd Tipe File : File Transaksi Akses File : Random Panjang Record : 49 Byte Kunci Field : no_rekam
Tabel IV.9. Spesifikasi File Tabel Rekam
No Nama Field Type Size Keterangan
1 no_rekam Varchar 10 Primary Key
2 tgl_periksa Varchar 12
3 diagnosa Text -
4 obat Text -
5 no_pendaftaran Varchar 12 Foreign Key
6 Nip Varchar 15 Foreign Key
e. Spesifikasi File Tabel Pesan
Nama Database : db_puskesmas Nama File : Tabel Pesan Akronim : tb_pesan.myd Tipe File : File Transaksi Akses File : Random Panjang Record : 37 Byte Kunci Field : id_pesan
Tabel IV.10. Spesifikasi File Tabel Pesan
No Nama Field Type Size Keterangan
1 Id_pesan Varchar 10 Primary Key
2 Nip Varchar 15 Foreign Key
3 no_pendaftaran Varchar 12 Foreign Key
4 pesan Text -
5 tanggal Date -
6 jam Time -
7 Aktif enum('Y','N') -
4.2.2. Software Architecture
A. Deployment Diagram
Gambar IV.11. Deployment Diagram
4.2.3. User Interface
A. Halaman Utama
Gambar IV.12. Halaman Utama
B. Halaman Pendaftaran Pasien
Gambar IV.13. Halaman Pendaftaran Pasien
C. Halaman Cetak Kartu Berobat
Gambar IV.14. Halaman Cetak Kartu Berobat
D. Halaman Login Pasien
E. Halaman Login Pegawai
Gambar IV.16.Halaman Login Pegawai Gambar IV.15.Halaman Login Pesaien
F. Halaman Utama Pegawai ( Dokter)
G. Halaman Menu Utama Pegawai ( Kepala IT)
Gambar IV.17. Halaman Utama Pegawai (Dokter)
Gambar IV.18. Halaman Menu Utama Pegawai (Kepala IT)
4.3. Code Generation
A. Form Pendaftaran Pasien
<div class="single_left_coloum_wrapper">
<h2 class="title">Pendaftaran Pasien</h2>
</div>
, Jika Sudah Miliki No Pendaftaran <a href="index.php?page=cari" class="">KLIK DISINI</a>
<?php
$today=date("Ymd");
$query = "SELECT max(no_pendaftaran) AS last FROM tb_pasien WHERE no_pendaftaran LIKE '$today%'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
$lastNoTransaksi = $data['last'];
$lastNoUrut = substr($lastNoTransaksi, 8, 4);
$nextNoUrut = $lastNoUrut + 1;
$nextNoTransaksi = $today.sprintf('%04s', $nextNoUrut);
?>
<script language="javascript" type="text/javascript">
function toggleMe(val) {
var tarif = document.getElementById('tarif');
var biaya = document.getElementById('biaya');
if(val=='umum') {
tarif.style.visibility = "hidden";
biaya.style.visibility = "visible";
}
else {
tarif.style.visibility = "visible";
biaya.style.visibility = "hidden";
} }
</script>
<form method="post" target="_blank" action="simpan.php">
<table width="100%" border="0" cellpadding="2" cellspacing="2" >
<tr>
<td width="157" height="34">No. Pendaftaran </td>
<td width="10">:</td>
<td width="171"><input type="text" name="no" id="no" value="<?php echo
$nextNoTransaksi; ?>" readonly="readonly" /></td>
</tr>
<tr>
<td height="34">Nama Pasien</td>
<td>:</td>
<td><input type="text" name="nama" id="nama" size="60" required=""
placeholder="Masukan Nama Lengkap Anda"/></td>
</tr>
<tr>
<td height="35">Usia</td>
<td>:</td>
<td><input type="text" name="usia" id="usia" required="" size="5" maxlength="2"
placeholder="Usia"/></td>
</tr>
<tr>
<td height="37">Jenis Kelamin</td>
<td>:</td>
<td><label>
<select name="jk" id="jk">
<option>--Pilih Jenis Kelamin--</option>
<option value="Perempuan">Perempuan</option>
<option value="Laki-Laki">Laki-Laki</option>
</select>
</label></td>
</tr>
<tr>
<td height="93" valign="top">Alamat</td>
<td valign="top">:</td>
<td valign="top"><label>
<textarea name="alt" id="alt" cols="45" rows="5" required="" placeholder="Isi Alamat Lengkap Anda"></textarea>
</label></td>
</tr>
<tr>
<td>Poli Klinik Tujuan</td>
<td>:</td>
<td><select name="poli" id="poli">
<option>-- Silahkan Pilih Poli --</option>
<?php $poli=mysql_query("SELECT*FROM tb_poli");
while($tampil=mysql_fetch_array($poli)) {
?>
<option value="<?php echo $tampil['kode_poli'] ?>"><?php echo
$tampil['nama_poli'] ?></option>
<?php } ?>
</select></td>
</tr>
<tr>
<td height="36">Jenis Pelayanan</td>
<td>:</td>
<td><select name="jnspelayanan" id="jnspelayanan"
onchange="toggleMe(this.value)">
<option value="umum">-- Silahkan Pilih Jenis Pelayanan --</option>
<option value="umum">UMUM</option>
<option value="Jamkesmas">JAMKESMAS</option>
<option value="Askes">ASKES</option>
</select>
</td>
</tr>
<tr id="tarif">
<td height="33">No Jaminan</td>
<td>:</td>
<td><input name="tarif" type="text"/> </td>
</tr>
<tr>
<td height="49"> </td>
<td> </td>
<td><label>
<input type="submit" name="button" id="button" class="btn" value="Daftar">
<input type="reset" name="button2" id="button2" class="btn" value="Batal">
</label></td>
</tr>
</table>
</form>
<table width="581" border="0" cellpadding="0" cellspacing="0" class="table">
<tr>
<th width="265" height="43" bgcolor="#ADFCB9"><div align="left">POLI TUJUAN</div></th>
<th width="104" bgcolor="#ADFCB9"><div align="center">ANTRIAN SAAT INI</div></th>
<th width="212" bgcolor="#ADFCB9"><div align="left">KETERANGAN</div></th>
</tr>
<?php
echo $hari=date("Ymd");
$jml=substr($hari, 6,4);
$sql=mysql_query("SELECT * FROM tb_poli");
while($tampil=mysql_fetch_array($sql)) {
?>
<tr>
<td height="28"><?php echo $tampil['nama_poli']; ?></td>
<?php
$kode=$tampil['kode_poli'];
$hitung=mysql_query("SELECT * FROM tb_pasien WHERE tgl='$hari' AND kode_poli='$kode'");
$data=mysql_num_rows($hitung);
$kurang=(50-$data) ?>
<td><div align="center"><strong><?php echo $data; ?> </strong> Antrian
</div></td>
<?php
if($data >= 50) {
$ket='<font color=red>ANTRIAN SUDAH PENUH</font>';
}else{
$ket='<font color=green>MASIH TERSISA <b>'.$kurang. '</b>
ANTRIAN </font>';
}
?>
<td><div align="left"><?php echo $ket ?></div></td>
<?php } ?>
</tr>
</table>
B. Form Input Data Rekam Medik
<script type="text/javascript" src="modul/rekam/ajax.js"></script>
<script language="javascript">
$(document).ready(function() { cari_nomor();
function editRow(ID){
var kode = ID;
$.ajax({
type : "POST",
url : "modul/rekam/cari.php", data : "kode="+kode,
dataType: "json", success: function(data){
$("#no_rekam").val(data.norekam);
$("#tgl").val(data.tgl);
$("#no_pendaftaran").val(data.jenis_obat);
$("#diagnosa").val(data.diagnosa);
$("#obat").val(data.obat);
}
});
}
function cari_nomor(){
var no = 1;
$.ajax({
type : "POST",
url : "modul/rekam/cari_nomor.php", data : "no="+no,
dataType: "json", success: function(data){
$("#no_rekam").val(data.no_rekam);
}
});
}
$(document).ready(function(){
$("#term").autocomplete({
minLength:1,
source:"modul/rekam/auto.php", select:function(event,data){
$("#term").val(data.item.no_pendaftaran);
$("#no_pendaftaran").val(data.item.no_pendaftaran);
$("#nama_pasien").val(data.item.nama_pasien);
$("#usia").val(data.item.usia);
diagnosa.focus();
}
});
});
<div class="panel-heading">
Data Diagnosa </div>
<div class="panel-body">
<?php
echo "<table width='100%' class='table'>
<tr>
<td>No. Rekam Medik</td>
<td>:</td>
<td><input type='text' name='no_rekam' id='no_rekam' size='10' lenght='10' class='form-control' readonly></td>
</tr>
<tr>
<td>Tanggal Periksa</td>
<td>:</td>
<td>".tgl_indo(date('Y m d'))."</td>
</tr>
<tr>
<td>Cari No. Registrasi</td>
<td>:</td>
<td>
<input type='text' id='term' name='term' class='form-control' placeholder='Ketik No Registrasi/ Nama Pasien' />
</td>
</tr>
<tr>
<td>No. Registrasi Pasien</td>
<td>:</td>
<td>
<input type='text' name='no_pendaftaran' id='no_pendaftaran' size='50' lenght='50' class='form-control' disabled>
</td>
</tr>
<tr>
<td>Nama Pasien</td>
<td>:</td>
<td><input type='text' name='nama_pasien' id='nama_pasien' size='50' lenght='50' class='form-control' disabled></td>
</tr>
<tr>
<td>Usia</td>
<td>:</td>
<td><input type='text' name='usia' id='usia' size='10' lenght='50' class='form- control' disabled></td>
</tr>
<tr>
<td>Diagnosa</td>
<td>:</td>
<td><textarea name='diagnosa' cols='50' rows='5' id='diagnosa' class='form- control'></textarea></td>
</tr>
<tr>
<td>Obat</td>
<td>:</td>
<td><textarea name='obat' cols='50' rows='5' id='obat' class='form- control'></textarea></td>
</tr>
<tr>
<td colspan='3' align='left'>
<button name='tambah' id='tambah' class='btn'>Tambah</button>
<button name='simpan' id='simpan' class='btn '>Simpan</button>
<button name='hapus' id='hapus' class='btn'>Hapus</button>
<button name='keluar' id='keluar' class='btn '>Keluar</button>
</td>
</tr>
</table>";
?>
<div id='info' align='center'></div>
</div>
4.4. Testing
A. Form Pendaftaran Pasien
Tabel IV.11. Hasil Pengujian Blackbox Testing Form Pendaftaran Pasien
NO Skenario Pengujian
Test Case Hasil Yang diharapkan
Hasil Pengujia n
Kesim pulan
1 Mengosongkan
semua isian data login pada login lalu klik tombol
“Daftar”
Nama Pasien (Kosong)
Usia :
(Kosong) password:
(Kosong) Jenis Kelamin:
(Kosong) Alamat:
(Kosong) Poli Klinik : (Kosong)
Sistem akan menolak akses daftar dan menampilkan pesan “Isi Isian ini” di kolom yang masih kosong
datanya.
Sesuai Harapan
Valid
2 Hanya mengisi Nama Sistem akan Sesuai Valid
salah satu data dan
mengosongkan
data yang
lainnya lalu klik tombol “daftar”
Pasien:ujang
Usia :
(Kosong) password:
(Kosong) Jenis Kelamin:
(Kosong) Alamat:
(Kosong) Poli Klinik : (Kosong)
menolak akses daftar dan menampilkan pesan “Isi Isian ini” di kolom yang masih kosong
datanya.
harapan
3 Hanya mengisi semua data lalu klik tombol
“daftar”
Nama Pasien ujang
Usia : 27 password:
12345678 Jenis Kelamin:
laki-laki Alamat:
cibarengkok Poli Klinik : poli gigi
Sistem akan menolak akses
login dan
menampilkan pesan “Data Sudah
Tersimpan”
Sesuai harapan
Valid
B. Form Login Pegawai
Tabel IV.12. Hasil Pengujian Blackbox Testing Form Login Pegawai
N O
Skenario Pengujian
Test Case Hasil Yang diharapkan
Hasil Pengujia n
Kesimpul an
1 Mengosongkan semua isian data login pada login lalu klik tombol
“masuk”
Username :
(Kosong)
Password :
(Kosong)
Sistem akan menolak akses login dan
menampilka
n pesan
“Harap isi bidang ini”
di kolom username dan password.
Sesuai Harapan
Valid
2 Hanya mengisi username dan mengosongkan password lalu klik tombol
“masuk”
Username :
18292938
Password :
(Kosong)
Sistem akan menolak akses login dan
menampilka
n pesan
“anda belum mengisi password”
Sesuai harapan
Valid
3 Hanya mengisi Username : Sistem akan Sesuai Valid
password dan mengosongkan username lalu klik tombol
“masuk”
(Kosong)
Password : pasw
menolak akses login dan
menampilka
n pesan
“anda belum mengisi username”
harapan
4 Menginputkan dengan kondisi salah lalu klik
“masuk”
Username :
18202093 Password : salah
Sistem akan menolak akses login dan
menampilka
n pesan
“Maaf silahkan cek kembali password anda”
Sesuai harapan
Valid
5 Menginputkan dengan kondisi yang benar lalu klik “masuk”
Username :
benar
Password :
benar
Sistem menerima akses login dan
kemudian langsung menampilka n halaman utama
Sesuai Harapan
Valid
C. Form Input Data Poli
Tabel IV.13. Hasil Pengujian Blackbox Testing Form Input Data Poli
N O
Skenario Pengujian
Test Case Hasil Yang diharapkan
Hasil Pengujia n
Kesimp ulan
1 Mengosongkan semua isian data lalu klik
“simpan data”
Kodepoli:
(kosong)
Nama poli:
(kosong)
Nama dokter:
(kosong)
Tarif poli:
(kosong)
Sistem akan menolak dan muncul pesan “maaf kodepolitida
k boleh
kosong”
pada kolom yang belum diisi
Sesuai Harapan
Valid
2 Hanya mengisi sebagian data
lalu klik
“simpan data”
Kodepoli: PLGG Nama poli: poli gigi
Nama dokter:
dr.ihsan
Tarif poli:
(kosong)
Sistem akan menolak dan muncul pesan “maaf tariff poli tidak boleh kosong”
Sesuai harapan
Valid
3 Mengisi semua field lalu klik
“simpan data”
Kodepoli: PLGG Nama poli: poli gigi
Nama dokter:
dr.ihsan
Tarif poli: 15000
Sistem menerima dan secara otomatis kembali ke form
tambah poli
Sesuai harapan
Valid
D. Form Input Data Pegawai
Tabel IV.14. Hasil Pengujian Blackbox Testing Form Input Data Pegawai
N O
Skenario Pengujian
Test Case Hasil Yang diharapkan
Hasil Pengujia n
Kesimp ulan
1 Mengosongkan semua isian data lalu klik
“simpan data”
Nip: (kosong) Nama lengkap:
(kosong)
Alamat: (kosong) No telepon:
(kosong) Password:
(kosong)
Sistem akan menolak dan muncul pesan “maaf nip tidak boleh kosong”
Sesuai Harapan
Valid
2 Hanya mengisi sebagian data
lalu klik
“simpan data”
Nip: 1808505 Nama lengkap:
Dr.indra Alamat:
jlselabintana No telepon:
089906060 Password:
(kosong)
Sistem akan menolak dan muncul pesan “maaf password tidak boleh kosong”
Sesuai harapan
Valid
3 Mengisi semua field lalu klik
“simpan data”
Nip: 1808505 Nama lengkap:
Dr.indra Alamat:
Sistem menerima dan secara otomatis
Sesuai harapan
Valid
jlselabintana No telepon:
089906060 Passwordxxxxxx
kembali ke form
tambah pegawai
E. Form Input Diagnosa Pasien
Tabel IV.15. Hasil Pengujian Blackbox Testing Form Input Diagnosa Pasien
N O
Skenario Pengujian
Test Case Hasil Yang diharapkan
Hasil Pengujia n
Kesimp ulan
1 Mengosongkan semua isian data lalu klik
“simpan data”
Cari no.
Registrasi:
(kosong) Diagnosa:
(kosong) Obat: (kosong)
Sistem akan menolak dan muncul pesan “maaf nomor daftar kosong”
Sesuai Harapan
Valid
2 Hanya mengisi sebagian data
lalu klik
“simpan data”
Cari no.
Registrasi:
20160201901 Diagnosa: diare Obat: (kosong)
Sistem akan menolak dan muncul pesan “maaf obat belum terisi”
Sesuai harapan
Valid
3 Mengisi semua field lalu klik
“simpan data”
Cari no.
Registrasi:
20160201901 Diagnosa: diare
Sistem menerima dan secara otomatis
Sesuai harapan
Valid
Obat: diapet kembali ke form
diagnosa
4.5. Support
Agar dapat terealisasi sistem ini memerlukan beberapa poin penting diantaranya : 4.5.1. Publikasi Web
Beberapa hal yang perlu diperhatikan dalam publikasi web diantaranya adanya nama domain dan kapasitas hosting. Berikut penjelasannya :
1. Nama domain
Nama domain (domain name) adalah nama yang diberikan untuk mengidentifikasi nama server komputer seperti web server atau email server di jaringan komputer ataupun internet. Nama domain berfungsi untuk mempermudah pengguna di internet pada saat melakukan akses ke server, selain itu juga dapat dipakai untuk mengingat nama server yang dikunjungi tanpa harus mengenai deretan angka yang rumit yang dikenal sebagai IP Address. Nama domain untuk website ini adalah www.puskesmassukalarang.xyz yang didaftarkan melalui situs Niagahoster.
2. Kapasitas Hosting
Jasa menyimpan file website dan ditempatkan pada server yang digunakan untuk menjaga atau memonitor agar server tersebut berjalan dengan baik. Situs ini menggunakan layanan hosting gratis dari idhostinger.com dengan kapasitas berikut:
Tabel IV.16. Tabel Kapasitas Hosting
Paket Hosting Impresif A
Disk Space 11,79 / 2.000 MB
Bandwidth/Bulan 16,09 / 100.000 MB
Biaya Bulanan (Rp) 0
Biaya SetUp 0
Biaya Upgrade (Rp)/Bulan 38.000
Akun E-mail 0 / 2
Database MySql 1 /2
Parkir Domain 0 / 2
Tambah Domain 0 / 5
Subdomain 0 / 2
Akun FTP 0 / 2
Versi Apache Apache/2.4.10
Versi PHP 5.5
Versi MySql 5.1.61
Diaktifkan 15.12.2015
Alamat IP 31.170.165.121
4.5.2. Spesifikasi Hardware dan Software
Tabel IV.17. Tabel Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Operasi Windows
Processor Pentium IV
RAM 512 MB
Hardisk 120 GB
CD-ROM 52x
Monitor SVGA 12”
Keyboard 108 key
Printer Laser Jet
Mouse Standard
Browser Mozila Firefox, Google Chrome, Safari
Software Dreamweaver, Adobe Photoshop,
PhpMyAdmin
4.6. Spesifikasi Dokumen Sistem Usulan
1. Nama Dokumen : Laporan pendaftaran
Fungsi : Sebagai bukti pendaftaran
Sumber : Kepala IT
Tujuan : Kepala Puskesmas
Media : Cetak
Frekuensi : Setiap dibutuhkan
Format : Lampiran B-1
2. Nama Dokumen : Kartu Berobat
Fungsi : Sebagai bukti melakukan pendaftaran
Sumber : Sistem
Tujuan : Pasien
Media : Tampilan
Frekuensi : Setiap terjadi pendaftaran
Format : Lampiran B-2