Menambah data petugas digunakan ketika admin melakukan penambahan petugas untuk mengoperasikan transaksi
8.6.1 Model
Dalam pembuatan tampilan tambah petugas menggunakan Model M_user.php sehingga, hanya menambah script pada model M_user.php untuk mendapatkan ID petugas dan tambah petugas ke database, script untuk menambah user petugas sebgai berikut:
function getkodeunik() {
$q = $this->db->query("SELECT MAX(RIGHT(idUser,2)) AS idmax FROM user");
$kd = ""; //kode awal
if($q->num_rows()>0){ //jika data ada foreach($q->result() as $k){
$tmp = ((int)$k->idmax)+1; //string kode diset ke integer dan ditambahkan 1 dari kode terakhir
$kd = sprintf("%02s",$tmp); //kode ambil 2 karakter terakhir }
}else{ //jika data kosong diset ke kode awal $kd = "01";
}
$kar = "P"; //karakter depan kodenya
//gabungkan string dengan kode yang telah dibuat tadi return $kar.$kd;
}
function tambah(){
$idPetugas = $this->input->post('idPetugas');
$nama = $this->input->post('nama');
$email = $this->input->post('email');
$password = $this->input->post('password');
$data = array(
'idUser' =>$idPetugas, 'nama' =>$nama, 'email' =>$email,
'password'=>md5($password), 'level' =>'Petugas'
);
$this->db->insert('user',$data);
}
34 Penejeasan
- ("SELECT MAX(RIGHT(idUser,2)) AS idmax FROM user"); mengambil ID User dan hanya mengabil 2 huruf paling kanan.
- ((int)$k->idmax)+1; string kode diset ke integer dan ditambahkan 1 dari kode terakhir.
- sprintf("%02s",$tmp); untuk mengambil 2 angka terakhir
- $this->input->post(“”)Untuk mengambil value atau isi yang sudah di menggunakan metode POST .
- Untuk mengisi data dari form ke atribut pada database, menggunakan script seperti dibawah ini :
$data = array(
'idUser' =>$idPetugas, 'nama' =>$nama, 'email' =>$email,
'password'=>md5($password), 'level' =>'Petugas'
);
-
- Untuk menyimpan ke database menggunakan script
$this->db->insert('user',$data);
8.6.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view Admin yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file tambahPetugas.php. Buatlah file tambahPetugas.php pada direktori application/views/petugas/.
<section id="content">
<div class="container">
<div class="section">
<div class="divider"></div>
<!--Basic Form-->
<div id="basic-form" class="section">
<div id="table-datatables">
<h4 class="header">Tambah Petugas</h4>
<hr>
<div class="row">
<div class="col s12 m12 l12">
<div class="card-panel">
<div class="row">
<form class="col s12" action="<?php echo base_url();?>petugas/tambah"
method="POST">
<div class="row">
<div class="input-field col s1">
<input id="idPetugas" name="idPetugas" type="text" value="<?=
$kodeunik ?>" required readonly>
<label for="idPetugas" class="active">ID</label>
</div>
35 </div>
<div class="row">
<div class="input-field col s12">
<input id="nama" name="nama" type="text" required>
<label for="nama">Nama Petugas</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="email" name="email" type="email" required>
<label for="email">Email</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="password" name="password" type="password" required>
<label for="password">Password</label>
</div>
<div class="row">
<div class="input-field col s12">
<button class="btn cyan waves-effect waves-light" type="submit"
name="action">Tambah
<i class="mdi-content-send right"></i>
</button>
<a href="<?php echo base_url()?>petugas/dataPetugas" class="btn red waves-effect waves-light right">Batal
<i class="mdi-content-undo right"></i>
</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
Penejelasan
- <?php echo base_url();?>petugas/tambah Untuk link ke class controller petugas dengan fungsi tambah
Sehingga hasil dari tampilan tambah petugas sebgai berikut :
36 8.6.3 Controller
Tahap selanjutnya membuat controller mengenai barang. Buatlah file controller Barang.php di direktori /apllication/controllers dan script controller untuk file Barang.php sebagai berikut :
function tambah() {
//cek login
if (!$this->session->userdata('level')=='Admin') { redirect('login');
}else{
if($this->input->method()=='post'){
$this->m_user->tambah();
$this->session->set_flashdata('info', 'Data berhasil ditambah');
redirect('petugas/dataPetugas');
}else{
$data['admin'] = $this->m_user->selectAdmin()->row();
$data['kodeunik'] = $this->m_user->getkodeunik();
$this->load->view('admin/header',$data);
$this->load->view('admin/tambahPetugas');
$this->load->view('admin/footer');
} } }
37 8.7 Melihat Data Petugas
Melihat data petugas digunakan ketika admin ingin mengetahui siapa saja petugas beserta profilnya. Berikut langkah-langkah untuk tampilan melihat petugas.
8.7.1 Model
Dalam pembuatan tampilan tambah petugas menggunakan Model M_user.php sehingga, hanya menambah script pada model M_user.php untuk mendapatkan ID petugas dan tambah petugas ke database, script untuk menambah user petugas sebgai berikut:
function getPetugas(){
$this->db->select('*');
$this->db->from('user');
$this->db->where('level', 'petugas');
$query = $this->db->get();
return $query;
}
8.7.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view admin yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file dataPetugas.php. Buatlah file tambahPetugas.php pada direktori application/views/admin/.
<section id="content">
<div class="container">
<div class="section">
<div class="divider"></div>
<div id="table-datatables">
<h4 class="header">Data Petugas</h4>
<hr>
<div class="row">
<!-- alert -->
<?php if($this->session->flashdata('info')){?>
<div class="row" id="alert_box">
<div class="col s12 m12">
<div class="card green darken-1">
<div class="row">
<div class="col s12 m10">
<div class="card-content white-text center">
<p><?php echo $this->session->flashdata('info')?></p>
</div>
</div>
<div class="col s12 m2">
<i class="mdi-content-clear icon_style" id="alert_close" aria-hidden="true"></i>
</div>
</div>
38 </div>
</div>
</div>
<?php } ?>
<!-- End Alert -->
<div class="col s12 m8 l11">
<a href="<?php echo base_url();?>petugas/tambah" class="btn blue ">Tambah<i class="mdi-av-playlist-add right"></i></a>
<a href="<?php echo base_url();?>petugas/export" class="btn cyan waves-effect waves-light">Excel<i class="mdi-action-print right"></i></a>
<a class="btn waves-effect waves-light indigo" href="<?=
base_url();?>petugas/exportPDF">PDF<i class="mdi-action-print right"></i></a>
<table id="data-table-simple" class="responsive-table display"
cellspacing="0">
<thead>
<tr>
<th>ID Petugas</th>
<th>Nama Petugas</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php
foreach ($dataPetugas as $petugas) { ?>
<tr>
<td><?php echo $petugas->idUser ?></td>
<td><?= $petugas->nama ?></td>
<td><?= $petugas->email ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
<br>
</div>
</div>
</section>
Sehingga hasil dari tampilan data petugas sebagai berikut :
39 8.7.3 Controller
Tambahkan script dibawah ini pada file controller Petugas.php : function dataPetugas()
{
if (!$this->session->userdata('level')=='Admin') { redirect('login');
}else{
$data['admin'] = $this->m_user->selectAdmin()->row();
$data['dataPetugas'] = $this->m_user->getPetugas()->result();
$this->load->view('admin/header',$data);
$this->load->view('admin/dataPetugas');
$this->load->view('admin/footer');
} }
8.8 Mengubah Data Petugas
Mengubah data petugas digunakan ketika petugas melakukan ubah passwordnya.
8.8.1 Model
Dalam pembuatan tampilan mengubah petugas menggunakan Model M_user.php sehingga, hanya menambah script pada model M_user.php untuk melakukan ubah data petugas ke database, script untuk mengubah user petugas sebgai berikut:
function selectPetugas(){
$email = $this->session->userdata('email');
$this->db->select('*');
$this->db->from('user');
$this->db->where('email', $email);
$query = $this->db->get();
return $query;
40 }
function ubahPetugas(){
$email = $this->input->post('email');
$password = $this->input->post('password');
$this->db->set('password', md5($password));
$this->db->where('email', $email);
$this->db->update('user');
}
Penjelasan : $this->db->update('user'); untuk mengubah data ke database
8.8.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view petugas yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file profil.php. Buatlah file profil.php pada direktori application/views/profil/. Berikut isi script pada profil.php :
<div class="container">
<div class="row">
<div class="col s12">
<div class="card-panel">
<!-- alert -->
<?php if($this->session->flashdata('info')){?>
<div class="row" id="alert_box">
<div class="col s12 m12">
<div class="card green darken-1">
<div class="row">
<div class="col s12 m10">
<div class="card-content white-text center">
<p><?php echo $this->session->flashdata('info')?></p>
</div>
</div>
<div class="col s12 m2">
<i class="mdi-navigation-close icon_style" id="alert_close" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
<!-- End Alert -->
<h4 class="header2">Ubah Profil</h4>
<div class="row ">
<form class="col s12" method="post" enctype="multipart/form-data"
action="<?php echo base_url();?>petugas/profil">
<div class="row">
41 <div class="input-field col s12 ">
<input type="text" value="<?= $petugas->nama?>" name="nama"
readonly>
<label class="active">Nama</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input type="email" value="<?= $petugas->email?>" name="email"
readonly>
<label class="active">Email</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input type="password" name="password" required>
<label>Password</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<button class="btn blue waves-effect waves-light right" type="submit"
name="action">Ubah
<i class="mdi-content-send right"></i>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
Penejelasan Hasil
42 8.8.3 Controller
public function profil() {
$data['petugas'] = $this->m_user->selectPetugas()->row();
if($this->session->userdata('level')!='Petugas') { redirect('login');
}else{
if($this->input->method()=='post'){
$this->m_user->ubahPetugas();
$this->session->set_flashdata('info', 'Data berhasil diubah');
redirect('petugas/profil');
}else{
$this->load->view('petugas/header');
$this->load->view('petugas/profil',$data);
$this->load->view('petugas/footer');
} } }
43 8.9 Menambah Data Barang
Menambah data barang dilakukan oleh petugas. Untuk penambahan data barang berupa idBarang, Foto, Nama, Harga, dan Stok.
8.9.1 Model
Model yang digunakan adalah M_barang.php yang sudah dibuat ketika membuat dashbord Admin. Sehingga ada penambahan script pada model M_barang.php sebagai berikut:
function getkodeunik() {
$q = $this->db->query("SELECT MAX(RIGHT(idBarang,2)) AS idmax FROM barang");
$kd = ""; //kode awal
if($q->num_rows()>0){ //jika data ada foreach($q->result() as $k){
$tmp = ((int)$k->idmax)+1; //string kode diset ke integer dan ditambahkan 1 dari kode terakhir
$kd = sprintf("%02s",$tmp); //kode ambil 4 karakter terakhir }
}else{ //jika data kosong diset ke kode awal $kd = "01";
}
$kar = "B"; //karakter depan kodenya
//gabungkan string dengan kode yang telah dibuat tadi return $kar.$kd;
}
function tambah() {
$id = $this->input->post('id');
$nama = $this->input->post('namaBarang');
$harga = $this->input->post('harga');
$stok = $this->input->post('stok');
$foto = $_FILES['foto']['name'];
$this->load->library('upload');
$config['upload_path'] = './assets/gambar'; //path folder
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp'; //type yang dapat diakses bisa anda sesuaikan
$config['file_name'] = $nama; //nama yang terupload nantinya $this->upload->initialize($config);
if($_FILES['foto']['name']) {
if ($this->upload->do_upload('foto')) {
$gbr = $this->upload->data();
define( 'WP_MEMORY_LIMIT', '256M' );
$source_url=$config['upload_path'].'/'.$gbr['file_name'];
$image = imagecreatefromjpeg($source_url);
imagejpeg($image, $config['upload_path'].'/'.$gbr['file_name'], 50);
$data = array(
'idBarang' =>$id,
44 'namaBarang' =>$nama,
'harga' =>$harga, 'stok' =>$stok,
'foto' =>$gbr['file_name']
);
} }
$this->db->insert('barang',$data);
}
Penejelasan sebagai beriukut
- $this->load->library('upload'); untuk memanggil library upload file, yang merupakan library bawaan dari CI
- $config['upload_path'] = './assets/gambar'; untuk penyimpanan Foto pada folder
- $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp'; hanya file gambar yang dapat di upload
- $config['file_name'] = $nama; nama yang terupload nantinya
- $this->upload->initialize($config); melakukan konfigurasi ke libraray upload - $this->upload->do_upload('foto'); melakukan upload foto yang name pada
form tambah barang berupa foto. (<input type=”file” name=”foto”>)
- $this->upload->data(); sudah terupload
- define( 'WP_MEMORY_LIMIT', '256M' ); File yang besar pun dapat melakukan upload
- $image = imagecreatefromjpeg($source_url); konvert file ke jpg
- imagejpeg($image, $config['upload_path'].'/'.$gbr['file_name'], 50);
untuk mengurangi kulitas gambar sebesar 50 %
8.9.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view petugas yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file tambahBarang.php. Buatlah file tambahBarang.php pada direktori application/views/petugas/.
<div class="container">
<div class="row">
<div class="col s12 ">
<div class="card-panel">
<!-- alert -->
<?php if($this->session->flashdata('info')){?>
<div class="row" id="alert_box">
<div class="col s12 m12">
<div class="card green darken-1">
<div class="row">
<div class="col s12 m10">
<div class="card-content white-text center">
<p><?php echo $this->session->flashdata('info')?></p>
</div>
</div>
45
46 <div class="input-field col s12">
<button class="btn blue waves-effect waves-light right" type="submit"
name="action">Ubah
<i class="mdi-content-send right"></i>
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
Penjelasan
- <input type="file" accept="image/jpeg,image/png,image/JPG" type="file"
title="Click untuk Foto" name="foto" /> ketika mau upload file melalui direktori komputer, hanya berupa gambar saja
Sehingga tampilan menambah data barang sebagai berikut :
8.9.3 Controller
Tahap selanjutnya membuat controller mengenai barang. Buatlah file controller
47 Barang.php di direktori /apllication/controllers dan script controller untuk file Barang.php sebagai berikut :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class barang extends CI_Controller { public function __construct(){
parent::__construct();
$this->load->model(array('m_barang','m_user'));
date_default_timezone_set('Asia/Jakarta');
}
function getkodeunik() {
$q = $this->db->query("SELECT MAX(RIGHT(idBarang,2)) AS idmax FROM barang");
$kd = ""; //kode awal
if($q->num_rows()>0){ //jika data ada foreach($q->result() as $k){
$tmp = ((int)$k->idmax)+1; //string kode diset ke integer dan ditambahkan 1 dari kode terakhir
$kd = sprintf("%02s",$tmp); //kode ambil 4 karakter terakhir }
}else{ //jika data kosong diset ke kode awal $kd = "01";
}
$kar = "B"; //karakter depan kodenya
//gabungkan string dengan kode yang telah dibuat tadi return $kar.$kd;
}
function tambah() {
if(!$this->session->userdata('level')=='Petugas') { redirect('login');
}else{
if ($this->input->method()=='post') { $this->m_barang->tambah();
$this->session->set_flashdata('info', 'Data berhasil ditambah');
redirect('barang/tambah');
}else{
$data['kodeunik'] = $this->m_barang->getkodeunik();
$this->load->view('petugas/header');
$this->load->view('petugas/tambahBarang',$data);
$this->load->view('petugas/footer');
} } }
48 }
?>
8.10 Melihat Data Barang Untuk Petugas
Melihat data barang untuk petugas digunakan ketika petugas ingin melihat barang apa saja yang tersedia.
8.10.1 Model
Model yang digunakan adalah M_barang.php yang sudah dibuat ketika membuat dashbord Admin. Sehingga ada penambahan script pada model M_barang.php sebagai berikut:
function getBarang(){
$this->db->select('*');
$this->db->from('barang');
$query = $this->db->get();
return $query;
}
8.10.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view petugas yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file dataBarang.php untuk melihat data barang. Buatlah file dataBarang.php pada direktori application/views/petugas/.
<section id="content">
<div class="container">
<div class="section">
<div class="divider"></div>
<div id="table-datatables">
<h4 class="header">Data Barang</h4>
<hr>
<div class="row">
<!-- alert -->
<?php if($this->session->flashdata('info')){?>
<div class="row" id="alert_box">
<div class="col s12 m12">
<div class="card green darken-1">
<div class="row">
<div class="col s12 m10">
<div class="card-content white-text center">
<p><?php echo $this->session->flashdata('info')?></p>
</div>
</div>
<div class="col s12 m2">
<i class="mdi-navigation-close icon_style" id="alert_close" aria-hidden="true"></i>
49
50 8.10.3 Controller
Tambahkan script dibawah ini pada file controller Barang.php : public function barang()
{
if(!$this->session->userdata('level')=='Petugas') { redirect('login');
}else{
$data['dataBarang'] = $this->m_barang->getBarang()->result();
$this->load->view('petugas/header');
$this->load->view('petugas/dataBarang',$data);
$this->load->view('petugas/footer');
} }
8.11 Melihat Data Barang untuk Admin
Melihat data barang untuk petugas digunakan ketika petugas ingin melihat barang apa saja yang tersedia.
8.11.1 Model
Model yang digunakan adalah M_barang.php yang sudah dibuat ketika membuat
51 dashbord Admin. Fungsi yang digunakan adalah getBarang();.
8.11.2 View
Dalam tampilan ini membutuhkan file header.php, footer.php pada folder view admin yang sudah dibuat sebelumnya dan membutuhkan file isi yaitu file dataBarang.php untuk melihat data barang. Buatlah file dataBarang.php pada direktori application/views/admin/.
<section id="content">
<div class="container">
<div class="section">
<div class="divider"></div>
<!--DataTables example-->
<div id="table-datatables">
<h4 class="header">Data Barang</h4>
<hr>
<div class="row">
<!-- alert -->
<?php if($this->session->flashdata('info')){?>
<div class="row" id="alert_box">
<div class="col s12 m12">
<div class="card green darken-1">
<div class="row">
<div class="col s12 m10">
<div class="card-content white-text center">
<p><?php echo $this->session->flashdata('info')?></p>
</div>
</div>
<div class="col s12 m2">
<i class="mdi-content-clear icon_style" id="alert_close" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
<!-- End Alert -->
<div class="col s12 m8 l11">
<a href="<?php echo base_url();?>barang/export" class="btn cyan waves-effect waves-light">Excel <i class="mdi-action-print right"></i></a>
<a class="btn waves-effect waves-light indigo" href="<?=
base_url();?>barang/exportPDF">PDF<i class="mdi-action-print right"></i></a>
<table id="data-table-simple" class="responsive-table display"
<table id="data-table-simple" class="responsive-table display"