0% found this document useful (0 votes)
19 views25 pages

Dila Trian Lestari

This document contains code for a desktop application written in Visual Basic .NET. It includes code for an admin form that allows navigation to other forms, a data barang (data goods) form for managing product data in a database, and includes functions for generating product codes, displaying data in a datagrid, inserting, updating, and deleting records from the database.

Uploaded by

izal 1455
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views25 pages

Dila Trian Lestari

This document contains code for a desktop application written in Visual Basic .NET. It includes code for an admin form that allows navigation to other forms, a data barang (data goods) form for managing product data in a database, and includes functions for generating product codes, displaying data in a datagrid, inserting, updating, and deleting records from the database.

Uploaded by

izal 1455
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Nama: Dila Trian Lestari

NIM: STE202202832

Matkul: Desktop Programming

AdminForm

Public Class adminForm


Private Sub DataBarangToolStripMenuItem_Click(sender As Object, e As
EventArgs) Handles DataBarangToolStripMenuItem.Click
dataBarang.Show()
Me.Hide()
End Sub

Private Sub PelangganToolStripMenuItem_Click(sender As Object, e As


EventArgs) Handles PelangganToolStripMenuItem.Click
dataPelanggan.Show()
Me.Hide()
End Sub

Private Sub ToolStripTextBox1_Click(sender As Object, e As EventArgs) Handles


ToolStripTextBox1.Click
transaksiPenjualan.Show()
Me.Hide()
End Sub

Private Sub PembayaranToolStripMenuItem_Click(sender As Object, e As


EventArgs) Handles PembayaranToolStripMenuItem.Click
transaksiPembayaran.Show()
Me.Hide()
End Sub
End Class
Data Barang Form

Imports System.Data.Odbc
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Public Class dataBarang
Dim dt As New DataTable()
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
' Ambil nilai dari inputan pengguna atau formulir
Dim kodeBarang As String = txtKodeBarang.Text
Dim namaBarang As String = txtNamaBarang.Text
' Hitung total harga berdasarkan harga barang dan jumlah
Dim hargaBarang As Double = Convert.ToDouble(txtHargaBarang.Text)
Dim jumlah As Integer = Convert.ToInt32(txtJumlah.Text)
Dim totalHarga As Integer = hargaBarang * jumlah

' Membuat koneksi


Using connection As OdbcConnection = DatabaseModule.GetConnection()
Try
' Buka koneksi
connection.Open()

' Membuat perintah SQL untuk menyisipkan data


Dim query As String = "INSERT INTO barang (KodeBarang,
NamaBarang, HargaBarang, Jumlah, TotalHarga) VALUES (?, ?, ?, ?, ?)"

' Membuat objek perintah dan menetapkan parameter


Using command As New OdbcCommand(query, connection)
command.Parameters.AddWithValue("@KodeBarang", kodeBarang)
command.Parameters.AddWithValue("@NamaBarang", namaBarang)
command.Parameters.AddWithValue("@HargaBarang", hargaBarang)
command.Parameters.AddWithValue("@Jumlah", jumlah)
' Tambahkan total harga ke dalam parameter SQL
command.Parameters.AddWithValue("TotalHarga", totalHarga)

' Eksekusi perintah SQL


command.ExecuteNonQuery()

