The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

PT. Sukses Kita Abadi merupakan perusahaan perdagangan sebagai pemasok all
packaging and industrial tape yang masih menggunakan cara semi manual dalam
pencatatan dan pengolahan inventory barangnya, sehingga menimbulkan permasalahan
seperti kesalahan akibat faktor manusia yang berdampak pada proses penjualan dan
pembelian barang menjadi terhambat. Penelitian ini bertujuan untuk merancang dan
membangun sistem inventory berbasis web menggunakan metode klasifikasi ABC
untuk memudahkan proses pencatatan dan pengolahan inventory barang pada PT.
Sukses Kita Abadi. Metode klasifikasi ABC digunakan sebagai rekomendasi terhadap
manajemen inventory untuk mengurangi terjadinya out of stock. Metode PIECES
digunakan untuk analisis sistem. Metode pengembangan sistem menggunakan RAD.
Pemodelan menggunakan UML. Pengumpulan data dengan metode studi lapangan,
studi pustaka, dan studi literatur sejenis. Penelitian ini menghasilkan sistem informasi
inventory berbasis web menggunakan metode klasifikasi ABC yang dapat melakukan
proses pencatatan dan pengolahan inventory barang dan menghasilkan laporan secara
online dan menyediakan informasi yang realtime sehingga dapat meminimalisir
kesalahan akibat faktor manusia serta menjadikan proses penjualan dan pembelian
barang menjadi lebih mudah, cepat, transparan, serta memiliki mobilitas dan
fleksibilitas yang lebih baik.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by muhammad.zhafari17, 2022-06-27 00:05:30

Rancang Bangun Sistem Informasi Inventory Berbasis Web Menggunakan Metode Klasifikasi ABC (Studi Kasus: PT. Sukses Kita Abadi)

PT. Sukses Kita Abadi merupakan perusahaan perdagangan sebagai pemasok all
packaging and industrial tape yang masih menggunakan cara semi manual dalam
pencatatan dan pengolahan inventory barangnya, sehingga menimbulkan permasalahan
seperti kesalahan akibat faktor manusia yang berdampak pada proses penjualan dan
pembelian barang menjadi terhambat. Penelitian ini bertujuan untuk merancang dan
membangun sistem inventory berbasis web menggunakan metode klasifikasi ABC
untuk memudahkan proses pencatatan dan pengolahan inventory barang pada PT.
Sukses Kita Abadi. Metode klasifikasi ABC digunakan sebagai rekomendasi terhadap
manajemen inventory untuk mengurangi terjadinya out of stock. Metode PIECES
digunakan untuk analisis sistem. Metode pengembangan sistem menggunakan RAD.
Pemodelan menggunakan UML. Pengumpulan data dengan metode studi lapangan,
studi pustaka, dan studi literatur sejenis. Penelitian ini menghasilkan sistem informasi
inventory berbasis web menggunakan metode klasifikasi ABC yang dapat melakukan
proses pencatatan dan pengolahan inventory barang dan menghasilkan laporan secara
online dan menyediakan informasi yang realtime sehingga dapat meminimalisir
kesalahan akibat faktor manusia serta menjadikan proses penjualan dan pembelian
barang menjadi lebih mudah, cepat, transparan, serta memiliki mobilitas dan
fleksibilitas yang lebih baik.

Keywords: Sistem Informasi, Inventory, Klasifikasi ABC, PIECES, RAD

4. Mengisi form tambah data secara Menampilkan halaman Sesuai

valid dan klik tombol simpan barang masuk dan pesan

berhasil

5. Mengisi form tambah data secara Menampilkan halaman Sesuai

tidak valid dan klik tombol barang masuk dan pesan

simpan gagal

6. Klik tombol batal Menampilkan halaman Sesuai

barang masuk

7. Klik tombol ubah Menampilkan halaman ubah Sesuai

sesuai dengan data yang

ingin diubah

8. Mengisi form ubah data secara Menampilkan halaman Sesuai

valid dan klik tombol simpan barang masuk dan pesan

berhasil

9. Mengisi form ubah data secara Menampilkan halaman ubah Sesuai

tidak valid dan klik tombol data dan pesan gagal

simpan

10. Klik tombol batal Menampilkan halaman Sesuai

barang masuk

11. Klik tombol hapus Menampilkan pop up Sesuai

overlay konfirmasi hapus

data

12. Klik tombol ya Menampilkan halaman Sesuai

barang masuk dan pesan

berhasil

13. Klik tombol tidak Menampilkan halaman Sesuai

barang masuk

14. Klik tombol paginasi Menampilkan halaman Sesuai

barang masuk sesuai urutan

dan jumlah data

217

UC13 – Kelola Data Pemasok

No. Skenario Pengujian Hasil yang Diharapkan Hasil

Pengujian

1. Mengakses menu transaksi Menampilkan halaman Sesuai

barang masuk

2. Mengakses sub menu data Menampilkan halaman data Sesuai

pemasok pemasok

3. Mencari data pada kolom Menampilkan data hasil Sesuai

pencarian pencarian

4. Klik tombol tambah Menampilkan pop up Sesuai

overlay form tambah data

5. Mengisi form tambah data secara Menampilkan halaman data Sesuai

valid dan klik tombol simpan pemasok dan pesan berhasil

6. Mengisi form tambah data secara Menampilkan halaman data Sesuai

tidak valid dan klik tombol pemasok dan pesan gagal

simpan

7. Klik tombol batal Menampilkan halaman data Sesuai

pemasok

8. Klik tombol ubah Menampilkan halaman ubah Sesuai

sesuai dengan data yang

ingin diubah

9. Mengisi form ubah data secara Menampilkan halaman data Sesuai

valid dan klik tombol simpan pemasok dan pesan berhasil

10. Mengisi form ubah data secara Menampilkan halaman ubah Sesuai

tidak valid dan klik tombol data dan pesan gagal

simpan

11. Klik tombol batal Menampilkan halaman data Sesuai

pemasok

218

12. Klik tombol hapus Menampilkan pop up Sesuai
overlay konfirmasi hapus
13. Klik tombol ya data
14. Klik tombol tidak Menampilkan halaman data Sesuai
15. Klik tombol paginasi pemasok dan pesan berhasil
Menampilkan halaman data Sesuai
pemasok
Menampilkan halaman data Sesuai
pemasok sesuai urutan dan
jumlah data

6. Pengujian Blackbox Level Staff Barang

Tabel 4.43 Pengujian Blackbox Level Staff Barang
UC10 – Konfirmasi Barang Masuk

No. Skenario Pengujian Hasil yang Diharapkan Hasil

Pengujian

1. Mengakses menu transaksi Menampilkan halaman Sesuai

barang masuk

2. Mencari data pada kolom Menampilkan data hasil Sesuai

pencarian pencarian

3. Klik tombol konfirmasi Menyimpan konfirmasi Sesuai

barang masuk dan pesan

berhasil

4. Klik kembali tombol konfirmasi Menyimpan konfirmasi Sesuai

(batalkan) barang masuk dan pesan

berhasil

5. Klik tombol paginasi Menampilkan halaman Sesuai

barang masuk sesuai urutan

dan jumlah data

219

UC12 – Konfirmasi Surat Jalan

No. Skenario Pengujian Hasil yang Diharapkan Hasil

Pengujian

1. Mengakses menu transaksi Menampilkan halaman Sesuai

barang masuk

2. Mengakses sub menu surat jalan Menampilkan halaman Sesuai

barang masuk

3. Mencari data pada kolom Menampilkan data hasil Sesuai

pencarian pencarian

4. Klik tombol konfirmasi Menyimpan konfirmasi surat Sesuai

jalan dan pesan berhasil

5. Klik kembali tombol konfirmasi Menyimpan konfirmasi surat Sesuai

(batalkan) jalan dan pesan berhasil

6. Klik tombol paginasi Menampilkan halaman surat Sesuai

jalan sesuai urutan dan

jumlah data

7. Pengujian Blackbox Level Staff Penjualan

Tabel 4.44 Pengujian Blackbox Level Staff Penjualan
UC11 – Kelola Surat Jalan

No. Skenario Pengujian Hasil yang Diharapkan Hasil

Pengujian

1. Mengakses menu transaksi Menampilkan halaman Sesuai

barang masuk

2. Mengakses sub menu surat jalan Menampilkan halaman Sesuai

barang masuk

3. Mencari data pada kolom Menampilkan data hasil Sesuai

pencarian pencarian

220

4. Klik tombol tambah Menampilkan halaman Sesuai

tambah data yang berisi form

tambah data

5. Mengisi form tambah data secara Menampilkan halaman surat Sesuai

valid dan klik tombol simpan jalan dan pesan berhasil

6. Mengisi form tambah data secara Menampilkan halaman surat Sesuai

tidak valid dan klik tombol jalan dan pesan gagal

simpan

7. Klik tombol batal Menampilkan halaman surat Sesuai

jalan

8. Klik tombol ubah Menampilkan halaman ubah Sesuai

sesuai dengan data yang

ingin diubah

9. Mengisi form ubah data secara Menampilkan halaman surat Sesuai

valid dan klik tombol simpan jalan dan pesan berhasil

10. Mengisi form ubah data secara Menampilkan halaman ubah Sesuai

tidak valid dan klik tombol data dan pesan gagal

simpan

11. Klik tombol batal Menampilkan halaman surat Sesuai

jalan

12. Klik tombol export Menampilkan halaman Sesuai

export surat jalan dalam

format .pdf

13. Klik tombol unduh Mengunduh file surat jalan Sesuai

dalam format .pdf

14. Klik tombol hapus Menampilkan pop up Sesuai

overlay konfirmasi hapus

data

15. Klik tombol ya Menampilkan halaman surat Sesuai

jalan dan pesan berhasil

221

16. Klik tombol tidak Menampilkan halaman surat Sesuai

jalan

17. Klik tombol paginasi Menampilkan halaman surat Sesuai

jalan sesuai urutan dan

