i
2.9 Web Server Dan Web Browser ............................................................... 11
2.10 Visual Studio Code ..................................................................................12
2.11 HTML ......................................................................................................12
2.12 CSS ..........................................................................................................14
2.13 Framework Bootstrap ..............................................................................15
2.14 SDLC .......................................................................................................15
2.15 Struktur Navigasi .....................................................................................16
2.15.1 Struktur Navigasi Linier...................................................................16
2.15.2 Struktur Navigasi Hirarki.................................................................17
2.15.3 Struktur Navigasi Nonlinear.............................................................17
2.15.4 Struktur Navigasi Komposit .............................................................17
2.16 UML ........................................................................................................18
2.16.1 Use Case Diagram ............................................................................18
2.16.2 Class Diagram ..................................................................................19
2.16.3 Sequence Diagram............................................................................19
2.16.4 Activity Diagram ..............................................................................19
3. PERANCANGAN DAN IMPLEMENTASI ..................................................20
3.1 Gambaran Umum ....................................................................................20
3.2 Diagram Unified Modelling Language (UML) .......................................20
3.2.1 Use Case Diagram ...........................................................................21
3.2.2 Class Diagram .................................................................................2f2
3.2.2.1 Activity Diagram Stok Barang........................................................23
3.2.2.2 Activity Diagram Barang Masuk ....................................................24
3.2.2.3 Activity Diagram Barang Keluar ....................................................25
3.2.2.4 Activity Diagram Login..................................................................26
3.3 Struktur Database ....................................................................................26
3.4 Struktur Navigasi .....................................................................................29
3.5 Perancangan Layout ................................................................................30
3.6 Tahap Penginstallan.................................................................................34
3.6.1 Instalasi Xampp ................................................................................35
3.6.2 Intalasi Visual Studio Code..............................................................39
3.7 Tahap Pengkodean...................................................................................41
3.7.1 Konfigurasi Database .......................................................................41
3.7.2 Pembuatan Database ........................................................................42
3.8 Implementasi dan Testing........................................................................51
ii
3.8.1 Proses Hosting Website....................................................................51
3.8.2 Pengujian Website ............................................................................56
4. PENUTUP ......................................................................................................... 58
4.1 Kesimpulan ..............................................................................................58
4.2 Saran ........................................................................................................58
DAFTAR PUSTAKA .......................................................................................59
iii
DAFTAR GAMBAR
iv
Gambar 3. 22 Gambar instalasi text editor Visual Studio Code ............................39
Gambar 3. 23 Gambar instalasi text editor Visual Studio Code ............................39
Gambar 3. 24 Gambar instalasi text editor Visual Studio Code ............................40
Gambar 3. 25 Gambar instalasi text editor Visual Studio Code ............................40
Gambar 3. 26 Koneksi Database ............................................................................41
Gambar 3. 27 XAMPP ............................................................................................42
Gambar 3. 28 XAMPP ............................................................................................42
Gambar 3. 29 Struktur Table Login .......................................................................43
Gambar 3. 30 Struktur Tabel Stock ........................................................................43
Gambar 3. 31 Struktur Tabel Masuk ......................................................................44
Gambar 3. 32 Struktur Tabel Keluar .....................................................................44
Gambar 3. 33 Login.php.........................................................................................45
Gambar 3. 34 Halaman Login ................................................................................45
Gambar 3. 35 Index.php .........................................................................................46
Gambar 3. 36 Halaman Utama ..............................................................................46
Gambar 3. 37 Stock Barang Index.php...................................................................47
Gambar 3. 38 Halaman Stock Barang ....................................................................47
Gambar 3. 39 Barang Masuk Index.php.................................................................48
Gambar 3. 40 Halaman Barang Masuk .................................................................48
Gambar 3. 41 Barang Keluar Index.php ................................................................49
Gambar 3. 42 Halaman Barang Keluar .................................................................49
Gambar 3. 43 Admin.php........................................................................................50
Gambar 3. 44 Halaman Kelola Admin ...................................................................50
Gambar 3. 45 Login Infinityfree .............................................................................51
Gambar 3. 46 Proses Pembuatan Akun Hosting ....................................................52
Gambar 3. 47 Detail Akun ......................................................................................52
Gambar 3. 48 Control Panel ...................................................................................53
Gambar 3. 49 Upload File Project ..........................................................................53
Gambar 3. 50 Mengkonfigurasi Database ..............................................................54
Gambar 3. 51 Halaman PhpMyAdmin ...................................................................54
Gambar 3. 52 Edit File Untuk Menyambungkan Database ...................................55
Gambar 3. 53 Toko Berkah.epizy.com...................................................................55
v
DAFTAR TABEL
vi
DAFTAR LAMPIRAN LISTING PROGRAM
vii
DAFTAR LAMPIRAN OUPUT PROGRAM
viii
1. PENDAHULUAN
Pengelolaan bagian gudang yang baik akan dapat membantu usaha dalam
mencapai tujuan yang telah ditetapkan Untuk mengadakan penilaian terhadap
kinerja suatu usaha, diperlukan adanya laporan barang yang terstruktur. Begitu juga
dengan Pelayanan adalah suatu proses pemenuhan kebutuhan melalui aktivitas
orang lain secara langsung, pelayanan merupakan kunci keberhasilan dalam
berbagai usaha atau kegiatan yang bersifat jasa. Peranannya akan lebih besar dan
bersifat menentukan manakala dalam kegiatan-kegiatan jasa di masyarakat itu
terdapat kompetisi dalam usaha untuk merebut pasaran atau langganan.
Sembilan bahan pokok atau sering disingkat sembako adalah sembilan jenis
kebutuhan pokok yang terdiri dari bahan-bahan makanan dan minuman. Toko
sembako yang saat ini menjadi sebuah bisnis yang produktif dalam mencari sebuah
keuntungan, dengan banyaknya usaha toko sembako dimana- mana sehingga terjadi
persaingan antar toko sembako penyedia barang untuk dapat memenuhi kebutuhan
konsumen, dimana para pemilik usaha toko sembako berupaya untuk memberikan
pelayanan serta pengelolan penyimpanan barang yang baik, berhubungan dengan
perilaku konsumen secara maksimal, Toko ini melayani pembelian dalam jumlah
kecil. Harga yang diberikan Toko sembako Berkah juga tidak terlalu jauh dengan
harga toko-toko sembako disekitarnya. Toko sembako berkah ingin meningkatkan
kualitas pada toko, karena sadar kebutuhan akan bahan pokok atau sembako
semakin meningkat dan tidak pernah kurang. Untuk membantu mengatasi
1
permasalahan tersebut dikembangkan aplikasi persediaan barang (inventory) yang
dapat digunakan oleh sembako berkah. Sehingga data persediaan barang yang ada
digudang dapat terintegrasi dan mempermudah pegawai dalam pekerjaannya.
Aplikasi Rancangan Evaluasi Pe masukan Dan Pengeluaran Barang Di Toko
Sembako Berbasis WEB
Tujuan diadakan penelitian ini adalah untuk mengetahui barang masuk dan
barang keluar dari konsumen toko sembako serta untuk mencatat secara elektronik
pemasukan dan pengeluaran dari barang yang ada di dalam toko sembako berkah.
1. Analisis
Meliputi analis kebutuhan yaitu penggunaan website pemasukan dan
pengeluaran barang terhadap para penjual atau pemilik toko tersebut.
Selanjutnya analisis keadaan, tujuan dari penulisan ini adalah bagaimana
pengguna website ini yaitu para penjual dapat mengetahui jumlah stok
barang yang masuk maupun barang yang keluar.
2. Perancangan
Perancangan pembuatan website menggunakan Visual Studio Code
3. Pembuatan Tahap pembuatan website dengan pengkodean yang sesuai
dengan rancangan website menggunakan software-software diantaranya
2
adalah bahasa pemrograman PHP dengan aplikasi Microsoft visual code,
XAMPP, dan MySQL sebagai database penyimpanan data.
4. Uji Coba
Memastikan tidak ada kesalahan yang terdapat pada website yang telah
dibuat dengan cara melakukan uji coba terhadap aplikasi tersebut. Uji
coba aplikasi menggunakan web browser yang terdapat pada laptop
spesifikasi windows 10 64 bit, processor AMD A9-9425 Radeon R5, 5
compute cores 2c + 3G 3,10 Ghz, Ram 4GB.
Bab IV Penutup
Bab ini berisi daftar pusataka, daftar simbol, lampiran yang berisi
program, hasil tampilan surat keterangan, kesimpulan serta saran
3
2. TINJAUAN PUSTAKA
Landasan teori merupakan teori yang penulis ambil dari beberapa sumber
pustaka dan sumber sumber lain yang dalam penulisan ilmiah ini berfungsi sebagai
tinjauan pustaka untuk memperkuat pembahasan penelitian.
Barang adalah benda dalam berbagai bentuk dan uraian, yang meliputi
bahan baku, barang setengah jadi, barang jadi atau peralatan, yang spesifikasinya
ditetapkan oleh pengguna barang dan jasa.
Bagian gudang mendata barang yang ada di toko sembako berkah, toko sembako
berkah mempunyai stok barang diantaranya stok barang makanan pokok, jika stok
barang adalah barang yang ada di toko sembako maka stok barang tersedia, jika
stok barang tidak tersedia maka tidak ada barang atau kosong.
2.3 Transaksi
Umumnya transaksi artinya satuan aktivitas yang terdiri dari sub-sub aktivitas.
Transaksi harus punya integritas. Artinya, satu saja sub-aktivitas nya gagal
4
dilakukan, maka keseluruhan transaksi harus dibatalkan, dan sistem harus kembali
ke keadaan sebelum transaksi mulai.
Bukti Pengambilan Barang, adalah Akhir dari transaksi. Pada transaksi ini
sebelumnya harus ke memo request, purchase request, purchase order, suratjalan,
BPB dan baru bagian BON. Data-data yang ada di form ini adalah data-data yang
ada di BPB. Pada pengesahan BON dibuat oleh karyawan, diketahui oleh operator,
diserahkan oleh atasan karyawan, diperiksa oleh kabag logistik.
Analisis sistem pada tingkat teknik pertama, disebut sebagai model analisis
yang menggambarkan serangkaian model representasi dari sistem yan akan dibuat.
Model analisis harus mencapai tiga sasaran utama : (1) untuk menggambarkan apa
yang dibutuhkan pelanggan, (2) untuk membangun dasar bagi pembuatan desain
perangkat lunak, (3) untuk membatasi serangkaian persyaratan yang dapat
divalidasi begitu perangkat lunak dibangun.
5
2.6 Bahasa Pemrograman PHP
PHP dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada awalnya
kepanjangan PHP adalah Personal Home Page (situs personal) yang merupakan
kumpulan kode untuk mengolah data formulir dari web atau disebut Form
Interpreted (FI). Rasmus kemudian merilis source codenya untuk umum dengan
memberi nama PHP/FI dengan status open source. Hal ini membuat para programer
dunia tertarik untuk ikut mengembangkannya.
Kemampuan PHP/FI naik secara signifikan ketika versi 2.0 dirilis pada
November 1997. Pada versi 2.0 ini program C digunakan untuk membuat
interpreter PHP. Dalam rilis versi 2.0 juga disertakan berbagai modul yang
diperlukan untuk meningkatkan kemampuannya.
Pada tahun yang sama, perusahaan bernama Zend menulis ulang interpreter
PHP sehingga menjadi lebih bersih, lebih baik dan lebih cepat. Interpreter buatan
Zend kemudian dirilis ke publik pada Juni 1998 dengan versi 3.0 dan merubah
akronim PHP menjadi PHP Hypertext Preprocessing. Selanjutnya pada tahun 1999,
6
Zend merilis versi PHP 4.0 dan menjadi versi PHP yang paling banyak digunakan
programer untuk membuat aplikasi berbasis web karena cepat dan stabil.
Pada tahun 2004, versi PHP 5.0 dirilis dan menggunakan model
pemrograman berorientasi objek. Hingga saat ini PHP terus dikembangkan, dan
rilis terbaru adalah versi 8.
Fungsi PHP dalam pemrograman web adalah untuk membuat aplikasi web
menjadi dinamis yang dapat memproses data dan menyimpan data ke dalam basis
data. Dengan begitu data pada aplikasi web dapat diubah dan dihapus tanpa harus
langsung mengubah kode program langsung. Namun hanya cukup dengan
mengubahnya melalui inputan dari aplikasi web. PHP juga mempersingkat tatanan
penulisan kode HTML dan CSS.
2.6.3 Sintaks
Sintaks PHP merupakan aturan dalam penulisan kode yang dapat dipahami
dengan baik oleh compiler ketika menerjemahkan kode program. Penulisan kode
PHP yang benar harus diawali dengan tag pembuka <?php dan tag penutup?>.
Didalam kode program PHP juga dapat diselipkan kode HTML maupun JavaScript.
7
2.7 MYSQL
8
Contoh:
> create table mahasiswa (nim char (8) primary key,nama_mahasiswa varchar(20),
nilai integer(3), alamat varchar(25);
ALTER: Perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat.
Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah
kolom, menghapus kolom, maupun memberikan atribut pada kolom.
Contoh:
Contoh:
INSERT: Perintah ini digunakan untuk menyisipkan atau memasukkan data baru
ke dalam tabel. Penggunaannya setelah database dan tabel selesai dibuat.
Contoh:
SELECT: Perintah ini digunakan untuk mengambil data atau menampilkan data
dari satu tabel atau beberapa tabel dalam relasi. Data yang diambil dapat kita
tampilkan dalam layar prompt MySQL secara langsung maupun ditampilkan pada
tampilan aplikasi.
Contoh:
9
UPDATE: Perintah ini digunakan untuk memperbarui data lama menjadi data
terkini. Jika Anda memiliki data yang salah atau kurang up to date dengan kondisi
sekarang, maka dapat diubah isi datanya menggunakan perintah UPDATE.
Contoh:
DELETE: Perintah ini digunakan untuk menghapus data dari tabel. Biasanya data
yang dihapus merupakan data yang sudah tidak diperlukan lagi. Pada saat
menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga
data yang telah hilang tidak dapat dikembalikan lagi
Contoh:
Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan
untuk melakukan pengontrolan data dan server databasenya.
REVOKE: Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk
menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh
administrator.
2.8 XAMPP
10
XAMPP berperan sebagai server web pada komputer lokal. XAMPP juga dapat
disebut sebuah Cpanel server virtual, ang dapat membantu melakukan preview
sehingga dapat dimodifikasi website tanpa harus online atau terakses dengan
internet. Xampp merupakan pengembangan dari lamp (linuk, apache, MYSQL,
PHP, dan PERL).
XAMPP adalah proyek non profit yang di kembangkan oleh apache friend
yang didirikan oleh kai oswalad seilder dank ayvogelgesang pada tahun 2002
proyek ini bertujuan mempromosikan penggunaan apache web server Paket amp
(apache, mysql, php), salah satunya adalah XAMPP yang sudah terintregasi amp di
dalamnya dan menghemat resource computer daripada menginstal amp satu
persatu. Untuk mempermudah proses instalasi ketiga produk tersebut secara instant
dapat menggunakan XAMPP dalam satu proses install.
Halaman-halaman dari website akan bisa diakses melalui sebuah URL yang
biasa disebut Homepage. URL ini mengatur halaman-halaman situs untuk menjadi
sebuah hirarki, meskipun, hyperlink-hyperlink yang ada di halaman tersebut
mengatur para pembaca dan memberitahu mereka susunan keseluruhan dan
bagaimana arus informasi ini berjalan. Beberapa website membutuhkan subskripsi
11
(data masukan) agar para user bisa mengakses sebagian atau keseluruhan isi website
tersebut (Javacreativity, 2014).
Visual Studio Code adalah editor source code yang dikembangkan oleh
Microsoft untuk Windows, Linux dan MacOS. Ini termasuk dukungan untuk
debugging, GIT Controlyang disematkan, penyorotan sintaks, penyelesaian kode
cerdas, cuplikan, dan kode refactoring. Hal ini juga dapat disesuaikan, sehingga
pengguna dapat mengubah tema editor, shortcut keyboard, dan preferensi. Visual
Studio Code gratis dan open-source, meskipun unduhan resmi berada di bawah
lisensi proprietary.
2.11 HTML
Tag Keterangan
<html> ..... </html> Tag dasar yang menandakan dokumen
yang merupakan dokumen HTML.
12
<head> ... </head> Tag untuk mengisikan informasi
tentang dokumen HTML.
13
<li>... </li> Daftar yang diatur oleh <ul> atau <ol>
2.12 CSS
Cara pertama:
Inline Style Sheet mengetikkan langsung dalam tag html sebagai atribut.
14
Cara kedua:
2.14 SDLC
15
SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan
synchronize & stabilize. Dengan siklus SDLC, proses membangun sistem dibagi
menjadi beberapa Dalam sebuah siklus SDLC,
Linear Pengguna akan melakukan navigasi secara berurutan dari frame atau
byte informasi yang satu ke yang lainnya.
16
2.15.2 Struktur Navigasi Hierarkis
17
2.15.4 Struktur Navigasi Komposit
18
2.16.2 Class Diagram
Dalam diagram aktifitas lebih memfokuskan diri pada eksekusi dan alur
sistem dari pada bagaimana sistem itu dirakit. Diagram ini tidak hanya
memodelkan software melainkan memodelkan model bisnis juga. Diagram aktifitas
menunjukan aktifitas sistem dalam bentuk aksi-aksi. Ketika digunakan dalam
permodelan software, diagram aktifitas mempersentasikan pemanggilan suatu
fungsi tertentu misalnya call. Sedangkan
19
3. PERANCANGAN DAN IMPLEMENTASI
20
3.2.1 Use Case Diagram
Rancangan umum sistem dibuat menggunakan UseCase Diagram,
dibawah ini merupakan bentuk Use Case Diagram untuk user.
21
3.2.2 Class Diagram
22
3.2.2.1 Activity Diagram stok barang
Pada gambar 3.3. terlihat admin dapat melihat stok barang yang
tersedia
23
3.2.2.2 Activity Diagram barang masuk
Pada gambar 3.4. terlihat admin dapat melakukan input, hapus, dan
ubah data barang masuk.
24
3.2.2.3 Activity Diagram Stok barang keluar
25
3.2.2.4 Activity Diagram Login
Pada gambar 3.6. adalah tampilan dari activity diagram fitur login
dimana admin harus dapat melakukan login untuk mengakses dan
menggunakan fitur – fitur pada website sistem stok barang.
26
1. Rancangan Tabel Admin
27
3. Rancangan Tabel Barang Masuk
28
3.4 Struktur Navigasi
Struktur Navigasi Website ini digunakan untuk menggambarkan
secara garis besar isi dari seluruh situs web dan menggambarkan bagaimana
hubungan antara isi- isi website tersebut. Struktur Navigasi Website ini
menggunakan struktur navigasi linier. Melalui struktur navigasi website ini,
terlihat bagaimana isi dan susunan dari sebuah website secara menyuluruh.
Pembuatan struktur navigasi website ini untuk membantu ketika akan
membuat rancangan seluruh halaman web.
29
3.5 Perancangan Layout
30
2. Tampilan Halaman Home
31
3. Tampilan Halaman Stock Barang
Rancangan tampilan Stock Barang pada website toko sembako berkah ini
untuk dapat melihat stock barang.
Rancangan tampilan Stok barang pada website toko sembako berkah ini
untuk melihat barang apa saja yang tersedia.
32
4. Tampilan Halaman Barang Masuk
33
6. Tampilan Halaman Kelola Admin
Rancangan tampilan Kelola Admin pada website toko sembako
berkah ini untuk mengkelola tentang admin.
34
3.6.1 Instalasi Xampp
2. Pilih komponen yang akan di instal, dalam kasus ini, penulis mencentang
semuanya seperti pada gambar 3.8. Lalu teruskan dengan klik tombol next.
35
3. Pilih tempat untuk menyimpan installan Xampp nya, penulis
menyimpannya di local disk C, seperti pada gambar 3.16
4. Pada versi 5.6.3 ini, Xampp dilakukan oleh Bitnami, bila ingin tahu lebih
jauh tentang Bitnami, centanglah pilihan Learn more about Bitnami for
Xampp. Pada kasus ini penulis menghilangkan centangnya seperti pada
gambar 3.10. Lanjutkan dengan klik next
36
5. Pada gambar 3.18 akan tampil persetujuan untuk memulai pengisntalan,
lalu penulis klik next.
6. Proses instalasi Xampp pun berjalan dan tunggu beberapa saat terlihat
seperti pada gambar 3.19
37
7. Setelah proses instalasi selesai, penulis akan langsung mengaktifkan
XAMPP dengan mencentang Do you want to start the control panel now?
kemudian klik finish seperti pada gambar 3.20
8. Akan muncul jendela control panel XAMPP pada gambar 3.14. Karena
penulis ingin menggunakan DBMS MySQL dan ingin menggunakan web
server maka klik start pada Apache dan MySQL agar dapat membuat sebuah
database di MySQL menggunakan tampilan GUI dariweb server yang telah
di instal di laptop penulis.
38
3.6.2 Instalasi Visual Studio Code
39
3. Kemudian klik Next lagi itu hanya penempatan direktori file programnya,
lalu Next untuk membuat folder nya, Kemudian Ceklis “Create Desktop Icon” jika
ingin membuat shortcut VSCode nya kemudian ceklis “Add to PATH (available
after restart) jika sudah klik Next.
4. Kemudian Klik Install tunggu sampai “Setup has finished installing Visual
Studio Code on your komputer” kemudian klik Finish seperti gambar dibawah ini.
40
3.7 Tahap Pengkodeaan
41
3.7.2 Pembuatan Database
42
Langkah pertama untuk mengaktifkan XAMPP adalah klik start pada
apache tunggu hingga muncul tanda hijau pada tulisan apache. Setelah itu klik start
pada MySql tunggu hingga muncul tanda hijau pada tulisan MySql.
Untuk menjalankannya pertama buka browser kemudian ketikkan url
http://localhost/phpmyadmin/ yang telah dibuat database bernama db_stockbarang
yang terdiri dari beberapa tabel.
Tabel login adalah table untuk menyimpan data dari admin yang terdiri dari
id_user, email, dan password.
43
Tabel stock adalah table untuk menyimpan data barang yang tersedia, yang
terdiri dari id_barang, nama_barang, deskripsi, stock, dan gambar.
Tabel barang masuk adalah table untuk menyimpan data barang yang baru
masuk atau tersedia, yang terdiri dari id_masuk, id_barang, tanggal, keterangan,
dan qty.
Tabel barang keluar adalah table untuk menyimpan data barang yang baru
keluar atau terjual, yang terdiri dari id_keluar, id_barang, tanggal, penerima, dan
qty
44
1. Halaman Login
3.33 Login.Php
45
2. Halaman Utama
46
3. Halaman Stock Barang
47
4. Halaman Barang Masuk
Adalah halaman yang menampilkan barang baru apa saja yang masuk dan
ditambah ke dalam stock barang.
48
5. Halaman Barang Keluar
49
6. Halaman Kelola Admin
50
3.8 Implementasi Dan Testing
51
2. Setelah login, Langkah selanjutnya adalah membuat akun hosting baru.
Dilangkah ini juga tulis domain yang di inginkan. Dan karena ini gratis jadi
ga bisa milih ekstensi domain secara bebas, jadi hanya yang ada di
infinityfree.net ini.
52
4. Langkah selanjutnya menuju ke control panel dari infinityfree.net ini,
5. Di control panel tadi selanjutnya menuju ke online file manager. Lalu pilih
folder htdocs, kemudian upload file project di dalam folder htdocsnya.
53
6. Setelah domain udah terbuat, terus folder projectnya juga udah di upload
ke online file manager yang ada di infinityfree.net. Langkah selanjutnya ini
mengkonfigurasi databasenya. Caranya yaitu menuju ke PhpMyAdmin
yang ada di control panel, lalu membuat database baru. Dan nanti hasilnya
seperti gambar dibawah ini
54
8. Langkah terakhir adalah mengubah koneksi database, agar dapat
tersambung dengan database yang sudah dibuat pada langkah keenam.
Untuk mengubah koneksinya yaitu menuju ke file project dan file php yang
untuk mengkoneksikan ke database.
55
3.8.2 Pengujian Website
Pelaksanaan Pengujian
56
Tabel 3.5 Pengujian Website Menggunakan Metode
Blackbox
Hasil yang
No Fungsi Skenario Hasil
diharapkan
Login sebagai
Login Berhasil login Suskses
4. admin
Menampilkanjumlah Berhasil
stok barang yang Menampikan
5. Stok Barang Sukses
tersedia stok barang
Menampilkan Berhasil
Barang yang menampilkan Sukses
6. Barang Masuk Baru masuk barang masuk
Atau tersedia
Berhasil
Menampilkan barang
menampilkan
yang sudah keluar atau Sukses
7. Barang Keluar barang yang
terjual
sudah keluar
Menampilkan
Berhasil
8. pengelolaan admin
menampilkan Sukses
Kelola Admin seperti email dan
kelola admin
password
57
4. PENUTUP
4.1 Kesimpulan
4.2 Saran
58
DAFTAR PUSTAKA
[1] Faizah, N. M., & Amelia, N. (2016). Perancangan Aplikasi Sistem
Persediaan Sembako Pda Toko Harapan Baru. Jurnal Sains dan Teknologi
Utama , Vol XI No.2, 87-100
[2] Yuni Eka Achyani, Eni Arviana Teknik Komputer Vol 4, No.1, Februari
2018 180 (struktur navigasi)
Monitoring Bus Trans Padang Berbasis Web Isnardi Jurnal J-Click Vol 3
No.2 Desember 2016 (sdlc)
[3] Hidayat, Deddy. 2010. Definisi Sistem. Tanggerang: Jurnal Cyber Raharja.
https://www.fendihidayat.com/2020/10/sejarah-dan-
pengertianpemrograman-php.html
L
59
LAMPIRAN LISTING PROGRAM
- index.php
<?php
require 'function.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Stock Barang</title>
<link href="css/styles.css" rel="stylesheet" />
<link
href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css"
rel="stylesheet" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.1/js/all.min.js" crossorigin="anonymous"></script>
<style>
.zoomable{
width: 100px;
}
.zoomable:hover{
transform: scale(2.5);
transition: 0.3s ease;
}
</style>
</head>
<body class="sb-nav- fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href="index.php">Toko Sembako Berkah</a>
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"
href="#"><i class="fas fa-bars"></i></button>
</nav>
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark"
id="sidenavAccordion">
<div class="sb-sidenav- menu">
<div class="nav">
<a class="nav- link" href="index.php">
L-1
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Stock Barang
</a>
<a class="nav- link" href="masuk.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Masuk
</a>
<a class="nav- link" href="keluar.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Keluar
</a>
<a class="nav- link" href="admin.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Kelola Admin
</a>
<a class="nav- link" href="logout.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Logout
</a>
</div>
</div>
<div class="sb-sidenav- footer">
<div class="small"></div>
Sembako Berkah
</div>
</nav>
</div>
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Stock Barang</h1>
<div class="card mb-4">
<div class="card-header"
<div class="card mb-4">
<div class="card-header">
<!-- Button to Open the Modal -->
<button type="button" class="btn btn-primary" data-
toggle="modal" data-target="#myModal">
Tambah Barang
</button>
</div>
L
L-2
<div class="card-body">
<?php
$ambildatastock = mysqli_query($conn,"select * from stock
where stock < 1");
while($fetch=mysqli_fetch_array($ambildatastock)){
$barang = $fetch['namabarang'];
?>
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-
dismiss="alert">×</button>
<strong>Perhatian!</strong> Stock <?=$barang;?> Telah
Habis
</div>
<?php
}
?>
<div class="table-responsive">
<table class="table table-bordered" id="dataTable"
width="100%" cellspacing="0">
<thead>
<tr>
<th>No</th>
<th>Gambar</th>
<th>Nama Barang</th>
<th>Deskripsi</th>
<th>Stock</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$ambilsemuadatastock = mysqli_query($conn,"select
* from stock");
$i = 1;
while($data=mysqli_fetch_array($ambilsemuadatastock)){
$namabarang = $data['namabarang'];
$deskripsi = $data['deskripsi'];
$stock = $data['stock'];
$idb = $data['idbarang'];
L
L-3
$img = 'No Photo';
} else {
//jika ada gambar
$img = '<img src="images/'.$gambar.'"
class="zoomable">';
}
?>
<tr>
<td><?=$i++;?></td>
<td><?=$img;?></td>
<td><?=$namabarang;?></td>
<td><?=$deskripsi;?></td>
<td><?=$stock;?></td>
<td>
<button type="button" class="btn btn-warning"
data-toggle="modal" data-target="#edit<?=$idb;?>">
Edit
</button>
<button type="button" class="btn btn-danger"
data-toggle="modal" data-target="#delete<?=$idb;?>">
Delete
</button>
</td>
</tr>
<!-- Edit modal Modal -->
<div class="modal fade" id="edit<?=$idb;?>">
<div class="modal-dialog">
<div class="modal-content">
L
L-4
<input type="file" name="file" class="form-
control">
<br>
<input type="hidden" name="idb"
value="<?=$idb;?>">
<button type="submit" class="btn btn-
primary" name="updatebarang">Submit</button>
</div>
</form>
</div>
</div>
</div>
<!-- Delete Modal -->
<div class="modal fade"
id="delete<?=$idb;?>">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Hapus barang</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
Apakah Anda yakin ingin menghapus
<?=$namabarang;?>?
<input type="hidden" name="idb"
value="<?=$idb;?>">
<input type="text" name="namabarang"
value=<?=$namabarang;?> class="form-control" required>
<br>
<br>
<button type="submit" class="btn btn-
danger" name="hapusbarang">hapus</button>
</div>
</form>
</div>
</div>
</div>
</div>
<?php
};
?>
</tbody>
L
L-5
</table>
</div>
</div>
</div>
</div>
</main>
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid">
<div class="d-flex align- items-center justify-content-between
small">
<div class="text- muted">Copyright © Your Website
2020</div>
<div>
<a href="#">Privacy Policy</a>
·
<a href="#">Terms & Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/chart-area-demo.js"></script>
<script src="assets/demo/chart-bar-demo.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/datatables-demo.js"></script>
</body>
<!-- The Modal -->
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
L
L-6
<h4 class="modal-title">Tambah Barang</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post" enctype="multipart/form-data">
<div class="modal-body">
<input type="text" name="namabarang" placeholder="Nama Barang"
class="form-control" required>
<br>
<input type="text" name="deskripsi" placeholder="Deskripsi Barang"
class="form-control" required>
<br>
<input type="number" name="stock" class="form-control"
placeholder="Stock awal" value="0" min="0" required>
<br>
<input type="file" name="file" class="form-control">
<br>
<button type="submit" class="btn btn-primary"
name="addnewbarang">Submit</button>
</div>
</form>
</div>
</div>
</div>
L
L-7
- funciton.php
<?php
session_start();
//Membuat koneksi ke database
$conn = mysqli_connect("localhost","root","","stockbarang");
//menambah barang baru
if(isset($_POST['addnewbarang'])){
$namabarang = $_POST['namabarang'];
$deskripsi = $_POST['deskripsi'];
$stock = $_POST['stock'];
//soal gambar
$allowed_extension = array('png','jpg');
$nama = $_FILES['file']['name']; //ngambil nama gambar
$dot = explode('.',$nama);
$ekstensi = strtolower(end($dot)); //nagmbil ekstensinya
$ukuran = $_FILES['file']['size']; //ngambil size filenya
$file_tmp = $_FILES['file']['tmp_name']; //ngambil lokasi filenya
//penamaan file -> enkripsi
$image = md5(uniqid($nama,true) . time()).'.'.$ekstensi; //menggabungkan nama
fiele yg dienkripsi dgn ekstensinya
//validasi udah ada atau belum
$cek = mysqli_query($conn,"select * from stock where
namabarang='$namabarang'");
$hitung = mysqli_num_rows($cek);
if($hitung<1){
//jika belum ada
//proses upload gambar
if(in_array($ekstensi, $allowed_extension) === true){
//validasi ukuran filenya
if($ukuran < 15000000){
move_uploaded_file($file_tmp, 'images/'.$image);
$addtotable = mysqli_query($conn,"insert into stock (namabarang,
deskripsi, stock, image) values('$namabarang','$deskripsi','$stock','$image')");
if($addtotable){
header('location:index.php');
} else {
echo 'Gagal';
header('location:index.php');
}
} else {
//kalau filenya lebih dari 15mb
echo '
<script>
alert("ukuran terlalu besar");
window.location.href="index.php;
L
L-8
<script>
';
}
} else {
//kalau filenya tidak png/jpg
echo '
<script>
alert("file harus png/jpg");
window.location.href="index.php;
<script>
';
}
} else {
//jika sudah ada
echo '
<script>
alert("nama barang sudah terdaftar");
window.location.href="index.php;
<script>
';
}
};
//Menambah barang masuk
if(isset($_POST['barangmasuk'])){
$barangnya = $_POST['barangnya'];
$penerima = $_POST['penerima'];
$qty = $_POST['qty'];
$cekstocksekarang = mysqli_query($conn,"select * from stock where
idbarang='$barangnya'");
$ambildatanya = mysqli_fetch_array($cekstocksekarang);
$stocksekarang = $ambildatanya['stock'];
$tambahkanstocksekarangdenganquantity = $stocksekarang+$qty;
$addtomasuk = mysqli_query($conn,"insert into masuk (idbarang, keterangan,
qty) values('$barangnya','$penerima','$qty')");
$updatestockmasuk = mysqli_query($conn,"update stock set
stock='$tambahkanstocksekarangdenganquantity' where idbarang='$barangnya'");
if($addtomasuk&&$updatestockmasuk){
header('location:masuk.php');
} else {
echo 'Gagal';
header('location:masuk.php');
}
}
//Menambah barang keluar
if(isset($_POST['addbarangkeluar'])){
$barangnya = $_POST['barangnya'];
L
L-9
$penerima = $_POST['penerima'];
$qty = $_POST['qty'];
$cekstocksekarang = mysqli_query($conn,"select * from stock where
idbarang='$barangnya'");
$ambildatanya = mysqli_fetch_array($cekstocksekarang);
$stocksekarang = $ambildatanya['stock'];
$tambahkanstocksekarangdenganquantity = $stocksekarang-$qty;
$addtokeluar = mysqli_query($conn,"insert into keluar (idbarang, penerima,
qty) values('$barangnya','$penerima','$qty')");
$updatestockmasuk = mysqli_query($conn,"update stock set
stock='$tambahkanstocksekarangdenganquantity' where idbarang='$barangnya'");
if($addtokeluar&&$updatestockmasuk){
header('location:keluar.php');
} else {
echo 'Gagal';
header('location:keluar.php');
}
}
//Update info barang
if(isset($_POST['updatebarang'])){
$idb = $_POST['idb'];
$namabarang = $_POST['namabarang'];
$deskripsi = $_POST['deskripsi'];
$update = mysqli_query($conn,"update stock set namabarang='$namabarang',
deskripsi='$deskripsi' where idbarang = '$idb'");
if($update){
header('location:index.php');
} else {
echo 'Gagal';
header('location:index.php');
}
//soal gambar
$allowed_extension = array('png','jpg');
$nama = $_FILES['file']['name']; //ngambil nama gambar
$dot = explode('.',$nama);
$ekstensi = strtolower(end($dot)); //nagmbil ekstensinya
$ukuran = $_FILES['file']['size']; //ngambil size filenya
$file_tmp = $_FILES['file']['tmp_name']; //ngambil lokasi filenya
//penamaan file -> enkripsi
$image = md5(uniqid($nama,true) . time()).'.'.$ekstensi; //menggabungkan
nama fiele yg dienkripsi dgn ekstensinya
if($ukuran==0){
//jika tidak ingin upload
$update = mysqli_query($conn,"update stock set
namabarang='$namabarang', deskripsi='$deskripsi,' where idbarang ='$idb'");
if($update){
L
L-10
header('location:index.php');
} else {
echo 'Gagal';
header('location:index.php');
}
} else {
//jika ingin
move_uploaded_file($file_tmp, 'images/'.$image);
$update = mysqli_query($conn,"update stock set
namabarang='$namabarang', deskripsi='$deskripsi',image='$image' where
idbarang ='$idb'");
if($update){
header('location:index.php');
} else {
echo 'Gagal';
header('location:index.php');
}
}
}
//Menghapus barang dari stock
if(isset($_POST['hapusbarang'])){
$idb = $_POST['idb']; //idbarang
$gambar = mysqli_query($conn,"select * from stock where idbarang='$idb'");
$get = mysqli_fetch_array($gambar);
$img = 'images/'.$get['image'];
unlink($img);
$hapus = mysqli_query($conn, "delete from stock where idbarang='$idb'");
if($hapus){
header('location:index.php');
} else {
echo 'Gagal';
header('location:index.php');
}
};
//Mengubah data barang masuk
if(isset($_POST['updatebarangmasuk'])){
$idb = $_POST['idb'];
$idm = $_POST['idm'];
$deskripsi = $_POST['keterangan'];
$qty = $_POST['qty'];
$lihatstock = mysqli_query($conn,"select * from stock where
idbarang='$idb'");
$stocknya = mysqli_fetch_array($lihatstock);
$stockskrg = $stocknya['stock'];
$qtyskrg = mysqli_query($conn, "select * from masuk where
idmasuk='$idm'");
L
L-11
$qtynya = mysqli_fetch_array($qtyskrg);
$qtyskrg = $qtynya['qty'];
if($qty>$qtyskrg){
$selisih = $qty-$qtyskrg;
$kurangin = $stockskrg - $selisih;
$kurangistocknya = mysqli_query($conn, "update stock set stock='$kurangin'
where idbarang='$idb'");
$updatenya = mysqli_query($conn,"update masuk set qty='$qty',
keterangan='$deskripsi' where idmasuk='$idm'");
if($kurangistocknya&&$updatenya){
header('location:masuk.php');
} else {
echo 'Gagal';
header('location:masuk.php');
}
} else {
$selisih = $qtyskrg-$qty;
$kurangin = $stockskrg + $selisih;
$kurangistocknya = mysqli_query($conn, "update stock set stock='$kurangin'
where idbarang='$idb'");
$updatenya = mysqli_query($conn,"update masuk set qty='$qty',
keterangan='$deskripsi' where idmasuk='$idm'");
if($kurangistocknya&&$updatenya){
header('location:masuk.php');
} else {
echo 'Gagal';
header('location:masuk.php');
}
}
}
//Menghapus barang masuk
if(isset($_POST['hapusbarangmasuk'])){
$idb = $_POST['idb'];
$qty = $_POST['kty'];
$idm = $_POST['idm'];
$getdatastock = mysqli_query($conn,"select * from stock where
idbarang='$idb'");
$data = mysqli_fetch_array($getdatastock);
$stock = $data['stock'];
$selisih = $stock-$qty;
$update = mysqli_query($conn,"update stock set stock='$selisih' where
idbarang=$idb'");
$hapusdata = mysqli_query($conn,"delete from masuk where
idmasuk='$idm'");
if($update&&$hapusdata){
header('location:masuk.php');
L
L-12
} else {
header('location:masuk.php');
}
}
//menambah admin baru
if(isset($_POST['addadmin'])){
$email = $_POST['email'];
$password = $_POST['password'];
$queryinsert = mysqli_query($conn,"insert into login (email, password) values
('$email','$password')");
if($queryinsert){
//if berhasil
header('location:admin.php');
} else {
//kalau gagal insert ke db
header('location:admin.php');
}
}
//edit data admin
if(isset($_POST['updateadmin'])){
$emailbaru = $_POST['emailadmin'];
$passwordbaru = $_POST['passwordbaru'];
$idnya = $_POST['id'];
$queryupdate = mysqli_query($conn,"update login set email='$emailbaru',
password='$passwordbaru' where idUser='$idnya'");
if($queryupdate){
header('location:admin.php');
} else {
header('location:admin.php');
}
}
//hapus admin
if(isset($_POST['hapusadmin'])){
$id = $_POST['id'];
$querydelete = mysqli_query($conn,"delete from login where idUser='$id'");
if($querydelete){
header('location:admin.php');
} else {
header('location:admin.php');
}
}
?>
L
L-13
- admin.php
<?php
require 'function.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Kelola Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<link
href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css"
rel="stylesheet" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.1/js/all.min.js" crossorigin="anonymous"></script>
</head>
<body class="sb-nav- fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href="index.php">Toko Sembako Berkah</a>
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"
href="#"><i class="fas fa-bars"></i></button>
</nav>
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark"
id="sidenavAccordion">
<div class="sb-sidenav- menu">
<div class="nav">
<a class="nav- link" href="index.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Stock Barang
</a>
<a class="nav- link" href="masuk.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Masuk
</a>
<a class="nav- link" href="keluar.php">
L
L-14
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Keluar
</a>
<a class="nav- link" href="admin.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Kelola Admin
</a>
<a class="nav- link" href="logout.php">
logout
</a>
</div>
</div>
<div class="sb-sidenav- footer">
<div class="small"></div>
Sembako Berkah
</div>
</nav>
</div>
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Kelola Admin</h1>
<div class="card mb-4">
<div class="card-header">
<!-- Button to Open the Modal -->
<button type="button" class="btn btn-primary" data-
toggle="modal" data-target="#myModal">
Tambah Admin
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable"
width="100%" cellspacing="0">
<thead>
<tr>
<th>No</th>
<th>Email Admin</th>
<th>Deskripsi</th>
</tr>
</thead>
<tbody>
<?php
L
L-15
$ambilsemuadataadmin = mysqli_query($conn,"select
* from login");
$i = 1;
while($data=mysqli_fetch_array($ambilsemuadataadmin)){
$em = $data['email'];
$idUser = $data['idUser'];
?>
<tr>
<td><?=$i++;?></td>
<td><?=$em;?></td>
<td>
<button type="button" class="btn btn-warning"
data-toggle="modal" data-target="#edit<?=$idUser;?>">
Edit
</button>
<button type="button" class="btn btn-danger"
data-toggle="modal" data-target="#delete<?=$idUser;?>">
Delete
</button>
</td>
</tr>
<!-- Edit modal Modal -->
<div class="modal fade" id="edit<?=$idUser;?>">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Edit Admin</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
<input type="email" name="emailadmin"
value=<?=$em;?> class="form-control" placeholder="Email" required>
<br>
<input type="password"
name="passwordbaru" class="form-control" placeholder="password">
<br>
<input type="hidden" name="id"
value="<?=$idUser;?>">
<button type="submit" class="btn btn-
primary" name="updateadmin">Submit</button>
</div>
</form>
L
L-16
</div>
</div>
</div>
<!-- Delete Modal -->
<div class="modal fade"
id="delete<?=$idUser;?>">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Hapus barang</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
Apakah Anda yakin ingin menghapus
<?=$em;?>?
<input type="hidden" name="id"
value="<?=$idUser;?>">
<br>
<br>
<button type="submit" class="btn btn-
danger" name="hapusadmin">hapus</button>
</div>
</form>
</div>
</div>
</div>
</div>
<?php
};
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</main>
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid">
<div class="d-flex align- items-center justify-content-between
small">
L
L-17
<div class="text- muted">Copyright © Your Website
2020</div>
<div>
<a href="#">Privacy Policy</a>
·
<a href="#">Terms & Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/chart-area-demo.js"></script>
<script src="assets/demo/chart-bar-demo.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/datatables-demo.js"></script>
</body>
<!-- The Modal -->
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Tambah Admin</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
<input type="email" name="email" placeholder="Email" class="form-
control" required>
<br>
L
L-18
<input type="password" name="password" placeholder="Password"
class="form-control" required>
<br>
<button type="submit" class="btn btn-primary"
name="addadmin">Submit</button>
</div>
</form>
</div>
</div>
</div>
</html>
L
L-19
- login.php.
<?php
require 'function.php';
//memastikan function.php di panggil pada halaman login.php
//cek login, terdaftar apa tidak
if(isset($_POST['login'])){
$email = $_POST['email'];
$password = $_POST['password'];
//mencocokan hasil input email dan password pada data di database
$cekdatabase = mysqli_query($conn, "select * from login where
email='$email'and password='$password'");
//apa bila hasil cek database ada maka akan bernilai 1 ( jumlah data yang sama )
$cekquerry = mysqli_fetch_array($cekdatabase);
$level = $cekquerry['level'];
$hitung = mysqli_num_rows($cekdatabase);
if($hitung>0){
$_SESSION['log'] = 'True';
header('location:index.php');
// kalau data ada dilempar kembali ke index.php
} else {
header('location:login.php');
// kalau salah password ( tidak ada data ) dilempar kembali ke login.php
};
};
if(!isset($_SESSION['log'])){
} else {
header('location:index.php');
// kalau sudah ada session yang aktif ( udah login ) langsung di lempar ke
index.php
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Login</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.1/js/all.min.js" crossorigin="anonymous"></script>
</head>
L
L-20
<body class="bg-primary">
<div id="layoutAuthentication">
<div id="layoutAuthentication_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-5">
<div class="card shadow-lg border-0 rounded-lg mt-5">
<div class="card-header"><h3 class="text-center font-
weight-light my-4">Login</h3></div>
<div class="card-body">
<form method="post">
<div class="form- group">
<label class="small mb-1"
for="inputEmailAddress">Email</label>
<input class="form-control py-4" name="email"
id="inputEmailAddress" type="email" placeholder="Enter email address" />
</div>
<div class="form- group">
<label class="small mb-1"
for="inputPassword">Password</label>
<input class="form-control py-4" name="password"
id="inputPassword" type="password" placeholder="Enter password" />
</div>
<div class="form- group d-flex align- items-center
justify-content-between mt-4 mb-0">
<button class="btn btn-primary"
name="login">Login</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
L
L-21
- logout.php
<?php
session_start();
session_destroy();
header('location:login.php');
//mematikan session yang sebelumnya sudah di aktifkan
?>
- cek.php
<?php
//apabila belum login maka akan selalu diarahkan ke login.php
if(isset($_SESSION['log'])){
} else {
header('location:login.php');
}
?>
L
L-22
- masuk.php
<?php
require 'function.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Barang Masuk</title>
<link href="css/styles.css" rel="stylesheet" />
<link
href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css"
rel="stylesheet" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.1/js/all.min.js" crossorigin="anonymous"></script>
</head>
<body class="sb-nav- fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href="index.php">Toko Sembako Berkah</a>
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"
href="#"><i class="fas fa-bars"></i></button>
</nav>
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark"
id="sidenavAccordion">
<div class="sb-sidenav- menu">
<div class="nav">
<a class="nav- link" href="index.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Stock Barang
</a>
<a class="nav- link" href="masuk.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Masuk
</a>
<a class="nav- link" href="keluar.php">
L
L-23
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Keluar
</a>
<a class="nav- link" href="admin.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Kelola Admin
</a>
<a class="nav- link" href="logout.php">
Logout
</a>
</div>
</div>
<div class="sb-sidenav- footer">
<div class="small"></div>
Sembako Berkah
</div>
</nav>
</div>
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Barang Masuk</h1>
<div class="card mb-4">
<div class="card-header">
<!-- Button to Open the Modal -->
<button type="button" class="btn btn-primary" data-
toggle="modal" data-target="#myModal">
Tambah Barang
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable"
width="100%" cellspacing="0">
<thead>
<tr>
<th>Tanggal</th>
<th>Nama Barang</th>
<th>Jumlah</th>
<th>Keterangan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
L
L-24
<?php
$ambilsemuadatastock = mysqli_query($conn,"select
* from masuk m, stock s where s.idbarang = m.idbarang");
while($data=mysqli_fetch_array($ambilsemuadatastock)){
$idb = $data['idbarang'];
$idm = $data['idmasuk'];
$tanggal = $data['tanggal'];
$namabarang = $data['namabarang'];
$qty = $data['qty'];
$keterangan = $data['keterangan']
?>
<tr>
<td><?=$tanggal;?></td>
<td><?=$namabarang;?></td>
<td><?=$qty;?></td>
<td><?=$keterangan;?></td>
<td>
<button type="button" class="btn btn-warning"
data-toggle="modal" data-target="#edit<?=$idb;?>">
Edit
</button>
<button type="button" class="btn btn-danger"
data-toggle="modal" data-target="#delete<?=$idb;?>">
Delete
</button>
</td>
</tr>
L
L-25
<input type="text" name="keterangan"
value="<?=$keterangan;?>" class="form-control" required>
<br>
<input type="number" name="qty"
value="<?=$qty;?>" class="form-control" required>
<br>
<input type="hidden" name="idb"
value="<?=$idb;?>">
<input type="hidden" name="idm"
value="<?=$idm;?>">
<button type="submit" class="btn btn-
primary" name="updatebarangmasuk">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Delete Modal -->
<div class="modal fade" id="delete<?=$idb;?>">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Hapus barang</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
Apakah Anda yakin ingin menghapus
<?=$namabarang;?>?
<input type="hidden" name="idb"
value="<?=$idb;?>">
<input type="hidden" name="kty"
value="<?=$qty;?>">
<input type="hidden" name="idm"
value="<?=$idm;?>">
<br>
<br>
<button type="submit" class="btn btn-
danger" name="hapusbarangmasuk">hapus</button>
</div>
</form>
L
L-26
</div>
</div>
</div>
</div>
</div>
<?php
};
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</main>
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid">
<div class="d-flex align- items-center justify-content-between
small">
<div class="text- muted">Copyright © Your Website
2020</div>
<div>
<a href="#">Privacy Policy</a>
·
<a href="#">Terms & Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/chart-area-demo.js"></script>
<script src="assets/demo/chart-bar-demo.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"
crossorigin="anonymous"></script>
L
L-27
<script
src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/datatables-demo.js"></script>
</body>
<!-- The Modal -->
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Tambah Barang Masuk</h4>
<button type="button" class="close" data-
dismiss="modal">×</button>
</div>
<!-- Modal body -->
<form method="post">
<div class="modal-body">
<select name="barangnya" class="form-control">
<?php
$ambilsemuadatanya = mysqli_query($conn,"select * from stock");
while($fetcharray = mysqli_fetch_array($ambilsemuadatanya)){
$namabarangnya = $fetcharray['namabarang'];
$idbarangnya = $fetcharray['idbarang'];
?>
<option value="<?=$idbarangnya;?>"><?=$namabarangnya;?></option>
<?php
}
?>
</select>
<br>
<input type="number" name="qty" class="form-control"
placeholder="Quantity" required>
<br>
<input type="text" name="penerima" class="form-control"
placeholder="Penerima" required>
<br>
<button type="submit" class="btn btn-primary"
name="barangmasuk">Submit</button>
</div>
</form>
</div>
</div>
</div>
</html>
L
L-28
- keluar.php
<?php
require 'function.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Barang Keluar</title>
<link href="css/styles.css" rel="stylesheet" />
<link
href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css"
rel="stylesheet" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.15.1/js/all.min.js" crossorigin="anonymous"></script>
</head>
<body class="sb-nav- fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href="index.php">Toko Sembako Berkah</a>
<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle"
href="#"><i class="fas fa-bars"></i></button>
</nav>
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark"
id="sidenavAccordion">
<div class="sb-sidenav- menu">
<div class="nav">
<a class="nav- link" href="index.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Stock Barang
</a>
<a class="nav- link" href="masuk.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Masuk
</a>
<a class="nav- link" href="keluar.php">
L
L-29
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Barang Keluar
</a>
<a class="nav- link" href="admin.php">
<div class="sb-nav-link- icon"><i class="fas fa-tachometer-
alt"></i></div>
Kelola Admin
</a>
<a class="nav- link" href="logout.php">
Logout
</a>
</div>
</div>
<div class="sb-sidenav- footer">
<div class="small"></div>
Sembako Berkah
</div>
</nav>
</div>
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Barang Keluar</h1>
<div class="card mb-4">
<div class="card-header">
<!-- Button to Open the Modal -->
<button type="button" class="btn btn-primary" data-
toggle="modal" data-target="#myModal">
Tambah Barang
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable"
width="100%" cellspacing="0">
<thead>
<tr>
<th>Tanggal</th>
<th>Nama Barang</th>
<th>Jumlah</th>
<th>Penerima</th>
</tr>
</thead>
<tbody>
L
L-30
<?php
$ambilsemuadatastock = mysqli_query($conn,"select
* from keluar k, stock s where s.idbarang = k.idbarang");
while($data=mysqli_fetch_array($ambilsemuadatastock)){
$tanggal = $data['tanggal'];
$namabarang = $data['namabarang'];
$qty = $data['qty'];
$penerima = $data['penerima'];
?>
<tr>
<td><?=$tanggal;?></td>
<td><?=$namabarang;?></td>
<td><?=$qty;?></td>
<td><?=$penerima;?></td>
</tr>
<?php
};
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</main>
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid">
<div class="d-flex align- items-center justify-content-between
small">
<div class="text- muted">Copyright © Your Website
2020</div>
<div>
<a href="#">Privacy Policy</a>
·
<a href="#">Terms & Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
crossorigin="anonymous"></script>
L
L-31
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/chart-area-demo.js"></script>
<script src="assets/demo/chart-bar-demo.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"
crossorigin="anonymous"></script>
<script
src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"
crossorigin="anonymous"></script>
<script src="assets/demo/datatables-demo.js"></script>
</body>
L
L-32
<input type="text" name="penerima" placeholder='Penerima' class="form-
control" required>
<br>
<button type="submit" class="btn btn-primary"
name="addbarangkeluar">Submit</button>
</div>
</form>
</div>
</div>
</div>
</html>
L
L-33
LAMPIRAN OUTPUT PROGRAM
Halaman Login
L
L-34
Halaman Stock Barang Masuk
L
L-35
Halaman Kelola Admin
L
L-36
4