Wednesday, October 30, 2019

(Part 3) Membangun Aplikasi Kasir atau Point of Sales (POS) Dengan PHP dan MYSQL (Menu Insert dan Edit User)

Setelah sebelumnya membahas mengenai Template dan Koneksi Kedatabase. Kali ini kami akan membuat postingan mengenai cara membuat Menu Insert dan Edit User.  

Bagian terpenting dari sebuah aplikasi yang memiliki data bersifat privasi adalah dengan membuat fitur otentikasi untuk memberikan sekat antara pengguna aplikasi. Sebagaimana yang telah diketahui, bahwa dalam schema database sebelumnya, kita telah memiliki table user_login, dimana table ini akan digunakan untuk menyimpan data user yang memiliki akses kedalam data yang akan dilindungi dengan fitur otentikasi tersebut.
Langsung saja pada pokok pembahasan kali ini dengan cara :
1.  Ketik kode berikut (home.php) :

<div class="row-fluid"> <ul class="thumbnails"> <li class="span4"> <div class="thumbnail"> <div class="caption"> <h3>User Management</h3> <p>Halaman untuk menambah,mengubah dan menghapus data user</p> <p><a href="?cat=administrator&page=user" class="btn btn-primary">Masuk</a> </p> </div> </div> </li> </ul> </div>

Simpan dengan nama "home.php", Agar rapi buat folder pages dan di dalam folder pages buat folder lagi dengan nama administrator (pages/administrator)

2. Kemudian ketik kode berikut (user.php):

<?php ob_start(); ?> <form name="form1" method="post" action="?cat=administrator&page=user&act=1"> <label>Username</label> <input type="text" name="username" id="username"> <label>Nama</label> <input type="text" name="nama" id="nama"> <label>Password</label> <input type="text" name="password" id="password"> <label>LEVEL</label> <select name="jenis" id="jenis"> <option value="admin">ADMIN</option> <option value="pimpinan">PIMPINAN</option> <option value="gudang">GUDANG</option> <option value="kasir">KASIR</option> </select> <p></p> <input type="submit" class="btn btn-primary" name="button" id="button" value="Daftar">&nbsp;&nbsp;<input type="reset" class="btn btn-danger" name="reset" id="reset" value="Reset"> </form> <?php ob_end_flush(); ?> <p></p> <p></p> <span class="span4"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table table-striped"> <tr> <td>Username</td> <td>Nama</td> <td>Jenis Login</td> <td>&nbsp;</td> </tr> <?php $rw=mysql_query("Select * from user_login"); while($s=mysql_fetch_array($rw)) { ?> <tr> <td><?php echo $s['username']; ?></td> <td><?php echo $s['nama']; ?></td> <td><?php echo $s['login_hash']; ?></td> <td><a href="?cat=administrator&page=useredit&id=<?php echo sha1($s['username']); ?>">Edit</a> - <a href="?cat=administrator&page=user&del=1&id=<?php echo sha1($s['username']); ?>">Hapus</a></td> </tr> <?php } ?> </table> </span> <?php if(isset($_GET['act'])) { $rs=mysql_query("Insert into user_login (`username`,`nama`,`password`,`login_hash`) values ('".$_POST['username']."','".$_POST['nama']."','".md5($_POST['password'])."','".$_POST['jenis']."')") or die(mysql_error()); if($rs) { echo "<script>window.location='?cat=administrator&page=user'</script>"; } } ?> <?php if(isset($_GET['del'])) { $ids=$_GET['id']; $ff=mysql_query("Delete from user_login Where sha1(username)='".$ids."'"); if($ff) { echo "<script>window.location='?cat=administrator&page=user'</script>"; } } ?>

Simpan dengan nama "user.php", simpan di folder pages sama seperti file home.php 
Scrip diatas berfungsi sebagai halaman untuk menambahkan data user.

3. Kemudian ketik kode berikut (useredit.php):

