Friday, 2 November 2018

Aplikasi Purchase Requisition Dengan PHP SQL Server dan Easyui

Halo semuanya, pada postingan ini saya akan sharing sebuah aplikasi sederhana yaitu aplikasi untuk membuat permintaan pembelian barang atau purchase requisition, dalam aplikasi ini terdapat 4 level user yaitu user pembuat permintaan, manager, general manager dan admin. Berikut contoh tampilan aplikasinya :

Halaman login



Halaman user
untuk halaman user halaman defaultnya adalah langsung ke halaman create order/purchase requisition dan tampilannya seperti berikut :


ketika akan membuat order/PR baru item2 yang akan dibuat permintaan bisa di tambahkan dengan cara klik tombol Add new item, setelah itu akan muncul tampilan seperti berikut :


pada tampilan diatas user bisa memilih item yang akan dimasukkan, jumlahnya berapa harganya berapa dan bisa di tambahkan remark




jika sudah tekan tombol save dan akan muncul informasi nomor PR yang kita buat seperti gambar berikut :


List PR yang sudah dibuat akan muncul di menu list order, dalam menu list order dilakukan proses confirm agar PR yang sudah dibuat bisa dilihat oleh manager dan dilakukan approval


setelah di confirm statusnya akan berubah seperti gambar berikut :



halaman manager
pada halaman manager defaultnya adalah halaman list PR yang akan di approve, untuk approvenya harus dipilih satu persatu lalu di proses approve atau reject dan bisa juga dalam satu PR jika itemnya lebih dari satu ada yang di approve dan ada yang di reject



halaman utama general manager, dihalaman GM ini hanya akan muncul list PR yang sudah di approve oleh Manager



halaman admin, dihalaman admin terdapat 2 menu utama yaitu list department dan manage user, menu list department ini untuk menambah atau mengahapus department sedangkan menu manage user digunakan untuk mengatur otorisasi user, dan department user serta atasan user


aplikasinya masih bisa dikembangkan lagi dengan ditambahkan fitur pembuatan purchase order berdasarkan PR sampai kedatangan barang dan proses penerimaan barang.
demikian aplikasi PR sederhana ini smoga bermanfaat.


Untuk aplikasi yang memilki fitur lebih komplit bisa dilihat di link berikut :


Membuat Portfolio Sederhana Dengan Bootstrap

Pada postingan ini saya akan sharing membuat web portfolio sederhana menggunakan bootstrap dan html, untuk tampilannya kurang lebih seperti gambar berikut :





pertama2 buat sebuah folder dengan nama portfolio dan setelah itu download bootstrap, setelah itu copy folder css, js dan fonts dan buat satu folder img untuk menyimpan gambar yang ada di file downloadnya ke folder portfolio dan buat file baru didalam folder portfolio dengan nama index.html
untuk source codenya seperti berikut :

<!doctype html>
<html lang="en" id="home">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" >
    <link rel="stylesheet" type="text/css" href="css/style.css">
    

    <title>My Portfolio</title>
  </head>
  <body>

  <!-- navbar -->
  <nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
  <div class="navbar-header">
  <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collpase-1" aria-expanded="false">
 
  <span class="sr-only">Toggle Navigation</span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  </button>

  <a href="#home" class="navbar-brand page-scroll">Toekang Ketik</a>
  </div>

  <div class="collapse navbar-collapse" id="bs-example-navbar-collpase-1">
  <ul class="nav navbar-nav navbar-right">
  <li><a href="#about" class="page-scroll">About</a></li>
  <li><a href="#portfolio" class="page-scroll">Portfolio</a></li>
  <li><a href="#contact" class="page-scroll">Contact</a></li>
  </ul>
  </div>
  </div>
