60
Ahmad Al Kaafi, M.Kom AMIK BSI TEGAL Jl. Sipelem No. 22, Tegal Modul Praktikum Pemrograman Visual II

Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL i

Ahmad Al Kaafi, M.Kom

AMIK BSI TEGAL

Jl. Sipelem No. 22, Tegal

Modul Praktikum Pemrograman Visual II

Page 2: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL ii

KATA PENGANTAR

Alhamdulillah, penulis panjatkan kehadirat Allah SWT, yang telah

melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis

dapat menyelesaikan modul praktikum Pemrograman Visual II ini dengan

baik. Dimana modul praktikum ini penulis sajikan dalam bentuk yang

sederhana.

Sebagai bahan penulisan diambil berdasarkan dari beberapa sumber

literatur yang mendukung penulisan ini. Penulis menyadari bahwa tanpa

arahan dan dorongan dari berbagai pihak, maka penulisan modul

praktikum ini tidak akan lancar.

Penulis menyadari bahwa penulisan modul praktikum ini masih jauh

dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat

membangun demi kesempurnaan penulisan dimasa yang akan datang.

Akhir kata semoga modul praktikum ini dapat berguna bagi penulis

khususnya dan bagi para pembaca yang berminat pada umumnya.

Tegal, 28 November 2016

Penulis,

Ahmad Al Kaafi, M.Kom

Page 3: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL iii

DAFTAR ISI

Halaman

Lembar Judul ............................................................................................... i

Kata Pengantar ........................................................................................... ii

Daftar Isi ...................................................................................................... iii

BAB I MICROSOFT VISUAL BASIC 6.0 ........................................... 1

A. Mengenal Microsoft Visual Basic 6.0 .................................... 1

B. Lingkungan Kerja Visual Basic 6.0 ....................................... 2

BAB II DATABASE MYSQL ................................................................... 4

A. Mengenal Database Yang Digunakan .................................... 4

B. Membuat Database ................................................................. 4

BAB III MERANCANG CODING KONEKSI ........................................ 6

A. Mengaktifkan Komponen Yang Dibutuhkan ......................... 6

B. Membuat Coding Koneksi ..................................................... 6

BAB IV MERANCANG FORM MENU UTAMA DAN OGIN ............. 9

A. Membuat Form Menu Utama ................................................. 9

B. Membuat Form Login .......................................................... 12

BAB V MERANCANG FORM BARANG............................................. 16

A. Membuat Form Barang......................................................... 16

B. Listing Form Barang ............................................................ 12

BAB VI MERANCANG FORM USER .................................................. 23

A. Membuat Form User............................................................. 23

BAB VII MERANCANG STRUK PEMBAYARAN .............................. 24

A. Membuat Struk Pembayaran ................................................ 24

BAB VIII MERANCANG FORM TRANSAKSI .................................... 31

A. Membuat Form Transaksi..................................................... 31

B. Listing Form Transaksi ........................................................ 34

BAB IX MERANCANG FORM GANTI PASSWORD USER ............ 44

A. Membuat Form Ganti Password User .................................. 44

B. Listing Form Ganti Password User ...................................... 45

BAB X MEMBUAT LAPORAN PENJUALAN HARIAN,

MINGGUAN, BULANAN ......................................................... 46

A. Membuat Laporan Penjualan Harian .................................... 46

B. Membuat Laporan Penjualan Mingguan .............................. 49

C. Membuat Laporan Penjualan Bulanan ................................. 50

Page 4: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL iv

BAB XI MEMBUAT FORM LAPORAN DAN FILE.EXE ................. 52

A. Membuat Form Laporan ....................................................... 52

B. Membuat File.exe ................................................................. 55

DAFTAR REFERENSI ............................................................................. 56

Page 5: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 1

BAB I

MICROSOFT VISUAL BASIC 6.0

A. Mengenal Microsoft Visual Basic 6.0

Visual Basic adalah bahasa pemrogramam berbasis Microsoft Windows yang

merupakan Object Oriented Programming (OOP), yaitu pemrograman berorientasi

objek, Visual Basic menyediakan objek-objek yang sangat kuat, berguna dan

mudah.

Keistimewaan Visual Basic 6.0

1. Memiliki compiler andal yang dapat menghasilkan file executable yang

lebih cepat dan lebih efesien dari sebelumnya.

2. Memiliki beberapa tambahan sarana Wizard yang baru.

3. Tambahan kontrol-kontrol baru yang lebih canggih serta peningkatan

kaidah struktur bahasa Visual Basic.

4. Sarana akses data yang lebih cepat dan andal untuk membuat aplikasi

database yang berkemampuan tinggi.

5. Visual Basic 6.0 memiliki beberapa versi atau edisi yang disesuaikan

dengan kebutuhan pemakainya.

Page 6: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 2

Ada Beberapa Hal yang harus dipahami dalam mempelajari Visual Basic :

o Objek

Sering disebut entity adalah sesuatu yang bisa dibedakan dengan lainnya.

Pada dasarnya seluruh benda didunia ini bisa dikatakan sebagai objek,

contoh : mobil, komputer, radio, dll. Dalam Visual Basic objek-objek yang

dimaksud disebut kontrol. Jenis-jenis kontrol antara lain : Label, Textbox,

Combo Box, List Box, dan masih banyak lagi.

o Properti

Sering disebut atribut, adalah ciri-ciri yang menggambarkan suatu objek.

Misalnya disebut objek mobil jika mempunyai ban, spion, rem, dll.

o Event

Suatu kejadian yang menimpa objek. Bagaimana jika mobil didorong,

ditabrak, dicat, dsb.

o Metode

Kemampuan yang dimiliki oleh suatu objek. Contohnya jika mobil

berbelok, mundur, dan maju.

B. Lingkungan Kerja Visual Basic 6.0

Komponen Visual Basic

1. Project adalah sekumpulan modul/program aplikasi itu sendiri, projek

