• Tidak ada hasil yang ditemukan

Membuat Form Transaksi

MICROSOFT.NET FRAMEWORK

LATIHAN 6.1 Database Mahasiswa

7.9 Membuat Form Transaksi

Call Koneksi() Call Tampilkan() End Sub

7. Masukkan kode berikut pada objek DataGridView prosedur CellClick : Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As

System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick Dim i As Integer

i = Me.DGV.CurrentRow.Index With DGV.Rows.Item(i)

Penerimaan.TKode.Text = .Cells(0).Value Penerimaan.TNama.Text = .Cells(1).Value Penerimaan.TStok.Text = .Cells(2).Value End With

Penerimaan.Show() Me.Close()

Penerimaan.TTerima.Focus() End Sub

End Class

8. Hasil dari kode program diatas, dapat dilihat pada gambar 7.12 berikut ini :

Gambar 7.12Hasil Form Penerimaan Barang

Gambar 7.13 Form Transaksi Penjualan Barang 2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :

Tabel 7.12Pengaturan Properties Form Transaksi Barang

Object Properties Value

Form1 Text Form : Transaksi

Form1 Name Transaksi

Form1 Start Position CenterScreen

Label1 Text Faktur

Label2 Text Tanggal

Label3 Text Jam

Label4 Text Kode

Label5 Text Nama

Label6 Text Alamat

Label7 Text Telepon

Label8 Text Jenis Kelamin

Label9 Text Email

Label10 Text Total

Label11 Text Item

Label12 Text Dibayar

Label13 Text Kembali

TextBoxt1 - -

TextBoxt2 - -

TextBoxt3 - -

TextBoxt5 - -

TextBoxt6 Name Faktur

TextBoxt7 Name Tanggal

TextBoxt8 Name Jam

TextBoxt9 Name Item

TextBoxt10 Name Dibayar

TextBoxt11 Name Kembali

Combobox2 - -

Botton1 Text Daftar Barang

Botton2 Text …

Botton3 Name BTNSimpan

Botton3 Text Simpan

Botton4 Name BTNBatal

Botton4 Text Batal

Botton5 Name BTNTutup

Botton6 Text Tutup

Timer1 Enabled True

1. Masukkan kode berikut diatas Public Class Pemakai bertujuan untuk memanggil driver dengan koneksi oleDB

Imports System.Data.OleDb

2. Dengan membuat prosedur BersihkanText yang berfungsi untuk menghilangkan nilai pada textbox, Masukkan kode berikut ini :

Sub BersihkanText() Total.Text = ""

Dibayar.Text = ""

Kembali.Text = ""

Item.Text = ""

End Sub

3. Pada prosedur BuatKolomBaru berfungsi untuk membuat kolom dengan kode sebagai berikut :

Sub BuatKolomBaru()

DGV.Columns.Add("Kode", "Kode")

DGV.Columns.Add("Nama", "Nama Barang") DGV.Columns.Add("Harga", "Harga") DGV.Columns.Add("Jumlah", "Jumlah") DGV.Columns.Add("Total", "SubTotal")

Call AturLebarKolom() End Sub

4. Pada prosedur AturLebarKolom berfungsi untuk mengatur panjang kolom dengan kode sebagai berikut:

Sub AturLebarKolom()

DGV.Columns(0).Width = 50 DGV.Columns(1).Width = 175 DGV.Columns(2).Width = 75 DGV.Columns(3).Width = 75 DGV.Columns(4).Width = 100

End Sub

5. Pada prosedur FakturOtomatis berfungsi untuk membuat penomoran otomatis dengan 6 digit pertama adalah tanggal dan pada 4 digit terakhir adalah penomoran selanjutnya, dengan kode sebagai berikut:

Sub FakturOtomatis()

cmd = New OleDbCommand("Select * from penjualan where faktur in (select max(faktur) from penjualan) order by faktur desc", Conn)

Dim urutan As String Dim hitung As Long rd = cmd.ExecuteReader rd.Read()

If Not rd.HasRows Then

urutan = Format(Now, "yyMMdd") + "0001"

Else

If Microsoft.VisualBasic.Left(rd.GetString(0), 6) <>

Format(Now, "yyMMdd") Then

