WIRATSOFT INC CORPORATION 2012
PENGKODEAN AKSES FORM SISTEM USER MICROSOFT VISUAL BASIC.NET 2005
WIRAT.NET 10/11/2012
Hak Akses USER Pengantar Tulisan Pada saat membuat aplikasi (vb.net) untuk materi skripsi, saya terbesit pertanyaan. “Bagaimana cara memberikan akses form secara dinamis pada sistem untuk user yang ada ??” Coba browsing dan tanya-tanya sama master-master vb.net akhirnya bisa nemuin sebuah cara untuk mewujudkan hal itu. Nah, bagi agan-agan sekalian yang mau ikut sama-sama belajar mari diikutin secara seksama bagaimana cara membuatnya. Dicoba pelan-pelan bagian demi bagian. Salam,
Illuminator372
Tahapan Proses
Bikin Database Bikin Layout Form Bikin Coding
Page 2 of 9
Bikin Database
Beberapa tabel yang akan dibuat adalah seperti gambar diatas, pada tutorial ini saya menggunakan Ms. Access 2007. Detailnya design tabel-tabelnya sebagai berikut :
FORM_TABLE Field Name IDFORM FORMNAME
Text Text
USER_TABLE Field Name IDUSER USERNAME PASSWORD STATUS
Text Text Text Text
Data Type
Field Size
Keterangan Primary Key
Field Size
Keterangan Primary Key
7 25
Data Type 7 25 25 15
Page 3 of 9
AKSES_TABLE Field Name IDUSER IDFORM AKSES_FORM
Data Type Text Text Text
Field Size 7 7 1
Page 4 of 9
Keterangan Foreign Key Foreign Key
Bikin Layout Form
Silahkan dibuat design form sesuai toolbox yang terlihat pada gambar. ComboBox, Button, DataGridView.
Page 5 of 9
Bikin Coding
Class Koneksi Database Imports System.Data.OleDb Namespace AKSES_DATABASE Public Class DATABASEClass Dim KONEKSI As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=DB_GRIDVIEW.accdb;" _ & "Jet OLEDB:Database Password=321;") Public Function BUKAKONEKSI() As OleDbConnection KONEKSI.Open() Return KONEKSI End Function Public Function TUTUPKONEKSI() As OleDbConnection KONEKSI.Close() Return KONEKSI End Function End Class End Namespace
Class Proses Imports System.Data.OleDb Namespace AKSES_DML Public Class PROSESClass Dim KONEKSI As New AKSES_DATABASE.DATABASEClass Dim CMD As New OleDbCommand Public Function SIMPAN_AKSES(ByVal IDUSER As String, ByVal IDFORM As String, ByVal AKSES As String) CMD.CommandType = CommandType.Text CMD.CommandText = "INSERT INTO AKSES_TABLE VALUES('" & IDUSER & "','" & IDFORM & "','" & AKSES & "')" CMD.Connection = KONEKSI.BUKAKONEKSI CMD.ExecuteNonQuery() KONEKSI.TUTUPKONEKSI() Return KONEKSI End Function End Class End Namespace
Page 6 of 9
Script Form Imports System.Data.OleDb Public Class DGVCheckBox Dim KONEKSI As New AKSES_DATABASE.DATABASEClass Dim xSIMPAN As New AKSES_DML.PROSESClass Dim Dim Dim Dim Dim Dim
DTA As New OleDbDataAdapter DTS As New DataSet CMD As New OleDbCommand DTR As OleDbDataReader A As String B As String
Private Sub ISI_GRID() Try KONEKSI.TUTUPKONEKSI() DTA = New OleDbDataAdapter("SELECT * FROM FORM_TABLE ORDER BY IDFORM ASC", KONEKSI.BUKAKONEKSI) Try DTS.Tables("FORM_TABLE").Clear() Catch ex As Exception End Try DTA.Fill(DTS, "FORM_TABLE") Dim GRID As New DataView(DTS.Tables("FORM_TABLE")) DGVSample.DataSource = GRID 'ngunci columns tertentu DGVSample.Columns.Item(1).ReadOnly = True DGVSample.Columns.Item(2).ReadOnly = True Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Private Sub DGVCheckBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call ISI_GRID() Call ISI_Combo() End Sub Private Sub ISI_Combo() KONEKSI.TUTUPKONEKSI() CMD = New OleDbCommand("SELECT * FROM USER_TABLE ORDER BY IDUSER ASC", KONEKSI.BUKAKONEKSI) DTR = CMD.ExecuteReader CmbUSER.Items.Clear() While DTR.Read A = DTR.Item("IDUSER") B = DTR.Item("USERNAME") CmbUSER.Items.Add(A & " - " & B) End While End Sub
Page 7 of 9
Private Sub BtnSIMPAN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSIMPAN.Click Dim Y As String = Mid(CmbUSER.Text, 1, 7) Dim iROW As Integer Dim AKSES As String For iROW = 0 To DGVSample.Rows.Count - 1 'AksesBox = Nama CheckBox yang ada di DatagridView If DGVSample.Rows(iROW).Cells("AksesBox").Value Then AKSES = "1" Else AKSES = "0" End If 'Class Proses DML (Simpan Data) xSIMPAN.SIMPAN_AKSES(Y, DGVSample.Rows(iROW).Cells(1).Value, AKSES) Next iROW End Sub End Class
Sedikit penjelasan, tujuan dari coding ini yang bernilai “1” adalah form yang boleh diakses oleh user tersebut. Sedangkan yang bernilai “0” adalah form yang tidak boleh diakses oleh user. Untuk pengembangan berikutnya. Jangan lewatkan tutorial lanjutan dari penjelasan kali ini. So don’t missed it later !!
Page 8 of 9
Illuminator372 Kuliah D3nya diselesaikan pada tahun 2008 lalu di Kampus STMIK Bina Insani, Jurusan Teknik Informatika dan kemudian kembali melanjutkan S1nya pada tahun 2011 ditempat dan jurusan yang sama. Bekerja di PT Bridgestone Tire Indonesia sejak 2008. Bercita-cita dapat selalu mendedikasikan dirinya dalam bidang IT Indonesia dan Dunia. Kontak :
[email protected] bambangwiratmojo.wordpress.com / bambangwiratmojo.blogspot.com
PEMBERIAN HAK AKSES USER SISTEM SUPPORTED BY WIRATSOFT2012
Page 9 of 9