Anda di halaman 1dari 186

KERJA PRAKTIK – KI141330

APLIKASI WEB GUDANG ATK

PT.PLN (Persero) P3B JB APB Jawa Timur


Jl. Suningrat 45, Taman, Sepanjang, Sidoarjo
Periode: 1 Agustus 2015 – 31 Agustus 2015

Oleh:
DEWI MAYA FITRIANA 5112100039
M. ARIEF RIDWAN 5112100097

Pembimbing Jurusan
Prof. Ir. Handayani Tjandrasa, M.Sc, Ph.D
Pembimbing Lapangan
1. Vina Desliana, A.Md.
2. Samsul Ma’arif

JURUSAN TEKNIK INFORMATIKA


Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
Surabaya 2015 i
[Halaman ini sengaja dikosongkan]

ii
KERJA PRAKTIK – KI141330

APLIKASI WEB GUDANG ATK

PT.PLN (Persero) P3B JB APB Jawa Timur


Jl. Suningrat 45, Taman, Sepanjang, Sidoarjo
Periode: 1 Agustus 2015 – 31 Agustus 2015

Oleh:
DEWI MAYA FITRIANA 5112100039
M. ARIEF RIDWAN 5112100097

Pembimbing Jurusan
Prof. Ir. Handayani Tjandrasa, M.Sc, Ph.D
Pembimbing Lapangan
1. Vina Desliana, A.Md.
2. Samsul Ma’arif

JURUSAN TEKNIK INFORMATIKA


Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
Surabaya 2015
iii
[Halaman ini sengaja dikosongkan]

iv
LEMBAR PENGESAHAN

KERJA PRAKTIK

APLIKASI WEB GUDANG ATK

Oleh:
DEWI MAYA FITRIANA 5112100039
M. ARIEF RIDWAN 5112100097

Disetujui oleh Pembimbing Kerja Praktik:

1. Prof. Ir. Handayani Tjandrasa,M.Sc,Ph.D ..............................


NIP. 19490823 197603 2 001 (Pembimbing Jurusan)

2. Vina Desliana
NIP. 8408377Z ................................
(Pembimbing Lapangan)

SURABAYA
AGUSTUS, 2015

v
[Halaman ini sengaja dikosongkan]

vi
APLIKASI WEB GUDANG ATK

Nama Mahasiswa : Dewi Maya Fitriana


NRP : 5112100039
Nama Mahasiswa : M. Arief Ridwan
NRP : 5112100097
Jurusan : Teknik Informatika FTIf-ITS
Pembimbing Jurusan : Prof. Ir. Handayani Tjandrasa, M.Sc,
Ph,D
Dosen Pembimbing II : Vina Desliana

ABSTRAK
PT. PLN Persero adalah salah satu BUMN yang cukup
besar di Indonesia. Untuk beberapa proses bisnis dan operasi
kerjanya sudah memiliki aturan dan SOP sendiri. Sebagai contoh
untuk proses pengadaan barang pada gudang sudah ada SOP
yang cukup jelas, namun sampai saat ini prosesnya masih
dilakukan secara manual dan hanya dapat dilakukan di gudang.
Salah satu solusi yang kami tawarkan adalah aplikasi
berbasis web yang dapat membantu pemesanan dan pengadaan
barang di gudang. Aplikasi yang kami buat dikembangakan
dengan framework Laravel (framework PHP), serta
menggunakan HTML, CSS, dan JS.
Dari hasil pengamatan kebutuhan dan setelah
pengembangan dilakukan, didapatkan aplikasi yang mampu
melakukan proses bisnis pemesanan dan pengadaan barang
tanpa harus menuju gudang karena aplikasi ini berbasis web dan
dapat diakses secara online.

Kata kunci: Web, Pengadaan, Gudang

vii
[Halaman ini sengaja dikosongkan]

viii
KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Esa


atas segala rahmat dan hidayah-Nya sehingga penulis dapat
menyelesaikan Laporan Kerja Praktik ini. Adapun pokok bahasan
yang kami ambil dalam laporan kerja praktik ini berisi tentang
Aplikasi WEB Gudang ATK yang digunakan pada PT. PLN
(Persero) P3B JB APB Jawa Timur. Pada kesempatan ini kami
juga ingin mengucapkan terimakasih kepada :
1. Prof.Ir. Handayani Tjandrasa, M.Sc, Ph.D, selaku dosen
pembimbing kerja praktik kami.
2. Sdri. Vina Desliana dan Sdra. Samsul Ma’arif, selaku
pembimbing lapangan kerja praktik kami di PT.PLN
(Persero) P3B JB APB Jawa Timur.
3. Bpk. Hadi Surono yang telah membantu kami untuk
mendapatkan perusahaan tempat kerja praktik kami.
4. Terimakasih juga kepada PT. PLN Persero APB JATIM,
khususnya kepada Bpk. Bambang Warsono selaku
manajer perusahaan yang telah memberi kesempatan
kepada kami.
5. Serta pihak-pihak lainnya yang ikut serta membantu dan
membimbing kami dalam Kerja Praktik ini.
Semoga apa saja yang kami kerjakan dalam kerja praktik
selama satu bulan bermanfaat untuk peningkatan ilmu kami dan
bagi perusahaan. Apabila dalam penyusunan laporan ini terdapat
kesalahan kami mohon maaf. Demikian pengantar buku laporan
KP yang dapat kami sampaikan, terimakasih.

Surabaya, 31 Agustus 2015

Dewi Maya Fitriana & M. Arief Ridwan

ix
[Halaman ini sengaja dikosongkan]

x
DAFTAR ISI
1
LEMBAR PENGESAHAN ...........................................................v
Abstrak ....................................................................................... vii
KATA PENGANTAR................................................................. ix
DAFTAR ISI ............................................................................... xi
DAFTAR GAMBAR ................................................................ xiii
DAFTAR TABEL ..................................................................... xvi
DAFTAR KODE SUMBER ................................................... xviii
1 BAB I PENDAHULUAN ........................................................21
1.1. Latar Belakang ............................................................ 21
1.2. Tujuan.......................................................................... 22
1.3. Manfaat........................................................................ 22
1.4. Rumusan Permasalahan ............................................... 22
1.5. Lokasi dan Waktu Kerja Praktik ................................. 23
1.6. Metodologi Kerja Praktik ............................................ 23
1.7. Sistematika Laporan .................................................... 24
2 BAB II PROFIL PERUSAHAAN ...........................................27
2.1. Sejarah Perusahaan ...................................................... 27
2.2. Visi dan Misi Perusahaan ............................................ 28
2.3. Divisi / Departemen Fasilitas Operasi ......................... 29
2.4. Struktur Organisasi ...................................................... 30
3 BAB III TINJAUAN PUSTAKA.............................................32
3.1. Landasan Teori ............................................................ 32
3.1.1. Web Programming (Pemrograman Web) ............ 32
3.1.2. Database Management System ............................ 35
3.2. Kerangka Kerja dan Pustaka ....................................... 35
3.2.1. Laravel ................................................................. 36
3.2.2. Bootstrap ............................................................. 36
3.2.3. Laravel Excel Helper ........................................... 37
4 BAB IV ANALISIS DAN PERANCANGAN SISTEM .........38
4.1. Analisis Sistem ............................................................ 38
4.1.1. Cakupan Permasalahan........................................ 38
4.1.2. Deskripsi Umum Sistem ...................................... 38

xi
4.1.3. Analisis Kebutuhan Sistem .................................. 38
4.2. Perancangan Sistem ..................................................... 39
4.2.1. Arsitektur Sistem ................................................. 39
4.2.2. Perancangan Penyimpanan Data.......................... 40
4.2.3. Diagram Kasus Penggunaan (Use Case) ............. 47
5 BAB V IMPLEMENTASI SISTEM ....................................... 60
5.1. Implementasi Lapisan Antarmuka ............................... 60
5.2. Implementasi Antarmuka Pengguna ............................ 60
6 BAB VI PENGUJIAN DAN EVALUASI .............................. 74
6.1. Lingkungan Pengujian ................................................. 74
6.2. Skenario Pengujian ...................................................... 74
6.3. Evaluasi Pengujian ...................................................... 75
6.3.1. Index .................................................................... 76
6.3.2. Pengaturan ........................................................... 77
6.3.3. Utama .................................................................. 79
6.3.4. Laporan ................................................................ 83
6.4. Rangkuman Hasil Pengujian ....................................... 84
7 BAB VII KESIMPULAN DAN SARAN ............................... 88
7.1. Kesimpulan .................................................................. 88
7.2. Saran ............................................................................ 88
DAFTAR PUSTAKA ................................................................. 90
LAMPIRAN ............................................................................... 91
7.3. Implementasi Lapisan Kontrol .................................. 149
7.4. Implementasi Lapisan Data ....................................... 176
BIODATA PENULIS ............................................................... 185

xii
DAFTAR GAMBAR
Gambar 1 Logo PT. PLN (Persero), Tbk .................................... 27
Gambar 2 Laravel Framework .................................................... 36
Gambar 3 Logo Bootstrap ........................................................... 36
Gambar 4 Laravel Excel .............................................................. 37
Gambar 5 Arsitektur Laravel ....................................................... 40
Gambar 6 Physycal Data Model .................................................. 40
Gambar 7 Tabel migrations ......................................................... 41
Gambar 8 Tabel users .................................................................. 41
Gambar 9 Tabel password_resets ................................................ 42
Gambar 10 Tabel barangs............................................................ 42
Gambar 11 Tabel anggotas .......................................................... 43
Gambar 12 Tabel departemens .................................................... 43
Gambar 13 Tabel pengadaan_barangs......................................... 44
Gambar 14 Tabel pengajuan_barangs ......................................... 44
Gambar 15 Tabel pesanan_barangs ............................................. 45
Gambar 16 Tabel barang_terimas ............................................... 46
Gambar 17 Tabel barang_terpesans ............................................ 46
Gambar 18 Use Case Diagram .................................................... 47
Gambar 19 Halaman Login ......................................................... 60
Gambar 20 Halaman utama SUPERVISOR................................ 61
Gambar 21 Halaman utama user biasa ........................................ 61
Gambar 22 Halaman list barang untuk SUPERVISOR .............. 62
Gambar 23 Form tambah barang ................................................. 62
Gambar 24 Halaman list barang untuk user biasa ....................... 62
Gambar 25 Halaman list anggota untuk SUPERVISOR ............. 63
Gambar 26 Halaman list anggota untuk user biasa ..................... 63
Gambar 27 Halaman form tambah anggota................................. 63
Gambar 28 Halaman ubah data anggota...................................... 64
Gambar 29 Halaman list departemen .......................................... 64
Gambar 30 Halaman form tambah departemen........................... 64
Gambar 31 Halaman ubah data departemen ................................ 65
Gambar 32 Halaman list pesanan user biasa ............................... 65
Gambar 33 Halaman list pesanan untuk SUPERVISOR ............ 66

xiii
Gambar 34 Halaman show pesanan untuk SUPERVISOR ......... 66
Gambar 35 Halaman show pesanan untuk user biasa .................. 67
Gambar 36 Halaman list pengajuan barang untuk user biasa ...... 67
Gambar 37 Halaman form tambah pengajuan ............................. 68
Gambar 38 Halaman list pengajuan untuk SUPERVIOR ........... 68
Gambar 39 Halaman list pengadaan barang oleh SUPERVISOR
..................................................................................................... 69
Gambar 40 Halaman show pengadaan barang............................. 69
Gambar 41 Halaman tambah pengadaan barang ......................... 69
Gambar 42 Halaman filter laporan pesanan ................................ 70
Gambar 43 Halaman show laporan pesanan................................ 70
Gambar 44 Halaman filter laporan pengadaan ............................ 70
Gambar 45 Halaman show laporan pengadaan ........................... 71
Gambar 46 Halaman ubah password ........................................... 71
Gambar 47 Halaman bantuan ...................................................... 72
Gambar 48. Foto Gerbang Utama PT. PLN (Persero) P3B JB .. 182
Gambar 49. Foto saat memasukkan sistem pada server PLN .... 182
Gambar 50. Foto saat melakukan demo program kepada dosen
pmbimbing................................................................................. 183
Gambar 51. Foto kelompok kerja praktik dengan dosen
pembimbing (dari ujung kiri Vina Desliana, Dewi Maya Fitriana,
M. Arief Ridwan, dan Samsul Ma’arif) ..................................... 183
Gambar 52. Foto tampak depan gedung PT PLN (Persero) P3B
JB APB Jatim ............................................................................ 184

xiv
[Halaman ini sengaja dikosongkan]

xv
DAFTAR TABEL
Tabel 1 Deskripsi kebutuhan fungsional ..................................... 39
Tabel 2 Deskripsi fungsi 1 ........................................................... 48
Tabel 3 Deskripsi fungsi 2 ........................................................... 48
Tabel 4 Deskripsi fungsi 3 ........................................................... 49
Tabel 5 Deskripsi fungsi 4 ........................................................... 50
Tabel 6 Deskripsi fungsi 5 ........................................................... 51
Tabel 7 Deskripsi fungsi 6 ........................................................... 52
Tabel 8 Deskripsi fungsi 7 ........................................................... 53
Tabel 9 Deksripsi fungsi 8 ........................................................... 54
Tabel 10 Deskripsi fungsi 9 ......................................................... 55
Tabel 11 Deskripsi fungsi 10 ....................................................... 56
Tabel 12 Deskripsi fungsi 11 ....................................................... 57
Tabel 13 Deskripsi fungsi 12 ....................................................... 58
Tabel 14 Deskripsi fungsi 13 ....................................................... 59
Tabel 15 Daftar pengujian ........................................................... 75
Tabel 16 Tabel hasil pengujian halaman login ............................ 76
Tabel 17 Tabel hasil pengujian halaman bantuan........................ 77
Tabel 18 Tabel hasil pengujian halaman anggota........................ 78
Tabel 19 Tabel hasil pengujian halaman data barang .................. 79
Tabel 20 Tabel hasil pengujian halaman utama .......................... 79
Tabel 21 Tabel hasil pengujian halaman data departemen .......... 80
Tabel 22 Tabel hasil pengujian aktivitas pesanan barang ........... 81
Tabel 23 Tabel hasil pengujian halaman pengajuan barang ........ 82
Tabel 24 Tabel hasil pengujian halaman pengadaan barang ....... 83
Tabel 25 Tabel hasil pengujian halaman laporan pesanan .......... 84
Tabel 26 Tabel hasil pengujian halaman laporan pengadaan ...... 84
Tabel 27 Rangkuman hasil pengujian ......................................... 85
Tabel 28 Hasil pengujian kebergunaan ....................................... 85
Tabel 29 Hasil pengujian kemudahan ......................................... 86

xvi
[Halaman ini sengaja dikosongkan]

xvii
DAFTAR KODE SUMBER
Kode Sumber 1 Kode Sumber Halaman Login ........................... 93
Kode Sumber 2 Kode sumber menu navbar ................................ 98
Kode Sumber 3 Kode sumber form create barang..................... 100
Kode Sumber 4 Kode sumber list barang .................................. 102
Kode Sumber 5 Kode sumber form ubah barang ...................... 104
Kode Sumber 6 Kode sumber list anggota ................................ 105
Kode Sumber 7 Kode sumber form tambah anggota................. 108
Kode Sumber 8 Kode sumber form ubah anggota..................... 110
Kode Sumber 9 Kode sumber list departemen .......................... 111
Kode Sumber 10 Kode sumber form tambah departemen......... 112
Kode Sumber 11 Kode sumber form ubah departemen............. 114
Kode Sumber 12 Kode sumber list pengadaan .......................... 116
Kode Sumber 13 Kode sumber show data pengadaan............... 118
Kode Sumber 14 Kode sumber form tambah pengadaan .......... 121
Kode Sumber 15 Kode sumber list pengajuan .......................... 124
Kode Sumber 16 Kode sumber form tambah pengajuan ........... 126
Kode Sumber 17 Kode sumber list pesanan .............................. 130
Kode Sumber 18 Kode sumber form tambah pesanan .............. 133
Kode Sumber 19 Kode sumber show pesanan .......................... 138
Kode Sumber 20 Kode sumber form filter laporan ................... 140
Kode Sumber 21 Kode sumber show laporan ........................... 142
Kode Sumber 22 Kode sumber form ubah password ................ 143
Kode Sumber 23 Kode sumber bantuan .................................... 144
Kode Sumber 24 Kode sumber form filter laporan ................... 147
Kode Sumber 25 Kode sumber show laporan pengadaan ......... 149
Kode Sumber 26 Kode sumber AnggotaController................... 151
Kode Sumber 27 Kode sumber BarangController ..................... 153
Kode Sumber 28 Kode sumber DepartemenController ............. 155
Kode Sumber 29 Kode sumber HelpController......................... 156
Kode Sumber 30 Kode sumber HomeController....................... 157
Kode Sumber 31 Kode sumber LaporanPengadaanController .. 160
Kode Sumber 32 Kode sumber LaporanPesananController ...... 163
Kode Sumber 33 Kode sumber PengadaanController ............... 166

xviii
Kode Sumber 34 Kode sumber PengajuanController ............... 168
Kode Sumber 35 Kode sumber PesananController ................... 173
Kode Sumber 36 Kode sumber UserController......................... 176
Kode Sumber 37 Kode sumber Model Anggota ....................... 176
Kode Sumber 38 Kode sumber Model Barang.......................... 177
Kode Sumber 39 Kode sumber Model BarangTerima .............. 177
Kode Sumber 40 Kode sumber Model BarangTerpesan ........... 178
Kode Sumber 41 Kode sumber Model Departemen .................. 178
Kode Sumber 42 Kode sumber Model PengadaanBarang ........ 179
Kode Sumber 43 Kode sumber Model PengajuanBarang ......... 179
Kode Sumber 44 Kode sumber Model PesananBarang............. 180
Kode Sumber 45 Kode sumber Model User.............................. 181

xix
[Halaman ini sengaja dikosongkan]

