bab iv hasil dan pembahasan 4.1. perancangan sistemrepository.unika.ac.id/20052/5/14.n1.0015 thomas...

35
11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah hasil dan pembahasan dari tahap awal merancang hingga pembuatan sistem. A. Metode waterfall Gambar 4.1. Metode Pengembangan Sistem Invetory Barang Dimulai dari menganalisakan kebutuhan sistem dengan metode pengumpulan data yang dibutuhkan. Setelah itu dibentuklah usecase diagram, diagram ER, alur barang, dan tabel database sistem seperti yang akan dijelaskan poin berikutnya. Penulisan beberapa kode program juga akan dilampirkan pada poin berikutnya. Pengujian sistem dilakukan untuk mengetahui apakah masih ada kesalahan. Setelah semua tahap selesai barulah penerapan sistem. B. Hasil analisa kebutuhan sistem Dari hasil wawancara awal kepada 5 responden (1 pemilik, 2 karyawan gudang, dan 2 karyawan penjualan) didapatkan data adanya kebutuhan: sistem informasi

Upload: others

Post on 27-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

11

BAB IV

HASIL DAN PEMBAHASAN

4.1. Perancangan sistem

Berikut adalah hasil dan pembahasan dari tahap awal merancang hingga

pembuatan sistem.

A. Metode waterfall

Gambar 4.1. Metode Pengembangan Sistem Invetory Barang

Dimulai dari menganalisakan kebutuhan sistem dengan metode pengumpulan

data yang dibutuhkan. Setelah itu dibentuklah usecase diagram, diagram ER, alur

barang, dan tabel database sistem seperti yang akan dijelaskan poin berikutnya.

Penulisan beberapa kode program juga akan dilampirkan pada poin berikutnya.

Pengujian sistem dilakukan untuk mengetahui apakah masih ada kesalahan. Setelah

semua tahap selesai barulah penerapan sistem.

B. Hasil analisa kebutuhan sistem

Dari hasil wawancara awal kepada 5 responden (1 pemilik, 2 karyawan

gudang, dan 2 karyawan penjualan) didapatkan data adanya kebutuhan: sistem

informasi

Page 2: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

12

barang, informasidata pembelian, mempersingkat penjualan barang,

otomatisasi penjualan, pemasukan data penjualan secara cepat dan ringkas, informasi

laporan penjualan, informasi stok barang baru, ketersedian data penjualan secara

cepat dan jelas, dan informasi mengenai gudang dan penjualan. Diharapkan juga di

dalam sistem databasenya mengadopsi jenis barang, merk, jumlah, warna, no imei,

harga beli, harga jual, nomor nota, nama distributor, dan tanggal pembelian.

C. Usecase diagram

Berikut adalah Usecase Diagram dari karyawan pada aplikasi sistem informasi

inventory.

Page 3: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

13

Gambar 4.2 UseCase Diagram Sistem

Rancangan UseCase Diagram diatas menjelaskan bahwa karyawan gudang

dapat mengakses input data barang masuk, melihat data barang, mengubah data

barang, mencetak qrcode menginput dan menghapus data pelanggan.

D. Context Diagram Sistem Informasi Inventory

Berikut adalah gambar Context Diagram Sistem Informasi Inventory

Gambar 4.3. Context Diagram Sistem Informasi

Rancangan Context Diagram Sistem Informasi Inventory di atas menjelaskan

bahwa, Vendor memberi data barang, harga barang, dan jumlah barang. Pemilik dapat

menerima laporan barang masuk, laporan penjualan, selain itu pemilik juga dapat

menginput data barang, edit barang, cetak Qrcode. Pelanggan memilih barang,

pembayaran dan menerima bukti transaksi.

E. Alur barang masuk

Gambar 4.4. menunjukan alur barang baru masuk kegudang.

Page 4: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

14

Gambar 4.4. Alur barang baru masuk

Gambar diatas menunjukkan proses masuknya barang baru hingga cetak

qrcode yang akan ditempelkan pada barang baru masuk. Qrcode itulah yang nantinya

akan digunakan pada proses penjualan barang.

F. Alur penjualan

Gambar 4.5. menunjukan alur penjualan ke pelanggan.

Page 5: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

15

Gambar 4.5. Alur penjualan barang

Gambar diatas menunjukan alur penjualan kepada pelanggan yang berawal

dari input data diri lengkap pelanggan. Tanda bukti pembelian barang akan dikirim

melalui email pelanggan dan diberikan bentuk fisik transaksi kepada pelanggan.

4.2. Pembuatan Aplikasi

Pembuatan aplikasi dibagi menjadi 3, yaitu desain database, script sistem,

yang terakhir menu pada aplikasi web.

4.3.1 Desain Database

Gambar 4.6. adalah tabel yang digunakan dalam pembuatan sistem informasi

inventory barang menggunakan qrcode.

Gambar 4.6. Table Database

Database digunakan dalam pembuatan sistem informasi inventory

