• Tidak ada hasil yang ditemukan

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"

cellspacing="0">

<thead>

<tr>

<th>ID Barang</th>

52 <th>Foto</th>

<th>Nama Barang</th>

<th>Harga</th>

<th>Stok</th>

<th>Aksi</th>

</tr>

</thead>

<tbody>

<?php

foreach ($dataBarang as $barang) { ?>

<tr>

<td><?= $barang->idBarang ?></td>

<td><img src="<?php echo base_url('assets/gambar/'.$barang->foto); ?>"

width="100" height="100"> </td>

<td><?= $barang->namaBarang ?></td>

<td>Rp <?= number_format( $barang->harga ,0,',','.')?></td>

<td><?= $barang->stok ?></td>

<td>

<a href="<?php echo base_url(); ?>barang/ubah/<?= $barang->idBarang

?>" rel="tooltip" title="Ubah" style="color:purple"><i class="mdi-editor-border-color"></i></a> &nbsp;

</td>

</tr>

<?php } ?>

</tbody>

</table>

</div>

</div>

</div>

<br>

</div>

</div>

</section>

Hasil Tampilan

53 8.11.3 Controller

Tambahkan script dibawah ini pada file controller Barang.php : function dataBarang()

{

if(!$this->session->userdata('level')=='Admin') { redirect('login');

}else{

$data['admin'] = $this->m_user->selectAdmin()->row();

$data['dataBarang'] = $this->m_barang->getBarang()->result();

$this->load->view('admin/header',$data);

$this->load->view('admin/dataBarang');

$this->load->view('admin/footer');

} }

8.12 Mengubah Data Barang Untuk Petugas

Mengubah data barang untuk petugas digunakan ketika petugas melakukan pengubahan data pada barang

8.12.1 Model

Model yang digunakan adalah M_barang.php yang sudah dibuat. Sehingga ada penambahan script pada model M_barang.php sebagai berikut:

function ubahBarang($idBarang) {

$nama = $this->input->post('namaBarang');

$harga = $this->input->post('harga');

$stok = $this->input->post('stok');

54

$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);

$foto = $this->m_barang->selectBarang($idBarang)->row();

if($_FILES['foto']['name']) {

unlink("./assets/gambar/".$foto->foto);

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);

$input = array(

'namaBarang' =>$nama, 'harga' =>$harga, 'stok' =>$stok,

'foto' =>$gbr['file_name']

);

} }else{

rename("./assets/gambar/".$foto->foto,"./assets/gambar/".$config['file_name'].'.jpg');

$input = array(

'namaBarang' =>$nama, 'harga' =>$harga, 'stok' =>$stok,

'foto' =>$config['file_name'].'.jpg' );

}

$this->db->set($input);

$this->db->where('idBarang', $idBarang);

$this->db->update('barang');

} Penjelasan

- unlink("./assets/gambar/".$foto->foto); untuk menghapus file yang berada di folder gambar

- rename("./assets/gambar/".$foto->foto,"./assets/gambar/".$config['file_name'].'.jpg');

untuk mengubah nama foto.

55 8.12.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 ubahBarang.php untuk mengubah data barang. Buatlah file ubahBarang.php pada direktori application/views/petugas/

<section>

<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 Barang</h4>

<div class="row">

<form class="col s12" method="post" enctype="multipart/form-data"

action="<?php echo base_url();?>barang/ubahBarang/<?= $dataBarang->idBarang; ?>">

<div class="row">

<div class="input-field col s1">

<input id="id" type="text" name="id" value="<?= $dataBarang->idBarang;

?>" readonly>

<label class="active" for="id">ID</label>

</div>

</div>

<div class="row">

<div class="input-field col s12">

<input id="namaBarang" type="text" name="namaBarang" value="<?=

$dataBarang->namaBarang; ?>">

<label class="active" for="namaBarang">Nama Barang</label>

56 </div>

</div>

<div class="row">

<div class="input-field col s8">

<input id="harga" type="text" name="harga" value="<?=

$dataBarang->harga; ?>">

<label class="active" for="harga">Harga</label>

</div>

</div>

<div class="row">

<div class="input-field col s1">

<input id="stok" type="text" name="stok" value="<?= $dataBarang->stok;

?>">

<label class="active" for="stok">Stok</label>

</div>

</div>

<div class="row">

<label>Foto</label>

<div class="fileupload">

<input type="file" onchange="document.getElementById('image-preview').src=window.URL.createObjectURL(this.files[0])"

accept="image/jpeg,image/png,image/JPG" type="file" title="Click untuk Foto"

name="foto" value="<?php echo set_value('foto')?>"/>

<br>

<br>

<img height="200px" width="200" src='<?php echo base_url();

?>assets/gambar/<?=$dataBarang->foto; ?>' id='image-preview' alt='your pamflet' class='img-responsive'>

</div>

<div class="row">

<div class="input-field col s12">

<button class="btn cyan 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>

Penejelasan Hasil

57 8.12.3 Controller

Tambahkan script dibawah ini pada file controller Barang.php : public function ubahBarang($idBarang){

if(!$this->session->userdata('level')=='Admin') { redirect('login');

}else{

if ($this->input->method()=='post') {

$this->m_barang->ubahBarang($idBarang);

$this->session->set_flashdata('info', 'Data berhasil diubah');

redirect('barang/barang');

}else{

$data['dataBarang'] = $this->m_barang->selectBarang($idBarang)->row();

$this->load->view('petugas/header');

$this->load->view('petugas/ubahBarang', $data);

$this->load->view('petugas/footer');

} } }

8.13 Mengubah Data Barang Untuk Admin

Mengubah data barang untuk petugas digunakan ketika petugas melakukan pengubahan

58 data pada barang.

8.13.1 Model

Model yang digunakan adalah M_barang.php yang sudah dibuat. Sehingga ada penambahan script pada model M_barang.php sebagai berikut:

function ubah($idBarang){

$nama = $this->input->post('namaBarang');

$harga = $this->input->post('harga');

$data = array(

'namaBarang' =>$nama, 'harga' =>$harga );

$this->db->set($data);

$this->db->where('idBarang', $idBarang);

$this->db->update('barang');

}

8.13.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 ubahBarang.php untuk mengubah data barang. Buatlah file ubahBarang.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">Ubah Barang</h4>

<hr>

<div class="row">

<div class="col s12 m12 l12">

<div class="col s12 m12 l12">

Dokumen terkait