4. IMPLEMENTASI SISTEM
Pada bab 4 ini akan dijelaskan tentang segmen-segmen dari aplikasi yang telah dibuat, setting database, implementasi program dan pembahasan lainnya.
4.1. Impelentasi Database
Database yang digunakan dalam pembuatan sistem informasi pada Toko Penjualan Mesin Fotocopy Utama adalah Microsoft SQL Server 2005. Cara membuka Microsoft SQL Server 2005, yaitu dengan menggunakan Management Studio dengan langkah-langkah : Start à Program à Microsoft SQL Server 2005 à SQL Server Management Studio . Untuk membuat database baru pada Microsoft SQL Server 2005, klik kanan untuk memunculkan submeu dan memili menu ’New Database’. Pembuatan database dapat dilihat pada Gambar 4.1.
Gambar 4.1. Pembuatan Database Baru
4.2. Koneksi Database dengan Microsoft Visual Basic 6.0
Koneksi database dibutuhkan untuk menghubungkan Microsoft SQL Server 2005 dengan Microsoft Visual Basic 6.0. Hal ini dilakukan agar data dari database dapat diakses oleh program. Koneksi database dilakukan dengan melakukan penga turan pada komponen ADODC. Untuk menambahkan komponen ADODC, pilih menu ‘project’ pada menu bar kemudian ‘component’, pilih Microsoft ADO Data Control 6.0, seperti yang dapat dilihat pada Gambar 4.2.
Gambar 4.2. Menambah Komponen ADODC
Masukkan komponen ADODC ke dalam salah satu form dalam Microsoft Visual Basic 6.0. Setelah itu, klik kanan pada komponen ADODC tersebut untuk membuka form properties dari ADODC, seperti dapat dilihat pada Gambar 4.3.
Gambar 4.3. Properties ADODC
Untuk melakukan koneksi, tekan tombol ‘build ’ dan akan muncul window
‘Data Link Properties’ kemudian pilih ‘SQL Native Client’ kemudian tekan tombol ‘Next’ seperti yang dapat dilihat pada Gambar 4.4.
Gambar 4.4. Data Link Properties
Masukkan nama server dan database yang akan digunakan. Tekan tombol
‘test connection’ untuk memastikan apakah koneksi sudah berhasil atau tidak, seperti yang dapat dilihat pada Gambar 4.5. Setelah tes koneksi berhasil, maka akan muncul connection string pada property pages, seperti yang dapat dilihat pada Gambar 4.6.
Gambar 4.5.Memilih Server dan Database yang digunakan ADODC
Gambar 4.6. ADODC Properties dengan Connection String Segmen Program 4.1. Koneksi Database
constring = "Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Skripsi;Data Source=."
cn.CursorLocation = adUseClient cn.Open constring
4.3. Implementasi Program
Segmen 4.1 adalah segmen yang digunakan untuk login ke dalam program.
Pada segmen ini, sistem dapat membedakan hak akses pemakai program. Dari status yang ada, hak akses dibagi atas dua kategori, yaitu :
o Admin , yang memiliki hak akses penuh terhadap program
o User, yang memiliki hak akses terhadap input order pembelian, pembelian, retur pembelian, laporan pembelian, laporan retur pembelian, order penjualan, penjualan, retur penjualan, laporan penjualan, laporan retur penjualan.
Segmen 4.2. Source Code Login
With cmdMasuk .ActiveConnection = cn .Prepared = True
.CommandType = adCm dStoredProc .CommandText = "Masuk"
Set Username = .CreateParameter("Username", adVarChar, adParamInput, 20, "") Set Password = .CreateParameter("Password", adVarChar, adParamInput, 20, "") Set Masuk = .CreateParameter("Masuk", adInteger, adParamOutput, , 0) .Parameters.Append Username
.Parameters.Append Password .Parameters.Append Masuk End With
• Menu Master
Menu master digunakan untuk mengolah data -data yang ada dalam database. Tabel master hanya dapat diakses oleh admin , dimana terdapat empat proses yang meliputi proses insert, update, delete dan search. Seperti yang dapat dilihat pada Tabel 4.1.
Tabel 4.1. Master Customer
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Customer Menambah data customer 4.3 - 2 Update Customer Mengubah data Customer 4.4 - 3 Delete Customer Menghapus data Customer 4.5 - 4 Search Customer Mencari data Customer 4.6 -
Segmen Program 4.3. Menambah Master Customer
With cmdInsertCus
.ActiveConnection = TLogin.cn .Prepared = True
.Com mandType = adCmdStoredProc .CommandText = "InsertCustomer"
Set KodeCustomer = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set NamaCustomer = .CreateParameter("NamaCustomer", adVarChar, adParamInput, 50, "") Set AlamatCustomer = .CreateParameter("AlamatCustomer", adVarChar, adParamInput, 50,
"")
Set KotaCustomer = .CreateParameter("KotaCustomer", adVarChar, adParamInput, 30, "") Set TelpCustomer = .CreateParameter("TelpCustomer", adVarChar, adParamInput, 15, "") Set HpCustomer = .CreateParameter("HpCustomer", adVarChar, adParamInput, 15, "") Set FaxCustomer = .CreateParameter("FaxCustomer", adVarChar, adParamInput, 15, "") Set FlagCus = .CreateParameter("Flag", adInteger, adParamOut put, , 0)
.Parameters.Append KodeCustomer .Parameters.Append NamaCustomer .Parameters.Append AlamatCustomer .Parameters.Append KotaCustomer .Parameters.Append TelpCustomer .Parameters.Append HpCustomer .Parameters.Append FaxCustomer .Parameters.Append FlagCus End With
rsInsertCus.Open cmdInsertCus, , adOpenForwardOnly, adLockReadOnly KodeCustomer.Value = Text1.Text ; NamaCustomer.Value = Text2.Text AlamatCustomer.Value = Text3.Text ; KotaCustomer.Value = Text4.Text TelpCustomer.Value = Text5.Text ; HpCustomer.Value = Text6.Text FaxCustomer.Value = Text7.Text
cmdInsertCus.Execute If FlagCus.Value = 0 Then
MsgBox "Field Kode, Nama dan Alamat Harus di Isi!", vbCritical, "Toko Fotocopy Utama"
End If
If FlagCus.Value = 2 Then
MsgBox "Nama Customer Sudah Ada. Nama Kembar Tidak di Izinkan!", vbCritical, "Toko Fotocopy Utama"
End If
If FlagCus.Value = 3 Then
MsgBox "Alamat Customer Sudah Ada. Alamat Kembar Tidak di Izinkan!", vbCritical,
"Toko Fotocopy Utama"
End If
If FlagCus.Value = 4 Then
MsgBox "Nomor Telepon Sudah Ada. Nomor Telepon Kembar Tidak di Izinkan!", vbCritical, "Toko Fotocopy Utama"
End If
Segmen Program 4.3. Menambah Master Customer (Lanjutan)
If FlagCus.Value = 6 Then
MsgBox "Nomor Fax Sudah Ada. Nomor Fax Kembar Tidak di Izinkan!", vbCritical, "Toko Fotocopy Utama"
End If
If FlagCus.Value = 1 Then
MsgBox "Data Berhasil di Simpan...", vbInformation, "Toko Fotocopy Utama"
cmdCus.Execute rsCus.Requery coba = coba + 1 Unload Me TMenuUtama.Show End If
Segmen Program 4.4. Mengubah Master Customer
With cmdEdit
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditCustomer"
Set KodeEdit = .C reateParameter("KodeLama", adVarChar, adParamInput, 10, "") Set KodeEditBaru = .CreateParameter("KodeBaru", adVarChar, adParamInput, 10, "") Set NamaEdit = .CreateParameter("NamaCustomer", adVarChar, adParamInput, 50, "")
Set AlamatEdit = .CreateParameter("AlamatCustomer", adVarChar, adParamInput, 50, "") Set KotaEdit = .CreateParameter("KotaCustomer", adVarChar, adParamInput, 30, "") Set TelpEdit = .CreateParameter("TelpCustomer", adVarChar, adParamInput, 15, "") Set HpEdit = .CreateParameter("HpCustomer", adVarChar, adParamInput, 15, "") Set FaxEdit = .CreateParameter("FaxCustomer", adVarChar, adParamInput, 15, "") Set tmp = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeEdit .Parameters.Append KodeEditBaru .Parameters.Append NamaEdit .Parameters.Append AlamatEdit .Parameters.Append KotaEdit .Parameters.Append TelpEdit .Parameters.Append HpEdit .Parameters.Append FaxEdit .Parameters.Append tmp
End With
rsEdit.Open cmdEdit, , adOpenForwardOnly, adLockReadOnly If tmp.Value = 0 Then
MsgBox "Data Berhasil di Edit...", vbInformation, "Toko Fotocopy Utama"
cmdCus.Execute rsCus.Requery Unload Me
TMenuUtama.Show End If
Segmen Program 4.5. Menghapus Master Customer
If tmp.Value = 0 Then
MsgBox "Data Berhasil dihapus...", vbInformation, "Toko Fotocopy Utama"
cmdCus.Execute rsCus.Requery Unload Me
TMenuUtama.Show End If
With cmdHapus
.ActiveConnection = TLogin.cn ; .Prepared = True
Segmen Program 4.5. Menghapus Master Customer (Lanjutan)
.CommandType = adCmdStoredProc ; .CommandText = "HapusCustomer"
Set KodeHapusCustomer = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set NamaHapus = .CreateParameter("NamaCustomer", adVarChar, adParamInput, 50, "") Set AlamatHapus = .CreateParameter("AlamatCustomer", adVarChar, adParamInput, 50, "") Set KotaHapus = .CreateParameter("KotaCustomer", adVarChar, adParamInput, 30, "") Set TelpHapus = .CreateParameter("TelpCustomer", adVarChar, adParamInput, 15, "") Set HpHapus = .CreateParameter("HpCustomer", adVarChar, adParamInput, 15, "") Set FaxHapus = .CreateParameter("FaxCustomer", adVarChar, adParamInput, 15, "") Set tmp2 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeHapusCustomer ; .Parameters.Append NamaH apus .Parameters.Append AlamatHapus ; .Parameters.Append KotaHapus .Parameters.Append TelpHapus ; .Parameters.Append HpHapus .Parameters.Append FaxHapus ; .Parameters.Append tmp2 End With
rsHapus.Open cmdHapus, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.6. Mencari Master Customer
cViewerCustomer = 4
TSearchCustomer.Visible = True
TSearchCustomer.Command1.Visible = False TSearchCustomer.Command2.Caption = "Exit"
With cmd1
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdText
.CommandText = "select * from Customer where NamaCustomer <> 'Deleted'"
End With
rs1.Open cmd1, , adOpenForwardOnly, adLockReadOnly tClick = rs1.RecordCount
Set DataGrid2.DataSource = rs1
• Menu Order Pembelian
Order Pembelian digunakan untuk mencatat pemesanan barang yang kemudian akan dilanjutkan ke proses pembelian. User dapat melakukan insert, update, delete order pembelian seperti pada Tabel 4.2.
Tabel 4.2. Order Pembelian
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Order
Pembelian
Menambah Order
Pembelian 4.7 DFD Level 1
Pembelian, Proses 1.1 2 Update Order
Pembelian
Mengubah Order
Pembelian 4.8 DFD Level 1
Pembelian, Proses 1.1 3 Delete Order
Pembelian
Menghapus Order
Pembelian 4.9 DFD Level 1
Pembelian, Proses 1.1
Segmen Program 4.7. Menambah Order Pembelian
With cmdInsertOB
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc
.CommandText = "InsertDetailOrderPembelian"
Set KodeTemp = .CreateParameter("KodeTemp", adInteger, adParamInput, , 0) Set KodeOrder = .CreateParameter("Kode", adVarChar, adParamInput, 10, "") Set KodeBarang = .CreateParameter("KodeBarang", adVarChar, adParamInput, 10, "") Set NamaBarang = .CreateParameter("NamaBarang", adVarChar, adParamInput, 50, "") Set Harga = .CreateParameter("Harga", adCurrency, adParamInput, , 0)
Set JumlahBarang = .CreateParameter("JumlahBarang", adInteger, adParamInput, , 0) Set Satuan = .CreateParameter("Satuan", adVarChar, adParamInput, 10, "")
Set Total = .CreateParameter("Total", adCurrency, adParamInput, , 0) Set FlagOB = .CreateParameter("Flag", adInteger, adParamOutput, , 0) .Parameters.Append KodeTemp .Parameters.Append KodeOrder .Parameters.Append KodeBarang .Parameters.Append NamaBarang .Parameters.Append Harga .Parameters.Append JumlahBarang .Parameters.Append Satuan .Parameters.Append Total
.Parameters.Append FlagOB End With
rsInsertOB.Open cmdInsertOB, , adOpenForwardOnly, adLockReadOnly
With cmdInsertOrder
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "InsertOrderPembelian"
Set KodeOrder4 = .CreateParameter("KodeOrderPemb", adVarChar, adParamInput, 10, "") Set KodeSupplier4 = .CreateParameter("KodeSupplier", adVarChar, adParamInput, 10, "") Set Tanggal4 = .CreateParameter("TglOrderPemb", adDate, adParamInput, , Null) Set GrandTotal4 = .CreateParameter("GrandTotal", adCurrency, adParamInput, , 0) Set FlagOrder = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeOrder4 .Parameters.Append KodeSupplier4 .Parameters.Append Tanggal4 .Parameters.Append GrandTotal4 .Parameters.Append FlagOrder
End With
rsInsertOrder.Open cmdInsertOrder, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.8. Mengubah Order Pembe lian
'edit order pembelian With cmdEditOrder
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditOrderPembelian"
Set KodeOrderEdit4 = .CreateParameter("KodeOrderPemb",adVarChar, adParamInput, 10, "") Set KodeO rderEditBaru4 = .CreateParameter("KodeOrderPembBaru", adVarChar, adParamInput, 10, "")
Set KodeSupplierEdit4 = .CreateParameter("KodeSupplier", adVarChar, adParamInput, 10, "") Set TanggalEdit4 = .CreateParameter("TglOrderPemb", adDate, adParamInput, , Null) Set GrandTotalEdit4 = .CreateParameter("GrandTotal", adCurrency, adParamInput, , 0) Set FlagEdit4 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeOrderEdit4 .Parameters.Append KodeOrderEditBaru4
.Parameters.Append KodeSupplierEdit4 .Parameters.Append TanggalEdit4
Segmen Program 4.8. Mengubah Order Pembelian (Lanjutan)
.Parameters.Append GrandTotalEdit4 .Parameters.Append FlagEdit4 End With
rsEditOrder.Open cmdEditOrder, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.9. Menghapus Order Pembelian
'hapus data order di datagrid With cmdHapus
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "HapusTemp"
Set KodeHapus = .CreateParameter("KodeTemp", adInt eger, adParamInput, , 0) Set KodeOrderHapus = .CreateParameter("Kode", adVarChar, adParamInput, 10, "") Set KodeBarangHapus = .CreateParameter("KodeBarang", adVarChar, adParamInput, 10, "") Set NamaHapus = .CreateParameter("NamaBarang", adVarChar, adParamI nput, 50, "") Set HargaHapus = .CreateParameter("Harga", adCurrency, adParamInput, , 0)
Set JumlahHapus = .CreateParameter("NamaBarang", adInteger, adParamInput, , 0) Set SatuanHapus = .CreateParameter("Satuan", adVarChar, adParamInput, 10, "") Set TotalHapus = .CreateParameter("Total", adCurrency, adParamInput, , 0) Set tmp2 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeHapus .Parameters.Append KodeOrderHapus .Parameters.Append KodeBarangHapus .Parameters.Append NamaHapus .Parameters.Append HargaHapus .Parameters.Append JumlahHapus .Parameters.Append SatuanHapus .Parameters.Append TotalHapus .Parameters.Append tmp2
End With
rsHapus.Open cmdHapus, , adOpenForwardOnly, adLockReadOnly
• Menu Pembelian
Pembelian digunakan untuk mencatat data pembelian baik pembelian langsung maupun pembelian yang dilakukan dengan melakukan order terlebih dahulu. User dapat melakukan proses tambah, ubah dan hapus. Fungsi hapus disini sebelum pembelian keseluruhan disimpan. Proses tersebut dapat dilihat pada Tabel 4.3.
Tabel 4.3. Pembelian
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Pembelian Menambah data
pembelian 4.10 DFD Level 1 Pembelian, Proses 1.2 2 Update Pembelian Mengubah data
pembelian 4.11 DFD Level 1 Pembelian, Proses 1.2
Segmen Program 4.10. Menambah Data Pembelian
With cmdInsertPBL1
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "Insert Pembelian"
Set NoNotaPemb1 = .CreateParameter("NoNotaPemb", adVarChar, adParamInput, 10, "") Set KodeOrder1 = .CreateParameter("KodeOrder", adVarChar, adParamInput, 10, "") Set KodeSupplier1 = .CreateParameter("KodeSupplier", adVarChar, adParamInput, 10, "") Set TglPemb1 = .CreateParameter("TglPemb", adDate, adParamInput, , Null)
Set CaraBayarPemb1 = .CreateParameter("CaraBayarPemb", adVarChar, adParamInput, 10, "") Set JatuhTempoPemb1 = .CreateParameter("JatuhTempoPemb", adDate, adParamInput, , Null) Set TotalHutangPemb1 = .CreateParameter("TotalHutangPemb", adCurrency, adParamInput, , 0) Set JumlahLunasPemb1 = .CreateParameter("JumlahLunasPemb", adCurrency, adParamInput, , 0) Set SisaBiayaPemb1 = .CreateParameter("SisaBiayaPemb", adCurrency, adParamInput, , 0) Set StatusPemb1 = .CreateParameter("StatusPemb", adVarChar, adParamInput, 15, "") Set FlagPBL1 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append NoNotaPemb1 .Parameters.Append KodeOrder1 .Parameters.Append KodeSupplier1 .Parameters.Append TglPemb1 .Parameters.Append CaraBayarPemb1 .Parameters.Append JatuhTempoPemb1 .Parameters.Append TotalHutangPemb1 .Parameters.Append JumlahLunasPemb1 .Parameters.Append SisaBiayaPemb1 .Parameters.Append StatusPemb1 .Parameters.Append FlagPBL1
End With
rsInsertPBL1.Open cmdInsertPBL1, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.11. Mengubah Data Pembelian
NoDetailEdit.Value = Label14.Caption NoNotaEditPemb.Value = Label8.Caption KodeBarangEdit.Value = Label28.Caption
NamaEdit.Value = Label17.Caption ; HargaEdit.Value = Text1.Text JumlahEdit.Value = Text2.Text ; SatuanEdit.Value = Label20.Caption TotalEdit.Value = HargaEdit.Value * JumlahEdit.Value
cmdEdit.Execute If tmp.Value = 0 Then
MsgBox "Data Berhasil di Edit...", vbInformation, "Toko Fotocopy Utama"
cmdAll2.Execute ; cmdAll4.Execute ; rsAll2.Requery ; rsAll4.Requery Set DataGrid3.DataSource = rsAll2 ; Set DataGrid4.DataSource = rsAll4 If tclick3 <> 0 Then
TempClick = DataGrid4.Columns(0).Text Label22.Caption = TempClick
End If End If
Segmen Program 4.11. Mengubah Data Pembelian (Lanjutan)
With cmdAll2
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "select * from DetailPembelian where NoNota LIKE '%" & Label8.Caption &
"%' AND NamaBarang <> 'Deleted'"
End With
rsAll2.Open cmdAll2, , adOpenForwardOnly, adLockReadOnly tClick = rsAll2.RecordCount
Set DataGrid3.DataSource = rsAll2 With cmdAll4
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "SELECT SUM(Total) FROM DetailPembelian WHERE NoNota LIKE '%" & Label8.Caption & "%' AND NoNota <> 'PBL.0000'"
End With
rsAll4.Open ; cmdAll4 ; tclick3 = rsAll4.RecordCount Set DataGrid4.DataSource = rsAll4
If tclick3 <> 0 Then
TempClick = DataGrid4.Columns(0).Text Label22.Caption = TempClick End If
• Menu Pembayaran Hutang
Setiap pembayaran hutang pembelian yang dilakukan secara kredit akan dicatat ke dalam database. Dalam satu kali pembayaran dapat dilakukan pembayaran pada beberapa nota secara langsung. User dapat melakukan proses tambah dan ubah pembayaran hutang, seperti yang dapat dilihat pada Tabel 4.4.
Tabel 4.4. Pembayaran Hutang
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Pembayaran
Hutang
Menambah data
pembayaran hutang 4.12
DFD Level 1 Pembelian, Proses
1.3 Segmen Program 4.12. Menambah Data Pembayaran Hutang
With cmdSave
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "InsertPembayaranHutang"
Set NoNotaHutangSave = .CreateParameter("NoNotaHutang", adVarChar, adParamInput, 10, "") Set KodeSupplierSave = .CreateParameter("KodeSupplier", adVarChar, adParamInput, 10, "") Set TglBayarHutangSave = .CreateParameter("TglBayarHutang", adDate, adParamInput, , Null) Set JumlahBayarHutangSave = .CreateParameter("JumlahBayarHutang", adCurrency, adPar amInput, , 0)
Set JenisBayarHutangSave = .CreateParameter("JenisBayarHutang", adVarChar, adParamInput, 10, "")
Set KeteranganHutangSave = .CreateParameter("KeteranganHutangSave", adVarChar, adParamInput, 100, "")
Segmen Program 4.12. Menambah Data Pembaya ran Hutang (Lanjutan)
Set FlagSave = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
Parameters.Append NoNotaHutangSave .Parameters.Append KodeSupplierSave .Parameters.Append TglBayarHutangSave .Parameters.Append JumlahBayarHutangSave .Parameters.Append JenisBayarHutangSave .Parameters.Append KeteranganHutangSave .Parameters.Append FlagSave
End With
rsSave.Open cmdSave, , adOpenForwardOnly, adLockReadOnly
• Menu Retur Pembelian
Retur pembelian akan dilakukan kepada supplier apabila terdapat barang yang dibeli rusak. User dapat melakukan tambah dan ubah retur pembelian seperti yang dapat dilihat pada Tabel 4.5.
Tabel 4.5. Retur Pembelian
No Nama Keterangan Segmen
Program Hubungan dengan DFD 1 Insert Retur
Pembelian
Menambah data retur
pembelian 4.13 DFD Level 1
Pembelian, Proses 1.4 2 Update Retur
Pembelian
Mengubah data retur
pembelian 4.14 DFD Level 1
Pembelian, Proses 1.4.
Segmen Program 4.13. Menambah Retur Pembelian
If FlagRetur.Value = 1 Then
MsgBox "Data Berhasil di Simpan...", vbInformation, "Toko Fotocopy Utama"
cmdAll2.Execute ; rsAll2.Requery
Set DataGrid2.DataSource = rsAll2 ; coba = coba + 1 End If
With cmdAll2
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "SELECT * FROM DetailReturPembelian WHERE NoPemb LIKE '%" &
Label16.Caption & "%' AND NoPemb <> 'PBL.0000' AND NamaBarang <> 'Deleted'"
End With
rsAll2.Open cmdAll2 tClick2 = rsAll2.RecordCount Set DataGrid2.DataSource = rsAll2
Segmen 4.14. Mengubah Retur Pembelian
With cmdEditRetur
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditReturPembelian"
Set KodeReturEdit = .CreateParameter("KodeReturPembLama", adInteger, adParamInput,, 0) Set KodeReturPembEditBaru = .CreateParameter("KodeReturPembBaru", adInteger, adParamInput, , 0)
Set NoReturPblEdit = .CreateParameter("NoReturPbl", adVarChar,adParamInput, 10, "")
Segmen 4.14. Mengubah Retur Pembelian (Lanjutan)
Set NoPembEdit = .CreateParameter("NoPemb", adVarChar, adParamInput, 10, "") Set KodeBarangEdit = .CreateParameter("KodeBarang", adVarChar, adParamInput, 10, "") Set NamaBarangEdit = .CreateParameter("NamaBarang", adVarChar, adParamInput, 50, "") Set KetReturPembEdit = .CreateParameter("KetReturPemb", adVarChar, adParamInput, 20, "") Set JumlahReturEdit = .CreateParameter("JumlahRetur", adInteger, adParamInput, , 0) Set SatuanReturEdit = .CreateParameter("SatuanRetur", adVarChar, adParamInput, 15, "") Set FlagReturEdit = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeReturPembEdit .Parameters.Append KodeReturPembEditBaru .Parameters.Append NoReturPblEdit .Parameters.Append NoPembEdit
.Parameters.Append KodeBarangEdit .Parameters.Append NamaBarangEdit .Parameters.Append KetReturPembEdit .Parameters.Append JumlahReturEdit .Parameters.Append SatuanReturEdit .Parameters.Append FlagReturEdit End With
rsEditRetur.Open cmdEditRetur, , adOpenForwardOnly, adLockReadOnly If FlagReturEdit.Value = 0 Then
MsgBox "Data Berhasil di Edit...", vbInformation, "Toko Fotocopy Utama"
cmdAll2.Execute rsAll2.Requery
Set DataGrid2.DataSource = rsAll2 End If
• Menu Order Penjualan
Order Penjualan digunakan untuk mencatat pemesanan barang yang kemudian akan dilanjutkan ke proses penjualan. User dapat melakukan insert, update, delete order penjualan seperti pada Tabel 4.6.
Tabel 4.6. Order Penjualan
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Order
Penjualan
Menambah Order
Penjualan 4.15 -
2 Update Order Penjualan
Mengubah Order
Penjualan 4.16 -
3 Delete Order Penjualan
Menghapus Order
Penjualan 4.17 -
Segmen Program 4.15. Menambah Order Penjualan
With cmdInsertOJ
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc
.CommandText = "InsertDetailOrderpenjualan"
Set KodeTemp = .CreateParameter("KodeTemp", adInteger, adParamInput, , 0)
Set KodeOrder = .CreateParameter("Kode", adVarChar, adParamInput, 10, "") Set KodeBarang = .CreateParameter("KodeBarang", adVarChar, adParamInput,10, "") Set NamaBarang = .CreateParameter("NamaBarang", adVarChar, adParamInput, 50, "") Set Harga = .CreateParameter("Harga", adCurrency, adParamInput, , 0)
Segmen Program 4.15. Menambah Order Penjualan (Lanjutan)
Set JumlahBarang = .CreateParameter("JumlahBarang", adInteger, adParamInput, , 0) Set Satuan = .CreateParameter("Satuan", adVarChar, adParamInput, 10, "")
Set Total = .CreateParameter("Total", adCurrency, adParamInput, , 0) Set FlagOJ = .CreateParameter("Flag", adInteger, adParamOutput, , 0) .Parameters.Append KodeTemp .Parameters.Append KodeOrder .Parameters.Append KodeBarang .Parameters.Append NamaBarang .Parameters.Append Harga .Parameters.Append JumlahBarang .Parameters.Append Satuan .Parameters.Append Total
.Parameters.Append FlagOJ End With
rsInsertOJ.Open cmdInsertOJ, , adOpenForwardOnly, adLockReadOnly With cmdInsertOrder
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "InsertOrderpenjualan"
Set KodeOrder4 = .CreateParameter("KodeOrderPenj", adVarChar, adParamInput, 10, "") Set KodeCustomer4 = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set Tanggal4 = .CreateParameter("TglOrderPenj", adDate, adParamInput, , Null)
Set GrandTotal4 = .CreateParameter("GrandTotal", adCurrency, adParamInput, , 0) Set FlagOrder = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeOrder4 ; .Parameters.Append KodeCustomer4 .Parameters.Append Tanggal4 ; .Parameters.Append GrandTotal4 .Parameters.Append FlagOrder End With
rsInsertOrder.Open cmdInsertOrder, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.16. Mengubah Order Penjualan
With cmdEditOrder
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditOrderpenjualan"
Set KodeOrderEdit4 = .CreateParameter("KodeOrderPenj", adVarChar, adParamInput, 10, "") Set KodeBaru4 = .CreateParameter("KodeOrderPenjBaru", adVarChar, adP aramInput, 10, "") Set KodeCustomerEdit4 = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set TanggalEdit4 = .CreateParameter("TglOrderPenj", adDate, adParamInput, , Null)
Set GrandTotalEdit4 = .CreateParameter("GrandTotal", adCurrency, adParamInput, , 0) Set FlagEdit4 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeOrderEdit4 .Parameters.Append KodeBaru4 .Parameters.Append KodeCustomerEdit4 .Parameters.Append TanggalEdit4 .Parameters.Append GrandTotalEdit4 .Parameters.Append FlagEdit4 End With
rsEditOrder.Open cmdEditOrder, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.17. Menghapus Order Penjualan
With cmdHapus
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "HapusTemp2"
Set KodeHapus = .CreateParameter("KodeTemp", adInteger,adParamInput, , 0) Set KodeOrderHapus = .CreateParameter("Kode", adVarChar, adParamInput, 10, "")
Segmen Program 4.17. Menghapus Order Penjualan (Lanjutan)
Set KodeBarangHapus = .CreateParameter("KodeBarang", adVarChar, adParamInput, 10, "") Set NamaHapus = .CreateParameter("NamaBarang", adVarChar, adParamInput, 50, "") Set HargaHapus = .CreateParameter("Harga", adCurrency, adParamInput, , 0)
Set JumlahHapus = .CreateParameter("NamaBarang", adInteger, adParamInput, , 0) Set SatuanHapus = .CreateParameter("Satuan", adVarChar, adParamInput, 10, "") Set TotalHapus = .CreateParameter("Total", adCurrency, adParamInput, , 0) Set tmp2 = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeHapus .Parameters.Append KodeOrderHapus .Parameters.Append KodeBarangHapus .Parameters.Append NamaHapus .Parameters.Append HargaHapus .Parameters.Append JumlahHapus
.Parameters.Append SatuanHapus .Parameters.Append TotalHapus ; .Parameters.Append tmp2 End With
rsHapus.Open cmdHapus, , adOpenForwardOnly, adLockReadOnly
• Menu Penjualan
Penjualan digunakan untuk mencatat data penjualan baik penjualan langsung maupun penjualan yang dilakukan dengan melakukan order terlebih dahulu. User dapat melakukan proses tambah, ubah dan hapus. Fungsi hapus disini sebelum pembelian keseluruhan disimpan. Proses tersebut dapat dilihat pada Tabel 4.7.
Tabel 4.7. Penjualan
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert
Penjualan
Menambah data
penjualan 4.18 DFD Level 2
Penjualan, Proses 2.1 2 Update
Penjualan
Mengubah data
penjualan 4.19 DFD Level 2
Penjualan, Proses 2.1
Segmen Program 4.18. Menambah Data Penjualan
With cmdSave
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "InsertPenjualan"
Set NoNotaPenjSave = .CreateParameter("NoNotaPenj", adVarChar, adParamInput, 10, "") Set KodeCustomerSave = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set KodeEkspedisiSave = .CreateParameter("KodeEkspedisi", adVarChar, adParamInput, 10, "") Set TglPenjSave = .CreateParameter("TglPenj", adDate, adParamInput, , Null)
Set CaraBayarPenjSave = .CreateParameter("CaraBayarPenj", adVarChar, adParamInput, 15, "") Set JatuhTempoPenjSave = .CreateParameter("JatuhTempoPenj", adDate, adParamInput, , Null) Set TotalPiutangSave = .CreateParameter("TotalPiutang", adCurrency, adParamInput, , 0)
Set JumlahLunasPiutangSave = .CreateParameter("JumlahLunasPiutang", adCurrency, adParamInput, , 0)
Set SisaPiutangSave = .CreateParameter("SisaPiutang", adCurrency, adParamInput, , 0) Set StatusPenjSave = .CreateParameter("StatusPenj", adVarChar, adParamInput, 15, "") Set FlagSave = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
Segmen Program 4.18. Menambah Data Penjualan (Lanjutan)
.Parameters.Append NoNotaPenjSave .Parameters.Append KodeCustomerSave .Parameters.Append KodeEkspedisiSave .Parameters.Append TglPenjSave .Parameters.Append CaraBayarPenjSave .Parameters.Append JatuhTempoPenjSave .Parameters.Append TotalPiutangSave .Parameters.Append JumlahLunasPiutangSave .Parameters.Append SisaPiutangSave .Parameters.Append StatusPenjSave
.Parameters.Append FlagSave End With
rsSave.Open cmdSave, , adOpenForwardOnly, adLockReadOnly
Segmen Program 4.19. Mengubah Data Penjualan
With cmdEditSave
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditPenjualan"
Set NoNotaPenjEditSave = .CreateParameter("NoNotaPenjLama", adVarChar, adParamInput, 10,
"")
Set NoNotaPenjEditSaveBaru = .CreateParameter("NoNotaPenjBaru", adVarChar, adParamInput, 10, "")
Set KodeCustomerEditSave = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10,
"")
Set KodeEkspedisiEditSave = .CreateParameter("KodeEkspedisi", adVarChar, adParamInput, 10,
"")
Set TglPenjEditSave = .CreateParameter("TglPenj", adDate, ad ParamInput, , Null)
Set CaraBayarPenjEditSave = .CreateParameter("CaraBayarPenj", adVarChar, adParamInput, 15,
"")
Set JatuhTempoPenjEditSave = .CreateParameter("JatuhTempoPenj", adDate, adParamInput, , Null)
Set TotalPiutangEditSave = .CreateParameter("TotalPiutang", adCurrency, adParamInput, , 0) Set JumlahLunasPiutangEditSave = .CreateParameter("JumlahLunasPiutang", adCurrency, adParamInput, , 0)
Set SisaPiutangEditSave = .CreateParameter("SisaPiutang", adCurrency, adParamInput, , 0) Set StatusPenjEditSave = .CreateParameter("StatusPenj", adVarChar, adParamInput, 15, "") Set FlagEditSave = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append NoNotaPenjEditSave .Parameters.Append NoNotaPenjEditSaveBaru .Parameters.Append KodeC ustomerEditSave . Parameters.Append KodeEkspedisiEditSave .Parameters.Append TglPenjEditSave .Parameters.Append CaraBayarPenjEditSave .Parameters.Append JatuhTempoPenjEditSave .Parameters.Append TotalPiutangEditSave .Parameters.Append JumlahLunasPiutangEditSave .Parameters.Append SisaPiutangEditSave .Parameters.Append StatusPenjEditSave .Parameters.Append FlagEditSave
End With
rsEditSave.Open cmdEditSave, , adOpenForwardOnly, adLockReadOnly
• Menu Pembayaran Piutang
Setiap pembayaran piutang penjualan yang dilakukan secara kredit akan dicatat ke dalam database. Dalam satu kali pembayaran dapat dilakukan pembayaran pada beberapa nota secara langsung. User dapat melakukan proses tambah dan ubah pembayaran piutang, seperti yang dapat dilihat pada Tabel 4.8.
Tabel 4.8. Pembayaran Hutang
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Pembayaran
Piutang
Menambah data
pembayaran piutang 4.20 DFD Level 2 Penjualan, Proses 2.3
Segmen Program 4.20. Pembayaran Piutang
With cmdSave
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "InsertPembayaranPiutang"
Set NoNotaPiutangSave = .CreateParameter("NoNotaPiutang", adVarChar, adParamInput, 10, "") Set KodeCustomerSave = .CreateParameter("KodeCustomer", adVarChar, adParamInput, 10, "") Set TglBayarPiutangSave = .CreateParameter("TglBayarPiutang", adDate, adParamInput, , Null) Set JumlahBayarPiutangSave = .CreateParameter("JumlahBayarPiutang", adCurrency, adParamInput, , 0)
Set JenisBayarPiutangSave = .CreateParameter("JenisBayarPiutang", adVarChar, adParamInput, 10, "")
Set KetPiutangSave = .CreateParameter("KetPiutang", adVarChar, adParamInput, 100, "") Set FlagSave = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append NoNotaPiutangSave .Parameters.Append KodeCustomerSave .Parameters.Append TglBayarPiutangSave .Parameters.Append JumlahBayarPiutangSave .Parameters.Append JenisBayarPiutangSave .Parameters.Append KetPiutangSave
.Parameters.Append FlagSave End With
rsSave.Open cmdSave, , adOpenForwardOnly, adLockReadOnly
• Menu Retur Penjualan
Retur penjualan akan dilakukan oleh customer apabila terdapat barang yang dibeli rusak. User dapat melakukan tambah dan ubah retur penjualan seperti yang dapat dilihat pada Tabel 4.9.
Tabel 4.9. Retur Penjualan
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Insert Retur
Penjualan
Menambah data
retur penjualan 4.21 DFD Level 2 Penjualan, Proses 2.4 2 Update Retur
Penjualan
Mengubah data
retur penjualan 4.22 DFD Level 2 Penjualan, Proses 2.4.
Segmen Program 4.21. Menambah Data Retur Penjualan
If FlagRetur.Value = 0 Then
MsgBox "Semua Field Harus di Isi!", vbCritical, "Toko Fotocopy Utama" End If If FlagRetur.Value = 1 Then
MsgBox "Data Berhasil di Simpan...", vbInformation, "Toko Fotocopy Utama"
cmdAll2.Execute rsAll2.Requery Set DataGrid2.DataSource = rsAll2 coba = coba + 1 End If
Segmen Program 4.21. Menambah Data Retur Penjualan
With cmdAll2
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "SELECT * FROM DetailReturPenjualan WHERE NoPenj LIKE '%" &
Label16.Caption & "%' AND NoPenj <> 'Pnj.0000' AND NamaBarang <> 'Deleted'"
End With
rsAll2.Open cmdAll2 tClick2 = rsAll2.RecordCount Set DataGrid2.DataSource = rsAll2
Segmen Program 4.22. Mengubah Data Retur Penjualan
With cmdEditRetur
.ActiveConnection = TLogin.cn .Prepared = True
.CommandType = adCmdStoredProc .CommandText = "EditReturPenjualan"
Set KodeReturPenjEdit = .CreateParameter("KodeReturPenjLama", adInteger, adParamInput, , 0) Set KodeReturEditBaru = .CreateParameter("KodeReturPenjBaru", adInteger, adParamInput, , 0) Set NoReturPnjEdit = .CreateParameter("NoReturPnj", adVarChar, adParamInput, 10, "") Set NoPenjEdit = .CreateParameter("NoPenj", adVarChar, adParamInput, 10, "")
Set KodeBarangEdit = .CreateParameter("KodeBarang", adVarChar, adParamInput, 10, "") Set NamaBarangEdit = .CreateParameter("NamaBarang", adVarChar, adParamInput, 50, "") Set KetReturPenjEdit = .CreateParameter("KetReturPenj", adVarChar, adParamInput, 20, "") Set JumlahReturEdit = .CreateParameter("JumlahRetur", adInteger, adParamInput, , 0) Set SatuanReturEdit = .CreateParameter("SatuanR etur", adVarChar, adParamInput, 15, "") Set FlagReturEdit = .CreateParameter("Flag", adInteger, adParamOutput, , 0)
.Parameters.Append KodeReturPenjEdit .Parameters.Append KodeReturEditBaru .Parameters.Append NoReturPnjEdit .Parameters.Append NoPenjEdit .Parameters.Append KodeBarangEdit .Parameters.Append NamaBarangEdit .Parameters.Append KetReturPenjEdit .Parameters.Append JumlahReturEdit .Parameters.Append SatuanReturEdit .Parameters.Append FlagReturEdit End With
rsEditRetur.Open cmdEditRetur, , adOpenForwardOnly, adLockReadOnly
• Menu Forecast Kausal
Forecast Kausal dilakukan untuk meramalkan jumlah barang yang akan dibeli pada periode berikutnya. Hal ini dilakukan untuk agar mencegah terjadinya overstock barang di gudang, seperti yang dapat dilihat pada Tabel 4.10.
Tabel 4.10. Forecast Kausal
No Nama Keterangan Segmen
Program
Hubungan dengan DFD 1 Forecast
Barang
Meramalkan jumlah barang
yang akan dibeli per periode 4.23 -
Segmen Program 4.23. Forecast Kausal
If Com bo1.Text = "BRG.0001" Then view = "viewforecast"
ElseIf Combo1.Text = "BRG.0002" Then view = "viewforecast2"
End If
If view <> "" Then With cmd1
.ActiveConnection = TLogin.cn .CommandType = adCmdT ext
.CommandText = "select * from " + view + " where Tahun='" + CStr(Tahun) + "'"
End With
rs1.Open cmd1, , adOpenForwardOnly, adLockReadOnly tClick = rs1.RecordCount
Set DataGrid1.DataSource = rs1 With cmd2
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "select sum(Permintaan) from " + view + " where Tahun='" + CStr(Tahun) + "'"
End With
rs2.Open cmd2, , adOpenForwardOnly, adLockReadOnly tClick2 = rs2.RecordCount
Set DataGrid2.DataSource = rs2 If tClick2 <> 0 Then
TempClick = DataGrid2.Columns(0).Text Label6.Caption = TempClick
End If With cmd3
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "select sum(XY) from " + view + " where Tahun='" + CStr(Tahun) + "'"
End With
rs3.Open cmd3, , adOpenForwardOnly, adLockReadOnly tclick3 = rs3.RecordCount
Set DataGrid2.DataSource = rs3 If tclick3 <> 0 Then
TempClick = DataGrid2.Columns(0).Text Label7.Caption = TempClick
End If
With cmd4
.ActiveConnection = TLogin.cn .CommandType = adCmdT ext
.CommandText = "select sum(X2) from " + view + " where Tahun='" + CStr(Tahun) + "'"
End With
rs4.Open cmd4, , adOpenForwardOnly, adLockReadOnly tclick4 = rs4.RecordCount
Set DataGrid2.DataSource = rs4 If tclick4 <> 0 Then
TempClick = DataGrid2.Columns(0).Text Label8.Caption = TempClick
End If With cmd5
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "select sum(Periode) from " + v iew + " where Tahun='" + CStr(Tahun) + "'"
End With
Segmen Program 4.23. Forecast Kausal (Lanjutan) rs5.Open cmd5, , adOpenForwardOnly, adLockReadOnly
tclick5 = rs5.RecordCount Set DataGrid2.DataSource = rs5 If tcl ick5 <> 0 Then
TempClick = DataGrid2.Columns(0).Text Label9.Caption = TempClick
End If With cmd6
.ActiveConnection = TLogin.cn .CommandType = adCmdText
.CommandText = "select count(Periode) from " + view + " where Tahun='" + CStr(Tahun) + "'"
End With
rs6.Open cmd6, , adOpenForwardOnly, adLockReadOnly tclick6 = rs6.RecordCount
Set DataGrid2.DataSource = rs6 If tclick6 <> 0 Then
TempClick = DataGrid2.Columns(0).Text Label10.Caption = TempClick
End If End If
• Menu Forecast Lot Sizing
Forecast Lot Sizing digunakan untuk dapat meminimalisasi biaya penyimpanan yang besar sebagai akibat dari overstock barang di gudang dan juga aga r toko tidak mengalami lost sales, seperti dapat dilihat pada Tabel 4.11.
Tabel 4.11. Forecast Lot Sizing
No Nama Keterangan Segmen
Program
Hubungan dengan DFD
1 Lot for Lot Metode Lot for Lot 4.24 -
2 Economic Order Quantity
Metode Economic Order
Quantity 4.25 -
3 Periodic Order Quantity
Metode Periodic Order
Quantity 4.26 -
4 Silver Meal Metode Silver Meal 4.27 -
5 Least Unit Cost Metode Least Unit Cost 4.28 - 6 Part Period
Balancing
Metode Part Period
Balancing 4.29 -
7 Wagner Whitin Algoritm
Metode Wagner Whitin
Algoritm 4.30 -
Segmen Program 4.24. Metode Lot for Lot
With MSFlexGrid1
Dim leadtime As Integer
leadtime = CInt(TxtLeadtime.Text) .Clear
.Cols = 13 .Rows = 10
.ColWidth(0) = 1800 Dim i As Integer For i = 1 To 12
.TextMatrix(0, i) = CStr(i) .ColWidth(i) = 1000 Next i
.TextMatrix(1, 0) = "Gross Requirement"
.TextMatrix(2, 0) = "Schedule Receipt"
.TextMatrix(3, 0) = "Projected on-hand (" + TxtStok.Text + ")"
.TextMatrix(4, 0) = "Net Requirement"
.TextMatrix(5, 0) = "Planned Order Receipt"
.TextMatrix(6, 0) = "Planned Order Releases"
.TextMatrix(7, 0) = "Setup Cost"
.TextMatrix(8, 0) = "Inventory Cost"
.TextMatrix(9, 0) = "Total Cost"
rs0.Open "select Demand from HasilRegresi where KodeBarang='" + Combo1.Text + "' and Tahun='" + TxtTahun.Text + "' order by Periode", TLogin.cn, adOpenKeyset, adLockReadOnly i = 1
While Not rs0.EOF
.TextMatrix(1, i) = CStr(rs0.Fields("Demand").Value) rs0.MoveNext
i = i + 1
Wend rs0.Close Dim period As Integer For period = 1 To 12
.TextMatrix(2, period) = "0"
.TextMatrix(6, period) = "0"
.TextMatrix(7, period) = "0"
.TextMatrix(8, period) = "0"
Next period 'setiap period For period = 1 To 12
Dim onhandsebelum As Integer
If period = 1 Then 'jika periode 1 maka on-hand sebelum = stok onhandsebelum = CInt(TxtStok.Text)
Else
onhandsebelum = CInt(.TextMatrix(3, period - 1)) + CInt(.TextMatrix(5, period - 1)) End If
.TextMatrix(3, period) = CStr(onhandsebelum + CInt(.TextMatrix(2, period)) - CInt(.TextMatrix(1, period)))
'net requirement
Dim netrequirement As Integer
If CInt(.TextMatrix(3, period)) < 0 Then
netrequirement = -1 * CInt(.TextMatrix(3, period)) Else
netrequirement = 0 End If
.TextMatrix(4, period) = CStr(netrequirement)
Segmen Program 4.24. Metode Lot for Lot (Lanjutan)
'planned receipt
Dim plannedreceipt As Integer ; plannedreceipt = netrequirement
If netrequirement > 0 Then 'jika ada planned receipt maka periode - leadtime harus release .TextMatrix(5, period) = CStr(plannedreceipt)
If period - leadtime > 0 Then
.TextMatrix(6, period - leadtime) = CStr(plannedreceipt) Else
.TextMatrix(5, period) = "0"
End If Else
.TextMatrix(5, period) = "0"
End If Next period For period = 1 To 12
If CInt(.TextMatrix(6, period)) > 0 Then .TextMatrix(7, period) = TxtPesan.Text End If
If CInt(.TextMatrix(3, period) > 0) Then
.TextMatrix(8, period) = CStr(CInt(.TextMatrix(3, period)) * CDbl(TxtSimpan.Text)) End If
.TextMatrix(9, period) = CStr(CInt(.TextMatrix(7, period)) + CDbl(.TextMatrix(8, period)))
Next period For period = 1 To 12 For i = 1 To 6
If .TextMatrix(i, period) = "0" Then .TextMatrix(i, period) = ""
End If
Next Next period End With
Segmen Program 4.25. Metode Economic Order Quantity
Wit h MSFlexGrid2
Dim leadtime As Integer
leadtime = CInt(TxtLeadtime.Text) .Clear
.Cols = 13 .Rows = 10
.ColWidth(0) = 1800 Dim i As Integer For i = 1 To 12
.TextMatrix(0, i) = CStr(i) .ColWidth(i) = 1000 Next i
.TextMatrix(1, 0) = "Gross Requirement"
.TextMatrix(2, 0) = "Schedule Receipt"
.TextMatrix(3, 0) = "Projected on-hand (" + TxtStok.Text + ")"
.TextMatrix(4, 0) = "Net Requirem ent"
.TextMatrix(5, 0) = "Planned Order Receipt"
.TextMatrix(6, 0) = "Planned Order Releases"
.TextMatrix(7, 0) = "Setup Cost"
.TextMatrix(8, 0) = "Inventory Cost"
.TextMatrix(9, 0) = "Total Cost"
rs 0.Open "select Demand from HasilRegresi where KodeBarang='" + Combo1.Text + "' and
Segmen Program 4.25. Metode Economic Order Quantity (Lanjutan)
Tahun='" + TxtTahun.Text + "' order by Periode", TLogin.cn, adOpenKeyset, adLockReadOnly i = 1
While Not rs0.EOF
.TextMatrix(1, i) = CStr(rs0.Fields("Demand").Value) rs0.MoveNext
i = i + 1 Wend
rs0.Close
Dim Rata2D As Double Dim FOQ As Integer Rata2D = 0
For i = 1 To 12
Rata2D = Rata2D + .TextMatrix(1, i) Next
Rata2D = Round(Rata2D / 12, 0)
FOQ = Int(Sqr((2 * CDbl(TxtPesan.Text) * Rata2D) / (TxtSimpan.Text))) + 1 LabelFOQ.Caption = "Rata2D = " + CStr(Rata2D) + " FOQ = " + CStr(FOQ) Dim period As Integer
'scheduled receipt pasti 0 For period = 1 To 12
.TextMatrix(2, period) = "0"
.TextMatrix(6, period) = "0"
.TextMatrix(7, period) = "0"
.TextM atrix(8, period) = "0"
Next period 'setiap period For period = 1 To 12
Dim onhandsebelum As Integer
'hitung projected on-hand = projected on-hand periode sebelumnya + scheduled receipt - gross requirement
If period = 1 Then 'jika periode 1 maka on-hand sebelum = stok onhandsebelum = CInt(TxtStok.Text)
Else
onhandsebelum = CInt(.TextMatrix(3, period - 1)) + CInt(.TextMatrix(5, period - 1)) End If
.TextMatrix(3, period) = CStr(onhandsebelum + CInt(.TextMatrix(2, period)) - CInt(.TextMatrix(1, period)))
'net requirement
Dim netrequirement As Integer
If CInt(.TextMatrix(3, period)) < 0 Then
netrequirement = -1 * CInt(.TextMatrix(3, period)) Else
netrequirement = 0 End If
.TextMatrix(4, period) = CStr(netrequirement)
'planned receipt
Dim plannedreceipt As Integer plannedreceipt = netrequirement
If netrequirement > 0 Then 'jika ada planned receipt maka periode - leadtime harus release plannedreceipt = FOQ
.TextMatrix(5, period) = CStr(plannedreceipt) If period - leadtime > 0 Then
.TextMatrix(6, period - leadtime) = CStr(plannedreceipt) Else
.TextMatrix(5, period) = "0"
Segmen Program 4.25. Metode Economic Order Quantity (Lanjutan)
End If Else
.TextMatrix(5, period) = "0"
End If Next period For period = 1 To 12
If CInt(.TextMatrix(6, period)) > 0 Then .TextMatrix(7, period) = TxtPesan.Text End If
If CInt(.TextMatrix(3, period) > 0) Then
.TextMatrix(8, period) = CStr(CInt(.TextMatrix(3, period)) * CDbl(TxtSimpan.Text)) End If
.TextMatrix(9, period) = CStr(CInt(.TextMatrix(7, period)) + CDbl(.TextMatrix(8, period)))
Next period
For period = 1 To 12 For i = 1 To 6
If .TextMatrix(i, period) = "0" Then .TextMatrix(i, period) = ""
End If Next Next period End With
Segmen Program 4.26. Metode Periodic Order Quantity
With MSFlexGrid3
Dim leadtime As Integer
leadtime = CInt(TxtLeadtime.Text) .Clear
.Cols = 13 .Rows = 10
.ColWidth(0) = 1800 Dim i As Integer For i = 1 To 12
.TextMatrix(0, i) = CStr(i) .ColWidth(i) = 1000 Next i
.TextMatrix(1, 0) = "Gross Requirement"
.TextMatrix(2, 0) = "Schedule Receipt"
.TextMatrix(3, 0) = "Projected on-hand (" + TxtStok.Text + ")"
.TextMatrix(4, 0) = "Net Requirement"
.TextMatrix(5, 0) = "Planned Order Receipt"
.TextMatrix(6, 0) = "Planned Order Releases"
.TextMatrix(7, 0) = "Setup Cost"
.TextMatrix(8, 0) = "Inventory Cost"
.TextMatrix(9, 0) = "Total Cost"
rs0.Open "select Demand from HasilRegresi where KodeBarang='" + Combo1.Text + "' and Tahun='" + TxtTahun.Text + "' order by Periode", TLogin.cn, adOpenKeyset, adLockReadOnly i = 1
While Not rs0.EOF
.TextMatrix(1, i) = CStr(rs0.Fields("Demand").Value) rs0.MoveNext
i = i + 1
Segmen Program 4.26. Metode Periodic Order Quantity (Lanjutan)
Wend rs0.Close
Dim Rata2D As Double Dim FOQ As Integer Dim FOP As Integer Rata2D = 0
For i = 1 To 12
Rata2D = Rata2D + .TextMatrix(1, i) Next
Rata2D = Round(Rata2D / 12, 0)
FOQ = Int(Sqr((2 * CDbl(TxtPesan.Text) * Rata2D) / (TxtSimpan.Text))) + 1 FOP = Int(FOQ / Rata2D) + 1
LabelFOP.Caption = "Rata2D = " + CStr(Rata2D) + " FOP = " + CStr(FOP) Dim period As Integer
'scheduled receipt pasti 0 For period = 1 To 12
.TextMatrix(2, period) = "0"
.TextMatrix(5, period) = "0"
.TextMatrix(6, period) = "0"
.TextMatrix(7, period) = "0"
.TextMatrix(8, period) = "0"
Next period 'setiap period 'cari demand period
period = leadtime + 1 'perkiraan barang bisa dateng pas minggu ke 4 (leadtime+1), pesen plg awal period 1
While period <= 12 'cari harus pesan brp Dim jumdemand As Integer jumdemand = 0
For i = 1 To FOP
If period + i - 1 <= 12 Then
jumdemand = jumdemand + CInt(.TextMatrix(1, period + i - 1)) End If
Next
'planned receipt
.TextMatrix(5, period) = CStr(jumdemand)
.TextMatrix(6 , period - leadtime) = CStr(jumdemand) period = period + FOP
Wend
For period = 1 To 12
Dim onhandsebelum As Integer
'hitung projected on-hand = projected on-hand periode sebelumnya + scheduled receipt - gross requirement
If period = 1 Then 'jika periode 1 maka on-hand sebelum = stok onhandsebelum = CInt(TxtStok.Text)
Else
onhandsebelum = CInt(.TextMatrix(3, period - 1)) + CInt(.TextMatrix(5, period - 1)) End If
.TextMatrix(3, period) = CStr(onhandsebelum + CInt(.TextMatrix(2, period)) - CInt(.TextMatrix(1, period)))
'net requirement
Dim netrequirement As Integer
If CInt(.TextMatrix(3, period)) < 0 Then
netrequirement = -1 * CInt(.TextMatrix(3, period)) Else
netrequirement = 0