xx
1BAB I
PENDAHULUAN
Perkembangan teknologi yang pesat membuat kemudahan
akses suatu informasi sangatlah diperlukan bagi setiap orang, tanpa
terkecuali sebuah perusahaan baik yang baru berdiri ataupun yang
sudah lama berdiri. Kebutuhan akan informasi yang cepat dan
terjamin sudah menjadi kebutuhan utama bagi setiap orang dan
perusahaan, oleh karena itu perlu dibangunnya sebuah sistem yang
mampu memenuhi kebutuhan akan informasi tersebut.
Pada kerja praktik ini, tim kami ditugaskan membuat
suatu sistem berbasis WEB untuk proses Gudang Alat Tulis
Kantor (Gudang ATK) pada perusahaan PT. PLN Persero
APB JATIM. Selama proses kerja praktik berlangsung, tim
kami melaksanakan kerja praktik di kantor PT.PLN Persero
APB JATIM di Jl. Suningrat 45, Taman, Sepanjang, Sidoarjo.
Namun jika dibutuhkan untuk melakukan riset dan mencari
sumber maka oleh pembimbing lapangan diperbolehkan untuk
keluar area kantor. Hal tersebut juga menimbang dengan
adanya pembatasan akses yang sangat ketat pada Wi-Fi kantor.
Kami memiliki 2 pembimbing lapangan yaitu saudari Vina
Desliana dan saudara Samsul Ma’arif. Mereka juga bertugas di
bagian teknologi informasi di kantor tersebut. Jam kantor yang
kami gunakan seperti jam kantor normal lainnya, yaitu pukul
07.30 – 16.00 WIB, libur di hari sabtu dan minggu.

1.1. Latar Belakang


Sistem Gudang ATK ini dibutuhkan pada perusahaan PLN
dikarenakan dianggap perlu untuk memudahkan administrator
gudang di PT.PLN (Persero) P3B JB APB Jawa Timur. Sebelumnya
admin hanya menggunakan pemesanan secara manual dan pencatatan
manual dengan menggunakan Microsoft Excel. Maka pihak terkait
(manager PT.PLN (Persero) P3B JB APB Jawa Timur)

21
menginginkan adanya perubahan untuk mempermudah proses
tersebut. Selain itu juga diperlukannya sistem ini agara seluruh
pegawai bisa melakukan transaksi gudang dengan mudah, dan dari
mana saja di kantor, tanpa harus mencari-cari admin terlebih dahulu.

1.2. Tujuan
Adapun tujuan pembuatan aplikasi web Gudang ATK ini
adalah untuk :
1. Memudahkan admin untuk mengontrol dan melaksanakan
transaksi Gudang ATK
2. Memudahkan pegawai untuk melakukan transaksi Gudang
ATK
3. Mempercepat proses transaksi barang dari Gudang

1.3. Manfaat
Manfaat yang diperoleh dengan adanya aplikasi ini yaitu :
1. Pegawai dapat dengan mudah memesan barang dari
manapun, tidak harus menuju gudang.
2. Admin gudang dapat dengan mudah memantau transaksi
barang di gudang
3. Dapat lebih mudah membuat laporan rekap hasil transaksi

1.4. Rumusan Permasalahan


Berdasarkan latar belakang yang dipaparkan sebelumnya,
permasalahan utama yang menjadi fokus dalam pengerjaan aplikasi
web Gudang ATK adalah:
1. Bagaimana analisis kebutuhan dari aplikasi Gudang ATK ?
2. Bagaimana implementasi pembuatan sistem Gudang ATK?
3. Apakah aplikasi hasil kerja praktik ini dapat digunakan dengan
baik?

22
1.5. Lokasi dan Waktu Kerja Praktik
Kerja Praktik dilaksanakan di PT. PLN (Persero) P3B JB APB
Jawa Timur yang berlokasi di Jl. Suningrat No. 45 Sidoarjo pada
tanggal 1 Agustus 2015 sampai dengan 31 Agustus 2015.
Adapun durasi jam kerja kantor adalah pukul 07.00 – 16.00
WIB. Namun untuk penugasan kerja praktik kali ini mendapatkan
kesempatan take home 2 kali seminggu dikarenakan adanya
keterbatasan akses koneksi pada kantor tersebut.
1.6. Metodologi Kerja Praktik
1. Perumusan Masalah
Tahapan pertama yang kami lakukan adalah menganalisis
kebutuhan apa saja yang diperlukan dalam sistem informasi
yang nantinya akan diimplementasikan dalam website.
Kemudian kami mencari data-data yang ada dan dapat
membantu informasi-informasi yang diperlukan untuk
pembuatan aplikasi.
Dan kami pun memulai mengimplementasikan hasil dari
wawancara kebutuhan yang kami lakukan dari pembimbing
lapangan kami.

2. Studi Literatur
Pada tahap ini dilakukan studi dan penelitian terhadap
framework PHP Laravel karena kami menggunakan framework
tersebut untuk membangun website.

3. Analisis dan Perancangan Sistem


Pada tahap ini kami melakukan analisis perancangan sebuah
website mulai dari tahap pencarian kebutuhan, skenario
berjalannya aplikasi, serta perancangan data.
4. Implementasi Sistem
Pada tahap ini kami melakukan proses implementasi website
dengan framework PHP Laravel. Kami juga menggunakan
bahasa HTML, CSS, dan JS.

23
5. Pengujian dan Evaluasi
Tahap pengujian dan evaluasi kami lakukan bersama dengan
pembimbing lapangan kami, tahap pengujian kami lakukan
berkala minimal tiap 2 hari sekali. Setiap ada kesalahan kami
mencatat dan segera memperbaikinya, apabila kesalahan yang
terjadi adalah kesalahan kecil langsung kami perbaiki saat itu
juga.

6. Kesimpulan dan Saran


Secara garis besar, fungsionalitas aplikasi sudah cukup baik,
walaupun dengan tampilan yang sederhana dikarenakan untuk
membuat tampilan yang bagus membutuhkan waktu yang lebih
lama sedangkan waktu yang kami dapat hanya 1 bulan. Untuk
pengembangan aplikasi ini kedepannya agar dapat terintegrasi
dengan sistem yang lain yang digunakan oleh PT. PLN APB
Jatim.

1.7. Sistematika Laporan


Laporan kerja praktik ini terdiri dari 7 bab, dengan rincian sebagai
berikut:
 Bab I : Pendahuluan
Bab ini berisi tentang latar belakan masalah, tujuan, manfaat,
rumusan masalah, lokasi dan waktu kerja praktik, metodologi, dan
sistematika laporan.

 Bab II : Profil Perusahaan


Bab ini berisi sekilas tentang profil PT. PLN Persero APB
Jatim.

 Bab III : Tinjauan Pusataka


Bab ini berisi tentang tinjauan pustaka yang digunakan dalam
pengerjaan aplikasi.

24
 Bab IV : Analisis dan Perancangan Sistem
Bab ini berisi tentang proses analisis sistem aplikasi serta
perancangannya.
 Bab V : Implementasi Sistem
Bab ini berisi tentang proses implementasi pada pengembangan
aplikasi Sistem Informasi Gudang ATK.

 Bab VI : Pengujian dan Evaluasi


Bab ini berisi tentang hasil pengujian serta evaluasi aplikasi
yang dibuat selama kerja praktik.

 Bab VII : Kesimpulan dan Saran


Bab ini berisi tentang kesimpulan dan saran yang didapatkan
dari tugas selama kerja praktik.

25
[Halaman ini sengaja dikosongkan]

26
2BAB II
PROFIL PERUSAHAAN
2.1. Sejarah Perusahaan

Gambar 1 Logo PT. PLN (Persero), Tbk

Sejarah Ketenagalistrikan di Indonesia dimulai pada akhir


abad ke-19, ketika beberapa perusahaan Belanda mendirikan
pembangkit tenaga listrik untuk keperluan sendiri. Perusahaan tenaga
listrik tersebut berkembang menjadi untuk kepentingan umum,
diawali dengan perusahaan swasta Belanda yaitu NV. NIGM yang
memperluas usahanya hanya dari bidang gas ke bidang tenaga listrik.
Selama Perang Dunia II berlangsung, perusahaan-perusahaan listrik
tersebut dikuasai oleh Jepang. Pada tanggal 17 Agustus 1945
Indonesia merdeka, perusahaan-perusahaan listrik tersebut direbut
oleh pemuda-pemuda Indonesia dan pada bulan September 1945
diserahkan kepada Pemerintah Republik Indonesia.
Pada tanggal 27 Oktober 1945 Presiden Soekarno membentuk
Jawatan Listrik dan Gas, dengan kapasitas pembangkit tenaga listrik
hanya sebesar 157,5 MW saja. Tanggal 1 Januari 1961, Jawatan
Listrik dan Gas diubah menjadi BPU-PLN (Badan Pimpinan Umum
Perusahaan Listrik Negara) yang bergerak di bidang listrik, gas dan
kokas. Tanggal 1 Januari 1965, BPU-PLN dibubarkan dan dibentuk
2 perusahaan negara yaitu Perusahaan Listrik Negara (PLN) yang
mengelola tenaga listrik dan Perusahaan Gas Negara (PGN) yang
mengelola gas. Saat itu kapasitas pembangkit tenaga listrik PLN
sebesar 300 MW. Tahun 1972, Pemerintah Indonesia menetapkan

27
status Perusahaan Listrik Negara sebagai Perusahaan Umum Listrik
Negara (PLN). Tahun 1990 melalui peraturan Pemerintah No. 17,
PLN ditetapkan sebagai pemegang kuasa usaha ketenagalistrikan.
Tahun 1992, pemerintah memberikan kesempatan kepada sektor
swasta untuk bergerak dalam bisnis penyediaan tenaga listrik.
Sejalan dengan kebijakan di atas, pada bulan Juni 1994 status
PLN dialihkan dari Perusahaan Umum menjadi Perusahaan
Perseroan (Persero). Sehubungan dengan tempat kerja praktik
penulis di PLN P3B Jawa Bali, maka berikut sekilas tentang
perusahaan: dengan terbitnya Surat Keputusan Direksi PT PLN
(Persero) Nomor 257.K/010/DIR/2000 tanggal 2 November 2000,
tentang Pembentukan Organisasi dan Tata Kerja Unit Bisnis
Strategis Penyaluran dan Pusat Pengatur Beban Jawa Bali, maka PT
PLN (Persero) P3B yang merupakan unit pusat laba (profit center)
berubah menjadi unit pusat investasi (investment center) dengan
nama Penyaluran dan Pusat Pengatur Beban Jawa Bali (P3B).

2.2. Visi dan Misi Perusahaan

PT. PLN (Persero)

Visi
Diakui sebagai perusahaan kelas dunia yang bertumbuh
kembang, unggul dan terpercaya dengan bertumpu pada potensi
insani.

Misi
1. Menjalankan bisnis kelistrikan dan bidang lain yang terkait,
berorientasi pada kepuasan pelanggan, anggota perusahaan dan
pemegang saham.
2. Menjadikan tenaga listrik sebagai media untuk meningkatkan
kualitas kehidupan masyarakat.
3. Mengupayakan agar tenaga listrik menjadi pendorong kegiatan
ekonomi.
4. Menjalankan kegiatan usaha yang berwawasan lingkungan.

28
PT. PLN (Persero) P3B JB

Visi : “Diakui sebagai pengelola transmisi, operasi sistem dan


transaksi tenaga listrik dengan kualitas pelayanan setara kelas
dunia, yang mampu memenuhi harapan stakeholders, dan
memberikan kontribusi dalam peningkatan kesejahteraan
masyarakat” yang dilandasi dengan tata nilai:
Integritas, Peduli, Pembelajar dan Saling Percaya.”

Misi :
5. Mengelolah operasi sistem tenaga listrik secara andal.
6. Melakukan dan mengelolah penyaluran tenaga listrik tegangan
tinggi secara efisien, anda, dan akrab lingkungan.
7. Mengelolah transaksi tenaga listrik secara kompetitif, transparan,
dan adil.
8. Mengelolah pemeliharaan instalasi sistem transmisi tenaga listrik
Jawa-Bali

2.3. Divisi / Departemen Fasilitas Operasi


Departemen yang kami tempati adalah departemen Fasilitas
Operasi (FASOP). Tugas pokoknya adalah memfasilitasi operasi
sistem, dari dispatcher pusat ke fasilitas PLN di seluruh Jawa Bali.
Melihat status peralatannya dan lain-lain.

29
2.4. Struktur Organisasi

30
[Halaman ini sengaja dikosongkan]

31
3BAB III
TINJAUAN PUSTAKA
Bab III berisikan tentang teori-teori yang digunakan dalam
pengembangan website Sistem Informasi Gudang ATK, tinjauan
pustaka teori-teori di atas, serta framework dan library yang
digunakan. Tinjauan pustaka berguna untuk wawasan utama untuk
dirujuk dalam pengerjaan kerja praktik.

3.1. Landasan Teori

3.1.1. Web Programming (Pemrograman Web)


Pemrograman web adalah salah satu cakupan dari web
development yang meliputi kegiatan menulis dan markup kode
program. Di dalamnya ditangani pemrograman pada sisi klien dan
sisi server serta keamanan jaringan. Bahasa pemrograman yang
populer digunakan antara lain HTML, CSS, dan JavaScript. [2]

A. HTML5
HTML5 merupakan teknologi terbaru dari HTML (Hypertext
Mark Languange). Komponen terbaru dari HTML5 adalah dari
elemen, atribut, dan perilaku HTML. Teknologi-teknologi web
tersebut dirangkum dengan nama awal HTML & Friends;
belakangan lebih dikenal dengan HTML5. [3]
Teknologi HTML5 dikategorikan menjadi beberapa kelompok
berdasarkan fungsionalitasnya masing-masing, yaitu:
 Semantik
 Konektivitas
 Offline & Penyimpanan
 Multimedia
 Grafik dan Efek 2D/3D
 Performansi & Integrasi
 Akses Perangkat

32
 Styling

Semantik merupakan teknologi yang berperan dalam


pendeskripsian konten dengan lebih presisi. Di antara elemen HTML
semantis yang terbaru adalah <mark>, <figure>, <figcaption>,
<data>, <time>, <output>, <progress>, <meter>, dan <main>.
Elemen-elemen sangat membantu dalam peningkatan kualitas dalam
SEO (Search Engine Optimization).
Konektivitas dalam HTML5 lebih inovatif dan mudah dalam
melakukan hubungan antara client dan server. Di antara
teknologinya adalah Web Sockets, Server-Sent Events, dan
WebRTC.
Offline & penyimpanan HTML5 memungkinkan penyimpanan
data lebih efektif dalam sisi client secara offline. Teknologi yang
diperbarui adalah Application Cache, WHATWG, DOM Storage,
dan IndexedDB.
Teknologi multimedia dalam HTML5 merupakan yang paling
unggul. Penambahan elemen <audio> dan <video> merupakan
manipulasi konten multimedia dalam web yang mutakhir. Selain itu,
ada juga penambahan Camera API, Track, dan WebVTT.
Grafik dan efek 2D/3D HTML5 merupakan teknologi yang baru
dalam lapisan presentasi web. Teknologi ini memungkinkan tampilan
efek-efek yang lebih variatif, seperti adanya penambahan elemen
<canvas>, WebGL, dan SVG.
HTML5 memungkinkan performansi dan integrasi yang lebih
cepat dan lebih optimal serta lebih efektif dalam penggunaan
resource hardware. Teknologi terbarunya yaitu Web Workers,
XMLHttpRequest Level 2, JIT-compiling, History API, elemen
<contenteditable>, Drag & Drop, elemen <activeElement> dan
<hasFocus>, Web-Based Protocol Handlers,
requestAnimationFrame, Fullscreen API, dan Pointer Lock API.
Teknologi akses perangkat HTML5 memiliki input dan output
yang lebih beragam. Yang terbaru adalah Camera API, Touch
Events, Geolocation, Detection Device Orientation, dan Pointer Lock
API.

33
Terakhir, styling dalam HTML5 dijamin lebih baik dengan
adanya perbaruan pula dari CSS, yaitu CSS3. CSS3 akan dibahas
lebih lanjut setelah ini.

B. CSS3
CSS3 merupakan evolusi dan ekstensi terbaru dari CSS
(Cascading Style Sheets). Sebelumnya adalah CSS2.1. CSS3
membawakan fitur-fitur yang memudahkan pengembangan dalam
masalah styling yang kompleks, mulai dari rounded corners,
shadows, transitions, hingga animations. CSS3 terus dikembangkan
dengan pendekatan semantik layaknya HTML5. [4]

C. JavaScript
JavaScript adalah bahasa scripting cross platform berbasis
object-oriented (DOM). JavaScript dapat diterima oleh hampir
seluruh platform. [5]
JavaScript mencakup pustaka standar dari objek seperti Array,
Date, dan Math, serta dasar pemrograman lainnya. Kelebihan dari
JavaScript adalah mampu menyediakan interaksi baik dengan sisi
klien maupun server-side.
JavaScript sisi klien memungkinkan objek untuk melakukan
kontrol terhadap browser dan DOM. Contohnya adalah dapat
disematkan pada file .html untuk melakukan kontrol elemen HTML.
Sedangkan JavaScript server-side memungkinkan untuk
menjalankan JavaScript dari sisi server. Contohnya adalah
kemampuan untuk berkoneksi dengan database.
JavaScript memang erat hubungannya dengan pemrograman
web. Kehandalannya dalam cross platform adalah kelebihan yang
menjadi prioritas dalam pemrograman web. Kehandalan lainnya
adalah mudah untuk dikembangkan karena hanya membutuhkan
Web Console modern tanpa harus menggunakan aplikasi yang
kompleks.

