Download - Laporan Aplikasi Penjualan Souvenir Menggunakan VB.net 2005

Transcript

APLIKASI PENJUALAN SOUVENIR MENGGUNAKAN VB.NET 2005 Laporan Ini Disusun untuk Memenuhi Tugas Mata Kuliah Pemrograman Visual Client Server

Oleh: Nama NIM : Yan Fi :41508120094

TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA JAKARTA 2012

PERANCANGAN APLIKASI Persyaratan Software: Microsoft Visual Studio 2005 Microsoft Access.

Toolbox VB.net yang digunakan: Common Control: Data: DataGridView Components: Timer Printing: PrintDialog PrintDocument PrintPreviewDialog Button Label Picture box

Struktur Database: Table Stock:

Gb.1.a Table Stock

Table Penjualan:

Gb.1.b Table Penjualan

Masing-masing product / barang dapat memiliki beberapa kali penjualan. Karena itu, dibuat table stock dan table penjualan secara terpisah dengan hubungan one to many.

Diagram Block

1 2 3 5 7 11 13 15 18 19 20 8 4 6 9 12 14 16 21 22 23 24 30 10 17 25 26 27 28 29

31

Gb.2. Diagram Block Keterangan: 1. Judul Aplikasi 2. Tampilan Waktu 3. Kode Product 4. Tempat pengisian kode product 5. Nama Product 6. Tempat pengisian nama product 7. Quantity dari produk / barang yang ingin dibeli 8. Tempat pengisian quantity 9. Unit atau Satuan 10. Tempat pengisian unit atau satuan 11. Harga satuan barang

12. Tempat pengisian harga satuan barang 13. Total harga 14. Tempat pengisian Total harga 15. Total harga yang sudah dikonversikan ke bentuk terbilang 16. Tempat pengisian total harga dalam bentuk terbilang 17. Tampilan gambar 18. Button Navigasi untuk menunjuk pada record paling awal. 19. Button Navigasi untuk menunjuk ke record sebelumnya. 20. Button Navigasi untuk menunjuk ke record selanjutnya. 21. Button Navigasi untuk menunjuk ke record paling akhir. 22. Button calculate. 23. Button buy it 24. Button print bill 25. Button new 26. Button commit 27. Button update 28. Button cancel 29. Button delete 30. Button exit 31. Datagrid.

ALGORITMA DAN KODE PROGRAM

Gb.3.a Source Code Form Load and Timer Dari source code di atas, pada saat form sedang loading, maka 1. sistem akan melakukan koneksi dengan database. Dalam hal ini, kita menggunakan microsoft Access sebagai database. 2. Setelah koneksi sudah ada, sistem akan memilih semua isi dari database 3. Sumber untuk dataGrid dari table stock pada database. 4. Inc dan MaxRows berfungsi untuk melakukan navigasi. 5. Tampilan waktu akan ada ketika form loading, dan agar waktu bisa berjalan terus maka perlu adanya timer.

Code di atas artinya now dalam bentuk format: dddd dd MMM yyyy Now.ToLongTimeString = hari = tanggal bulan tahun, contoh: 23 Feb 2012 = jam, menit, detik.

vbCrLf berfungsi untuk mengatur agar pindah baris.

Gb. 3.b Source code NavigateRecords

