BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN file31 2. Use Case Diagram user kasir Gambar IV. 2 Use...
-
Upload
dinhkhuong -
Category
Documents
-
view
222 -
download
0
Transcript of BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN file31 2. Use Case Diagram user kasir Gambar IV. 2 Use...
27
BAB IV
RANCANGAN SISTEM DAN PROGRAM USULAN
4.1. Analisa Kebutuhan Software
Dari hasil analisa yang telah dilakukan pada apotek R12 Jakarta, maka peneliti
mendapatkan hasil, bahwasanya tidak adanya sistem informasi dan suatu media
yang dapat mengirimkan informasi dengan cepat menjadi masalah yang ada di
apotek R12 Jakarta, maka dari itu penulis telah merancang suatu sistem informasi
dan media yang dapat menyelesaikan masalah tersebut. Adapun spesifikasi
kebutuhan (System Requirement) adalah sebagai Berikut ini :
Halaman Login gudang :
A1. Bagian gudang dapat melakukan login untuk masuk ke dalam menu bagian
gudang
A2. Bagian gudang dapat melihat data persediaan obat yang ada di gudang
A3. Bagian gudang dapat menginput data obat baru.
A4. Bagian gudang dapat menginput obat masuk dari supplier.
A5. Bagian gudang dapat melihat data obat keluar .
A6. Bagian gudang dapat menerima ataupun menolak permintaan dari kasir.
A7. Bagian gudang bisa mengubah profil bagian gudang di menu edit profile.
A8. Bagian gudang dapat menambahkan data supplier baru.
27
28
Halaman Kasir :
B1. Bagian kasir dapat melakukan login untuk masuk ke dalam menu bagian
kasir
B2. Bagian kasir dapat melihat data stok obat yang ada di bagian gudang.
B3. Bagian kasir dapat mengajukan permintaan barang kepada bagian gudang
B4. Bagian kasir bisa mengubah profil bagian kasir di menu edit profile
B5. Bagian kasir dapat melihat status permintaan barang yang diajukan kepada
bagian gudang
Halaman Pemilik:
C1. Pemilik dapat melakukan login untuk masuk ke dalam menu bagian pemilik
C2. Pemilik dapat melihat data stok obat.
C3. Pemilik dapat melihat laporan obat masuk dari supplier
C4. Pemilik dapat mencetak data laporan obat masuk sesuai periode yang
diinginkan
C5. Pemilik dapat mencari data obat masuk yang diinginkan
C6. Pemilik dapat melihat laporan obat keluar untuk bagian kasir
C7. Pemilik dapat mencetak data laporan obat keluar sesuai periode yang
diinginkan
C8. Pemilik dapat mencari data obat keluar yang diinginkan
C9. Pemilik dapat membuat data karyawan baru
C10. Pemilik dapat mengubah data karyawan
C11. Pemilik dapat menghapus data karyawan
C12. Pemilik dapat melihat data karyawan
29
4.1.1. Use Case Diagram
1. Use Case Diagram user gudang
Gambar IV. 1 Use Case Diagram gudang
30
Tabel IV. I
Deskripsi Use Case Diagram Halaman User Gudang
Use Case Name Halaman Gudang
Requirement A1-A8
Goal Bagian gudang dapat menambah data obat baru
Bagian gudang dapat menambah data supplier baru
Bagian gudang dapat menginput obat masuk dari supplier
Bagian gudang dapat menerima dan menolak permintaan obat
Pre-conditions Bagian gudang telah login
Post-conditions Bagian gudang dapat menambahkan data
Bagian gudang dapat menyimpan data
Bagian gudang dapat mengubah data
Failed end condition Gagal login
Gagal menyimpan data
Gagal mengubah data
Primary Actors Bagian gudang
Main Flow / Basic Path Bagian gudang mengelola data obat
Bagian gudang mengelola data obat masuk
Bagian gudang mengelola data obat keluar
Invariant 1 Bagian gudang dapat mengubah profile
31
2. Use Case Diagram user kasir
Gambar IV. 2 Use Case Diagram kasir
Tabel IV. 2
Deskripsi Use Case Diagram Halaman User Kasir
Use Case Name Halaman Kasir
Requirement B1-B5
Goal Bagian kasir dapat melakukan permintaan obat
Pre-conditions Bagian kasir menyiapkan data permintaan obat
Post-conditions Bagian kasir dapat menyelesaikan permintaan obat
Failed end condition Gagal login
Primary Actors Bagian kasir
Main Flow / Basic Path Bagian kasir melakukan permintaan obat
Invariant 1 Bagian gudang dapat mengubah profile
32
1. Use Case Diagram user pemilik
Gambar IV. 3 Use Case Diagram pemilik
33
Tabel IV. 3
Deskripsi Use Case Diagram Halaman User Pemilik
Use Case Name Halaman Pemilik
Requirement C1-C12
Goal Pemilik dapat melihat data stok obat
Pemilik dapat melihat dan mencetak laporan obat masuk
Pemilik dapat melihat dan mencetak laporan obat keluar
Pemilik dapat melakukan pencarian data obat
Pemilik dapat membuat data karyawan baru
Pre-conditions Pemilik melihat data stok obat
Post-conditions Pemilik dapat mencetak laporan mutasi obat
Failed end condition Gagal login
Primary Actors Pemilik
Main Flow / Basic Path Pemilik melihat dan mencetak laporan mutasi obat
Invariant 1 Pemilik dapat mengubah profile semua karyawan
34
4.1.2. Activity Diagram
1. Activity Diagram user gudang
Gambar IV. 4 Activity Diagram Login User Gudang
35
Gambar IV. 5 Activity Diagram input master obat User Gudang
36
Gambar IV. 6 Activity Diagram input obat masuk User Gudang
37
Gambar IV. 7 Activity Diagram Permintaan Obat User Gudang
38
Gambar IV. 8 Activity Diagram Edit Profile User Gudang
39
Gambar IV. 9 Activity Diagram Data Supplier User Gudang
40
2. Activity Diagram user kasir
Gambar IV. 10 Activity Diagram login user Kasir
41
Gambar IV. 11 Activity Diagram Permintaan obat user Kasir
42
Gambar IV. 12 Activity Diagram Edit Profile user Kasir
43
3. Activity Diagram user pemilik
Gambar IV. 13 Activity Diagram login user Pemilik
44
Gambar IV. 14 Activity Diagram Data Persedian user Pemilik
45
Gambar IV. 15 Activity Diagram Laporan Obat Masuk user Pemilik
46
Gambar IV. 16 Activity Diagram Laporan Obat Keluar user Pemilik
47
Gambar IV. 17 Activity Diagram Data Karyawan user Pemilik
48
4.2. Desain
4.2.1. Database
Dalam database desain akan digambarkan dalam suatu entity relationship
diagram (ERD), serta memaparkan penjelasan dari entity relationship diagram
(ERD) tersebut.
1. ERD (Entity Relationship Diagram)
kode_obat
nama_obat
jenis_obat
harga_beli
jenis_golongan
jumlah_obat
Komposisi_obat
harga_jual
nama_supplier
tabel_obat punya tabel_permintaan
dapat
no_id
id_request
id_karyawan
nm_karyawan
jmh_barang
tgl_request
status
tabel_barangmasuk
no
no_faktur
id_masuk
nama_karyawan
id_karyawan
kode_obat
nama_obat
jenis_obat
komposisi_obat
jenis_golongan
harga_beli
harga_jual
jumlah_obat
nama_supplier
nama_pengirim
tanggal_obat
1
1
Mkode_obat
nama_obat
jenis_obat
harga_beli
jenis_golongan
jumlah_obat
Komposisi_obat
harga_jual
nama_supplier
M
Gambar IV. 18 Entity Relationship Diagram
49
2. LRS (Logical Relationship Diagram)
kode_obat
jumlah_obat
jenis_golongan
nama_supplier
harga_beli
komposisi_obat
harga_jual
jenis_obat
nama_obat
tabel_obat
kode_obat
komposisi_obat
harga_beli
jumlah_permintaan
jenis_golongan
harga_jual
nama_supplier
jenis_obat
nama_obat
nama_karyawan
id_karyawan
id_permintaan
no_id
tabel_permintaan
status
tanggal_permintaan
id_karyawan
nama_pengirim
nama_karyawan
id_masuk
no_faktur
no
tabel_barangmasuk
status
tanggal_obat
komposisi_obat
harga_beli
jenis_golongan
harga_jual
nama_supplier
jenis_obat
nama_obat
kode_obat
jumlah_obat
Gambar IV. 19 Logical Relationship Diagram
50
3. Spesifikasi File
a. Spesifikasi file tabel_obat
Nama Database : db_inventory
Nama File : tabel_obat
Akronim : tabel_obat_myd
Tipe File : File Master
Akses File : Random
Panjang Record : 129 Bytes
Kunci File : kode_obat
Tabel IV. 4
Spesifikasi file tabel_obat
No Elemen Data Nama Field Type Size Keterangan
1 kode_obat kode obat varchar 5 Primary
2 nama_obat nama obat varchar 20
3 jenis_obat jenis obat varchar 20
4 harga_beli harga obat integer 9
5 jumlah_obat jumlah obat integer 6
6 jenis_golongan jenis golongan varchar 20
7 komposisi_obat komposisi obat varchar 20
8 harga_jual harga jual integer 9
9 nama_supplier nama supplier varchar 20
b. Spesifikasi file tabel_barangmasuk
Nama Database : db_inventory
Nama File : tabel_barangmasuk
Akronim : tabel_barangmasuk_myd
Tipe File : File Transaksi
51
Akses File : Random
Panjang Record : 210 Bytes
Kunci File : no
Tabel IV. 5
Spesifikasi file tabel_barangmasuk
No Elemen Data Nama Field Type Size Keterangan
1 No Nomor urut integer 11 Primary
2 no_faktur nomor faktur varchar 20
3 id_masuk id masuk varchar 20
4 nama_karyawan nama karyawan varchar 20
5 id_karyawan id karyawan integer 10
6 kode_obat kode obat varchar 5
7 nama_obat nama obat varchar 20
8 jenis_obat jenis obat varchar 20
9 komposisi_obat komposisi obat varchar 20
10 harga_beli harga beli integer 9
11 harga_jual harga jual integer 9
12 jumlah_obat jumlah obat integer 6
13 nama_supplier nama supplier varchar 20
14 nama_pengirim nama pengirim varchar 20
15 tanggal_obat tanggal obat Date
c. Spesifikasi file tabel_login
Nama Database : db_inventory
Nama File : tabel_login
Akronim : tabel_login_myd
Tipe File : File Master
Akses File : Random
Panjang Record : 115 Bytes
52
Kunci File : id_karyawan
Tabel IV. 6
Spesifikasi file tabel_login
No Elemen Data Nama Field Type Size Keterangan
1 id_karyawan id karyawan Integer 10 Primary
2 nama_karyawan nama karyawan varchar 20
3 Jabatan Jabatan varchar 20
4 no_telepon nomor telepon varchar 15
5 Email Email integer 20
6 Foto Foto longbob
7 Username Username varchar 20
8 Password Password varchar 10
d. Spesifikasi file tabel_permintaan
Nama Database : db_inventory
Nama File : tabel_permintaan
Akronim : tabel_permintaan_myd
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 205 Bytes
Kunci File : no_id
Tabel IV. 7
Spesifikasi file tabel_permintaan
No Elemen Data Nama Field Type Size Keterangan
1 no_id no id integer 11 Primary
2 id_permintaan id permintaan varchar 20
3 id_karyawan id karyawan integer 10
4 nama_karyawan nama karyawan varchar 20
53
5 kode_obat kode obat varchar 5
6 nama_obat nama obat varchar 20
7 jenis_obat jenis obat varchar 20
8 jenis_golongan jenis golongan varchar 20
9 komposisi_obat komposisi obat varchar 20
10 harga_beli harga beli integer 9
11 harga_jual harga jual integer 9
12 nama_supplier nama supplier varchar 20
13 jumlah_obat jumlah obat integer 6
14 tanggal_permintaan tanggal permintaan date
15 Status Status varchar 15
e. Spesifikasi file tabel_supplier
Nama Database : db_inventory
Nama File : tabel_supplier
Akronim : tabel_supplier_myd
Tipe File : File Master
Akses File : Random
Panjang Record : 70 Bytes
Kunci File : kode_supplier
Tabel IV.8
Spesifikasi file tabel_supplier
No Elemen Data Nama Field Type Size Keterangan
1 kode_supplier kode supplier varchar 10 Primary
2 nama_supplier nama supplier varchar 20
3 Alamat Alamat varchar 25
4 no_telepon nomor telepon varchar 15
54
4.2.2. Software Architecture
Dalam pembuatan aplikasi ini, digunakan pemrograman terstruktur yang
mana akan dijelaskan dalam component diagam dan deployment diagram.
Gambar IV. 20 Component Diagram Gudang
Gambar IV. 21 Component Diagram Kasir
55
Gambar IV. 22 Component Diagram Pemilik
Gambar IV. 23 Deployment Diagram
4.2.3. User Interface
Berikut adalah interface / tampilan antar muka dari perancangan
Persediaan Obat Pada Apotek R12 Jakarta adalah sebagai berikut :
56
Gambar IV. 24 Tampilan login User
Gambar IV. 25 Tampilan input master obat
57
Gambar IV. 26 Tampilan input persediaan obat
Gambar IV. 27 Tampilan data persediaan obat
Gambar IV. 28 Tampilan input data Supplier
58
Gambar IV. 29 Tampilan Edit Profile
Gambar IV. 30 Tampilan data permintaan obat
Gambar IV. 31 Tampilan Input permintaan obat
59
Gambar IV. 32 Tampilan data obat masuk
Gambar IV. 33 Tampilan data obat keluar
Gambar IV. 34 Tampilan Input data karyawan
60
4.3. Code Generation
Perancangan pada sistem informasi persediaan obat pada Apotek R12 Jakarta
menggunakan pemrograman yang terstrukutur dengan menggunakan bahasa
hypertext processor (PHP) untuk server-side-nya dan cascading style sheet
(CSS)dan hypertext mark up language (HTML), berikut adalah listing program
dari perancangan sistem informasi persediaan obat pada Apotek R12 Jakarta.
A. Code Login
$query_login = mysql_query("SELECT * FROM tabel_login where username =
'$username' AND password ='$password'");
$numrows = mysql_num_rows($query_login);
if (isset($username) OR isset($password)) {
if($numrows>0){
if ($query_login) {
while ($fetch_data = mysql_fetch_array($query_login)) {
$dtjabatan = $fetch_data["jabatan"];
$dtnama = $fetch_data["nama_karyawan"];
$dtid = $fetch_data["id_karyawan"];
if ($dtjabatan == "gudang") {
$_SESSION["jabatan"] = $fetch_data["jabatan"];
$_SESSION["nama"] = $fetch_data["nama_karyawan"];
$_SESSION["id"] = $fetch_data["id_karyawan"];
echo "<script language='JavaScript'>";
echo "alert('Selamat Datang'); ";
echo "document.location='index.php?page=master_barang';";
echo "</script>";
}
61
elseif($dtjabatan == "pemilik"){
$_SESSION["jabatan"] = $fetch_data["jabatan"];
$_SESSION["nama"] = $fetch_data["nama_karyawan"];
$_SESSION["id"] = $fetch_data["id_karyawan"];
echo "<script language='JavaScript'>";
echo "alert('Selamat Datang'); ";
echo "document.location='index.php?page=home';";
echo "</script>";
}
elseif($dtjabatan == "kasir"){
$_SESSION["jabatan"] = $fetch_data["jabatan"];
$_SESSION["nama"] = $fetch_data["nama_karyawan"];
$_SESSION["id"] = $fetch_data["id_karyawan"];
echo "<script language='JavaScript'>";
echo "alert('Selamat Datang'); ";
echo "document.location='index.php?page=dt_persediaan';";
echo "</script>";
}}}}
else{
echo "<script language='JavaScript'>";
echo "alert('Username dan Password salah'); ";
echo "document.location='form_login.php';";
echo "</script>";
B. Code input master obat
$no_fak = array();
for ($i=0; $i<count($id_masuk) ; $i++) {
$no_fak[] = $no_faktur;
62
}
$data_masuk = array();
for ($nawal=0; $nawal<count($id_masuk); $nawal++) {
$data_masuk[$nawal] = array(
"no_faktur" => $no_fak[$nawal],
"id_masuk" => $id_masuk[$nawal],
"nama" =>
$nama[$nawal],
"id_karyawan" =>
$id_karyawan[$nawal],
"kd_barang" => $kd_barang[$nawal],
"nm_barang" =>
$nm_barang[$nawal],
"jns_barang" =>
$jns_barang[$nawal],
"jns_gol" =>
$jns_gol[$nawal],
"kom_obat" =>
$kom_obat[$nawal],
"hrg_barang" =>
$hrg_barang[$nawal],
"hrg_satuan" =>
$hrg_satuan[$nawal],
"jmh_masuk" =>
$jmh_masuk[$nawal],
"nm_supplier" =>
$nm_supplier[$nawal],
"nm_pengirim" =>
$nm_pengirim[$nawal],
63
"tgl" =>
$tgl[$nawal]
);
}
if (is_array($data_masuk)) {
$this->update_data();
foreach ($data_masuk as $nArr) {
$no_faktur = mysql_real_escape_string($nArr['no_faktur']);
$id_masuk = mysql_real_escape_string($nArr['id_masuk']);
$nama = mysql_real_escape_string($nArr['nama']);
$id_karyawan = mysql_real_escape_string($nArr['id_karyawan']);
$kd_barang = mysql_real_escape_string($nArr['kd_barang']);
$nm_barang = mysql_real_escape_string($nArr['nm_barang']);
$jns_barang = mysql_real_escape_string($nArr['jns_barang']);
$jns_gol = mysql_real_escape_string($nArr['jns_gol']);
$kom_obat = mysql_real_escape_string($nArr['kom_obat']);
$hrg_barang = mysql_real_escape_string($nArr['hrg_barang']);
$hrg_satuan = mysql_real_escape_string($nArr['hrg_satuan']);
$jmh_masuk = (int) $nArr['jmh_masuk'];
$nm_supplier = mysql_real_escape_string($nArr['nm_supplier']);
$nm_pengirim = mysql_real_escape_string($nArr['nm_pengirim']);
$tgl = mysql_real_escape_string($nArr['tgl']);
$sql_insert = mysql_query("INSERT INTO tabel_barangmasuk(
no,no_faktur,id_masuk,nama_karyawan,id_karyawan,
kode_obat,nama_obat,jenis_obat,jenis_golongan,komposisi_obat,
harga_beli,harga_jual,jumlah_obat,nama_supplier,
nama_pengirim,tanggal_obat)
VALUES('','$no_faktur','$id_masuk','$nama','$id_karyawan',
'$kd_barang','$nm_barang','$jns_barang','$jns_gol','$kom_obat',
64
'$hrg_barang','$hrg_satuan','$jmh_masuk','$nm_supplier',
'$nm_pengirim','$tgl')");
if ($sql_insert) {
echo"<script type='text/javascript'>
alert('Data Master Barang
Berhasil Ditambahkan');
window.location =
'http://localhost/inventory/index.php?page=master_barang';
</script>";
}
else{die(mysql_error());}
}
}
C. Code terima atau tolak permintaan obat
$query = mysql_query("SELECT * FROM tabel_obat where kode_obat
='$kd_barang'");
$data = mysql_fetch_array($query);
$data['kode_obat'];
$data["nama_obat"];
$data["jenis_obat"];
$data["harga_beli"];
$jmh_barang = $data["jumlah_obat"];
$dt_barang = $data['jumlah_obat'];
$sisa_brg = $dt_barang - $jmh ;
if ($sisa_brg > 0) {
$upd_sisabrg = mysql_query("UPDATE tabel_obat SET jumlah_obat = $sisa_brg'
65
WHERE kode_obat = '$kd_barang' ");
$upd_status = mysql_query("UPDATE tabel_permintaan SET status = '$action'
WHERE kode_obat = '$kd_barang' AND id_permintaan ='$id_request'");
if ($upd_sisabrg) {
if ($upd_status) {
echo"<script type='text/javascript'>
alert('Permintaan Telah Diterima');
window.location = 'http://localhost/inventory/index.php?page=dt_request';
</script>";}else{die(mysql_error());
}}else {die(mysql_error());}}
else{
echo"<script type='text/javascript'>
alert('Permintaan Tidak Dapat Diterima');
window.location = 'http://localhost/inventory/index.php?page=dt_request'; </script>";}
D. Code input data supplier
$query = mysql_query("INSERT INTO
tabel_supplier(kode_supplier,nama_supplier,alamat,no_telepon)
VALUES('$id','$nama','$alamat','$no_telp')");
if ($query) {
echo"<script type='text/javascript'>
alert('Data Supplier Berhasil Ditambahkan');
window.location = 'http://localhost/inventory/index.php?page=dt_supplier';
</script>";}else{die(mysql_error());}}
E. Code edit Profile
$direktori ="foto/";
if(file_exists($direktori)){
66
if (move_uploaded_file($tmp_foto, $direktori.$nm_foto)) {
$query = mysql_query("UPDATE tabel_login SET nama_karyawan = '$nm_karyawan',
jabatan = '$jabatan', no_telepon = '$no_telp', email = '$e_mail', foto = '$nm_foto',
username = '$username', password = '$password' where id_karyawan =
'$id_karyawan'");
if ($query) {
echo"<script type='text/javascript'>
alert('Data Berhasil Dirubah')
window.location = 'http://localhost/inventory/index.php?page=profile';
</script>";
header("http://localhost/inventory/index.php?page=brgmasuk");}
else{die(mysql_error());}}
else{die(mysql_error());}}
else{
echo "<script type='text/javascript'>";
echo"alert('Data Berhasil Dirubah')
window.location = 'http://localhost/inventory/index.php?page=profil';";}
F. Code log out
<?php
session_start();
session_destroy();
$_SESSION['nama'];
$_SESSION['jabatan'];
echo '<script type="text/javascript">';
echo 'alert("anda berhasil Logout");';
echo 'document.location="form_login.php";';
echo '</script>';
?>
G. Code tambah request baru
<form method='POST' action='pemilik/edit.php'>
<table class='table table-hover'>
<tr>
<td> <p style='font-weight:bold; width:300px;'>ID Barang
67
Masuk</p></td>
<td><input type='text' class='form-control' name='id_masuk'
value='$id_masuk' ></td>
<td><input type='hidden' class='form-control' name='no' value='$no' ></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>ID Karyawan</p></td>
<td><input type='text' class='form-control' name='id_karyawan'
value='$id_karyawan'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Nama Karyawan</p></td>
<td><input type='text' class='form-control' name='nm_karyawan'
value='$nm_karyawan'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>kode Obat</p></td>
<td><input type='text' class='form-control' name='kd_barang'
value='$kd_barang'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Nama Obat</p></td>
<td><input type='text' class='form-control' name='nm_barang'
value='$nm_barang'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Jenis Obat</p></td>
<td><input type='text' class='form-control' name='jns_barang'
value='$jns_barang'></td>
68
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Jenis Golongan</p></td>
<td><input type='text' class='form-control' name='jns_gol'
value='$jns_gol'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>komposisi Obat</p></td>
<td><input type='text' class='form-control' name='kom_obat'
value='$kom_obat'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Harga Beli</p></td>
<td><input type='text' class='form-control' name='hrg_barang'
value='$hrg_barang'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Harga Jual</p></td>
<td><input type='text' class='form-control' name='hrg_satuan'
value='$hrg_satuan'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Jumlah barang
masuk</p></td>
<td><input type='text' class='form-control' name='jmh_masuk'
value='$jmh_barang' ></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Nama Pengirim</p></td>
69
<td><input type='text' class='form-control' name='nm_pengirim'
value='$nm_pengirim' ></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Nama Supplier</p></td>
<td><input type='text' class='form-control' name='nm_supplier'
value='$nm_supplier'></td>
</tr>
<tr>
<td> <p style='font-weight:bold; width:300px;'>Tanggal masuk</p></td>
<td><input type='text' class='form-control' name='tgl'
value='$tgl_barang'></td>
</tr>
<tr>
<td>
<button type='submit' class='btn btn-info' name='edit-brgmasuk' id='btn-
form' role='button' value='submit'>Submit</button>
</td>
</tr>
</table>
</form>";
H. Code cetak data masuk
<?php
include '../fpdf181/FPDF.php';
class cetak_brgmasuk extends FPDF
{
public $user ="localhost";
70
public $root ="root";
public $password ="";
public $dbname = "db_inventory";
public $id_masuk;
public $img;
public function koneksi(){
$koneksi = mysql_connect($this->user, $this->root, $this-
>password);
$selectdb = mysql_select_db($this->dbname);
}
public function set_id2($id_masuk,$img,$alamat,$no,$head){
$this->id_masuk = $id_masuk;
$this->img = $img ;
$this->alamat = $alamat ;
$this->no = $no ;
$this->head = $head ;
}
function gambar(){
$this->Image($this->img,10,10,30,30);
}
function header2(){
$this->Cell(50);
$this->SetFont('Times','B', 30);
$this->Cell(60,20,$this->head,0,1);
}
function header3(){
$this->Cell(65);
$this->SetFont('Times','B', 10);
$this->Settextcolor(0,0,0);
71
$this->Cell(10,10,$this->alamat,0,1);
}
function header4(){
$this->Cell(85);
$this->SetFont('Times','B', 10);
$this->Settextcolor(0,0,0);
$this->Cell(10,2,$this->no,0,1);
}
function garis_atas()
{
$this->setlinewidth(1);
$this->Line(10,45,199,45);
$this->setlinewidth(0);
$this->Line(10,46,199,46);
}
function body(){
$this->koneksi();
$query = mysql_query("SELECT * FROM
tabel_barangmasuk WHERE id_masuk ='$this->id_masuk'");
if ($query) {
$dt_brg = mysql_fetch_array($query);
$kd_barang = $dt_brg['kode_obat'];
$nm_barang = $dt_brg['nama_obat'];
$jns_barang = $dt_brg['jenis_obat'];
$hrg_barang = $dt_brg['harga_beli'];
$nama = $dt_brg['nama_karyawan'];
$id_karyawan = $dt_brg['id_karyawan'];
$jmh_barang = $dt_brg['jumlah_obat'];
$tgl = $dt_brg['tanggal_obat'];
72
$nm_supplier = $dt_brg['nama_supplier'];
$jns_gol = $dt_brg['jenis_golongan'];
$kom_obat = $dt_brg['komposisi_obat'];
$hrg_satuan = $dt_brg['harga_jual'];
$nm_pengirim = $dt_brg['nama_pengirim'];
$this->Cell(20);
$this->SetFont('Times','B', 12);
$this->Settextcolor(0,0,0);
$this->Cell(53);
$this->Cell(50,40,' DATA BARANG MASUK ',0,1);
$this->setlinewidth(0);
$this->Line(140,66,80,66);
$this->Cell(20);
$this->Cell(50,10,' ID Barang Masuk ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$this->id_masuk,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Penerima',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nama,1,1);
$this->Cell(20);
$this->Cell(50,10,' Kode Barang',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$kd_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Barang ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nm_barang,1,1);
$this->Cell(20);
73
$this->Cell(50,10,' Jenis Barang ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jns_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Jenis Golongan ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jns_gol,1,1);
$this->Cell(20);
$this->Cell(50,10,' Komposisi Obat ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$kom_obat,1,1);
$this->Cell(20);
$this->Cell(50,10,' Harga Beli 1 ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$hrg_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Harga Jual Satuan ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$hrg_satuan,1,1);
$this->Cell(20);
$this->Cell(50,10,' Jumlah Barang Masuk ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jmh_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Supplier ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nm_supplier,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Pengirim ',1,0);
74
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nm_pengirim,1,1);
$this->Cell(20);
$this->Cell(50,10,' Tanggal Barang Masuk ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$tgl,1,1);
$this->Cell(20);
$this->Cell(10,10,' Mohon Dicheck dan Ditanda tangani
',0,1);
$this->Cell(20);
$this->Cell(10,10,' Nama Penerima ',0,0);
$this->Cell(105);
$this->Cell(10,10,' Nama Pengirim ',0,1);
$this->Cell(20);
$this->Cell(10,30,' ( '.$nama.' )',0,0);
$this->Cell(110);
$this->Cell(10,30,' ( '.$nm_pengirim.' )',0,1);
}
}
public function cetak_pdf(){
$this->AddPage();
$this->gambar();
$this->header2();
$this->header3();
$this->header4();
$this->garis_atas();
$this->body();
}
}
75
$id_masuk = $_GET['id_brgmasuk'];
$head = 'APOTEK R12 JAKARTA';
$alamat = 'Alamat : Jl.. RM. Kahfi I No.27 L Cipedak Jakarta Selatan';
$no = 'NO TELEPON : 021 7520457';
$img = '../logo_apotek.jpg';
$pdf = new cetak_brgmasuk();
$pdf->set_id2($id_masuk,$img,$alamat,$no,$head);
$pdf->cetak_pdf();
$pdf->Output();
?>
I. Code cari data masuk
$query = mysql_query("SELECT * FROM
tabel_barangmasuk WHERE kode_obat ='$id_masuk'");
if ($query) {
echo "
<table class='table-bordered'>
<thead>
<tr>
<th>DATA OBAT MASUK</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nomor Faktur</td>
<td>ID Barang Masuk</td>
<td>Nama Karyawan</td>
<td>ID Karyawan</td>
76
<td>Kode Obat</td>
<td>Nama Obat</td>
<td>Jenis Obat</td>
<td>Jenis Golongan</td>
<td>Komposisi Obat</td>
<td>Harga Beli</td>
<td>Harga Jual satuan</td>
<td>Jumlah Barang Masuk</td>
<td>Nama Supplier</td>
<td>Nama Pengirim</td>
<td>Tanggal Barang Masuk</td>
</tr>";
while($dtx_brgmasuk = mysql_fetch_array($query)){
$no_faktur = $dtx_brgmasuk["no_faktur"];
$id_masuk = $dtx_brgmasuk["id_masuk"];
$nm_karyawan = $dtx_brgmasuk["nama_karyawan"];
$id_karyawan = $dtx_brgmasuk["id_karyawan"];
$kode_barang = $dtx_brgmasuk["kode_obat"];
$nm_barang = $dtx_brgmasuk["nama_obat"];
$jns_barang = $dtx_brgmasuk["jenis_obat"];
$jns_gol = $dtx_brgmasuk["jenis_golongan"];
$kom_obat = $dtx_brgmasuk["komposisi_obat"];
$hrg_satuan = $dtx_brgmasuk["harga_jual"];
$jmh_barang = $dtx_brgmasuk["jumlah_obat"];
$hrg_barang = $dtx_brgmasuk["harga_beli"];
$nm_supplier = $dtx_brgmasuk["nama_supplier"];
$nm_pengirim = $dtx_brgmasuk["nama_pengirim"];
$tgl_barang = $dtx_brgmasuk["tanggal_obat"];
echo"
77
<tr>
<td>$no_faktur</td>
<td>$id_masuk</td>
<td>$nm_karyawan</td>
<td>$id_karyawan</td>
<td>$kode_barang</td>
<td>$nm_barang</td>
<td>$jns_barang</td>
<td>$jns_gol</td>
<td>$kom_obat</td>
<td>$hrg_barang</td>
<td>$hrg_satuan</td>
<td>$jmh_barang</td>
<td>$nm_supplier</td>
<td>$nm_pengirim</td>
<td>$tgl_barang</td>
</tr>";
}
echo"
</tbody>
</table>
<div class='modal-footer'>
<a href='pemilik/cetak_brgmasuk.php?id_brgmasuk=$id_masuk'
target='_blank' class='btn btn-info'><span class='glyphicon glyphicon-print'
style='margin-left:5px;'></span></a>
</div>
";
}
else{
78
die(mysql_error());
}
J. Code edit data masuk
$update_brgmasuk = mysql_query("UPDATE tabel_barangmasuk SET
no ='$no',
no_faktur = '$no_faktur',
id_masuk = '$id_masuk',
nama_karyawan ='$nm_karyawan',
id_karyawan ='$id_karyawan',
kode_obat = '$kd_barang',
nama_obat = '$nm_barang',
jenis_obat = '$jns_barang',
jenis_golongan = '$jns_gol',
komposisi_obat = '$kom_obat',
harga_beli = '$hrg_barang',
harga_jual ='$hrg_satuan',
jumlah_obat = '$jmh_masuk',
nama_supplier = '$nm_supplier',
nama_pengirim = '$nm_pengirim',
tanggal_obat = '$tgl'
where id_masuk = '$id_masuk' AND kode_obat = '$kd_barang'
");
if ($update_brgmasuk) {
echo"
<script type='text/javascript'>
alert('Data Berhasil Di Perbaharui');
79
window.location='http://localhost/inventory/index.php?page=laporan
_masuk';
</script>";
}
else{
die(mysql_error());
}
K. Code hapus data masuk
$query = mysql_query("DELETE FROM tabel_barangmasuk WHERE id_masuk =
'$id_masuk'");
if ($query) {
echo"<script type='text/javascript'>
alert('Data Barang Masuk Berhasil Dihapus');
window.location =
'http://localhost/inventory/index.php?page=laporan_masuk';
</script>";
}
else{die(mysql_error());}
}
L. Code cetak data keluar
<?php
include '../fpdf181/FPDF.php';
class cetak_brgkeluar extends FPDF
{
public $user ="localhost";
80
public $root ="root";
public $password ="";
public $dbname = "db_inventory";
public $id_request;
public $img;
public function koneksi(){
$koneksi = mysql_connect($this->user, $this->root, $this-
>password);
$selectdb = mysql_select_db($this->dbname);
}
public function set_id2($id_request,$img,$alamat,$no,$head){
$this->id_request = $id_request;
$this->img = $img ;
$this->alamat = $alamat ;
$this->no = $no ;
$this->head = $head ;
}
function gambar(){
$this->Image($this->img,10,10,30,30);
}
function header2(){
$this->Cell(50);
$this->SetFont('Times','B', 30);
$this->Cell(60,20,$this->head,0,1);
}
function header3(){
$this->Cell(65);
$this->SetFont('Times','B', 10);
81
$this->Settextcolor(0,0,0);
$this->Cell(10,10,$this->alamat,0,1);
}
function header4(){
$this->Cell(85);
$this->SetFont('Times','B', 10);
$this->Settextcolor(0,0,0);
$this->Cell(10,2,$this->no,0,1);
}
function garis_atas()
{
$this->setlinewidth(1);
$this->Line(10,45,199,45);
$this->setlinewidth(0);
$this->Line(10,46,199,46);
}
function body(){
$this->koneksi();
$query = mysql_query("SELECT * FROM
tabel_permintaan WHERE id_permintaan ='$this->id_request'");
if ($query) {
$dt_brg = mysql_fetch_array($query);
$kd_barang = $dt_brg['kode_obat'];
$nm_barang = $dt_brg['nama_obat'];
$jns_barang = $dt_brg['jenis_obat'];
$hrg_barang = $dt_brg['harga_beli'];
$nama = $dt_brg['nama_karyawan'];
82
$id_karyawan = $dt_brg['id_karyawan'];
$jmh_barang = $dt_brg['jumlah_permintaan'];
$nm_supplier = $dt_brg['nama_supplier'];
$jns_gol = $dt_brg['jenis_golongan'];
$kom_obat = $dt_brg['komposisi_obat'];
$hrg_satuan = $dt_brg['harga_jual'];
$tgl_request = $dt_brg['tanggal_permintaan'];
$this->Cell(20);
$this->SetFont('Times','B', 12);
$this->Settextcolor(0,0,0);
$this->Cell(53);
$this->Cell(50,40,' DATA BARANG MASUK ',0,1);
$this->setlinewidth(0);
$this->Line(140,66,80,66);
$this->Cell(20);
$this->Cell(50,10,' ID Barang Masuk ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$this->id_request,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Penerima',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nama,1,1);
$this->Cell(20);
$this->Cell(50,10,' Kode Barang',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$kd_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Barang ',1,0);
83
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$nm_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Jenis Barang ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jns_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Jenis Golongan ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jns_gol,1,1);
$this->Cell(20);
$this->Cell(50,10,' Komposisi Obat ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$kom_obat,1,1);
$this->Cell(20);
$this->Cell(50,10,' Harga Beli 1 ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$hrg_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Harga Jual Satuan ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$hrg_satuan,1,1);
$this->Cell(20);
$this->Cell(50,10,' Jumlah Barang Masuk ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$jmh_barang,1,1);
$this->Cell(20);
$this->Cell(50,10,' Nama Supplier ',1,0);
$this->Cell(8,10,' :',1,0);
84
$this->Cell(100,10,' '.$nm_supplier,1,1);
$this->Cell(20);
$this->Cell(50,10,' Tanggal Request ',1,0);
$this->Cell(8,10,' :',1,0);
$this->Cell(100,10,' '.$tgl_request,1,1);
}
}
public function cetak_pdf(){
$this->AddPage();
$this->gambar();
$this->header2();
$this->header3();
$this->header4();
$this->garis_atas();
$this->body();
}
}
$id_request = $_GET['id_request'];
$head = 'APOTEK R12 JAKARTA’;
$alamat = 'Alamat : Jl. RM. Kahfi I No.27 L Cipedak Jakarta Selatan';
$no = 'NO TELEPON : 021 7520457';
$img = '../logo_apotek.jpg';
$pdf = new cetak_brgkeluar();
$pdf->set_id2($id_request,$img,$alamat,$no,$head);
$pdf->cetak_pdf();
$pdf->Output();
?>
85
M. Code cari data keluar
$query = mysql_query("SELECT * FROM
tabel_permintaan WHERE kode_obat ='$kd_request'");
if ($query) {
echo "
<table class='table table-bordered
tbl_request'>
<tbody>
<tr>
<td>ID Request</td>
<td>Nama Karyawan</td>
<td>ID Karyawan</td>
<td>Kode Obat</td>
<td>Nama Obat</td>
<td>Jenis Obat</td>
<td>Jumlah Obat</td>
<td>Harga Beli</td>
<td>Harga Jual</td>
<td>Tanggal Permintaan</td>
<td>Status</td>
</tr>
";
while ($dt_bulan = mysql_fetch_array($query)) {
$kd_barang =
$dt_bulan["kode_obat"];
$nm_barang =
$dt_bulan["nama_obat"];
86
$jns_barang =
$dt_bulan["jenis_obat"];
$hrg_barang =
$dt_bulan["harga_beli"];
$nama =
$dt_bulan["nama_karyawan"];
$id_karyawan =
$dt_bulan["id_karyawan"];
$jmh_permintaan =
$dt_bulan["jumlah_permintaan"];
$tgl =
$dt_bulan["tanggal_permintaan"];
$id_request =
$dt_bulan["id_permintaan"];
$hrg_satuan =
$dt_bulan["harga_jual"];
$nm_supplier =
$dt_bulan["nama_supplier"];
$status = $dt_bulan["status"];
echo "
<tr>
<td>$id_request</td>
<td>$nama</td>
<td>$id_karyawan</td>
<td>$kd_barang</td>
<td>$nm_barang</td>
<td>$jns_barang</td>
<td>$jmh_permintaan</td>
<td>$hrg_barang</td>
87
<td>$hrg_satuan</td>
<td>$tgl</td>
<td>$status</td>
</tr>
";
}
echo "
</tbody>
</table>
<div class='modal-footer'>
<a href='pemilik/cetak_crequest.php?kd_barang=$kd_request'
class='btn btn-danger' target='_blank'>Cetak <span class='glyphicon
glyphicon-print' style='margin-left:5px;'></span></a>
</div>
";
}
else{
die(mysql_error());
}
}
N. Code hapus data keluar
$query = mysql_query("DELETE FROM tabel_permintaan
WHERE id_permintaan = '$id_request'");
if ($query) {
echo"<script type='text/javascript'>
alert('Data permintaan Berhasil Dihapus');
88
window.location =
'http://localhost/inventory/index.php?page=laporan_request';
</script>";
}
else{die(mysql_error());}
4.4. Testing
Dalam uji coba program ini yang dilakukan yaitu uji coba blackbox yaitu :
A. Form Login Karyawan
Tabel IV.9
Hasil Pengujian Black Box Testing Form Login Karyawan
No Skenario
pengujian Test case
Hasil yang
diharapkan
Hasil
pengujian Kesimpulan
1
Mengosongkan
semua isian data
login. lalu klik
tombol login.
Username:
(Kosong)
Password:
(Kosong)
Sistem akan menolak akses login dan
menampilkan pesan
“Silahkan lengkapi Username dan Password anda.”
Sesuai Valid
2
Hanya mengisi
data username.
mengosongkan
data password
lalu klik tombol
login.
Username:
(gudang)
Password:
(Kosong)
Sistem akan menolak
akses login dan menampilkan pesan
“Username dan
Password yang anda masukkan salah.”
Sesuai Valid
89
3
Hanya mengisi
data password
dan
mengosongkan
data username,
lalu klik tombol
login
Username:
(Kosong)
Password:
gudang
Sistem akan menolak akses login dan
menampilkan pesan
“Username dan
password yang
anda masukkan salah”
Sesuai Valid
4
Menginput
dengan kondisi
salah satu data
benar dan satu
lagi salah, lalu
klik tombol
login
Username:
gudang
(benar)
Password:
1234(salah)
Sistem akan menolak
akses login dan menampilkan pesan
“Username dan Password yang anda masukkan salah”
Sesuai
Valid
5
Menginput
dengan kondisi
salah satu data
benar dan satu
lagi salah, lalu
klik tombol
login
Username:
1234(salah)
Password:
gudang
(benar)
Sistem akan menolak akses login dan
menampilkan pesan
“Username dan
password yang anda masukkan salah.”
Sesuai
Valid
6
Menginputkan
data login yang
benar, lalu klik
tombol login
Username:
gudang
(benar)
Password:
gudang
(benar)
Sistem menerima
akses login dan
kemudian
menampilkan
halaman home
gudang
Sesuai Valid
90
4.5. Support
4.5.1. Publikasi Web*
4.5.2. Spesifikasi Hardware dan Software
1. Spesifikasi hardware
Perangkat keras yang dimaksud disini adalah seperangkat alat atau elemen
elektronik yang dapat membantu sistem yang diusulkan sehingga program
yang diusulkan oleh penulis dapat bekerja dengan baik. Perangkat keras yang
dibutuhkan dibagi atas dua bagian, yaitu perangkat keras untuk iweb server
dan perangkat keras client.
Perangkat keras minimal yang diperlukan oleh web server adalah sebagai
berikut:
a. Sistem Operasi : Windows 7 atau sesudahnya
b. Processor : Pentium Quadcore 2M Cache, 2.0Ghz
c. Memory size (RAM) : 2 GB (DDRAM)
d. Monitor : SVGA colour 14”
e. Harddisk : 500 GB
f. Keyboard : 107 keys
g. Mouse : Standard mouse
h. Printer : Deskjet
2. Spesifikasi software
Keberadaan perangkat lunak selalu menyertai perangkat keras yang ada.
Perangkat lunak yang dibutuhkan dibagi atas dua bagian, yaitu perangkat
lunak untuk webserver dan perangkat lunak untuk client.
91
Perangkat lunak yang perlukan untuk webserver adalah sebagi berikut:
a. Operating system : Windows 7 atau sesudahnya
b. Bahasa pemrograman : PHP
c. Interpreter : Adobe Dreamweaver CS5
d. Database server : MySQL server versi 4.0.18
e. Web server : Xampp 1.5.4
f. Database tools : PhPMyadmin versi 2.7.0
Perangkat lunak minimal yang diperlukan untuk client adalah sebagai
berikut:
a. Operating system : Windows 7 atau sesudahnya
b. Browser : Google Chrome dan Mozilla Firefox
Selain komponen sistem perangkat keras dan perangkat lunak yang telah
disebutkan sebelumnya ada komponen tambahan yang dibutuhkan untuk
mendukung pembuatan sistem inventaris ini yaitu berbasis web yang
menggunakan PHP dan MySQL. Perangkat lunak lain yang digunakan adalah
sebagai berikut:
1. Adobe Dreamweaver CS5 berfungsi sebagai media untuk menuliskan
scripts PHP. Contoh text editor lainnya yaitu notepad, PHPCoder, PHP
Editor, Macromedia Dreamweaver dan lain sebagainya. Dalam penulisan
skripsi ini, Browser, berfungsi untuk melihat tampilan perintah-perintah
PHP yang telah dijalankan di web server. Contoh browser yaitu Internet
Explorer, netscape, navigator, opera, firefox, dan lain-lain. Dalam
penulisan skripsi ini penulis menggunakan browser Google Chrome
92
4.6. Spesifikasi Dokumen Sistem Usulan
1. Nama Dokumen : Laporan Persediaan Obat
Fungsi : Sebagai laporan jumlah persediaan obat
Sumber : Gudang
Tujuan : Pemilik Apotek
Media : Tampilan
Frekuensi : Setiap Bulan
Format : Lampiran B-3
2. Nama Dokumen : Laporan Obat Masuk
Fungsi : Sebagai laporan obat masuk
Sumber : Gudang
Tujuan : Pemilik Apotek
Media : Tampilan
Frekuensi : Setiap ada obat masuk
Format : Lampiran B-4
3. Nama Dokumen : Laporan Permintaan Obat
Fungsi : Sebagai laporan obat keluar
Sumber : Gudang
Tujuan : Pemilik Apotek
Media : Tampilan
Frekuensi : Setiap ada permintaan obat
Format : Lampiran B-5