menggunakan qrcode. Nama database “invent_hp” yang terdiri dari 10 table. Tabel

vendor untuk menyimpan data dari vendor handphone. Tabel leasing digunakan

untuk menambahkan leasing. Tabel jenis hp digunakan untuk menyimpan jenis

handphone seperti S7 edge, iPhone 5, Vibe Shot, dan sejenisnya. Tabel merk

digunakan untuk menyimpan merk dari handphone seperti Samsung, Lenovo, iPhone,

dan lain-lain. Tabel pembelian digunakan untuk menampung pembelian barang.

Page 6: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

16

Tabel stok hp digunakan untuk menampung berbagai merk dan jenis barang. Tabel

penjualan adalah tabel untuk mencatat data penjualan barang. Tabel pelanggan

digunakan untuk menampung data diri pelanggan. Tabel v stok hp adalah tabel

sementara untuk menampung stok barang. Tabel penjualan detail digunakan untuk

menampung data penjualan secara rinci. Penjualan temp digunakan untuk

menampung data sementara penjualan yang akan nantinya akan berpindah ke tabel

penjualan detail.

Gambar 4.7. Struktur Database dalam Pembuatan sistem

4.3.2 Script pembuatan sistem

Script untuk pembuatan sistem informasi inventory barang menggunakan

qrcode ini tidak sebanyak aplikasi lainnya. Aplikasi berbasis Web menggunakan

framework Code Igniter. Aplikasi Web digunakan oleh karyawan bagian penyediaan

barang gudang.

Script Kelola.php yang terletak pada Controllers Code Igniter. Semua

pemrosesan sistem berpusat pada script Kelola.php ini. Semua querry yang digunakan

juga berpusat pada Kelola.php.

Page 7: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

17

Masih didalam Kelola.php fungsi merk, digunakan untuk memproses

menampilkan barang baru.

Gambar 4.8. Halaman Tampilan merk

Gambar 4.8. menampilkan isi dari merk barang yang ada di database. Menu

merk ini juga bisa menambah, menghapus, dan mengedit sesuai dengan keinginan

pengguna (karyawan).

public function merk()

