BAB IV HASIL DAN ANALISIS 4.1. Implementasi Implementasi merupakan hasil karya dalam bentuk sistem berdasarkan perancangan yang telah dibahas pada bab sebelumnya. Implementasi yang dibahas meliputi implementasi aplikasi pada login role, supplier, inventory bahan mentah, produk, penjualan dan reporting. 4.1.1 Implementasi Aplikasi pada Login Role Menu login merupakan menu yang digunakan oleh client untuk mengubah status pengguna aplikasi dari guest menjadi member. Menu login berada di dalam form login seperti yang dapat dilihat pada Gambar 4.1. Gambar 4.1 User Interface Form Login 55
56 Pada gambar 4.1 menunjukkan halaman awal program, login digunakan sebagai pembagian hak akses pada masing masing pengguna. Status setelah berhasil login adalah owner, pengurus supplier, inventory bahan, bagian produksi dan bagian pengeluaran produk. Kode Program untuk autentikasi login dapat dilihat pada Kode Program 4.1 berikut: Kode Program 4.1 Autentikasi Pengguna 1. Public Sub New(ByVal username As String, ByVal password As String) 2. ui = UserIdentity.GetIdentity(userName, password) 3. Thread.CurrentPrincipal = Me 4. End Sub Pada Kode Program 4.1 diatas terdapat constructor untuk memvalidasi user name dan password. User name dan password didapatkan dari Class UserIdentity. Class UserPricipal kemudian mendapatkan system thread security dari Iprincipal. 4.1.2 Implementasi Aplikasi pada Kelola Supplier Aplikasi pada sisi pengurus supplier digunakan untuk melakukan pendataan pada supplier yang menyuplai bahan, seperti dapat dilihat pada Gambar 4.2 berikut:
57 Gambar 4.2 User Interface Customize untuk bagian Supplier Setelah role dari sisi pengurus supplier berhasil login, maka aplikasi akan menampilkan control-control untuk olah data supplier (create, update delete) yang dapat digunakan oleh user, selain itu pengurus supplier juga dapat mengatur supplier mana yang masih aktif atau tidak aktif. Kode program untuk menampilkan seluruh data dari supplier bahan dapat dilihat pada Kode Program 4.1 dibawah:
58 Kode Program 4.2 Kode untuk Menampilkan List Suppliers 1. Private Sub FillListView(ByVal sil As SupplierInfoList) 2. ListView1.Items.Clear() 3. arrsupplier.clear() 4. arrkode.clear() 5. arrkontak.clear() 6. arrcompany.clear() 7. For Each si As SupplierInfo In sil 8. Dim lvi As New ListViewItem(si.KodeSupplier) 9. arrkode.add(si.kodesupplier) 10. arrsupplier.add(si.suppliername.toupper) 11. lvi.subitems.add(si.suppliername) 12. lvi.subitems.add(si.companyname) 13. lvi.subitems.add(si.phone) 14. lvi.subitems.add(si.status) 15. lvi.subitems.add(si.tanggalupdate) 16. lvi.tag = si 17. Me.ListView1.Items.Add(lvi) 18. Next 19. End Sub Pada Kode Program 4.1 baris ke-1 hingga baris ke-19 Menunjukkan procedure untuk mengisi list dari database. Setelah clear ListView dilakukan looping dari BussinessLogic Layer (SupplierInfo) untuk mengisi satu per satu SubItems dalam ListView, kemudian melakukan Tag pada ListViewItem. Untuk melakukan penambahan data supplier dapat dilihat pada Kode Program 4.3 dibawah ini: Kode Program 4.3 Kode untuk Menambah Data Supplier 1. Private Sub AddSupplier() 2. Dim fds As New FormDetailSupplier 3. Dim se As SupplierEditable = SupplierEditable.CreateObj 4. fds.myse = se 5. fds.arrsupplier = arrsupplier 6. fds.arrkode = arrkode 7. fds.arrkontak = arrkontak 8. fds.arrcompany = arrcompany 9. If fds.showdialog(me) = Windows.Forms.DialogResult.OK Then 10. Call FillListView(SupplierInfoList.ListSupplier) 11. End If 12. End Sub Pada line 2 prosedur diatas langkah pertama adalah memanggil FormDetailSupplier selanjutnya menginisialisasi
59 pembuatan object dari BussinesLogic Layer (SupplierEditable), kemudian PublicProperty pada FormDetailSupplier disamakan dengan ArrayList pada kode form ini. Jika DialogResult telah Ok maka data telah siap disimpan di ListView. Untuk melakukan update data dapat dilihat pada Kode Program 4.4 berikut: Kode Program 4.4 Update Data Supplier 1. Private Sub EditDataSupplier() 2. Dim si As SupplierInfo 3. If Me.ListView1.SelectedItems.Count = 0 Then 4. MsgBox("Pilih Data untuk Diedit") 5. Else 6. si = Me.ListView1.SelectedItems(0).Tag 7. GetOneSupplier(si.SupplierID) 8. End If 9. End Sub Untuk melakukan update data pada satu supplier tertentu terlebih dahulu sistem akan mengecek apakah user telah memilih supplier tersebut atau belum, jika sudah maka Tag pada SelectedItemListViewCollection akan membaca data dari Bussines Logic Layer yaitu SupplierInfo. SupplierID digunakan sebagai acuan dalam membawa serangkaian data dari manipulasi ini. 4.1.3 Implementasi Aplikasi pada Kelola Inventory Bahan Mentah Implementasi aplikasi pada inventory bahan dilakukan oleh user yang memiliki role pengurus inventory, dapat dilihat pada gambar 4.3 dibawah ini:
60 Gambar 4.3 User Interface Custom Inventory Bahan Pada bagian ini pengurus inventory bahan mendata bahanbahan apa saja yang dibutuhkan untuk proses produksi (dimuat fungsi create, update, delete). Pengurus supplier dapat memasukkan berapa jumlah bahan yang diambil untuk persediaan. Kode untuk menampilkan list data bahan dapat dilihat pada Kode Program 4.5 di bawah ini: Kode Program 4.5 Menampilkan List Data Bahan 1.Private Sub FillListView(ByVal bil As BahanInfoList) 2. Me.ListView1.Items.Clear() 3. arrbahan.clear() 4. arrkode.clear() 5. For Each bi As BahanInfo In bil 6. Dim lvi As New ListViewItem(bi.KodeBahan) 7. arrkode.add(bi.kodebahan) 8. arrbahan.add(bi.namabahan.toupper) 9. lvi.subitems.add(bi.namabahan) 10 lvi.subitems.add(bi.satuanbahan) 11. lvi.subitems.add(bi.jumlahbahan) 12. lvi.subitems.add(bi.tanggalupdate) 13. lvi.tag = bi 14. Me.ListView1.Items.Add(lvi) 15. Next 16.End Sub
61 Pada Kode Program 4.5 diatas terdapat prosedur untuk menampung data ke dalam ListView. Setelah isi ListView dan ArrayList telah di clear, maka dilakukan looping pada BussinessLogic Layer (BahanInfo) untuk kemudian dimasukkan ke dalam ArrayList dan ListView SubItems. Langkah terakhir adalah melakukan Tag pada ListViewItems kemudian memasukkan ListViewItems ke dalam Control ListView. Kode Program untuk menambah data bahan dapat dilihat pada Kode Program 4.6 berikut: Kode Program 4.6 Menambah Data Bahan 1.Private Sub BahanBaru() 2. Dim fdb As New FormDetailBahan 3. Dim be As BahanEditable = BahanEditable.CreateObj 4. fdb.mybe = be 5. fdb.arrbahan = arrbahan 6. fdb.arrkode = arrkode 7. If fdb.showdialog(me) = Windows.Forms.DialogResult.OK Then 8. FillListView(BahanInfoList.GetListBahan) 9. End If 10. End Sub Pada procedure diatas, setelah manginisialisasi FormDetailBahan, sistem akan memanggil fungsi CreateObject pada BussinessLogic (BahanEditable). Jika user telah melakukan click OK pada DialogResult, sistem akan mengisi kembali ListView dengan attribute dari Bussinesslogic Layer yaitu fungsi GetListBahan pada BahanInfoList. Kode Program untuk update bahan dapat dilihat pada Kode Program 4.7 berikut:
62 Kode Program 4.7 Update Data Bahan 1.Private Sub BahanBaru() 2. Dim fdb As New FormDetailBahan 3. Dim be As BahanEditable = BahanEditable.CreateObj 4. fdb.mybe = be 5. fdb.arrbahan = arrbahan 6. fdb.arrkode = arrkode 7. If fdb.showdialog(me) = Windows.Forms.DialogResult.OK Then 8. FillListView(BahanInfoList.GetListBahan) 9. End If 10. End Sub Pada kode program diatas user akan menerima form detail bahan untuk melakukan customize data bahan, setelah selesai user akan memilih menyimpan hasil manipulasi kemudian sistem akan memanggil fungsi CreateObject dari BussinessLogic Layer untuk menampung Array. Langkah terakhir, sistem akan mengcompile list bahan baru dan menampilkan kembali dalam Control ListView. 4.1.4 Implementasi Aplikasi pada Kelola Produksi Petugas bagian produksi dapat memulai proses perencaan pembuatan suatu produk pastry bakery setelah berhasil melakukan login. Form untuk custom produksi dapat dilihat pada gambar 4.4, gambar 4.5 dan gambar 4.6 dibawah ini:
63 Gambar 4.4 User Interface Proses ketika Pengambilan Bahan untuk Produksi Pada gambar 4.4 diatas custom produksi dapat mengambil data bahan dari inventory. Form ini dapat mengatur berapa kuantitas masing-masing bahan yang diperlukan dalam proses pembuatan pastry & bakery. Kode program untuk menyimpan bahan ke dalam list produk dapat dilihat pada Kode Program 4.8 berikut: Kode Program 4.8 Kode untuk Mengambil List Bahan 1.Private Sub BahanBaru() 2. Dim fdb As New FormDetailBahan 3. Dim be As BahanEditable = BahanEditable.CreateObj 4. fdb.mybe = be 5. fdb.arrbahan = arrbahan 6. fdb.arrkode = arrkode 7. If fdb.showdialog(me) = Windows.Forms.DialogResult.OK Then 8. FillListView(BahanInfoList.GetListBahan) 9. End If 10. End Sub Setelah user mendapatkan bahan-bahan yang digunakan untuk produksi, user akan menginput identitas produk beserta jumlahnya dan untuk mengantisipasi kesalahan yang dilakukan
64 oleh user disaat menginput data, sistem menyediakan menu edit pada blanko detail data product yang dapat dilihat pada Gambar 4.5 Gambar 4.5 User Interface Data Detail Produk Pada form data detail produk diatas, menampilkan customize data produk yang meliputi: image, jumlah produk, detail masing-masing bahan yang digunakan, serta tanggal update. Kode untuk menambah data produk tersebut dapat dilihat Kode Program 4.9 berikut:
65 Kode Program 4.9 Kode untuk Menambahkan Data Produk Baru 1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 2. Dim savepic As New IO.MemoryStream 3. If Not Me.PictureBox1.Image Is Nothing Then 4. Me.PictureBox1.Image.Save(savePic, Me.PictureBox1.Image.RawFormat) 5. End If 6. Dim binarypic As Byte() = savepic.getbuffer 7. savepic.close() 8. Try 9. With MyPE 10..ProductID = Me.TextBoxKodeProduct.Tag 11..KodeProduct = Me.TextBoxKodeProduct.Text 12..ProductName = Me.TextBoxNamaProduct.Text 13..JumlahProduct = Me.NumericUpDownJumlahProduct.Value 14..Picture = binarypic 15..TanggalUpdate = Date.Now 16..SaveData() 17. End With 18. For i As Integer = 0 To Me.ListViewBahanProduct.Items.Count - 1 19. Dim jml As Integer = CType(Me.ListViewBahanProduct.Items(i).SubItem s(2).text, Integer) * Me.NumericUpDownJumlahProduct.Value DopEditable.PotongStok(Me.ListViewBahanProduct.Items(i).Text, jml) 20. Next 21. Catch ex As Exception 22. MsgBox(ex.Message) 23. End Try 24. End Sub Pada kode program 4.6 diatas ketika user menekan tombol untuk menyimpan data maka pertama kali sistem akan menginisialisasi isi data dari control yang sudah ada, kemudian sistem akan memanggil prosedur SaveData pada layer BusinessLogic (ClassProductEditable). Setelah objek data produk baru dimasukkan sistem akan melakukan looping untuk memotong
66 stok bahan produksi melalui BusinessLogicLayer (Class DOPEditable). Gambar 4.6 User Interface Manifest Data Produk Setelah proses pendataan produksi yang telah dilalui, sistem akan menyimpan data manifest produk-produk pastry bakery, yang meliputi jumlah, nama produk, kode dan tanggal update produk. 4.1.5 Implementasi Aplikasi pada Kelola Pengeluaran Produk User role untuk bagian pengeluaran produk mendata dan mengambil produk dari bagian produksi yang, form untuk implementasi aplikasi ini dapat dilihat pada gambar 4.7 dan 4.8 dibawah ini:
67 Gambar 4.7 Form Pengambilan Produk untuk Penjualan Pada gambar 4.7 diatas custom pengeluaran produk dapat mengambil data produk dari list produk. Form ini dapat mengatur berapa kuantitas masing-masing produk yang dapat diambil dalam proses pengeluaran produk pastry & bakery. Kode program untuk menyimpan produk ke dalam list pengeluaran produk dapat dilihat pada Kode Program 4.10 berikut:
68 Kode Program 4.10 Kode untuk Mengambil Data Produk 1. Private Sub ButtonAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAdd.Click 2. Dim pi As ProductInfo 3. If Me.NumericUpDownJumlahProduct.Value > CType(Me.ListViewProduct.SelectedItems(0).SubItems(2). Text, Integer) Or Me.NumericUpDownJumlahProduct.Value = 0 Then 4. MsgBox("Stok tidak cukup atau inputan nol") 5. Else 6. If Me.ListViewProduct.SelectedItems.Count = 0 Then 7. MsgBox("Pilih Product! dulu") 8. Else 9. pi = Me.ListViewProduct.SelectedItems(0).Tag 10. End If 11. Dim lvi As ListViewItem = Me.ListViewProduct.SelectedItems(0) DopEditable.InsertDetailP(lvi.Text, Me.NumericUpDownJumlahProduct.Value, lvi.subitems(1).text) 12. MsgBox("Product Telah Ditambahkan") 13. Me.Close() 14. End If 15. End Sub Pada Kode Program 4.10 diatas sistem pertama kali akan menginisialisasi objek baru dari class ProductInfo (BusinessLogicLayer). Kemudian sistem akan memeriksa kelengkapan validasi control (NumericUpDown, SelectedItems pada ListView). Jika telah sesuai sistem akan memanggil prosedur InsertDetailProduct pada kelas DOPEditable yang ada pada BusinessLogicLayer. InsertDetailProduct akan melakukan perintah manipulasi pada DataAccess. Setelah selesai sistem akan memberitahukan melalui MessageBox.
69 Gambar 4.7 Form Data Pengeluaran Produk Pada gambar 4.7 terdapat record pengambilan produk dari list produk, dari data record tersebut, kemudian ditambahkan tanggal dan nomor transaksi untuk kemudian disimpan ke dalam manifest pengeluaran produk. 4.1.6 Implementasi Reporting Untuk membuat pelaporan (reporting) digunakan Crystal Report yang telah terintegrasi dengan Microsoft Visual Studio 2010. Pelaporan ini hanya dapat dilihat oleh user yang memiliki role Owner. 1. Laporan Supplier Identity Supplier Identitiy merupakan data detail supplier yang dapat dilihat oleh pemilik perusahaan, tampilan laporan data identitas supplier dapat dilihat pada gambar 4.8 berikut:
70 Gambar 4.8 Reporting Data Supplier Pada pelaporan data supplier di atas owner dapat melihat detail supplier siapa saja yang menjadi pemasok bahan baku di dalam usahanya. 2. Laporan Supplier Bahan Laporan supplier bahan diasumsikan sebagai data-data bahan yang berasal dari supplier tertentu. Pada gambar 4.9 dapat dilihat bahwa satu supplier memasok bahan berikut jumlahnya.
71 Gambar 4.9 Reporting Data Bahan yang Disuplai Supplier Pada pelaporan data bahan yang dibawa oleh masing-masing supplier, owner dapat melihat bahwa setiap supplier membawa bahan-bahan apa saja yang dibutuhkan oleh usahanya. 3. Laporan Persediaan Bahan Laporan persediaan bahan merupakan list data bahan yang ada di dalam inventory. Data Bahan ini seluruhnya dikelola oleh user yang memiliki role pengurus inventory dan pelaporan ini dilihat oleh user yang memiliki role owner.
72 Gambar 4.10 Laporan Persediaan Bahan Baku Gambar 4.10 menunjukkan laporan persediaan bahan baku yang dapat dilihat dan telah dikelompokkan per bulan. Sehinggga dalam tiap periode per bulan dapat dilihat berapa saja jumlah persediaan per item bahan yang ada. 4. Laporan List Produk List Produk merupakan data produk jadi yang dapat dilihat dalam pelaporan ini. Pengguna reporting ini dapat melihat jumlah persediaan produk apa saja yang mencukupi atau tidak mencukupi
73 Gambar 4.11 Laporan Data Produk Gambar 4.11 menunjukkan fungsi pelaporan data produk yang telah dibangun oleh SAP Crystal Report. Dengan memilih tombol laporan produk pengguna dapat langsung melihat laporan ini namun tidak dapt memanipulasinya. 5. Laporan Bahan untuk Produksi (Per Produk) Laporan ini berfungsi untuk melihat kuantitas bahan apa saja yang ada dalam detail per produk. Dalam laporan ini satu produk dapat memuat beberapa item bahan beserta jumlahnya.
74 Gambar 4.12 Laporan Bahan yang digunakan untuk Produksi (Per Produk) Gambar 4.12 menunjukkan bahwa produk-produk pastry bakery sebelum diolah memuat beberapa bahan yang diambil dari inventory. 6. Laporan Pengeluaran Produk Laporan pengeluaran produk merupakan fungsi pendataan paket-paket produk yang dikeluarkan dari perusahaan. Produkproduk tersebut dikelompokkan berdasarkan nomor transaksinya.
75 Gambar 4.13 Laporan Pengeluaran Produk Gambar 4.13 menunjukkan bahwa reporting menyimpan data-data produk selama transaksi berlangsung yang dilakukan oleh user role pengurus pengeluaran produk. 4.2. Hasil Pengujian Pengujian penelitian ini menggunakan metode Black-Bock hasil yang diharapkan dapat dilihat pada Tabel 4.1 Proses Login Tabel 4.1 Hasil Pengujian Sistem Login Hasil yang diharapkan Menampilkan pilihan bisnis yang bisa dimanipulai sesuai dengan role Hasil yang Muncul Main menu yang berisi bisnis sesuai dengan role Kesimpulan Valid
76 Proses Klik Button Bahan Produksi Input data bahan baru dan update bahan yang telah ada Tabel 4.2 Hasil Pengujian Sistem Kelola Inventory Bahan Hasil yang diharapkan Menampilkan record data bahan dengan pilihan manipulasi add, edit, delete Menampilkan blanko form baru, edit data bahan pada ListView Hasil yang Muncul Record bahan tampil meliputi kode bahan, nama bahan, satuan, jumlah, dan tanggal update Blanko form baru mucul user dapat input kode bahan, nama bahan, jumlah bahan, satuan dan supplier Kesimpulan Valid Valid
77 Proses Klik Button Supplier Input data supplier baru dan update data supplier yang telah ada Klik button pengeluaran produk Tabel 4.3 Hasil Pengujian Sistem Kelola Supplier Hasil yang diharapkan Menampilkan record data supplier dengan pilihan untuk manipulasi Menampilkan blanko form baru, edit data supplier pada ListView Menampikan form baru dengan pilihan untuk melakukan pilihan pengeluaran produk Hasil yang Muncul Record supplier tampil meliputi kode supplier, nama supplier, nama perusahaan, kontak, status dan tanggal update Blanko form baru mucul user dapat input kode kerja supplier, nama supplier, nama perusahaan, kontak dan status Melakukan form untuk memilih produk apa saja yang akan dikeluarkan Kesimpulan Valid Valid Valid
78 Proses Klik Button Produksi Input data produk baru dan update data produk yang telah ada Input data bahan untuk produksi Tabel 4.4 Hasil Pengujian Sistem Kelola Produksi Hasil yang diharapkan Menampilkan record data produk dengan pilihan untuk manipulasi Menampilkan blanko form baru, edit data produk pada ListView Menampilkan blanko list data bahan Hasil yang Muncul Record data produksi tampil meliputi kode produksi, nama produk, jumlah dan tanggal update Blanko form baru mucul user dapat input kode produk, nama produk, jumlah, menambah gambar dan memasukkan data bahan apa saja yang akan digunakan Blanko form baru muncul, user dapat memilih data bahan apa saja yang dibutuhkan beserta kuantitasnya Kesimpulan Valid Valid Valid
79 Tabel 4.5 Hasil Pengujian Sistem Kelola Pengeluaran Produk Proses Klik button pengeluaran produk Hasil yang diharapkan Menampikan form baru dengan pilihan untuk melakukan pilihan pengeluaran produk Hasil yang Muncul Melakukan form untuk memilih produk apa saja yang akan dikeluarkan Kesimpulan Valid