34
3.1.2. Database Management System
Basisdata, adalah kumpulan informasi yang disimpan di dalam
komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data
tersebut. Perangkat lunak yang digunakan untuk mengelola dan
memanggil kueri (query) basis data disebut sistem manajemen basis
data (database management system, DBMS).
Istilah "basis data" berawal dari ilmu komputer. Meskipun
kemudian artinya semakin luas, memasukkan hal-hal di luar bidang
elektronika, artikel ini mengenai basis data komputer. Catatan yang
mirip dengan basis data sebenarnya sudah ada sebelum revolusi
industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data
yang berhubungan dengan bisnis.
Konsep dasar dari basis data adalah kumpulan dari catatan-
catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki
penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya:
penjelasan ini disebut skema. Skema menggambarkan obyek yang
diwakili suatu basis data, dan hubungan di antara obyek tersebut.
Ada banyak cara untuk mengorganisasi skema, atau memodelkan
struktur basis data: ini dikenal sebagai model basis data atau model
data. Model yang umum digunakan sekarang adalah model
relasional, yang menurut istilah layman mewakili semua informasi
dalam bentuk tabel-tabel yang saling berhubungan dimana setiap
tabel terdiri dari baris dan kolom (definisi yang sebenarnya
menggunakan terminologi matematika). Dalam model ini, hubungan
antar tabel diwakili denga menggunakan nilai yang sama antar tabel.
Model yang lain seperti model hierarkis dan model jaringan
menggunakan cara yang lebih eksplisit untuk mewakili hubungan
antar tabel. [https://id.wikipedia.org/wiki/Basis_data]

3.2. Kerangka Kerja dan Pustaka


Kerangka kerja dan pustaka yang digunakan dalam
pengembangan aplikasi web Sistem Informasi Gudang ATK adalah
Laravel 5.1 untuk back end framework, Bootstrap 3 untuk front end

35
framework, dan Maatwebsite Laravel Excel Helper untuk library
excel laravel.

3.2.1. Laravel

Gambar 2 Laravel Framework

Laravel merupakan web application framework berbasis PHP


yang open source, menggunakan konsep model–view–controller
(MVC). Laravel berada dibawah lisensi MIT License, dengan
menggunakan GitHub sebagai tempat berbagi kode
[https://id.wikipedia.org/wiki/Laravel].
Framework laravel mengutamakan kebersihan kode dan
kemudahan dalam implementasi serta dokumentasi. Dokumentasi
pada website untuk perubahan versi juga ditulis sangat lengkap dan
jelas, sehingga memudahkan para developer dalam mengembangkan
aplikasi dengan framework ini.

3.2.2. Bootstrap

Gambar 3 Logo Bootstrap

36
Bootstrap adalah salah satu front end website framework yang
cukup populer di kalangan web developer. Bootstrap memberikan
template yang responsif dengan web browser, baik desktop maupun
mobile. Dengan menggunakan Bootstrap kita dapat menghemat
waktu untuk desain user interface. Bootstrap juga memiliki berbagai
tema yang dapat digunakan, tema yang kami gunakan pada kerja
praktek ini adalah tema dari Bootswatch.

3.2.3. Laravel Excel Helper

Gambar 4 Laravel Excel

Laravel Excel Helper adalah dependency tambahan dari


framework Laravel untuk kebutuhan yang berhubungan dengan
import dan export file excel maupun CSV. Dengan Excel Helper kita
dapat menuliskan kode export menjadi lebih rapi dan mudah
dipahami.

37
4BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Bab IV membahas tentang analisis sistem dalam aplikasi
Gudang ATK dan perancangan sistemnya. Terdapat pembahasan
tentang analisis sistem, yakni penjabaran sistem. Kemudian,
perancangan sistem, yakni bagaimana sistem aplikasi dibangun.

4.1. Analisis Sistem


Analisis sistem yang dilakukan mengacu pada kebutuhan
dari perusahaan tersebut dan dokumentasi alur yang sebelumnya
dilakukan secara manual, dikarenakan aplikasi ini belum pernah
dibangun sebelumnya. Analisis sistem aplikasi ini terbagi dalam
bahasan antara lain cakupan permasalahan, deskripsi umum sistem,
kasus penggunaan sistem, dan analisis kebutuhan sistem.

4.1.1. Cakupan Permasalahan


Permasalahan yang ada pada perusahaan adalah adanya
proses transaksi barang GudangATK yang kurang efektif. Sehingga
perlu adanya aplikasi yang mendukung proses transaksi tersebut.

4.1.2. Deskripsi Umum Sistem


Aplikasi yang dibuat adalah sebuah aplikasi berbasis web
berkonsep OOP.
Aplikasi berfungsi sebagai sarana transaksi barang gudang oleh
pegawai. Aplikasi dapat memproses pesanan barang oleh pegawai,
pengajuan barang, juga menampilkan laporan pesanan dan laporan
pengadaan barang.

4.1.3. Analisis Kebutuhan Sistem


Dalam kegiatan analisis sistem yang dilakukan, salah satu
darinya adalah penggalian kebutuhan dari alur sistem manual

38
sebelumnya. Kebutuhan yang digali berupa kebutuhan fungsional
dan kebutuhan nonfungsional.
Adapun kebutuhan fungsional yang didapat dapat ditunjukkan
dengan tabel 1 sebagai berikut:

No Deskripsi Prioritas
1 Memanipulasi data barang Tinggi
2 Memanipulasi data anggota Tinggi
3 Memanipulasi data departemen Tinggi
4 Melakukan pemesanan barang Tinggi
5 Melakukan pengadaan barang Tinggi
6 Melakukan pengajuan barang Tinggi
7 Mengubah password Tinggi
8 Menampilkan laporan dalam Tinggi
web
9 Mengexport laporan dalam excel Rendah
Tabel 1 Deskripsi kebutuhan fungsional

4.2. Perancangan Sistem


4.2.1. Arsitektur Sistem
Aplikasi Sistem Informasi Gudang ATK menggunakan
framework laravel yang mengadaptasi arsitektur MVC (Model View
Controller) dengan bahasa PHP. Oleh karena itu, secara garis besar
aplikasi Sistem Informasi Gudang ATK dibagi menjadi tiga bagian
inti yaitu model atau di laravel disebut eloquent, view, dan
controller.
Untuk memproses routing ada file khusus routes.php yang berisi
seluruh alamat routing dari aplikasi. File routes.php dapat memanggil
controller yang bertugas untuk load view. Berikut ini adalah
arsitektur laravel.

39
Gambar 5 Arsitektur Laravel

4.2.2. Perancangan Penyimpanan Data


Perancangan sistem penyimpanan data dilakukan dengan
menganalisis kebutuhan fungsional, lalu memetakan data-data yang
butuh untuk disimpan.
Pemodelan sistem penyimpanan data dijelaskan melalui tabel
sistem penyimpanan data pada gambar berikut.

Gambar 6 Physycal Data Model

40
Tampak model sistem penyimpanan data gambar, tidak nampak
adanya relasi antar tabel, namun terdapat foreign key. Hal ini
bertujuan untuk memudahkan tahap implementasi.
Berikut akan diberikan penjelasan dari masing-masing tabel:
1) Tabel migrations

Gambar 7 Tabel migrations


Tabel migrations adalah tabel yang berisikan tabel
apa saja yang akan dibuat dalam aplikasi. Tabel ini
merupakan tabel bawaan dari laravel.
o migration  berisi nama tabel yang akan
digunakan
2) Tabel users

Gambar 8 Tabel users


Tabel users berisikan data akun dari seluruh
pengguna, termasuk SUPERVISOR.
o id  berisi kode untuk user, primary key
o name  berisi NIP anggota
o nama  berisi nama anggota
o password  berisi password yang digunakan untuk
login, dienkripsi menggunakan bcrypt

41
3) Tabel password_resets

Gambar 9 Tabel password_resets


Tabel password_resets adalah tabel bawaan dari
laravel yang digunakan untuk mengingat password dari
user. Namun fitur ubah password pada aplikasi ini tidak
menggunakan tabel ini.
4) Tabel barangs

Gambar 10 Tabel barangs


Tabel barangs berisi data master barang yang ada
pada gudang.
o id  berisi kode dari barang, primary key
o nama  berisi nama dari barang
o kuantitas berisi stok awal barang masuk
o pemakaian  berisi jumlah pemakaian barang
o pengadaan  berisi jumlah pengadaan barang

42
o keterangan  keterangan tambahan pada barang,
dapat dikosongi
o used  berisi penanda apakah barang pernah
digunakan dalam transaksi, jika pernah maka akan
bernilai 1 jika tidak makan akan bernilai 0.
5) Tabel anggotas

Gambar 11 Tabel anggotas


Tabel anggotas berisikan data master anggota
perusahaan, dalam hal ini berisikan data pribadi dari
pegawai.
o id  berisi primary key namun bukan merupakan
NIP anggota
o nip  berisi nomor induk pegawai
o nama  berisi nama anggota
o email  berisi email anggota
o jabatan  berisi jabatan anggota
6) Tabel departemens

Gambar 12 Tabel departemens

43
Tabel departemens berisikan data master seluruh
departemen yang ada pada perusahaan.
o id  berisi kode departemen, primary key
o nama  berisi nama dari departemen
7) Tabel pengadaan_barangs

Gambar 13 Tabel pengadaan_barangs


Tabel pengadaan_barangs berisikan data pengadaan
barang.
o id  berisi kode pengadaan, primary key
o penerima  berisi penerima barang
o tanggal  berisi tanggal barang datang/diterima
o catatan  berisi catatan tambahan, bisa dikosongi
8) Tabel pengajuan_barangs

Gambar 14 Tabel pengajuan_barangs

44
Tabel pengajuan_barangs berisikan data barang yang
ingin diajukan oleh pegawai yang masih belum ada di
data master barang.
o id  berisi kode pengajuan, primary key
o pengaju  berisi nama pengaju barang
o nama  berisi nama barang yang ingin diajukan
o kuantitas  berisi kuantitas barang yang ingin
diajukan
o keterangan  keterangan tambahan, dapat
dikosongi
o status  status dari pengajuan, dapat berisi
diterima atau ditolak
9) Tabel pesanan_barangs

Gambar 15 Tabel pesanan_barangs


Tabel pesanan_barangs berisikan data pesanan
barang.
o id  berisi kode pesanan barang, primary key
o pemesan  berisi nama dari pemesan
o tanggal  berisi tanggal pesanan barang
o catatan  berisi catatan tambahan, dapat dikosongi
o keterangan  berisi keterangan tambahan yang
hanya dapat diisi oleh SUPERVISOR

45
o status  berisi status dari pesanan, dapat berisi
belum dikonfirmasi, diterima, ditolak atau
menunggu
10) Tabel barang_terimas

Gambar 16 Tabel barang_terimas


Tabel barang_terimas berisikan detail dari
pengadaan barang di tabel pengadaan_barangs.
o id  berisi kode barang diterima, primary key
o pengadaan_barang_id  merupakan foreign key
yang berasal dari kolom id pada tabel
pengadaan_barang
o barang_id  merupakan foreign key yang berasal
dari kolom id pada tabel barangs
o kuantitas  berisi kuantitas barang yang diterima
11) Tabel barang_terpesans

Gambar 17 Tabel barang_terpesans

46
Tabel barang_terpesans berisikan detail dari pesanan
di tabel pesanan_barangs.
o id  berisi kode barang terpesan, primary key
o pesanan_barang_id  merupakan foreign key yang
berasal dari kolom id pada tabel pesanan_barangs
o barang_id  merupakan foreign key yang berasal
dari kolom id pada tabel barangs
o kuantitas  berisi banyaknya barang yang dipesan
o tanggal_butuh  berisi tanggal dibutuhkannya
barang

4.2.3. Diagram Kasus Penggunaan (Use Case)

Di bawah adalah gambar 18 yang merupakan analisis dari


kasus penggunaan pada aplikasi Sistem Informasi Gudang ATK :

Gambar 18 Use Case Diagram

47
4.2.3.1. Fungsi 1 : Melihat daftar barang

Kode Use Case UC 001


Nama Use Case Melihat daftar barang
Aktor Pegawai
Deskripsi Pegawai dapat melihat daftar barang di
gudang
Relasi -
Kondisi Awal Pegawai belum melihat daftar barang
Kondisi Akhir Pegawai telah melihat daftar barang
Alur Kejadian Normal
Pegawai Sistem
1. Pegawai memilih menu
list daftar barang
2. Sistem menampilkan list daftar barang
Tabel 2 Deskripsi fungsi 1

4.2.3.2. Fungsi 2 : Melihat daftar anggota

Kode Use Case UC 002


Nama Use Case Melihat daftar anggota
Aktor Pegawai
Deskripsi Pegawai dapat melihat daftar anggota
Relasi -
Kondisi Awal Pegawai belum melihat daftar anggota
Kondisi Akhir Pegawai telah melihat daftar anggota
Alur Kejadian Normal
Pegawai Sistem
1. Pegawai memilih menu
list daftar anggota
2. Sistem menampilkan list daftar anggota
Tabel 3 Deskripsi fungsi 2

48
4.2.3.3. Fungsi 3 : Melihat daftar departemen

Kode Use Case UC 003


Nama Use Case Melihat daftar departemen
Aktor Pegawai
Deskripsi Pegawai dapat melihat daftar departemen
Relasi -
Kondisi Awal Pegawai belum melihat daftar departemen
Kondisi Akhir Pegawai telah melihat daftar departemen
Alur Kejadian Normal
Pegawai Sistem
1. Pegawai memilih menu
list daftar departemen
2. Sistem menampilkan list daftar
departemen
Tabel 4 Deskripsi fungsi 3

4.2.3.4. Fungsi 4 : Mengajukan barang

Kode Use Case UC 004


Nama Use Case Mengajukan barang
Aktor Pegawai
Deskripsi Pegawai mengajukan barang yang belum
ada di data master barang
Relasi -
Kondisi Awal Data barang yang diajukan belum ada
Kondisi Akhir Data barang yang diajukan sudah
dikonfirmasi oleh admin
Alur Kejadian Normal
Pegawai Sistem
1. Pegawai memilih
aktivitas pengajuan barang

2. Pegawai memilih tambah 3. Sistem menampilkan formulir


pengajuan barang
4. Pegawai mengisi
formulir pengajuan barang

49
5. Sistem melakukan pengecekan isian
formulir pengajuan

A.5. Formulir pengajuan barang tidak


lengkap

A.6. Formulir pengajuan barang tidak


sesuai dengan kolom yang diminta

6. Pengajuan barang berhasil


Alur Kejadian Alternatif
A.5 Formulir pengajuan barang tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir pengajuan barang tidak
terisi secara lengkap
A. 6 Formulir pengajuan barang tidak sesuai dengan kolom yang diminta
A.4.2 Sistem menampilkan notifikasi
bahwa formulir pengajuan barang diisi
dengan tidak sesuai kolom
Tabel 5 Deskripsi fungsi 4

4.2.3.5. Fungsi 5 : Memesan barang

Kode Use Case UC 005


Nama Use Case Memesan barang
Aktor Pegawai
Deskripsi Pegawai memesan barang yang ada di
data master barang
Relasi -
Kondisi Awal Data pemesanan belum dimasukkan
Kondisi Akhir Data pemesanan sudah dimasukkan
Alur Kejadian Normal
Pegawai Sistem
1. Pegawai memilih
aktivitas pesanan barang

2. Pegawai memilih tambah 3. Sistem menampilkan formulir


pemesanan barang

50
4. Pegawai mengisi
formulir pesanan barang
5. Sistem melakukan pengecekan isian
formulir pesanan barang

A.5. Formulir pesanan barang tidak


lengkap

A.6. Formulir pesanan barang tidak sesuai


dengan kolom yang diminta

6. Pemesanan barang berhasil


Alur Kejadian Alternatif
A.5 Formulir pesanan barang tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir pesanan barang tidak
terisi secara lengkap
A. 6 Formulir pesanan barang tidak sesuai dengan kolom yang diminta
A.4.2 Sistem menampilkan notifikasi
bahwa formulir pesanan barang diisi
dengan tidak sesuai kolom
Tabel 6 Deskripsi fungsi 5

4.2.3.6. Fungsi 6 : Memanipulasi data barang

Kode Use Case UC 006


Nama Use Case Memanipulasi data barang
Aktor Supervisor
Deskripsi Supervisor dapat memanipulasi data
barang
Relasi -
Kondisi Awal -
Kondisi Akhir Data barang berhasil ditambah, ubah, atau
hapus
Alur Kejadian Normal
Pegawai Sistem

51
1. Supervisor memilih data
barang

2. Supervisor memilih 3. Sistem menampilkan formulir


pilihan tambah, ubah atau penambahan barang, ubah barang, atau
hapus. menghapus data barang

4. Supervisor mengisi
formulir 5. Sistem melakukan pengecekan isian
formulir

A.5. Formulir tidak lengkap

A.6. Isian formulir tidak sesuai dengan


kolom yang diminta

6. Manipulasi barang berhasil


Alur Kejadian Alternatif
A.5 Formulir tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir tidak terisi secara lengkap

A. 6 Isian formulir tidak sesuai dengan kolom yang diminta


A.4.2 Sistem menampilkan notifikasi
bahwa formulir diisi dengan tidak sesuai
kolom
Tabel 7 Deskripsi fungsi 6

4.2.3.7. Fungsi 7 : Memanipulasi data anggota

Kode Use Case UC 007


Nama Use Case Memanipulasi data anggota
Aktor Supervisor
Deskripsi Supervisor dapat memanipulasi data
barang
Relasi -
Kondisi Awal -

52
Kondisi Akhir Data anggota berhasil ditambah, ubah,
atau hapus
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih data
anggota

2. Supervisor memilih 3. Sistem menampilkan formulir


pilihan tambah, ubah atau penambahan anggota, ubah anggota, atau
hapus. menghapus data anggota

4. Supervisor mengisi
formulir 5. Sistem melakukan pengecekan isian
formulir

A.5. Formulir tidak lengkap

A.6. Isian formulir tidak sesuai dengan


kolom yang diminta

6. Manipulasi data anggota berhasil


Alur Kejadian Alternatif
A.5 Formulir tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir tidak terisi secara lengkap

A. 6 Isian formulir tidak sesuai dengan kolom yang diminta


A.4.2 Sistem menampilkan notifikasi
bahwa formulir diisi dengan tidak sesuai
kolom
Tabel 8 Deskripsi fungsi 7

4.2.3.8. Fungsi 8 : Memanipulasi data departemen

Kode Use Case UC 008


Nama Use Case Memanipulasi data departemen
Aktor Supervisor

53
Deskripsi Supervisor dapat memanipulasi data
departemen
Relasi -
Kondisi Awal -
Kondisi Akhir Data departemen berhasil ditambah, ubah,
atau hapus
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih data
departemen

2. Supervisor memilih 3. Sistem menampilkan formulir


pilihan tambah, ubah atau penambahan departemen, ubah
hapus. departemen, atau menghapus data
departemen

4. Supervisor mengisi
formulir
5. Sistem melakukan pengecekan isian
formulir

A.5. Formulir tidak lengkap

A.6. Isian formulir tidak sesuai dengan


kolom yang diminta

6. Manipulasi data departemen berhasil


Alur Kejadian Alternatif
A.5 Formulir tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir tidak terisi secara lengkap

A. 6 Isian formulir tidak sesuai dengan kolom yang diminta


A.4.2 Sistem menampilkan notifikasi
bahwa formulir diisi dengan tidak sesuai
kolom
Tabel 9 Deksripsi fungsi 8

54
4.2.3.9. Fungsi 9 : Memberi status pengajuan barang

Kode Use Case UC 009


Nama Use Case Memberi status pengajuan barang
Aktor Supervisor
Deskripsi Supervisor dapat memberi status
pengajuan barang
Relasi -
Kondisi Awal Status pengajuan belum terisi
Kondisi Akhir Status pengajuan sudah terisi
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih
aktivitas pengajuan barang

2. Sistem menampilkan halaman


pengajuan barang

4. Supervisor memberi
status diterima atau ditolak
pada daftar 5. Status pengajuan terisi
Tabel 10 Deskripsi fungsi 9

4.2.3.10. Fungsi 10 : Memberi status pesanan barang

Kode Use Case UC 010