jumlah data
UC14 – Kelola Data Pelanggan

No. Skenario Pengujian Hasil yang Diharapkan Hasil

Pengujian

1. Mengakses menu transaksi Menampilkan halaman Sesuai

barang masuk

2. Mengakses sub menu data Menampilkan halaman data Sesuai

pelanggan pelanggan

3. Mencari data pada kolom Menampilkan data hasil Sesuai

pencarian pencarian

4. Klik tombol tambah Menampilkan pop up Sesuai

overlay form tambah data

5. Mengisi form tambah data secara Menampilkan halaman data Sesuai

valid dan klik tombol simpan pelanggan dan pesan

berhasil

6. Mengisi form tambah data secara Menampilkan halaman data Sesuai

tidak valid dan klik tombol pelanggan dan pesan gagal

simpan

7. Klik tombol batal Menampilkan halaman data Sesuai

pelanggan

8. Klik tombol ubah Menampilkan halaman ubah Sesuai

sesuai dengan data yang

ingin diubah

9. Mengisi form ubah data secara Menampilkan halaman data Sesuai

valid dan klik tombol simpan pelanggan dan pesan

berhasil

222

10. Mengisi form ubah data secara Menampilkan halaman ubah Sesuai

tidak valid dan klik tombol data dan pesan gagal

simpan

11. Klik tombol batal Menampilkan halaman data Sesuai

pelanggan

12. Klik tombol hapus Menampilkan pop up Sesuai

overlay konfirmasi hapus

data

13. Klik tombol ya Menampilkan halaman data Sesuai

pelanggan dan pesan

berhasil

14. Klik tombol tidak Menampilkan halaman data Sesuai

pelanggan

15. Klik tombol paginasi Menampilkan halaman data Sesuai

pelanggan sesuai urutan dan

jumlah data

223



BAB 5

PENUTUP

5.1. Kesimpulan
Pada bab sebelumnya, penulis telah selesai melakukan pengkodean dan

pengujian sistem informasi inventory berbasis web menggunakan metode
klasifikasi ABC di PT. Sukses Kita Abadi. Berdasarkan hal tersebut, penulis
mendapatkan kesimpulan dari penelitian yang telah selesai dilakukan yaitu
sebagai berikut :

1. Menghasilkan sistem informasi inventory berbasis web menggunakan
metode klasifikasi ABC sebagai solusi pada permasalahan yang terjadi.

2. Sistem dapat berjalan secara online, sehingga dapat meminimalisir
kendala akibat faktor kesalahan manusia.

3. Sistem dapat menyediakan data inventory yang selalu ter-update dan
informasi yang realtime, sehingga proses penjualan dan pembelian
menjadi lebih mudah, cepat, transparan, serta memiliki mobilitas dan
fleksibilitas yang lebih baik.

4. Metode klasifikasi ABC membagi inventory barang menjadi 3 kategori
berdasarkan nilai investasinya, yaitu kategori A dengan nilai investasi
sebesar 72,08% berisi 2 kategori barang, yaitu stretch film dan selotape.
Kategori B dengan nilai investasi sebesar 18,92% berisi 3 kategori
barang, yaitu opp tape, packing siku, dan styrofoam. Serta kategori C
dengan nilai investasi sebesar 9% berisi 8 kategori barang, yaitu

224

adhesive tape, masking tape, bubble pack, double tape, arrow tape,
strapp band, air bubble, dan protection tape.
5.2. Saran
Selain itu, penulis juga mendapatkan beberapa poin kekurangan dalam
penelitian ini yang dapat menjadi saran dan acuan bagi penelitian yang sejenis
dikemudian hari yaitu sebagai berikut :
1. Membuat fitur forecasting stok barang dan forecasting penjualan pada
dashboard sistem, untuk membantu mengambil keputusan bagi
stakeholder.
2. Membuat fitur yang dapat terhubung dengan e-mail, untuk mendukung
verifikasi data akun pengguna pada sistem.
3. Membuat fitur filter data di setiap tabel data pada sistem, untuk lebih
memudahkan pengguna.
4. Membuat desain sistem yang lebih responsif, agar dapat lebih nyaman
digunakan diberbagai perangkat.

225



DAFTAR PUSTAKA

Adhawiyah, Y., Kumaladewi, N., & Caturutami, M. (2017). Rancang Bangun Sistem
Informasi Penilaian Kinerja Pegawai Menggunakan Metode Psycological
Appraisal (StudiKasus :Kantor Wilayah Kementerian Agama DKI Jakarta).
Jurnal Sistem Informasi, 10(2), 119–126.

Ahmad, S. I., Rana, T., & Maqbool, A. (2021). A Model-Driven Framework for the
Development of MVC-Based (Web) Application. Arabian Journal for Science
and Engineering. https://doi.org/10.1007/s13369-021-06087-4

Alcaraz, J. L. G., Maldonado, A. A., Iniesta, A. A., Robles, G. C., & Hernández, G. A.
(2014). A systematic review/survey for JIT implementation: Mexican
maquiladoras as case study. Computers in Industry, 65(4), 761–773.
https://doi.org/10.1016/j.compind.2014.02.013

Alfarisy, M. H., & Diana, A. (2018). Rancang Bangun Sistem Informasi Penyewaan
Mobil pada Abu Sulaiman Rent Car. Seminar Rekayasa Teknologi, 320–329.
http://teknik.univpancasila.ac.id/semrestek/2018/assets/proceedings/seo/SEMRE
STEK2018_paper_2.pdf

Amelia, M. Y., Santoso, P. B., & Rahman, A. (2013). Perancangan Sistem Basis Data
Persediaan Bahan Baku Berbasis Metode Economic Order Quantity (EOQ) (Studi
Kasus: PT. Malindo Intitama Raya). Jurnal Rekayasa Dan Manajemen Sistem
Industri, 1(2), 322–334.
http://jrmsi.studentjournal.ub.ac.id/index.php/jrmsi/article/view/38

Anwas, E. O. M., & Sugiarti, Y. (2020). Strategi Menulis Jurnal Bereputasi. PT
Remaja Rosdakarya.

Asana, I. M. D. P., Radhitya, M. L., Widiartha, K. K., Santika, P. P., & Wiguna, I. K.
A. G. (2020). Inventory control using ABC and min-max analysis on retail
management information system. Journal of Physics: Conference Series, 1469(1),
12097. https://doi.org/10.1088/1742-6596/1469/1/012097

Aswati, S., & Siagian, Y. (2016). Model Rapid Application Development Dalam
Rancang Bangun Sistem Informasi Pemasaran Rumah (Studi Kasus : Perum
Perumnas Cabang Medan). Jurnal Sesindo 2016, 2016(31), 317–324.
http://is.its.ac.id/pubs/oajis/index.php/home/detail/1676

Azizah, N., Yuliana, L., & Juliana, E. (2017). Rancang Bangun Sistem Informasi
Penggajian Karyawan Harian Lepas Pada PT Flex Indonesia. SENSI Journal,
3(1), 14–21. https://doi.org/10.33050/sensi.v3i1.756

Barreto, L., Amaral, A., & Pereira, T. (2017). Industry 4.0 implications in logistics: an
overview. Procedia Manufacturing, 13, 1245–1252.
https://doi.org/10.1016/j.promfg.2017.09.045

Bell, S., Berg, T., & Morse, S. (2019). Towards an Understanding of Rich Picture
Interpretation. Systemic Practice and Action Research, 32(6), 601–614.

226

https://doi.org/10.1007/s11213-018-9476-5

Budiman, Akbar, A., Irmayanti, A., & Prajaka, S. (2018). Application of Web-Based

Activity Management Using the RAD Method. Proceedings - 2nd East Indonesia

Conference on Computer and Information Technology: Internet of Things for

Industry, EIConCIT 2018, 147–152.

https://doi.org/10.1109/EIConCIT.2018.8878649

Chrisna, H., & Hernawaty. (2018). Analisis Manajemen Persediaan Dalam

Memaksimalkan Pengendalian Internal Persediaan Pada Pabrik Sepatu Ferradini
Medan. Akuntansi Bisnis & Publik, 8(2), 82–92.

Dalimunthe, A. H. (2020). Desain Basis Data Sistem Pemesanan Makanan Dan

Minuman Pada Restoran Berbasis Online. Jurnal Rekayasa Elektro Sriwijaya,
1(2), 53–61. http://jres1.ejournal.unsri.ac.id/index.php/jres/article/view/15

Ernawati, S. (2020). Analisa Pieces Untuk Rancang Bangun Sistem Informasi
Monitoring Persediaan Barang Berbasis Web Pada Koperasi Sartika Bogor.
EVOLUSI: Jurnal Sains Dan Manajemen.
https://ejournal.bsi.ac.id/ejurnal/index.php/evolusi/article/view/7386

Farell, G., Saputra, H. K., & Novid, I. (2018). Rancang Bangun Sistem Informasi

Pengarsipan Surat Menyurat (Studi Kasus Fakultas Teknik UNP). Jurnal
Teknologi Informasi Dan Pendidikan (JTIP), 11(2), 56–62.

Fatoni, A., & Dwi, D. (2016). Rancang Bangun Sistem Extreme Programming Sebagai
Metodologi Pengembangan Sistem. Jurnal Prosisko, 3(1), 17–20. http://e-

jurnal.lppmunsera.org/index.php/PROSISKO/article/view/116

Fiarni, C., Gunawan, A. S., & William. (2018). Implementasi Metode ABC-Cycle

Counting Pada Sistem Rekomendasi Physical Inventory Perusahaan Retail.

Prosiding SISFOTEK, 206–212.

http://seminar.iaii.or.id/index.php/SISFOTEK/article/view/79%0Ahttps://semina

r.iaii.or.id/index.php/SISFOTEK/article/download/79/68

Fikry, M. (2016). Rancangan Basis Data Kependudukan Berdasarkan Aspek-Aspek
Kualitas Schema Database. Techsi, 8(2), 1–16.