<?php ob_start(); if(isset($_GET['id'])) { $rs=mysql_query("Select * from user_login where sha1(username)='".$_GET['id']."'"); $row=mysql_fetch_array($rs); ?> <form name="form1" method="post" action="?cat=administrator&page=useredit&id=<?php echo $_GET['id']; ?>&edit=1"> <table width="50%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="36%">Username</td> <td width="64%"><label for="username"></label> <input type="text" name="username" id="username" value="<?php echo $row['username']; ?>" disabled="disabled"></td> </tr> <tr> <td>Password</td> <td><input type="password" name="password" id="password" value="<?php echo $row['password']; ?>"></td> </tr> <tr> <td>Jenis Login</td> <td> <select name="jenis" id="jenis"> <option value="admin">ADMIN</option> <option value="pimpinan">PIMPINAN</option> <option value="gudang">GUDANG</option> <option value="kasir">KASIR</option> </select></td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" class="btn btn-primary" name="button" id="button" value="Ubah">&nbsp;&nbsp;<input type="button" class="btn btn-danger" name="reset" id="reset" value="Cancel" onclick="window.location='?cat=administrator&page=user'"></td> </tr> </table> </form> <?php ob_end_flush(); }else{ echo "<script>window.location='?cat=administrator&page=user'</script>"; } ?> <?php if(isset($_GET['edit'])) { $rs=mysql_query("Update user_login SET password='".md5($_POST['password'])."',login_hash='".$_POST['jenis']."' Where sha1(username)='".$_GET['id']."'"); if($rs) { echo "<script>window.location='?cat=administrator&page=user'</script>"; } } ?>
Simpan dengan nama "useredit.php", simpan di folder pages sama seperti file home.php 
Scrip diatas berfungsi sebagai halaman untuk edit data user.

4. Selanjutnya pada file _main-nav.php  perhatikan kode berikut :