{

$crud = new grocery_CRUD();

$crud->set_table('merk');

$crud->set_subject('Merk');

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.1 Fungsi merk

Fungsi script merk digunakan untuk menambah, menghapus, dan mengedit.

Page 8: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

18

Gambar 4.9. Halaman Tampilan Jenis

Gambar 4.9. adalah tampilan menu jenis handphone. Menu ini juga bisa

menambah, menghapus, dan mengedit sesuai dengan keinginan pengguna (karyawan)

public function jenis_hp()

{

$crud = new grocery_CRUD();

$crud->set_table('jenis_hp');

$crud->set_subject('Jenis');

$crud->set_relation('id_merk','merk','merk');

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.2 Fungsi jenis_hp

Fungsi script jenis_hp digunakan untuk menambah, menghapus, dan mengedit

dari jenis-jenis handphone.

Page 9: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

19

Gambar 4.10. Halaman Tampilan Stok

Gambar 4.10. ini adalah tampilan dari stok barang yang diambil dari databse.

Menu stok memberikan informasi-informasi yang dibutuhkan pengguna (karyawan)

untuk mengecek barang yang berada digudang.

public function stok_hp()

{

$crud = new grocery_CRUD();

$crud->set_table('stok_hp');

$crud->set_subject('Stok');

$crud->set_relation('id_jenis','jenis_hp','jenis');

$crud->set_relation('id_pembelian','pembelian','nomor_nota');

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.3 Fungsi stok_hp

Fungsi script stok_hp digunakan untuk menampilkan dan menghapus stok

barang (handphone).

Page 10: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

20

Gambar 4.11. Halaman Tampilan Pelanggan

Gambar 4.11. adalah pengisian data diri dan email pelanggan. Bertujuan

untuk memenuhi syarat jalannya proses aplikasi.

public function pelanggan()

{

$crud = new grocery_CRUD();

$crud->set_table('pelanggan');

$crud->set_subject('Pelanggan');

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.4 Fungsi pelanggan

Fungsi script pelanggan untuk menambah, menghapus, mengedit data diri

pelanggan.

Page 11: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

21

Gambar 4.12. Halaman Pembelian Barang

Gambar 4.12. adalah pengisian dan membuat qrcode barang. Pengisian barang

akan langsung masuk kedalam database. Pembuatan qrcode akan masuk ke menu

tampil stok yang nantinya akan dicetak sebagai pemindai barang keluar.

public function simpan_pembelian()

{

$this->load->library('ciqrcode');

$nomor_nota=$_POST["nomor_nota"];

$tanggal_pembelian=$_POST["tanggal_pembelian"];

$id_vendor=$_POST["id_vendor"];

$this->db->trans_start();

$data = array(

'nomor_nota'=>$nomor_nota,

'tanggal_pembelian'=>$tanggal_pembelian,

'id_vendor'=>$id_vendor,

);

$this->db->insert('pembelian', $data);

$id_pembelian=$this->db->insert_id();

$jsond = json_decode($_POST["txt_vue_data"]);

foreach($jsond as $o)

Page 12: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

22

{

$id_stok=round(microtime(true) * 1000);

$data = array(

'id_stok'=>$id_stok,

'id_pembelian'=>$id_pembelian,

'nomor_seri'=>$o->nomor_seri,

'id_jenis'=>$o->id_jenis,

'status_stok'=>"Baru",

'keterangan'=>$o->keterangan,

'harga_beli'=>$o->harga_beli,

'harga_jual'=>$o->harga_jual,

);

$this->db->insert('stok_hp', $data);

$params['data'] = $id_stok;

$params['level'] = 'H';

$params['size'] = 10;

$params['savename'] = FCPATH."assets/qrcode/".$id_stok.".png";

$this->ciqrcode->generate($params);

}

$db_error = $this->db->error();

$this->db->trans_complete();

if(!empty($db_error["message"])) {

$this->session->set_flashdata('flsh_msg', 'Simpan Pembelian Gagal, cek nomor seri...');

$this->session->set_flashdata('flsh_msg_class', 'alert-danger');

}

else {

$this->session->set_flashdata('flsh_msg', 'Simpan Pembelian sukses...');

$this->session->set_flashdata('flsh_msg_class', 'alert-success');

}

redirect("kelola/pembelian","refresh");

}

Page 13: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

23

Script PHP 4.5 Fungsi simpan_pembelian

Fungsi script pembelian digunakan untuk memasukkan barang baru kedalam

database server sekaligun fungsi untuk pembuatan qrcode pada tabel No Seri di web.

Sehingga nantinya akan dilekatkan pada barang masuk. Terdapat juga fungsi untuk

total harga beli dari vendor. Fungsi script bisa menambahkan barang satuan maupun

beberapa barang. Adapun fungsi nomor nota dan tanggal pembelian secara auto.

Gambar 4.13. Halaman Penjualan

Gambar 4.13. adalah tampilan untuk penjualan ke pelanggan. Menu ini pada

no note dan tanggal penjualan akan berubah auto sesuai tanggal, hari, dan tahun.

Pelanggan juga akan diberi pilihan tipe penjualan seperti pembayaran secara tunai

atau kredit. Dan jika pelanggan akan memilih kredit maka akan diberi pilihan lagi

untuk DP dan leasing yang nantinya untuk pembayaran jatuh tempo.

public function simpan_penjualan()

{

$nomor_nota=$_POST["nomor_nota"];

$tanggal_penjualan=$_POST["tanggal_penjualan"];

$nomor_id=$_POST["nomor_id"];

$tipe_penjualan=$_POST["tipe_penjualan"];

Page 14: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

24

$this->db->trans_start();

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

$this->db->delete('penjualan_temp');

if($tipe_penjualan=="Tunai")

{

$data = array(

'nomor_nota'=>$nomor_nota,

'tanggal_penjualan'=>$tanggal_penjualan,

'nomor_id'=>$nomor_id,

'tipe_penjualan'=>$tipe_penjualan,

);

}

else

{

$id_leasing=$_POST["id_leasing"];

$dp=$_POST["dp"];

$dp=str_replace(".","",$dp);

$dp=str_replace(",","",$dp);

$data = array(

'nomor_nota'=>$nomor_nota,

'tanggal_penjualan'=>$tanggal_penjualan,

'nomor_id'=>$nomor_id,

'tipe_penjualan'=>$tipe_penjualan,

'id_leasing'=>$id_leasing,

'dp'=>$dp,

);

}

$this->db->insert('penjualan', $data);

$id_penjualan=$this->db->insert_id();

Page 15: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

25

$jsond = json_decode($_POST["txt_vue_data"]);

$nota="<table>";

$nota="<tr><th>NO</th><th>ITEM</th><th>HARGA</th></tr>";

$no=0;

$total=0;

foreach($jsond as $o)

{

$no++;

$query=$this->db->query("select j.id_jenis,concat(m.merk,' ',j.jenis) as jenis,s.id_stok from jenis_hp j,merk m,stok_hp s where j.id_merk=m.id_merk and s.id_jenis=j.id_jenis and id_stok='".$o->id_stok."'")->result();

$nota.="<tr><td>$no</td><td>".$query[0]->jenis."</td><td>Rp. ".number_format($o->harga,0,",",".")."</td></tr>";

$total+=$o->harga;

$data = array(

'id_penjualan'=>$id_penjualan,

'id_stok'=>$o->id_stok,

'harga'=>$o->harga,

);

$this->db->insert('penjualan_detail', $data);

$data = array(

'status_stok'=>'Terjual',

);

$this->db->where('id_stok', $o->id_stok);

$this->db->update('stok_hp', $data);

}

$nota.="<tr><th

colspan='2'>TOTAL</th><th>Rp. ".number_format($total,0,",",".")."</th></tr>";

$nota.="</table>";

if($tipe_penjualan=="Tunai")

Page 16: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

26

{

$info_tipe_pembelian="Pembelian: Tunai";

}

else

{

$query=$this->db->query("select p.*,l.nama as nama_leasing from penjualan p,leasing l where p.id_leasing=l.id_leasing and id_penjualan=$id_penjualan")->result();

$info_tipe_pembelian="Pembelian: Kredit, Leasing: ".$query[0]->nama_leasing.", DP: ".number_format($query[0]->dp,0,",",".");

}

$query=$this->db->query("select nama, email from pelanggan where nomor_id='$nomor_id'")->result();

$config['protocol']='smtp';

$config['smtp_host']='ssl://smtp.gmail.com';

$config['smtp_port']='465';

$config['smtp_timeout']='7';

$config['smtp_user']='[email protected]';

$config['smtp_pass']='katasandi123';

$config['charset']='utf-8';

$config['newline']="\r\n";

$config['mailtype']='html';

$this->email->initialize($config);

$this->email->from('[email protected]', 'Guffy Cell');

$this->email->to($query[0]->email);

$this->email->subject("Nota Pembelian $nomor_nota");

$this->email->message('<p>Yth

'.$query[0]->nama.',</p><p>'.$info_tipe_pembelian.'</p><p>Terlampir note pembelian anda:</p>'.$nota);

if($this->email->send())

{

$this->session->set_flashdata('flsh_msg', 'Penjualan sukses, nota sudah dikirim ke '.$query[0]->email.'...');

$this->session->set_flashdata('flsh_msg_class', 'alert-success');

Page 17: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

27

}

else

{

show_error($this->email->print_debugger());

}

$this->db->trans_complete();

redirect("kelola/penjualan","refresh");

}

Script PHP 4.6 Fungsi simpan_penjualan

Fungsi script simpan_penjualan digunakan untuk penjualan pada pelanggan

dan pengiriman nota penjualan kepada pelanggan melalui email dan juga sebagai

barang keluar.

Gambar 4.14. Halaman Vendor

Gambar 4.14. adalah daftar data dari vendor handphone. Menu ini juga bisa

menambah, menghapus, dan mengedit data vendor.

public function vendor()

{

$crud = new grocery_CRUD();

$crud->set_table('vendor');

Page 18: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

28

$crud->set_subject('Vendor');

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.7 Fungsi vendor

Fungsi script vendor digunakan untuk menambah, menghapus, dan mengedit

vendor.

Gambar 4.15. Halaman Leasing

Gambar 4.15. adalah data dari leasing untuk yang memilih pembayaran secara

kredit. Menu ini juga bisa menambah, menghapus, dan mengedit data.

public function leasing()

{

$crud = new grocery_CRUD();

$crud->set_table('leasing');

$crud->set_subject('Leasing');

$output = $crud->render();

$this->_example_output($output);

}

Page 19: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

29

Script PHP 4.8 Fungsi leasing

Fungsi script leasing digunakan untuk menambah, menghapus, dan mengedit

vendor.

Gambar 4.16. Halaman Kelola Retur

Gambar 4.16. adalah menu untuk meretur barang yang sudah terjual namun

ada kerusakan. Maka pada menu ini akan mencatat barang yang rusak untuk ditukar

dan menghubungi pihak vendor.

public function kelola_retur()

{

$crud = new grocery_CRUD();

$crud->set_table('stok_hp');

$crud->set_subject('Pengguna');

$crud->fields('is_retur','keterangan');

$crud->columns('id_stok', 'id_pembelian', 'nomor_seri', 'id_jenis', 'status_stok', 'keterangan', 'harga_jual', 'is_retur');

$query=$this->db->query("select p.*,v.nama as nama_vendor from pembelian p,vendor v where p.id_vendor=v.id_vendor")->result();

$pembelian=array();

$i=0;

Page 20: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

30

foreach($query as $r)

{

$pembelian[$r->id_pembelian]=$r->nama_vendor." (".$r->nomor_nota.")";

$i++;

}

$crud->field_type('id_pembelian','dropdown',$pembelian);

$query=$this->db->query("select j.id_jenis,concat(m.merk,' ',j.jenis) as jenis,s.id_stok from jenis_hp j,merk m,stok_hp s where j.id_merk=m.id_merk and s.id_jenis=j.id_jenis")->result();

$jenis=array();

$i=0;

foreach($query as $r)

{

$jenis[$r->id_jenis]=$r->jenis;

$i++;

}

$crud->field_type('id_stok','readonly');

$crud->field_type('id_jenis','dropdown',$jenis);

$crud->callback_column('harga_beli',array($this,'tampilan_uang_readonly'));

$crud->callback_column('harga_jual',array($this,'tampilan_uang_readonly'));

$crud->unset_add();

$crud->unset_delete();

$output = $crud->render();

$this->_example_output($output);

}

Script PHP 4.9 Fungsi kelola_retur

Fungsi script kelola_retur digunakan untuk mengajukan barang baru yang

rusak kepada vendor.

Page 21: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

31

Gambar 4.17. Halaman Print Qrcode

Gambar 4.17. adalah untuk mencetak (print) qrcode dan dilekatkan pada

barang baru (smartphone). Sebagai informasi barang saat penjualan.

public function cetak_qrcode()

{

$this->load->library("fpdf");

define('FPDF_FONTPATH',$this->config->item('fonts_path'));

$query = $this->db->query("SELECT sh.*,concat(v.nama,'-',p.nomor_nota) as pembelian,concat(m.merk,'-',jh.jenis) as jenis FROM stok_hp sh,pembelian p,vendor v,jenis_hp jh, merk m where p.id_pembelian=sh.id_pembelian and p.id_vendor=v.id_vendor and sh.id_jenis=jh.id_jenis and jh.id_merk=m.id_merk")->result();

$pdf = new FPDF('P','cm','A4');

$pdf->AddPage();

$pdf->SetFont('times','',7);

$pdf->Ln(0);

$jumlah_per_baris=10;

$i=1;

$j=0;

$turun=0;

foreach($query as $row)

Page 22: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

32

{

$baris=floor(($i-1)/$jumlah_per_baris);

if($i<=$jumlah_per_baris)

{

$kolom=$j;

}

else

{

$kolom=$j-1;

}

if($i>0)

{

$turun=$i%$jumlah_per_baris==0?1:0; //CEK TURUN

}

$pdf->Cell(1.9, 2.4, $pdf->Image(base_url("assets/qrcode/".$row->id_stok.".png"), $pdf->GetX(), $pdf->GetY(), 1.9, 1.9), 1, $turun, 'C');

$pdf->Text(1.15+(1.9*($kolom)), 3.1+(2.4*$baris), $row->id_stok);

$pdf->Text(1.15+(1.9*($kolom)), 3.3+(2.4*$baris), $row->jenis);

$i++;

if($i%$jumlah_per_baris==1)

{

$j=0;

}

$j++;

if(($i-1)%110==0)

{

$pdf->AddPage();

$i=1;

$j=0;

$turun=0;

}

}

Page 23: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

33

$pdf->Output("QRCodeStok.pdf","D");

}

Script PHP 4.10 Fungsi cetak_qrcode

Fungsi script cetak_qrcode untuk menyetak qrcode yang akan digunakan

untuk memindai barang yang akan keluar.

Gambar 4.18. Halaman Stok Baru

Gambar diatas menunjukan jumlah stok barang baru yang masih tersedia

digudang.

public function jumlah_stok_hp()

{

$query = $this->db->query("SELECT merk,jenis,count(id_stok) as jumlah FROM v_stok_hp where status_stok='Baru' group by merk,jenis ")->result();

$data["stok_hp"]= $query;

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

$this->load->view('jumlah_stok_hp',$data);

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

}

Page 24: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

34

Script PHP 5.11 Fungsi jumlah_stok_hp

Fungsi script jumlah_stok_hp untuk menampilkan stok barang yang masih

ada digudang.

Gambar 4.19. Halaman Tampil Laporan Penjualan

Gambar 4.19. adalah tampilan cetak laporan penjualan kecil. Laporan

menginformasikan laba penjualan dan tanggal pembelian barang hingga tanggal

penjualan barang serta harga beli dan harga jual.

public function tampil_report()

{

$boleh=true;

$session_data = $this->session->userdata('logged_in');

if($session_data["role"]!==null || $boleh)

{

$tipe_periode=$_GET["tipe_periode"];

$tipe_report=$_GET["tipe_report"];

$tanggal_awal=$_GET["tanggal_awal"];

$tanggal_akhir=$_GET["tanggal_akhir"];

$date_start=date_create($tanggal_awal);

$date_end=date_create($tanggal_akhir);

Page 25: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

35

$bln=array("","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember");

$session_data = $this->session->userdata('logged_in'); $add_where="1=1";

/*

if($session_data["role"]=="Administrator")

{

$add_where="1=1";

}

if($session_data["role"]=="Pengelola")

{

$add_where="id_barber=".$session_data["id_barber"];

}

*/

$output="<style>td{font-size: 10px} th{font-size: 11px} h2{font-size: 12px}</style>";

if($tipe_report=="PENJUALAN")

{

if($tipe_periode=="R")

{

$query = $this->db->query("SELECT p.tanggal_penjualan,pd.*,v.jenis,v.merk,v.harga_beli,v.tanggal_pembelian,v.laba FROM penjualan p,penjualan_detail pd,v_stok_hp v where $add_where and p.id_penjualan=pd.id_penjualan and pd.id_stok=v.id_stok and p.tanggal_penjualan between '$tanggal_awal' and '$tanggal_akhir' order by p.tanggal_penjualan")->result();

$judul="Rentang ".date_format($date_start,"d-M-Y")." s.d ".date_format($date_end,"d-M-Y");

}

if($tipe_periode=="H")

{

$query = $this->db->query("SELECT p.tanggal_penjualan,pd.*,v.jenis,v.merk,v.harga_beli,v.tanggal_pembelian,v.laba FROM penjualan p,penjualan_detail pd,v_stok_hp v where $add_where and p.id_penjualan=pd.id_penjualan and pd.id_stok=v.id_stok and p.tanggal_penjualan='$tanggal_awal' order by p.tanggal_penjualan")->result();

$judul="Harian ".date_format($date_start,"d-M-Y");

}

Page 26: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

36

if($tipe_periode=="B")

{

$query = $this->db->query("SELECT p.tanggal_penjualan,pd.*,v.jenis,v.merk,v.harga_beli,v.tanggal_pembelian,v.laba FROM penjualan p,penjualan_detail pd,v_stok_hp v where $add_where and p.id_penjualan=pd.id_penjualan and pd.id_stok=v.id_stok and month(p.tanggal_penjualan)=".date_format($date_start,"m")." order by p.tanggal_penjualan")->result();

$judul="Bulan ".$bln[intval(date_format($date_start,"m"))]." ".date_format($date_start,"Y");

}

if($tipe_periode=="T")

{

$query = $this->db->query("SELECT p.tanggal_penjualan,pd.*,v.jenis,v.merk,v.harga_beli,v.tanggal_pembelian,v.laba FROM penjualan p,penjualan_detail pd,v_stok_hp v where $add_where and p.id_penjualan=pd.id_penjualan and pd.id_stok=v.id_stok and year(p.tanggal_penjualan)=".date_format($date_start,"Y")." order by p.tanggal_penjualan")->result();

$judul="Tahun ".date_format($date_start,"Y");

}

if(count($query)==0)

{

$output.="Data tidak ditemukan...";

}

else

{

$i=0;

$grand_total_beli=0;

$grand_total_jual=0;

$grand_total_laba=0;

$output.="<div id='printThis' name='printThis' style='width: 100%'>";

//$output.="<img src='".base_url("assets/images/logo.png")."' width='200'>";

$output.="<center><h2>Report RUGI LABA $judul</h2></center>";

$output.="<table class='table table-stripped'>";

//header

Page 27: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

37

$output.="<tr><th>#</th><th>Merk</th><th>Jenis</th><th>Tanggal Penjualan</th><th style='text-align: right'>Harga Jual</th><th>Tanggal Pembelian</th><th style='text-align: right'>Harga Beli</th><th style='text-align: right'>Laba</th></tr>";

foreach($query as $row)

{

$i++;

$grand_total_beli+=$row->harga_beli;

$grand_total_jual+=$row->harga;

$grand_total_laba+=$row->laba;

$tanggal_pembelian=date_create($row->tanggal_pembelian);

$tanggal_penjualan=date_create($row->tanggal_penjualan);

//isi

$output.="<tr><td>$i</td><td>".$row->merk."</td><td>".$row->jenis."</td><td>".date_format($tanggal_penjualan,"d-M-Y")."</td><td align='right'>Rp. ".number_format($row->harga,"0",",",".")."</td><td>".date_format($tanggal_pembelian,"d-M-Y")."</td><td align='right'>Rp. ".number_format($row->harga_beli,"0",",",".")."</td><td align='right'>Rp. ".number_format($row->laba,"0",",",".")."</td></tr>";

}

//footer

$output.="<tr><th style='text-align: right'>Total</th><th colspan='4' style='text-align: right'>Rp. ".number_format($grand_total_jual,"0",",",".")."</th><th colspan='2' style='text-align: right'>Rp. ".number_format($grand_total_beli,"0",",",".")."</th><th style='text-align: right'>Rp. ".number_format($grand_total_laba,"0",",",".")."</th></tr>";

$output.="</table>";

//$output.="<table width='100%'><tr><td align='center'>Diajukan Oleh,<br/><br/><br/><br/><br/>(....................)</td><td align='center'>Diperiksa Oleh,<br/><br/><br/><br/><br/>(....................)</td><td align='center'>Disetujui Oleh,<br/><br/><br/><br/><br/>(....................)</td></tr></table>";

$output.="</div>";

$output.="<button type='button' class='btn btn-default' onclick='printElementNonModal()'>Cetak</button>";

//$output.="<button type='button' class='btn btn-default' onclick='printElementJSPrint()'>Cetak</button>";

}

}

echo json_encode(['hasil' => $output]);

Page 28: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

38

}

else

{

redirect("/","refresh");

}

}

Script PHP 4.12 Fungsi tampil_report

Fungsi script tampil_report digunakan untuk menampilkan dan mencetak

laporan laba dengan berbagai rentang waktu yaitu harian, mingguan, bulanan, dan

tahunan. Dan juga menampilkan tanggal pembelian, tanggal penjualan, harga beli,

harga jual, dan total laba yang didapat.

Gambar 4.20. Proses Pembacaan Qrcode

Gambar 4.20. adalah proses membaca kode qr (qrcode) barang yang akan

terhubung dengan database.

String[] permissions = new String[]{android.Manifest.permission.CAMERA}; private static final int REQUEST_MULTIPLE_PERMISSIONS = 117;

Page 29: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

39

private ZXingScannerView mScannerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scan); mScannerView = new ZXingScannerView(this); setContentView(mScannerView); } private boolean checkPermissions() { int result; List<String> listPermissionsNeeded = new ArrayList<>(); for (String p : permissions) { result = ContextCompat.checkSelfPermission(this, p); if (result != PackageManager.PERMISSION_GRANTED) { listPermissionsNeeded.add(p); } } if (!listPermissionsNeeded.isEmpty()) { ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), REQUEST_MULTIPLE_PERMISSIONS); return false; } return true; } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case REQUEST_MULTIPLE_PERMISSIONS: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //granted } else { finish(); Toast.makeText(ScanActivity.this, "Please run again, and make sure you've grant all permission", Toast.LENGTH_LONG).show(); } return; } } }

Page 30: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

40

@Override public void onResume() { super.onResume(); mScannerView.setResultHandler(this); mScannerView.startCamera(); } @Override public void onPause() { super.onPause(); mScannerView.stopCamera(); } @Override public void handleResult(Result rawResult) { finish(); CheckStokActivity.id_stok=rawResult.getText(); startActivity(new Intent(getApplicationContext(), CheckStokActivity.class));

}

Script Android 4.13 Fungsi ScanActivity

Fungsi dari ScanActivity digunakan untuk membaca qrcode

Gambar 4.21. Tampilan Hasil Scanner

Gambar diatas adalah proses menampilkan hasil dari membaca kode qr

(qrcode). Ditampilan ini akan muncul id, jenis, merk, status, keterangan, harga jual,

Page 31: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

41

nomor seri, dan set penjualan. Setting penjualan adalah pemilihan nama pelanggan

yang sebelumnya sudah mengisi data diri. Maka akan muncul nama pelanggan dan

akan masuk secara otomatis ke proses selanjutnya yaitu proses penjualan.

public class CheckStokActivity extends AppCompatActivity { public static String id_stok; String[] spinnerArray = new String[100]; HashMap<Integer,String> spinnerMap = new HashMap<Integer, String>(); List<String> sIds = new ArrayList<String>();//add ids in this list List<String> names = new ArrayList<String>();//add names in this list Spinner spin; EditText etIdStok,etJenis,etMerk,etStatus_stok,etKeterangan,etHarga_beli,etHarga_jual,etNomor_seri; TextView txtIdPelanggan; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_check_stok); etIdStok = (EditText) findViewById(R.id.editTextIdStok); etIdStok.setText(id_stok); etJenis = (EditText) findViewById(R.id.editTextJenis); etMerk = (EditText) findViewById(R.id.editTextMerk); etStatus_stok = (EditText) findViewById(R.id.editTextStatus_stok); etKeterangan = (EditText) findViewById(R.id.editTextKeterangan); etHarga_beli = (EditText) findViewById(R.id.editTextHarga_beli); etHarga_jual = (EditText) findViewById(R.id.editTextHarga_jual); etNomor_seri = (EditText) findViewById(R.id.editTextNomor_seri); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(MainActivity.BASE_URL + "stok_join/" + id_stok); try { HttpResponse response = client.execute(request); String result = ""; try { InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { str.append(line + "\n"); } in.close(); result = str.toString(); } catch (Exception ex) { result = "Error"; }

Page 32: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

42

JSONObject object_rows = null; JSONArray array_rows; object_rows = new JSONObject(result); String hasil = "DATA STOK:\r\n"; array_rows = object_rows.getJSONArray("content"); for (int i = 0; i < array_rows.length(); i++) { HashMap<String, String> map = new HashMap<String, String>(); JSONObject object_elements = array_rows.getJSONObject(i); String id_stok = object_elements.getString("id_stok"); etIdStok.setText(id_stok); String jenis = object_elements.getString("jenis"); etJenis.setText(jenis); String merk = object_elements.getString("merk"); etMerk.setText(merk); String status_stok = object_elements.getString("status_stok"); etStatus_stok.setText(status_stok); String keterangan = object_elements.getString("keterangan"); etKeterangan.setText(keterangan); String harga_beli = object_elements.getString("harga_beli"); etHarga_beli.setText(harga_beli); etHarga_beli.setVisibility(View.GONE); String harga_jual = object_elements.getString("harga_jual"); etHarga_jual.setText(harga_jual); String nomor_seri = object_elements.getString("nomor_seri"); etNomor_seri.setText(nomor_seri); } } catch (Exception ex) { Toast.makeText(getApplicationContext(), "Gagal Get: " + ex.getMessage(), Toast.LENGTH_LONG).show(); } request = new HttpGet(MainActivity.BASE_URL + "pelanggan"); try { HttpResponse response = client.execute(request); String result = ""; try { InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { str.append(line + "\n"); } in.close(); result = str.toString(); } catch (Exception ex) { result = "Error"; } JSONObject object_rows = null; JSONArray array_rows; object_rows = new JSONObject(result);

Page 33: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

43

array_rows = object_rows.getJSONArray("content"); for (int i = 0; i < array_rows.length(); i++) { JSONObject object_elements = array_rows.getJSONObject(i); String nomor_id = object_elements.getString("nomor_id"); String nama = object_elements.getString("nama"); sIds.add(nomor_id); names.add(nama); } //untuk tampilkan nama pelanggan ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(CheckStokActivity.this, android.R.layout.simple_spinner_item, names); spin = (Spinner) findViewById(R.id.spinnerPelanggan); spin.setAdapter(arrayAdapter); spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String pos=sIds.get(spin.getSelectedItemPosition()); txtIdPelanggan=(TextView)findViewById(R.id.textViewIdPelanggan); txtIdPelanggan.setText(pos); //Toast.makeText(getApplicationContext(), pos, Toast.LENGTH_LONG).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // sometimes you need nothing here } }); } catch (Exception ex) { Toast.makeText(getApplicationContext(), "Gagal Get: " + ex.getMessage(), Toast.LENGTH_LONG).show(); } Button btnPost = (Button) findViewById(R.id.buttonJual); btnPost.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { HttpClient client = new DefaultHttpClient(); HttpPost rest = new HttpPost(MainActivity.BASE_URL+"penjualan_temp"); try { JSONObject params = new JSONObject(); params.put("nomor_id", txtIdPelanggan.getText().toString()); params.put("id_stok", etIdStok.getText().toString()); params.put("harga", etHarga_jual.getText().toString()); StringEntity entity = new StringEntity(params.toString()); rest.setEntity(entity); HttpResponse response = client.execute(rest);

Page 34: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

44

Toast.makeText(getApplicationContext(),"Sudah masuk ke keranjang belanja di web...",Toast.LENGTH_LONG).show(); finish(); startActivity(new Intent(getApplicationContext(), ScanActivity.class)); } catch(Exception e){ } } catch(Exception e){ } } }); }