Berdasarkan source code NavigateRecords, penjelasannya: 1. Deklarasi variable untuk digunakan hanya di dalam subroutine ini. 2. Textkode, textnama, textsatuan, textHjual diambil dari database dengan nama table: tableStock dan setiap rowsnya dihitung dengan inc yang sudah dicantumkan pada code Form_Load, dan berdasarkan item atau kolom masing-masing. 3. txtHJual.text merupakan harga jual setiap barang. Dalam hal ini, bertipe string padahal ini merupakan harga dalam satuan Rupiah. Karena itu, untuk menampilkan nilai dari text tersebut dalam bentuk currency, maka ditulis dalam bentuk Format (Val (txtHJual.text),Rp #,##.00) 4. untuk menampilkan picturebox sesuai dengan barang yang muncul, maka source code:

Jika kode barang kosong, maka image tidak akan muncul. Sedangkan bila kode barang sudah terisi, maka program akan mencari gambar di dalam path sesuai dengan yang tercantum pada picpat. Picpat adalah picture path yang variablenya sudah dideklarasikan sebelumnya.

5. TxtTerbilang, quantity, dan total diberikan agar bila ada yang membeli barang pada record sebelumnya, isi perhitungan tidak muncul lagi pada aplikasi untuk record yang selanjutnya.

Gb.3.c Source code Tombol navigasi Setiap tombol navigasi akan memanggil subroutine dari NavigateRecords.

Gb.3.d Source Code Tombol New Penjelasan untuk source code tombol New: Pada saat tombol new diklik, tombol commit akan enabled sedangkan tombol new, update, delete menjadi disable. Semua text dan Gambar akan diberi tempat kosong untuk mengisi produk baru.

Gb.3.e Source code Tombol Commit dan tombol update Penjelasan tombol commit dan tombol update: Pada database akan diinsert sebuah baris baru yang akan diisikan data baru sesuai masukan dari pengguna. Table stock akan terupdate sesuai dengan masukan dari pengguna juga. Saat program sudah selesai melakukan update terhadap database maka akan muncul message box yang fungsinya untuk memberitahukan pengguna bahwa data baru sudah tersimpan ke dalam database. Kemudian, tombol commit sudah tidak dapat diklik lagi kecuali pengguna mengklik tombol new terlebih dahulu. Jika semua inputan yang harus diisi ada yang tidak lengkap maka akan muncul message box yang bertujuan agar pengguna melengkapi datanya.

Gb.3.f Source code Tombol Cancel, dan tombol Delete Penjelasan tombol cancel, dan tombol delete: Apabila sudah mengisi data baru dan ternyata tidak jadi disimpan ke dalam database (belum klik commit), maka pengguna dapat mengklik cancel untuk membatalkannya.

Namun apabila sudah terklik commit, maka untuk membatalkan, pengguna harus melakukan delete terhadap data yang diinginkan.

Gb. 3.g Source code Tombol Exit, dan tombol Buy it

Penjelasan source code tombol exit dan tombol buy it / order: Tombol exit digunakan untuk menutup aplikasi / program. Tombol order ini bertujuan untuk mencatat setiap pembelian yang terjadi ke dalam database pada table penjualan.

Gb.3.h Source code Function Terbilang untuk digunakan dalam tombol Calculate

Penjelasan untuk function Terbilang: Contoh: 5.643.502 maka algoritmanya: Int(5.643.502 / 1.000.000) = lima + juta + 643502 Sisa: 643.502. 643.000 < 1.000.000 maka Int(643.000 / 1000) = 643 + ribu + 502

643 0 Then inc = inc - 1 navigateRecords() Else End If End Sub Private Sub btnKanan_Click If inc maxrows - 1 Then inc = inc + 1 navigateRecords() Else End If End Sub

(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click

ByVal e As System.EventArgs) Handles BtnKiri.Click

MsgBox("First Record", MsgBoxStyle.Information, "Information")

(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKanan.Click

MsgBox("Last Record", MsgBoxStyle.Information, "Information")

Private Sub BtnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLast.Click If inc maxrows - 1 Then inc = maxrows - 1 navigateRecords() End If End Sub Private Sub BtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click btnCommit.Enabled = True btnNew.Enabled = False BtnUpdate.Enabled = False BtnDelete.Enabled = False txtKode.Clear() txtNama.Clear() txtqty.Clear() txtSatuan.Clear() txtHJual.Clear() txttotal.Clear() Txtterbilang.Clear() PictBox1.Image = Nothing End Sub Private Sub btnCommit_Click If inc -1 Then Dim cb As New OleDb.OleDbCommandBuilder(da) Dim dsNewRow As DataRow If txtKode.Text "" And txtHJual.Text "" And _ txtNama.Text "" And txtSatuan.Text "" Then dsNewRow = ds.Tables("tablestock").NewRow() dsNewRow.Item("kodebarang") = txtKode.Text dsNewRow.Item("namaBarang") = txtNama.Text dsNewRow.Item("satuan") = txtSatuan.Text dsNewRow.Item("hargajual") = txtHJual.Text ds.Tables("tablestock").Rows.Add(dsNewRow) da.Update(ds, "tablestock")(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCommit.Click

MsgBox("New Record added to the Database: Stock", MsgBoxStyle.Information, "Hi")

btnCommit.Enabled = False btnNew.Enabled = True

BtnUpdate.Enabled = True BtnDelete.Enabled = True ElseMsgBox("Please complete your input", MsgBoxStyle.Exclamation,"Hi")

End If End If End Sub Private Sub BtnSave_Click da.Update(ds, "tablestock") MsgBox("Data updated") End Sub Private Sub BtnCancel_Click btnCommit.Enabled = False btnNew.Enabled = True BtnUpdate.Enabled = True BtnDelete.Enabled = True

(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUpdate.Click

(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click

inc = 0 navigateRecords() End Sub Private Sub BtnDelete_Click Dim cb As New OleDb.OleDbCommandBuilder(da) "Delete", MessageBoxButtons.YesNo, _

(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDelete.Click

If MessageBox.Show("Do you really want to Delete this Record?", _

MessageBoxIcon.Warning) = Windows.Forms.DialogResult.No Then

MsgBox("Operation Cancelled") Exit Sub End If ds.Tables("tablestock").Rows(inc).Delete() maxrows = maxrows - 1 inc = 0 navigateRecords() da.Update(ds, "tablestock") End Sub Private Sub btnExit_Click c.Close() Me.Close() End Sub Private Sub BtnOrder_Click If inc -1 And txttotal.Text "" Then Dim cb As New OleDb.OleDbCommandBuilder(da1) Dim dsNewRow1 As DataRow dsNewRow1 = ds1.Tables("Penjualan").NewRow() dsNewRow1.Item("kodebarang") = txtKode.Text dsNewRow1.Item("namaBarang") = txtNama.Text dsNewRow1.Item("unit") = txtSatuan.Text dsNewRow1.Item("tanggalterjual") = LblWkt.Text dsNewRow1.Item("hjual") = _ ds.Tables("tablestock").Rows(inc).Item("hargajual") dsNewRow1.Item("qty") = txtqty.Text dsNewRow1.Item("totalharga") = CInt(txtqty.Text) * _ CInt(ds.Tables("tablestock").Rows(inc).Item("hargajual"))(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBeli.Click

ds1.Tables("penjualan").Rows.Add(dsNewRow1) da1.Update(ds1, "penjualan") MsgBox("New Record added to Database: Penjualan", _ MsgBoxStyle.Information, "Hi")

btnCommit.Enabled = False btnNew.Enabled = True BtnUpdate.Enabled = True BtnDelete.Enabled = True Else MsgBox("Please complete your input", _ MsgBoxStyle.Exclamation, "Hi") End If End Sub Private Sub BtnCount_Click Dim hasil As Integer Dim i As String hasil = 0 If ((Val(txtqty.Text) 0)) And (Int(Val(txtqty.Text)) = _ Val(txtqty.Text)) Then i = ds.Tables("tablestock").Rows(inc).Item("hargajual") hasil = CInt(txtqty.Text) * CInt(i) If (hasil < 100000000) Then txttotal.Text = CStr(hasil) 'convert numeric to string txttotal.Text = Format(Val(txttotal.Text), _ "Rp #,##.00") 'format string ke dalam bentuk currency (Rupiah) Txtterbilang.Text = Terbilang(hasil) & "Rupiah" 'memanggil fungsi Terbilang End If Else MsgBox("Please Check your input again", _ MsgBoxStyle.OkOnly, "Hi") txtqty.Text = "" Txtterbilang.Text = "" txttotal.Text = "" End If(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalc.Click

End Sub Public Function Terbilang(ByVal x As Integer) As StringDim bilangan As String() = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", _ "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"}

Dim bil As String = "" If x < 12 Then bil = " " + bilangan(x) ElseIf (x < 20) Then bil = Terbilang(x - 10).ToString + " Belas" ElseIf x < 100 Thenbil = Terbilang(Int(x / 10)) + " Puluh" + Terbilang(x Mod 10)

ElseIf x < 200 Then bil = " Seratus" + Terbilang(x - 100) ElseIf x < 1000 Thenbil = Terbilang(Int(x / 100)) + " Ratus" + Terbilang(x Mod 100)

ElseIf x < 2000 Then bil = " Seribu" + Terbilang(x - 1000) ElseIf x < 1000000 Thenbil = Terbilang(Int(x / 1000)) + " Ribu" + Terbilang(x Mod 1000)

ElseIf x < 2000000 Then bil = " Sejuta" + Terbilang(x - 1000000) ElseIf x < 100000000 Thenbil = Terbilang(Int(x / 1000000)) + " Juta" + Terbilang(x Mod 1000000)

End If Return bil End Function Private Sub Timer2_Tick_1 LblWkt.Text = Format(Now, "dddd" & vbCrLf & "dd MMMM yyyy") _(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

& vbCrLf & (Now.ToLongTimeString) End Sub Private Sub Button1_Click If (Txtterbilang.Text "") Then PrintPreviewDialog1.Document = PrintDocument1 'printpreview memanggil subroutine dari printdocument1 PrintPreviewDialog1.ShowDialog() PrintDialog1.ShowDialog() Else MsgBox("Please Check your input again", _ MsgBoxStyle.OkOnly, "Hi") End If End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

e.Graphics.DrawString("Receipt of Payment", New Font("arial", 12, FontStyle.Bold),_ Brushes.Black, 200, 100) e.Graphics.DrawString("============================================================", _ New Font("arial", 12, FontStyle.Bold), Brushes.Black, 100, 120) e.Graphics.DrawString(LblWkt.Text, LblWkt.Font, Brushes.Black, 500, 150) e.Graphics.DrawString(LblCode.Text & vbTab & ":", LblCode.Font, Brushes.Black, 100, 200) e.Graphics.DrawString(txtKode.Text, txtKode.Font, Brushes.Black, 250, 200) e.Graphics.DrawString(lblName.Text & vbTab & ":", lblName.Font, Brushes.Black, 100, 250) e.Graphics.DrawString(txtNama.Text, txtNama.Font, Brushes.Black, 250, 250) e.Graphics.DrawString(LblQty.Text & vbTab & vbTab &":",LblQty.Font,Brushes.Black,100, 300) e.Graphics.DrawString(txtqty.Text, txtqty.Font, Brushes.Black, 250, 300) e.Graphics.DrawString("/" & txtSatuan.Text, txtSatuan.Font, Brushes.Black, 350, 300) e.Graphics.DrawString("______________________________________________________________", _ New Font("arial", 10, FontStyle.Bold), Brushes.Black, 100, 320) e.Graphics.DrawString(LblTotal.Text & vbTab & ":", LblTotal.Font, Brushes.Black, 100, 350) e.Graphics.DrawString(txttotal.Text, txttotal.Font, Brushes.Black, 250, 350) e.Graphics.DrawString(LblBlg.Text & vbTab & ":", LblBlg.Font, Brushes.Black, 100, 400) e.Graphics.DrawString(Txtterbilang.Text, Txtterbilang.Font, Brushes.Black, 250, 400) e.Graphics.DrawString("Thank You", New Font("arial", 12, FontStyle.Bold), _ Brushes.Blue, 400, 500)

e.Graphics.PageUnit = GraphicsUnit.Inch End Sub End Class