</nav>
  <!-- end of navbar -->

    <!-- Header -->
    <div class="jumbotron text-center">
   
    <img src="img/p_2.jpg" class="img-circle">
            <!-- <img src="img/p_2.jpg" style="width: 100px;height: 100px;"> -->
   
    <h1>Husnul Mub</h1>
    <p><u><b>ABAP Programmer | System Analyst | Freelance</b></u></p>
    </div>
    <!-- Akhir Header -->


    <!-- About -->
    <section class="about" id="about">
    <div class="container">
    <div class="row">
    <div class="col-sm-12">
    <h2 class="text-center">About</h2>
    <hr>
    </div>
    </div>

    <div class="row">
    <div class="col-sm-5 col-sm-offset-1">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
    <div class="col-sm-5">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
    </div>
    </div>
    </section>
    <!-- End of About -->


    <!-- Pertfolio -->
    <section class="portfolio" id="portfolio">
    <div class="container">
    <div class="row">
    <div class="col-sm-12 text-center">
    <h2>Portfolio</h2>
    <hr>
    </div>
    </div>

    <!-- Images -->
    <div class="row">
    <div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/1.png">
    </a>
    </div>

<div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/2.png">
    </a>
    </div>

    <div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/3.png">
    </a>
    </div>

    <div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/4.png">
    </a>
    </div>

    <div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/5.png">
    </a>
    </div>

    <div class="col-sm-4 text-center">
    <a href="" class="thumbnail">
    <img src="img/portfolio/6.png">
    </a>
    </div>   
    </div>
    </div>
    </section>
    <!-- End of Pertfolio -->


    <!-- Contact -->
    <section class="contact" id="contact">
    <div class="container">
    <div class="row">
    <div class="col-sm-12 text-center">
    <h2>Contact</h2>
    <hr>
    </div>
    </div>

    <!-- Form contact -->
    <div class="row">
    <div class="col-sm-6 col-sm-offset-3">
    <form>
    <div class="form-group">
    <label for="nama">Nama</label>
    <input type="text" id="nama" class="form-control" placeholder="Masukkan Nama">
    </div>

    <div class="form-group">
    <label for="email">Email</label>
    <input type="email" id="email" class="form-control" placeholder="Masukkan Email">
    </div>

    <div class="form-group">
    <label for="telp">No. Telp</label>
    <input type="tel" id="telp" class="form-control" placeholder="Masukkan no telepone">
    </div>

    <div class="form-group">
    <label for="pesan">Pesan</label>
    <textarea class="form-control" rows="8" id="pesan" placeholder="Masukkan pesan"></textarea>
    </div>
   
    <div class="form-group">
    <button type="submit" class="btn btn-primary">Kirim Pesan</button>
    </div>
   
    </form>
    </div>
    </div>
    </div>
    </section>
    <!-- End of Contact -->


    <!-- footer -->
    <footer>
    <div class="container text-center">
    <div class="row">
    <div class="col-sm-12">
    <p>&copy; copyright 2018 | <a href="https://www.facebook.com/toekangketiks/">toekang ketik</a></p>
    </div>
    </div>
    </div>
    </footer>
    <!-- end of footer -->

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <!-- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> -->
<script src="js/jquery.js"></script>    
<script src="js/jquery.easing.1.3.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/hm.js"></script>
  </body>
</html>

sekian sharing kali ini semoga bermanfaat, yang mau download source code nya bisa DISINI.

Aplikasi Penjualan Gas LPG Sederhana dengan VB.Net Mysql

Pada postingan ini saya akan membagikan contoh aplikasi penjualan gas lpg menggunakan vb.net 2018 dan mysql, untuk contoh tampilannya seperti berikut :

halaman login


Tampilan utama













untuk source code nya silahkan tuliskan email di kolom komentar nanti saya akan kirimkan link downloadnya atau langsung download DISINI, terimakasih :D

Tuesday, 16 October 2018

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut : 



Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut :



tambahkan file config.php didalam folder app/config :


<?php

define('BASEURL', 'http://localhost:8181/phpmvc/public');
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'phpmvc');

kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa :

Home.php

<?php

class Home extends Controller {
public function index()
{
$data['nama'] = $this->model('User_model')->getUser();
$data['title'] = 'Halaman Home';

$this->view('templates/header', $data);
$this->view('home/index', $data);
$this->view('templates/footer');
}

}

About.php

<?php