urutan = Format(Now, "yyMMdd") + "0001"

Else

hitung = rd.GetString(0) + 1 urutan = Format(Now, "yyMMdd") + Microsoft.VisualBasic.Right("0000" & hitung, 4) End If

End If

Faktur.Text = urutan End Sub

6. Pada objek form transaksi prosedur active berfungsi untuk memanggil prosedur faktur otomatis dan mengatur tanggal berdasarkan format komputer, dengan kode sebagai berikut :

Private Sub Transaksi_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated

Call FakturOtomatis() Tanggal.Text = Today End Sub

7. Pada prosedur TampilPelanggan berfungsi untuk memanggil data pelanggan dan ditampilkan pada combobox1, dengan kode sebagai berikut:

Sub TampilPelanggan()

CMD = New OleDbCommand("select * from Pelanggan", CONN) RD = CMD.ExecuteReader

ComboBox1.Items.Clear() Do While RD.Read

ComboBox1.Items.Add(RD.Item(0)) Loop

End Sub

8. Pada objek form transaksi prosedur load berfungsi untuk memanggil prosedur koneksi, buatkolombaru dan tampil pelanggan, dengan kode sebagai berikut :

Private Sub Transaksi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Call Koneksi() Call BuatKolomBaru() Call TampilPelanggan() End Sub

9. Pada objek timer1 prosedur tick berfungsi untuk mengatur waktu pada textbox jam dengan kode sebagai berikut:

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Jam.Text = TimeOfDay End Sub

10. Pada objek Datagrid1 atau DGV prosedur CellEndEdit berfungsi untuk memanggil data, mengubah dan melakukan perkalian penjumlahan jumlah barang dengan harga barang, dengan kode sebagai berikut:

Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As

System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellEndEdit If e.ColumnIndex = 0 Then

CMD = New OleDbCommand("select * from barang where KodeBrg='" &

DGV.Rows(e.RowIndex).Cells(0).Value & "'", CONN) RD = CMD.ExecuteReader

RD.Read()

If RD.HasRows Then

DGV.Rows(e.RowIndex).Cells(1).Value = RD.Item(1) DGV.Rows(e.RowIndex).Cells(2).Value = RD.Item(5) DGV.Rows(e.RowIndex).Cells(3).Value = 1

DGV.Rows(e.RowIndex).Cells(4).Value =

DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value Call TotalItem()

Call TotalHarga()

Else

MsgBox("Kode barang tidak terdaftar") End If

End If

If e.ColumnIndex = 3 Then

CMD = New OleDbCommand("select * from barang where KodeBrg='" &

DGV.Rows(e.RowIndex).Cells(0).Value & "'", CONN) RD = CMD.ExecuteReader

RD.Read()

If RD.HasRows Then

If DGV.Rows(e.RowIndex).Cells(3).Value > RD.Item(4) Then MsgBox("Stok barang hanya ada " & RD.Item(4) & "") DGV.Rows(e.RowIndex).Cells(3).Value = 1

DGV.Rows(e.RowIndex).Cells(4).Value =

DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value Call TotalItem()

Call TotalHarga() Else

DGV.Rows(e.RowIndex).Cells(4).Value =

DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value Call TotalItem()

Call TotalHarga() End If

End If

DGV.CurrentCell = DGV.Rows(0).Cells(0) End If

End Sub

11. Pada prosedur kena berfungsi untuk mengatur cell pada datagrid, denga kode sebagai berikut:

Sub kena(ByVal myGrid As DataGrid)

myGrid.CurrentCell = New DataGridCell(1, 1) End Sub

12. Pada prosedur TotalItem berfungsi untuk mengitung jumlah item pada cell, dengan kode sebagai berikut:

Sub TotalItem()

Dim HitungItem As Integer = 0

For I As Integer = 0 To DGV.Rows.Count - 1

HitungItem = HitungItem + Val(DGV.Rows(I).Cells(3).Value) Item.Text = HitungItem

Next End Sub

13. Pada prosedur TotalHarga berfungsi untuk mengitung harga pada cell, dengan kode sebagai berikut:

Sub TotalHarga()

Dim HitungHarga As Integer = 0

