Aplikasi Inventaris - Part 4 : Membuat CRUD Untuk Form Ruang

Yo... berjumpa lagi, masih dengan tutorial membuat Aplikasi Inventaris, kita sudah sampai pada Part 4 : Membuat CRUD Untuk Form Ruang yang nanti digunakan apabila kita ingin menambahkan ruangan baru misalnya, mengedit nama ruangan dan menghapus ruangan yang sudah tidak dipakai.

Okeh... Langsung saja kita mulai, pada tutorial sebelumnya kita sudah membuat beberapa desain user control, dan dilanjut dengan membuat class baru untuk CRUD form ruang yang sudah kita buat..

Class Ruang

Buat class baru dengan nama clsRuang
  • Masukan kodingan berikut dibagian paling atas, sebelum Class clsRuang

  • Import System.Data.SqlClient


  • Lalu masukan beberapa kodingan dibawah ini ke dalam Class clsRuang
  • Menampilkan data pada dataGridView

  • 
    Dim db As New Database
    Dim cmd As SqlCommand
    Dim dt As DataTable
    Dim da As SqlDataAdapter
    Dim query As String
     
    Public Sub tampil()
        db.koneksi()
        query = "SELECT * FROM ruang"
        da = New SqlDataAdapter(query, db.konek)
        dt = New DataTable
        da.Fill(dt)
     
        Form1.UcInventaris1.dgvRuang.DataSource = dt
        Form1.UcInventaris1.dgvRuang.Columns(0).Visible = False
    End Sub
    


  • Membuat kode otomatis untuk mengisi TextBox kode ruangan

  • 
    Public Function cekKodeRuang()
        db.koneksi()
        query = "SELECT * FROM ruang WHERE id_ruang IN(SELECT MAX(id_ruang) FROM ruang)"
        cmd = New SqlCommand(query, db.konek)
        Dim er = cmd.ExecuteReader
        er.Read()
     
        If Not er.HasRows Then
            Dim kd_ruang = "RNG" + "01"
            Return kd_ruang
            db.konek.Close()
        Else
            Dim cek = Microsoft.VisualBasic.Right(er.GetString(2), 2) + 1
            Dim kd_ruang = "RNG" + Microsoft.VisualBasic.Right("000" & cek, 2)
            Return kd_ruang
            db.konek.Close()
        End If
    End Function
    


  • Tambah data baru

  • 
    Public Sub tambah(nama_ruang As String, kode_ruang As String, keterangan As String)
        db.koneksi()
        query = "INSERT INTO ruang (nama_ruang, kode_ruang, keterangan) VALUES (@nm_ruang, @kd_ruang, @ket)"
        cmd = New SqlCommand(query, db.konek)
     
        cmd.Parameters.Add("@nm_ruang", SqlDbType.VarChar).Value = nama_ruang
        cmd.Parameters.Add("@kd_ruang", SqlDbType.VarChar).Value = kode_ruang
        cmd.Parameters.Add("@ket", SqlDbType.VarChar).Value = keterangan
     
        Try
            cmd.ExecuteNonQuery()
            MsgBox("Data ruangan berhasil ditambah", vbInformation, "")
            tampil()
            db.konek.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    


  • Mengubah data

  • 
    Public Function ubah(nm_ruang As String, keterangan As String, id As Integer)
        db.koneksi()
        query = "UPDATE ruang SET nama_ruang = @nr, keterangan = @ket WHERE id_ruang = @id"
        cmd = New SqlCommand(query, db.konek)
     
        cmd.Parameters.Add("@nr", SqlDbType.VarChar).Value = nm_ruang
        cmd.Parameters.Add("@ket", SqlDbType.VarChar).Value = keterangan
        cmd.Parameters.Add("@id", SqlDbType.Int).Value = id
     
        If cmd.ExecuteNonQuery Then
            Return True
        Else
            Return False
        End If
    End Function
    


  • Menghapus data

  • 
    Public Function hapus(id As Integer)
        db.koneksi()
        query = "DELETE FROM ruang WHERE id_ruang = @id"
        cmd = New SqlCommand(query, db.konek)
     
        cmd.Parameters.Add("@id", SqlDbType.Int).Value = id
     
        If cmd.ExecuteNonQuery Then
            Return True
        Else
            Return False
        End If
    End Function
    


  • Cari data berdasarkan nama ruangan

  • 
    Public Sub cari()
        db.koneksi()
        query = "SELECT * FROM ruang WHERE nama_ruang LIKE '%" & Form1.UcInventaris1.txtCariRuang.Text & "%'"
     
        Dim da As New SqlDataAdapter(query, db.konek)
        Dim dt As New DataTable
        da.Fill(dt)
     
        Form1.UcInventaris1.dgvRuang.DataSource = dt
        Form1.UcInventaris1.dgvRuang.Columns(0).Visible = False
    End Sub
    