disimpan dalam file berextension .VBP biasanya berisi form-form.

2. Form adalah objek yang dipakai untuk tempat bekerja program aplikasi.

3. Toolbox adalah alat berisi icon-icon atau komponen untuk memasukan objek

tertentu kedalam form. Tambahan Komponen : Klik kanan pada toolbox >

komponen atau add tab.

4. Properties adalah untuk menentukan setting suatu objek, menentukan cara

kerja dari objek saat program dijalankan misal warna, huruf, dll.

Page 7: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 3

3

2

4

1

5

5. Kode Program adalah serangkaian tulisan perintah yang akan dilaksanakan

jika suatu objek dijalankan.

Page 8: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 4

BAB II

DATABASE MYSQL

A. Mengenal Database Yang Digunakan

Dalam pembuatan basis data pada MySQL software yang digunakan adalah :

1. apache2triad dll.

2. mysql-connector-odbc-5.1.10-win32 (untuk mengkoneksikan database

dengan software pemrograman).

Software pemrograman yang dipakai untuk pembelajaran ini adalah Visual

Basic 6.0. Berikut tampilan normalisasi bentuk ketiga (3):

B. Membuat Database

1. Nama databasenya: penjualan_amikbsitegal

2. Buatlah Tabel-tabel dibawah ini

a) Nama tabel: Barang

Page 9: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 5

Langsung isi datanya:

b) Nama tabel: Transaksi

c) Nama tabel: DetailTransaksi

d) Nama tabel: Login

Langsung isi datanya:

Page 10: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 6

BAB III

MERANCANG CODING KONEKSI

A. Mengaktifkan Komponen Yang Dibutuhkan

Sebelum kita memulai menuliskan coding/script koneksi, maka kita harus

mengaktifkan beberapa komponen yang dibutuhkan dengan cara sebagi

berikut:

1. Aktifkan Microsoft Visual Basic 6.0 – Pilih STANDART EXE

2. Tambahkan terlebih dahulu Reference ADO Library ke dalam project

anda:

3. Klik menu project – reference – arahkan scrollnya ke bawah cari

Microsoft ActiveX Data Objects 2.5 Library(bisa juga 2.6/2.7/2.8) –

ceklist – ok

B. Membuat Coding Koneksi

Setelah persiapan komponen telah diaktifkan selanjutnya kita akan membuat

coding untuk koneksi. Ketika membuka code, jika terdapat tampilan option

Page 11: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 7

explicit artinya setiap variabel yang dibuat harus di deklarasikan. Contoh:

dim k as string

Untuk menghilangkannya pilih menu tools – options – hilangkan

ceklist di require variable declaration kemudian exit, tidak usah disimpan.

Lalu buka kembali vb yang baru. Lihat tampilan code maka option explicit

sudah tidak ada.

Selanjutnya membuat coding koneksi di dalam modul.

Klik menu project – add module – open – Ketikan script berikut pada

modul untuk membuka koneksi database:

MODUL1

'MENDEFINISIKAN OBJEK

Public KON As New ADODB.Connection

Public rsbrg As ADODB.Recordset Public rsuser As ADODB.Recordset

Public rsdetail As ADODB.Recordset Public rstrans As ADODB.Recordset

Public rstemp As ADODB.Recordset

Page 12: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 8

Sub koneksi()

'MEMBUKA OBJEK

Set KON = New ADODB.Connection Set rsbrg = New ADODB.Recordset

Set rsuser = New ADODB.Recordset Set rsdetail = New ADODB.Recordset

Set rstrans = New ADODB.Recordset Set rstemp = New ADODB.Recordset

KON.ConnectionString = "driver={mysql odbc 5.1

driver};server=localhost;uid=root;pwd=password;db=penjualan;" KON.Open

End Sub

Page 13: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 9

BAB IV

MERANCANG FORM MENU UTAMA DAN OGIN

A. Membuat Form Menu Utama

Dalam pembuatan form menu utama kita harus pahami terlebih dahulu

seperti apa bentuk tampilan form menu utama yang akan kita buat.

Langkah pembuatan Menu Utama sebagai berikut:

1. Pilih Menu Tools

2. Pilih Menu

Editor

Keterangan:

CAPTION NAME

FILE MNFILE

BARANG MNUSER

DATA USER MNUSER

TRANSAKSI MNTRANSAKSI

LAPORAN MNLAPORAN

UTILITY MNUTILITY

GANTI PASSWORD MNGP

LOGOUT MNLOGOUT

Page 14: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 10

untuk objek statusbar, Tambahkan komponen ini:

StatusBar (name: STBAR)

Klikkanan – properties

Tab panel - Insert panel 2 x

Page 15: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 11

Listing Menu Utama (name=menu):

Private Sub MNBARANG_Click() menu.Hide barang.Show 'ke form barang End Sub

Private Sub MNGP_Click()

menu.Hide G_USER.Show 'ke form ganti password user End Sub

Private Sub MNLAPORAN_Click() menu.Hide Form3.Show 'ke form laporan End Sub

Private Sub mnlogout_Click() Me.Visible = False login.Show 'ke form login End Sub

Private Sub MNTRANSAKSI_Click() menu.Hide Form1.Show 'ke form transaksi End Sub

Private Sub MNUSER_Click() menu.Hide DATAUSER.Show 'ke form datauser End Sub

Page 16: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 12

B. Membuat Form Login

Untuk membuat form login langkah hampir sama seperti membuat form biasa.

Adapun rancangan form loginnya sebagi berikut:

AKF

Sehingga

Tampilan/Ou

tputnya

seperti ini

Page 17: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 13

Listing form login (name=login):

Dim a, b As Byte

Private Sub CMDBERSIH_Click()

txtuser = "" txtpassword = "" txtuser.Enabled = True txtpassword.Enabled

= False txtuser.SetFocus

End Sub