Nama Use Case Memberi status pesanan barang
Aktor Supervisor
Deskripsi Supervisor dapat memberi status pesanan
barang
Relasi -
Kondisi Awal Status pesanan belum terisi
Kondisi Akhir Status pesanan sudah terisi
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih
aktivitas pesanan barang

55
2. Sistem menampilkan halaman pesanan
barang
3. Supervisor memilih
pesanan barang yang akan
diberi status
4. Sistem menampilkan detail pesanan
barang
5. Supervisor memilih
status yang akan diberikan
A.5. Jumlah barang yang dipesan belum
cukup dalam gudang namun pesanan akan
diterima

6. Status pesanan terisi


Alur Kejadian Alternatif
A.5 Jumlah barang yang dipesan belum cukup dalam gudang
A.4.1 Sistem secara otomatis memberi
status menunggu dan memunculkan
notifikasi bahwa barang dalam gudang
belum cukup
Tabel 11 Deskripsi fungsi 10

4.2.3.11. Fungsi 11 : Melakukan pengadaan barang

Kode Use Case UC 011


Nama Use Case Melakukan pengadaan barang
Aktor Supervisor
Deskripsi Supervisor dapat melakukan pengadaan
barang
Relasi -
Kondisi Awal -
Kondisi Akhir Data pengadaan barang terisi
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih
aktivitas pengadaan

56
2. Sistem menampilkan halaman
pengadaan
3. Supervisor memilih
tambah pengadaan barang

4. Sistem menampilkan formulir


pengadaaan barang
5. Supervisor mengisi
formulir pengadaan barang
6. Sistem melakukan pengecekan isian
formulir

A.6. Formulir tidak lengkap

A.7. Isian formulir tidak sesuai dengan


kolom yang diminta

6. Pengadaan barang terisi


Alur Kejadian Alternatif
A. 6 Formulir tidak lengkap
A.4.1 Sistem menampilkan notifikasi
bahwa formulir tidak terisi secara lengkap

A. 7 Isian formulir tidak sesuai dengan kolom yang diminta


A.4.2 Sistem menampilkan notifikasi
bahwa formulir diisi dengan tidak sesuai
kolom
Tabel 12 Deskripsi fungsi 11

4.2.3.12. Fungsi 12 : Melihat laporan pengadaan

Kode Use Case UC 012


Nama Use Case Melihat laporan pengadaan
Aktor Supervisor
Deskripsi Supervisor dapat melihat laporan
pengadaan
Relasi -
Kondisi Awal -

57
Kondisi Akhir Laporan pengadaan muncul
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih
aktivitas laporan pengadaan
2. Sistem menampilkan formulir filter
laporan pengadaan
3. Supervisor mengisi
formulir filter laporan
pengadaan
A.4. Laporan pengadaan kosong

4. Sistem menampilkan laporan


pengadaan berdasarkan filter yang diisi
supervisor

Alur Kejadian Alternatif


A. 4 Laporan pengadaan kosong
A.4.1 Sistem menampilkan notifikasi
bahwa laporan kosong
Tabel 13 Deskripsi fungsi 12

4.2.3.13. Fungsi 13 : Melihat laporan pemesanan

Kode Use Case UC 013


Nama Use Case Melihat laporan pemesanan
Aktor Supervisor
Deskripsi Supervisor dapat melihat laporan
pemesanan
Relasi -
Kondisi Awal -
Kondisi Akhir Laporan pemesanan muncul
Alur Kejadian Normal
Pegawai Sistem
1. Supervisor memilih
aktivitas laporan
pemesanan 2. Sistem menampilkan formulir filter
laporan pemesanan

58
3. Supervisor mengisi
formulir filter laporan
pemesanan A.4. Laporan pemesanan kosong

4. Sistem menampilkan laporan


pemesanan berdasarkan filter yang diisi
supervisor

Alur Kejadian Alternatif


A. 4 Laporan pemesanan kosong
A.4.1 Sistem menampilkan notifikasi
bahwa laporan kosong
Tabel 14 Deskripsi fungsi 13

59
5BAB V
IMPLEMENTASI SISTEM

Bab ini membahas tentang implementasi dari perancangan


sistem. Bab ini berisi proses implementasi dari setiap modul. Bahasa
pemrograman yang digunakan adalah PHP dengan framework
Laravel.

5.1. Implementasi Lapisan Antarmuka


Kode sumber untuk pembuatan lapisan antar muka pada
aplikasi kami tertera pada lampiran laporan.

5.2. Implementasi Antarmuka Pengguna


Pada bagian ini kami berikan screenshot antarmuka pengguna
aplikasi Sistem Informasi Gudang ATK. Akan ada perbedaan antara
tampilan SUPERVISOR dengan user biasa.

Gambar 19 Halaman Login

60
Setelah melakukan login kedalam sistem, user akan memasuki
halaman utama dimana akan ada beberapa navbar yang berisi menu
yang dapat diakses oleh user.

Gambar 20 Halaman utama SUPERVISOR

Gambar 21 Halaman utama user biasa

61
Gambar 22 Halaman list barang untuk SUPERVISOR

Gambar 23 Form tambah barang

Gambar 24 Halaman list barang untuk user biasa

62
Gambar 25 Halaman list anggota untuk SUPERVISOR

Gambar 26 Halaman list anggota untuk user biasa

Gambar 27 Halaman form tambah anggota

63
Gambar 28 Halaman ubah data anggota

Gambar 29 Halaman list departemen

Gambar 30 Halaman form tambah departemen

64
Gambar 31 Halaman ubah data departemen

Gambar 32 Halaman list pesanan user biasa

Pada halaman list pesanan untuk user biasa hanya terlihat


pesanan dari user tersebut. Jika pesanan belum dikonfirmasi akan
muncul status belum dikonfirmasi pada kolom status.

65
Gambar 33 Halaman list pesanan untuk SUPERVISOR

Untuk halaman SUPERVISOR terlihat ada semua pesanan,


tidak hanya pesanan dari SUPERVISOR juga, namun juga ada
pesanan dari MAKSUM yang sebelumnya sempat dibuat dengan
status belum dikonfirmasi.

Gambar 34 Halaman show pesanan untuk SUPERVISOR

Dapat dilihat untuk halaman SUPERVISOR dapat memberi


status pada pesanan apakah pesanan diterima, ditolak, atau
menunggu. Status menunggu dapat diberikan apabila barang yang
dipesan hanya ada sebagian atau tidak ada stok di gudang.

66
SUPERVISOR juga dapat memberi keterangan khusus pada pesanan
yang nanti juga akan muncul pada show pesanan untuk user.

Gambar 35 Halaman show pesanan untuk user biasa

Pesan yang dituliskan oleh SUPERVISOR dapat dilihat juga


oleh user, namun user tidak dapat mengubah keterangan tersebut.
Status yang awalnya belum dikonfirmasi sekarang menjadi
menunggu dikarenakan barang yang tersedia di gudang belum
lengkap.

Gambar 36 Halaman list pengajuan barang untuk user biasa

67
Gambar 37 Halaman form tambah pengajuan

Sama seperti pesanan barang, yang dapat dilihat oleh user


biasa hanyalah pengajuan dari akunnya sendiri. Sedangkan untuk
SUPERVISOR dapat melihat seluruh pengajuan yang ada serta dapat
memberi status diterima atau tidak.

Gambar 38 Halaman list pengajuan untuk SUPERVIOR

68
Gambar 39 Halaman list pengadaan barang oleh SUPERVISOR

Gambar 40 Halaman show pengadaan barang

Gambar 41 Halaman tambah pengadaan barang

69
Gambar 42 Halaman filter laporan pesanan

Gambar 43 Halaman show laporan pesanan

Gambar 44 Halaman filter laporan pengadaan

70
Gambar 45 Halaman show laporan pengadaan

Sistem Informasi Gudang ATK juga menyediakan fitur untuk


mengubah password dari user.

Gambar 46 Halaman ubah password

71
Gambar 47 Halaman bantuan

72
[Halaman ini sengaja dikosongkan]

73
6BAB VI
PENGUJIAN DAN EVALUASI

Bab ini membahas pengujian dan evaluasi pada aplikasi


GudangATK. Pengujian yang dilakukan adalah pengujian terhadap
kebutuhan fungsionalitas sistem dan pengujian kegunaan sistem atau
pengujian usabilitas. Pengujian kegunaan sistem dilakukan dengan
mengetahui tanggapan dari pengguna terhadap kegunaan sistem.
Hasil evaluasi menjabarkan tentang rangkuman hasil pengujian pada
bagian akhir bab ini.

6.1. Lingkungan Pengujian


Lingkungan pengujian sistem pada pengerjaan kerja praktik ini
dilakukan pada lingkungan dan alat kakas sebagai berikut:
Processor : Intel® Core™ i5-5200UProcessor
(up to 2.7 GHz)
Memory : 4.00 GB
Jenis Device : Laptop
Sistem Operasi : Microsoft Windows 10 Enterprise 64 bit
Browser : Mozilla Firefox 40.0

6.2. Skenario Pengujian


Pada bagian ini akan dijelaskan tentang skenario pengujian
yang dilakukan.

Identifikasi Tingkat
Bagian Butir Uji
PDHUPL Pengujian
Menampilkan halaman Pengujian
PDHUPL-01
login Sistem
Index
Menampilkan halaman Pengujian
PDHUPL-02
bantuan Sistem
Menampilkan halaman Pengujian
PDHUPL-03
Data Anggota Sistem
Pengaturan
Menampilkan halaman Pengujian
PDHUPL-04
Data Barang Sistem

74
Bagian Butir Uji Identifikasi Tingkat
PDHUPL Pengujian
Menampilkan
Pengujian
halaman utama PDHUPL-05
Sistem
(home)
Menampilkan
Pengujian
halaman Data PDHUPL-06
Sistem
Departemen
Menampilkan
Pengujian
Utama halaman Aktivitas PDHUPL-07
Sistem
Pesanan Barang
Menampilkan
Pengujian
halaman Pengajuan PDHUPL-08
Sistem
Barang
Menampilkan
Pengujian
halaman Pengadaan PDHUPL-09
Sistem
Barang
Menampilkan Pengujian
PDHUPL-10
Laporan Pesanan Sistem
Laporan
Menampilkan Pengujian
PDHUPL-11
Laporan Pengadaan Sistem
Tabel 15 Daftar pengujian

6.3. Evaluasi Pengujian


Pada subbab ini akan diberikan hasil evaluasi dari pengujian-
pengujian yang telah dilakukan. Evaluasi yang diberikan meliputi
evaluasi pengujian kebutuhan fungsional, evaluasi hasil
pengelompokan, dan evaluasi kegunaan sistem.

75
6.3.1. Index

6.3.1.1. Menampilkan Halaman Login

Tabel 16 di bawah ini merupakan tabel hasil pengujian halaman


login :

Identifikasi PDHUPL-01
Deskripsi Halaman Login digunakan untuk
halaman awal masuk web dengan
autentifikasi tertentu.
Prosedur Pengujian Mengisi data serta melakukan login
Keluaran yang Diharapkan Sistem menampilkan form dengan baik,
login berhasil dan user dapat masuk pada
sistem. Jika data belum didaftarkan oleh
admin maka tidak dapat masuk dalam
sistem.
Hasil yang Didapat  Ketika data yang dimasukkan
salah maka akan muncul
notifikasi
 Desain responsif
 Fitur “Remember Me” dapat
berjalan
Kesimpulan Fitur login sudah dapat dijalankan
dengan cukup baik
Tabel 16 Tabel hasil pengujian halaman login

Halaman login dapat berjalan dengan baik, namun terdapat


batasan untuk login sebagai admin harus dengan settingan manual,
dengan default NIP = SUPERVISOR dan Password = admin. Untuk
registrasi memang dalam sistem dituntut untuk admin yang
memasukkan data user, bukan registrasi yang terbuka untuk umum.

76
6.3.1.2. Menampilkan Halaman Bantuan

Tabel 17 di bawah ini merupakan tabel hasil pengujian halaman


bantuan :

Identifikasi PDHUPL-02
Deskripsi Halaman Bantuan digunakan untuk
membantu user mengetahui alur sistem
ini berjalan.
Prosedur Pengujian Membuka halaman bantuan dan menguji
kebeneran petunjuk di dalamnya.
Keluaran yang Diharapkan Petunjuk pada halaman bantuan sudah
benar dan layak untuk digunakan sebagai
gambaran alur bantuan oleh user.
Hasil yang Didapat  Alur jelas dan benar
 Gambar dapat menggambarkan
alur yang dimaksud
 User dapat membaca alur
Kesimpulan Fitur bantuan sudah dapat dijalankan
dengan baik.
Tabel 17 Tabel hasil pengujian halaman bantuan

Halaman bantuan dapat berjalan dengan baik, sudah dapat


digunakan sebagai patokan bantuan alur oleh user, namun belum
lengkap untuk user admin karena memang dirasa tidak diperlukan.

6.3.2. Pengaturan

6.3.2.1. Menampilkan Halaman Data Anggota

Tabel 19 di bawah ini merupakan tabel hasil pengujian halaman


data anggota :

Identifikasi PDHUPL-03
Deskripsi Halaman data anggota merupakan
halaman dimana admin dapat

77
memasukkan data user yang akan
didaftarkan, dan admin maupun user
dapat melihat data anggota/user yang
ada.
Prosedur Pengujian Admin mengisi form yang ada, lalu
melihat list anggota. Admin/user dapat
mencoba memasuki sistem sebagai data
yang sudah didaftarkan tadi.
Keluaran yang Diharapkan Data anggota yang sudah didaftarkan
tidak dapat didaftarkan ulang. Data
anggota yang telahn didaftarkan dapat
melakukan login menggunakan data
tersebut.
Hasil yang Didapat  Desain responsive
 Pulldown search menggunakan
selectize pada kolom
Departemen di form berjalan
dengan baik
 Jika ada nip yang sama
dimasukkan ulang tidak dapat
tersubmit dan akan ada
notifikasi yang muncul
Kesimpulan Dapat dijalankan dengan baik
Tabel 18 Tabel hasil pengujian halaman anggota

6.3.2.2. Menampilkan Halaman Data Barang

Tabel 20 di bawah ini merupakan tabel hasil pengujian halaman


data barang:

Identifikasi PDHUPL-04
Deskripsi Halaman data barang merupakan
halaman dimana admin dapat
memasukkan data barang yang akan
diadakan, dan admin maupun user dapat
melihat data barang yang ada.
Prosedur Pengujian Admin mengisi form yang ada, lalu

78
melihat list barang. User juga dapat
melakukan pengisian data barang
melalui form pengajuan barang, namun
harus disetujui oleh admin terlebih
dahulu.
Keluaran yang Diharapkan Data Barang yang sudah diisikan tidak
dapat diisikan ulang.
Hasil yang Didapat  Desain responsif
 Data Barang yang sudah
tersedia tidak dapat diisikan
ulang. (muncul notifikasi)
Kesimpulan Dapat dijalankan dengan baik
Tabel 19 Tabel hasil pengujian halaman data barang

6.3.3. Utama

6.3.3.1. Menampilkan Halaman Utama (Home)

Tabel 21 di bawah ini merupakan tabel hasil pengujian halaman


utama :

Identifikasi PDHUPL-05
Deskripsi Halaman utama merupakan halaman
awal dimana user masuk dalam web.
Prosedur Pengujian Di halaman tersebut terdapat beberapa
button pilihan untuk menuju proses
lainnya.
Keluaran yang Diharapkan User mengetahui telah memasuki web,
user dapat memilih layanan web yang
tersedia dengan mudah.
Hasil yang Didapat  Desain responsive
 Tampilan menu jelas
 Terdapat menu bantuan yang
bisa membantu user mengerti
tentang sistem
Kesimpulan Dapat dijalankan dengan baik
Tabel 20 Tabel hasil pengujian halaman utama

79
6.3.3.2. Menampilkan Halaman Data Departemen

Tabel 22 di bawah ini merupakan tabel hasil pengujian halaman


Data Departemen :

Identifikasi PDHUPL-06
Deskripsi Halaman Data Departemen adalah
halaman dimana admin dapat
menyimpan nama departemen yang ada
pada perusahaan.
Prosedur Pengujian Mencoba menambahkan nama
departemen lainnya. Lihat pada list
departemen jika sudah ditambahkan.
Keluaran yang Diharapkan Di halaman tersebut terdapat kolom yang
dapat diisi dengan nama departemen
yang ingin ditambahkan. Dan admin juga
dapat melihat list departemen yang ada.
Data departemen tersebut dapat
digunakan sebagai data user nantinya.
Hasil yang Didapat  Desain responsive
 Admin dapat menambahkan
departemen baru
 Admin dapat menggunakan data
departemen tersebut sebagai
data user, saat akan
menambahkan user.
Kesimpulan Dapat dijalankan dengan baik
Tabel 21 Tabel hasil pengujian halaman data departemen

6.3.3.3. Menampilkan Halaman Aktivitas Pesanan


Barang

Tabel 23 di bawah ini merupakan tabel hasil pengujian halaman


Aktivitas Pesanan Barang :

80
Identifikasi PDHUPL-07
Deskripsi Halaman pesanan barang adalah halaman
dimana user dapat memesan barang yang
diinginkan.
Prosedur Pengujian Mengisi formulir yang ada dari sisi
user dan mencoba melihat halaman
respon pesanan barang dari admin.
Melakukan transaksi pemesanan
barang.
Keluaran yang Diharapkan Di halaman tersebut user dapat memesan
barang yang diinginkan dengan mudah,
dengan dapat melihat list barang yang
sudah ada terlebih dahulu di list barang.
Hasil yang Didapat  Desain responsive
 User dapat memesan barang
dengan mudah
 Admin dapat merespon pesanan
user dengan mudah.
 User dapat mengetahui
keterangan pesanan dari admin.
Kesimpulan Dapat dijalankan dengan baik
Tabel 22 Tabel hasil pengujian aktivitas pesanan barang

6.3.3.4. Menampilkan Halaman Pengajuan Barang

Tabel 24 di bawah ini merupakan tabel hasil pengujian halaman


Pengajuan Barang :

Identifikasi PDHUPL-08
Deskripsi Halaman pengajuan barang adalah
halaman dimana user dapat mengajukan
barang yang belum tersedia pada list
barang yang ada.
Prosedur Pengujian Mengisi formulir yang ada dari sisi
user dan mencoba merespon sebagai
admin. Lihat pada list barang jika

