Page 1
10
Bab I. Pendahuluan
1. Latar Belakang
Pola pikir dan cara kehidupan manusia berubah seiring berkembangnya Ilmu
Pengetahuan dan Teknologi. Salah satunya adalah pembuatan program sesuai dengan
kebutuhan. Misalnya adalah program distribusi rokok yang diperlukan oleh Industri rokok,
agen atau Toko rokok yang bersangkutan. Jika manusia belum mengenal adanya komputer,
maka data transaksi industri tersebut mungkin akan disimpan secara manual dan bisa sulit
dilakukan serta tingkat kesalahan relative besar.
Program ini menyajikan beberapa menu yang dibutuhkan dalam melakukan transaksi
rokok, misalnya penyimpanan data rokok, data salesman yang akan mendistribusikan, serta
laporan – laporan hasil distribusi tersebut dan daerah tujuannya. Pada informasi juga
diperhitungkan jumlah keuntungan serta kerugian dari distribusi sesuai harga pokok serta
harga penjualannya. Selain dalam softcopy, program ini juga dapat menghasilkan laporan
persediaan rokok pada hari terakhir pengecekan ke dalam hardcopy.
2. Tujuan
1. Dengan adanya program distribusi rokok ini, diharapkan dapat mempermudah
proses distribusi barang, khususnya bidang industri rokok.
2. Untuk mengetahui proses kerja serta koneksi antara program Visual Basic 6
dengan database Acces.
Page 2
10
BAB II. Persoalan
Program distribusi industri rokok PT Djarum ini adalah program yang dipakai oleh
para distributor serta produsen yang khususnya bergerak di bidang industri rokok. Program
ini terdiri atas database sebagai tempat penyimpanan data, serta menu – menu yang terdapat
dalam form. Persoalan program ini akan dibahas sebagai berikut.
DATABASE
Untuk melakukan penyimpanan pada program, diperlukan Database. Pembuatan
database pada skema dan langkah sebagai berikut :
Gambar 1.11 : Cara Pembuatan Database. Nama : PTDJARUM.mdb
Gambar : Kumpulan tabel yang diperlukan oleh program
Page 3
10
Relationship database bisa dilihat pada gambar berikut ini.
Pada database terdapat 3 tabel, yaitu tabel rokok, salesman dan data distribusi. Namun
dari ketiga tabel tersebut, ada dua tabel yang mendasari relationship program rokok ini, yaitu
tabel rokok dan salesman, hubungannya adalah n dan n. Maksudnya sebuah rokok bisa
didistribusikan oleh satu orang atau lebih salesman, begitu juga sebaliknya, satu orang
salesman bisa mendistribusikan satu atau lebih jenis rokok. Sedangkan table distribusi hanya
bertindak sebagai tempat penyedia informasi dari hasil distribusi.
Rokok
Pada tabel Rokok dalam database PTDJARUM ini terdapat Kode, nama, harga serta jumlah
persediaan rokok. Struktur serta implementasinya dapat dilihat pada gambar berikut.
Tabel 1.11 Struktur tabel rokok
Nama Field Tipe
KD_R Text
NM_R Text
HRG_R Currency
JML_PSD Number
Page 4
10
Gambar : Implementasi tabel ROKOK
Salesman
Pada tabel SALES dalam database PTDJARUM ini terdapat Kode, nama, alamat, nomor
telepon serta nomor plat kendaraan yang digunakan untuk proses distribusi. Struktur serta
implementasinya dapat dilihat pada gambar berikut.
Tabel : Struktur tabel SALES
Nama Field Tipe
KD_S Text
NM_S Text
ALM_S Text
NO_TELP Text
NO_PLAT Text
Page 5
10
Gambar : Implementasi tabel SALES
DISTRIBUSI
Distribusi ini merupakan gabungan dari data rokok dan sales, yaitu salesman yang
telah mendistribusikan rokok tersebut. Pada tabel DISTRIBUSI dalam database PTDJARUM
ini terdapat Nomor Dsitribusi, Nama, harga dan jumlah persediaan rokok yang
didistribusikan serta data salesman yang mendistribusikannya, yaitu kode salesman, nama,
alamat, hingga nomor plat kendaraan.
Pada table distribusi ini juga dibuatkan tanggal pendistribusian, jumlah profit dan
keuntungan pendistribusian. Struktur serta implementasinya dapat dilihat pada gambar
berikut.
Page 6
10
Tabel : Struktur tabel DISTRIBUSI
Nama Field Tipe
KD_D Text
NM_R Text
HRG_R Currency
JML_PSD Number
KD_S Text
NM_S Text
ALM_S Text
NO_PLAT Text
TGL_D Date/Time
JML_D Number
HRG_D Currency
DT Text
JML_B Currency
PROFIT Currency
KD_R Text
Gambar : Implementasi tabel DISTRIBUSI
Page 7
10
Form Menu Utama
Form menu utama ini berguna sebagai tampilan utama. Semua menu pada program
berada pada form ini, diantaranya menu :
a. Entry, yaitu Entry Data Rokok, Entry Data Salesman dan Entry data Distribusi
rokok yang dilakukan oleh distributor tersebut.
b. Laporan, yaitu Laporan persediaan rokok dan Laporan bulanan pendistribusian
rokok.
c. Kaluar, yaitu keluar dari program (Exit).
Pada Form menu utama dapat dilihat adanya gambar industri rokok, yaitu pabrik,
gedung perusahaan, perkebunan, hingga pendistribusian rokok oleh distributor. Gambar ini
hanyalah bersifat ilustrasi, gambar bisa dibuat dari komponen “picture box” pada menu visual
basic 6.
Gambar : Disain Form Menu Utama
Page 8
10
Program PT. Djarum ini tidak mempunyai menu Login, karena program ini hanya
dikontrol oleh Admin dan tidak mengenal member atau password untuk menggunakan
program.
Menu tampilan button pada Form Menu Utama
Nama menu CommandButton Nama Form
Entry Data Rokok EDR ENTDATAROKOK
Entry Data Salesman EDS ENTDATASALES
Entry Distribusi Rokok EDD ENTDATADISTRIBUSI
Laporan Persediaan Rokok LPR LAPPERSEDIAANROKOK
Laporan Bulanan Distribusi Rokok LBDR LAPDISTPERBULAN
Keluar KELUAR -
Button pada tampilan Menu Utama tidak menggunakan CommandButton, melainkan
menggunakan Menu Editor yang berada di bagian atas tampilan visual basic 6. Tidak hanya
posisi, kita juga bisa mengatur shortcut nya untuk dapat memunculkan tanpa harus klik
button. Hasilnya sebagai berikut.
Gambar : Menu Pilihan serta shortcut pada Form Utama
Page 9
10
Form Entry Data Rokok
Gambar : Disain Form Entry Data Rokok
Form Data Rokok berguna untuk menambahkan data berupa daftar rokok dalam database
yang telah dibuat sebelumnya. Form ini dapat dilihat pada gambar 1.31.
Komponen pada Form Data Rokok :
Tempat untuk mengisi kode, nama, harga serta jumlah persediaan rokok.
Tombol untuk simpan, batal, perbaiki, hapus dan keluar.
Timer, komponen tambahan pada teks (label) sebagai tambahan tampilan Form.
Ketentuan
Kode rokok, nama rokok, alamat harga serta jumlah persediaan rokok disimpan
dalam database ROKOK.
Page 10
10
Jika ingin menyimpan data yang akan ditambah, akan muncul dialog yang
menanyakan apakah kita yakin untuk menyimpan data. Jika jawab YES, maka akan
dimasukkan ke dalam database. Jika No, maka akan muncul form seperti gambar.
Gambar : Disain Form Entry Data Rokok
Form Entry Data Sales
Form Entry data sales tidak jauh berbeda dengan Form Data Rokok sebelumnya. Form ini
berfungsi untuk menambahkan, edit atau menghapus data SALES dari database.
Komponen pada Form :
o Tempat untuk mengisi data salesman, yaitu kode, nama, alamat, nomor telepon serta
nomor plat kendaraan salesman tersebut.
o Tombol untuk simpan, batal, perbaiki, hapus, dan keluar.
o Timer, yaitu komponen pergerakan teks (label), hanya tambahan pada penampilan.
Page 11
10
Ketentuan
Kode, Nama, Alamat, Nomor telepon serta nomor plat kendaraan Salesman disimpan
dalam database SALES.
Jika memasukkan kode Sales yang telah ada sebelumnya, maka akan muncul semua
informasi dari Sales tersebut, yaitu kode, nama, alamat nomor telepon nomor plat
mobil salesman tersebut, kita hanya bisa mengedit data sales tersebut atau
menghapusnya dari database.
Pada saat menekan tombol save, akan muncul kotak dialog apakah kita akan
menyimpan. Jika YES, maka akan tersimpan dalam database.
Gambar : Disain Form Entry Data Sales
1.5 Form Entry Data Distribusi
Form entry Data Distrubusi ini merupakan gabungan dari data rokok dengan salesman. Semua
data rokok yang terjual beserta data salesman nya dibuat dalam form ini dan disimpan dalam database
DISTRIBUSI. Bentuk Disain form ini dapat dilihat pada gambar berikut.
Page 12
10
Gambar : Disain Form Entry DISTRIBUSI
Komponen Pada Form :
o Tempat untuk menampilkan dan mengisi kode Distribusi, jumlah, serta daerah tujuan
distribusi.
o Combo box pada tanggal distribusi telah diatur sehinnga selalu menunjukkan tanggal
hari itu saat pembuatan data.
o Timer, hanya bersifat tambahan agar memberikan efek tampilan ada teks berkedip
dan teks berjalan pada bagian bawah form.
o Tombol untuk simpan, batal, perbaiki, hapus, dan keluar.
Ketentuan
o Combo box pada rokok yang akan didistribusikan akan muncul tergantung dari kode
rokok yang kita pilih, dan akan muncul informasi sesuai dengan database yang telah
Page 13
10
disimpan sebelumnya, combo box pada salesman juga memiliki prinsip yang sama
dengan combo box rokok.
o Jika memasukkan kode Distribusi yang telah ada sebelumnya, maka akan muncul
semua informasi dari Distribusi tersebut, yaitu kode, data rokok yang didistribusikan
serta salesman yang terlibat, kita hanya bisa mengedit data tersebut atau
menghapusnya dari database.
o Harga distribusi adalah harga jual barang yang didistribusikan.
o Jumlah bayar adalah hasil kali Harga distribusi dengan harga distribusi dengan
jumlah distribusi
o Profit adalah tampilan yang menampilkan apakah distribusi tersebut mengalami
keuntungan atau kerugian. Jika harga distribusi lebih besar dari harga pokok, maka
distribusi mengalami keuntungan,dan sebaliknya.
o Jika menekan button batal, maka hanya button Keluar yang aktif.
Form Laporan Persediaan Rokok
Form Laporan Persediaan Rokok ini berguna untuk memberikan informasi persedian stok
rokok yang ada. Data Persediaan rokok ini dikoneksikan dengan database ROKOK.
Komponen
Tombol (button) untuk tampil informasi, mencetak ke printer dan keluar.
Timer, hanya sebagai tambahan, untuk menampilkan form di bagian tengah dan
bergerak.
Kolom (kotak) dibagian tengah tempat munculnya informasi.
Ketentuan
Ketika klik button tampil, maka akan dimunculkan semua informasi yang berada
dalam database ROKOK.
Informasi tersebut bisa di print ke printer atau menggunakan Microsoft Office
OneNote.
Page 14
10
Tanggal selalu menunjukkan tanggal pada hari itu sesuai dengan tanggal yang ada
dalam computer atau laptop tempat program berjalan.
Gambar : Desain Laporan Harian Persediaan Rokok
Laporan Bulanan Distribusi Rokok
Form ini berfungsi sebagai informasi distribusi rokok berdasarkan satu bulan dalam suatu
tahun. Informasi yang ditampilkan hanya pada bulan itu saja.
Komponen
Tombol (button) tampil untuk menampilkan informasi dari database berdasarkan
bulan dan tahun sesuai pilihan.
Combo box bulan menawarkan 12 bulan selama setahun dan tahun yang bisa diketik
langsung.
Label untuk menampilkan info deposit, total harga hingga standar deviasi.
Page 15
10
Timer, hanya sebagai tambahan untuk tampilan selalu berada di bagian tengah.
Ketentuan
Informasi pada kolom tampilan dikoneksikan dengan database DISTRIBUSI. Disini
diberikan informasi data rokok, jumlah distribusi, data salesman hingga total deposit
perbulannya (hanya dalam satu bulan tersebut).
Gambar : Desain Form Laporan Bulanan Distribusi Rokok
2.1 Program Pada Form Utama
Pada form utama program distribusi rokok ini, terdapat 6 tombol button yang terdapat
dibagian kiri atas form. Form ini dibangun dengan menggunakan fasilitas form Visual Basic.
Kumpulan program yang dibuat dapat dilihat pada listing 2.1. listing ini sudah dilengkapi
dengan komentar yang menghubungkan tombol button dengan program.
Page 16
10
BAB III. SOLUSI
Form Menu Utama
Gambar : Form Utama sistem
Private Sub EDD_Click()
‘Rem diaktifkan jika tombol Entry – Entry Data Distribusi di-klik pemakai
ENDATADISTRIBUSI.Show
End Sub
Private Sub EDR_Click()
‘Rem diaktifkan jika tombol Entry – Entry Data Rokok di-klik pemakai
ENTDATAROKOK.Show
End Sub
Private Sub EDS_Click()
‘Rem diaktifkan jika tombol Entry – Entry Data Sales di-klik pemakai
ENTDATASALES.Show
Page 17
10
End Sub
Private Sub LBDR_Click()
‘Rem diaktifkan jika tombol Laporan – Laporan Bulanan Distribusi Rokok di-klik pemakai
LAPDISTPERBULAN.Show
End Sub
Private Sub LPR_Click()
‘Rem diaktifkan jika tombol Laporan – Laporan Persediaan Rokok di-klik pemakai
LAPPERSEDIAANROKOK.Show
End Sub
Private Sub Timer2_Timer()
'Timer hanya digunakan sebagai tambahan tampilan pada gambar unand (berkedip)
If Picture1.Visible = True Then
Picture1.Visible = False
ElseIf Picture1.Visible = False Then
Picture1.Visible = True
End If
'Timer hanya digunakan sebagai tambahan tampilan pada teks unand (berkedip)
If Label3.Visible = True Then
Label3.Visible = False
ElseIf Label3.Visible = False Then
Label3.Visible = True
End If
'Timer hanya digunakan sebagai tambahan tampilan pada gambar Rektorat (berkedip)
If Picture2.Visible = True Then
Picture2.Visible = False
ElseIf Picture2.Visible = False Then
Picture2.Visible = True
End If
Page 18
10
End Sub
Private Sub KELUAR_Click()
ms = MsgBox("Anda yakin mau keluar ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
End
Else
MENUUTAMA.Show
End If
End Sub
Listing : Program VB pada Form Utama Sistem.
Page 19
10
Program Pada Form Entry Data Rokok
Implementasi form Entry Data Rokok dapat dilihat pada gambar 2.2.
Gambar : Implementasi form Entry data Rokok
Option Explicit
Dim opr1 As Double, opr2 As Double
Dim operator As String
Dim hapustampilan As Boolean
Dim rsROKOK As Recordset
Dim dbPTDJARUM As Database
Dim no, hal, brs, ms As Integer
Dim TEKS As String
Private Sub cmdkeluar_Click()
Unload Me
End Sub
Page 20
10
Private Sub Form_Load()
Me.Height = 20
Timer1.Enabled = True
Timer3.Enabled = True
TEKS = Label7.Caption
Set dbPTDJARUM = OpenDatabase(App.Path & "\PTDJARUM.mdb")
Set rsROKOK = dbPTDJARUM.OpenRecordset("ROKOK")
End Sub
Public Sub tengah()
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
End Sub
Private Sub HRG_R_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(HRG_R.Text) <> 0 Then
JML_PSD.SetFocus
End If
End Sub
Private Sub JML_PSD_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(JML_PSD.Text) <> 0 Then
cmdsimpan.SetFocus
End If
End Sub
Private Sub NM_R_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(NM_R.Text) <> 0 Then
HRG_R.SetFocus
End If
Page 21
10
End Sub
Private Sub Timer1_Timer()
Me.Height = Me.Height + 100
tengah
If Me.Height >= 6500 Then
Timer1.Enabled = False
tengah
End If
End Sub
‘Timer 2 Untuk Kedipan Gambar judul pada Form
Private Sub Timer2_Timer()
On Error Resume Next
If Label1.Visible = True Then
Label1.Visible = False
ElseIf Label1.Visible = False Then
Label1.Visible = True
End If
End Sub
'teks berjalan
Private Sub Timer3_Timer()
TEKS = Right(TEKS, Len(TEKS) - 1) & Left(TEKS, 1)
Label7.Caption = TEKS
End Sub
Private Sub CMDSIMPAN_Click()
If cmdsimpan.Caption = "&Simpan" Then
cmdsimpan.Caption = "&Tambah"
ms = MsgBox("Apakah data Sudah Benar ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsROKOK.AddNew
Page 22
10
rsROKOK!KD_R = KD_R.Text
rsROKOK!NM_R = NM_R.Text
rsROKOK!HRG_R = HRG_R.Text
rsROKOK!JML_PSD = JML_PSD.Text
rsROKOK.Update
txttoenabled False
cmdtoenabled True, False, False, False
cmdsimpan.SetFocus
Else
cmdsimpan.Caption = "&Simpan"
txttoclear
End If
Else
If cmdsimpan.Caption = "&Tambah" Then
cmdsimpan.Caption = "&Simpan"
txttoclear
KD_R.SetFocus
cmdtoenabled False, False, False, False
End If
End If
End Sub
Private Sub cmdperbaiki_Click()
If cmdperbaiki.Caption = "&Perbaiki" Then
ms = MsgBox("Yakin Data Akan diperbaiki", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
cmdperbaiki.Caption = "&Simpan"
txttoenabled True
KD_R.SetFocus
Page 23
10
Else
txttoclear
End If
Else
If cmdperbaiki.Caption = "&Simpan" Then
cmdperbaiki.Caption = "&Perbaiki"
rsROKOK.Edit
rsROKOK!KD_R = KD_R.Text
rsROKOK!NM_R = NM_R.Text
rsROKOK!HRG_R = HRG_R.Text
rsROKOK!JML_PSD = JML_PSD.Text
rsROKOK.Update
cmdtoenabled False, False, False, False
txttoclear
KD_R.SetFocus
End If
End If
End Sub
Private Sub cmdhapus_Click()
ms = MsgBox("Benar data akan dihapus ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsROKOK.Delete
rsROKOK.MoveNext
txttoclear
cmdtoenabled False, False, False, False
KD_R.SetFocus
Else
Page 24
10
txttoclear
txttoenabled False
KD_R.SetFocus
End If
cmdtoenabled False, False, False, False
End Sub
Private Sub cmdbatal_Click()
txttoclear
cmdtoenabled False, False, False, False
txttoenabled False
KD_R.SetFocus
End Sub
Private Sub Form_Activate()
txttoclear
KD_R.SetFocus
End Sub
Private Sub txttoclear()
KD_R.Text = ""
NM_R.Text = ""
HRG_R.Text = ""
JML_PSD.Text = ""
End Sub
Private Sub cmdtoenabled(parasimpan, paraperbaiki, parahapus, parabatal As Boolean)
cmdsimpan.Enabled = parasimpan
cmdperbaiki.Enabled = paraperbaiki
cmdhapus.Enabled = parahapus
cmdbatal.Enabled = parabatal
Page 25
10
End Sub
Private Sub txttoenabled(param As Boolean)
NM_R.Enabled = param
HRG_R.Enabled = param
End Sub
Private Sub KD_R_Change()
If Len(KD_R.Text) = 6 Then
rsROKOK.Index = "KD_R"
rsROKOK.Seek "=", KD_R.Text
If rsROKOK.NoMatch Then
txttoenabled True
cmdtoenabled True, False, False, True
NM_R.Text = ""
HRG_R.Text = ""
JML_PSD.Text = ""
NM_R.SetFocus
Else
If rsROKOK.RecordCount > 0 Then
NM_R.Text = rsROKOK!NM_R
HRG_R.Text = rsROKOK!HRG_R
JML_PSD.Text = rsROKOK!JML_PSD
txttoenabled False
cmdtoenabled False, True, True, False
cmdperbaiki.SetFocus
End If
End If
End If
End Sub
Page 26
10
Listing : Program VB pada Form Entry Data Rokok.
Program Pada Form Entry Data Sales
Implementasi form entry data sales dapat dilihat pada gambar 2.3. ketentuan yang dibuat pada persoalan yang telah dikerjakan
Gambar : Implementasi form entry data sales
Option Explicit
Dim opr1 As Double, opr2 As Double
Dim operator As String
Dim hapustampilan As Boolean
Dim rsSALES As Recordset
Dim dbPTDJARUM As Database
Dim no, hal, brs, ms As Integer
Dim TEKS As String
Private Sub cmdkeluar_Click()
Unload Me
Page 27
10
End Sub
Private Sub Form_Load()
Me.Height = 20
Timer1.Enabled = True
Timer3.Enabled = True
TEKS = Label7.Caption
Set dbPTDJARUM = OpenDatabase(App.Path & "\PTDJARUM.mdb")
Set rsSALES = dbPTDJARUM.OpenRecordset("SALES")
End Sub
Public Sub tengah()
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
End Sub
Private Sub ALM_S_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(ALM_S.Text) <> 0 Then
NO_TELP.SetFocus
End If
End Sub
Private Sub NO_TELP_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(NO_TELP.Text) <> 0 Then
NO_PLAT.SetFocus
End If
End Sub
Private Sub NM_S_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(NM_S.Text) <> 0 Then
ALM_S.SetFocus
End If
Page 28
10
End Sub
Private Sub Timer1_Timer()
Me.Height = Me.Height + 100
tengah
If Me.Height >= 6500 Then
Timer1.Enabled = False
tengah
End If
End Sub
Private Sub Timer2_Timer()
On Error Resume Next
If Label1.Visible = True Then
Label1.Visible = False
ElseIf Label1.Visible = False Then
Label1.Visible = True
End If
End Sub
Private Sub Timer3_Timer()
TEKS = Right(TEKS, Len(TEKS) - 1) & Left(TEKS, 1)
Label7.Caption = TEKS
End Sub
Private Sub CMDSIMPAN_Click()
If cmdsimpan.Caption = "&Simpan" Then
cmdsimpan.Caption = "&Tambah"
ms = MsgBox("Apakah data Sudah Benar ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsSALES.AddNew
rsSALES!KD_S = KD_S.Text
Page 29
10
rsSALES!NM_S = NM_S.Text
rsSALES!ALM_S = ALM_S.Text
rsSALES!NO_TELP = NO_TELP.Text
rsSALES!NO_PLAT = NO_PLAT.Text
rsSALES.Update
txttoenabled False
cmdtoenabled True, False, False, False
cmdsimpan.SetFocus
Else
cmdsimpan.Caption = "&Simpan"
txttoclear
End If
Else
If cmdsimpan.Caption = "&Tambah" Then
cmdsimpan.Caption = "&Simpan"
txttoclear
KD_S.SetFocus
cmdtoenabled False, False, False, False
End If
End If
End Sub
Private Sub cmdperbaiki_Click()
If cmdperbaiki.Caption = "&Perbaiki" Then
ms = MsgBox("Yakin Data Akan diperbaiki", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
cmdperbaiki.Caption = "&Simpan"
txttoenabled True
KD_S.SetFocus
Else
Page 30
10
txttoclear
End If
Else
If cmdperbaiki.Caption = "&Simpan" Then
cmdperbaiki.Caption = "&Perbaiki"
rsSALES.Edit
rsSALES!KD_S = KD_S.Text
rsSALES!NM_S = NM_S.Text
rsSALES!ALM_S = ALM_S.Text
rsSALES!NO_TELP = NO_TELP.Text
rsSALES!NO_PLAT = NO_PLAT.Text
rsSALES.Update
cmdtoenabled False, False, False, False
txttoclear
KD_S.SetFocus
End If
End If
End Sub
Private Sub cmdhapus_Click()
ms = MsgBox("Benar data akan dihapus ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsSALES.Delete
rsSALES.MoveNext
txttoclear
cmdtoenabled False, False, False, False
KD_S.SetFocus
Else
txttoclear
txttoenabled False
Page 31
10
KD_S.SetFocus
End If
cmdtoenabled False, False, False, False
End Sub
Private Sub cmdbatal_Click()
txttoclear
cmdtoenabled False, False, False, False
txttoenabled False
KD_S.SetFocus
End Sub
Private Sub Form_Activate()
txttoclear
KD_S.SetFocus
End Sub
Private Sub txttoclear()
KD_S.Text = ""
NM_S.Text = ""
ALM_S.Text = ""
NO_TELP.Text = ""
NO_PLAT.Text = ""
End Sub
Private Sub cmdtoenabled(parasimpan, paraperbaiki, parahapus, parabatal As Boolean)
cmdsimpan.Enabled = parasimpan
cmdperbaiki.Enabled = paraperbaiki
cmdhapus.Enabled = parahapus
cmdbatal.Enabled = parabatal
End Sub
Private Sub txttoenabled(param As Boolean)
NM_S.Enabled = param
Page 32
10
ALM_S.Enabled = param
NO_TELP.Enabled = param
NO_PLAT.Enabled = param
End Sub
Private Sub KD_S_Change()
If Len(KD_S.Text) = 5 Then
rsSALES.Index = "KD_S"
rsSALES.Seek "=", KD_S.Text
If rsSALES.NoMatch Then
txttoenabled True
cmdtoenabled True, False, False, True
NM_S.Text = ""
ALM_S.Text = ""
NO_TELP.Text = ""
NO_PLAT.Text = ""
NM_S.SetFocus
Else
If rsSALES.RecordCount > 0 Then
NM_S.Text = rsSALES!NM_S
ALM_S.Text = rsSALES!ALM_S
NO_TELP.Text = rsSALES!NO_TELP
NO_PLAT.Text = rsSALES!NO_PLAT
txttoenabled False
cmdtoenabled False, True, True, False
cmdperbaiki.SetFocus
End If
End If
End If
End Sub
Page 33
10
Listing : Program VB untuk form Entry Data Sales
Form Entry Data Distribusi
Implementasi form entry data sales dapat dilihat pada gambar 2.4. Ketentuan – ketentuan yang dibuat pada persoalan yang telah dikerjakan.
Gambar 2.4 : Implementasi form entry data distribusi
Option Explicit
Dim opr1 As Double, opr2 As Double
Dim operator As String
Dim hapustampilan As Boolean
Dim rsDISTRIBUSI As Recordset
Dim rsROKOK As Recordset
Dim rsSALES As Recordset
Dim dbPTDJARUM As Database
Dim no, hal, brs, ms, X, Y, D, I, A As Integer
Dim TEKS As String
Page 34
10
Private Sub cmdkeluar_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.Height = 20
Timer1.Enabled = True
Timer3.Enabled = True
TEKS = Label7.Caption
Set dbPTDJARUM = OpenDatabase(App.Path & "\PTDJARUM.mdb")
Set rsDISTRIBUSI = dbPTDJARUM.OpenRecordset("DISTRIBUSI")
Set rsROKOK = dbPTDJARUM.OpenRecordset("ROKOK")
Set rsSALES = dbPTDJARUM.OpenRecordset("SALES")
rsROKOK.Index = "kd_R"
While Not rsROKOK.EOF
KD_R.AddItem rsROKOK(0)
rsROKOK.MoveNext
Wend
rsSALES.Index = "KD_S"
While Not rsSALES.EOF
KD_S.AddItem rsSALES(0)
rsSALES.MoveNext
Wend
End Sub
Private Sub HRG_D_Change()
X = Val(JML_D.Text)
Y = Val(HRG_D.Text)
I = Val(HRG_R.Text)
Page 35
10
JML_B.Text = X * Y
PROFIT.Text = (X * Y) - (X * I)
End Sub
Private Sub KD_R_Change()
rsROKOK.Index = "KD_R"
rsROKOK.Seek "=", KD_R.Text
If Not rsROKOK.NoMatch Then
NM_R.Text = rsROKOK!NM_R
HRG_R.Text = rsROKOK!HRG_R
JML_PSD.Text = rsROKOK!JML_PSD
End If
End Sub
Private Sub KD_R_Click()
KD_R_Change
End Sub
Private Sub KD_S_Change()
rsSALES.Index = "KD_S"
rsSALES.Seek "=", KD_S.Text
If Not rsSALES.NoMatch Then
NM_S.Text = rsSALES!NM_S
ALM_S.Text = rsSALES!ALM_S
NO_PLAT.Text = rsSALES!NO_PLAT
End If
End Sub
Private Sub KD_S_Click()
KD_S_Change
End Sub
Public Sub tengah()
Page 36
10
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
End Sub
Private Sub JML_D_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(JML_D.Text) <> 0 Then
HRG_D.SetFocus
End If
End Sub
Private Sub HRG_D_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(HRG_D.Text) <> 0 Then
DT.SetFocus
End If
End Sub
Private Sub TGL_D_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(TGL_D.Value) <> 0 Then
JML_D.SetFocus
End If
End Sub
Private Sub Timer1_Timer()
Me.Height = Me.Height + 100
tengah
If Me.Height >= 9500 Then
Timer1.Enabled = False
tengah
End If
End Sub
Private Sub Timer2_Timer()
On Error Resume Next
Page 37
10
If Label1.Visible = True Then
Label1.Visible = False
ElseIf Label1.Visible = False Then
Label1.Visible = True
End If
End Sub
Private Sub Timer3_Timer()
TEKS = Right(TEKS, Len(TEKS) - 1) & Left(TEKS, 1)
Label7.Caption = TEKS
End Sub
Private Sub JML_D_Change()
'tidak bisa melebihi jumlah persediaan
If Val(JML_D.Text) > Val(JML_PSD.Text) Then
MsgBox ("Jumlah Distribusi Melebihi Jumlah Persediaan Yang Ada")
cmdsimpan.Enabled = False
Else
cmdsimpan.Enabled = True
End If
End Sub
Private Sub CMDSIMPAN_Click()
'nilai berkurang sesuai distribusi
rsROKOK.Edit
rsROKOK!JML_PSD = Val(JML_PSD.Text - JML_D.Text)
rsROKOK.Update
If cmdsimpan.Caption = "&Simpan" Then
cmdsimpan.Caption = "&Tambah"
Page 38
10
ms = MsgBox("Apakah data Sudah Benar ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsDISTRIBUSI.AddNew
rsDISTRIBUSI!KD_D = KD_D.Text
rsDISTRIBUSI!TGL_D = TGL_D.Value
rsDISTRIBUSI!JML_D = JML_D.Text
rsDISTRIBUSI!HRG_D = HRG_D.Text
rsDISTRIBUSI!DT = DT.Text
rsDISTRIBUSI!JML_B = JML_B.Text
rsDISTRIBUSI!PROFIT = PROFIT.Text
rsDISTRIBUSI!KD_R = KD_R.Text
rsDISTRIBUSI!NM_R = NM_R.Text
rsDISTRIBUSI!HRG_R = HRG_R.Text
rsDISTRIBUSI!JML_PSD = JML_PSD.Text
rsDISTRIBUSI!KD_S = KD_S.Text
rsDISTRIBUSI!NM_S = NM_S.Text
rsDISTRIBUSI!ALM_S = ALM_S.Text
rsDISTRIBUSI!NO_PLAT = NO_PLAT.Text
rsDISTRIBUSI.Update
txttoenabled False
cmdtoenabled True, False, False, False
cmdsimpan.SetFocus
Else
cmdsimpan.Caption = "&Simpan"
txttoclear
End If
Else
If cmdsimpan.Caption = "&Tambah" Then
cmdsimpan.Caption = "&Simpan"
Page 39
10
txttoclear
KD_D.Enabled = True
TGL_D.Enabled = True
JML_D.Enabled = True
HRG_D.Enabled = True
DT.Enabled = True
JML_B.Enabled = True
PROFIT.Enabled = True
KD_R.Enabled = True
NM_R.Enabled = True
HRG_R.Enabled = True
JML_PSD.Enabled = True
KD_S.Enabled = True
NM_S.Enabled = True
ALM_S.Enabled = True
NO_PLAT.Enabled = True
KD_D.SetFocus
cmdtoenabled False, False, False, False
End If
End If
End Sub
Private Sub cmdperbaiki_Click()
If cmdperbaiki.Caption = "&Perbaiki" Then
ms = MsgBox("Yakin Data Akan diperbaiki", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
cmdperbaiki.Caption = "&Simpan"
txttoenabled True
KD_D.SetFocus
Page 40
10
Else
txttoclear
End If
Else
If cmdperbaiki.Caption = "&Simpan" Then
cmdperbaiki.Caption = "&Perbaiki"
rsDISTRIBUSI.Edit
rsDISTRIBUSI!KD_D = KD_D.Text
rsDISTRIBUSI!TGL_D = TGL_D.Value
rsDISTRIBUSI!JML_D = JML_D.Text
rsDISTRIBUSI!HRG_D = HRG_D.Text
rsDISTRIBUSI!DT = DT.Text
rsDISTRIBUSI!JML_B = JML_B.Text
rsDISTRIBUSI!PROFIT = PROFIT.Text
rsDISTRIBUSI!KD_R = KD_R.Text
rsDISTRIBUSI!NM_R = NM_R.Text
rsDISTRIBUSI!HRG_R = HRG_R.Text
rsDISTRIBUSI!JML_PSD = JML_PSD.Text
rsDISTRIBUSI!KD_S = KD_S.Text
rsDISTRIBUSI!NM_S = NM_S.Text
rsDISTRIBUSI!ALM_S = ALM_S.Text
rsDISTRIBUSI!NO_PLAT = NO_PLAT.Text
rsDISTRIBUSI.Update
cmdtoenabled False, False, False, False
txttoclear
KD_D.SetFocus
End If
End If
End Sub
Page 41
10
Private Sub cmdhapus_Click()
ms = MsgBox("Benar data akan dihapus ?", vbYesNo + vbInformation, "PT.DJARUM CABANG PADANG")
If ms = vbYes Then
rsDISTRIBUSI.Delete
rsDISTRIBUSI.MoveNext
txttoclear
cmdtoenabled False, False, False, False
KD_D.SetFocus
Else
txttoclear
txttoenabled False
KD_D.SetFocus
End If
cmdtoenabled False, False, False, False
End Sub
Private Sub cmdbatal_Click()
txttoclear
cmdtoenabled False, False, False, False
txttoenabled False
KD_D.SetFocus
End Sub
Private Sub Form_Activate()
txttoclear
KD_D.SetFocus
End Sub
Page 42
10
Private Sub txttoclear()
KD_D.Text = ""
TGL_D.Value = Date
JML_D.Text = ""
HRG_D.Text = ""
DT.Text = ""
JML_B.Text = ""
PROFIT.Text = ""
KD_R.Text = ""
NM_R.Text = ""
HRG_R.Text = ""
JML_PSD.Text = ""
KD_S.Text = ""
NM_S.Text = ""
ALM_S.Text = ""
NO_PLAT.Text = ""
End Sub
Private Sub cmdtoenabled(parasimpan, paraperbaiki, parahapus, parabatal As Boolean)
cmdsimpan.Enabled = parasimpan
cmdperbaiki.Enabled = paraperbaiki
cmdhapus.Enabled = parahapus
cmdbatal.Enabled = parabatal
End Sub
Private Sub txttoenabled(param As Boolean)
TGL_D.Enabled = param
JML_D.Enabled = param
HRG_D.Enabled = param
Page 43
10
DT.Enabled = param
KD_R.Enabled = param
NM_R.Enabled = param
HRG_R.Enabled = param
JML_PSD.Enabled = param
KD_S.Enabled = param
NM_S.Enabled = param
ALM_S.Enabled = param
NO_PLAT.Enabled = param
JML_D.Enabled = param
DT.Enabled = param
JML_B.Enabled = param
PROFIT.Enabled = param
End Sub
Private Sub KD_D_Change()
If Len(KD_D.Text) = 5 Then
rsDISTRIBUSI.Index = "KD_D"
rsDISTRIBUSI.Seek "=", KD_D.Text
If rsDISTRIBUSI.NoMatch Then
txttoenabled True
cmdtoenabled True, False, False, True
TGL_D.Value = Date
JML_D.Text = ""
HRG_D.Text = ""
DT.Text = ""
JML_B.Text = ""
PROFIT.Text = ""
KD_R.Text = ""
Page 44
10
NM_R.Text = ""
HRG_R.Text = ""
JML_PSD.Text = ""
KD_S.Text = ""
NM_S.Text = ""
ALM_S.Text = ""
NO_PLAT.Text = ""
KD_R.SetFocus
Else
If rsDISTRIBUSI.RecordCount > 0 Then
TGL_D.Value = rsDISTRIBUSI!TGL_D
JML_D.Text = rsDISTRIBUSI!JML_D
HRG_D.Text = rsDISTRIBUSI!HRG_D
DT.Text = rsDISTRIBUSI!DT
JML_B.Text = rsDISTRIBUSI!JML_B
PROFIT.Text = rsDISTRIBUSI!PROFIT
KD_R.Text = rsDISTRIBUSI!KD_R
NM_R.Text = rsDISTRIBUSI!NM_R
HRG_R.Text = rsDISTRIBUSI!HRG_R
JML_PSD.Text = rsDISTRIBUSI!JML_PSD
KD_S.Text = rsDISTRIBUSI!KD_S
NM_S.Text = rsDISTRIBUSI!NM_S
ALM_S.Text = rsDISTRIBUSI!ALM_S
NO_PLAT.Text = rsDISTRIBUSI!NO_PLAT
txttoenabled False
cmdtoenabled False, True, True, False
cmdperbaiki.SetFocus
End If
End If
Page 45
10
End If
End Sub
Listing 2.4 : Program VB untuk form entry data distribusi.
Program Pada Form Laporan Harian Persediaan Rokok
Implementasi form laporan harian persediaan rokok dapat dilihat pada gambar 2.5.
Listing programnya pada ketentuan – ketentuan yang dibuat pada persoalan yang telah
dikerjakan.
Gambar 2.5 : Implementasi form laporan harian persediaan rokok.
Dim dbPTDJARUM As Database
Dim rsROKOK As Recordset
Dim no, hal, brs As Integer
Dim tot As Currency
Private Function RKanan(NData, CFormat) As String
Page 46
10
RKanan = Format(NData, CFormat)
RKanan = Space(Len(CFormat) - Len(RKanan)) + RKanan
End Function
Private Sub ClearInfo()
info.Clear
info.Rows = 2
info.Cols = 5
info.ColWidth(0) = 400
info.ColWidth(1) = 1500
info.ColWidth(2) = 2500
info.ColWidth(3) = 1300
info.ColWidth(4) = 1300
info.Row = 0
info.Col = 0: info.Text = "No."
info.Col = 1: info.Text = "Kode Rokok"
info.Col = 2: info.Text = "Nama Rokok"
info.Col = 3: info.Text = "Harga Pokok"
info.Col = 4: info.Text = "Stock (SLOF)"
End Sub
Private Sub Cmdexit_Click()
Unload Me
End Sub
Private Sub Form_Activate()
cmdtampil.Enabled = True
cmdtampil.SetFocus
End Sub
Page 47
10
Private Sub Form_Load()
Me.Height = 20
Timer1.Enabled = True
Set dbPTDJARUM = OpenDatabase(App.Path & "\PTDJARUM.mdb")
Set rsROKOK = dbPTDJARUM.OpenRecordset("ROKOK")
tanggal.Text = Format(Date, "dd-MMMM-yyyy")
Call ClearInfo
End Sub
Public Sub tengah()Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
End Sub
Private Sub Timer1_Timer()
Me.Height = Me.Height + 100
tengah
If Me.Height >= 7700 Then
Timer1.Enabled = False
tengah
End If
End Sub
Private Sub cmdtampil_Click()
no = 0
Call ClearInfo
info.Row = 1
rsROKOK.MoveFirst
Do While Not rsROKOK.EOF
Page 48
10
no = no + 1
info.Col = 0: info.Text = no
info.Col = 1: info.Text = rsROKOK!KD_R
info.Col = 2: info.Text = rsROKOK!NM_R
info.Col = 3: info.Text = rsROKOK!HRG_R
info.Col = 4: info.Text = rsROKOK!JML_PSD
info.Rows = info.Rows + 1
info.Row = info.Row + 1
rsROKOK.MoveNext
Loop
End Sub
Private Sub cmdcetak_Click()
Dim grs1, grs2 As String
Dim ms As Byte
On Error GoTo salahcetak:
hal = 0: tot = 0: brs = 0
Printer.PaperSize = vbPRPSA4
Printer.Font = "courier new"
Printer.FontSize = 10
rsROKOK.MoveFirst
grs2 = String(75, "=")
Do While Not rsROKOK.EOF
brs = brs + 1
If brs = 1 Then
hal = hal + 1
Printer.Print String(2, Chr(13))
Printer.Print Tab(10); "LAPORAN HARIAN PERSEDIAAN ROKOK "
Printer.Print Tab(10); "PT.DJARUM CABANG PADANG"
Page 49
10
Printer.Print Tab(10); "Tanggal :"; tanggal.Text
Printer.Print
Printer.Print Tab(10); grs2
Printer.Print Tab(10); "No."; _
Tab(17); "Kode Rokok"; _
Tab(30); "Nama Rokok"; _
Tab(50); "HRG_Rokok"; _
Tab(65); "JML_Persedian";
Printer.Print Tab(10); ""; _
Printer.Print Tab(10); grs2
End If
Printer.Print Tab(10); RKanan(brs, "###"); _
Tab(17); rsROKOK!KD_R; _
Tab(30); rsROKOK!NM_R; _
Tab(50); RKanan(rsROKOK!HRG_R, "######"); _
Tab(65); rsROKOK!JML_PSD;
If baris = 50 Then
baris = 0
Printer.Print Tab(10); grs2
Printer.NewPage
End If
rsROKOK.MoveNext
Loop
If hal > 0 Then
Printer.Print Tab(10); grs2
Printer.Print Tab(57); "Padang, ................"
Page 50
10
Printer.Print Tab(60); "Penanggung Jawab"
Printer.Print Tab(1); ""
Printer.Print Tab(1); ""
Printer.Print Tab(1); ""
Printer.Print Tab(58); "(..................)"
End If
Printer.EndDoc
Exit Sub
salahcetak:
Beep
ms = MsgBox("Printer Error, mungkin belum tersambung....." & Chr(13) & "Betulkan printer lalu klik OK !", vbCritical + vbOKCancel, "Error")
If ms = vbOK Then
Resume
Else
Printer.KillDoc
End If
End Sub
Listing 2.5 : Program VB untuk form laporan harian persediaan rokok.
Page 51
10
Program pada Form Laporan Bulanan Distribusi Rokok
Implementasi form entry laporan bulanan distribusi rokok dapat dilihat pada gambar. Ketentuan – ketentuan yang dibuat pada persoalan yang telah dikerjakan.
Gambar : Implementasi form laporan bulanan distribusi rokok.
Dim dbPTDJARUM As Database
Dim rsDISTRIBUSI As Recordset
Dim rsSALES As Recordset
Dim no, hal, brs, RT, VH, VT, STHR, STTH, YD As Integer
Dim tot, TOT1, TOT2 As Currency
Private Function RKanan(NData, CFormat) As String
RKanan = Format(NData, CFormat)
RKanan = Space(Len(CFormat) - Len(RKanan)) + RKanan
End Function
Private Sub ClearInfo()
info.Clear
info.Rows = 2
Page 52
10
info.Cols = 11
info.ColWidth(0) = 400
info.ColWidth(1) = 1500
info.ColWidth(2) = 1500
info.ColWidth(3) = 2500
info.ColWidth(4) = 1300
info.ColWidth(5) = 1300
info.ColWidth(6) = 1300
info.ColWidth(7) = 2500
info.ColWidth(8) = 1300
info.ColWidth(9) = 1300
info.ColWidth(10) = 1300
info.Row = 0
info.Col = 0: info.Text = "No."
info.Col = 1: info.Text = "TGL DISTRIBUSI"
info.Col = 2: info.Text = "KODE ROKOK"
info.Col = 3: info.Text = "NAMA ROKOK"
info.Col = 4: info.Text = "NAMA SALES"
info.Col = 5: info.Text = "DAERAH DISTRIBUSI"
info.Col = 6: info.Text = "JUMLAH DISTRIBUSI (SLOF)"
info.Col = 7: info.Text = "HARGA POKOK (RP)"
info.Col = 8: info.Text = "HARGA DISTRIBUSI (RP)"
info.Col = 9: info.Text = "JUMLAH BAYAR (RP)"
info.Col = 10: info.Text = "PROFIT (RP)"
End Sub
Private Sub Cmdexit_Click()
Unload Me
End Sub
Page 53
10
Private Sub Form_Activate()
combo1.SetFocus
End Sub
Private Sub Form_Load()
Me.Height = 20
Timer1.Enabled = True
Set dbPTDJARUM = OpenDatabase(App.Path & "\PTDJARUM.mdb")
Set rsDISTRIBUSI = dbPTDJARUM.OpenRecordset("DISTRIBUSI")
Set rsSALES = dbPTDJARUM.OpenRecordset("SALES")
Call ClearInfo
cmdtampil.Enabled = True
End Sub
Public Sub tengah()
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
End Sub
Private Sub Timer1_Timer()
Me.Height = Me.Height + 100
tengah
If Me.Height >= 8700 Then
Timer1.Enabled = False
tengah
End If
End Sub
Private Sub cmdtampil_Click()
Dim bulan
no = 0: tot = 0: TOT1 = 0: TOT2 = 0
If Trim(combo1.Text) = "January" Then
Page 54
10
bulan = 1
ElseIf Trim(combo1.Text) = "February" Then
bulan = 2
ElseIf Trim(combo1.Text) = "Maret" Then
bulan = 3
ElseIf Trim(combo1.Text) = "April" Then
bulan = 4
ElseIf Trim(combo1.Text) = "May" Then
bulan = 5
ElseIf Trim(combo1.Text) = "Juni" Then
bulan = 6
ElseIf Trim(combo1.Text) = "Juli" Then
bulan = 7
ElseIf Trim(combo1.Text) = "Agustus" Then
bulan = 8
ElseIf Trim(combo1.Text) = "September" Then
bulan = 9
ElseIf Trim(combo1.Text) = "Oktober" Then
bulan = 10
ElseIf Trim(combo1.Text) = "November" Then
bulan = 11
ElseIf Trim(combo1.Text) = "Desember" Then
bulan = 12
End If
Call ClearInfo
info.Row = 1
rsDISTRIBUSI.MoveFirst
Do While Not rsDISTRIBUSI.EOF
Page 55
10
If Month(rsDISTRIBUSI!TGL_D) = bulan And Year(rsDISTRIBUSI!TGL_D) = tahun.Text Then
no = no + 1
info.Col = 0: info.Text = no
info.Col = 1: info.Text = rsDISTRIBUSI!TGL_D
info.Col = 2: info.Text = rsDISTRIBUSI!KD_R
info.Col = 3: info.Text = rsDISTRIBUSI!NM_R
info.Col = 4: info.Text = rsDISTRIBUSI!NM_S
info.Col = 5: info.Text = rsDISTRIBUSI!DT
info.Col = 6: info.Text = Format(rsDISTRIBUSI!JML_D, "##,###,###")
info.Col = 7: info.Text = Format(rsDISTRIBUSI!HRG_R, "###,###,###")
info.Col = 8: info.Text = Format(rsDISTRIBUSI!HRG_D, "###,###,###")
info.Col = 9: info.Text = Format(rsDISTRIBUSI!JML_B, "###,###,###")
info.Col = 10: info.Text = Format(rsDISTRIBUSI!PROFIT, "###,###,###")
tot = tot + rsDISTRIBUSI!JML_B
TOT1 = TOT1 + rsDISTRIBUSI!PROFIT
RT = TOT1 / no
TOT2 = (TOT1 - RT) * (TOT1 - RT)
VH = TOT2 / no
VT = VH * 289
STHR = Sqr(VH)
STTH = Sqr(VT)
info.Rows = info.Rows + 1
info.Row = info.Row + 1
End If
rsDISTRIBUSI.MoveNext
tot_B.Text = Format(tot, "###,###,###")
tot_P.Text = Format(TOT1, "###,###,###")
rata.Text = Format(RT, "###,###,###")
varian.Text = Format(VH, "###,###,###")
Page 56
10
deviasihari.Text = Format(STHR, "###,###,###")
variantahun.Text = Format(VT, "###,###,###")
deviasitahun.Text = Format(STTH, "###,###,###")
Loop
End Sub
Listing 2.6 : Program VB untuk form laporan bulanan distribusi rokok.
Page 57
10
BAB IV. EKSEKUSI PROGRAM
Pada saat menegksekusi program ini, akan tampil gambar sebagai form utama sebagai berikut. Semua menu pada program terletak pada form ini.
Jika kita ingin memasukkan data baru kedalam data rokok. Maka kita pilih Entri –
Entri Data Rokok. Dan akan muncul gambar sebagai berikut. Pada form ini, akan tersedia
tempat untuk memasukkan kode rokok, nama serta harga dan jumlah stok rokok. Form nya
bisa terlihat pada gamber berikut. Misalnya kita mau masukkan data pada gambar :
Page 58
10
Klik save dan terlihat gambar.
Sebelumnya, data pada database belum masuk, hanya ada data sebagai berikut :
Page 59
10
Setelah melakukan penyimpanan data, maka akan masuk dalam databse:
Pada form Sales, prinsip nya sama dengan data rokok, pertama muncul form seperti gambar.
Page 60
10
Masukkan data sales yang akan dimasukkan dalam database sebagai berikut.
Klik save
Page 61
10
Database yang sebelum penyimpanan :
Database setelah memasukkan data dan hasilnya adalah sebagai berikut:
Pada form distribusi, berarti kita akan melakukan proses pendistribusian rokok beserta salesman yang terlibat. Gamber form nya adalah sebagai berikut:
Page 62
10
Misalnya kita akan memsukkan data sebagai berikut:
Setelah disimpan maka akan masuk dalam database, berikut adalah database sebelum program jalan.
Gambar berikut adalah database setelah melakukan penyimpanan.
Page 63
10
Pada laporan harian persediaan rokok, akan tampil gambar:
Klik tampil dan muncul informasi sesuai dari database
Page 64
10
Jika kita cetak informasinya, akan tampil sebagai berikut.
Jika kita ingin melihat laporan distribusi bulanan, akan muncul form sebagai berikut.
Page 65
10
Jika kita inin melihat data bulan Mei, akan muncul :
Page 66
10
V. PENUTUP
5.1 Kesimpulan
Dari program ini, dapat disimpulkan bahwa Program Visual Basic bisa kita
koneksikan dengan database Acces. Tidak hanya acces, Visual Basic juga bisa dikoneksikan
dengan Server SQL dan beberapa aplikasi lainnya. Program dibuat untuk mempermudah
manusia dalam melakukan aktifitasnya. Khususnya program ini dirancang untuk dipakai
dalam bidang Industri rokok.
Pada eksekusi program, bisa disimpulkan bahwa program data rokok telah berhasil
dieksekusi sesuai dengan yang diharapkan.
5.2 Saran
Setiap program yang akan kita buat, pasti memerlukan beberapa rancangan terlebih
dahulu. Sama halnya dengan Program Visual Basic 6. Kita memerlukan ER – diagram
sebagai dasar jalannya proses program.
Page 67
10
DAFTAR PUSTAKA
Afnarius, Surya Ir, MSc, PhD. PEMOGRAMAN VB DAN DATABASE MS
ACCES. 2008. Universitas Andalas : Padang.
Page 68
10
Kata Pengantar
Pertama penulis ucapkan puji syukur kepada Allah SWT yang telah memberikan
rahmat dan hidayah-Nya sehingga kami dapat menyeleseikan program beserta makalah ini.
Selanjutnya, penulis juga mengucapkan terima kasih kepada dosen pembimbing,
Bapak Ir. Surya Afnarius, MSc, Phd , yang telah memberikan bimbingan dan masukan-
masukan kepada penulis, sehingga program ini dapat diselesaikan sebagaimana mestinya.
Adapun tujuan dari pembuatan program ini adalah agar dapat memenuhi tugas mata kuliah
Pemograman Komputer, yaitu Visual Basic dan Database Ms. Access.
Akhir kata, semoga makalah ini bermanfaat bagi pembaca dan penulis sangat
mengharapkan saran yang bermanfaat dan membangun bagi makalah ini. Terima kasih.
Padang, 16 Mei 2009
Penulis
Page 69
10
MAKALAH
PEMOGRAMAN KOMPUTER
VISUAL BASIC DAN DATABASE MS ACCESS
“ Distribusi Rokok PT DJARUM ”
Oleh :
Kelompok II (dua)
Hamdi Reza (0810852025)
Andrianef Yunet (0810852031)
Dosen :
Ir. Surya Afnarius, MSc, Phd
JURUSAN TEKNIK ELEKTRO
UNIVERSITAS ANDALAS
PADANG
2009
Page 70
10
Daftar Isi
Kata Pengantar
Daftar Isi
Bab I. Pendahuluan 1
Latar Belakang Masalah
Tujuan Pembuatan Program
Bab II. Persoalan 2
Database
Form Menu Utama
Form Entry Data Rokok
Form Entry Data Sales
Form Laporan Harian Persediaan Rokok
Form Laporan Bulanan Distribusi Rokok
Bab III. Solusi 16
Form Menu Utama
Form Entry Data Rokok
Form Entry Data Sales
Form Laporan Harian Persediaan Rokok
Form Laporan Bulanan Distribusi Rokok
Bab IV. Eksekusi Program 57
Bab V. Penutup 66
Daftar Pustaka 67