Anda di halaman 1dari 70

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.

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

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

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

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.

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

Form Menu Utama

Form menu utama ini berguna sebagai tampilan utama. Semua menu pada program
berada pada form ini, diantaranya menu :

10
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

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

10
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

Form Entry Data Rokok

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

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.

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.

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

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.

10
 Informasi tersebut bisa di print ke printer atau menggunakan Microsoft Office
OneNote.

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

10
 Combo box bulan menawarkan 12 bulan selama setahun dan tahun yang bisa diketik
langsung.

 Label untuk menampilkan info deposit, total harga hingga standar deviasi.

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

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

10
End Sub
Private Sub EDS_Click()
‘Rem diaktifkan jika tombol Entry – Entry Data Sales di-klik pemakai
ENTDATASALES.Show
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

10
Picture2.Visible = False
ElseIf Picture2.Visible = False Then
Picture2.Visible = True
End If
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.

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

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

10
Private Sub NM_R_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Len(NM_R.Text) <> 0 Then
HRG_R.SetFocus
End If
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

10
cmdsimpan.Caption = "&Tambah"
ms = MsgBox("Apakah data Sudah Benar ?", vbYesNo + vbInformation, "PT.DJARUM
CABANG PADANG")
If ms = vbYes Then
rsROKOK.AddNew
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

10
ms = MsgBox("Yakin Data Akan diperbaiki", vbYesNo + vbInformation, "PT.DJARUM
CABANG PADANG")
If ms = vbYes Then
cmdperbaiki.Caption = "&Simpan"
txttoenabled True
KD_R.SetFocus

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

10
rsROKOK.Delete
rsROKOK.MoveNext
txttoclear
cmdtoenabled False, False, False, False
KD_R.SetFocus
Else

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 = ""

10
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_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

10
cmdtoenabled False, True, True, False
cmdperbaiki.SetFocus
End If
End If
End If
End Sub

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

10
Dim dbPTDJARUM As Database
Dim no, hal, brs, ms As Integer
Dim TEKS As String

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

10
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
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()

10
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
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

10
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
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

10
rsSALES.MoveNext
txttoclear
cmdtoenabled False, False, False, False
KD_S.SetFocus
Else
txttoclear
txttoenabled False
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)

10
cmdsimpan.Enabled = parasimpan
cmdperbaiki.Enabled = paraperbaiki
cmdhapus.Enabled = parahapus
cmdbatal.Enabled = parabatal
End Sub
Private Sub txttoenabled(param As Boolean)
NM_S.Enabled = param
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

10
txttoenabled False
cmdtoenabled False, True, True, False
cmdperbaiki.SetFocus
End If
End If
End If
End Sub

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

10
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

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

10
Wend
End Sub

Private Sub HRG_D_Change()


X = Val(JML_D.Text)
Y = Val(HRG_D.Text)
I = Val(HRG_R.Text)
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

10
End If
End Sub

Private Sub KD_S_Click()


KD_S_Change
End Sub
Public Sub tengah()
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

10
If Me.Height >= 9500 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 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

10
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"
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

10
Else
cmdsimpan.Caption = "&Simpan"
txttoclear
End If
Else
If cmdsimpan.Caption = "&Tambah" Then
cmdsimpan.Caption = "&Simpan"
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

10
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
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

10
rsDISTRIBUSI.Update
cmdtoenabled False, False, False, False
txttoclear
KD_D.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
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

10
End Sub

Private Sub Form_Activate()


txttoclear
KD_D.SetFocus
End Sub

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

10
cmdbatal.Enabled = parabatal
End Sub

Private Sub txttoenabled(param As Boolean)


TGL_D.Enabled = param
JML_D.Enabled = param
HRG_D.Enabled = param
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

10
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 = ""
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

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

10
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


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

10
End Sub

Private Sub Form_Activate()


cmdtampil.Enabled = True
cmdtampil.SetFocus
End Sub

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

10
Private Sub cmdtampil_Click()
no = 0
Call ClearInfo
info.Row = 1
rsROKOK.MoveFirst
Do While Not rsROKOK.EOF
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, "=")

10
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"
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

10
End If

rsROKOK.MoveNext
Loop
If hal > 0 Then
Printer.Print Tab(10); grs2
Printer.Print Tab(57); "Padang, ................"
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.

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

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

10
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
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

10
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
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

10
bulan = 12
End If

Call ClearInfo
info.Row = 1
rsDISTRIBUSI.MoveFirst
Do While Not rsDISTRIBUSI.EOF
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

10
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, "###,###,###")
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.

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 :

10
Klik save dan terlihat gambar.

Sebelumnya, data pada database belum masuk, hanya ada data sebagai berikut :

10
Setelah melakukan penyimpanan data, maka akan masuk dalam databse:

Pada form Sales, prinsip nya sama dengan data rokok, pertama muncul form seperti gambar.

10
Masukkan data sales yang akan dimasukkan dalam database sebagai berikut.

Klik save

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:

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.

10
Pada laporan harian persediaan rokok, akan tampil gambar:

Klik tampil dan muncul informasi sesuai dari database

10
Jika kita cetak informasinya, akan tampil sebagai berikut.

Jika kita ingin melihat laporan distribusi bulanan, akan muncul form sebagai berikut.

10
Jika kita inin melihat data bulan Mei, akan muncul :

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.

10
DAFTAR PUSTAKA

Afnarius, Surya Ir, MSc, PhD. PEMOGRAMAN VB DAN DATABASE MS ACCES.


2008. Universitas Andalas : Padang.

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

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

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

10

Anda mungkin juga menyukai