<!--MENU SUPER ADMIN-->
<?php }elseif($_SESSION['login_hash']=="administrator"){ ?> <li class="dropdown"><a href="#"><span class="icon-th-list"></span>MASTER </a> <ul> <li><a href="?cat=administrator&page=user">Tambah Data User</a></li> <li><a href="#"><span class="icon-pencil"></span>SUB MENU 2A</a></li> </ul> </li> <li class="dropdown"><a href="#"><span class="icon-th-list"></span>MENU B</a> <ul> <li><a href="#"><span class="icon-pencil"></span>SUB MENU 1B</a></li> <li><a href="#"><span class="icon-pencil"></span>SUB MENU 2B</a></li> </ul> </li>

Kode diatas merupakan scrip untuk penulisan menu administrator, ketika seson login hash =administrator maka yang ditampilkan menunya seperti diatas. Untuk itu kita dapat merubahnya sesuai dengan yang dibutuhkan super admin disini.
Diatas kita sudah menyiapkan halaman untuk menambahkan data user dengan nama file user.php
yang merupakan salah satu menu dari super admin.

pada scrip:
 <li class="dropdown"><a href="#"><span class="icon-th-list"></span>MENU A</a>
Edit menjadi:
 <li class="dropdown"><a href="#"><span class="icon-th-list"></span>MASTER</a>

dan scrip :
<li><a href="#"><span class="icon-pencil"></span>SUB MENU 1A</a></li>

Edit menjadi :
<li><a href="?cat=administrator&page=user">Tambah Data User</a></li>

Setelah itu coba jalankan pada browser anda dengan User ; ADM dan Password : ADMIN
Sekarang kita dapat menambahkan dan edit user dengan level atau login hash sesuai yang dinginkan.
Sekian dulu postingan kali ini. Simak terus Postingan selanjutnya, terima kasih.

NB : Source code dalam artikel yang berkelanjutan ini akan kami dokumentasikan, dan kami share link downloadnya di akhir project.

(Part 2) Membangun Aplikasi Kasir atau Point of Sales (POS) Dengan PHP dan MYSQL (Menentukan Template dan koneksi kedatabese)


Setelah sebelumnya membahas tentang Rancangan Database. Kali ini kami akan membahas mengenai template atau layout yang menjadi acuan kita dalam menginput data.
Kami juga sudah menyediakan templatenya di sini
Berikut sekilas Tampilannya:

Jika anda punya templete sediri, anda bisa juga menggunakan templete anda (Tingal menyesuaikan). 
Setelah anda download template diatas. Extrak terlebih dahulu file POS.ZIP kemudian copy dan paste kan folder POS ke folder www atau htdocs. Kemudian kita buat koneksi ke database dari database yang telah kita buat dipertemuan sebelumnya
1. Koneksi kedatabase (buat file dengan nama _db.php):
Ketikan Kode berikut :

<?php $host = "localhost"; $user = "root"; $pass = "*******"; $dabname = "POS"; $conn = mysql_connect( $host, $user, $pass) or die('Could not connect to mysql server.' ); mysql_select_db($dabname, $conn) or die('Could not select database.'); $baseurl="http://localhost/POS/"; ?>
Untuk baris "$pass = "*****";" ganti tanda "*****" dengan password root database anda.
Simpan dengan nama _db.php

2. Halaman Login (login.php)
Ketikan Kode berikut :
<form id="loginform" action="index.php?login_attempt=1" method="post"> <p class="animate4 bounceIn"><input type="text" id="username" name="username" placeholder="Username" /></p> <p class="animate5 bounceIn"><input type="password" id="password" name="password" placeholder="Password" /></p> <p class="animate6 bounceIn"><button class="btn btn-default btn-block">Masuk</button></p> </form> <?php if(isset($_GET['login_attempt'])) { $spf=sprintf("Select * from user_login where username='%s' and password='%s'",$_POST['username'],md5($_POST['password'])); $rs=mysql_query($spf); $rw=mysql_fetch_array($rs); $rc=mysql_num_rows($rs); if($rc==1) { $_SESSION['login_hash']=$rw['login_hash']; $_SESSION['login_user']=$rw['username']; echo "<script>window.location='dashboard.php'</script>"; } } ?>
Simpan dangan nama login.php

Kemuidan buka file index.php, copy dan pastekan kode berikut pada baris ke 15 atau dibawah 
<body class="loginbody"> :
<div class="loginwrapper"> <div class="loginwrap zindex100 animate2 bounceInDown"> <h1 class="logintitle"><span class="iconfa-lock"></span>POINT OF SALES<span class="subtitle">Silahkan login untuk memulai.</span></h1> <div class="loginwrapperinner"> <?php include("login.php") ?> </div><!--loginwrapperinner--> </div> <div class="loginshadow animate3 fadeInUp"></div> </div><!--loginwrapper-->



Selanjutnya insert data Admin sebagai super user untuk mengelola data user2 nantinya
coba akses http://localhost/pos/index.php  dengan mengetikan ke browser. Maka akan muncul halaman login seperti berikut :
Coba login dengan User : ADM dan Password : ADMIN, jikan sukses maka akan muncul halaman seperti pada gambar berikut :
Ini menandakan bahwa koneksi ke database anda sudah berhasil.Untuk artikel kali ini cukup sampai disini dulu ya, akan kami lanjutkan lagi pada artikel2 selanjutnya, sekian dan terima kasih.

=>(Part 3) Membangun Aplikasi Kasir atau Point of Salses (POS) Dengan PHP dan MYSQL (Menu Insert dan Edit User)


NB : Source code dalam artikel yang berkelanjutan ini akan kami dokumentasikan, dan kami share link downloadnya di akhir project.

Sunday, October 27, 2019

(Part 1) Membangun Aplikasi Kasir atau Point of Sales (POS) Dengan PHP dan MYSQL (Rancangan Database)

Pada kesempatan kali ini kami ingin berbagi dan belajar tetang cara Membagun Aplikasi Kasir atau sering juga di kenal dengan Point of Salses (POS).
Tampilan transaksi dan potonhgan struk


Point of Sales, yang berarti akan terjadi proses pencatatan transaksi penjualan, syarat dari pencatatan transaksi tersebut adalah terdapat data Item atau produk jumlah item yang dibeli dan nilai jualnya, data operator (kasir) dan data transaksi dari transaksi yang dilakaukan.

Perangkat Lunak :
Perangkat lunak yang digunakan dalam pembangunan Aplikasi ini yaitu :
-  AppServ, sebagai software yang berisi web server Apache, PHP, dan Database Server MYSQL.
- Aplikasi browser program Mozilla Firefox, Google Crhome atau yang lainnya.

SCHEMA DATABASE

Database atau basis data, atau sering pula dieja basisdata, adalah kumpulan Informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer  untuk memperoleh informasi dari basis data tersebut.



MEMBUAT DATABASE

1. Buat database dengan nama POS
CREATE DATABASE `POS` ;

2. Buat tabel dengan nama TABEL_BARANG dengan jumlah field 6 :
CREATE TABLE `tabel_barang` (
 `BRG_PLU` VARCHAR( 7 ) NOT NULL , 
`BRG_DESK` VARCHAR( 100 ) NOT NULL ,
 `BRG_DESKP` VARCHAR( 30 ) NOT NULL ,
 `BRG_UNIT` VARCHAR( 7 ) NOT NULL ,
 `BRG_FRAC` VARCHAR( 4 ) NOT NULL ,
 `BRG_BARCODE` VARCHAR( 100 ) NOT NULL )
ENGINE = MYISAM ;

Tabel barang ini berfungsi untuk menyimpan data-data Item atau barang apa saja yang akan kita jadi item transaksi.

3. Buat tabel dengan nama TABEL_HARGA dengan jumlah field 7 :
CREATE TABLE `TABEL_HARGA` (
`HRG_PLU` VARCHAR( 7 ) NOT NULL ,
`HRG_HARGA_LAMA` INT( 9 ) NOT NULL ,
`HRG_HARGA_BARU` INT( 9 ) NOT NULL ,
`HRG_CREATE_DT` DATE NOT NULL ,
`HRG_CREATE_BY` VARCHAR( 6 ) NOT NULL,
`HRG_MODIFY_DT` DATE NOT NULL ,
`HRG_MODIFY_BY` VARCHAR( 6 ) NOT NULL )
ENGINE = MYISAM ;

Tabel harga ini berfungsi untuk menyimpan data harga dari setiap item atau barang transaksi.



4. Buat tabel dengan nama TABEL_STOCK dengan jumlah field 9 :
CREATE TABLE `TABEL_STOCK` (
`ST_PLU` VARCHAR( 7 ) NOT NULL ,
`ST_QTY_AWAL` INT( 10 ) NOT NULL ,
`ST_QTY_AKHIR` INT( 10 ) NOT NULL ,
`ST_ACOST` INT( 9 ) NOT NULL ,
`ST_ACOST_LAMA` INT( 9 ) NOT NULL,
`ST_CREATE_BY` VARCHAR( 6 ) NOT NULL ,
`ST_CREATE_DT` DATE NOT NULL ,
`ST_MODIFY_BY` VARCHAR( 66 ) NOT NULL ,
`ST_MODIFY_DT` DATE NOT NULL )
ENGINE = MYISAM ;

Tabel stock merupakan tabel untuk penyimpanan data stock. Dimana nantinya penerimaan barang yang dinput admin gudang akan bertambah di stock, sedangkan transaksi penjualan yang dilakukan oleh kasir akan memotong stock.


5. Buat tabel dengan nama TABEL_JUAL dengan jumlah field 7 :
CREATE TABLE `TABEL_JUAL` (
 `TJ_PLU` VARCHAR( 7 ) NOT NULL ,
 `TJ_QTY` INT( 9 ) NOT NULL , 
`TJ_HARGA` INT( 9 ) NOT NULL , 
`TJ_TOTAL_HARGA` INT( 10 ) NOT NULL ,
 `TJ_TGLTRANS` DATETIME NOT NULL ,
 `TJ_CREATE_BY` VARCHAR( 6 ) NOT NULL ,
 `TJ_NO_STRUK` VARCHAR( 20 ) NOT NULL )
 ENGINE = MYISAM ;

Tabel jual tabel untuk menyimpan data2 transaksi penjualan.


6. Buat tabel dengan nama TEMP_TABEL_JUAL dengan jumlah field 7 :
CREATE TABLE `TEMP_TABEL_JUAL` ( 
`TEMP_PLU` VARCHAR( 7 ) NOT NULL ,  
`TEMP_QTY` VARCHAR( 9 ) NOT NULL , 
 `TEMP_HARGA` VARCHAR( 9 ) NOT NULL ,
 `TEMP_TOTAL_HARGA` VARCHAR( 10 ) NOT NULL ,
 `TEMP_TGLTRANS` DATETIME NOT NULL , 
 `TEMP_CREATE_BY` VARCHAR( 6 ) NOT NULL , 
 `TEMP_NO_STRUK` VARCHAR( 20 ) NOT NULL )
 ENGINE = MYISAM ;

Sedangkan Tabel Temp Jual untuk penyimpan sementara data2 transaksi, yang kemudian di insert ke tabel jual.


7. Buat tabel dengan nama TEMP_PENERIMAAN dengan jumlah field 6 :
CREATE TABLE  `TEMP_PENERIMAAN` (
 `TEMP_NODOC` VARCHAR( 16 ) NOT NULL ,
 `TEMP_PLU` VARCHAR( 7 ) NOT NULL ,
 `TEMP_QTY` INT( 9 ) NOT NULL ,
 `TEMP_HARGA_BELI` INT( 9 ) NOT NULL ,
 `TEMP_TGL` DATETIME NOT NULL ,
 `TEMP_CREATE_BY` VARCHAR( 6 ) NOT NULL
) ENGINE = MYISAM ;

Tabel TEMP_PENERIMAAN untuk penyimpanan data penerimaan barang sementara untuk kemudian disimpan pada tabel TABEL_PENERIMAAN dan TABEL_STOCK.

8. Buat tabel dengan nama TABEL_PENERIMAAN dengan jumlah field 6 :
CREATE TABLE  `TABEL_PENERIMAAN` (
 `TP_NODOC` VARCHAR( 16 ) NOT NULL ,
 `TP_PLU` VARCHAR( 7 ) NOT NULL ,
 `TP_QTY` INT( 9 ) NOT NULL ,
 `TP_HARGA_BELI` INT( 9 ) NOT NULL ,
 `TP_TGL` DATETIME NOT NULL ,
 `TP_CREATE_BY` VARCHAR( 6 ) NOT NULL
) ENGINE = MYISAM ;
 Tabel TABEL_PENERIMAAN untuk penyimpanan data penerimaan barang dari gudang, dimana ketika melakukan penerimaan akan berpengaruh terhadap tabel TABEL_PENERIMAAN dan TABEL_STOCK.

9. Buat tabel dengan nama USER_LOGIN dengan jumlah field 7 :
CREATE TABLE `USER_LOGIN` ( 
 `USERNAME` VARCHAR( 3 ) NOT NULL , 
`NAMA` VARCHAR( 40 ) NOT NULL ,  
`PASSWORD` VARCHAR( 40 ) NOT NULL ,
 `LOGIN_HASH` VARCHAR( 20 ) NOT NULL ) 
ENGINE = MYISAM ;

Mengakhiri Postingan kali ini kita telah menyelasikan rancangan database yang akan kita gunakan untuk membuat aplikasi Point of Sales, maka dengan rancangan database ini kita sudah dapat membayangkan apa saja yang harus kita kerjakan pada tahap development.

sampai jumpa di artikel selanjutnya

NB : Source code dalam artikel yang berkelanjutan ini akan kami dokumentasikan, dan kami share link downloadnya di akhir project.






follow

Follow My Blog

baner ak

Click the Flag to translate this blog into English =>> English








Twitter Delicious Facebook Digg Stumbleupon Favorites More