class About extends Controller{

public function index($nama = 'bejo', $pekerjaan = 'guru'){
$data['title'] = 'Halaman About';
$this->view('templates/header', $data);
$this->view('about/index');
$this->view('templates/footer');
}

}

Mahasiswa.php

<?php

class Mahasiswa extends Controller {
public function index(){
$data['title'] = 'Data Mahasiswa';
$data['mhs'] = $this->model('Mahasiswa_model')->getAllMhasiswa();
$this->view('templates/header', $data);
$this->view('mahasiswa/index', $data);
$this->view('templates/header');
}

public function detail($id){

$data['title'] = 'Detail Mahasiswa';
$data['mhs'] = $this->model('Mahasiswa_model')->getAllMhasiswaById($id);
$this->view('templates/header', $data);
$this->view('mahasiswa/detail', $data);
$this->view('templates/header');
}

public function edit($id){

$data['title'] = 'Detail Mahasiswa';
$data['mhs'] = $this->model('Mahasiswa_model')->getAllMhasiswaById($id);
$this->view('templates/header', $data);
$this->view('mahasiswa/edit', $data);
$this->view('templates/header');
}

public function tambah(){
$data['title'] = 'Tambah Mahasiswa';
$this->view('templates/header', $data);
$this->view('mahasiswa/tambah');
$this->view('templates/header');
}

public function simpanmahasiswa(){
$nim     = $_POST['nim'];
$nama    = $_POST['nama'];
$jurusan = $_POST['jurusan'];
$data['mhs'] = $this->model('Mahasiswa_model')->tambahMahasiswa($nim,$nama,$jurusan);
// return $this->index();
header('location:../mahasiswa');
}

public function updateMahasiswa(){
$nim     = $_POST['nim'];
$nama    = $_POST['nama'];
$jurusan = $_POST['jurusan'];
$data['mhs'] = $this->model('Mahasiswa_model')->updateMahasiswa($nim,$nama,$jurusan);
// return $this->index();
header('location:../mahasiswa');
}

public function hapus($id){
$data['mhs'] = $this->model('Mahasiswa_model')->deleteMhs($id);
// return $this->index();
header('location:../../mahasiswa');
}
}

Tambah 3 file didalam folder app/core : App.php, Controller.php, Database.php

App.php

<?php

class App{

protected $controller = 'Home';
protected $method = 'index';
protected $params = [];

public function __construct(){
$url = $this->parseURL();

if(file_exists('../app/controllers/' . $url[0] . '.php')){
$this->controller = $url[0];
unset($url[0]);
}

require_once '../app/controllers/' . $this->controller . '.php';
$this->controller = new $this->controller;

if(isset($url[1])){
if(method_exists($this->controller, $url[1])){
$this->method = $url[1];
unset($url[1]);
}
}

if(!empty($url)){
$this->params = array_values($url);
}

//jalankan controller
call_user_func_array([$this->controller, $this->method], $this->params);
}

public function parseURL(){
if( isset($_GET['url'])){
$url = rtrim($_GET['url'], '/');
$url = filter_var($url, FILTER_SANITIZE_URL);
$url = explode('/',$url);
return $url;
}
}

}

Controller.php

<?php

class Controller{
public function view($view, $data = [])
{
require_once '../app/views/' . $view . '.php';
}

public function model($model)
{
require_once '../app/models/' . $model . '.php';
return new $model;
}

}

Database.php

<?php

class Database{
private $host = DB_HOST;
private $user = DB_USER;
private $pass = DB_PASS;
private $dbnm = DB_NAME;

private $dbh;
private $stmt;

public function __construct()
{
$dsn = 'mysql:host='. $this->host .';dbname='. $this->dbnm;

$option = [
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];

try{
$this->dbh = new PDO($dsn,$this->user,$this->pass, $option);
}catch(PDOException $e){
die($e->getMessage());
}
}


public function query($query)
{
$this->stmt = $this->dbh->prepare($query);
}

public function bind($param, $value, $type = null){
if(is_null($type)){
switch (true) {
case is_int($value):
$type = PDO::PARAM_INT;
break;
case is_bool($value):
$type = PDO::PARAM_BOOL;
break;
case is_null($value):
$type = PDO::PARAM_NULL;
break;
default:
$type = PDO::PARAM_STR;
}
}

$this->stmt->bindValue($param, $value, $type);
}

public function execute()
{
$this->stmt->execute();
}

public function resultSet()
{
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}

public function single()
{
$this->execute();
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}
}