https://doi.org/https://doi.org/10.29103/techsi.v8i2.136

Fourwansyah, R. (2020). Perancangan Sistem Informasi Inventory Dan Purchasing
Berbasis Web Menggunakan Metode PIECES (Studi Kasus : PT. Matahari

Department Store Distributional Center & Logistic) [UIN Syarif Hidayatullah

Jakarta]. https://repository.uinjkt.ac.id/dspace/handle/123456789/56140

Geszten, D., Hamornik, B. P., & Hercegfi, K. (2019). Usability evaluation of a

collaborative design software in the wild. 10th IEEE International Conference on
Cognitive Infocommunications, CogInfoCom 2019 - Proceedings, 101–106.

https://doi.org/10.1109/CogInfoCom47531.2019.9089963

Gunawan, R., Suherman, Y., & Auliya, N. Z. (2021). Perancangan Sistem Infromasi
Pengadaan Barang Berbasis Web Pada PT. Sintas Kurama Perdana Karawang.
Jurnal Ilmiah Ekonomi Dan Bisnis, 14(1), 101–113.

227

http://journal.stekom.ac.id/index.php/E-Bisnis

Hafedmawan, A., & Anggoro, D. A. (2021). Inventory Information System In
Benostore Stores. 21(01), 54–58.

Handayani, I. P., & Diana, A. (2019). Rancang Bangun Sistem Inventory ATK dengan
UML dan Object Oriented Program. Prosiding SISFOTEK, 3(1), 18–27.

Harahap, S. H. (2018). Analisis Pembelajaran Sistem Akuntansi Menggunakan

Draw.Io Sebagai Perancangan Diagram Alir. Prosiding Seminar Nasional
Multidisiplin Ilmu Universitas Asahan, 101–103.

https://doi.org/10.31227/osf.io/nj5cx

Haratua, J. A., Widjaja, A. E., Prasetya, K., & Hery, H. (2021). Web-Based Inventory

Application Development for PT. Palugada Indonesia. IJNMT (International
Journal of New Media Technology), 8(1), 70–78.

https://doi.org/10.31937/ijnmt.v8i1.2063

Hasanati, N., Permatasari, E., Nurhasanah, N., & Hidayat, S. (2019). Implementation
of Material Requirement Planning (MRP) on Raw Material Order Planning
System for Garment Industry. IOP Conference Series: Materials Science and
Engineering, 528(1), 12064. https://doi.org/10.1088/1757-899x/528/1/012064

Hasurungan, M., & Elizabeth, T. (2022). Sistem Informasi Manajemen Persediaan
Bahan Baku Pembangunan Rumah Pada PT. Clara Jaya. MDP Student
Conference. https://jurnal.mdp.ac.id/index.php/msc/article/view/1776

Hidayatno, A., Destyanto, A. R., & Hulu, C. A. (2019). Industry 4.0 Technology

Implementation Impact to Industrial Sustainable Energy in Indonesia: A Model
Conceptualization. Energy Procedia, 156, 227–233.

https://doi.org/10.1016/j.egypro.2018.11.133

Hidayatullah, A., Putra, S. J., & Qoyim, I. (2014). Rancang Bangun Sistem Informasi

Pemesanan Program Umroh pada PT Arqom Bayu Nusaba. Jurnal Sistem
Informasi, 7(2), 1–8.

Hidayatuloh, S., & Setyaningsih, F. (2021). Analisis Dan Perancangan Sistem

Informasi Penerimaan Praktek Kerja Lapangan (Studi Kasus: Suku Dinas

Komunikasi, Informatika Dan Statistik Pemerintah Kota Administrasi Jakarta

Barat). TEKINFO, 22(1), 88–99. https://journals.upi-

yai.ac.id/index.php/TEKINFO/article/download/1188/965

Irnawati, O., & Listianto, G. B. A. (2018). Metode Rapid Application Development

(RAD) pada Perancangan Website Inventory PT. Sarana Abdi Makmur Bersama
(S.A.M.B) Jakarta. Jurnal Evolusi, 6(2), 12–18.

Izwar, A., Putra, S. J., & Arham, Z. (2012). Rancang Bangun Sistem Informasi Simpan
Pinjam Studi Kasus : Koperasi Simpan Pinjam Ittihadul Muhajirin. Jurnal Sistem
Informasi, 5(1), 1–8. https://doi.org/https://doi.org/10.15408/sijsi.v5i1.281

Khan, M., Wu, X., Xu, X., & Dou, W. (2017). Big Data Challenges and Opportunities
in the Hype of Industry 4.0. IEEE International Conference on Communications.

228

https://doi.org/10.1109/ICC.2017.7996801

Kinaswara, T. A., Hidayati, N. R., & Nugrahanti, F. (2019). Rancang Bangun Aplikasi

Inventaris Berbasis Website pada Kelurahan Bantengan. Seminar Nasional
Teknologi Informasi Dan Komunikasi 2019, 1(1), 71–75.

http://prosiding.unipma.ac.id/index.php/SENATIK/article/view/1073/929

Laksono, A. T., Utami, M. C., & Sugiarti, Y. (2016). Sistem Penjadwalan Kuliah

Menggunakan Metode Algoritma Genetika (Studi Kasus: Fakultas Kedokteran

dan Kesehatan Universitas Muhammadiyah Jakarta). Studia Informatika: Jurnal
Sistem Informasi, 9(2), 177–188.

Mandasari, M., & Tampubolon, E. (2021). Perancangan Sistem Informasi
Perpustakaan Berbasis Web Dengan Metode Rapid Application Development
(RAD) Dan Framework CSS Bootstrap. Jurnal Poliprofesi.

Mashadov, M. B. (2020). Sistem Inventori Gudang Pada Toko JB Distro
Menggunakan Framework CodeIgniter. Universitas Semarang.

Maulani, G., Septiani, D., & Sahara, P. N. F. (2018). Rancang Bangun Sistem

Informasi Inventory Fasilitas Maintenance Pada PT. PLN (Persero) Tangerang.
ICIT Journal, 4(2), 156–167. https://doi.org/10.33050/icit.v4i2.90

Mery, M., & Bernanda, D. Y. (2022). Web-Based Inventory At PT Yabes Mega
Utama. International Journal of Open Information Technologies, 10(1).

Monalisa, S., Denni Prima Putra, E., Kurnia, F., Studi Sistem Informasi, P., Sains dan
Teknologi UIN Suska Riau, F., Studi Teknik Informatika, P., Sains dan Teknologi
UIN Suska Riau Jl Soebrantas KM, F. H., & Pekanbaru -Riau, P. (2018). Rancang
Bangun Sistem Informasi Inventory Obat Pada Rumah Sakit Jiwa Tampan
Berbasis Web. QUERY : Jurnal Sistem Informasi, 02(02), 58–65.
http://jurnal.uinsu.ac.id/index.php/query/article/view/2610

Mumpuni, R., Sugiarto, & Alhakim, R. (2020). Design and Implementation of

Inventory Forecasting System using Double Exponential Smoothing Method.
Proceeding - 6th Information Technology International Seminar, ITIS 2020, 119–

124. https://doi.org/10.1109/ITIS50118.2020.9321038

Nasril, & Saputra, A. Y. (2016). Rancang Bangun Sistem Informasi Ujian Online.
Jurnal Lentera Ict, 3(1), 47–53.

Novarika, W., Parinduri, L., & Darvito, D. (2021). Analisa Persediaan Produk

Furniture Dan Aksesorise Dengan Menggunakan Metode Abc Di Pt. Home

Center. Buletin Utama Teknik, 16(3), 212–218.

https://www.jurnal.uisu.ac.id/index.php/but/article/view/3784

Nuryasin, Saputra, A. H., Hardi, T., & Fadholur, I. (2019). Analisis dan Perancangan

Sistem Informasi Inventory Barang pada PT Cipta Rasa Multindo. Applied
Information System and Management (AISM), 2(1), 17–22.

https://doi.org/10.15408/aism.v2i1.20205

Pasaribu, J. S. (2021). Perancangan Sistem Informasi Berbasis Web Pengelolaan

229

Inventaris Aset Kantor Di PT. Mpm Finance Bandung. Jurnal Ilmiah Teknologi
Infomasi Terapan, 7(3), 229–241.
https://doi.org/10.33197/jitter.vol7.iss3.2021.655

Pratami, N. S. (2020). Rancang Bangun Sistem Transaksi Tabungan Untuk
Pengelolaan Sampah Menggunakan Metode Simple Additive Weighting (SAW)
Berbasis Web (Studi Kasus: Bank Sampah Sahitya Fakultas Sains dan Teknologi
UIN Syarif Hidayatullah Jakarta) [UIN Syarif Hidayatullah Jakarta].
https://repository.uinjkt.ac.id/dspace/handle/123456789/56343

Premana, A. (2019). Rancang Bangun Sistem Informasi Inventory Barang (Sinbar)
Berbasis Website. Jurnal Ilmiah Intech, 1(02), 51–61.

Purnamayudhia, O., & Subaderi. (2020). Rancang Bangun Produk Furniture dengan
Metode Ergonomic Function Deployment. Jurnal Teknik Industri, 10(3), 210–
217.

Putera, A. R., & Ibrahim, M. (2018). Rancang Bangun Sistem Informasi Peminjaman
dan Pengembalian Buku Perpustakaan SMP Negeri 1 Madiun. DoubleClick:
Journal of Computer and Information Technology, 1(2), 57.
https://doi.org/10.25273/doubleclick.v1i2.2025

Putra, M. Y. (2020). Responsive Web Design Menggunakan Bootstrap Dalam
Merancang Layout Website. Information System for Educators and
Professionals, 5(1), 61–70.

Rambitan, B. F., Sumarauw, J. S. B., & Jan, A. H. (2018). Analisis Penerapan
Manajemen Persediaan Pada Cv. Indospice Manado. Jurnal EMBA: Jurnal Riset
Ekonomi, Manajemen, Bisnis Dan Akuntansi, 6(3), 1448–1457.
https://doi.org/10.35794/emba.v6i3.20228