81
sudah disetuju.
Keluaran yang Diharapkan Di halaman tersebut user dapat
mengajukan baarang yang diinginkan.
Terdapat status pengajuan, dimana jika
sudah direspon oleh admin, user dapat
notifikasi keterangan diterima atau tidak
nya pengajuan. Dan jika admin
menyetujui pengajuan tersebut maka
akan secara otomatis list barang
bertambah dengan default jumlah barang
“0”.
Hasil yang Didapat  Desain responsive
 User dapat mengajukan barang
dengan mudah
 Admin dapat merespon dengan
mudah
 Admin tidak perlu
menambahkan list barang
secara manual
 User dapat melakukan pesanan
barang setelah pengajuan
disetujui
Kesimpulan Dapat dijalankan dengan baik
Tabel 23 Tabel hasil pengujian halaman pengajuan barang

6.3.3.5. Menampilkan Halaman Pengadaan Barang

Tabel 25 di bawah ini merupakan tabel hasil pengujian halaman


Pengadaan Barang :

Identifikasi PDHUPL-09
Deskripsi Halaman pengadaan barang merupakan
halaman dimana admin dapat menambah
barang pada gudang.
Prosedur Pengujian Mengisi form pengadaan barang.
Melihat list barang pada gudang dari
hasil pengadaan.

82
Keluaran yang Diharapkan Di halaman tersebut admin dapat
menambah jumlah barang yang ada pada
list barang. Barang yang diadakan harus
terdeklarasi di list barang sebelumnya
(sudah memiliki kode barang), sehingga
pada form untuk barang yang diinginkan
berupa pulldown menu.
Hasil yang Didapat  Desain responsive
 Admin dapat melakukan
pengadaan barang dengan
mudah.
 Admin dapat menggunakan
pulldown menu dengan
menggunakan selectize(fungsi
search).
Kesimpulan Dapat dijalankan dengan baik
Tabel 24 Tabel hasil pengujian halaman pengadaan barang

6.3.4. Laporan

6.3.4.1. Menampilkan Laporan Pesanan

Tabel 25 di bawah ini merupakan tabel hasil pengujian laporan


pesanan :

Identifikasi PDHUPL-10
Deskripsi Halaman laporan pesanan adalah
halaman dimana admin dapat melihat
laporan transaksi pesanan.
Prosedur Pengujian Mencoba melihat dan mengexport
laporan yang ada.
Keluaran yang Diharapkan Sistem dapat menampilkan laporan
dengan baik. Dan laporan tersebut dapat
diexport dalam bentuk excel.
Hasil yang Didapat  Laporan pesanan yang
ditampilkan sesuai dengan
tanggal yang diinginkan dan

83
barang yang diinginkan
 Export laporan pesanan dapat
dilakukan menjadi format excel.
Kesimpulan Sistem berjalan dengan baik.
Tabel 25 Tabel hasil pengujian halaman laporan pesanan

6.3.4.2. Menampilkan Laporan Pengadaan

Tabel 26 di bawah ini merupakan tabel hasil pengujian laporan


pengadaan :

Identifikasi PDHUPL-11
Deskripsi Halaman laporan pengadaan adalah
halaman dimana admin dapat melihat
laporan transaksi pengadaan yang telah
dilakukan sesuai tanggal dan barang
yang diinginkan.
Prosedur Pengujian Mencoba melihat dan mengexport
laporan yang ada.
Keluaran yang Diharapkan Sistem dapat menampilkan laporan
dengan baik dan sesuai. Dan laporan
tersebut dapat diexport dalam bentuk
excel.
Hasil yang Didapat  Laporan pengadaan yang
ditampilkan sesuai dengan
tanggal yang diinginkan dan
barang yang diinginkan
 Export laporan pengadaan dapat
dilakukan menjadi format excel.
Kesimpulan Sistem berjalan dengan baik.
Tabel 26 Tabel hasil pengujian halaman laporan pengadaan

6.4. Rangkuman Hasil Pengujian

Tabel 30 merupakan rangkuman hasil dari pengujian-pengujian


halaman yang telah dilakukan sebelumnya. Disimpulkan bahwa
fungsionalitas dari sistem sudah berjalan dengan baik.

84
ID Nama Hasil
PDHUPL-01 Menampilkan halaman login Berhasil
PDHUPL-02 Menampilkan halaman bantuan Berhasil
Menampilkan halaman Data
PDHUPL-03 Berhasil
Anggota
Menampilkan halaman Data
PDHUPL-04 Berhasil
Barang
PDHUPL-05 Menampilkan halaman login Berhasil
Menampilkan halaman Data
PDHUPL-06 Berhasil
Departemen
Menampilkan halaman
PDHUPL-07 Berhasil
Aktivitas Pesanan Barang
Menampilkan halaman
PDHUPL-08 Berhasil
Pengajuan Barang
Menampilkan halaman
PDHUPL-09 Berhasil
Pengadaan Barang
PDHUPL-10 Menampilkan Laporan Pesanan Berhasil
Menampilkan Laporan
PDHUPL-11 Berhasil
Pengadaan
Tabel 27 Rangkuman hasil pengujian

Tabel 28 merupakan rangkuman hasil pengujian kebergunaan


(fungsionalitas utama) aplikasi Gudang ATK :

No Kebergunaan Presentase
1 Membuat akun 90%
2 Mengganti nama akun 90%
3 Menghapus nama akun 90%
4 Melakukan Pemesananan Barang 80%
5 Melakukan Pengajuan Barang 80%
6 Melakukan Pengadaan Barang 90%
Rata-Rata 86,67%
Tabel 28 Hasil pengujian kebergunaan

85
Tabel 29 merupakan rangkuman hasil pengujian kemudahan aplikasi
Gudang ATK :

No Kemudahan Presentase
1 Halaman responsif 80%
2 Kemudahan untuk dimengerti 90%
3 Hubungan antar halaman 95%
Rata-Rata 87,5%
Tabel 29 Hasil pengujian kemudahan

86
[Halaman ini sengaja dikosongkan]

87
7BAB VII
KESIMPULAN DAN SARAN
Pada bab ini akan diberikan kesimpulan yang diambil selama
pengerjaan kerja praktik serta saran-saran tentang pengembangan
yang dapat dilakukan terhadap kerja praktik ini di masa yang akan
datang. Kesimpulan berisikan solusi atas rumusan masalah. Saran
merupakan evaluasi keseluruhan dari kerja praktik

7.1. Kesimpulan
Dari analisis evaluasi pengujian aplikasi GudangATK,
didapatkan kesimpulan berupa solusi atas rumusan masalah dan
kesimpulan lainnya, yaitu:
1) Pengembangan aplikasi GudangATK dilihat dari evaluasi uji
coba dinilai berhasil sesuai dengan keinginan dan kebutuhan
pengguna. Hal ini dilihat dari presentase evaluasi kebergunaan
sebesar 86,67%% dan evaluasi kemudahan sebesar 87,5%.
2) Setelah dilakukan uji coba oleh dosen pembimbing dan beberapa
pegawai, maka sistem yang telah dibuat meruapakan sistem yang
baik dan dapat dikatakan layak digunakan oleh perusahaan.

7.2. Saran
Secara garis besar, fungsionalitas aplikasi sudah cukup baik,
walaupun dengan tampilan yang sederhana dikarenakan untuk
membuat tampilan yang bagus membutuhkan waktu yang lebih lama
sedangkan waktu yang kami dapat hanya 1 bulan. Saran dari hasil
kerja praktik aplikasi web GudangATK ini adalah merancang lebih
dalam dan luas tentang fungsionalitas dari aplikasi ini. Aplikasi ini
dapat dikembangkan untuk gudang lain misalnya, tidak hanya
terbatas untuk alat tulis kantor saja namun bisa peralatan PLN
lainnya. Selain itu aplikasi ini juga mungkin bisa dikembangkan
dengan menggunakan platform mobile. Hal ini juga dapat membantu
perkembangan perkantoran PLN nantinya. Dan juga untuk
pengembangan aplikasi ini kedepannya agar dapat terintegrasi
dengan sistem yang lain yang digunakan oleh PT. PLN APB Jatim.

88
[Halaman ini sengaja dikosongkan]

89
DAFTAR PUSTAKA

[1] Cory Janssen, "Web Programming",


http://www.techopedia.com/definition/23898/web-programming,
diakses pada 17 Agustus 2015
[2] Mozilla Developer Network, "HTML5",
https://developer.mozilla.org/en-
US/docs/Web/Guide/HTML/HTML5, diakses pada 18 Agustus
2015
[3] Mozilla Developer Network, "CSS3",
https://developer.mozilla.org/en/docs/Web/CSS/CSS3, diakses
pada 17 Agustus 2015
[4] Mozilla Developer Network, "What Is JavaScript?",
https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Guide/Introduction#What_is_JavaScript
.3F, diakses pada 19 Agustus 2015
[5] Yuvarani Meiyappan, "Using The Web SQL Database
API in HTML 5",
http://www.databasejournal.com/sqletc/article.php/3903201/Usin
g-the-Web-SQL-Database-API-in-HTML-5.htm, diakses pada 21
Agustus 2015
[6] SimpleFocus, "FlowType.JS", http://simplefocus.com/,
diakses pada 21 Agustus 2015

90
LAMPIRAN

1. Kode Sumber

@extends('app')

@section('title')
{{--@parent--}}
Home
@stop

@section('content')
<div class="row">
<div class="col-md-6 col-md-offset-3">
<br>
<div class="panel panel-default">
<div class="panel-heading">Silahkan Login</div>
<div class="panel-body">
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{!! Form::open(['url' => 'auth/login', 'class' => 'form-
horizontal', 'method' => 'post']) !!}
{!! csrf_field() !!}
<input type="hidden" name="_token" value="{{
csrf_token() }}">

<div class="form-group">
<label class="col-md-4 control-label">NIP</label>
<div class="col-md-6">

91
<input type="text" class="form-control"
name="name" value="{{ old('name') }}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-
label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control"
name="password">
</div>
</div>

<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label>
<input type="checkbox" name="remember">
Remember Me
</label>
</div>
</div>
</div>

<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Login
</button>

<!--<a href="/password/email">Forgot Your


Password?</a>-->
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

92
</div>

Kode Sumber 1 Kode Sumber Halaman Login

Halaman login digunakan untuk masuk ke dalam website


berdasarkan user yang telah dibuat oleh administrator. Dalam hal
ini user administrator adalah SUPERVISOR. Setalah masuk login
akan dihadapkan pada pilihan menu pada navbar.

<!DOCTYPE html>
<html lang="en">
<head>

<link rel="shortcut icon" type="image/vnd.microsoft.icon"


href="http://localhost/gudang/public/images/favicon.ico" />
<!-- <link rel="shortcut icon"
href="localhost/gudang/public/image/favicon.ico"> -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<title>
@yield('title')
</title>

{!! HTML::style('css/bootstrap.min.css') !!}


{!! HTML::style('css/bootstrap.css') !!}
{!! HTML::style('css/bootswatch.min.css') !!}
{{--{!! HTML::style('css/style.css') !!}--}}
{{--{!! HTML::style('css/prism.css') !!}--}}

{{--{!! HTML::style('css/jquery-ui.structure.min.css') !!}--}}


{{--{!! HTML::style('css/jquery-ui.theme.min.css') !!}--}}
{{--{!! HTML::style('css/jquery.appendGrid-1.5.2.css') !!}--}}
{!! HTML::script('js/jquery.min.js') !!}
{!! HTML::script('js/selectize.js') !!}
{!! HTML::style('css/selectize.css') !!}
@yield('css')

93
{{--{!! HTML::style('css/my-style.css') !!}--}}

<!-- Fonts -->


<!--link
href='//fonts.googleapis.com/css?family=Roboto:400,300'
rel='stylesheet' type='text/css'-->

<!-- HTML5 shim and Respond.js for IE8 support of HTML5


elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page
via file:// -->
<!--[if lt IE 9]>
<script
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script
>
<script
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand"
href="http://localhost/gudang/public/"><span><img
src="http://localhost/gudang/public/images/Logo Icon.jpg"></span>
Gudang ATK</a>
<!--<img
src="c:\xampp\htdocs\trustline\trustline\resources\assets\image">-->

</div>

94
<div class="collapse navbar-collapse" id="bs-example-
navbar-collapse-1">
<ul class="nav navbar-nav">

@if(Auth::check() && (Auth::user()->name ==


'SUPERVISOR'))

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Data Barang<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('barang/index', 'List')!!}</li>
<li>{!!link_to('barang/create',
'Tambah')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Data Anggota<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('anggota/index', 'List')!!}</li>
<li>{!!link_to('anggota/create',
'Tambah')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Data Departemen<span
class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('departemen/index',
'List')!!}</li>