Script Android 4.14 Fungsi CheckStokActivity

Script CheckStokActivity digunakan untuk membaca stok barang dan

menampilkan nama pelanggan dari database.

4.3 Pengujian aplikasi

Aplikasi telah diuji kepada 5 responden (1 pemilik, 2 karyawan gudang, dan 2

karyawan penjualan) sebagai calon pengguna dengan menggunakan pertanyaan

berikut:

Apakah system yang saya buat sudah memenuhi harapan?

Apakah system ini mudah digunakan dan dipelajari?

Menurut anda setelah melihat sistem penjualan barang menggunakan

qrcode lebih mudah dan cepat?

Menurut anda system ini saat menampilkan laporan penjualan sudah

cukup akurat ?

Hasil pengolahan jawaban responden terhadap pertanyaan yang diberikan dapat

dikelompokkan seperti berikut:

Sistem Input

Sesuai harapan untuk memenuhi kebutuhan inventaris stok (5 responden)

Mudah memasukkan barang dari distributor kegudang (5 responden)

Ringkas saat inventaris (4 responden)

Page 35: BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistemrepository.unika.ac.id/20052/5/14.N1.0015 THOMAS AQUINO Z...11 BAB IV HASIL DAN PEMBAHASAN 4.1. Perancangan sistem Berikut adalah