Ritchie, P. (2016). Practical Microsoft Visual Studio 2015. In Practical Microsoft
Visual Studio 2015. https://doi.org/10.1007/978-1-4842-2313-0

Rizkiah, N. (2017). Rancang Bangun Sistem Informasi Inventory Housekeeping (Studi
Kasus: Zahabi Hotel Jakarta) [UIN Syarif Hidayatullah Jakarta].
https://repository.uinjkt.ac.id/dspace/handle/123456789/52856

Rudianto, B., & Achyani, Y. E. (2020). Penerapan Metode Rapid Application
Development pada Sistem Informasi Persediaan Barang berbasis Web. Bianglala
Informatika, 8(2), 117–122.

Ruhul, A. (2017). Rancang Bangun Sistem Informasi Penerimaan Siswa Baru Pada
SMK Budhi Warman 1 Jakarta. Jurnal Ilmu Pengetahuan Dan Teknologi
Komputer, 2(2), 113–121.

S Pasaribu, J. (2021). Development of a Web Based Inventory Information System.
International Journal of Engineering, Science and Information Technology, 1(2),
24–31. https://doi.org/10.52088/ijesty.v1i2.51

Sabharwal, S., Kaur, P., & Sibal, R. (2017). Empirical and Theoretical Validation of a
Use Case Diagram Complexity Metric. International Journal of Information

230

Technology and Computer Science, 9(11), 35–47.
https://doi.org/10.5815/ijitcs.2017.11.04

Saputra, A. H. (2020). Rancang Bangun Sistem Informasi Inventory Barang

Menggunakan Metode First-In First-Out (FIFO) Berbasis Web Pada PT Cipta

Rasa Multindo [UIN Syarif Hidayatullah Jakarta].

https://repository.uinjkt.ac.id/dspace/handle/123456789/56228

Saputro, J. I., Hasibuan, I. Y., & Octavia, D. (2020). Information System Design

Reminder Inventory Control At PT Nuansa Timur Lestari. Aptisi Transactions on
Management (ATM), 4(1), 49–56. https://doi.org/10.33050/atm.v4i1.1085

Saputro, J., & Septaningsih, V. (2020). Design of Information Systems Inventory
Inventory In Sinar Sakti Racing Industry Based Web. Jurnal Mantik, 3(4), 31–38.

Septryanti, A., & Fitriyanti. (2017). Rancang Bangun Aplikasi Kunci Pintu Otomatis

Berbasis Mikrokontroler Arduino Menggunakan Smartphone Android. CESS
(Journal Of Computer Engineering System And Science), 2(2), 59–63.

https://doi.org/https://doi.org/10.24114/cess.v2i2.5803

Setiyani, L., Rostiani, Y., & Ratnasari, T. (2020). Analisis Kebutuhan Fungsional
Sistem Informasi Persediaan Barang Perusahaan General Trading (Studi Kasus:
PT. Amco Multitech). Owner: Riset Dan Jurnal Akuntansi.
http://polgan.ac.id/owner/index.php/owner/article/view/205

Shukor, N. S. A., MohdSuradi, N. R., KamarulAdzhar, Z. A., Adnan, Z., Teridi, N. A.,

Rauf, M. F. A., Ridzuan, T., Abdullah, K. A., Amil, M. A., Rahim, N. M.,

Basaruddin, S., Hassan, W. A. W., & Osman, A. (2021). Information System
Development with MVC Approach : A Case Study On Team Communication

Strategy. Turkish Journal of Computer and Mathematics Education, 12(14),
4380–4390.

Silaen, H. T., & Fadhli, M. (2021). Penerapan LKPD Berbasis Android Untuk

Meningkatkan Pernerapan Metode Klasisfikasi ABC pada Sistem Informasi

Persediaan Berbasis Website (Studi Kasus: Usaha Dagang Bangun Tani). ABEC

Indonesia, 417–423.

https://abecindonesia.org/proceeding/index.php/abec/article/download/187/203

Singh, D., & Verma, A. (2018). Inventory Management in Supply Chain. Materials
Today: Proceedings, 5(2), 3867–3872.

https://doi.org/10.1016/j.matpr.2017.11.641

Soegoto, E. S., & Palalungan, A. F. (2020). Web Based Online Inventory Information
System. IOP Conference Series: Materials Science and Engineering, 879(1).
https://doi.org/10.1088/1757-899X/879/1/012125

Sugiarti, Y. (2018). Dasar-Dasar Pemrograman Java Netbeans Database, UML, dan
Interface (N. N. M (ed.)). PT Remaja Rosdakarya. www.rosda.co.id

Sugito, L. T., & Sugiarti, Y. (2018). Rancang Bangun Sistem Informasi Kesehatan
pada PT Jasa Marga Persero Tbk. Applied Information System and Management
(AISM), 1(2), 117–121. https://doi.org/10.15408/aism.v1i2.20108

231

Susanti, D., & Haevi, D. (2018). Rancang Bangun Aplikasi Aset SMPN 1 Kasokandel
Menggunakan Netbeans 8.0. Polban, 313–318.
https://jurnal.polban.ac.id/index.php/proceeding/article/viewFile/1115/916

Tang, E. (2020). Investigating the Effect of the Entity Relationship View on Model-
View-Controller (MVC) Web Development. Northcentral University.

Vázquez, L., Valdez, A., Cortes, G., & Rosales, M. (2020). Development of a Graphic
Information System Applied to Quality Statistic Control in Production Processes.
International Journal of Advanced Computer Science and Applications, 11(9),
552–558. https://doi.org/10.14569/IJACSA.2020.0110966

Vidal-Silva, C., Jiménez, C., Madariaga, E., & Urzúa, L. (2020). Applying PHP
Codeigniter For Easy Web Development. International Journal of Scientific and
Technology Research, 9(3), 4209–4211.

Wahyudin, W., & Kristiyanto, F. (2019). Rancang Bangun Sistem Informasi
Persediaan Spare Part Mobil Berbasis Web Menggunakan Metode ABC. Jurnal
Infortech, 1(1), 9–13. https://doi.org/10.31294/infortech.v1i1.6984

Wibawa, J. C., & Julianto, F. (2016). Rancang Bangun Sistem Informasi Kepegawaian
(Studi Kasus : PT Dekatama Centra). Jurnal Teknik Informatika Dan Sistem
Informasi, 2(2), 173–185. https://doi.org/10.28932/jutisi.v2i2.455

Widhyaestoeti, D. (2019). Rancang Bangun Sistem Inventory Data Barang Berbasis
Web (Studi Kasus: PT Graha Sarana Duta). Inova-Tif, 02(01), 79–86.
http://150.107.142.43/index.php/INOVA-TIF/article/view/2779

Zulfallah, F. H., & Hidayatuloh, S. (2021). Analisis dan Perancangan Sistem Informasi
Pendaftaran Magang pada Inspektorat Jendral Kementerian Pendidikan dan
Kebudayaan. Jurnal Esensi Infokom, 5(1), 27–35.

232

LAMPIRAN

233

Wawancara 1

Pewawancara : Muhammad Zhafari

Narasumber : Ardian Aditya

Jabatan Narasumber : Staff Barang

Tanggal : 9 Juni 2021

1. Assalamualaikum Warahmatullahi Wabarakatuh, selamat siang Pak Adit, ini
saya M. Zhafari yang sedang melakukan penelitian skripsi di PT. SKA. Saya
ingin meminta waktu Bapak untuk melakukan wawancara dengan saya,
bagaimana Pak?

Jawaban :

Waalaikumsalam, oh iya mas zhafari, silahkan

2. Begini Pak Adit, saya ingin bertanya terkait alur kegiatan pada bagian
inventory PT. SKA, mulai dari barang masuk sampai keluar. Apakah Pak
Adit bisa membantu menjelaskannya Pak?
Jawaban :
Iya mas, jadi seperti ini. Pertama-tama, kalau ada barang masuk, saya sebagai staff
barang, menerima surat po/do dari pemasok, kemudian saya catat ke dalam
komputer. Ketika barang sudah sampai, saya langsung menurunkan barang dan
merapikannya pada gudang sembari mengecek ulang dengan data pada surat po/do
dan data pada komputer. Lalu, ketika ada pembelian, staff penjualan akan
konfirmasi data stok kepada saya, dan saya akan cek ketersediaannya. Apabila stok
ada, maka staff penjualan akan langsung membuat surat jalan dan memberikan info

234

ke staff logistik. Akan tetapi, jika stok kosong, saya akan info ke atasan saya. Begitu
kira-kira mas zhafari
3. Baik Pak, sudah cukup jelas. Apakah Bapak melakukan proses pencatatan
stok ke dalam Microsoft Excel Pak? Dan apakah ada masalah terkait hal itu?
Jawaban :
Betul mas. Kalau masalah sih jarang mas, paling ya kadang-kadang terdapat salah
input. Selain itu, agak ribet juga kalau untuk proses laporan karna saya harus hitung
manual dan harus teliti. Paling ya kekurangan lainnya kadang saya harus selalu buka
komputer biar bisa cek dan update stok terus.
4. Kalau proses pencatatan seperti itu biasanya dilakukan berapa lama ya Pak?
Jawaban :
Sebetulnya setiap hari kami selalu melakukan pencatatan barang di gudang.
Biasanya setiap pagi kami selalu melakukan cek ulang stok agar jumlah fisik barang
bisa sesuai dengan data di komputer. Kurang lebih memakan waktu 20-30 menit.
5. Baik Pak. Sedangkan, untuk proses pembuatan laporan itu bagaimana Pak
alurnya? Dan biasanya membutuhkan waktu berapa lama ya Pak?
Jawaban :
Proses pembuatan laporan sebetulnya cepet mas, tinggal input data saja di excel
karna sudah ada templatenya. Yang membuat jadi makan banyak waktu yaitu
karena saya harus cek ulang lagi mas semuanya, mulai dari surat2 dan data di excel.
Belum lagi jika ada yang nyelip-nyelip. Biasanya saya bisa seharian kalau ngerjain
laporan. Biasanya saya ngerjain itu sekitar 1 jam.
6. Oh... seperti itu ya Pak. Kalau dengan bagian lain, terutama bagian penjualan,
apakah beberapa permasalahan tadi berdampak kepada bagian yang lain juga
ya Pak?