For I As Integer = 0 To DGV.Rows.Count - 1

HitungHarga = HitungHarga + Val(DGV.Rows(I).Cells(4).Value) Total.Text = HitungHarga

Next End Sub

14. Pada prosedur HapusBaris berfungsi untuk menghilangkan nilai pada cell , dengan kode sebagai berikut:

Sub HapusBaris()

On Error Resume Next

Dim baris As Integer = DGV.CurrentCell.RowIndex DGV.Rows(baris).Cells(0).Value = ""

Chr(30) End Sub

15. Pada objek DGV prosedur KeyDown berfungsi untuk mengatur cell yang bisa diubah pada cell, dengan kode sebagai berikut:

Private Sub DGV_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DGV.KeyDown If e.KeyCode = Keys.Up Then

DGV.CurrentCell = DGV.Rows(0).Cells(3) End If

End Sub

16. Pada objek DGV prosedur KeyPress berfungsi untuk memanggil prosedur TotalItem, TotalHarga dan mengembalikan nilai pada cell, dengan kode sebagai berikut:

Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress

On Error Resume Next

If e.KeyChar = Chr(27) Then

DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex) Call TotalItem()

Call TotalHarga() Dibayar.Clear() Kembali.Text = ""

End If End Sub

17. Pada objek textbox dibayar prosedur Keypress berfungsi untuk menghitung jumlah bayar dengan total bayar sehingga nilai sisa akan ditampilkan pada textbox kembali, kode sebagai berikut:

Private Sub Dibayar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Dibayar.KeyPress If e.KeyChar = Chr(13) Then

If Val(Dibayar.Text) < Val(Total.Text) Then MsgBox("Pembayaran kurang")

Kembali.Text = ""

Dibayar.Focus() Exit Sub

ElseIf Val(Dibayar.Text) = Val(Total.Text) Then Kembali.Text = 0

BTNSimpan.Focus() Else

Kembali.Text = Val(Dibayar.Text) - Val(Total.Text) BTNSimpan.Focus()

End If End If

If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True

End Sub

18. Masukkan kode berikut pada objek BTNSimpan :

Private Sub BTNSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNSimpan.Click

If Total.Text = "" Or Dibayar.Text = "" Or Kembali.Text = "" Or Item.Text = "" Then

MsgBox("Data belum lengkap, tidak ada transaksi atau pembayaran masih kosong")

Exit Sub End If

'simpan ke tabel penjualan

Dim simpanmaster As String = "Insert into

penjualan(faktur,tanggal,item,total,dibayar,kembali,KodePmk,KodePlg) values

" & _

"('" & Faktur.Text & "','" & Tanggal.Text & "','" & Item.Text &

"','" & Total.Text & "','" & Dibayar.Text & "','" & Kembali.Text & "','" &

Menuutama.Panel1.Text & "','" & ComboBox1.Text & "')"

CMD = New OleDbCommand(simpanmaster, CONN) CMD.ExecuteNonQuery()

For baris As Integer = 0 To DGV.Rows.Count - 2 'simpan ke tabel detail

Dim sqlsimpan As String = "Insert into detailjual