Private Sub CMDTUTUP_Click()

End

End Sub

Private Sub Form_Activate()

txtuser.Enabled = True txtpassword.Enabled = False txtuser.SetFocus

txtuser.MaxLength = 3 txtpassword.PasswordChar = "*" txtlevel.Visible =

False

End Sub

Private Sub txtpassword_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then

Call koneksi 'petik,kutip harus rapat

rsuser.Open "Select * from login where Password='" & txtpassword & "'",

KON If rsuser.EOF Then

b = b + 1

If 1 - b = 0 Then

MsgBox "Kesempatan ke " & b & " Salah" txtpassword = "" 'kutipnya

rapat jgn ada spasi txtpassword.SetFocus

ElseIf 2 - b = 0 Then

MsgBox "Kesempatan ke " & b & " Salah" txtpassword = ""

Page 18: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 14

txtpassword.SetFocus

ElseIf 3 - b = 0 Then

MsgBox "Kesempatan ke " & b & " Salah" Unload Me

End If

Else

txtlevel = rsuser!akseslevel txtlevel.Enabled = False Me.Visible = False

menu.Show

menu.WindowState = 2 'supaya tampil max menu.stbar.Panels(1) =

login.txtuser

If txtlevel = 1 Then menu.MNUSER.Enabled = True menu.stbar.Panels(2)

= "ADMIN"

ElseIf txtlevel = 2 Then menu.MNUSER.Enabled = False

menu.stbar.Panels(2) = "USER"

End If

End If

End If

End Sub

Private Sub txtuser_KeyPress(KeyAscii As Integer) KeyAscii =

Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then

Call koneksi

rsuser.Open "Select kodeuser from login where kodeuser ='" & txtuser &

"'", KON If rsuser.EOF Then

a = a + 1

If 1 - a = 0 Then 'chr(13) = kalimat setelahnya otomatis ke bawah

MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &

txtuser & "' tidak dikenal"

txtuser = "" 'KUTIP HARUS RAPAT

txtuser.SetFocus

ElseIf 2 - a = 0 Then

MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &

txtuser & "' tidak dikenal"

Page 19: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 15

txtuser = "" txtuser.SetFocus

ElseIf 3 - a = 0 Then

MsgBox "Kesempatan ke " & a & " Salah" & Chr(13) & _ "Nama '" &

txtuser & "' tidak dikenal" & Chr(13) & _ "Kesempatan habis, Ulangi dari

awal"

Unload Me

End If

Else

txtuser.Enabled = False txtpassword.Enabled = True

txtpassword.SetFocus

End If

End If

End Sub

Page 20: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 16

BAB V

MERANCANG FORM BARANG

A. Membuat Form Barang

Form menu barang merupakan salah satu form master dalam studi kasus

ini. Form barang digunakan untuk menambahkan, menghapus dan mengubah

data barang yang kita miliki.

Langkah pembuatan Menu Barang sebagai berikut:

1. Pilih Add Form

2. Lalu rancang form barang seperti berikut:

Keterangan Name pada properties:

Cmdinput : INPUT

Cmdtutup : TUTUP

Tkode : KD BARANG

Tnama : NAMA BARANG

Cmbsat : SATUAN

Tstok : STOK

Tharga : HARGA

Grid : MSHFLEXGRID

Page 21: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 17

Outputnya setelah di tekan INPUT dan mengisi data baru:

Adapun logika jalannya program (from barang):

1. Pertama run semua textbox dan combo nonaktif, data barang tampil di

grid.

INPUT DAN TUTUP aktif.

2. Tekan INPUT semua textbox, combo aktif. INPUT berubah jadi

SIMPAN, TUTUP berubah jadi BATAL. Kursor muncul di kd barang.

3. Ketikan kd barang. Jika sudah ada tampil nama,satuan,stok,harga. Kd

barang nonaktif. SIMPAN berubah jadi UPDATE. Lakukan perubahan

data barang untuk menyimpan tekan UPDATE, tekan BATAL untuk

membatalkan perubahan data barang kembali ke kondisi no. 1

4. Ketikan kd barang. Jika tidak ada tampil pesan kode barang tidak ada.

Kursor pindah ke nama barang. Isikan data barang baru, tekan SIMPAN

untuk menyimpan, tekan BATAL untuk membatalkan dan kondisi

kembali ke no.1

5. Tekan TUTUP keluar dari program kembali ke menu utama.

Page 22: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 18

B. Listing Form Barang

Sub isicsat()

csat.AddItem "unit"

csat.AddItem "pcs"

End Sub

Sub NONAKTIF()

Dim kontrol As Control

For Each kontrol In Me.Controls

If TypeOf kontrol Is TextBox Then kontrol.Enabled = False

Next

csat.Enabled = False

End Sub

Sub aktif()

Dim kontrol As Control

For Each kontrol In Me.Controls

If TypeOf kontrol Is TextBox Then kontrol.Enabled = True

Next

csat.Enabled = True

End Sub

Sub bersih()

For Each kontrol In Me.Controls

If TypeOf kontrol Is TextBox Then kontrol.Text = "" Next

csat = ""

End Sub

Page 23: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 19

Sub tampilgrid()

'buka tabel barang dulu

Call koneksi

rsbrg.Open "select * from barang", KON

'atur grid utk tabel brg

Set grid.DataSource = rsbrg grid.ColWidth(0) = 0 grid.ColWidth(1) = 1000

grid.ColWidth(2) = 1500 grid.ColWidth(3) = 500 grid.ColWidth(4) = 500

grid.ColWidth(5) = 1000

End Sub

Sub simpanbrg()

simpan = "insert into barang values('" & tkode & "','" & tnama & "','" &

csat & "','" &

tstok & "','" & tharga & "')" ‘ngetiknya kesamping

KON.Execute simpan

End Sub

Sub updatebrg()

Update = "update barang set namabarang='" & tnama & "',satuan='" & csat