235

Jawaban :
Ada juga mas. Seperti yang tadi saya sebutkan, karena terkadang terdapat salah
input sehingga terkadang miskom sama bagian penjualan. Mereka sering komplain
kalo stoknya ga sesuai.
7. Lalu apabila tidak sesuai seperti itu, solusi yang biasa diterapkan bagaimana
Pak?
Jawaban :
Jadi, apabila bagian penjualan sudah terlanjur deal dengan pelanggan, biasanya
kami akan nalangin terlebih dahulu, karena ketika kami melakukan pengadaan,
barang baru dapat dibayar jika invoice sudah keluar. Belum lagi jika terdapat cacat
produk, maka barang kami harus retur dari pelanggan lalu ke pemasok. Hal seperti
itu yang sering kali merugikan kami.
8. Begitu ya Pak, kalau dengan bagian pengadaan barang itu bagaimana Pak jika
terdapat kendala seperti itu?
Jawaban :
Nah, kalo dengan bagian pengadaan, karena stok terkadang suka tidak update, jadi
pemesanan barang dari supplier terkadang menjadi terburu-buru, seperti yang tadi
saya jelaskan. Selain itu, suka banyak stok yang menumpuk karena data fisik tidak
sesuai dengan data di komputer.
9. Berarti, menurut Pak Adit, apakah proses yang berjalan saat ini sudah baik
atau belum ya Pak?
Jawaban :
Kalo bagi saya, sebetulnya sudah lebih baik jika dibanding melakukan pencatatan
dengan kertas ya, karena dulu pas awal-awal sempat seperti itu. Akan tetapi, jika

236

seperti ini sebetulnya juga bisa dikatakan masih dilakukan secara semi manual
proses pencatatannya.
10. Pak Adit, apakah saya boleh untuk meminta data barang keluar dari Januari
– Juni 2021 Pak? Saya akan menerapkan metode manajemen inventory pada
sistem usulan nantinya dan perlu data tersebut untuk rumus perhitungannya.
Jawaban :
Oh boleh mas, nanti datanya akan saya kirim via email saja ya.
11. Baik Pak Adit, terimakasih atas waktu dan jawaban Bapak, mohon maaf
apabila ada yang kurang berkenan Pak.
Jawaban :
Iya mas zhafari, sama-sama. Semoga sukses ya penelitiannya.

237

Wawancara 2

Pewawancara : Muhammad Zhafari

Narasumber : Hendi Jaenudin

Jabatan Narasumber : Direktur

Tanggal : 11 Juni 2021

1. Assalamualaikum Warahmatullahi Wabarakatuh, selamat siang Pak Hendi,
ini saya M. Zhafari yang sedang melakukan penelitian skripsi di PT. SKA.
Saya ingin meminta waktu Bapak untuk melakukan wawancara dengan saya,
bagaimana Pak?
Jawaban :
Wa’alaikumussalam, baik boleh, silahkan mas zhafari

2. Pak Hendi, saya ingin menanyakan terkait data profil PT. SKA, apakah Bapak
bisa membantu menjelaskan Pak?
Jawaban :
Baik mas, jadi awalnya PT. SKA itu sebetulnya pecahan dari perusahaan lama yang
bergerak di bidang pengadaan ATK. Awal terbentuknya itu sekitar tahun 2019. Saat
itu kami fokus sebagai penyuplai barang-barang packing, seperti stretch film,
lakban, dan sebagainya. Pada awalnya karyawan juga masih sedikit, sekitar 4 orang
saja, karna kan masih awal dan penjualan belum banyak seperti sekarang. Kita udah
beberapa kali rombak struktur perusahaan sih mas, ada sekitar 3 kali.

3. Baik Pak, kalau untuk saat ini jumlah karyawan dan struktur organisasinya
seperti apa ya Pak?
Jawaban :

238

Saat ini karyawan ada sekitar 10 orang dan menempati beberapa bagian yaitu bagian
keuangan, bagian pengadaan dan persediaan, bagian pemasaran dan penjualan, dan
bagian logistik. Kalau komisaris hanya ada 2 orang saja. Untuk bagan lengkapnya
nanti akan saya share filenya ya
4. Untuk tugas dan tanggung jawab karyawan itu apa saja ya Pak?
Jawaban :
Wah itu ada banyak mas, nanti saya share juga filenya, jadi mas zhafari tinggal lihat
saja
5. Lalu, saya boleh minta logo PT. SKA tidak Pak?
Jawaban :
Boleh mas, nanti saya share juga berikut file yang tadi ya
6. Pak, dari hasil wawancara dengan Pak Adit, beliau bilang PT. SKA sering
mengalami kerugian akibat data stok yang tidak sesuai ya Pak?
Jawaban :
Oh iya betul itu mas, itu masalah yang kami selalu temui ternyata ya dari kesalahan
sepele akibat lalai saja, tapi frekuensinya bisa dikatakan hampir 3-4 kali dalam
sebulan. Bahkan pernah kita rugi 40juta pas tahun kemarin akibat stok yang kurang,
jadi kita nalangin dengan beli stok ke pedagang juga. Nah kalau kejadian seperti itu
kita sering mengalami, mungkin dalam setahun ada 12-20 transaksi yang seperti itu,
sehingga kerugiannya cukup besar.
7. Oh begitu ya Pak, besar juga ya Pak. Pak, kalau kendala seperti internet mati,
mati listrik, atau malfungsi komputer apakah sering terjadi Pak?
Jawaban :
Kalau masalah seperti itu bisa dikatakan jarang terjadi, namun terkadang kalau
internet mati kan bisa sampe 3-4 hari, kalau mati lampu paling sehari juga sudah

239

bener. Kalau kendala malfungsi paling lemot aja sih, pernah ada trouble ya itu juga
karena ada virus jadi harus install ulang, tapi untung datanya tidak hilang.
8. Begitu ya Pak, selain itu apakah saya juga boleh meminta data-data pada
bagian persediaan, penjualan, dan pengadaan untuk menunjang penelitian
saya Pak?
Jawaban :
Silahkan mas, apapun keperluan mas untuk penelitian nanti saya sampaikan ke
bagian tersebut. Nanti mas tinggal ngomong saja ya sama staffnya.
9. Baik Pak, terimakasih atas waktu dan jawabannya, terimakasih sudah
mengizinkan saya melakukan penelitian di perusahaan Bapak, semoga PT.
SKA semakin berkembang dan maju
Jawaban :
Sama-sama mas zhafari, kalau ada apa-apa silahkan kabari saya ya, jangan sungkan.
Sukses terus penelitiannya mas zhafari.

Source Code Models

 StokModel.php {

<?php protected $table =
'stok';

namespace App\Models; protected $primaryKey
= 'id_stok';

use CodeIgniter\Model; protected
$useTimestamps = true;
class StokModel extends
Model protected

$allowedFields =

['jml_stok', 'bts_stok',

'id_brg', 'id_kategori'];

240

public function >orderBy('stok.updated_at'
, 'ASC')->findAll();
search($katakunci)
}