tambahkan model didalam folder models : Mahasiswa_model.php

<?php

class Mahasiswa_model{

private $table = 'mahasiswa';
private $db;

public function __construct()
{
$this->db = new Database;
}

public function getAllMhasiswa()
{
$this->db->query('SELECT * FROM ' . $this->table);
return $this->db->resultSet();
}

public function getAllMhasiswaById($id)
{
$this->db->query('SELECT * FROM ' . $this->table . ' WHERE id=:id');
$this->db->bind('id',$id);
return $this->db->single();
}

public function tambahMahasiswa($nim, $nama, $jurusan)
{
$this->db->query('INSERT INTO ' . $this->table . '(nim, nama, jurusan) VALUES(:nim, :nama, :jurusan)');
$this->db->bind('nim',$nim);
$this->db->bind('nama',$nama);
$this->db->bind('jurusan',$jurusan);
$this->db->execute();
}

public function updateMahasiswa($nim, $nama, $jurusan)
{
$this->db->query('UPDATE ' . $this->table . ' SET nama=:nama, jurusan=:jurusan WHERE nim=:nim');
$this->db->bind('nim',$nim);
$this->db->bind('nama',$nama);
$this->db->bind('jurusan',$jurusan);
$this->db->execute();
}

public function deleteMhs($id)
{
$this->db->query('DELETE FROM ' . $this->table . ' WHERE id=:id');
$this->db->bind('id',$id);
$this->db->execute();
}

}

didalam folder view tambahkan folder untuk masing-masing controller yaitu : folder home, about, mahasiswa dan satu foder tambahan yaitu templates 
didalam folder templates tambahkan dua file : header.php dan footer.php

header.php

<!DOCTYPE html>
<html>
<head>
<title><?= $data['title']; ?></title>
<link rel="stylesheet" href="<?= BASEURL; ?>/css/bootstrap.css">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
  <a class="navbar-brand" href="<?= BASEURL; ?>">Toekang Ketik</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
    <div class="navbar-nav">
      <!-- <a class="nav-item nav-link active" href="<?= BASEURL; ?>">Home <span class="sr-only">(current)</span></a> -->
      <a class="nav-item nav-link" href="<?= BASEURL; ?>/mahasiswa">Mahasiswa</a>
      <a class="nav-item nav-link" href="<?= BASEURL; ?>/about">About Me</a>
      
    </div>
  </div>
  </div>

</nav>

footer.php

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="<?= BASEURL; ?>/js/bootstrap.js"></script>
</body>

</html>

pada folder home tambahkan file index.php :

<div class="container mt-3">
<div class="jumbotron">
<h1 class="display-4">Belajar PHP MVC</h1>
<p class="lead">This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p>
<hr class="my-4">
<p>It uses utility classes for typography and spacing to space content out within the larger container.</p>
<a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a>
</div>

</div>

pada folder about juga tambahkan file index.php

<div class="container mt-3">
<div class="jumbotron jumbotron-fluid">
<div class="container" align="center">
<h1 class="display-4">About Me</h1>
<img src="<?= BASEURL ?>/img/husnulm.jpg" alt="Husnul M" width="200" height="250" class="rounded-circle shadow">

<p class="lead">
</p>
<table>
<tr>
<td>Nama Saya</td><td> : </td>
<td>Husnul Mub</td>
</tr>
<tr>
<td>Pekerjaan</td><td> : </td>
<td>SAP ABAP Consultant</td>
</tr>
</table>
</div>
</div>

</div>

kemudian didalam folder mahasiswa tambahkan file : index.php, detail.php, tambah.php dan edit.php 

index.php