45

Agak ribet saat input data barang (1 responden)

Kebutuhan Informasi

Bisa mengetahui penjualan bulan lalu (5 responden)

Mudah mengetahui informasi barang baru (5 responden)

Sistem Penjualan

Penjualan jadi mudah, cepat, dan ringkas (5 responden)

Sudah bisa mengurangi human error saat penjualan (5 responden)

Sistem Pelaporan

Laporan akurat (5 responden)

Laporan detail (5 responden)

Dari hasil wawancara terlihat bahwa calon pengguna (empat responden)

menerima baik sistem inputan inventaris barang yang diujikan. Satu responden masih

merasa ribet dalam menginput barang. Hal ini bisa disebabkan oleh kurangnya

frekuensi pengujian ke responden (1 – 2 pengujian) atau karena perubahan sistem dari

manual ke aplikasi.

Dalam hal kebutuhan informasi juga terlihat bahwa calon pengguna (lima

responden) juga menerima baik sistem informasi barang. Sedangkan untuk sistem

penjualan terlihat bahwa semua calon pengguna responden mengatakan sistem

penjualan mempercepat, mempermudah, dan ringkas saat menjual barang. Yang

terakhir terlihat bahwa semua calon pengguna responden mengatakan sistem

pelaporan sudah akurat dan detail.