72
4.1
Implementasi
4.1.1
Spesifikasi Perancangan
Dalam pembuatan program diperlukan beberapa spesifikasi perangkat
keras (hardware) dan juga perangkat lunak (software) yang dapat mendukung
jalannya pogram. Berikut spesifikasi Hardwar dan Software yang digunakan
selama perancangan :
4.1.2
Hardware
1 buah komputer dengan spesifikasi :
•
prosesor Intel i3
•
Memori 2 GB DDR 3
•
Harddisk 500 GB
4.1.3
Software
•
Sistem Operasi Windows 7.0
•
XAMPP Control Panel dengan Apache Web Server
•
MySQL database
•
Bahasa pemrograman PHP, HTML, dan Javascript
•
CodeIgniter Framework
4.1.4
Layout Program
4.1.4.1
Halaman Login
Halaman Log in merupakan halaman utama untuk menjalankan aplikasi
ini. Namun sebelum user masuk untuk menggunakan menu – menu atau fitur
yang terdapat di dalam sistem informai tersebut, user harus memasukkan
username dam password terlebih dahulu pada kolom yang telah disediakan.
Form Log in dapat dilihat pada gambar 4.1 dan Script utama pada form Log in
dapat dilihat di segmen 4.1.
Gambar 4.1 Halaman Login
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class System_Model extends CI_Model {
public function isLogin($data){
$u = mysql_real_escape_string($data['username']);
$p =
mysql_real_escape_string($data['password']);
$login = $this->db->query("
SELECT
*
FROM
tb_users
WHERE
user_username = '$u'
AND user_password = MD5('$p')"
);
if($login->num_rows()>0){
$login=$login->row_array();
$sess=array(
'username'=>$login['user_username'],
'nama'=>$login['nama'],
'role'=>$login['role'],
'id_user'=>$login['id']
);
$this->session->set_userdata($sess);
header('location:'.base_url().'index.php/dashboard');
}else{
$this->session->set_flashdata('result_login',
'<br>Username atau password salah.');
header('location:'.base_url().'index.php/login');
}
Segmen program login 4.1
4.1.4.2
Halaman Utama
Gambar 4.2 merupakan gambar halama utama yang terdata menu – menu
atau fitur yang penting dalam sistem ini formas ini, diantaranya yaitu : menu
ukuran, aksesoris, sablon, kin, model dan laporan. Namun maing – masing user
mempunyai role yang berbeda seperti yag sudah dijelaskan pada bab
sebelumnya.
Gambar 4.2 Halaman Utama
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class Dashboard extends MY_Admin_Page {
public function index()
{
$this->mydata['data']=$this->admin_model->getNDashboard();
$this->mydata['pesanan']=$this->admin_model->getTabelPesanan();
$this->mydata['content']=$this->load-
>view('admin/application/dashboard/content',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
}
?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class Admin_Model extends CI_Model {
function getNDashboard(){
$res['tot_order']=$this->getNofTotOrder();
$res['ongoing_order']=$this->getNofOngoingOrder();
$res['finish_order']=$this->getNofFinishOrder();
$res['pakaian']=$this->getNofPakaian();
return $res;
}
function getNofTotOrder(){
$res=$this->db->query("SELECT COUNT(No_Order) AS n
FROM tb_pesanan");
$res=$res->row_array();
return $res['n'];
}
function getNofOngoingOrder(){
$res=$this->db->query("SELECT COUNT(No_Order) AS n
FROM tb_pesanan WHERE isSelesai='NO'");
$res=$res->row_array();
return $res['n'];
}
function getNofFinishOrder(){
$res=$this->db->query("SELECT COUNT(No_Order) AS n
FROM tb_pesanan WHERE isSelesai='YES'");
$res=$res->row_array();
return $res['n'];
}
function getNofPakaian(){
$res=$this->db->query("SELECT
sum(jumlah) as n
FROM
tb_pesanan
INNER JOIN tb_jumlah_order_ukuran uk ON
tb_pesanan.No_Order = uk.No_Order
WHERE
isSelesai='NO'");
$res=$res->row_array();
return $res['n'];
}
function getTabelPesanan(){
return $this->db->query("SELECT
tb_pesanan.No_Order,
Nama_Pemesan,
DATE_FORMAT(tgl_transaksi,'%d/%m/%Y') AS
tgl_transaksi,
nama,
SUM(jumlah) AS jumlah
FROM
tb_pesanan LEFT JOIN tb_model ON
tb_pesanan.model_pakaian=tb_model.id
LEFT JOIN tb_jumlah_order_ukuran jmlh ON
tb_pesanan.No_Order=jmlh.No_Order
WHERE
isSelesai = 'NO'
GROUP BY
tb_pesanan.No_Order
ORDER BY No_Order");
}
Segmen program halaman utama 4.2
4.1.4.3
Halaman Ukuran
Berikut ini merupakan halaman ukuran yang digunakan untuk
menentukan banyak nya ukuran atau size dalam proses produksi.
Gambar 4.3 Halaman Ukuran
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class ukuran extends MY_Admin_Page {
public function index()
{
$this->mydata['modal']=$this->load->view('admin/ukuran/input',$this->mydata,true);
$this->mydata['content']=$this->load->view('admin/ukuran/content',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
public function retrieveData(){
$this->load->library('datatable');
$kolom =
array('id','nama','keterangan','options-no-db');
$pk = 'id';
$sql = "
(
SELECT
id,nama,keterangan
FROM
tb_ukuran
)";
$data = $this->datatable->render($kolom, $sql,
$pk, true, true);
$new_data = array();
if(is_array($data->data)) foreach ($data->data
as $row)
{
$new_data[] = array(
$row->id,
$row->nama,
$row->keterangan,
'<div style="width:64px"><button
type="button" class="btn btn-primary btn-circle"
onclick="ubah(\''.$row->id.'\')"><i class="fa
fa-pencil"></i></button>
<button type="button" class="btn btn-danger
btn-circle" onclick="hapus(\''.$row->id.'\')"><i class="fa
fa-times"></i></button></div>'
);
}
$data->data = $new_data;
echo json_encode($data);
}
public function lihat(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfUkuran($id);
echo json_encode($res);
}}
Segmen program halaman ukuran 4.3
4.1.4.4
Halaman Tambah Data Ukuran
User dapat menambahkan data ukuran sesuai dengan permintaan
konsumen atau pelanggan, halaman untuk menambahkan data ukuran seperti
pada gambar 4.4
Gambar 4.4 Halaman Tambah Data Ukuran
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_userUkuranExist($p['nama'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->insert('tb_ukuran',$data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->update('tb_ukuran',$data,array('id'=>$data['id']));
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res); }
public function hapus(){
$id=$this->input->post('id');
$where=array(
'id'=>$id
);
$res1=$this->db->delete('tb_ukuran',$where);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
echo json_encode($res);
}
function getPilihanUkuranModel($model){
$res=$this->db->query("SELECT
DISTINCT(id_ukuran)
FROM
tb_kombinasi_model
WHERE
id_model = '$model'");
return $res->result_array();
Segmen program halaman tambah data ukuran 4.4
4.1.4.5
Halaman Aksesoris
Setelah proses pemilihan kain dan produksi terdapat proses selanjutnya
adalah pemilihan aksesoris, semua data yang berhubungan dengan aksesoris
ditampung dalam halama aksesoris.
Gambar 4.5 Halaman Aksesoris
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class aksesoris extends MY_Admin_Page {
public function index()
{
$this->mydata['modal']=$this->load->view('admin/aksesoris/input',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
public function retrieveData(){
$this->load->library('datatable');
$kolom =
array('id','nama','harga','keterangan','options-no-db');
$pk = 'id';
$sql = "
(
SELECT
id,
nama,
CONCAT('Rp. ',FORMAT(Harga,2)) AS harga,
keterangan
FROM
tb_aksesoris
)";
$data = $this->datatable->render($kolom, $sql,
$pk, true, true);
$new_data = array();
if(is_array($data->data)) foreach ($data->data
as $row)
{
$new_data[] = array(
$row->id,
$row->nama,
$row->harga,
$row->keterangan,
'<div style="width:64px"><button
type="button" class="btn btn-primary btn-circle"
onclick="ubah(\''.$row->id.'\')"><i class="fa
fa-pencil"></i></button>
<button type="button" class="btn btn-danger
btn-circle" onclick="hapus(\''.$row->id.'\')"><i class="fa
fa-times"></i></button></div>'
);
}
$data->data = $new_data;
echo json_encode($data);
}
public function lihat(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfAksesoris($id);
echo json_encode($res);
}
Segmen program halaman akssesoris 4.5
4.1.4.6
Halaman Tambah Aksesoris
Gambar 4.6 Halaman Tambah Aksesoris
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_aksesorisExist($p['nama'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->insert('tb_aksesoris',$data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->update('tb_aksesoris',$data,array('id'=>$data['id']));
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
public function hapus(){
$where=array(
'id'=>$id
);
$res1=$this->db->delete('tb_aksesoris',$where);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
echo json_encode($res);
}
}
Segmen program halaman tambah aksesoris 4.6
4.1.4.7
Halaman Sablon
Berikut ini merupakan halaman untuk data sablon
Gambar 4.7 Halaman Sablon
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class sablon extends MY_Admin_Page {
public function index()
{
$this->mydata['modal']=$this->load->view('admin/sablon/input',$this->mydata,true);
$this->mydata['modal'].=$this->load->view('admin/sablon/detail',$this->mydata,true);
$this->mydata['content']=$this->load->view('admin/sablon/content',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
public function retrieveData(){
$this->load->library('datatable');
$kolom =
array('id','nama','jenis','jumlah_warna','ukuran','harga','
keterangan','options-no-db');
$pk = 'id';
$sql = "
(
SELECT
id,
nama,
jenis,
jumlah_warna,
concat(ukuran_p,' x ',ukuran_l) as
ukuran,
concat('Rp. ',FORMAT(harga,2))harga,
keterangan
FROM
tb_sablon
)";
$data = $this->datatable->render($kolom, $sql,
$pk, true, true);
$new_data = array();
if(is_array($data->data)) foreach ($data->data
as $row)
{
$new_data[] = array(
$row->nama,
$row->jenis,
$row->jumlah_warna,
$row->ukuran,
$row->harga,
'<div style="width:98px">
<button type="button" class="btn
btn-success btn-circle" onclick="lihat(\''.$row->id.'\')"><i
class="fa fa-eye"></i></button>
<button type="button" class="btn
btn-primary btn-circle" onclick="ubah(\''.$row->id.'\')"><i
class="fa fa-pencil"></i></button>
<button type="button" class="btn btn-danger
btn-circle" onclick="hapus(\''.$row->id.'\')"><i class="fa
fa-times"></i></button>
</div>'
);
}
$data->data = $new_data;
echo json_encode($data);
}
public function lihat(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfSablon($id);
echo json_encode($res);
}
4.1.4.8
Halaman Tambah Sablon
Berikut ini merupakan halaman untuk menambah data sablon.
Gambar 4.8 Halaman Tambah Sablon
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_sablonExist($p['nama'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->insert('tb_sablon',$data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->update('tb_sablon',$data,array('id'=>$data['id']));
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
public function hapus(){
$id=$this->input->post('id');
$where=array(
'id'=>$id
);
$res1=$this->db->delete('tb_sablon',$where);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
echo json_encode($res);
}
}
Segmen program halaman tambah sablon 4.8
4.1.4.9
Halaman Kain
Banyak nya jenis kain yang digunakan sangat beragam sesuai dengan
kebutuhan konsumen. Untuk dapat menjadi sebuah produk yang sesuai dengan
keinginan konsumen atau pelanggan harus memperhatikan data kain dengan
teliti dan cermat, berikut merupakan halaman untuk menyimpan informasi
mengenai data kaiin.
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_kainExist($p['nama'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->insert('tb_kain',$data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->update('tb_kain',$data,array('id'=>$data['id']));
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
public function hapus(){
$id=$this->input->post('id');
$where=array(
'id'=>$id
);
$res1=$this->db->delete('tb_kain',$where);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
echo json_encode($res);
}}
Segmen program halaman kain 4.9
4.1.4.10
Halaman Tambah Kain
Berikut merupakan halaman untuk menambah data kain.
Gambar 4.10 Halaman Tambah Kain
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_kainExist($p['nama'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->insert('tb_kain',$data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->db->update('tb_kain',$data,array('id'=>$data['id']));
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
Segmen program halaman tambah kain 4.10
4.1.4.11
Halaman Model
Berikut merupakan halaman untuk menu model
Gambar 4.11 Halaman Model
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class model extends MY_Admin_Page {
public function index()
{
$this->session->unset_userdata('my_photo');
$this->mydata['lo_ukuran']=$this->admin_model->getListOfUkuran();
$this->mydata['modal']=$this->load->view('admin/model/input',$this->mydata,true);
$this->mydata['modal'].=$this->load->view('admin/model/detail',$this->mydata,true);
$this->mydata['content']=$this->load->view('admin/model/content',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
public function retrieveData(){
$this->load->library('datatable');
$kolom =
array('id','nama','jenis','pilihanUkuran','keterangan','
options-no-db');
$pk = 'id';
$sql = "
(
SELECT
model.id,
model.nama,
jenis,
model.keterangan,
GROUP_CONCAT(DISTINCT(ukuran.nama)) as
pilihanUkuran
FROM
tb_model model LEFT JOIN
tb_kombinasi_model kom ON model.id=kom.id_model
LEFT JOIN tb_ukuran ukuran ON
kom.id_ukuran=ukuran.id
GROUP BY
model.id
)";
$data = $this->datatable->render($kolom,
$sql, $pk, true, true);
$new_data = array();
if(is_array>data)) foreach
($data->data as $row)
{
$new_data[] = array(
$row->nama,
$row->jenis,
$row->pilihanUkuran,
$row->keterangan,
'<div style="width:98px">
<button type="button" class="btn
btn-success btn-circle" onclick="lihat(\''.$row->id.'\')"><i
class="fa fa-eye"></i></button>
<button type="button" class="btn
btn-primary btn-circle" onclick="ubah(\''.$row->id.'\')"><i
class="fa fa-pencil"></i></button>
<button type="button" class="btn
btn-danger btn-circle" onclick="hapus(\''.$row->id.'\')"><i
class="fa fa-times"></i></button>
</div>'
);
}
$data->data = $new_data;
echo json_encode($data);
}
Segmen program halaman model 4.11
4.1.4.12
Halaman Tambah Model
Berikut merupakan halaman untuk menambahkan data model yang
digunakan dalam proses produksi.
Gambar 4.12 Halaman Tambah Model
public function simpan(){
$p=$this->input->post();
$p['photo']=$this->session->userdata('my_photo');
if($p['saveas']=='new'){
if(!
$this->admin_model->is_modelExist($p['nama'])){
$data=$p;
unset($data['saveas']);
unset($data['kombinasi']);
if($data['photo']=='-')
unset($data['photo']);
$res1=$this->db->insert('tb_model',$data);
$modelId=$this->db->insert_id();
$res2=$this->admin_model->setDetailModel($modelId,$p['kombinasi']);
if($res1 && $res2){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
unset($data['kombinasi']);
$res1=$this->db->update('tb_model',$data,array('id'=>$data['id']));
$res2=$this->admin_model->setDetailModel($data['id'],$p['kombinasi']);
if($res1 && $res2){
$res['isOk']=true;
$res['msg']='';
}else{
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
public function hapus(){
$id=$this->input->post('id');
$where=array(
'id'=>$id
);
$res1=$this->db->delete('tb_model',$where);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
echo json_encode($res);
}
public function doUploadPhotoModel(){
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = $this->config->item('file_loc');
$filename = $_FILES['file']['name'];
$ext=end(explode('.',$filename));
$filename=substr($filename,0,strlen($filename)-(strlen($ext)+1));
$filename=str_replace(' ','_',$filename);
$filename =
$filename.$this->input->get('id')."_".md5($this->admin_model->getToday());
$targetFile = $targetPath.$filename.'.'.$ext;
//echo $targetFile;
$sess_file['oploaded']=$filename.'.'.$ext;
move_uploaded_file($tempFile, $targetFile);
$files=json_decode($this->session->userdata('my_photo'),true);
$berkas=array(
'NamaFileOri'=>strip_quotes($_FILES['file']['name']),
'ftp_path'=>base_url().'assets/contents/images/'.$sess_file
['oploaded'],
);
$this->session->set_userdata('my_photo',$berkas['ftp_path']);
echo 'succes';
}
}
Segmen program halaman tambah model 4.12
4.1.4.13
Halaman Transaksi Pemesanan
Setelah semua data kain terkumpul, maka di halaman transaksi
pemesann ini lah semua data akan diperhitungkan. Data kain, model dan
kombinasi ,ukuran serta aksesori akan diolah dalam transaksi pemesanan. User
harus memasukkan semua data ke dalam halaman transaksi sesuai dengan data
yang ada pada saat user memasukkan data pada fitur – fitur tersebut. Dari proses
ini akan terlihat kebutuhan dan biaya produksi yang digunakan dalam setiap
transaksi pemesananm serta muncul hasil untuk penjualan per item dalam setiap
proses produksi yang dilakukan.
Gambar 4.13 Halaman Transaksi Pemesanan
function getDetailOfPesanan($id){
$res=$this->db->query("SELECT
No_Order,
Nama_Pemesan,
Alamat,
Telp,
model_pakaian,
uang_muka,
biaya_produksi,
ongkos_kerja_persen,
ongkos_kerja,
ongkos_jahit,
total_harga,
isSelesai,
tb_model.nama AS namaModel
FROM
tb_pesanan LEFT JOIN tb_model ON
tb_pesanan.model_pakaian=tb_model.id
WHERE
No_Order = '$id'");
$has['order']=$res->row_array();
$res=$this->db->query("SELECT
No_Order,
id_ukuran,
jumlah,
uk.nama,
uk.keterangan
FROM
tb_jumlah_order_ukuran ord LEFT JOIN tb_ukuran
uk ON ord.id_ukuran=uk.id
WHERE
No_Order = '$id'");
$has['size']=$res->result_array();
$res=$this->db->query("SELECT
kombinasi,
bagian,
kain,
ordKom.warna,
kain.nama
FROM
tb_kombinasi_order ordKom LEFT JOIN tb_kain kain
ON ordKom.kain=kain.id
WHERE
No_Order = '$id'");
$has['kombinasi']=$res->result_array();
$res=$this->db->query("SELECT
id_aksesoris,
jumlah,
nama
FROM
tb_aksesoris_order LEFT JOIN tb_aksesoris ON
tb_aksesoris_order.id_aksesoris=tb_aksesoris.id
WHERE
No_Order = '$id'");
$has['det_aksesoris']=$res->result_array();
$res=$this->db->query("SELECT
id_sablon,
jumlah,
nama,
jenis
FROM
tb_sablon_order o LEFT JOIN tb_sablon s ON
o.id_sablon=s.id
WHERE
No_Order = '$id'");
$has['det_sablon']=$res->result_array();
$res=$this->db->query("SELECT
IFNULL(tb_model.photo,'') as photo
FROM
tb_pesanan.model_pakaian=tb_model.id
WHERE
No_Order = '$id'");
$res=$res->row_array();
$has['photo']=$res['photo'];
return $has;}
function getDetailOfPesananSelesai($id){
$res=$this->db->query("SELECT No_Order as
id,isSelesai,DATE_FORMAT(tgl_selesai,'%Y/%m/%d') AS
tgl_selesai,total_harga-uang_muka AS sisa_bayar FROM
tb_pesanan WHERE No_Order='$id'");
return $res->row_array();}
Segmen program halaman transaksi pemesanan 4.13
4.1.4.14
Halaman Tambah Transaksi Pemesanan
Berikut ini merupakan halaman untuk menambah data transaksi
pemesanan.
Gambar 4.14 Halaman Tambah Transaksi Pemesanan (1)
Gambar 4.16 Halaman Tambah Transaksi Pemesanan (3)
<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class orders extends MY_Admin_Page {
public function index()
{
$this->mydata['p_model']=$this->admin_model->getListOfModel();
$this->mydata['modal']=$this->load->view('admin/orders/input',$this->mydata,true);
$this->mydata['modal'].=$this->load->view('admin/orders/detail',$this->mydata,true);
$this->mydata['modal'].=$this->load->view('admin/orders/input_selesai',$this->mydata,true);
$this->mydata['content']=$this->load->view('admin/orders/content',$this->mydata,true);
$this->load->view('main_admin',$this->mydata);
}
$data = $this->datatable->render($kolom, $sql,
$pk, true, true);
$new_data = array();
if(is_array($data->data)) foreach ($data->data
as $row)
{
$new_data[] = array(
$row->No_Order,
$row->Nama_Pemesan,
$row->tanggal,
$row->jumlah,
$row->isSelesai,
'<div style="width:133px">
<button type="button" class="btn
btn-success btn-circle"
onclick="lihat(\''.$row->No_Order.'\')"><i class="fa fa-eye"></i></button>
<button type="button" class="btn
btn-warning btn-circle"
onclick="ubahSelesai(\''.$row->No_Order.'\')"><i class="fa
fa-check-square-o"></i></button>
<button type="button" class="btn
btn-primary btn-circle"
onclick="ubah(\''.$row->No_Order.'\')"><i class="fa fa-pencil"></i></button>
<button type="button" class="btn btn-danger
btn-circle" onclick="hapus(\''.$row->No_Order.'\')"><i
class="fa fa-times"></i></button>
</div>'
);
}
$data->data = $new_data;
echo json_encode($data);
}
public function lihat(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfPesanan($id);
echo json_encode($res);
}
public function lihatDetail(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfPesanan($id);
$data=$this->admin_model->getDataHitung($id);
$resHitung=$this->doHitung($data);
$res=array_merge($res,$resHitung);
$this->load->view('admin/orders/detail_content',$res);
}
public function lihat_model(){
$id=$this->input->post('id');
$res=$this->admin_model->getDetailOfModel($id);
echo json_encode($res);
}
public function lihat_ukuran_model(){
$id=$this->input->post('id');
$d['res']=$this->admin_model->getListOfUkuranModel($id);
$this->load->view('admin/orders/input_ukuran',$d);
}
public function lihat_kombinasi_model(){
$id=$this->input->post('id');
$d['res']=$this->admin_model->getListOfKombinasiModel($id);
$d['kain']=$this->admin_model->getListOfKain();
$this->load->view('admin/orders/input_kombinasi',$d);
}
public function lihat_aksesoris_model(){
$d['res']=$this->admin_model->getListOfAksesoris();
$this->load->view('admin/orders/input_aksesoris',$d);
}
public function lihat_sablon_model(){
$d['res']=$this->admin_model->getListOfSablon();
$this->load->view('admin/orders/input_sablon',$d);
}
public function hitung(){
$hasil=$this->doHitung($p);
$this->load->view('admin/orders/invoice',$hasil);
}
public function doHitung($p){
$hasil=array();
//Kain
if(isset($p[7]['opt_kombinasi'])){
//Cari jenis kain yang digunakan
$kain=array();
foreach($p[7]['opt_kombinasi'] as $k){
if(!in_array(array('kain'=>$k['kain'],'luas'=>0),$kain))
array_push($kain,array('kain'=>$k['kain'],'luas'=>0));
}
//Hitung luas kain untuk masing-masing jenis
$sizeOfKain=$kain;
foreach($kain as $i=>$k){
foreach($p[6]['opt_ukuran'] as $s=>$n){
foreach($p[7]['opt_kombinasi'] as
$kombinasi){
if($kombinasi['kain']==$k['kain']){
$u=key($n);
$param=$kombinasi;
$param['id_model']=$p[5]['model_pakaian'];
$param['id_ukuran']=$u;
$L=$this->admin_model->getLuasKombinasi($param);
$sizeOfKain[$i]['luas']+=($n[$u]*$L);
}
}
}
}
Segmen program halaman tambah transaksi pemesanan 4.14
4.1.4.15
Halaman Laporan
Di dalam halama terdapat dua jenis laporan yaitu laporan transaksi
pemesanan dan laporan bahan baku. Laporan transaksi untuk menyimpan semua
transaksi pemesanan yang telah dilakukan. Sedangkan untuk laporan bahan baku
yaitu untuk mngetahui seberapa banyak bahan baku yang telah digunakan dalam
proses produksi tersebut.
Gambar 4.17 Halaman Laporan Pemesanan
Gambar 4.18 Halaman Laporan Bahan Baku
function getReportPesanan($p){
if($p['isSelesai']=='ALL') $where=''; else
if($p['isSelesai']=='YES') $where="AND
isSelesai='YES'"; else $where="AND isSelesai='NO'";
echo "SELECT
tb_pesanan.No_Order,
Nama_Pemesan,
DATE_FORMAT(tgl_transaksi,'%d/%m/%Y') AS
tgl_transaksi,
nama,
SUM(jumlah) AS jumlah,
CONCAT('Rp. ',FORMAT(total_harga,2)) AS
total_harga,
IF(isSelesai='YES','Selesai','Belum') AS
statusPesanan
FROM
tb_pesanan LEFT JOIN tb_model ON
tb_pesanan.model_pakaian=tb_model.id
LEFT JOIN tb_jumlah_order_ukuran jmlh ON
tb_pesanan.No_Order=jmlh.No_Order
tgl_transaksi>='".$p['from_date']." 00:00:00'
AND tgl_transaksi<='".$p['to_date']." 23:59:00'
$where
GROUP BY
tb_pesanan.No_Order";
return $this->db->query("SELECT
tb_pesanan.No_Order,
Nama_Pemesan,
DATE_FORMAT(tgl_transaksi,'%d/%m/%Y') AS
tgl_transaksi,
nama,
SUM(jumlah) AS jumlah,
CONCAT('Rp. ',FORMAT(total_harga,2)) AS
total_harga,
IF(isSelesai='YES','Selesai','Belum') AS
statusPesanan
FROM
tb_pesanan LEFT JOIN tb_model ON
tb_pesanan.model_pakaian=tb_model.id
LEFT JOIN tb_jumlah_order_ukuran jmlh ON
tb_pesanan.No_Order=jmlh.No_Order
WHERE
tgl_transaksi>='".$p['from_date']." 00:00:00'
AND tgl_transaksi<='".$p['to_date']." 23:59:00'
$where
GROUP BY
tb_pesanan.No_Order");
}
Segmen program halaman laporan 4.15
4.1.4.16
Halaman Users
User merupakan pengguna dari sistem informasi ini, terrdapat tiga user
yang menggunakan sistem informasi dengan role yang berbeda. User tersebut
diantaranya adalah pegawai, owner dan admin.
Gambar 4.19 Halaman User
function insertUser($data){
return $this->db->query("INSERT INTO `tb_users` (
`nama`,
`Alamat`,
`telp`,
`email`,
`user_username`,
`user_password`,
`role`
)
function updateUser($data){
if($data['user_password']=='unchanged') $pwd='';
else $pwd=",`user_password` =
md5('".$data['user_password']."')";
if(isset($data['role'])) $role=",`role` =
'".$data['role']."'"; else $role='';
return $this->db->query("UPDATE `tb_users`
SET
`nama` = '".$data['nama']."',
`alamat` = '".$data['Alamat']."',
`telp` = '".$data['telp']."',
`email` = '".$data['email']."',
`user_username` = '".$data['user_username']."'
$role
$pwd
WHERE
(`id` = '".$data['id']."');");
}
function getDetailOfUserByUsername($username){
$res = $this->db->query("SELECT
*
FROM
tb_users users
WHERE
user_username = '$username'");
$data=$res->row_array();
if(empty($data['photo']))
$data['photo']=$this->config->item('no_picture');
return $data;
}
Segmen program halaman user 4.16
4.1.4.17
Halaman Tambah User
Berikut ini merupakan halaman untuk menabah data user.
Gambar 4.20 Halaman Tambah User
public function simpan(){
$p=$this->input->post();
if($p['saveas']=='new'){
if(!
$this->admin_model->is_userAdminExist($p['user_username'])){
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->admin_model->insertUser($data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}else{
$res['isOk']=false;
$res['msg']='Data yang sama sudah tersimpan
pada sistem.';
}
}else{
$data=$p;
unset($data['saveas']);
//Users
$res1=$this->admin_model->updateUser($data);
if($res1){
$res['isOk']=true;
$res['msg']='';
}else{
$res['isOk']=false;
$res['msg']='Gagal menyimpan.';
}
}
echo json_encode($res);
}
Segmen program halaman tambah user 4.17
4.2
Pembahasan
Setelah melalui tahapan implementasi, maka dilanjutkan pada tahapan
berikutnya yaitu tahapan pembahasan atau dalam penelitian ini adalah tahapan
pengujian. Seperti pada gambar 4.2.1 merupakan contoh salah satu produk yang
digunakan.
User
Gambar 4.21 Contoh form pemesanan
Langkah – langkah yang digunakan untuk menghitung proses pemesanan dengan
gambar diatasa adalah :
a.
Masukkan username dan password terlebih dahulu ke sistem informasasi
manajemen data barang.
Gambar 4.22 Fitur atau menu di dalam sistem informasi
dan kemudian akan tampil halaman berikut, setelah itu pilih tombol tambah
di dalam halaman transaksi pemesanan.
Gambar 4.23 Menu Transaksi Pemesanan
c.
Masukkan identitas pemesan (nama , alamat , no.telp dan model yang
dipesan)
Gambar 4.24 Halaman identitas pemesan
d.
Masukkan jumlah perukuran kaos yang dipesan, sablon yang digunakan
sesuai dengan yang tertera di form pemesanan pada gambar 4.2.1.
e.
Setelah semua kebutuhan terisi, maka akan muncul halaman invoice atau
pembayaran yang harus dilunasi oleh pelanggan dengan rincian
kebutuhan yang terdapat di dalamnya.
Gambar 4.25 Invoice Pembayaran