Form Ruang

  • Tampilan form Ruang
Desain form ruang pada Aplikasi Inventaris
  • User Control Ruang
Desain user control pada Aplikasi Inventaris
Ubah property Enable menjadi False pada TextBox Nama Ruangan, Kode Ruangan, Keterangan dan juga untuk Button Simpan dan Batal
  • Letakan kodingan berikut ke dalam User Control Inventaris (ucInventaris)

  • 
    Dim ruang As New clsRuang
     
    'untuk membersihkan form
    Public Sub bersih()
        txtNmRuang.Text = ""
        txtKdRuang.Text = ""
        rtxtKet.Text = ""
    End Sub
     
    'untuk mengaktifkan/menonaktifkan textbox dan button ketika button tambah data diklik
    Public Sub aktif()
        txtNmRuang.Enabled = True
        rtxtKet.Enabled = True
        btnSimpan.Enabled = True
        btnBatal.Enabled = True
        btnTambah.Enabled = False
        btnUbah.Enabled = False
    End Sub
     
    'untuk mengaktifkan/menonaktifkan textbox dan button ketika tombol simpan atau batal diklik
    Public Sub bliAktif()
        txtNmRuang.Enabled = False
        rtxtKet.Enabled = False
        btnSimpan.Enabled = False
        btnBatal.Enabled = False
        btnTambah.Enabled = True
        btnUbah.Enabled = True
    End Sub
    


  • Masukan kodingan ruang.tampil() pada button Menu Inventaris untuk menampilkan data pada dataGrid ketika button diklik
  • Sebelum meletakan kodingan selanjutnya, kita letakan dulu kodingannya dalam dataGridView pada form Ruang, ubah eventnya menjadi cellClick() lalu masukan kodingan berikut supaya ketika cell dataGrid diklik akan langsung tampil pada textbox

  • 
    txtNmRuang.Text = dgvRuang.CurrentRow.Cells(1).Value
    txtKdRuang.Text = dgvRuang.CurrentRow.Cells(2).Value
    rtxtKet.Text = dgvRuang.CurrentRow.Cells(3).Value
    

  • Letakan di button Tambah Data

  • 
    txtKdRuang.Text = ruang.cekKodeRuang 'mengisi kode ruang otomatis
    btnSimpan.Text = "Simpan"
    aktif()
    


  • Pada button Simpan

  • 
    If btnSimpan.Text = "Simpan" Then 'jika btnSimpan bertuliskan Simpan maka
        'jalankan perintah simpan
        ruang.tambah(txtNmRuang.Text, txtKdRuang.Text, rtxtKet.Text)
    Else
        'jalankan perintah update
        ruang.ubah(txtNmRuang.Text, rtxtKet.Text, dgvRuang.CurrentRow.Cells(0).Value)
    End If
    ruang.tampil() 'refresh datagridview
    ruang.cekKodeRuang() 'refresh kode ruang
    bersih() 'kosongkan form
    


  • Kodingan bliAktif() untuk button Batal
  • Letakan dalam button Ubah

  • 
    btnSimpan.Text = "Ubah"
    aktif()
    

  • Kodingan untuk button Hapus

  • 
    'isi pesan ketika tombol hapus diklik
    Dim pesan As String = MsgBox("Yakin akan menghapus data ini ?", vbYesNo, "")
     
    If pesan = vbYes Then 'jika pilih Yes
        ruang.hapus(dgvRuang.CurrentRow.Cells(0).Value) 'jalankan perintah hapus
        ruang.tampil() 'refresh data
    End If
    bersih()
    

Nah... Itu saja untuk tutorial kali ini, pada tutorial selanjutnya kita lanjut membuat Form Jenis, untuk desainnya sama saja seperti form ruang, kita tinggal ubah sedikit kodingannya.
Dan apabila ada kritik, saran ataupun pertanyaan jangan sungkan tinggal ketik saja dikolom komentar, sekian dan terimakasih.

Posting Komentar

0 Komentar