95
<li>{!!link_to('departemen/create',
'Tambah')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Aktivitas<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('pesanan/index', 'Pesanan
Barang')!!}</li>
<li>{!!link_to('pengajuan/index', 'Pengajuan
Barang')!!}</li>
<li>{!!link_to('pengadaan/index', 'Pengadaan
Barang')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Laporan<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('laporanpesanan/index',
'Laporan Pesanan')!!}</li>
<li>{!!link_to('laporanpengajuan/index',
'Laporan Pengajuan')!!}</li>
<li>{!!link_to('laporanpengadaan/index',
'Laporan Pengadaan')!!}</li>
</ul>
</li>

@elseif(Auth::check())
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Data Barang<span class="caret"></span>
</a>

96
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('guest_barang/index',
'List')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Data Anggota<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('guest_anggota/index',
'List')!!}</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">
Aktivitas<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('pesanan/index', 'Pesanan
Barang')!!}</li>
<li>{!!link_to('pengajuan/index', 'Pengajuan
Barang')!!}</li>

</ul>
</li>
@endif

</ul>

<ul class="nav navbar-nav navbar-right">


@if (Auth::guest())
<li>{!!link_to('auth/login', 'Login')!!}</li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-expanded="false">

97
{{ Auth::user()->nama }} <span
class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>{!!link_to('guest_password/index',
'Change Password')!!}</li>
<li>{!!link_to('auth/logout', 'Logout')!!}</li>
<li>{!!link_to('help/index', 'Help')!!}</li>
</ul>
</li>
@endif
</ul>
</div>
</div>
</nav>

<div class="container">
@yield('content')
</div>

<!-- Scripts -->

{!! HTML::script('js/bootstrap.min.js') !!}


{!! HTML::script('js/bootswatch.min.js') !!}
{!! HTML::script('js/bootswatch.js') !!}

{{--{!! HTML::script('js/prism.js') !!}--}}

{{--{!! HTML::script('js/jquery-1.11.1.min.js') !!}--}}


{{--{!! HTML::script('js/jquery-ui-1.11.1.min.js') !!}--}}
{{--{!! HTML::script('js/jquery.appendGrid-1.5.2.js') !!}--}}
@yield('js')
</div>
</body>

Kode Sumber 2 Kode sumber menu navbar

98
Menu yang ditawarkan untuk administrator adalah
mengakses dan memanipulasi data barang, mengakses dan
memanipulasi data anggota, mengakses dan memanipulasi data
departemen, melakukan aktivitas pemesanan, melakukan aktivitas
pengajuan, melakukan aktivitas pengadaan, melihat laporan
pemesanan, melihat laporan pengadaan, mengubah password
administrator.

@extends('app')

@section('title')
Barang
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan Data
Barang</div>
<div class="panel-body">
{!! Form::open(['url' => 'barang/store', 'class' => 'form-
horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">Nama
Barang</label>

99
<div class="col-md-6">
<input class="form-control" placeholder="Nama
Barang" name="nama" type="text">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Stok
Awal</label>
<div class="col-md-6">
<input class="form-control"
placeholder="Kuantitas" name="kuantitas" type="text">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Keterangan
</label>
<div class="col-md-6">
<input class="form-control"
placeholder="Keterangan" name="keterangan" type="text">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 3 Kode sumber form create barang

@extends('app')

@section('title')

100
Barang
@endsection

@section('content')

<br>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<div class="panel-heading">Barang</div>
@if(sizeof($data))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">Kode</th>
<th class="text-center">Nama</th>
<th class="text-center">Satuan</th>
<th class="text-center">Stok Awal</th>
<th class="text-center">Pengadaan</th>
<th class="text-center">Pemakaian</th>
<th class="text-center">Stok Sekarang</th>
<th class="text-center">Pilihan</th>
</tr>
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['id']}}</td>
<td>{{$row['nama']}}</td>
<td>{{$row['keterangan']}}</td>
<td>{{$row['kuantitas']}}</td>
<td>{{$row['pengadaan']}}</td>

101
<td>{{$row['pemakaian']}}</td>
<td>{{$row['kuantitas']+$row['pengadaan']-
$row['pemakaian']}}</td>
<td class="text-center">
{!!link_to('barang/edit/'.$row['id'], 'Ubah', ['class'
=> 'btn btn-primary btn-sm'])!!}
{!!link_to('barang/destroy/'.$row['id'], 'Hapus',
['class' => 'btn btn-danger btn-sm'])!!}
</td>
</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data barang kosong.
</div>
@endif
</div>
</div>
</div>

Kode Sumber 4 Kode sumber list barang

@extends('app')

@section('title')
Barang
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan data barang</div>
<div class="panel-body">
{!! Form::open(['url' => 'barang/update/'.$data->id, 'class'
=> 'form-horizontal']) !!}
@if (count($errors) > 0)

102
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">Kode
Barang</label>
<div class="col-md-6">
<input class="form-control" readonly name="nama"
type="text" value="{{$data->id}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nama
Barang</label>
<div class="col-md-6">
<input class="form-control" name="nama" type="text"
value="{{$data->nama}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Keterangan
</label>
<div class="col-md-6">
<input class="form-control" name="keterangan"
type="text" value="{{$data->keterangan}}">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>

103
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 5 Kode sumber form ubah barang

@extends('app')

@section('title')
Anggota
@endsection

@section('content')

<br>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">Anggota</div>
@if(sizeof($data))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">NIP</th>
<th class="text-center">Nama</th>
<th class="text-center">Departemen</th>
<th class="text-center">Email</th>
<th class="text-center">Pilihan</th>
</tr>
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['nip']}}</td>
<td>{{$row['nama']}}</td>
<td>{{$row['jabatan']}}</td>
<td>{{$row['email']}}</td>
<td class="text-center">

104
{!!link_to('anggota/edit/'.$row['id'], 'Ubah', ['class'
=> 'btn btn-primary btn-sm'])!!}
{!!link_to('anggota/destroy/'.$row['id'], 'Hapus',
['class' => 'btn btn-danger btn-sm'])!!}
</td>
</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data Anggota kosong.
</div>
@endif
</div>
</div>
</div>

Kode Sumber 6 Kode sumber list anggota

@extends('app')

@section('title')
Anggota
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan data anggota</div>
<div class="panel-body">
{!! Form::open(['url' => 'anggota/store', 'class' => 'form-
horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>

105
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<div class="form-group">
<label class="col-md-4 control-label">NIP</label>
<div class="col-md-6">
<input class="form-control" placeholder="NIP"
name="nip" type="text">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nama
Anggota</label>
<div class="col-md-6">
<input class="form-control" placeholder="Nama
Anggota" name="nama" type="text">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Email</label>
<div class="col-md-6">
<input class="form-control" placeholder="Email"
name="email" type="text">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-
label">Departemen</label>
<div class="col-md-6">
<select class="selectized" name="jabatan">
@foreach($data as $row)
<option
value="{{$row['nama']}}">{{$row['nama']}}</option>
@endforeach
</select>

106
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input class="form-control" placeholder="Password"
name="password" type="password">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Confirm
Password</label>
<div class="col-md-6">
<input class="form-control" placeholder="Confirm
Password" name="confirm_password" type="password">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection

@section('js')
<script type="text/javascript" >
$(".selectized").selectize({
create:true,
sortField: 'text'
});
</script>

107
Kode Sumber 7 Kode sumber form tambah anggota

@extends('app')

@section('title')
Anggota
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan data anggota</div>
<div class="panel-body">
{!! Form::open(['url' => 'anggota/update/'.$data->id, 'class'
=> 'form-horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">NIP</label>
<div class="col-md-6">
<input class="form-control" readonly name="nip"
type="text" value="{{$data->nip}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nama</label>
<div class="col-md-6">

108
<input class="form-control" name="nama" type="text"
value="{{$data->nama}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-
label">Departemen</label>
<div class="col-md-6">
<select class="form-control dropdown"
name="jabatan">
@foreach($depart as $row)
<option
value="{{$row['nama']}}">{{$row['nama']}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Email</label>
<div class="col-md-6">
<input class="form-control" name="email" type="text"
value="{{$data->email}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Ubah
Password</label>
<div class="col-md-6">
<input class="form-control" name="password"
type="password">
</div>
</div>

<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>

109
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 8 Kode sumber form ubah anggota

@extends('app')

@section('title')
Departemen
@endsection

@section('content')

<br>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<div class="panel-heading">Departemen</div>
@if(sizeof($data))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">Kode</th>
<th class="text-center">Nama</th>
<th class="text-center">Pilihan</th>
</tr>

110
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['id']}}</td>
<td>{{$row['nama']}}</td>
<td class="text-center">
{!!link_to('departemen/edit/'.$row['id'], 'Ubah',
['class' => 'btn btn-primary btn-sm'])!!}
{!!link_to('departemen/destroy/'.$row['id'],
'Hapus', ['class' => 'btn btn-danger btn-sm'])!!}
</td>
</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data Departemen kosong.
</div>
@endif
</div>
</div>
</div>

Kode Sumber 9 Kode sumber list departemen

@extends('app')

@section('title')
Departemen
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan Data departemen</div>
<div class="panel-body">
{!! Form::open(['url' => 'departemen/store', 'class' => 'form-
horizontal']) !!}

111
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems
with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">Nama
Departemen</label>
<div class="col-md-6">
<input class="form-control" placeholder="Nama
departemen" name="nama" type="text">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 10 Kode sumber form tambah departemen

@extends('app')

@section('title')
Departemen
@endsection

112
@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan data
departemen</div>
<div class="panel-body">
{!! Form::open(['url' => 'departemen/update/'.$data->id,
'class' => 'form-horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">Kode
Departemen</label>
<div class="col-md-6">
<input class="form-control" readonly name="nama"
type="text" value="{{$data->id}}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nama
Departemen</label>
<div class="col-md-6">
<input class="form-control" name="nama" type="text"
value="{{$data->nama}}">
</div>
</div>
<div class="form-group">

113
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 11 Kode sumber form ubah departemen

@extends('app')

@section('title')
Pengadaan Barang
@endsection

@section('content')
<br>
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li
class="active">{!!link_to('pengadaan/index','List')!!}</li>
<li>{!!link_to('pengadaan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)

114
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="panel-heading">Pengadaan Barang</div>
@if(sizeof($data))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">Nomor</th>
<th class="text-center">Tanggal</th>
<th class="text-center">Penerima</th>
<th class="text-center"></th>
</tr>
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['id']}}</td>
<td>{{$row['tanggal']}}</td>
<td>{{$row['penerima']}}</td>
<td class="text-center">
{!!link_to('pengadaan/show/'.$row['id'],
'show', ['class' => 'btn btn-default btn-sm'])!!}
</td>
</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data pengadaan barang kosong.
</div>
@endif
</div>
</div>
</div>

115
Kode Sumber 12 Kode sumber list pengadaan

@extends('app')

@section('title')
Pengadaan
@endsection

@section('content')
<br>
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li>{!!link_to('pengadaan/index','List')!!}</li>
<li>{!!link_to('pengadaan/create','Tambah')!!}</li>
</ul>
</div>
<div class="roP">
<div class="col-md-offset-1 col-md-10">
<div class="panel panel-default">
<div class="panel-heading">Detail Pengadaan Barang</div>
<div class="panel-body">
@if(sizeof($pengadaanBarang))
<div class="form-group">
<label class="col-md-3 control-label">Nomor
Pengadaan </label>
<div class="col-md-2">
<label class="control-label">PS-
{{$pengadaanBarang->id}}</label>
</div>
</div>
<br>
<div class="form-group">
<label class="col-md-3 control-label">Penerima
Barang</label>
<div class="col-md-2">
<label class="control-label">{{$pengadaanBarang-
>penerima}}</label>
</div>

116
</div>
<br>
<div class="form-group">
<label class="col-md-3 control-label">Tanggal
Pengadaan</label>
<div class="col-md-2">
<label class="control-label">{{$pengadaanBarang-
>tanggal}}</label>
</div>
</div>
<br>
<div class="form-group">
<label class="col-md-3 control-label">Catatan</label>
<div class="col-md-2">
<label class="control-label">{{$pengadaanBarang-
>catatan}}</label>
</div>
</div>
<br>
<table class="table table-hover">
<tr>
<th>Kode Barang</th>
<th>Kuantitas</th>

</tr>
@foreach($pengadaanBarang->barangs as $data)
<tr>
<td>{{$data->id.' - '.$data->nama}}</td>
<td>{{$data->pivot->kuantitas}}</td>
</tr>
@endforeach
</table>
<br>

@endif
</div>
</div>
</div>
</div>

117
Kode Sumber 13 Kode sumber show data pengadaan

@extends('app')

@section('css')
{!! HTML::style('css/bootstrap-datepicker.css') !!}
<style type="text/css" media="screen">
td input.qty {
max-width: 120px;
}
</style>
@endsection

@section('title')
Pengadaan Barang
@endsection

@section('content')
<br>
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li>{!!link_to('pengadaan/index','List')!!}</li>
<li
class="active">{!!link_to('pengadaan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Form Pengadaan Barang</div>
<div class="panel-body">
{!! Form::open(['url' => 'pengadaan/store', 'class' => 'form-
horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>

118
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-2 control-label">Nomor
Pengadaan</label>
<label class="col-md-1 control-label">PD-
{{$id}}</label>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Penerima
Barang</label>
<div class="col-md-3">
<input class="form-control" name="penerima"
placeholder="Nama Penerima">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Tanggal
Pengadaan
</label>
<div class="col-md-3">
<input data-provide="datepicker" class="datepicker
form-control" placeholder=" 2017-12-31" name="tanggal"
value="{{$tanggal}}">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">Catatan</label>
<div class="col-md-6">
<textarea class="form-control"
name="catatan">{{Form::old('catatan')}}</textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<table class="table table-striped" id="tabelForm">
<tr>

119
<th class="text-center">Kode Barang</th>
<th class="text-center">Kuantitas</th>
<th class="text-center"><button type="button"
class="btn btn-sm btn-default btn-tambah glyphicon glyphicon-
plus"></button></th>
<th></th>
</tr>
</table>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-10 col-md-2">
<button type="submit" class="btn btn-primary btn-
block">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection

@section('js')
{!! HTML::script('js/bootstrap-datepicker.js') !!}
<script id="jsource" type="text/javascript">
var iter = 0;
function appendRow() {
$("#tabelForm").append($("<tr />").append(
$("<td />").append(
$('<select id="tes'+iter+'" class="selectized"
name="barpeng['+ iter +'][barang_id]" />')
@foreach($data as $row)
.append('<option
value="{{$row['id']}}">{{$row['id'].' - '.$row['nama']}}</option>')
@endforeach
),

120
$("<td />").append('<input type="text" class="form-
control" name="barpeng['+ iter +'][kuantitas]">'),
$("<td class='text-center'/>").append('<button
type="button" class="btn btn-sm btn-danger delete-column glyphicon
glyphicon-remove"></button>').click(function() {
$(this).parent().remove();
})
));
iter = iter+1;
}
function on(){
// window.alert(iter);
$("#tes"+(iter-1)).selectize({
create:true,
sortField: 'text'
});
}
$(".btn-tambah").click(function() {
appendRow();
on();
});

$(document).ready(function(){
// appendRow();
});
</script>

Kode Sumber 14 Kode sumber form tambah pengadaan

@extends('app')

@section('title')
Pengajuan Barang
@endsection

@section('content')

<br>
<div class="well well-sm">

121
<ul class="nav nav-pills nav-justified">
<li class="active">{!!link_to('pengajuan/index','List')!!}</li>
<li>{!!link_to('pengajuan/create','Tambah')!!}</li>
</ul>
</div>

<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<div class="panel-heading">Pengajuan Barang</div>


@if(sizeof($data))
<table class="table table-bordered table-striped">
@if(Auth::check() && Auth::user()->name ==
'SUPERVISOR')
<tr>
<th class="text-center">Kode</th>
<th class="text-center">Pengaju</th>
<th class="text-center">Nama</th>
<th class="text-center">Kuantitas</th>
<!-- <th class="text-center">Keterangan</th> -->
<th class="text-center">Status</th>
<th class="text-center">Pilihan</th>
</tr>
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['id']}}</td>
<td>{{$row['pengaju']}}</td>
<td>{{$row['nama']}}</td>
<td>{{$row['kuantitas']}}</td>

122
<!-- <td>{{$row['keterangan']}}</td> -->
@if($row['status'] == 'Diterima')
<td><span class="label label-
success">{{$row['status']}}</span></td>
@elseif($row['status'] == 'Ditolak')
<td><span class="label label-
danger">{{$row['status']}}</span></td>
@else
<td><span class="label label-
default">{{$row['status']}}</span></td>
@endif
<td>
<div class="col-md-2 col-md-offset-3">
{!! Form::open(['url' =>
'pengajuan/diterima/'.$row->id, 'class' => 'form-horizontal']) !!}
<button class="btn btn-success btn-
sm">Terima</button>
{!!Form::close()!!}
</div>
<div class="col-md-2 col-md-offset-1">
{!! Form::open(['url' =>
'pengajuan/ditolak/'.$row->id, 'class' => 'form-horizontal']) !!}
<button class="btn btn-danger btn-
sm">Tolak</button>
{!!Form::close()!!}
</div>
</td>
</tr>
@endforeach
@elseif(Auth::check())
<tr>
<th class="text-center">Kode</th>
<th class="text-center">Pengaju</th>
<th class="text-center">Nama</th>
<th class="text-center">Kuantitas</th>
<!-- <th class="text-center">Keterangan</th> -->
<th class="text-center">Status</th>
</tr>
@foreach($pengajuanuser as $row)

123
<tr class="text-center">
<td>{{$row->id}}</td>
<td>{{$row->pengaju}}</td>
<td>{{$row->nama}}</td>
<td>{{$row->kuantitas}}</td>
<!-- <td>{{$row->keterangan}}</td> -->
@if($row->status == 'Diterima')
<td><span class="label label-
success">{{$row->status}}</span></td>
@elseif($row->status == 'Ditolak')
<td><span class="label label-danger">{{$row-
>status}}</span></td>
@else
<td><span class="label label-default">{{$row-
>status}}</span></td>
@endif
</tr>
@endforeach
@endif
</table>
@else
<div class="panel-body">
Data barang kosong.
</div>
@endif
</div>
</div>
</div>

Kode Sumber 15 Kode sumber list pengajuan

@extends('app')

@section('title')
Pengajuan Barang
@endsection

@section('content')
<br>

124
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li>{!!link_to('pengajuan/index','List')!!}</li>
<li class="active">{!!link_to('pengajuan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Masukkan Data Barang</div>
<div class="panel-body">
{!! Form::open(['url' => 'pengajuan/store', 'class' => 'form-
horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems
with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">Nama
Pengaju</label>
<div class="col-md-6">
<input class="form-control" placeholder="Nama
Pengaju" name="pengaju" type="text" value="{{Auth::user()->nama}}"
readonly>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nama
Barang</label>
<div class="col-md-6">
<input class="form-control" placeholder="Nama Barang"
name="nama" type="text">

125
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Kuantitas</label>
<div class="col-md-6">
<input class="form-control" placeholder="Kuantitas"
name="kuantitas" type="text">
</div>
</div>
<!-- <div class="form-group">
<label class="col-md-4 control-label">Keterangan </label>
<div class="col-md-6">
<input class="form-control" placeholder="Keterangan"
name="keterangan" type="text">
</div>
</div> -->
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 16 Kode sumber form tambah pengajuan

@extends('app')

@section('title')
Pesanan Barang
@endsection

@section('content')
<br>

126
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li class="active">{!!link_to('pesanan/index','List')!!}</li>
<li>{!!link_to('pesanan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="panel-heading">Pesanan Barang</div>
@if(Auth::user()->name == 'SUPERVISOR')
@if(sizeof($data))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">Nomor</th>
<th class="text-center">Tanggal</th>
<th class="text-center">Pemesan</th>
<th class="text-center">Status</th>
<th class="text-center">Keterangan</th>
<th class="text-center"></th>
</tr>
@foreach($data as $row)
<tr class="text-center">
<td>{{$row['id']}}</td>
<td>{{$row['tanggal']}}</td>
<td>{{$row['pemesan']}}</td>
@if($row['status'] == 'Belum dikonfirmasi')
<td><label class="control-label"><span
class="label label-default">{{$row->status}}</span></label ></td>
@elseif($row['status'] == 'Diterima')

127
<td><label class="control-label"><span
class="label label-success">{{$row->status}}</span></label ></td>
@elseif($row['status'] == 'Ditolak')
<td><label class="control-label"><span
class="label label-danger">{{$row->status}}</span></label ></td>
@else
<td><label class="control-label"><span
class="label label-warning">{{$row->status}}</span></label ></td>
@endif

<td><label class="control-label"><span
class="label label-default">{{$row->keterangan}}</span></label
></td>

<td class="text-center">
{!!link_to('pesanan/show/'.$row['id'], 'show',
['class' => 'btn btn-info btn-sm'])!!}

</td>

</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data pesanan barang kosong.
</div>
@endif
@else
@if(sizeof($pesananuser))
<table class="table table-bordered table-striped">
<tr>
<th class="text-center">Nomor</th>
<th class="text-center">Tanggal</th>
<th class="text-center">Pemesan</th>
<th class="text-center">Status</th>
<th class="text-center">Keterangan</th>
<th class="text-center"></th>
</tr>

128
@foreach($pesananuser as $row)
<tr class="text-center">
<td>{{$row->id}}</td>
<td>{{$row->tanggal}}</td>
<td>{{$row->pemesan}}</td>
@if($row->status == 'Belum dikonfirmasi')
<td><label class="control-label"><span
class="label label-default">{{$row->status}}</span></label ></td>
@elseif($row->status == 'Diterima')
<td><label class="control-label"><span
class="label label-success">{{$row->status}}</span></label ></td>
@elseif($row->status == 'Ditolak')
<td><label class="control-label"><span
class="label label-danger">{{$row->status}}</span></label ></td>
@else
<td><label class="control-label"><span
class="label label-warning">{{$row->status}}</span></label ></td>
@endif

<td><label class="control-label"><span
class="label label-default">{{$row->keterangan}}</span></label
></td>

<td class="text-center">
{!!link_to('pesanan/show/'.$row->id, 'show',
['class' => 'btn btn-default btn-sm'])!!}
</td>
</tr>
@endforeach
</table>
@else
<div class="panel-body">
Data pesanan barang Anda kosong.
</div>
@endif
</div>
@endif
</div>

129
</div>

Kode Sumber 17 Kode sumber list pesanan

@extends('app')

@section('css')
{!! HTML::style('css/bootstrap-datepicker.css') !!}
<style type="text/css" media="screen">
td input.qty {
max-width: 120px;
}
</style>
@endsection

@section('title')
Pesanan Barang
@endsection

@section('content')
<br>
<div class="well well-sm">
<ul class="nav nav-pills nav-justified">
<li>{!!link_to('pesanan/index','List')!!}</li>
<li class="active">{!!link_to('pesanan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Form Pesanan Barang</div>
<div class="panel-body">
{!! Form::open(['url' => 'pesanan/store', 'class' => 'form-
horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>

130
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-2 control-label">Nomor
Pesanan</label>
<label class="col-md-1 control-label">PS-
{{$id}}</label>
<input class="form-control hidden"
name="pesanan_barang_id" value="{{$id}}">
</div>
<div class="form-group">
<label class="col-md-2 control-label">Pemesan</label>
<div class="col-md-3">
<input class="form-control" name="pemesan"
value="{{Auth::user()->nama}}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Tanggal
Pesanan</label>
<div class="col-md-3">
<input data-provide="datepicker" class="datepicker
form-control" placeholder="2017-12-31" name="tanggal"
value="{{$tanggal}}">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2">Catatan</label>
<div class="col-md-6">
<textarea class="form-control"
name="catatan">{{Form::old('catatan')}}</textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<table class="table table-striped" id="tabelForm">
<tr>

131
<th>Kode Barang</th>
<th>Kuantitas</th>
<th>Tanggal dibutuhkan</th>
<th class="text-center"><button type="button"
class="btn btn-sm btn-default btn-tambah glyphicon glyphicon-
plus"></button></th>
</tr>
</table>
</div>
</div>
{{-- {{Form::old('barpes')}}--}}
<div class="form-group">
<div class="col-md-offset-10 col-md-2">
<button type="submit" class="btn btn-primary btn-
block">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
@endsection

@section('js')
{!! HTML::script('js/bootstrap-datepicker.js') !!}
<script id="jsource" type="text/javascript">
var iter = 0;
function appendRow() {
$("#tabelForm").append($("<tr />").append(
$("<td />").append(
$('<select id="tes'+iter+'" class="selectized"
name="barpes['+ iter +'][barang_id]">')
@foreach($data as $row)
.append('<option
value="{{$row['id']}}">{{$row['id'].' - '.$row['nama'].'
('.($row['kuantitas']+$row['pengadaan']-$row['pemakaian'].')')}}')

132
@endforeach
),
$("<td />").append('<input type="text" class="form-
control" name="barpes['+ iter +'][kuantitas]">'),
$("<td />").append('<input data-provide="datepicker"
class="datepicker form-control" placeholder="2017-12-31"
name="barpes['+ iter +'][tanggal_butuh]">'),
$("<td class='text-center' />").append('<button
type="button" class="btn btn-sm btn-danger delete-column glyphicon
glyphicon-remove"></button>').click(function() {
$(this).parent().remove();
})
));
iter = iter+1;

function on(){
$('#tes'+(iter-1)).selectize({
create:true,
sortField: 'text'
});
}
$(".btn-tambah").click(function() {
appendRow();
on();
});

$(document).ready(function(){
// appendRow();
});
</script>

Kode Sumber 18 Kode sumber form tambah pesanan

@extends('app')

@section('title')

133
Pesanan
@endsection

@section('content')
<br>
<div class="well well-sm">

<ul class="nav nav-pills nav-justified">


<li>{!!link_to('pesanan/index','List')!!}</li>
<li>{!!link_to('pesanan/create','Tambah')!!}</li>
</ul>
</div>
<div class="row">
<div class="col-md-offset-1 col-md-10">
<div class="panel panel-default">
<div class="panel-heading">Detail Pesanan Barang</div>
<div class="panel-body">
@if(sizeof($pesananBarang))
<div class="form-group">
<label class="col-md-2 control-label">ID </label>
<div class="col-md-2">
<label class="control-label">PS-{{$pesananBarang-
>id}}</label>
</div>
<div class="col-md-6">
@if(Auth::user()->name == 'SUPERVISOR')

@else

@endif
</div>
</div>
<br>
<div class="form-group">
<label class="col-md-2 control-label">Pemesan
</label>
<div class="col-md-2">
<label class="control-label">{{$pesananBarang-
>pemesan}}</label>

134
</div>
</div>
<br>
<div class="form-group">
<label class="col-md-2 control-label">Tanggal
</label>
<div class="col-md-2">
<label class="control-label">{{$pesananBarang-
>tanggal}}</label>
</div>
</div>
<br>
<br>
<div class="form-group">
<label class="col-md-2 control-label">Catatan
</label>
<div class="col-md-2">
<label class="control-label">{{$pesananBarang-
>catatan}}</label>
</div>
</div>
<br>
<table class="table table-hover">
<tr>
<th>Kode Barang</th>
<th>Kuantitas</th>
<th>Tanggal Dibutuhkan</th>

</tr>
@foreach($pesananBarang->barangs as $data)
<tr>
<td>{{$data->id.' - '.$data->nama}}</td>
<td>{{$data->pivot->kuantitas}}</td>
<td>{{$data->pivot->tanggal_butuh}}</td>
</tr>
@endforeach
</table>
<br>
<div class="col-md-12">

135
<div class="col-md-3">
<br>
<label class="control-label">Konfirmasi : </label>
<br>
</div>
<br>

@if(Auth::user()->name == 'SUPERVISOR')
<div class="col-md-1">
{!! Form::open(['url' =>
'pesanan/diterima/'.$pesananBarang->id, 'class' => 'form-horizontal']) !!}
<button class="btn btn-success btn-
sm">Terima</button>
{!!Form::close()!!}
</div>
<div class="col-md-1">
{!! Form::open(['url' =>
'pesanan/menunggu/'.$pesananBarang->id, 'class' => 'form-horizontal'])
!!}
<button class="btn btn-warning btn-
sm">Tunggu</button>
{!!Form::close()!!}
</div>
<div class="col-md-1">
{!! Form::open(['url' =>
'pesanan/ditolak/'.$pesananBarang->id, 'class' => 'form-horizontal']) !!}
<button class="btn btn-danger btn-
sm">Tolak</button>
<br>

{!!Form::close()!!}
</div>
<br>
<br>
<div class="col-md-3">
<label class="control-label">Keterangan
:</label>
</div>

136
{!! Form::open(['url' =>
'pesanan/keterangan/'.$pesananBarang->id, 'class' => 'form-horizontal'])
!!}

<br>
<div class="col-md-8">
<textarea class="form-control" type="text"
name="keterangan" placeholder="hanya dapat diisi
admin">{{$pesananBarang->keterangan}}</textarea>
</div>
<br>
<div class="col-md-offset-9 col-md-3">
<button type="submit" class="btn btn-primary
btn-sm">Beri keterangan</button>
</div>
{!!Form::close()!!}
@else
@if($pesananBarang->status == 'Belum dikonfirmasi')
<label class="control-label"><span
class="label label-default">{{$pesananBarang->status}}</span></label
>
@elseif($pesananBarang->status == 'Diterima')
<label class="control-label"><span
class="label label-success">{{$pesananBarang->status}}</span></label
>
@elseif($pesananBarang->status == 'Ditolak')
<label class="control-label"><span
class="label label-danger">{{$pesananBarang ->status}}</span></label
>
@else
<label class="control-label"><span
class="label label-warning">{{$pesananBarang-
>status}}</span></label >
@endif
<br>
<label class="col-md-3 control-label">Keterangan
:</label>

137
<label class="control-label">{{$pesananBarang-
>keterangan}}</label>
@endif
</div>
@endif
</div>
</div>
</div>
</div>

Kode Sumber 19 Kode sumber show pesanan

Untuk show pesanan pada akun SUPERVISOR dapat


mengubah status pesanan dan menambah keterangan dari
SUPERVISOR, sedangkan untuk akun lain hanya dapat melihat
detail pesanan pada kode pesanan tersebut.

@extends('app')

@section('css')
{!! HTML::style('css/bootstrap-datepicker.css') !!}
<style type="text/css" media="screen">
td input.qty {
max-width: 120px;
}
</style>
@endsection

@section('title')
Laporan
@endsection

@section('content')
<br>
<br>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">

138
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="panel-heading text-center"><label>Pilih
Filter Laporan</label></div>
<div class="panel-body">
<div class="form-group">-</div>
<div class="form-group">-</div>
<div class="form-group">-</div>
{!! Form::open(['url' => 'laporanpesanan/show',
'class' => 'form-horizontal']) !!}
<div class="form-group">
<label class="col-md-4 control-
label">Barang</label>
<div class="col-md-6">
<select class="selectized"
name="barang_id">
@foreach($data as $row)
<option
value="{{$row['id']}}">{{$row['nama']}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Mulai
tanggal</label>
<div class="col-md-6">
<input data-provide="datepicker"
class="datepicker form-control" name="tanggal_mulai">
</div>
</div>
<div class="form-group">

139
<label class="col-md-4 control-label">Sampai
tanggal</label>
<div class="col-md-6">
<input data-provide="datepicker"
class="datepicker form-control" name="tanggal_selesai">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-8 col-md-2">
<button type="submit" class="btn btn-
primary btn-block">
Submit
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

@endsection

@section('js')
{!! HTML::script('js/bootstrap-datepicker.js') !!}
<script id="jsource" type="text/javascript">
$('.selectized').selectize({
create : true,
sortField : 'text'
});
</script>

Kode Sumber 20 Kode sumber form filter laporan

@extends('app')

@section('title')
Laporan
@endsection

140
@section('content')
<br>
<br>
<div class="row">
<div class="panel panel-default">
<div class="panel-body">
@if(sizeof($query))
<div class="col-md-10 col-md-offset-1">
<table class="table table-bordered table-hover">
<tr>
<th class="text-center">No</th>
<th class="text-center">Pemesan</th>
<th class="text-center">Tanggal</th>
<th class="text-center">Nomor Pesanan</th>
<th class="text-center">Kuantitas</th>
</tr>
@foreach($query as $row)
<tr>
<td class="text-center">1</td>
<td class="text-center">{{$row['pemesan']}}</td>
<td class="text-center">{{$row['tanggal']}}</td>
<td class="text-center">{{$row['id']}}</td>
<td class="text-center">{{$row['kuantitas']}}</td>
</tr>
@endforeach
</table>
{!!link_to('laporanpesanan/export','Export', ['class' => 'btn
btn-default btn-sm'])!!}
</div>
@else
<div class="alert alert-danger">
Data tidak ditemukan
</div>
@endif
</div>
</div>
</div>

141
@endsection

@section('js')

Kode Sumber 21 Kode sumber show laporan

@extends('app')

@section('title')
Ubah Password
@endsection

@section('content')
<br>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">Ubah Password</div>
<div class="panel-body">
{!! Form::open(['url' => 'guest_password/update/'.$data->id,
'class' => 'form-horizontal']) !!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some
problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label class="col-md-4 control-label">NIP</label>
<div class="col-md-6">
<input class="form-control" readonly name="name"
type="text" value="{{$data->name}}">
</div>
</div>

142
<div class="form-group">
<label class="col-md-4 control-label">Password
Lama</label>
<div class="col-md-6">
<input class="form-control" name="password"
type="password">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Password
Baru</label>
<div class="col-md-6">
<input class="form-control" name="password2"
type="password">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Ulangi Password
Baru</label>
<div class="col-md-6">
<input class="form-control" name="password_ulangi"
type="password">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-8">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>

Kode Sumber 22 Kode sumber form ubah password

143
@extends('app')

@section('title')
@parent
Help
@stop

@section('content')
<div class="row">
<div class="col-md-10 col-md-offset-1">
<br>
<div class="panel panel-default">
<div class="panel-heading">Help</div>
<div class="panel-body">
<font class="col-md-offset-3" color="blue" size="6">
Alur Proses Pemesanan Barang
</font>
</div>
<div class="panel-body">
<img
src="http://localhost/gudang/public/images/ALURrapi2.jpg">
</div>
</div>
</div>
</div>

Kode Sumber 23 Kode sumber bantuan

@extends('app')

@section('css')
{!! HTML::style('css/bootstrap-datepicker.css') !!}
<style type="text/css" media="screen">
td input.qty {
max-width: 120px;
}
</style>
@endsection

144
@section('title')
Laporan
@endsection

@section('content')
<br>
<br>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="panel-heading text-center"><label>Pilih Filter
Laporan</label></div>
<div class="panel-body">
<div class="form-group">-</div>
<div class="form-group">-</div>
<div class="form-group">-</div>
{!! Form::open(['url' => 'laporanpengadaan/show', 'class' =>
'form-horizontal']) !!}
<div class="form-group">
<label class="col-md-4 control-label">Barang</label>
<div class="col-md-6">
<select class="selectized" name="barang_id">
@foreach($data as $row)
<option
value="{{$row['id']}}">{{$row['nama']}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">

145
<label class="col-md-4 control-label">Mulai
tanggal</label>
<div class="col-md-6">
<input data-provide="datepicker" class="datepicker
form-control" name="tanggal_mulai">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Sampai
tanggal</label>
<div class="col-md-6">
<input data-provide="datepicker" class="datepicker
form-control" name="tanggal_selesai">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-8 col-md-2">
<button type="submit" class="btn btn-primary btn-
block">
Submit
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

@endsection

@section('js')
{!! HTML::script('js/bootstrap-datepicker.js') !!}
<script id="jsource" type="text/javascript">
$('.selectized').selectize({
create : true,
sortField : 'text'
});
</script>

146
Kode Sumber 24 Kode sumber form filter laporan

@extends('app')

@section('title')
Laporan
@endsection

@section('content')
<br>
<br>
<div class="row">
<div class="panel panel-default">
<div class="panel-body">
@if(sizeof($query))
<div class="col-md-10 col-md-offset-1">
<table class="table table-bordered table-hover">
<tr>
<th class="text-center">No</th>
<th class="text-center">Tanggal</th>
<th class="text-center">Nomor Pengadaan</th>
<th class="text-center">Kuantitas</th>
</tr>
@foreach($query as $row)
<tr>
<td class="text-center">1</td>
<td class="text-center">{{$row['tanggal']}}</td>
<td class="text-
center">{{$row['pengadaan_barang_id']}}</td>
<td class="text-center">{{$row['kuantitas']}}</td>
</tr>
@endforeach
</table>
{!! Form::open(['url' => 'laporanpengadaan/export', 'class'
=> 'form-horizontal']) !!}
<label class="col-md-4 control-label
hidden">mulai</label>
<div class="col-md-6">

147
<input class="form-control hidden" name="mulai"
type="text" value="{{$tanggal_mulai}}">
</div>
<label class="col-md-4 control-label
hidden">selesai</label>
<div class="col-md-6">
<input class="form-control hidden" name="selesai"
type=
"text" value="{{$tanggal_selesai}}">
</div>
<label class="col-md-4 control-label
hidden">barang</label>
<div class="col-md-6">
<input class="form-control hidden" name="barang"
type="text" value="{{$barang}}">
</div>
<div class="form-group">
<div class="col-md-12">
<button type="submit" class="btn btn-default">
Export
</button>
</div>
</div>
{{--{!!link_to('laporanpesanan/export','Export', ['class' =>
'btn btn-default btn-sm'])!!}--}}
{!! Form::close() !!}
</div>
@else
<div class="alert alert-danger">
Data tidak ditemukan
</div>
@endif
</div>
</div>
</div>

@endsection

@section('js')

148
Kode Sumber 25 Kode sumber show laporan pengadaan

7.3. Implementasi Lapisan Kontrol


Pada bagian ini akan kami berikan kode sumber lapisan
kontrol aplikasi Sistem Informasi Gudang ATK yang telah kami
buat, karena aplikasi kami menggunakan arsitektur Model View
Controller (MVC) berorientasi objek.

<?php

namespace App\Http\Controllers;

use App\Anggota;
use App\User;
use Illuminate\Http\Request;
use App\Departemen;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class AnggotaController extends Controller


{
public function index()
{

$data = Anggota::get([
'id',
'nip',
'nama',
'jabatan',
'email'
]);

//return view('pre', compact('data'));

return view('anggota.index', compact('data'));


}

149
public function create()
{
$data = Departemen::all();
return view('anggota.create', compact('data'));
}
public function store(Request $request)
{
$this->validate($request,['password' =>
'required|min:6|same:confirm_password']);
$data = $request->all();
$fill1['name'] = $data['nip'];
$fill1['nama'] = $data['nama'];
$fill1['password'] = bcrypt($data['password']) ;

$fill2['nip'] = $data['nip'];
$fill2['nama'] = $data['nama'];
$fill2['email'] = $data['email'];
$fill2['jabatan'] = $data['jabatan'];

// dd($fill1,$fill2);
User::create($fill1);
Anggota::create($fill2);
return redirect()->action('AnggotaController@index');
}
public function show($id)
{

}
public function edit($id)
{
$data = Anggota::find($id);
$depart = Departemen::all();
return view('anggota.edit', compact('data','depart'));
}
public function update(Request $request, $id)
{
$fill = $request->all();
$fillanggota['nip'] = $fill['nip'];
$fillanggota['nama'] = $fill['nama'];

150
$fillanggota['jabatan'] = $fill['jabatan'];
$fillanggota['email'] = $fill['email'];

// dd($fill);
Anggota::find($id)->update($fillanggota);
if($fill['password'] != null)
{
$data = User::find($id+1);
$data->password = bcrypt($fill['password']);
$data->save();
}
return redirect()->action('AnggotaController@index');
}
public function destroy($id)
{
$anggota = Anggota::find($id);
$nip = $anggota['nip'];
$anggota->delete();
$user = DB::table('users')->where('name',$nip)->delete();
return redirect()->action('AnggotaController@index');
}

Kode Sumber 26 Kode sumber AnggotaController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Barang;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class BarangController extends Controller


{
public function index()
{

151
$data = Barang::get([
'id',
'nama',
'kuantitas',
'keterangan',
'pengadaan',
'pemakaian'
])->toArray();
//return view('pre', compact('data'));
return view('barang.index', compact('data'));
}

public function create()


{
return view('barang.create');
}

public function store(Request $request)


{
$fill = $request->all();
if(is_numeric($fill['kuantitas']))
{
Barang::create($fill);
//dd($fill);
return redirect()->action('BarangController@index');

}
else{
return redirect()->back()->withErrors(['Kuantitas harus berupa
angka!']);
}
}

public function show($id)


{
//
}

public function edit($id)

152
{
$data = Barang::find($id);
return view('barang.edit', compact('data'));
}
public function update(Request $request, $id)
{
$fill = $request->all();
// dd($fill);
Barang::find($id)->update($fill);
return redirect()->action('BarangController@index');
}
public function destroy($id)
{
$barang = Barang::find($id);
if ($barang->used == 0)
{
$barang->delete();
return redirect()->action('BarangController@index');
}
else
{
return redirect()->back()->withErrors(['Barang sudah digunakan,
tidak dapat dihapus!']);
}

Kode Sumber 27 Kode sumber BarangController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Departemen;

use App\Http\Requests;
use App\Http\Controllers\Controller;

153
class DepartemenController extends Controller
{
public function index()
{
$data = Departemen::all();
return view('departemen/index', compact('data'));
}

public function create()


{
return view('departemen/create');
}

public function store(Request $request)


{
$data = $request->all();
// dd($data);
Departemen::create($data);
return redirect()->action('DepartemenController@index');
}

public function show($id)


{
//
}

public function edit($id)


{
$data = Departemen::find($id);
return view('departemen/edit', compact('data'));
}
public function update(Request $request, $id)
{
$data = $request->all();
Departemen::find($id)->update($data);
return redirect()->action('DepartemenController@index');
}

154
public function destroy($id)
{
$data = Departemen::find($id);
$data->delete();
return redirect()->action('DepartemenController@index');
}

Kode Sumber 28 Kode sumber DepartemenController

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class HelpController extends Controller


{
public function index()
{
return view('help.index');
}
public function create()
{
//
}

public function store(Request $request)


{
//
}
public function show($id)
{
//
}
public function edit($id)

155
{
//
}

public function update(Request $request, $id)


{
//
}
public function destroy($id)
{
//
}

Kode Sumber 29 Kode sumber HelpController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class HomeController extends Controller


{
public function index()
{
return view('home');
}

public function create()


{
return view('app');
}
public function store(Request $request)
{

156
//
}
public function show($id)
{
//
}
public function edit($id)
{
//
}

public function update(Request $request, $id)


{
//
}

public function destroy($id)


{
//
}

Kode Sumber 30 Kode sumber HomeController

<?php

namespace App\Http\Controllers;

use App\PengadaanBarang;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use App\Barang;

class LaporanPengadaanController extends Controller


{

157
public function index()
{
$data = Barang::all();
return view('laporanpengadaan.index', compact('data'));
}
public function create()
{
//
}

public function store(Request $request)


{
//
}

public function show(Request $request)


{
$data = $request->all();
// dd($data);
$tanggal_mulai = $data['tanggal_mulai'];
$tanggal_selesai = $data['tanggal_selesai'];
$barang = $data['barang_id'];
$query = PengadaanBarang::hydrateRaw(
'SELECT
*
FROM
pengadaan_barangs,
barangs,
barang_terimas
WHERE
pengadaan_barangs.id = barang_terimas.pengadaan_barang_id
AND barang_terimas.barang_id = barangs.id
AND pengadaan_barangs.tanggal >= "'.$tanggal_mulai.'"
AND pengadaan_barangs.tanggal < "'.$tanggal_selesai.'"
AND barang_terimas.barang_id = '.$barang);
// dd($query->toArray());

158
return view('laporanpengadaan/show',
compact('query','tanggal_mulai','tanggal_selesai','barang'));
}

public function edit($id)


{
//
}

public function update(Request $request, $id)


{
//
}

public function destroy($id)


{
//
}

public function export(Request $request)


{
$data = $request->all();
// dd($data);
$query = PengadaanBarang::hydrateRaw(
'SELECT
pengadaan_barangs.tanggal, pengadaan_barangs.id as
nomor_pengadaan, barang_terimas.kuantitas
FROM
pengadaan_barangs,
barangs,
barang_terimas
WHERE
pengadaan_barangs.id = barang_terimas.pengadaan_barang_id
AND barang_terimas.barang_id = barangs.id
AND pengadaan_barangs.tanggal >="'.$data['mulai'].'"
AND pengadaan_barangs.tanggal <"'.$data['selesai'].'"
AND barang_terimas.barang_id='.$data['barang'].'');
// dd($query);

159
Excel::create('laporanpengadaan', function($excel) use($query){
$excel->sheet('Sheetname', function($sheet) use($query) {
$sheet->fromArray($query
);
});
})->export('xls');
}

Kode Sumber 31 Kode sumber LaporanPengadaanController

<?php

namespace App\Http\Controllers;

use App\PesananBarang;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Barang;
class LaporanPesananController extends Controller
{
protected $exportData;
protected $mulai;
protected $selesai;

public function index()


{
$data = Barang::all();
return view('laporanpesanan.index', compact('data'));
}

public function create()


{
//
}

160
public function store(Request $request)
{
//
}

public function show(Request $request)


{
$data = $request->all();
// dd($data);
$tanggal_mulai = $data['tanggal_mulai'];
$tanggal_selesai = $data['tanggal_selesai'];
$barang = $data['barang_id'];
$query = PesananBarang::hydrateRaw(
'SELECT
*
FROM
pesanan_barangs,
barangs,
barang_terpesans
WHERE
pesanan_barangs.id = barang_terpesans.pesanan_barang_id
AND barang_terpesans.barang_id = barangs.id
AND pesanan_barangs.tanggal >="'.$tanggal_mulai.'"
AND pesanan_barangs.tanggal <"'.$tanggal_selesai.'"
AND barang_terpesans.barang_id='.$barang);
$this->exportData = $query;
// dd($query->toArray());
return view('laporanpesanan/show',
compact('query','tanggal_mulai','tanggal_selesai','barang'));
}

public function edit($id)


{
//
}

161
return Response
*/
public function update(Request $request, $id)
{
//
}

public function destroy($id)


{
//
}

public function export(Request $request)


{
$data = $request->all();
// dd($data);
$query = PesananBarang::hydrateRaw(
'SELECT

pesanan_barangs.pemesan,pesanan_barangs.tanggal,pesanan_barangs.id
as nomor_pesanan,barang_terpesans.kuantitas
FROM
pesanan_barangs,
barangs,
barang_terpesans
WHERE
pesanan_barangs.id = barang_terpesans.pesanan_barang_id
AND barang_terpesans.barang_id = barangs.id
AND pesanan_barangs.tanggal >="'.$data['mulai'].'"
AND pesanan_barangs.tanggal <"'.$data['selesai'].'"
AND barang_terpesans.barang_id='.$data['barang'].'')-
>toArray();
// dd($query);
Excel::create('laporanpesanan', function($excel) use($query){
$excel->sheet('Sheetname', function($sheet) use($query) {
$sheet->fromArray($query
);
});

162
})->export('xls');
}

Kode Sumber 32 Kode sumber LaporanPesananController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\PengadaanBarang;
use App\Barang;
use App\BarangTerima;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DateTime;
use Mockery\Exception;

class PengadaanController extends Controller


{
protected $pengadaanBarang;
protected $barang;
protected $barangTerima;

public function __construct(PengadaanBarang $pengadaan, Barang


$barang, BarangTerima $barangTerima)
{
$this->pengadaanBarang = $pengadaan;
$this->barang = $barang;
$this->barangTerima = $barangTerima;
}
public function index()
{
$data = PengadaanBarang::all();
return view('aktivitas.pengadaan.index', compact('data'));
//
}

163
public function create()
{
$result = Barang::all();
if(!$result->isEmpty())
{
$id = $this->pengadaanBarang->max('id');
$id = $id === null ? 1 : $id + 1;
$tanggal = (new DateTime);
$tanggal = $tanggal->format('Y-m-d');;
$data = Barang::all();
return view('aktivitas.pengadaan.create', compact('data', 'id',
'tanggal'));
}
else{
return redirect()->back()->withErrors(['Data barang kosong,
silahkan mengisi data barang terlebih dahulu']);
}

//
}

public function store(Request $request)


{
$this->validate($request,[
'penerima'=>'required'
]);
$all = $request->all();
// dd($all);

$pengadaanFill = $this->pengadaanBarang->getFillable();
$pengadaan = $this->pengadaanBarang->Create($request-
>only($pengadaanFill));

// dd($all);
try{
foreach($all['barpeng'] as $barpeng) {
if(!is_numeric($barpeng['kuantitas']))
{

164
return redirect()->back()->withErrors(['Kuantitas harus
berupa angka']);
}
else
{
$addedItem = Barang::find($barpeng['barang_id']);
$addedItem['pengadaan'] += $barpeng['kuantitas'];
$addedItem->save();
// dd($addedItem);
Barang::find($barpeng['barang_id'])->update($addedItem-
>toArray());
$barang_id = array_pull($barpeng, 'barang_id');
$pengadaan->barangs()->attach($barang_id, $barpeng);
}
}
return redirect('pengadaan/index');
}
catch(Exception $e)
{
return redirect()->back()->withErrors($e);
}
}

public function show($id)


{

$pengadaanBarang=$this->pengadaanBarang->find($id);
return
view('aktivitas/pengadaan/show',compact('pengadaanBarang'));
}

public function edit($id)


{
//
}

public function update(Request $request, $id)


{
//

165
}

public function destroy($id)


{
//
}

Kode Sumber 33 Kode sumber PengadaanController

<?php

namespace App\Http\Controllers;

use App\PengajuanBarang;
use Illuminate\Http\Request;

use DB;
use Auth;
use App\Barang;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class PengajuanController extends Controller


{
public function index()
{
$data = PengajuanBarang::all();
$pengajuanuser = DB::table('pengajuan_barangs')-
>where('pengaju','=',Auth::user()->nama)->get();
return view('aktivitas.pengajuan.index',
compact('data','pengajuanuser'));
}

public function create()


{

166
return view('aktivitas.pengajuan.create');

public function diterima($id)


{
$pesanan = PengajuanBarang::find($id);
$pesanan->status = 'Diterima';
$pesanan->save();
Barang::firstOrCreate(['nama' => $pesanan['nama']]);
return redirect('pengajuan/index');
}

public function ditolak($id)


{
$pesanan = PengajuanBarang::find($id);
$pesanan->status = 'Ditolak';
$pesanan->save();
return redirect('pengajuan/index');
}
public function store(Request $request)
{
$fill = $request->all();
if(is_numeric($fill['kuantitas']))
{
PengajuanBarang::create($fill);
//dd($fill);
return redirect()->action('PengajuanController@index');
}
else
{
return redirect()->back()->withErrors(['Kuantitas harus berupa
angka']);
}
}

public function show($id)


{

167
//
}

public function edit($id)


{
//
}

public function update(Request $request, $id)


{
//
}

public function destroy($id)


{
$data = PengajuanBarang::find($id);
$data->delete();
return redirect()->action('PengajuanController@index');
}

Kode Sumber 34 Kode sumber PengajuanController

<?php

namespace App\Http\Controllers;

use App\Barang;
use Illuminate\Http\Request;

use Auth;
use DB;
use DateTime;
use App\PesananBarang;
use App\BarangTerpesan;
use App\Http\Requests;
use App\Http\Controllers\Controller;

168
class PesananController extends Controller
{

protected $pesananBarang;
protected $barangPesanan;
protected $barang;

public function __construct(PesananBarang $pesanan, Barang


$barang, BarangTerpesan $barangPesanan)
{
$this->pesananBarang = $pesanan;
$this->barangPesanan = $barangPesanan;
$this->barang = $barang;
}

public function index()


{
$data = PesananBarang::all();
$pesananuser = DB::table('pesanan_barangs')-
>where('pemesan','=',Auth::user()->nama)->get();
// dd($pesananuser);
return view('aktivitas.pesanan.index',
compact('data','pesananuser'));
}

public function create()


{
$result = Barang::all();
if(!$result->isEmpty())
{
$id = $this->pesananBarang->max('id');
$id = $id === null ? 1 : $id + 1;
$tanggal = (new DateTime);
$tanggal = $tanggal->format('Y-m-d');
$data = Barang::all();

169
return view('aktivitas.pesanan.create', compact('data', 'id',
'tanggal'));
}
else{
return redirect()->back()->withErrors(['Data barang kosong,
silahkan mengisi Form Pengajuan Barang terlebih dahulu!']);
}

public function store(Request $request)


{
$all = $request->all();
// dd($all);

$pesananFill = $this->pesananBarang->getFillable();
$pesanan = $this->pesananBarang->Create($request-
>only($pesananFill));

// dd($all['barpes']);
foreach($all['barpes'] as $barpes){
if(!is_numeric($barpes['kuantitas']))
{
return redirect()->back()->withErrors(['Kuantitas harus berupa
angka']);
}
elseif($barpes['barang_id'] == null)
{
return redirect()->back()->withErrors(['Kode barang tidak
boleh kosong']);
}
else
{
$barangTerpakai = Barang::find($barpes['barang_id']);
$barangTerpakai->used = '1';
$barangTerpakai->save();
$barang_id = array_pull($barpes, 'barang_id');
// dd($barang_id);
$pesanan->barangs()->attach($barang_id, $barpes);

170
}
}
return redirect('pesanan/index');
}

public function show($id)


{
$pesananBarang=$this->pesananBarang->find($id);
// dd($pesananBarang->barangs);
return view('aktivitas/pesanan/show',compact('pesananBarang'));
}

public function edit($id)


{
//
}

public function update(Request $request, $id)


{
//
}

public function diterima($id)


{
// dd($id);
$list = $this->barangPesanan->all()-
>where('pesanan_barang_id',intval($id));
$length = sizeof($list);
$checklist = 0;
// dd($list, $length);
foreach($list as $data)
{
$check = Barang::find($data['barang_id']);
// dd($check['kuantitas']+$check['pengadaan']-
$check['pemakaian'],$list,$data['kuantitas']);
if($check['kuantitas']+$check['pengadaan']-
$check['pemakaian'] >= $data['kuantitas'])

171
$checklist++;
}
// dd($checklist, $length);
if($checklist == $length)
{
foreach($list as $data)
{
$check = Barang::find($data['barang_id']);
// $check['kuantitas'] -= $data['kuantitas'];
$check['pemakaian'] += $data['kuantitas'];
$check->save();
}
$pesanan = PesananBarang::find($id);
$pesanan->status = 'Diterima';
$pesanan->save();
return redirect('pesanan/index');
}
else
{
$pesanan = PesananBarang::find($id);
$pesanan->status = 'Harap Menunggu';
$pesanan->save();
return redirect('pesanan/index')->withErrors(['Terdapat barang
yang belum tersedia, lakukan Pengadaan Barang!']);
}
}

public function menunggu($id)


{
$pesanan = PesananBarang::find($id);
$pesanan->status = 'Harap Menunggu';
$pesanan->save();
return redirect('pesanan/index');
}

public function ditolak($id)


{
$pesanan = PesananBarang::find($id);
$pesanan->status = 'Ditolak';

172
$pesanan->save();
return redirect('pesanan/index');
}

public function keterangan(Request $request, $id)


{
$all = $request->all();
$pesanan = PesananBarang::find($id);
$pesanan->keterangan = $all['keterangan'];
$pesanan->save();
return redirect('pesanan/index');
}
public function destroy($id)
{
//
}

Kode Sumber 35 Kode sumber PesananController

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

use App\Anggota;
use App\Barang;
use Auth;
use Hash;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Guard;

class UserController extends Controller


{

public function __construct(Guard $auth)

173
{
// $this->middleware('guest', ['except' => ['getLogout', 'getProfile',
'postProfile']]);
$this->auth = $auth;
}

public function index()


{
return view('user/home');
}

public function barang()


{
$data = Barang::all();
return view('guest/guest_barang', compact('data'));
}

public function anggota()


{
$data = Anggota::all();
return view('guest/guest_anggota', compact('data'));
}

public function passwordEdit()


{
$data = User::find(Auth::user()->id);
// dd($data);
return view('guest/guest_password', compact('data'));
}

public function passwordUpdate(Request $request, $id)


{
$this->validate($request, [
'password' => 'required|same:password',
]);
$old = $request->input('password');
$new = $request->input('password2');

174
if (Hash::check($old, $this->auth->user()->password) && $new ==
$request['password_ulangi']) {
$this->auth->user()->password = Hash::make($new);
$this->auth->user()->save();
return redirect('/home');
}
return redirect()->back()->withErrors(['Password lama salah atau
perulangan password baru berbeda!']);
}

public function create()


{
//
}

public function store(Request $request)


{
//
}

public function show($id)


{
//
}

public function edit($id)


{
//
}

public function update(Request $request, $id)


{
//
}

public function destroy($id)


{
//
}

175
Kode Sumber 36 Kode sumber UserController

7.4. Implementasi Lapisan Data


Pada bagian ini kami berikan kode sumber lapisan model
aplikasi Sistem Informasi Gudang ATK. Perlu diketahui
framework laravel memberikan kemudahan bagi penggunanya
dalam melakukan operasi yang membutuhkan model. Oleh karena
itu pada bagian ini akan sangat sedikit kode sumber yang
diberikan karena semua kebutuhan dari model sudah diinherit dari
dependency.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Anggota extends Model


{
protected $fillable = [
'nip',
'nama',
'jabatan',
'email'
];

Kode Sumber 37 Kode sumber Model Anggota

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Barang extends Model

176
{
protected $fillable = [
'id',
'nama',
'kuantitas',
'keterangan'
];

Kode Sumber 38 Kode sumber Model Barang

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class BarangTerima extends Model


{
protected $fillable =[
'barang_id',
'kuantitas'
];

Kode Sumber 39 Kode sumber Model BarangTerima

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class BarangTerpesan extends Model


{
protected $fillable = [
'pesanan_barang_id',
'barang_id',
'kuantitas',
'tanggal_butuh'

177
];

Kode Sumber 40 Kode sumber Model BarangTerpesan

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Departemen extends Model


{
protected $fillable = [
'nama'
];

Kode Sumber 41 Kode sumber Model Departemen

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PengadaanBarang extends Model


{
protected $fillable = [
'penerima',
'tanggal',
'catatan'
];

public function barangs() {


return $this
->belongsToMany('App\Barang','barang_terimas',
'pengadaan_barang_id', 'barang_id')
->withPivot([
'id',

178
'kuantitas'
])
->withTimestamps();
}

Kode Sumber 42 Kode sumber Model PengadaanBarang

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PengajuanBarang extends Model


{
protected $fillable = [
'nama',
'pengaju',
'kuantitas',
'keterangan'
];

Kode Sumber 43 Kode sumber Model PengajuanBarang

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PesananBarang extends Model


{
protected $fillable = [
'pemesan',
'tanggal',
'keterangan',
'catatan'
];

179
public function barangs() {
return $this
->belongsToMany('App\Barang', 'barang_terpesans',
'pesanan_barang_id', 'barang_id')
->withPivot([
'id',
'kuantitas',
'tanggal_butuh'
])
->withTimestamps();
}

Kode Sumber 44 Kode sumber Model PesananBarang

<?php

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as
AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as
CanResetPasswordContract;

class User extends Model implements AuthenticatableContract,


CanResetPasswordContract
{
use Authenticatable, CanResetPassword;

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';

180
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'email', 'password','nama'];

/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];

Kode Sumber 45 Kode sumber Model User

181
2. Dokumentasi

Gambar 48. Foto Gerbang Utama PT. PLN (Persero) P3B JB

Gambar 49. Foto saat memasukkan sistem pada server PLN

182
Gambar 50. Foto saat melakukan demo program kepada dosen
pmbimbing

Gambar 51. Foto kelompok kerja praktik dengan dosen


pembimbing (dari ujung kiri Vina Desliana, Dewi Maya Fitriana,
M. Arief Ridwan, dan Samsul Ma’arif)

183
Gambar 52. Foto tampak depan gedung PT PLN (Persero) P3B
JB APB Jatim

184
BIODATA PENULIS

Dewi Maya Fitriana lahir di kota


Foto Surabaya tanggal 16 Mei 1994. Riwayat
Berwarna pendidikan yang telah dilalui yaitu SDN
Ngagel I/394 Surabaya, SMP Negeri 32
Close-up Surabaya, dan lulus dari SMA Negeri 6
Surabaya pada tahun 2012. Saat ini
ukuran 3x4 sedang menempuh pendidikan di Institut
Teknologi Sepuluh Nopember di jurusan
Teknik Informatika angkatan 2012. Ia
bertempat tinggal di Darmorejo VII/7A
Surabaya.
Email : maya.dmf@gmail.com

Mochammad Arief Ridwan lahir di kota


Foto Surabaya tanggal 31 Oktober 1994.
Berwarna Riwayat pendidikan yang telah dialami
yaitu SDN Wedoro I, SMP Negeri 22
Close-up Surabaya, dan lulus dari SMA Negeri 15
Surabaya pada tahun 2012. Saat ini
ukuran 3x4 sedang menempuh pendidikan di Institut
Teknologi Sepuluh Nopember di jurusan
Teknik Informatika angkatan 2012. Ia
bertempat tinggal di Jatayu Kav. 12 U-
Rewwin, Waru, Sidoarjo.
Email : aridwan05@gmail.com

185
186

Anda mungkin juga menyukai