{

return $this- public function

>like('nama_brg', laporanPerMinggu($tanggalA

$katakunci)- wal, $tanggalAkhir)

>orLike('jenis_brg', {

$katakunci)-

>orLike('kategori_brg', return $this-

$katakunci)- >table('stok')-

>orLike('jml_stok', >join('barang',

$katakunci)- 'barang.id_brg =

>orLike('bts_stok', stok.id_brg')-

$katakunci); >where("DATE(stok.updated_

} at) BETWEEN '$tanggalAwal'

AND '$tanggalAkhir'")-

>orderBy('stok.updated_at'

public function , 'ASC')->findAll();
getTahun()
}

{

return $this- public function

>table('stok')- laporanPerBulan($bulanAwal

>select('YEAR(created_at) , $bulanAkhir, $tahun)

AS tahun')- {

>groupBy('YEAR(created_at)

')- return $this-

>orderBy('YEAR(created_at) >table('stok')-

', 'ASC')->get()- >join('barang',

>getResultArray(); 'barang.id_brg =

} stok.id_brg')-

>where("YEAR(stok.updated_

at) = '$tahun' AND

public function MONTH(stok.updated_at)

laporanPerHari($tanggal) BETWEEN '$bulanAwal' AND

'$bulanAkhir'")-

{ >orderBy('stok.updated_at'

return $this- , 'ASC')->findAll();

>table('stok')- }

>join('barang',

'barang.id_brg =

stok.id_brg')- public function

>where('DATE(stok.updated_ laporanPerTahun($tahun)

at)', $tanggal)- {

241

return $this-

>table('stok')- public function

>join('barang', jumlahItem($id_stok,

'barang.id_brg = $tahun, $bulan1, $bulan2)

stok.id_brg')-

>where("YEAR(stok.updated_ {

at) = '$tahun'")- return $this-

>orderBy('stok.updated_at' >table('stok')-

, 'ASC')->findAll(); >join('item_sj',

} 'item_sj.id_stok =

stok.id_stok')-

>where("YEAR(item_sj.creat

public function ed_at) = '$tahun' AND

kategori($filterABC) MONTH(item_sj.created_at)

{ BETWEEN '$bulan1' AND

'$bulan2' AND stok.id_stok

return $this- = '$id_stok'")-

>where("stok.id_kategori = >orderBy('item_sj.created_

$filterABC")- at', 'ASC')-

>orderBy('barang.nama_brg' >selectSUM('jumlah')-

, 'ASC'); >findColumn('jumlah');

} }

}

 BarangMasukModel.php 'no_po',
<?php
'no_do',

'jumlah_item',

namespace App\Models; 'total_bm',

'tgl_bm',

use CodeIgniter\Model; 'confirm_wh',

'confirm_mg',

class BarangMasukModel 'bukti_scan',

extends Model 'id_pmsk'

{ ];

protected $table =
'barang_masuk';

protected $primaryKey public function
= 'id_bm';
search($katakunci)

protected {
$useTimestamps = true;
return $this-
>like('no_po',
protected $katakunci)-
$allowedFields = [

242

>orLike('no_do', return $this-
$katakunci)-
>orLike('total_bm', >table('barang_masuk')-
$katakunci)-
>orLike('tgl_bm', >join('pemasok',
$katakunci)-
>orLike('nama_pmsk', 'pemasok.id_pmsk =
$katakunci);
barang_masuk.id_pmsk')-
}
>where("DATE(barang_masuk.

tgl_bm) BETWEEN

'$tanggalAwal' AND

'$tanggalAkhir'")-

>orderBy('barang_masuk.tgl

_bm', 'ASC')->findAll();

public function }
getTahun()

{ public function

return $this- laporanPerBulan($bulanAwal

>table('barang_masuk')- , $bulanAkhir, $tahun)

>select('YEAR(tgl_bm) AS {

tahun')-

>groupBy('YEAR(tgl_bm)')- return $this-

>orderBy('YEAR(tgl_bm)', >table('barang_masuk')-

'ASC')->get()- >join('pemasok',

>getResultArray(); 'pemasok.id_pmsk =

} barang_masuk.id_pmsk')-

>where("YEAR(barang_masuk.

tgl_bm) = '$tahun' AND

public function MONTH(barang_masuk.tgl_bm)

laporanPerHari($tanggal) BETWEEN '$bulanAwal' AND

'$bulanAkhir'")-

{ >orderBy('barang_masuk.tgl

return $this- _bm', 'ASC')->findAll();

>table('barang_masuk')- }

>join('pemasok',

'pemasok.id_pmsk = public function

barang_masuk.id_pmsk')- laporanPerTahun($tahun)

>where('DATE(barang_masuk.

tgl_bm)', $tanggal)- {

>orderBy('barang_masuk.tgl

_bm', 'ASC')->findAll(); return $this-

} >table('barang_masuk')-

>join('pemasok',

'pemasok.id_pmsk =

public function barang_masuk.id_pmsk')-

laporanPerMinggu($tanggalA >where("YEAR(barang_masuk.

wal, $tanggalAkhir) tgl_bm) = '$tahun'")-

>orderBy('barang_masuk.tgl

{ _bm', 'ASC')->findAll();

}

243

} >orLike('no_inv',
 SuratJalanModel.php $katakunci)-
<?php >orLike('total_sj',
$katakunci)-
namespace App\Models; >orLike('tgl_sj',
$katakunci)-
use CodeIgniter\Model; >orLike('nama_pel',
$katakunci);

}

class SuratJalanModel public function
getTahun()
extends Model
{
{
return $this-
protected $table =
'surat_jalan'; >table('surat_jalan')-

>select('YEAR(tgl_sj) AS

protected $primaryKey tahun')-
= 'id_sj';
>groupBy('YEAR(tgl_sj)')-

>orderBy('YEAR(tgl_sj)',

protected 'ASC')->get()-
$useTimestamps = true;
>getResultArray();

protected }
$allowedFields = [

'no_po', public function

'no_inv', laporanPerHari($tanggal)

'jumlah_item', {

'total_sj', return $this-

'tgl_sj', >table('surat_jalan')-

>join('pelanggan',

'confirm_mg', 'pelanggan.id_pel =

'is_done', surat_jalan.id_pel')-

>where('DATE(surat_jalan.t

'id_pel' gl_sj)', $tanggal)-

]; >orderBy('surat_jalan.tgl_

sj', 'ASC')->findAll();

}

public function

search($katakunci) public function

{ laporanPerMinggu($tanggalA

return $this- wal, $tanggalAkhir)

>like('no_po', {
$katakunci)-

244

return $this- MONTH(surat_jalan.tgl_sj)
BETWEEN $bulanAwal AND
>table('surat_jalan')- $bulanAkhir")-
>orderBy('surat_jalan.tgl_
>join('pelanggan', sj', 'ASC')->findAll();

'pelanggan.id_pel = }

surat_jalan.id_pel')-

>where("DATE(surat_jalan.t

gl_sj) BETWEEN

'$tanggalAwal' AND

'$tanggalAkhir'")- public function

>orderBy('surat_jalan.tgl_ laporanPerTahun($tahun)

sj', 'ASC')->findAll();

} {

return $this-

public function >table('surat_jalan')-

laporanPerBulan($bulanAwal >join('pelanggan',

, $bulanAkhir, $tahun) 'pelanggan.id_pel =

surat_jalan.id_pel')-

{ >where("YEAR(surat_jalan.t

gl_sj) = '$tahun'")-

return $this- >orderBy('surat_jalan.tgl_

>table('surat_jalan')- sj', 'ASC')->findAll();

>join('pelanggan', }

'pelanggan.id_pel =

surat_jalan.id_pel')- }

>where("YEAR(surat_jalan.t

gl_sj) = $tahun AND

Source Code Controllers

 Barang.php protected $myTime;

<?php

public function
__construct()
namespace App\Controllers;
{

use $this->barangModel
App\Models\BarangModel; = new BarangModel();

use CodeIgniter\I18n\Time; $this->myTime =
new Time('now',
'Asia/Bangkok');

class Barang extends }
BaseController

{ public function
index()
protected
$barangModel; {

245

// pencarian = return
view('pages/barang',
$katakunci $data);
$this->request-
>getPost('katakunci'); }

if ($katakunci) { public function
tambah()
$barang =

$this->barangModel- {
>search($katakunci);
// validasi form
} else { tambah

$barang = if (!$this-
$this->barangModel; >validate([

} 'nama_brg' =>
[

$data = [ 'rules' =>

'required',

'title' => 'errors'

'SISKA | Data Barang', => [

'role' =>
session('role'),
'required' => 'Harap
dilengkapi.'
'nama_user' =>
session('nama_user'), ]

'nama_jabatan' ],

=> 'kategori_brg'
session('nama_jabatan'),

'barang' => => [

$barang->paginate(5, 'rules' =>
'barang'),
'required',

'pager' => 'errors'
$barang->pager,
=> [

'errors' => 'required' => 'Harap
\Config\Services::validati dilengkapi.'
on(),

'time' => ]

$this->myTime->getHour() ],

]; 'jenis_brg' =>
[

'rules' =>

'required',

246

'errors'

=> [ 'jenis_brg' => $this-
>request-
'required' => 'Harap >getPost('jenis_brg'),
dilengkapi.'

] 'harga_brg' =>

], intval($this->request-
>getPost('harga_brg'))

'harga_brg' => ]);
[

'rules' => // tampilkan
'required|numeric', pesan berhasil

'errors' session()-
>setFlashdata('flash_tamba
=> [ h', 'Berhasil menambahkan
data.');
'required' => 'Harap
dilengkapi.',

'numeric' => 'Format tidak // kembali ke
sesuai'
index

] return
redirect()->to('barang');

] }

])) { }

ke index // kembalikan
errors dengan data +

public function

return ubahTampil($id_brg)
redirect()->to('barang')-
>withInput(); {

$data = [

} else { 'title' =>

// insert data 'SISKA | Ubah Data Barang',
ke database
'role' =>
session('role'),
$this-
>barangModel->save([ 'nama_user' =>
session('nama_user'),
'nama_brg'
'nama_jabatan'
=> $this->request-
>getPost('nama_brg'), =>
session('nama_jabatan'),

'kategori_brg' => $this-

>request-
>getPost('kategori_brg'),

247

'errors' => 'errors'

\Config\Services::validati => [
on(),

'ubah' => 'required' => 'Harap
dilengkapi.'
$this->barangModel-

>getWhere(['id_brg' => ]

$id_brg])->getRowArray(),

'time' => ],

$this->myTime->getHour() 'jenis_brg' =>
[
];

'rules' =>

'required',

return 'errors'
view('pages/barang_ubah',
$data); => [

} 'required' => 'Harap
dilengkapi.'

public function ]

ubahData($id_brg) ],

{ 'harga_brg' =>
[
// validasi form

ubah 'rules' =>
'required|numeric',
if (!$this-
>validate([
'errors'

'nama_brg' => => [
[

'rules' => 'required' => 'Harap
dilengkapi.',
'required',

'errors'

=> [ 'numeric' => 'Format tidak
sesuai'

'required' => 'Harap ]
dilengkapi.'
]

] ])) {

], // kembalikan
dengan data +
'kategori_brg' ke index
errors
=> [

'rules' => return
redirect()-
'required',

248

>to('barang/ubahTampil/' . public function
$id_brg)->withInput(); hapus($id_brg)

} else { {

// insert data $this-
ke database
>barangModel-
$this- >delete($id_brg);
>barangModel->save([
session()-
'id_brg'
>setFlashdata('flash_hapus
=> $id_brg, ', 'Berhasil menghapus
data.');

'nama_brg' return redirect()-
>to('barang');
=> $this->request-
>getPost('nama_brg'),

}

'kategori_brg' => $this- }

>request-  Stok.php
>getPost('kategori_brg'),

<?php

'jenis_brg' => $this- namespace App\Controllers;

>request-
>getPost('jenis_brg'),

'harga_brg' => use App\Models\StokModel;
intval($this->request-
>getPost('harga_brg')) use
App\Models\BarangModel;
]);
use CodeIgniter\I18n\Time;

// tampilkan class Stok extends
pesan berhasil
BaseController
session()-
>setFlashdata('flash_ubah' {
, 'Berhasil mengubah
data.'); protected
$barangModel;

protected $stokModel;

// kembali ke protected $myTime;

index

return public function
redirect()->to('barang'); __construct()

} {

}

249

$this->barangModel // pencarian =
= new BarangModel();
$katakunci
$this->stokModel = $this->request-
new StokModel(); >getPost('katakunci');

$this->myTime = if ($katakunci) {
new Time('now',
'Asia/Bangkok'); $stok-
>search($katakunci);
}
} else {
public function
index() $stok;

{ }

// query dan $data = [
gabung data barang + data
stok 'title' =>
'SISKA | Data Stok',

$stok = $this- 'role' =>
session('role'),
>stokModel->table('stok')-

>select('*')- 'nama_user' =>
session('nama_user'),
>join('barang',

'stok.id_brg =

barang.id_brg')- 'nama_jabatan'

>join('kategori', =>
session('nama_jabatan'),
'stok.id_kategori =

kategori.id_kategori'); 'stok' =>
$stok->paginate(5,
// filter ABC 'stok'),

$filterABC = 'pager' =>
$this->request- $stok->pager,
>getPost('filterABC');
'errors' =>
if ($filterABC) {
\Config\Services::validati
$stok- on(),
>kategori($filterABC);
'barang' =>
} else { $this->barangModel->get()-
>getResultArray(),
$stok;
'time' =>
}
$this->myTime->getHour(),

'filterABC' =>
$filterABC,

250

'tahun' => } else {
$this->stokModel- $bulan1 = 1;
>getTahun()
}
];

return // bulan2 default
view('pages/stok', $data);
if ($bulan2) {
}
$bulan2 =

$this->request-
>getPost('bulan2');

public function } else {

klasifikasiABC()

{ $bulan2 = 6;

$bulan1 = $this- }

>request- // count id_stok
>getPost('bulan1');
$items = $this-
$bulan2 = $this- >stokModel->table('stok')-
>countAllResults();
>request-
>getPost('bulan2');

$tahun = $this-

>request- // data barang
>getPost('tahun');

$barang = $this-

// tahun default >stokModel->table('stok')-

if ($tahun) { >join('barang',

'stok.id_brg =

$tahun = barang.id_brg')-

$this->request- >findAll();
>getPost('tahun');

} else { // rumus
klasifikasi ABC
$tahun =

$this->myTime->getYear();

} // buat variabel
kategori
// bulan1 default
$stretchFilm = 0;
if ($bulan1) { $packingSiku = 0;
$styrofoam = 0;
$bulan1 = $selotape = 0;
$oppTape = 0;
$this->request-
>getPost('bulan1'); 251

$adhesiveTape = 0; } elseif
($barang[$i]['kategori_brg
$maskingTape = 0; '] == 'Selotape') {

$bubblePack = 0; $selotape
+= $nilaiInvestasi;
$doubleTape = 0;
} elseif
$arrowTape = 0; ($barang[$i]['kategori_brg
'] == 'Opp Tape') {
$strappBand = 0;
$oppTape
$airBubble = 0; += $nilaiInvestasi;

$protectionTape = } elseif
0; ($barang[$i]['kategori_brg
'] == 'Packing Siku') {
$jumlahItem =
array();

for ($i = 0; $i < $packingSiku +=
$items; $i++) { $nilaiInvestasi;

$jumlahItem[] } elseif
= $this->stokModel-
>jumlahItem($barang[$i]['i ($barang[$i]['kategori_brg
d_stok'], $tahun, $bulan1, '] == 'Styrofoam') {
$bulan2);
$styrofoam
+= $nilaiInvestasi;

// hitung } elseif
nilai investasi = item x
harga beli ($barang[$i]['kategori_brg
'] == 'Adhesive Tape') {

$adhesiveTape +=
$nilaiInvestasi;
$nilaiInvestasi =
} elseif
$jumlahItem[$i][0] *
($barang[$i]['kategori_brg
$barang[$i]['harga_brg']; '] == 'Masking Tape') {

data // kelompokkan $maskingTape +=
barang sesuai kategori $nilaiInvestasi;

if } elseif

($barang[$i]['kategori_brg ($barang[$i]['kategori_brg
'] == 'Stretch Film') { '] == 'Bubble Pack') {

$stretchFilm += $bubblePack +=
$nilaiInvestasi; $nilaiInvestasi;

} elseif
($barang[$i]['kategori_brg
'] == 'Double Tape') {

252

$doubleTape += // hitung
$nilaiInvestasi; persentase tiap kategori

} elseif for ($i = 0; $i <
$items; $i++) {
($barang[$i]['kategori_brg
'] == 'Arrow Tape') { if
($barang[$i]['kategori_brg
$arrowTape '] == 'Stretch Film') {
+= $nilaiInvestasi;

} elseif $persentase =
/
($barang[$i]['kategori_brg round($stretchFilm *
'] == 'Strapp Band') {
$totalNilaiInvestasi
100);

$strappBand += $id_brg =
$nilaiInvestasi; $barang[$i]['id_stok'];

} elseif $this-

($barang[$i]['kategori_brg >simpanKategori($persentas
'] == 'Air Bubble') { e, $id_brg);

$airBubble } elseif
+= $nilaiInvestasi;
($barang[$i]['kategori_brg
} elseif '] == 'Packing Siku') {

($barang[$i]['kategori_brg $persentase =
'] == 'Protection Tape') {
round($packingSiku /
$protectionTape += $totalNilaiInvestasi *
$nilaiInvestasi; 100);

} $id_brg =
$barang[$i]['id_stok'];
}
$this-
// hitung total >simpanKategori($persentas
nilai investasi e, $id_brg);

$totalNilaiInvestasi = } elseif

($barang[$i]['kategori_brg
'] == 'Styrofoam') {

$stretchFilm + $persentase =
round($styrofoam /
$packingSiku + $styrofoam $totalNilaiInvestasi *
100);
+ $selotape + $oppTape +

$adhesiveTape +

$maskingTape + $bubblePack

+ $doubleTape + $arrowTape $id_brg =
$barang[$i]['id_stok'];
+ $strappBand + $airBubble

+ $protectionTape;

253

$this- } elseif
>simpanKategori($persentas
e, $id_brg); ($barang[$i]['kategori_brg
'] == 'Masking Tape') {
} elseif
($barang[$i]['kategori_brg $persentase =
'] == 'Selotape') { /
round($maskingTape *

$persentase = $totalNilaiInvestasi
round($selotape / 100);
$totalNilaiInvestasi *
100); $id_brg =
$barang[$i]['id_stok'];

$id_brg = $this-
$barang[$i]['id_stok']; >simpanKategori($persentas
e, $id_brg);

$this- } elseif

>simpanKategori($persentas ($barang[$i]['kategori_brg
e, $id_brg); '] == 'Bubble Pack') {

} elseif $persentase =
round($bubblePack /
($barang[$i]['kategori_brg
'] == 'Opp Tape') { $totalNilaiInvestasi *
100);
$persentase =
$id_brg =
round($oppTape / $barang[$i]['id_stok'];
$totalNilaiInvestasi *
100);
$this-
$id_brg =
$barang[$i]['id_stok']; >simpanKategori($persentas
e, $id_brg);

$this- } elseif
>simpanKategori($persentas ($barang[$i]['kategori_brg
e, $id_brg); '] == 'Double Tape') {

} elseif $persentase =
/
($barang[$i]['kategori_brg round($doubleTape *
'] == 'Adhesive Tape') {
$totalNilaiInvestasi
$persentase = 100);
round($adhesiveTape /
$id_brg =
$totalNilaiInvestasi * $barang[$i]['id_stok'];
100);
$this-
$id_brg =
$barang[$i]['id_stok']; >simpanKategori($persentas
e, $id_brg);

$this- } elseif

>simpanKategori($persentas ($barang[$i]['kategori_brg
e, $id_brg); '] == 'Arrow Tape') {

254

$totalNilaiInvestasi *
100);
$persentase =
round($arrowTape / $id_brg =
$barang[$i]['id_stok'];
$totalNilaiInvestasi *
100);

$id_brg = $this-
$barang[$i]['id_stok']; >simpanKategori($persentas
e, $id_brg);

$this- }

>simpanKategori($persentas }
e, $id_brg);

} elseif // tampilkan pesan
($barang[$i]['kategori_brg berhasil
'] == 'Strapp Band') {

$persentase = session()-
/
round($strappBand * >setFlashdata('setPeriode_

$totalNilaiInvestasi berhasil', 'Berhasil
100);
mengubah periode

$id_brg = perhitungan klasifikasi
$barang[$i]['id_stok'];
ABC');

$this- // kembali ke
index
>simpanKategori($persentas
e, $id_brg);

} elseif return redirect()-
>to('stok');
($barang[$i]['kategori_brg
'] == 'Air Bubble') { }

$persentase = public function

round($airBubble / simpanKategori($persentase
$totalNilaiInvestasi *
100); , $id_brg)

$id_brg = {
$barang[$i]['id_stok'];
if ($persentase >
$this- 10 && $persentase < 100) {
>simpanKategori($persentas
e, $id_brg); $this-
>stokModel->save([

} elseif 'id_stok'

($barang[$i]['kategori_brg => $id_brg,
'] == 'Protection Tape') {

$persentase = 'id_kategori' => 1
round($protectionTape / ]);

255

} elseif 'required' => 'Harap
dilengkapi.',
($persentase > 3 &&
$persentase < 10) {

$this- 'is_unique' => 'Nama
>stokModel->save([ barang sudah ada.'

'id_stok'

=> $id_brg, ]

],

'id_kategori' => 2 'jml_stok' =>
[
]);

} elseif 'rules' =>
'required|numeric',
($persentase > 0 &&
$persentase < 3) { 'errors'

$this- => [
>stokModel->save([

'id_stok' 'required' => 'Harap
dilengkapi.',
=> $id_brg,

'id_kategori' => 3 'numeric' => 'Harap
]);
gunakan angka.'
}
} ]

],

'bts_stok' =>
[

public function 'rules' =>
tambah() 'required|numeric',

{ 'errors'

// validasi form => [
tambah

if (!$this- 'required' => 'Harap
>validate([ dilengkapi.',

'id_brg' => [ 'numeric' => 'Harap

'rules' => gunakan angka.'

'required|is_unique[stok.i ]
d_brg]',

'errors' ]

=> [ ])) {

256

ke index // kembalikan // query dan
errors dengan data +
gabung data barang + data
stok

return $ubah = $this-

redirect()->to('stok')- >stokModel->table('stok')-
>withInput();
>select('*')-

} else { >join('barang',

'stok.id_brg =

// insert data barang.id_brg');
ke database

$this- $data = [
>stokModel->save([

'jml_stok' 'title' =>

=> $this->request- 'SISKA | Ubah Data Stok',
>getPost('jml_stok'),
'role' =>
session('role'),
'bts_stok'
=> $this->request- 'nama_user' =>
>getPost('bts_stok'), session('nama_user'),

'id_brg' 'nama_jabatan'

=> $this->request- =>
>getPost('id_brg') session('nama_jabatan'),

]); 'errors' =>

\Config\Services::validati
on(),

// tampilkan 'ubah' =>
pesan berhasil
$ubah->getWhere(['id_stok'
session()-
>setFlashdata('flash_tamba => $id_stok])-
h', 'Berhasil menambahkan
data.'); >getRowArray(),

'barang' =>

$this->barangModel->get()-
>getResultArray(),

// kembali ke 'time' =>

index $this->myTime->getHour()

return ];
redirect()->to('stok');

} return
view('pages/stok_ubah',
} $data);

public function }

ubahTampil($id_stok)

{

257

public function 'jml_stok' =>
[
ubahData($id_stok)

{ 'rules' =>
'required|numeric',
// pengkondisian
untuk rule id apabila user 'errors'
tidak mengubah nama barang
(harus unik) => [

$idLama = $this- 'required' => 'Harap
dilengkapi.',
>stokModel-
'numeric' => 'Harap
>getWhere(['id_stok' =>
$id_stok])->getRowArray();

if ($this- gunakan angka.'

>request- ]

>getPost('id_brg') ==

$idLama['id_brg']) { ],

$rule_id = 'bts_stok' =>
'required'; [

} else { 'rules' =>
'required|numeric',
$rule_id =

'required|is_unique[stok.i 'errors'

d_brg]'; => [

}

'required' => 'Harap
dilengkapi.',

// validasi form

ubah 'numeric' => 'Harap

if (!$this- gunakan angka.'
>validate([
]

'id_brg' => [ ]

'rules' => ])) {

$rule_id,

'errors' ke index // kembalikan
errors dengan data +
=> [

'required' => 'Harap return
dilengkapi.', redirect()-
>to('stok/ubahTampil/' .
$id_stok)->withInput();

'is_unique' => 'Nama } else {
barang sudah ada.'
// insert data
] ke database

],

258

$this- return redirect()-
>stokModel->save([ >to('stok');

'id_stok' }

=> $id_stok, }

'jml_stok'  Barangmasuk.php
=> $this->request-
>getPost('jml_stok'), <?php

'bts_stok' namespace App\Controllers;

=> $this->request-
>getPost('bts_stok'),

'id_brg' use
App\Models\PemasokModel;
=> $this->request-
>getPost('id_brg') use App\Models\StokModel;

]); use
App\Models\BarangMasukMode
// tampilkan l;
pesan berhasil
use
session()- App\Models\ItemBMModel;
>setFlashdata('flash_ubah'
, 'Berhasil mengubah use CodeIgniter\I18n\Time;
data.');

// kembali ke use function

index PHPUnit\Framework\returnVa
lue;

return class Barangmasuk extends
redirect()->to('stok'); BaseController

} {

} protected
$pemasokModel;
public function
protected $stokModel;
hapus($id_stok)
protected $bmModel;
{
protected $itemModel;
$this->stokModel-
>delete($id_stok); protected $myTime;

session()- public function
__construct()
>setFlashdata('flash_hapus

', 'Berhasil menghapus
data.');

259

{ }

$this- = new $data = [

>pemasokModel
PemasokModel();

$this->stokModel = 'title' =>
new StokModel();
'SISKA | Data Barang

Masuk',

$this->bmModel = 'role' =>
new BarangMasukModel(); session('role'),

$this->itemModel = 'nama_user' =>
new ItemBMModel(); session('nama_user'),

$this->myTime = 'nama_jabatan'
=>
new Time('now', session('nama_jabatan'),
'Asia/Bangkok');

} 'bm' => $bm-
>paginate(5, 'bm'),

public function 'pager' =>
index() $bm->pager,

{ 'errors' =>

// query dan join \Config\Services::validati
data barang masuk on(),

$bm = $this- 'stok' =>
>bmModel- $this->stokModel- =
>table('barang_masuk')-
>select('*')- >table('stok')-
>select('*')-
>join('pemasok', >join('barang',
'barang_masuk.id_pmsk = 'barang.id_brg
pemasok.id_pmsk')- stok.id_brg')->get()-
>orderBy('tgl_bm'); >getResultArray(),

// pencarian 'pemasok' =>

$katakunci $this->pemasokModel-
$this->request- >get()->getResultArray(),
>getPost('katakunci');
= 'time' =>

$this->myTime->getHour()

];

if ($katakunci) { return
view('pages/barangmasuk',
$bm- $data);
>search($katakunci);
}
} else {

$bm;

260

public function
tambahData()
'nama_jabatan' =>

{ session('nama_jabatan'),

if 'errors' =>

(isset($_POST['jumlahData' \Config\Services::validati
])) {
on(),

if (!$this-
>validate([
'jumlahData' => $this-
'jumlahData' => [ >request-
>getPost('jumlahData'),

'stok'

'rules' => => $this->stokModel-
'required|numeric',
>table('stok')-

>select('*')-

'errors' => [ >join('barang',

'barang.id_brg =

stok.id_brg')->get()-

'required' => 'Harap >getResultArray(),
dilengkapi',

'numeric' => 'Gunakan 'pemasok' => $this-
hanya angka' >pemasokModel->get()-
>getResultArray(),

] => 'time'
>getHour() $this->myTime-
]

])) { ];

return return
view('pages/barangmasuk_ta
redirect()- mbah', $data);
>to('barangmasuk')-
>withInput(); }

} else { } else {

$data = [ $data = [

'title' => 'SISKA | Tambah 'title' =>
Data Barang Masuk', 'SISKA | Tambah Data Barang
Masuk',
'role'
=> session('role'), 'role' =>
session('role'),

'nama_user' => 'nama_user' =>

session('nama_user'), session('nama_user'),

261

'errors'

'nama_jabatan' => => [

session('nama_jabatan'),

'errors' 'required' => 'Harap
dilengkapi.'
=>
\Config\Services::validati ]
on(),

],

'jumlahData' => 'no_do' => [

session('jumlahData'), 'rules' =>
'required|is_unique[barang
'stok' => _masuk.no_do]',
$this->stokModel- =
'errors'
>table('stok')-
>select('*')- => [
>join('barang',
'barang.id_brg 'required' => 'Harap
dilengkapi.',
stok.id_brg')->get()-
>getResultArray(),

'pemasok' 'is_unique' => 'Nomor
delivery order sudah ada.'
=> $this->pemasokModel-
>get()->getResultArray(),

'time' => ]
$this->myTime->getHour()
],
];
'no_po' => [

return 'rules' =>
view('pages/barangmasuk_ta
mbah', $data); 'required|is_unique[barang
_masuk.no_po]',
}
'errors'
}
=> [

'required' => 'Harap
dilengkapi.',
public function

tambah($jumlahData) 'is_unique' => 'Nomor
purchase order sudah ada.'
{
]
if (!$this-
>validate([ ],

'id_pmsk' => [ 'tgl_bm' => [

'rules' => 'rules' =>
'required|valid_date',
'required',

262

'errors'

=> [ 'required' => 'Harap
dilengkapi.'
]
'required' => 'Harap ],
dilengkapi.',

'valid_date' => 'Tanggal "jml_item$i" => [
tidak sesuai format.'

] 'rules' =>
'required|numeric',
],

'bukti_scan'

=> [ 'errors' => [

'rules' => 'required' => 'Harap
dilengkapi.',
'uploaded[bukti_scan]|max_

size[bukti_scan,5000]|ext_
in[bukti_scan,pdf]',

'errors' 'numeric' => 'Harap

=> [ gunakan angka.' ]
],
'uploaded' => 'Harap
dilengkapi.',

'max_size' => 'Maksimal "packing$i" => [
5Mb.',

'rules' => 'required',

'ext_in' => 'File harus 'errors' => [
PDF.'
'required' => 'Harap
] dilengkapi.'

] ]

])) { ]

for ($i = 1; $i ])) {
<= $jumlahData; $i++) {
if ($i
if == $jumlahData) {
(!$this->validate([

"item$i" => [ //

'rules' => 'required', kembalikan ke index dengan
data + errors

'errors' => [ session()-

263

>setFlashdata('jumlahData' ],
, $jumlahData);

"packing$i" => [

return redirect()-

>to('barangmasuk/tambahDat 'rules' => 'required',

a')->withInput();

} 'errors' => [

}

} 'required' => 'Harap
dilengkapi.'
} else {

for ($i = 1; $i ]
<= $jumlahData; $i++) {
]

if ])) {
(!$this->validate([
if ($i
== $jumlahData) {

"item$i" => [ //

'rules' => 'required', kembalikan ke index dengan
data + errors

'errors' => [ session()-

'required' => 'Harap >setFlashdata('jumlahData'
dilengkapi.' , $jumlahData);
]
], return redirect()-

>to('barangmasuk/tambahDat

a')->withInput();

}

"jml_item$i" => [ }

'rules' => }
'required|numeric',

// olah data

'errors' => [ total bm

$total_bm = 0;

'required' => 'Harap $a = 1;
dilengkapi.',

'numeric' => 'Harap while ($a <=
] $jumlahData) {

gunakan angka.'

264


Click to View FlipBook Version