<div class="container mt-3">
<div class="row">
<div class="col-12">
<h1>Data Mahasiswa</h1>
<ul class="list-group">
<table class="table table-stripped">
<thead>
<tr>
<th scope="col">Nama</th>
<th scope="col" width="200px">Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($data['mhs'] as $mhs) :?>
<tr>
<td><?= $mhs['nama'];?></td>
<td>
<a href="<?= BASEURL; ?>/mahasiswa/detail/<?= $mhs['id'] ?>" class="badge badge-primary badge-pill">Detail</a>

<a href="<?= BASEURL; ?>/mahasiswa/edit/<?= $mhs['id'] ?>" class="badge badge-primary badge-pill">Edit</a>
<a href="<?= BASEURL; ?>/mahasiswa/hapus/<?= $mhs['id'] ?>" class="badge badge-primary badge-pill">Hapus</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</ul>
<a href="<?= BASEURL; ?>/mahasiswa/tambah" class="btn btn-success mt-2">Tambah Mahasiswa</a>
</div>
</div>
</div>

detail.php

<div class="container mt-3">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="<?= BASEURL ?>/img/husnulm.jpg" alt="Card image cap">
<div class="card-body">
<h5 class="card-title"><?= $data['mhs']['nama']; ?></h5>
<p class="card-text"><?= $data['mhs']['jurusan']; ?></p>
<a href="<?= BASEURL; ?>/mahasiswa" class="btn btn-primary">Kembali</a>
</div>
</div>

</div>

tambah.php

<div class="container mt-3">
<form action="<?= BASEURL; ?>/mahasiswa/simpanmahasiswa" method="POST" enctype="multipart/form-data">
<input class="form-control form-control-lg mt-2" type="text" name="nim" placeholder="NIM">
<input class="form-control form-control-lg mt-2" type="text" name="nama" placeholder="Nama">
<input class="form-control form-control-lg mt-2" type="text" name="jurusan" placeholder="Jurusan">
<input type="submit" value="simpan" class="btn btn-success mt-2">
<a href="<?= BASEURL; ?>/mahasiswa" class="btn btn-primary mt-2">Kembali</a>
</form>

</div>

edit.php

<div class="container mt-3">
<form action="<?= BASEURL; ?>/mahasiswa/updateMahasiswa" method="POST" enctype="multipart/form-data">
<input class="form-control form-control-lg mt-2" type="text" readonly="true" name="nim" placeholder="NIM" value="<?= $data['mhs']['nim']; ?>">
<input class="form-control form-control-lg mt-2" type="text" name="nama" placeholder="Nama" value="<?= $data['mhs']['nama']; ?>">
<input class="form-control form-control-lg mt-2" type="text" name="jurusan" placeholder="Jurusan" value="<?= $data['mhs']['jurusan']; ?>">
<input type="submit" value="simpan" class="btn btn-success mt-2">
<a href="<?= BASEURL; ?>/mahasiswa" class="btn btn-primary mt-2">Kembali</a>
</form>
</div>

kemudian tambah file init.php dan .htaccess didalam folder app

init.php

<?php

require_once 'core/App.php';
require_once 'core/Controller.php';
require_once 'core/Database.php';

require_once 'config/config.php';

.htaccess

Options -Indexes


kemudian pada folder public folder css dan js berisi bootstrap, silahkan di dowload di website bootstrap dan didalam folder img bisa kalian tambahkan image terserah teman2 mau pakai image apa saja dan tambah file index dan .htaccess


index.php

<?php

require_once '../app/init.php';


$app = new App;

.htaccess

Options -Multiviews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f


RewriteRule ^(.*)$ index.php?url=$1 [L]


ok sudah selesai dan berikut hasilnya :













ok semoga bermanfaat :D



sumber : 
https://www.youtube.com/watch?v=tBKOb8Ib5nI&list=PLFIM0718LjIVEh_d-h5wAjsdv2W4SAtkx

https://www.facebook.com/WebProgrammingUNPAS/

Belajar SAP ABAP RAP

  Belajar SAP ABAP RAP: Pengenalan dan Konsep Dasar Restful ABAP Programming Model Kalau kamu seorang ABAPer yang mulai terjun ke dunia SAP...