& "',stok='" & tstok & "',hargasatuan='" & tharga & "' where kodebarang='"

& tkode & "'" KON.Execute Update

End Sub

Private Sub bin_Click()

If bin.Caption = "INPUT" Then bin.Caption = "SIMPAN" bt.Caption =

"BATAL"

Call aktif tkode.SetFocus

ElseIf bin.Caption = "SIMPAN" Then

Call simpanbrg Call tampilgrid bin.Caption = "INPUT" bt.Caption =

"TUTUP" Call bersih

Call NONAKTIF

Page 24: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 20

ElseIf bin.Caption = "UPDATE" Then

Call updatebrg Call tampilgrid Call bersih

Call NONAKTIF

bin.Caption = "INPUT" bt.Caption = "TUTUP

End If

End Sub

Private Sub bt_Click()

If bt.Caption = "TUTUP" Then

Unload Me menu.Show

ElseIf bt.Caption = "BATAL" Then

Call bersih

Call NONAKTIF bt.Caption = "TUTUP" bin.Caption = "INPUT" End If

End Sub

Private Sub Form_Activate() Call bersih

Call NONAKTIF Call isicsat

Call tampilgrid

End Sub

Private Sub Form_Load()

Call koneksi

End Sub

Private Sub grid_KeyPress(KeyAscii As Integer)

'agar bisa hapus per record didalam grid.

'caranya klik kode di grid yang akan dihapus tekan backspace a = grid.Row

kode = grid.TextMatrix(a, 1)

Call koneksi

rsbrg.Open "select * from barang ", KON

With rsbrg

If KeyAscii = 8 Then

Page 25: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 21

If Not (.BOF And .EOF) Then

h = MsgBox("Bener mau dihapus ?", vbQuestion + vbYesNo, "--TaNYa--

") If h = vbYes Then

hapus = "delete from barang where kodebarang='" & kode & "'"

KON.Execute (hapus)

End If

End If

End If

End With

Call tampilgrid grid.Refresh

End Sub

Private Sub tharga_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

bin.SetFocus

End If

End Sub

Private Sub tkode_KeyPress(KeyAscii As Integer)

Call koneksi

KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then

rsbrg.Open "SELECT * FROM barang WHERE Kodebarang='" & tkode &

"'", KON With rsbrg

If .BOF And .EOF Then

psn = MsgBox("KD " + tkode + " TDK ADA", vbInformation, "KONF")

tnama = "" tsat = "" tstok = "" tharga = ""

tnama.SetFocus

Else

tkode.Enabled = False

tnama = .Fields("Namabarang")

csat = .Fields("SATUAN")

tstok = .Fields("stok")

Page 26: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 22

tharga = .Fields("hargaSATUAN")

bin.Caption = "UPDATE"

End If

End With

End If

End Sub

Private Sub tnama_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then csat.SetFocus

End If

End Sub

Private Sub tstok_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

tharga.SetFocus

End If

End Sub

Page 27: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 23

BAB VI

MERANCANG FORM USER

A. Membuat Form User

Form menu barang merupakan salah satu form master dalam studi kasus

ini. Form user ini digunakan untuk menambahkan, menghapus dan mengubah

data user yang kita miliki.

Langkah pembuatan Menu Barang sebagai berikut:

1. Pilih Add Form

2. Lalu rancang form user sehingga tampilannya seperti berikut:

Keterangan:

Cara pengerjaan dan listing form user hampir sama dengan form

barang. Silahkan Dikerjakan

Page 28: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 24

BAB VII

MERANCANG STRUK PEMBAYARAN

A. Membuat Struk Pembayaran

Struk pembayaran ini merupakan output yang dihasilkan dari form

transaksi. Untuk pembuatnya kita perlu menggunakan crystal report, penulis

sebelumnya menginstal terlebih dahulu, yang penulis gunakan crystal report

versi 8.5. Buka Crystal Report melalui langkah-langkah dibawah ini:

1. Klik Start

2. Pilih All Programs

3. Klik Crystal Reports

4. Pilih Using as a blank report

5. Lalu Klik OK

Page 29: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 25

Maka akan tampil Data Explorer seperti gambar dibawah ini

6. Pilih ODBC – Create New Data Source – Add

7.

Pilih option user atau system

Page 30: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 26

8.

9.

10.

Sesuaikan dgn nama

database masing-masing

Page 31: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 27

11. Double klik/ Add semua tabel yang ada di folder tutorial lalu close

12.

Bila belum ada garis relasinya cek tabel-tabel di databasenya, biasanya ada

yg beda type/sizenya. Misal kodebarang yg di barang beda dgn di

detailtransaksi.

Page 32: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 28

Tanda panah di mistar berguna untuk memudahkan pengaturan

penempatan objek field,garis dll. Caranya cukup di klik di mistar saja

Menampilkan field explorer: MENU INSERT – FIELD OBJECT

Field Tabel

Tgljual → transaksi

Kodeuser → transaksi

Kodebarang → barang

Namabarang → barang

hargasatuan → barang

jumlahbeli → detailtransaksi

subtotal → detailtransaksi

Page 33: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 29

No transaksi :

Menu insert –

group

Pilih

notransaksi dari

tabel transaksi

Grand total:

Menu Insert – Grandtotal

Page 34: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 30

Pindahkan group#1 Name ke posisi page header atur seperti di bawah ini.

Untuk garis ada di menu insert – line. Bantu dengan panah di mistar untuk

penempatan.

Kendala yang mungkin terjadi ketika crystal report di

preview/run:

Myodbc error.... solusinya:

1. Buka regedit ( Start – Run – Regedit – Enter )

2. Cari : HKEY_CURRENT_USER\Software\Seagate

Software\Crystal

Reports\DatabaseOptions\ODBC

3. Buat key baru : Klik kanan pada ODBC, pilih New, Key

4. Beri Nama : outerjoin

5. Di Dalam Key OuterJoin, buat New String Value

6. Beri nama : SQL2outerjoin

7. Klik kanan pada String Value SQL2outerjoin, pilih Modify

8. Isikan : libmyodbc3 (untuk myodbc versi 3) atau

libmyodbc5 (untuk myodbc versi 5)

Setelah di PRIVIEW kosong tidak ada isi datanya.

Solusinya:

Cek tabel-tabelnya di database tipedata, size, isi data mungkin

tidak sama. Contoh; Antara kode barang di tabel barang

dengan tabel detail mungkin tidak sama type, size atau isi

datanya di tabel yang satu ada di tabel lain yang berkaitan

tidak ada.

Page 35: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 31

BAB VIII

MERANCANG FORM TRANSAKSI

A. Membuat Form Transaksi

Dalam membuat form transaksi kita membutuhkan beberapa komponen

yang di form transaksi antara lain: INPUT, SIMPAN, BATAL, TUTUP, LIST

BRG objeknya command button, Timer, textbox, label, listbox, gridnya

mengginakan MSHFLEXGRID.

Kemudian rancanglah form transaki penjualan seperti berikut:

Page 36: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 32

Outputnya seperti ini:

Keterangan Name Pada Properties:

List1 : LIST1

Kode barang :TXTKDBRG

Nama barang : TXTNMBRG

Satuan : TXTSATUAN

Harga : TXTHARGA

Jumlah Jual : TXTJMHJUAL

Subtotal : TXTSUBTOTAL

GRID

Uang Bayar : TXTBAYAR

Kembalian : TXTKEMBALIAN

Input : cmdinput

Simpan : cmdsimpan

Batal : cmdbatal

Tutup : Cmdtutup

ListBrg : Cmdlistbrg

Page 37: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 33

Logika jalannya program:

1. Pertama run tombol aktif: INPUT sama TUTUP selain itu nonaktif, tgl

otomatis muncul.

2. Tekan INPUT notrans muncul otomatis dan tombol SIMPAN, BATAL

aktif. Sedangkan INPUT, TUTUP nonaktif.

3. Kode barang bisa langsung di input di txtkdbrg lalu enter nama barang,

satuan harga tampil

4. Atau di klik tombol list brg, tampil list barangnya klik salah satu barang

maka kode barang, nama barang,satuan, harga tampil.

5. Kursor langsung muncul di jumlah jual, input jumlah jual lalu enter

muncul kotak pesan.

6. Pilih yes ulangi no. 3 atau 4, pilih no input uang bayar.

7. Jika uang bayar kurang muncul pesan

8. Selain itu muncul kembalian langsung TEKAN TOMBOL SIMPAN atau

BATAL.

9. Jika SIMPAN tampil struk pembayaran. BATAL kembali semula.

10. Di dalam grid bisa juga membatalkan salah satu barang yang di beli,

caranya: klik di dalam grid, pake panah atas bawah utk memilih

barangnya lalu tekan backspace.

11. TEKAN TUTUP keluar dari program transaksi

Page 38: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 34

B. Listing Form Transaksi

Dim ambilstok As Boolean

Sub cetak()

Call koneksi

cr.SelectionFormula = "{TRANSAKSi.notransaksi}='" & TXTNOTRANS

& "'" cr.ReportFileName = App.Path & "\cetak.rpt"

cr.WindowState = crptMaximized cr.RetrieveDataFiles

cr.Action = 1

End Sub

Sub isilist()

'masukin data barang ke list

rsbrg.Open "select * from barang", KON List1.Clear

Do While Not rsbrg.EOF

List1.AddItem rsbrg!kodebarang & Space(3) & rsbrg!namabarang &

Space(3) &

rsbrg!stok rsbrg.MoveNext

Loop

End Sub

Sub SEMULA()

Call bersih

Call NONAKTIF CMDSIMPAN.Enabled = False CMDINPUT.Enabled =

True CMDTUTUP.Enabled = True CMDBATAL.Enabled = False

cmdlistbrg.Enabled = False

List1.Visible = False

End Sub

Sub NONAKTIF()

Dim kontrol As Control

For Each kontrol In Me.Controls

Page 39: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 35

If TypeOf kontrol Is TextBox Then kontrol.Enabled = False

Next

List1.Enabled = False

End Sub

Sub aktif()

Dim kontrol As Control

For Each kontrol In Me.Controls

If TypeOf kontrol Is TextBox Then kontrol.Enabled = True

Next

List1.Enabled = True TXTTGL.Enabled = False TXTUSER.Enabled =

False

End Sub

Sub bersih()

Dim kontrol As Control LBAYAR.Caption = "Bayar" Call hapusTEMP

For Each kontrol In Me.Controls

If TypeOf kontrol Is TextBox Then kontrol.Text = "" Next

TXTUSER = menu.stbar.Panels(1).Text

End Sub

Sub tampilgrid()

Call koneksi

'buka tabel barang

rstemp.Open "select * from TEMP", KON

'atur grid utk tabel TEMP

Set grid.DataSource = rstemp

grid.ColWidth(0) = 50

grid.ColWidth(1) = 1000

grid.ColWidth(2) = 1300

Page 40: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 36

grid.ColWidth(3) = 1300

grid.ColWidth(4) = 1300

grid.ColWidth(5) = 1000

grid.ColWidth(6) = 1000

grid.TextMatrix(0, 1) = "Kode Barang"

grid.TextMatrix(0, 2) = "Nama Barang" grid.TextMatrix(0, 3) = "Satuan"

grid.TextMatrix(0, 4) = "HARGA " grid.TextMatrix(0, 5) = "Jumlah Jual"

grid.TextMatrix(0, 6) = "Subtotal"

End Sub

Sub bikinTEMP()

' bikin tabel TEMP

bikin = "create table TEMP(kodebarang varchar(7),nmbrg varchar(25),sat

varchar(10),hrg double,qty int, subttl double)"

KON.Execute (bikin)

tampilgrid

End Sub

Sub hapusTEMP()

hapus = "drop table if exists TEMP" KON.Execute (hapus)

End Sub

Sub simpanTEMP()

simpan = "insert into TEMP() values('" & TXTKDBRG & "','" &

TXTNMBRG & "','" & TXTSATUAN & "','" & TXTHARGA & "','" &

TXTJMHJUAL & "','" & TXTSUBTOTAL & "')"

KON.Execute (simpan) End Sub

Page 41: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 37

Sub nomor()

TXTTGL = Format(Date, "DD/MM/YYYY") Dim cari As String

'buka tabel transaksi

Call koneksi

rstrans.Open "SELECT * FROM TRANSAKSI ORDER BY

NOTRANSAKSI DESC LIMIT 1;", KON

With rstrans

If .EOF Then

TXTNOTRANS = Format(Date, "yymm") + "001"

ElseIf Left(rstrans!notransaksi, 4) <> Format(Date, "yymm") Then

TXTNOTRANS = Format(Date, "yymm") + "001" Else

NO = .Fields("notransaksi") + 1

TXTNOTRANS = Format(Date, "yymm") + Right("000" + NO, 3) End If

End With

End Sub

Sub simpantransaksijual()

TXTTGL = Format(Date, "YYYY/MM/DD")

simpan = "INSERT INTO transaksi() VALUES('" & TXTNOTRANS &

"','" & TXTTGL & "','" & Val(LBAYAR) & "','" & TXTUSER & "')"

KON.Execute (simpan)

End Sub

Sub simpandetailjual()

For a = 1 To (grid.Rows - 1)

fak = TXTNOTRANS

kdbrg = grid.TextMatrix(a, 1) 'kdbrg berada di kolom 1 jmhjual =

grid.TextMatrix(a, 5) 'jmhjual berada di kolom 5 subttl =

grid.TextMatrix(a, 6) 'subtotal berada di kolom 6

'variabel fak,kdbrg,jmhjual,subttl utk data masukan ke tabel detailjual

Page 42: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 38

simpan = "insert into detailTRANSAKSI()values('" & fak & "','" &

Val(jmhjual) & "','" & Val(subttl) & "','" & kdbrg & "')"

KON.Execute (simpan) Next a

End Sub

Sub ubahstok()

Call koneksi

If ambilstok = True Then

kurang = "update barang set stok=stok - '" & Val(TXTJMHJUAL) & "'

where kodebarang='" & TXTKDBRG & "'"

Set rsbrg = KON.Execute(kurang) ElseIf ambilstok = False Then

tambah = "update barang set stok=stok + '" & Val(TXTJMHJUAL) & "'

where kodebarang='" & TXTKDBRG & "'"

Set rsbrg = KON.Execute(tambah) End If

End Sub

Private Sub cmdlistbrg_Click()

List1.Visible = True

End Sub

Private Sub CMDBATAL_Click()

Call SEMULA

Call hapusTEMP

End Sub

Private Sub CMDINPUT_Click()

Call aktif TXTNOTRANS.Enabled = False

CMDINPUT.Enabled = False

CMDTUTUP.Enabled = False

CMDSIMPAN.Enabled = True

CMDBATAL.Enabled = True

Page 43: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 39

cmdlistbrg.Enabled = True

Call hapusTEMP

Call bikinTEMP

Call nomor

TXTKDBRG.SetFocus

End Sub

Private Sub CMDSIMPAN_Click()

Call simpantransaksijual

Call simpandetailjual

x = MsgBox("cetak?", vbYesNo, "cetak") If x = vbYes Then

Call cetak

y = "delete from temp" KON.Execute (y)

Call tampilgrid

Call SEMULA Else

Call SEMULA

End If

End Sub

Private Sub CMDTUTUP_Click()

Call hapusTEMP

Unload Me

menu.Show

End Sub

Private Sub Form_Activate()

TXTNOTRANS.Enabled = False

Call SEMULA

TXTUSER = menu.stbar.Panels(1).Text

End Sub

Page 44: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 40

Private Sub Form_Load()

Call koneksi

ambilstok = True 'agar memilih mengurangi stok,lihat sub ubahstok

Call isilist

End Sub

Private Sub grid_KeyPress(KeyAscii As Integer)

'agar bisa hapus per record didalam grid. caranya klik di grid lalu pake

panah

'atas bawah utk pilih record yg akan dihapus lalu tekan backspace

a = grid.Row

kodegrid = grid.TextMatrix(a, 1)

Call koneksi

rstemp.Open "select * from TEMP", KON With rstemp

If KeyAscii = 8 Then

If Not (.BOF And .EOF) Then

h = MsgBox("Bener mau dihapus ?", vbQuestion + vbYesNo, "--TaNYa--

") If h = vbYes Then

hapus = "delete from TEMP where kodebarang='" & kodegrid & "'" Set

rstemp = KON.Execute(hapus)

ambilstok = False

Call ubahstok

Call isilist

Me.List1.Refresh grid.Refresh TXTKDBRG.Text = "" TXTNMBRG.Text

= "" TXTSATUAN.Text = "" TXTHARGA.Text = ""

TXTJMHJUAL.Text = "" TXTSUBTOTAL.Text = ""

ttl = Val(LBAYAR.Caption) x = Val(grid.TextMatrix(a, 6)) ttl = ttl - x

LBAYAR.Caption = ttl

End If

End If

End If

End With

Page 45: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 41

Call tampilgrid grid.Refresh End Sub

Private Sub list1_Click()

brg = "select * from barang where kodebarang='" & Left(List1, 7) & "'"

Set rsbrg = KON.Execute(brg)

TXTKDBRG = rsbrg!kodebarang

TXTNMBRG = rsbrg!namabarang

TXTSATUAN = rsbrg!SATUAN

TXTHARGA = rsbrg!HARGASATUAN

TXTJMHJUAL.SetFocus

List1.Visible = False

End Sub

Private Sub Timer1_Timer()

TXTTGL = Format(Date, "DD/MM/YYYY")

End Sub

Private Sub TXTBAYAR_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Val(LBAYAR) > Val(TXTBAYAR) Then MsgBox "uang bayar

kurang" TXTBAYAR.SetFocus TXTKEMBALIAN.Enabled = False

Else

TXTKEMBALIAN.Enabled = True

TXTKEMBALIAN = Val(TXTBAYAR) - Val(LBAYAR)

CMDSIMPAN.SetFocus

End If

End If

End Sub

Private Sub TXTJMHJUAL_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Call koneksi

Page 46: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 42

rsbrg.Open "select * from barang where kodebarang='" & TXTKDBRG &

"'", KON If Val(TXTJMHJUAL) > rsbrg!stok Then

MsgBox "stok kurang" TXTJMHJUAL.SetFocus Exit Sub

Else

TXTSUBTOTAL = Val(TXTJMHJUAL) * Val(TXTHARGA)

ambilstok = True

Call ubahstok

Call simpanTEMP Call tampilgrid

Call isilist ttl = 0

For a = 1 To (grid.Rows - 1)

x = Val(grid.TextMatrix(a, 6))

ttl = ttl + x

Next a

LBAYAR.Caption = ttl

t = MsgBox("Mau tambah pembelian lagi?", vbQuestion + vbYesNo,

"Konfirmasi") If t = vbYes Then

TXTKDBRG = ""

TXTKDBRG.SetFocus

TXTNMBRG = ""

TXTSATUAN = "" TXTHARGA = "" TXTJMHJUAL = ""

TXTSUBTOTAL = "" Else

Me.Refresh grid.Refresh TXTBAYAR.SetFocus

End If

End If

End If

End Sub

Private Sub TXTKDBRG_KeyPress(KeyAscii As Integer)

Call koneksi

KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then

rsbrg.Open "SELECT * FROM barang WHERE Kodebarang='" &

TXTKDBRG & "'", KON

Page 47: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 43

With rsbrg

If .BOF And .EOF Then

psn = MsgBox("KD" + TXTKDBRG + "TDK ADA", vbInformation,

"KONF") TXTKDBRG = ""

TXTKDBRG.SetFocus

Else

TXTNMBRG = .Fields("Namabarang")

TXTSATUAN = .Fields("SATUAN")

TXTHARGA = .Fields("hargaSATUAN")

TXTJMHJUAL.Enabled = True

TXTJMHJUAL.SetFocus

End If

End With

End If

End Sub

Page 48: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 44

BAB IX

MERANCANG FORM GANTI PASSWORD USER

A. Membuat Form Ganti Password User

Rancanglah form ganti password user seperti berikut:

Outputnya

Name:

Tkduser : kode user

Tlama : passwd lama

Tbaru : passwd baru

T konf : konfirmasi passwd

Btutup : TUTUP

Page 49: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 45

B. Listing Form Ganti Password User

Private Sub BTUTUP_Click()

Unload Me

menu.Show

End Sub

Private Sub Form_Activate()

For Each k In Me.Controls

If TypeOf k Is TextBox Then k.Enabled = False

End If

Next

TKDUSER = menu.stbar.Panels(1).Text

TLAMA.Enabled = True

TLAMA.SetFocus TLAMA.PasswordChar = " * " TBARU.PasswordChar

= " * " TKONF.PasswordChar = " * "

End Sub

Private Sub TBARU_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

TKONF.Enabled = True

TKONF.SetFocus

End If

End Sub

Private Sub TKONF_KeyPress(KeyAscii As Integer)

Call koneksi

If KeyAscii = 13 Then

If TKONF <> TBARU Then

MsgBox "konfirmasi dan password baru berbeda" Else

rsuser.Open "update LOGIN set password=' " & TKONF & " ' WHERE

kodeuser=' " & TKDUSER & " ' ", KON

MsgBox "password telah diupdate"

Page 50: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 46

Form_Activate TLAMA = " "

End If

End If

End Sub

Private Sub TLAMA_KeyPress(KeyAscii As Integer)

Call koneksi

If KeyAscii = 13 Then

rsuser.Open "SELECT * FROM LOGIN WHERE password=' " &

TLAMA & " ' ", KON If rsuser.EOF Then

MsgBox "password " + TLAMA + " tidak ada" TLAMA.SetFocus

Else

TBARU.Enabled = True

TBARU.SetFocus

End If

End If

End Sub

Page 51: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 47

BAB X

MEMBUAT LAPORAN PENJUALAN HARIAN, MINGGUAN,

BULANAN

A. Membuat Laporan Penjualan Harian

Di pertemuan 7 pembuatan struk pembayaran, sudah membuat koneksi odbc

dengan nama tutorial. Berikutnya akan kita gunakan kembali ODBC: tutorial.

Buka crystal report, pilih as a blank report, di data explorer klik Add/double

klik tabel barang, detailtransaksi, login, transaksi.

Page 52: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 48

Buat design laporan harian seperti di bawah ini hampir sama dengan struk

pembayaran (save as saja dari cetak.rpt):

Field Tabel

Tgljual → transaksi

Kodeuser → transaksi

Kodebarang → barang

Namabarang → barang

Hargasatuan → barang

jumlahbeli → detailtransaksi

subtotal → detailtransaksi

No. Transaksi:

Menu insert – group

Pilih notransaksi dari tabel

transaksi

Grand total:

Menu Insert – Grandtotal

Pilih subtotal dari

detailtransaksi

Page 53: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 49

Bedanya dengan struk pembayaran di posisi group #1Name notransaksi

B. Membuat Laporan Penjualan Mingguan

Untuk mingguan, juga tinggal di save as dari laporan harian, lalu tambahkan

tanggal jual dari tabel transaksi. Sedangkan untuk tanggal sekarang gunakan

formula fields – new – isikan tanggal di formula name – di formula editor ketikan

CurrentDate atau double klik seperti gambar di bawah ini – lalu simpan.

L alu drag tanggal yang sudah jadi ke

page header

Page 54: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 50

C. Membuat Laporan Penjualan Bulanan

Untuk laporan bulanan tinggal di save as dari laporan MINGGUAN, lalu

tambahkan @BULAN dan @tanggal.

Tempatnya sama di formula editor, menggunakan 2 fungsi Month(untuk

menghasilkan bulan) dan monthName(untuk output bulannya nama).

Page 55: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 51

Page 56: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 52

Crystal

Report

BAB XI

MEMBUAT FORM LAPORAN DAN FILE.EXE

A. Membuat Form Laporan

Rancanglah Form laporannya seperti berikut:

Listingnya:

Private Sub Bkeluar_Click()

Unload Me menu.Show

End Sub

Private Sub CBULAN_KeyPress(KeyAscii As Integer)

If KeyAscii = 27 Then Unload Me

End Sub

'LAP HARIAN

Private Sub CHARIAN_Click()

'panggil laporan yang tanggalnya = charian

Keterangan Name pada Properties

: Combo1 : Charian

Combo2 : Cmingguawal

Combo3 : Cmingguakhir

Combo4 : Cbulan

Combo5 : Ctahun

Crystal Report : CR

Page 57: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 53

CR.SelectionFormula = "Totext ({ TRANSAKSI.TglJUAL})=' " & CHARIAN

& " ' "

CR.ReportFileName = App.Path & "\Lap_HARIAN.rpt" CR.WindowState =

CRptMaximized CR.RetrieveDataFiles

CR.Action = 1

End Sub

Private Sub CHARIAN_KeyPress(KeyAscii As Integer)

If CHARIAN = " " Or KeyAscii = 27 Then Unload Me

End Sub

'LAP MINGGUAN

Private Sub CMINGGUAKHIR_Click()

'cegah data kosong di CMINGGUAWAL dan cMINGGUAKHIR If

CMINGGUAWAL = " " Then

MsgBox "Tanggal awal kosong", , "Informasi" CMINGGUAWAL.SetFocus

Exit Sub

End If

'panggil laporan yang tanggal awalnya=CMINGGUAWAL dan tanggal

akhirnya = CMINGGUAKHIR

CR.SelectionFormula = "{TRANSAKSI.TglJUAL} in date (" &

CMINGGUAWAL.Text & ") to date (" & CMINGGUAKHIR.Text & ")"

CR.ReportFileName = App.Path & "\Lap_Mingguan.rpt" CR.WindowState =

CRptMaximized CR.RetrieveDataFiles

CR.Action = 1

End Sub

Private Sub CMINGGUAWAL_KeyPress(KeyAscii As Integer)

If KeyAscii = 27 Then Unload Me

End Sub

Page 58: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 54

'LAP BULANAN

Private Sub CTAHUN_Click()

'buka database

Call koneksi

'cari data yang tanggal dan bulannya dipilih di CBULAN dan CTAHUN

rstrans.Open "select * from TRANSAKSI where month(TGLJUAL)=' " &

Val(CBULAN) & " ' and year(TGLJUAL)=' " & (CTAHUN) & " ' ", KON

'jika tidak cocok, munculkan pesan

If rstrans.EOF Then

MsgBox "Data tidak ditemukan" Exit Sub

CBULAN.SetFocus

End If

'jika ditemukan panggil file laporan yang

'datanya bulannya=cBULAN dan tahunnya= CTAHUN

CR.SelectionFormula = "Month({TRANSAKSI.TGLJUAL})=" &

Val(CBULAN.Text) & " and

Year({TRANSAKSI.TGLJUAL})=" & Val(CTAHUN.Text)

CR.ReportFileName = App.Path & "\Lap_Bulanan.rpt" CR.WindowState =

CRptMaximized CR.RetrieveDataFiles

CR.Action = 1

End Sub

Private Sub Form_Load()

'buka database

Call koneksi

Page 59: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 55

'cari tanggal pembelian

rstrans.Open "Select Distinct TGLJUAL From transaksi order By 1", KON

rstrans.Requery

'tampilkan tanggal dalam combo

Do Until rstrans.EOF CHARIAN.AddItem rstrans!Tgljual

CMINGGUAWAL.AddItem Format(rstrans!Tgljual, "YYYY ,MM, DD")

CMINGGUAKHIR.AddItem Format(rstrans!Tgljual, "YYYY ,MM, DD")

rstrans.MoveNext

Loop

'buatlah looping untuk bulan dari 1-12

'dan tahun mulai tahun 2010 s/d 2020

For i = 1 To 12

CBULAN.AddItem i

Next i

For i = 10 To 20

CTAHUN.AddItem 2000 + i

Next i

End Sub

B. Membuat File.Exe

Klik menu file – pilih make P.TUTORIAL.exe – kasih nama file : proj-tutorial

- ok.

Page 60: Modul Praktikum - kafie.webnode.com · praktikum ini tidak akan lancar. Penulis menyadari bahwa penulisan modul praktikum ini masih jauh dari sempurna, untuk itu penulis mohon kritik

AMIK BSI TEGAL 56

DAFTAR REFERENSI

Fathansyah. 2015. Basis Data Revisi Kedua. Bandung. Informatika Bandung.

Fauzi,M. Miftakul Amin. 2012. Pemrograman Database Visual Basic 6 dan SQL

Server. Yogyakarta: Andi.

Kadir, Abdul. 2008. Tuntunan Praktis Belajar Database Menggunakan MySQL.

Yogyakarta: Andi

Ladjamudin, Al Bahra bin. 2012. Analisis dan Desain Sistem Informasi.

Yogyakarta:Graha Ilmu.