MessageBox.Show("Data barang berhasil dimasukkan ke dalam


database.")

BersihkanInput()
TampilkanData()
txtKodeBarang.Text = GenerateKodeBarang()
' Tampilkan total harga di TextBox5
txtTotalHarga.Text = totalHarga.ToString("N2") ' Format
sebagai angka dengan dua digit desimal
End Using
Catch ex As Exception
MessageBox.Show("Error: " & ex.Message)
End Try
End Using
End Sub
Private Sub TampilkanData()
' Tampilkan data di DataGridView
Dim dt As New DataTable()
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()
' Ganti "NamaTabel" dengan nama tabel Anda
Dim query As String = "SELECT * FROM barang"
Dim da As New OdbcDataAdapter(query, conn)
dt.Clear()
da.Fill(dt)
End Using

' Ganti DataGridView1 dengan nama DataGridView Anda


DataGridView1.DataSource = dt
End Sub

Private Sub BersihkanInput()


' Membersihkan input setelah data disimpan

txtHargaBarang.Clear()
txtJumlah.Clear()
txtTotalHarga.Clear()
End Sub

Private Sub dataBarang_Load(sender As Object, e As EventArgs) Handles


MyBase.Load
TampilkanData()
txtTotalHarga.Enabled = False
' Memanggil fungsi GenerateKodeBarang saat form dimuat
txtKodeBarang.Text = GenerateKodeBarang()
End Sub
Private Function GenerateKodeBarang() As String
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Mencari nilai maksimum dari kolom KodeBarang di tabel barang


Dim query As String = "SELECT MAX(KodeBarang) FROM barang"
Dim cmd As New OdbcCommand(query, conn)

Dim result As Object = cmd.ExecuteScalar()


If result IsNot DBNull.Value AndAlso result IsNot Nothing Then
' Jika ada nilai maksimum, tambahkan 1 untuk membuat kode barang
baru
Dim maksimumKode As Integer = Convert.ToInt32(result)
maksimumKode += 1
Return maksimumKode.ToString("D3") ' Format sebagai string dengan
panjang 3 digit, misalnya "001"
Else
' Jika belum ada data barang, kita mulai dari 1
Return "001"
End If
End Using
End Function
Private Sub DataGridView1_CellContentClick(sender As Object, e As
DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
If e.RowIndex >= 0 Then
Dim selectedRow As DataGridViewRow = DataGridView1.Rows(e.RowIndex)

' Mengisi data ke TextBox sesuai dengan kolom pada DataGridView


txtKodeBarang.Text = selectedRow.Cells("KodeBarang").Value.ToString()
txtNamaBarang.Text = selectedRow.Cells("NamaBarang").Value.ToString()
txtHargaBarang.Text =
selectedRow.Cells("HargaBarang").Value.ToString()
txtJumlah.Text = selectedRow.Cells("Jumlah").Value.ToString()
txtTotalHarga.Text = selectedRow.Cells("TotalHarga").Value.ToString()
End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles


Button2.Click
BersihkanInput()
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles


Button3.Click
direkturForm.Show()
Hide()
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles
Button4.Click
If Not String.IsNullOrEmpty(txtKodeBarang.Text) Then
' Konfirmasi pengguna apakah yakin untuk menghapus data
Dim result = MessageBox.Show("Apakah Anda yakin untuk menghapus data
ini?", "Konfirmasi Hapus", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If result = DialogResult.Yes Then


' Panggil fungsi untuk menghapus data dari database
HapusDataDariDatabase(txtKodeBarang.Text)

' Hapus data dari DataGridView


TampilkanData()

' Membersihkan TextBox setelah proses delete


BersihkanInput()
End If
Else
MessageBox.Show("Pilih baris data yang ingin dihapus.", "Peringatan",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles
Button5.Click
If Not String.IsNullOrEmpty(txtKodeBarang.Text) Then
' Konfirmasi pengguna apakah yakin untuk update data
Dim result As DialogResult = MessageBox.Show("Apakah Anda yakin untuk
update data ini?", "Konfirmasi Update", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)

If result = DialogResult.Yes Then


' Panggil fungsi untuk update data di database
UpdateDataDiDatabase(txtKodeBarang.Text, txtNamaBarang.Text,
txtHargaBarang.Text, txtJumlah.Text)

' Menampilkan kembali data setelah proses update selesai


TampilkanData()

' Membersihkan TextBox setelah proses update


BersihkanInput()
End If
Else
MessageBox.Show("Pilih baris data yang ingin diupdate.",
"Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub UpdateDataDiDatabase(ByVal kodeBarang As String, ByVal namaBarang
As String, ByVal hargaBarang As String, ByVal jumlah As String)
Try
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Query update data di database


Dim query As String = "UPDATE barang SET NamaBarang = ?,
HargaBarang = ?, Jumlah = ?, TotalHarga = ? WHERE KodeBarang = ?"

' Menghitung ulang total harga berdasarkan harga dan jumlah yang
baru
Dim totalHarga As String = hargaBarang * jumlah

Using cmd As New OdbcCommand(query, conn)


' Mengisi parameter dengan nilai baru
cmd.Parameters.AddWithValue("NamaBarang", namaBarang)
cmd.Parameters.AddWithValue("HargaBarang", hargaBarang)
cmd.Parameters.AddWithValue("Jumlah", jumlah)
cmd.Parameters.AddWithValue("TotalHarga", totalHarga)
cmd.Parameters.AddWithValue("KodeBarang", kodeBarang)

' Menjalankan perintah update


cmd.ExecuteNonQuery()

End Using
End Using

MessageBox.Show("Data berhasil diupdate.", "Sukses",


MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Private Sub HapusDataDariDatabase(ByVal kodeBarang As String)


Try
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

Dim query As String = "DELETE FROM barang WHERE KodeBarang = ?"


Using cmd As New OdbcCommand(query, conn)
cmd.Parameters.AddWithValue("KodeBarang", kodeBarang)
cmd.ExecuteNonQuery()
End Using
End Using

MessageBox.Show("Data berhasil dihapus dari database.", "Sukses",


MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class

Form Data Pelanggan

Imports System.Data.Odbc
Public Class dataPelanggan
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
' Ambil nilai dari inputan pengguna atau formulir
Dim kodePelanggan As String = txtKodePelanggan.Text
Dim namaPelanggan As String = txtNamaPelanggan.Text
Dim alamatPelanggan As String = txtAlamatPelanggan.Text
Dim noHp As String = txtNoHp.Text

' Membuat koneksi


Using connection As OdbcConnection = DatabaseModule.GetConnection()
Try
' Buka koneksi
connection.Open()
' Membuat perintah SQL untuk menyisipkan data
Dim query As String = "INSERT INTO pelanggan (KodePelanggan,
NamaPelanggan, Alamat, NoHp) VALUES (?, ?, ?, ?)"

' Membuat objek perintah dan menetapkan parameter


Using command As New OdbcCommand(query, connection)
command.Parameters.AddWithValue("@KodePelanggan",
kodePelanggan)
command.Parameters.AddWithValue("@NamaPelanggan",
namaPelanggan)
command.Parameters.AddWithValue("@Alamat", alamatPelanggan)
command.Parameters.AddWithValue("@NoHp", noHp)

' Eksekusi perintah SQL


command.ExecuteNonQuery()

MessageBox.Show("Data barang berhasil dimasukkan ke dalam


database.")
BersihkanInput()
TampilkanData()
txtKodePelanggan.Text = GenerateKodePelanggan()
End Using
Catch ex As Exception
MessageBox.Show("Error: " & ex.Message)
End Try
End Using
End Sub
Private Sub TampilkanData()
' Tampilkan data di DataGridView
Dim dt As New DataTable()
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()
' Ganti "NamaTabel" dengan nama tabel Anda
Dim query As String = "SELECT * FROM pelanggan"
Dim da As New OdbcDataAdapter(query, conn)
dt.Clear()
da.Fill(dt)
End Using

' Ganti DataGridView1 dengan nama DataGridView Anda


DataGridView1.DataSource = dt
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles


Button2.Click
BersihkanInput()
End Sub
Private Sub BersihkanInput()
txtKodePelanggan.Clear()
txtNamaPelanggan.Clear()
txtAlamatPelanggan.Clear()
txtNoHp.Clear()
End Sub
Private Sub UpdateDataPelanggan(ByVal kodePelanggan As String, ByVal
namaPelanggan As String, ByVal alamatPelanggan As String, ByVal nomorHandphone As
String)
Try
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Query update data pelanggan di database


Dim query As String = "UPDATE pelanggan SET NamaPelanggan = ?,
Alamat = ?, NoHp = ? WHERE KodePelanggan = ?"

Using cmd As New OdbcCommand(query, conn)


' Mengisi parameter dengan nilai baru

cmd.Parameters.AddWithValue("NamaPelanggan", namaPelanggan)
cmd.Parameters.AddWithValue("Alamat", alamatPelanggan)
cmd.Parameters.AddWithValue("NoHp", nomorHandphone)
cmd.Parameters.AddWithValue("KodePelanggan", kodePelanggan)

' Menjalankan perintah update


cmd.ExecuteNonQuery()
End Using
End Using

MessageBox.Show("Data pelanggan berhasil diupdate.", "Sukses",


MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub HapusDataPelanggan(ByVal kodePelanggan As String)
Try
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Query hapus data pelanggan dari database


Dim query As String = "DELETE FROM pelanggan WHERE KodePelanggan
= ?"

Using cmd As New OdbcCommand(query, conn)


' Mengisi parameter dengan nilai yang akan dihapus
cmd.Parameters.AddWithValue("KodePelanggan", kodePelanggan)

' Menjalankan perintah hapus


cmd.ExecuteNonQuery()
End Using
End Using

MessageBox.Show("Data pelanggan berhasil dihapus.", "Sukses",


MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Private Sub dataPelanggan_Load(sender As Object, e As EventArgs) Handles


MyBase.Load
TampilkanData()
txtKodePelanggan.Text = GenerateKodePelanggan()
End Sub
Private Function GenerateKodePelanggan() As String
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Mencari nilai maksimum dari kolom KodeBarang di tabel barang


Dim query As String = "SELECT MAX(KodePelanggan) FROM pelanggan"
Dim cmd As New OdbcCommand(query, conn)
Dim result As Object = cmd.ExecuteScalar()

If result IsNot DBNull.Value AndAlso result IsNot Nothing Then


' Jika ada nilai maksimum, tambahkan 1 untuk membuat kode barang
baru
Dim maksimumKode As Integer = Convert.ToInt32(result)
maksimumKode += 1
Return maksimumKode.ToString("D3") ' Format sebagai string dengan
panjang 3 digit, misalnya "001"
Else
' Jika belum ada data barang, kita mulai dari 1
Return "001"
End If
End Using
End Function

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles


Button3.Click
direkturForm.Show()
Me.Hide()
End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles


Button5.Click
If Not String.IsNullOrEmpty(txtKodePelanggan.Text) Then
' Konfirmasi pengguna apakah yakin untuk menghapus data pelanggan
Dim result As DialogResult = MessageBox.Show("Apakah Anda yakin untuk
menghapus data pelanggan ini?", "Konfirmasi Hapus", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)

If result = DialogResult.Yes Then


' Panggil fungsi untuk menghapus data pelanggan dari database
HapusDataPelanggan(txtKodePelanggan.Text)

' Menampilkan kembali data pelanggan setelah proses delete


selesai
TampilkanData()

' Membersihkan TextBox setelah proses delete


BersihkanInput()
End If
Else
MessageBox.Show("Pilih baris data pelanggan yang ingin dihapus.",
"Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles


Button4.Click
If Not String.IsNullOrEmpty(txtKodePelanggan.Text) Then
' Konfirmasi pengguna apakah yakin untuk update data
Dim result As DialogResult = MessageBox.Show("Apakah Anda yakin untuk
update data pelanggan ini?", "Konfirmasi Update", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)

If result = DialogResult.Yes Then


' Panggil fungsi untuk update data pelanggan di database
UpdateDataPelanggan(txtKodePelanggan.Text, txtNamaPelanggan.Text,
txtAlamatPelanggan.Text, txtNoHp.Text)

' Menampilkan kembali data pelanggan setelah proses update


selesai
TampilkanData()
' Membersihkan TextBox setelah proses update
BersihkanInput()
End If
Else
MessageBox.Show("Pilih baris data pelanggan yang ingin diupdate.",
"Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As


DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
If e.RowIndex >= 0 Then
' Mendapatkan indeks baris yang diklik
Dim rowIndex As Integer = e.RowIndex

' Menampilkan data di dalam TextBox untuk update


txtKodePelanggan.Text =
DataGridView1.Rows(rowIndex).Cells("KodePelanggan").Value.ToString()
txtNamaPelanggan.Text =
DataGridView1.Rows(rowIndex).Cells("NamaPelanggan").Value.ToString()
txtAlamatPelanggan.Text =
DataGridView1.Rows(rowIndex).Cells("Alamat").Value.ToString()
txtNoHp.Text =
DataGridView1.Rows(rowIndex).Cells("NoHp").Value.ToString()
End If
End Sub
End Class

Form Login

Imports System.Data.Odbc
Imports Tugas.direkturForm
Public Class Form1
Dim connectionString As String = "Driver={MySQL ODBC 8.3 Unicode
Driver};Server=localhost;Database=db_polaroid;User=root;Password=;"
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles
txtUsername.TextChanged

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles


Button1.Click
Dim username = txtUsername.Text
Dim password = txtPassword.Text

Dim role = GetRoleFromDatabase(username, password)

If role IsNot Nothing Then


MessageBox.Show("Login berhasil! Peran Anda: " & role)

' Arahkan ke halaman sesuai dengan peran (role)


If role = "Direktur" Then
' Arahkan ke halaman direktur
Dim direkturForm As New DirekturForm
direkturForm.Show
ElseIf role = "Admin" Then
' Arahkan ke halaman admin
Dim adminForm As New AdminForm
adminForm.Show
End If

' Sembunyikan form login


Hide()
Else
MessageBox.Show("Login gagal. Cek kembali username dan password.")
End If
End Sub
Private Function GetRoleFromDatabase(username As String, password As String)
As String
Using connection As OdbcConnection = DatabaseModule.GetConnection()
Try
connection.Open()

Dim query As String = "SELECT jabatan FROM users WHERE username=?


AND password=?"
Using command As New OdbcCommand(query, connection)
command.Parameters.AddWithValue("@username", username)
command.Parameters.AddWithValue("@password", password)

Dim role As Object = command.ExecuteScalar()


Return If(role IsNot Nothing, role.ToString(), Nothing)
End Using
Catch ex As Exception
MessageBox.Show("Error: " & ex.Message)
Return Nothing
End Try
End Using
End Function

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles


Button2.Click
End
End Sub
Private Sub Label4_Click(sender As Object, e As EventArgs) Handles
Label4.Click, Label5.Click
Form2.Show()
Me.Hide()
End Sub
End Class

Form Pembayaran

Imports System.Data.Odbc

Public Class transaksiPembayaran


Dim dtPenjualan As New DataTable()
Dim nomorPembayaran As Integer = 0 ' Variabel untuk menyimpan nomor
pembayaran

Private Sub transaksiPembayaran_Load(sender As Object, e As EventArgs)


Handles MyBase.Load
' Mengisi nomor pembayaran secara otomatis
txtKodePembayaran.Text = GenerateNomorPembayaran()
DateTimePicker1.Value = DateTime.Now

' Mengisi data ComboBoxNoNota dari nomor nota pada DataTable Penjualan
LoadDataPenjualan()
TampilkanData()
End Sub
Private Sub TampilkanData()
' Tampilkan data di DataGridView
Dim dt As New DataTable()
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()
' Ganti "NamaTabel" dengan nama tabel Anda
Dim query As String = "SELECT * FROM pembayaran"
Dim da As New OdbcDataAdapter(query, conn)
dt.Clear()
da.Fill(dt)
End Using
' Ganti DataGridView1 dengan nama DataGridView Anda
DataGridView1.DataSource = dt
End Sub
Private Sub LoadDataPenjualan()
' Membuat koneksi
Using connection As OdbcConnection = DatabaseModule.GetConnection()
connection.Open()
Dim query As String = "SELECT NoNota, TotalHarga FROM penjualan"
Dim da As New OdbcDataAdapter(query, connection)
dtPenjualan.Clear()
da.Fill(dtPenjualan)
End Using

' Mengisi ComboBoxKodeBarang dengan data dari tabel barang


txtNoNota.DataSource = dtPenjualan
txtNoNota.DisplayMember = "NoNota"
txtNoNota.ValueMember = "NoNota"
End Sub

Private Sub txtNoNota_SelectedIndexChanged(sender As Object, e As EventArgs)


Handles txtNoNota.SelectedIndexChanged
' Mengisi total harga secara otomatis berdasarkan nomor nota yang dipilih
If txtNoNota.SelectedIndex >= 0 Then
Dim nomorNota As String = txtNoNota.Text.Trim()
Dim totalHarga As Double = GetTotalHargaByNomorNota(nomorNota)

' Menampilkan total harga di TextBoxTotalHarga


txtTotal.Text = totalHarga.ToString("N2") ' Format sebagai angka
dengan dua digit desimal
End If
End Sub
Private Function GetTotalHargaByNomorNota(nomorNota As String) As Double
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()
Dim query As String = "SELECT TotalHarga FROM penjualan WHERE NoNota
= ?"
Dim cmd As New OdbcCommand(query, conn)
cmd.Parameters.AddWithValue("NoNota", nomorNota)

Dim result As Object = cmd.ExecuteScalar()

If result IsNot DBNull.Value AndAlso result IsNot Nothing Then


Return Convert.ToDouble(result)
Else
Return 0.0
End If
End Using
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles


Button1.Click
Dim uangDibayar As Double

If Double.TryParse(txtUangBayar.Text, uangDibayar) Then


' Menghitung kembalian
Dim totalHarga As Double = Convert.ToDouble(txtTotal.Text)
Dim uangKembalian As Double = uangDibayar - totalHarga

' Menampilkan kembalian di TextBoxKembalian


txtUangKembali.Text = uangKembalian.ToString("N2") ' Format sebagai
angka dengan dua digit desimal
' Memasukkan data pembayaran ke dalam database
SimpanDataPembayaran(uangDibayar, uangKembalian)
Else
MessageBox.Show("Masukkan jumlah uang yang valid.")
End If
End Sub
Private Sub SimpanDataPembayaran(uangDibayar As Double, uangKembalian As
Double)
Using conn As OdbcConnection = DatabaseModule.GetConnection()
Dim cmd As New OdbcCommand()

Try
conn.Open()

' Ganti "TabelPembayaran" dengan nama tabel pembayaran Anda


cmd.CommandText = "INSERT INTO pembayaran (NoPembayaran,
TanggalBayar, NoNota, Total, UangBayar, UangKembali) VALUES (?, ?, ?, ?, ?, ?)"
cmd.Connection = conn

' Gunakan nilai dari kontrol-kontrol di form


cmd.Parameters.AddWithValue("NoPembayaran", nomorPembayaran)
cmd.Parameters.AddWithValue("TanggalBayar",
DateTimePicker1.Value)
cmd.Parameters.AddWithValue("NoNota", txtNoNota.SelectedValue)
cmd.Parameters.AddWithValue("Total", txtTotal.Text)
cmd.Parameters.AddWithValue("UangBayar", uangDibayar)
cmd.Parameters.AddWithValue("UangKembali", uangKembalian)

cmd.ExecuteNonQuery()

MessageBox.Show("Pembayaran berhasil disimpan!")

' Menambah nomor pembayaran untuk ke transaksi berikutnya


nomorPembayaran += 1
txtKodePembayaran.Text = GenerateNomorPembayaran()

' Mengosongkan kontrol-kontrol setelah pembayaran berhasil


disimpan
txtNoNota.SelectedIndex = -1
txtTotal.Clear()
txtUangBayar.Clear()
txtUangKembali.Clear()

TampilkanData()
Catch ex As Exception
MessageBox.Show("Error: " & ex.Message)
Finally
conn.Close()
End Try
End Using
End Sub
Private Function GenerateNomorPembayaran() As Integer
Dim nomorPembayaran As Integer = 1 ' Nomor nota awal

' Mengambil nomor nota terakhir dari database


Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()
Dim query As String = "SELECT MAX(NoPembayaran) FROM pembayaran"
Dim cmd As New OdbcCommand(query, conn)
Dim result As Object = cmd.ExecuteScalar()

If result IsNot DBNull.Value AndAlso result IsNot Nothing Then


' Jika ada nomor nota terakhir, tambahkan 1
nomorPembayaran = Convert.ToInt32(result) + 1
End If
End Using
Return nomorPembayaran
End Function
Private Sub BersihkanInput()
txtTotal.Clear()
txtUangBayar.Clear()
txtUangKembali.Clear()
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles


Button2.Click
BersihkanInput()
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles


Button3.Click
direkturForm.Show()
Me.Hide()
End Sub

Private Sub HapusDataPembayaran(ByVal noPembayaran As String)


Try
Using conn As OdbcConnection = DatabaseModule.GetConnection()
conn.Open()

' Query hapus data pembayaran dari database


Dim query As String = "DELETE FROM pembayaran WHERE NoPembayaran
= ?"

Using cmd As New OdbcCommand(query, conn)


' Mengisi parameter dengan nilai yang akan dihapus
cmd.Parameters.AddWithValue("NoPembayaran", noPembayaran)

' Menjalankan perintah hapus


cmd.ExecuteNonQuery()
' Menambah nomor pembayaran untuk ke transaksi berikutnya
nomorPembayaran += 1
txtKodePembayaran.Text = GenerateNomorPembayaran()
End Using
End Using

MessageBox.Show("Data pembayaran berhasil dihapus.", "Sukses",


MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles


Button5.Click
If Not String.IsNullOrEmpty(txtKodePembayaran.Text) Then
' Konfirmasi pengguna apakah yakin untuk menghapus data pembayaran
Dim result As DialogResult = MessageBox.Show("Apakah Anda yakin untuk
menghapus data pembayaran ini?", "Konfirmasi Hapus", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)

If result = DialogResult.Yes Then


' Panggil fungsi untuk menghapus data pembayaran dari database
HapusDataPembayaran(txtKodePembayaran.Text)

' Menampilkan kembali data pembayaran setelah proses delete


selesai
TampilkanData()

' Membersihkan TextBox setelah proses delete


BersihkanInput()
End If
Else
MessageBox.Show("Pilih baris data pembayaran yang ingin dihapus.",
"Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As


DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
If e.RowIndex >= 0 Then
' Mendapatkan indeks baris yang diklik
Dim rowIndex As Integer = e.RowIndex

' Menampilkan data di dalam TextBox untuk update


txtKodePembayaran.Text =
DataGridView1.Rows(rowIndex).Cells("NoPembayaran").Value.ToString()
DateTimePicker1.Value =
Convert.ToDateTime(DataGridView1.Rows(rowIndex).Cells("TanggalBayar").Value)
txtNoNota.Text =
DataGridView1.Rows(rowIndex).Cells("NoNota").Value.ToString()
txtTotal.Text =
DataGridView1.Rows(rowIndex).Cells("Total").Value.ToString()
txtUangBayar.Text =
DataGridView1.Rows(rowIndex).Cells("UangBayar").Value.ToString()
txtUangKembali.Text =
DataGridView1.Rows(rowIndex).Cells("UangKembali").Value.ToString()
End If
End Sub
End Class

Form Transaksi Penjualan


Imports System.Data.Odbc

Public Class transaksiPenjualan

Dim dtBarang As New DataTable()

Dim dtPelanggan As New DataTable()

Private Sub transaksiPenjualan_Load(sender As Object, e As EventArgs) Handles MyBase.Load

' Memuat data barang dari database

LoadDataBarang()

' Memuat data pelanggan dari database

LoadDataPelanggan()

' Mengisi nomor nota secara otomatis

currentNomorNota = GenerateNomorNota()

txtNoNota.Text = currentNomorNota.ToString()

' Mengisi tanggal secara otomatis

DateTimePicker1.Value = DateTime.Now

TampilkanData()
End Sub

Private Sub LoadDataBarang()

' Membuat koneksi

Using connection As OdbcConnection = DatabaseModule.GetConnection()

connection.Open()

Dim query As String = "SELECT KodeBarang, NamaBarang, HargaBarang, Jumlah, TotalHarga


FROM barang"

Dim da As New OdbcDataAdapter(query, connection)

dtBarang.Clear()

da.Fill(dtBarang)

End Using

' Mengisi ComboBoxKodeBarang dengan data dari tabel barang

txtKodeBarang.DataSource = dtBarang

txtKodeBarang.DisplayMember = "KodeBarang"

txtKodeBarang.ValueMember = "KodeBarang"

End Sub

Private Sub LoadDataPelanggan()

Using connection As OdbcConnection = DatabaseModule.GetConnection()

connection.Open()

Dim query As String = "SELECT KodePelanggan, NamaPelanggan, Alamat FROM pelanggan"

Dim da As New OdbcDataAdapter(query, connection)

dtPelanggan.Clear()

da.Fill(dtPelanggan)

End Using

' Mengisi ComboBoxKodePelanggan dengan data dari tabel pelanggan

txtKodePelanggan.DataSource = dtPelanggan

txtKodePelanggan.DisplayMember = "KodePelanggan"

txtKodePelanggan.ValueMember = "KodePelanggan"

End Sub
Private Sub txtKodeBarang_SelectedIndexChanged(sender As Object, e As EventArgs) Handles
txtKodeBarang.SelectedIndexChanged

' Mengisi TextBoxNamaBarang berdasarkan pilihan kode barang

If txtKodeBarang.SelectedIndex >= 0 Then

Dim selectedRow As DataRow = dtBarang.Rows(txtKodeBarang.SelectedIndex)

txtNamaBarang.Text = selectedRow("NamaBarang").ToString()

txtHargaBarang.Text = selectedRow("HargaBarang").ToString()

txtJumlah.Text = selectedRow("Jumlah").ToString()

txtTotalHarga.Text = selectedRow("TotalHarga").ToString()

End If

End Sub

Private Sub txtKodePelanggan_SelectedIndexChanged(sender As Object, e As EventArgs) Handles


txtKodePelanggan.SelectedIndexChanged

If txtKodePelanggan.SelectedIndex >= 0 Then

Dim selectedRow As DataRow = dtPelanggan.Rows(txtKodePelanggan.SelectedIndex)

txtNamaPelanggan.Text = selectedRow("NamaPelanggan").ToString()

txtAlamat.Text = selectedRow("Alamat").ToString()

End If

End Sub

Private Sub txtJumlah_TextChanged(sender As Object, e As EventArgs) Handles


txtJumlah.TextChanged, txtHargaBarang.TextChanged

' Menghitung total harga berdasarkan harga barang dan jumlah

If IsNumeric(txtHargaBarang.Text) AndAlso IsNumeric(txtJumlah.Text) Then

Dim hargaBarang = Convert.ToDouble(txtHargaBarang.Text)

Dim jumlah = Convert.ToInt32(txtJumlah.Text)

Dim totalHarga = hargaBarang * jumlah

' Menampilkan total harga di TextBoxTotalHarga


txtTotalHarga.Text = totalHarga.ToString("N2") ' Format sebagai angka dengan dua digit
desimal

End If

End Sub

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

' Memasukkan data transaksi ke dalam database

SimpanDataTransaksi()

End Sub

Private Function GenerateNomorNota() As Integer

Dim nomorNota As Integer = 1 ' Nomor nota awal

' Mengambil nomor nota terakhir dari database

Using conn As OdbcConnection = DatabaseModule.GetConnection()

conn.Open()

Dim query As String = "SELECT MAX(NoNota) FROM penjualan"

Dim cmd As New OdbcCommand(query, conn)

Dim result As Object = cmd.ExecuteScalar()

If result IsNot DBNull.Value AndAlso result IsNot Nothing Then

' Jika ada nomor nota terakhir, tambahkan 1

nomorNota = Convert.ToInt32(result) + 1

End If

End Using

Return nomorNota

End Function

Private currentNomorNota As Integer = 0

Private Sub SimpanDataTransaksi()

Dim conn As OdbcConnection = DatabaseModule.GetConnection()

Dim cmd As New OdbcCommand()


Try

conn.Open()

' Ganti "TabelTransaksi" dengan nama tabel transaksi Anda

cmd.CommandText = "INSERT INTO penjualan (NoNota, Tanggal, KodeBarang, NamaBarang,


HargaBarang, Jumlah, TotalHarga, KodePelanggan, NamaPelanggan, Alamat) VALUES (?, ?, ?, ?, ?, ?,
?, ?, ?, ?)"

cmd.Connection = conn

' Gunakan nilai dari kontrol-kontrol di form

cmd.Parameters.AddWithValue("NoNota", txtNoNota.Text)

cmd.Parameters.AddWithValue("Tanggal", DateTimePicker1.Value)

cmd.Parameters.AddWithValue("KodeBarang", txtKodeBarang.SelectedValue)

cmd.Parameters.AddWithValue("NamaBarang", txtNamaBarang.Text)

cmd.Parameters.AddWithValue("HargaBarang", txtHargaBarang.Text)

cmd.Parameters.AddWithValue("Jumlah", txtJumlah.Text)

cmd.Parameters.AddWithValue("TotalHarga", txtTotalHarga.Text)

cmd.Parameters.AddWithValue("KodePelanggan", txtKodePelanggan.SelectedValue)

cmd.Parameters.AddWithValue("NamaPelanggan", txtNamaPelanggan.Text)

cmd.Parameters.AddWithValue("Alamat", txtAlamat.Text)

cmd.ExecuteNonQuery()

MessageBox.Show("Data transaksi berhasil disimpan!")

' Setelah data transaksi berhasil disimpan

currentNomorNota += 1

txtNoNota.Text = currentNomorNota.ToString()

TampilkanData()

Catch ex As Exception

MessageBox.Show("Error: " & ex.Message)


Finally

conn.Close()

End Try

End Sub

Private Sub TampilkanData()

' Tampilkan data di DataGridView

Dim dt As New DataTable()

Using conn As OdbcConnection = DatabaseModule.GetConnection()

conn.Open()

' Ganti "NamaTabel" dengan nama tabel Anda

Dim query As String = "SELECT * FROM penjualan"

Dim da As New OdbcDataAdapter(query, conn)

dt.Clear()

da.Fill(dt)

End Using

' Ganti DataGridView1 dengan nama DataGridView Anda

DataGridView1.DataSource = dt

End Sub

Private Sub BersihkanInput()

txtKodeBarang.Refresh()

txtNamaBarang.Clear()

txtHargaBarang.Clear()

txtJumlah.Clear()

txtTotalHarga.Clear()

txtKodePelanggan.Refresh()

txtNamaPelanggan.Clear()

txtAlamat.Clear()

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

BersihkanInput()

End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

direkturForm.Show()

Me.Hide()

End Sub

Private Sub HapusDataPenjualan(ByVal noNota As String)

Try

Using conn As OdbcConnection = DatabaseModule.GetConnection()

conn.Open()

' Query hapus data pembayaran dari database

Dim query As String = "DELETE FROM penjualan WHERE NoNota = ?"

Using cmd As New OdbcCommand(query, conn)

' Mengisi parameter dengan nilai yang akan dihapus

cmd.Parameters.AddWithValue("NoNota", noNota)

' Menjalankan perintah hapus

cmd.ExecuteNonQuery()

' Setelah data transaksi berhasil disimpan

currentNomorNota += 1

txtNoNota.Text = currentNomorNota.ToString()

End Using

End Using

MessageBox.Show("Data Penjualan berhasil dihapus.", "Sukses", MessageBoxButtons.OK,


MessageBoxIcon.Information)

Catch ex As Exception
MessageBox.Show("Terjadi kesalahan: " & ex.Message, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error)

End Try

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

If Not String.IsNullOrEmpty(txtNoNota.Text) Then

' Konfirmasi pengguna apakah yakin untuk menghapus data pembayaran

Dim result As DialogResult = MessageBox.Show("Apakah Anda yakin untuk menghapus data


pembayaran ini?", "Konfirmasi Hapus", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If result = DialogResult.Yes Then

' Panggil fungsi untuk menghapus data pembayaran dari database

HapusDataPenjualan(txtNoNota.Text)

' Menampilkan kembali data pembayaran setelah proses delete selesai

TampilkanData()

' Membersihkan TextBox setelah proses delete

BersihkanInput()

End If

Else

MessageBox.Show("Pilih baris data pembayaran yang ingin dihapus.", "Peringatan",


MessageBoxButtons.OK, MessageBoxIcon.Warning)

End If

End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs)


Handles DataGridView1.CellContentClick

If e.RowIndex >= 0 Then

' Mendapatkan indeks baris yang diklik

Dim rowIndex As Integer = e.RowIndex


' Menampilkan data di dalam TextBox untuk update

txtNoNota.Text = DataGridView1.Rows(rowIndex).Cells("NoNota").Value.ToString()

DateTimePicker1.Value =
Convert.ToDateTime(DataGridView1.Rows(rowIndex).Cells("Tanggal").Value)

txtKodeBarang.Text = DataGridView1.Rows(rowIndex).Cells("KodeBarang").Value.ToString()

txtNamaBarang.Text = DataGridView1.Rows(rowIndex).Cells("NamaBarang").Value.ToString()

txtHargaBarang.Text = DataGridView1.Rows(rowIndex).Cells("HargaBarang").Value.ToString()

txtJumlah.Text = DataGridView1.Rows(rowIndex).Cells("Jumlah").Value.ToString()

txtTotalHarga.Text = DataGridView1.Rows(rowIndex).Cells("TotalHarga").Value.ToString()

txtKodePelanggan.Text =
DataGridView1.Rows(rowIndex).Cells("KodePelanggan").Value.ToString()

txtNamaBarang.Text =
DataGridView1.Rows(rowIndex).Cells("NamaPelanggan").Value.ToString()

txtAlamat.Text = DataGridView1.Rows(rowIndex).Cells("Alamat").Value.ToString()

End If

End Sub

End Class

Link Video:

https://drive.google.com/drive/folders/1rUlE0jX5EERKzbHfgmZc_1TzRLcaGNk8?usp=drive_link

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy