• Tidak ada hasil yang ditemukan

4. IMPLEMENTASI SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "4. IMPLEMENTASI SISTEM"

Copied!
37
0
0

Teks penuh

(1)

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

(2)

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.

(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.

(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

(5)

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.

(6)

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"

(7)

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

(8)

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

(9)

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

(10)

.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

(11)

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

(12)

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, "")

(13)

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, "")

(14)

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)

(15)

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, "")

(16)

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)

(17)

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.

(18)

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

(19)

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 -

(20)

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

(21)

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 -

(22)

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)

(23)

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

(24)

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"

(25)

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

(26)

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

Referensi

Dokumen terkait

Sinarmas Multifinance Cabang Bima dan umumnya pada organisasi atau perusahan agar dapat membantu karyawan dalam mengatasi stres kerja, karena kalao karyawan mengalami

Fokus utama penelitian ini adalah mengenai kemampuan pemahaman matematis siswa Sekolah Menengah Pertama (SMP). Rendahnya kemampuan ini disinyalir terjadi antara

Hal ini sejalan dengan yang diungkapkan oleh Alwasilah (2007, hlm. 44) bahwa pelajaran menulis baru berarti andai diminati oleh siswa dan dikuasai oleh guru. Umpan balik menjadi hal

Rangkaian alat start engine akan menerima perintah dari perangkat smartphone android untuk menjalankan perintah menyalakan dan mematikan relay yang digunakan untuk

Pendidikan Dokter Gigi Spesialis Terstandar Harus dapat menjelaskan dengan jelas hasil pendidikan yang baik, metode pembelajaran &amp; asuhan pasien terstandar,

Hasil simulasi penurunan subsidi ekspor di negara maju berdasarkan usulan yang diajukan KN-20, AS dan UE serta KTM Hongkong menunjukkan bahwa pemotongan subsidi ekspor

Identifikasi Masalah pada penelitian ini yaitu melakukan analisis pengaruh pada Sistem Informasi Kepegawaian (SIMPEG) terhadap Perencanaan Sumber Daya Manusia di Dinas

Melalui perhitungan korelasi antara data hasil interpolasi dengan data pengukuran langsung, maka didapatkan bahwa metoda interpolasi spline memiliki tingkat presisi