(faktur,KodeBrg,nama_Barang,harga_Jual,jumlah,subtotal) values " & _ "('" & Faktur.Text & "','" & DGV.Rows(baris).Cells(0).Value &

"','" & DGV.Rows(baris).Cells(1).Value & "','" &

DGV.Rows(baris).Cells(2).Value & "','" & DGV.Rows(baris).Cells(3).Value &

"','" & DGV.Rows(baris).Cells(4).Value & "')"

CMD = New OleDbCommand(sqlsimpan, CONN) CMD.ExecuteNonQuery()

'kurangi stok barang

CMD = New OleDbCommand("select * from barang where KodeBrg='" &

DGV.Rows(baris).Cells(0).Value & "'", CONN) RD = CMD.ExecuteReader

RD.Read()

If RD.HasRows Then

Dim kurangistok As String = "update barang set JumlahBrg=

'" & RD.Item(3) - DGV.Rows(baris).Cells(3).Value & "' where KodeBrg='" &

DGV.Rows(baris).Cells(0).Value & "'"

CMD = New OleDbCommand(kurangistok, CONN) CMD.ExecuteNonQuery()

End If Next baris

DGV.Columns.Clear() Call BuatKolomBaru() Call FakturOtomatis() Call BersihkanText() End Sub

19. Masukkan kode berikut pada objek BTNBatal

Private Sub BTNBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNBatal.Click

Call BersihkanText() DGV.Columns.Clear() Call BuatKolomBaru() DGV.Focus()

End Sub

20. Masukkan kode berikut pada objek BTNTutup

Private Sub BTNTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNTutup.Click

Me.Close() End Sub

21. Masukkan kode berikut pada Button1 atau Daftar Barang

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

D_Barang.ShowDialog() End Sub

22. Masukkan kode berikut pada Button2 atau tombol cari

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

D_Pelanggan.ShowDialog() End Sub

23. Masukkan kode berikut pada objek combobo1 prosedur SelectedIndexChange

Private Sub combobox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

CMD = New OleDbCommand("select * from Pelanggan where KodePlg='" &

ComboBox1.Text & "'", CONN) RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

TextBox1.Text = RD.Item(1) TextBox2.Text = RD.Item(2)

TextBox3.Text = RD.Item(3) TextBox4.Text = RD.Item(4) TextBox5.Text = RD.Item(5) Else

MsgBox("Kode Pelanggan tidak terdaftar") End If

End Sub

24. Hasil dari kode program diatas, dapat dilihat pada gambar 7.14 berikut ini :

Gambar 7.14Hasil Form Transaksi Barang

Form transaksi barang pada gambar 7.14 pada pencarian kode pelanggan masih mengetikkan kode, apabila kasir tidak mengingat seluruh kode pelanggan maka dibutuhkan pencarian pelanggan dengan memilih pada daftar pelanggan. Maka, dibutuhkan form pencarian pelanggan apabila daftar pelanggan di klik maka akan dimunculkan pada textboxt kode pelanggan, nama, alamat, telepon, jenis kelamin dan email. Berikut langkah pembuatan form pencarian pelanggan

1. Buatlah form baru dengan klik menu Project dan pilih Add Windows Form 2. Desain form daftar pelanggan seperti pada gambar 7.15 dibawah ini:

Gambar 7.15 Form Daftar Pelanggan

3. Gantilah properti masing-masing komponen seperti tertera dibawah ini : Tabel 7.13Pengaturan Properties Form Daftar Pelanggan

Object Properties Value

Form1 Text Daftar Pelanggan

Form1 Name D_ Pelanggan

Form1 Start Position CenterScreen

DataGridView1 Name DGV

4. Masukkan kode berikut diatas Public Class D_Pelanggan bertujuan untuk memanggil driver dengan koneksi oleDB

Imports System.Data.OleDb

5. Pada prosedur Tampilkan berfungsi untuk menampilkan data barang ke DataGridView dengan kode sebagai berikut:

Sub Tampilkan()

DA = New OleDbDataAdapter("Select * from Pelanggan", CONN) DS = New DataSet

DS.Clear()

DA.Fill(DS, "Pelanggan")

DGV.DataSource = (DS.Tables("Pelanggan")) DGV.ReadOnly = True

End Sub

6. Masukkan kode pada objek form D_Pelanggan prosedur Load berikut ini:

Private Sub D_Pelanggan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Call Koneksi() Call Tampilkan() End Sub

7. Masukkan kode berikut pada objek DataGridView prosedur CellClick : Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As

System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick Dim i As Integer

i = Me.DGV.CurrentRow.Index With DGV.Rows.Item(i)

Transaksi.ComboBox1.Text = .Cells(0).Value Transaksi.TextBox1.Text = .Cells(1).Value Transaksi.TextBox2.Text = .Cells(2).Value Transaksi.TextBox3.Text = .Cells(3).Value Transaksi.TextBox4.Text = .Cells(4).Value

Transaksi.TextBox5.Text = .Cells(5).Value End With

Transaksi.Show() Me.Close()

End Sub

8. Hasil dari kode program diatas, dapat dilihat pada gambar 7.16 berikut ini :

Gambar 7.16 Hasil Form Transaksi Penjualan Barang

Dokumen terkait