MEMBUAT TABEL TRANSAKSI PENJUALAN A. MENDESAIN TABEL Langkah pertama yang perlu dilakukan adalah menyiapkan tabel-tabel yang diperlukan. Sebelumnya kita sudah membuat tabel barang, selanjutnya lengkapi tabel faktur, isifaktur dan semisifaktur dengan desain tabel sbb berikut : TABEL FAKTUR TABEL ISIFAKTUR TABEL TEMPISIFAKTUR ~ 1 ~
B. DESAIN FORM Sebagai antar muka transaksi penjualan, desainlah form seperti tampak pada gambar berikut. Form penjualan Form listbarang KODE PROGRAM UNTUK FORM PENJUALAN Tulis kode program berikut pada baris paling atas. 1. Imports system.data.sqlclient ~ 2 ~
Buat Sub program fakturotomatis, untuk membuat faktur otomatis dengan format = FK00001 dan seterusnya yang langsung digenerate otomatis oleh program. Kode program sbb: 1. Sub fakturotomatis() 2. REM membuat no faktur otomatis 3. Dim strtemp As String = 4. Dim strvalue As String = "" 5. Dim aksi As String = String.Empty 6. aksi = "select * from faktur order by no_faktur desc" 7. Dim sqlku As New SqlCommand(aksi, Module1.koneksi) 8. Dim myreader As SqlDataReader 9. myreader = sqlku.executereader 10. If myreader.read Then 11. strtemp = Mid(myreader.Item("no_faktur"), 3, 5) 12. Else 13. tfaktur.text = "FK00001" 14. Exit Sub 15. End If 16. strvalue = Val(strtemp) + 1 17. tfaktur.text = "FK" & Mid("00000", 1, 5 - strvalue.length) & strvalue 18. End Sub Double klik pada area kosong untuk masuk ke coding form load, tuliskan kode berikut: 1. ttanggal.text = Now.Date 2. fakturotomatis() Buat sub program bersih, dengan kode berikut : ~ 3 ~
1. tkodebarang.clear() 2. tnamabarang.clear() 3. tharga.clear() 4. tjumlahbeli.clear() 5. ttotalharga.clear() 6. tkodebarang.focus() Kode program berikut untuk membuat program ketika kita menekan tombol enter, maka komputer akan melakukan pencarian data ke tabel barang, dan jika ditemukan maka nama barang dan harga akan ditampilkan di textbox yang sudah disediakan. Kondisi berikutnya, kalau user tidak bisa mendapatkan kode barang hanya nama barang yang didapat, maka user bisa menekan tombol L (huruf besar) untuk menampilkan form listbarang. Berikut kode programnya. ~ 4 ~
1. REM jika tombol enter ditekan 2. If e.keychar = Chr(Keys.Enter) Then 3. Dim aksi As String = String.Empty 4. aksi = "select * from barang where kode_barang='" & tkodebarang.text & "' " 5. Dim sqlku As New SqlCommand(aksi, Module1.koneksi) 6. Dim myreader As SqlDataReader 7. myreader = sqlku.executereader 8. 9. If myreader.read Then 10. tnamabarang.text = myreader.item(1) 11. tharga.text = Format(myreader.Item(2), "n") 12. tjumlahbeli.focus() 13. Else 14. MessageBox.Show("Kode barang salah...", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning) 15. tkodebarang.focus() 16. End If 17. Else 18. 19. REM Jika tombol huruf L besar di tekan 20. If e.keychar = Chr(Keys.L) Then 21. lihatbarang.showdialog() 22. If lihatbarang.hasilkode <> "" Then 23. tkodebarang.text = lihatbarang.hasilkode 24. tnamabarang.text = lihatbarang.hasilnama 25. tharga.text = Format(CDbl(lihatBarang.hasilharga), "N") 26. tjumlahbeli.focus() 27. End If 28. End If 29. End If Kode berikut untuk membuat program menghitung total beli dengan rumusnya adalah harga barang dikalikan dengan jumlah item barang yang dibeli. Program ini ditempatkan di keypress dari textbox jumlahbeli. Kode programnya sbb: ~ 5 ~
1. Dim harga, JumlahBeli As Double 2. harga = tharga.text 3. JumlahBeli = CInt(tJumlahBeli.Text) 4. total = harga * JumlahBeli 5. ttotalharga.text = Format(total, "n") Kode program berikut ini terdapat pada button OK. Fungsi dari program ini adalah menyimpan data pembelian item barang ke tabel tempisifaktur. Kode programnya sbb: ~ 6 ~
1. Dim aksi As String = String.Empty 2. aksi = "insert into tempisifaktur(no_faktur,kode_barang,nama_barang,harga_sat uan,jumlahbeli,total)values('" & tfaktur.text & "','" & tkodebarang.text & "','" & tnamabarang.text & "','" & CInt(tHarga.Text) & "','" & tjumlahbeli.text & "','" & CInt(tTotalHarga.Text) & "' ) " 3. Dim perintah As SqlCommand = New SqlCommand(aksi, Module1.koneksi) 4. perintah.executenonquery() 5. Module1.koneksi.Close() 6. Dim adapter As New SqlDataAdapter("select kode_barang,nama_barang,harga_satuan,jumlahbeli, total from tempisifaktur", Module1.koneksi) 7. Dim tampung As New DataTable("tempIsiFaktur") 8. adapter.fill(tampung) 9. DataGridView1.DataSource = tampung 10. tkodebarang.focus() 11. Dim aksi2 As String = String.Empty 12. aksi2 = "select sum(total)from tempisifaktur " 13. Dim sqlku As SqlCommand = New SqlCommand(aksi2, Module1.koneksi) 14. Dim reader As SqlDataReader 15. reader = sqlku.executereader 16. If reader.read Then 17. JumlahTotal.Text = Format(reader.Item(0), "N") 18. JumlahTotal2.Text = Format(reader.Item(0), "N") 19. End If 20. bersih() Kode program berikut ini untuk menyimpan data transaksi ke tabel faktur dan isi faktur dan mengosongkan kembali tabel temisifaktur. Berikut adalah kode programnya ~ 7 ~
1. REM ambil data dari gridview 2. Dim hasilcari As String = String.Empty 3. hasilcari = "select no_faktur,kode_barang,jumlahbeli from tempisifaktur " 4. Dim eksekusi As SqlCommand 5. eksekusi = New SqlCommand(hasilcari, Module1.koneksi) 6. Dim hasilcarku As SqlDataReader 7. hasilcarku = eksekusi.executereader 8. If hasilcarku.read Then 9. Do 10. Dim tempnofaktur, tempkodebarang As String 11. Dim tempjumlahbeli As Decimal 12. 13. tempnofaktur = hasilcarku.item(0).tostring 14. tempkodebarang = hasilcarku.item(1).tostring 15. tempjumlahbeli = hasilcarku.item(2) 16. 17. Dim aksisimpan As String 18. aksisimpan = "insert into isifaktur(no_faktur,kode_barang,jumlahbeli) values ('" & tempnofaktur & "','" & tempkodebarang & "','" & Val(tempjumlahbeli) & "')" 19. 20. Dim eksekusijadi As SqlCommand = New SqlCommand(aksisimpan, Module1.koneksi) 21. eksekusijadi.executenonquery() 22. Module1.koneksi.Close() 23. Loop While hasilcarku.read 24. End If 25. 26. REM simpan di tabel faktur 27. Dim simpanfaktur As String = String.Empty 28. simpanfaktur = "insert into faktur(no_faktur,tanggal,total) values ('" & tfaktur.text & "','" & ttanggal.text & "','" & CInt(JumlahTotal.Text) & "')" 29. Dim perintahsimpan As SqlCommand = New SqlCommand(simpanfaktur, Module1.koneksi) 30. perintahsimpan.executenonquery() 31. ~ 8 ~
32. REM hapus isi temporary 33. Dim aksi As String = String.Empty 34. aksi = "delete from tempisifaktur where no_faktur='" & tfaktur.text & "'" 35. Dim perintah As SqlCommand = New SqlCommand(aksi, Module1.koneksi) 36. perintah.executenonquery() 37. Module1.koneksi.Close() 38. 39. MsgBox("Data sukses tersimpan", MsgBoxStyle.OkOnly) 40. DataGridView1.DataSource = "" 41. 42. Dim tanyacetak As DialogResult 43. tanyacetak = MessageBox.Show("Faktur akan dicetak???", "Cetak Faktur", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) 44. If tanyacetak = Windows.Forms.DialogResult.No Then 45. fakturotomatis() 46. JumlahTotal.Clear() 47. JumlahTotal2.Clear() 48. tkodebarang.focus() 49. TKembalian.Clear() 50. TJumlahUang.Clear() 51. Else 52. fakturotomatis() 53. JumlahTotal.Clear() 54. JumlahTotal2.Clear() 55. tkodebarang.focus() 56. TKembalian.Clear() 57. TJumlahUang.Clear() 58. REM PROGRAM UNTUK MENAMPILKAN FORM 59. End If Next Session, akan dibahas mengenai form listbarang. &&&semoga ada hikmah dalam proses ini&&& ~ 9 ~