Tampilkan postingan dengan label Visual Basic. Tampilkan semua postingan
Tampilkan postingan dengan label Visual Basic. Tampilkan semua postingan

25 Juli 2013

Membuat Data Grid View Sebagai Lembar Kerja Pada VB.Net

DataGridView atau sering disingkat DGV, merupakan salah satu tool dalam Visual Basic yaitu berupa tabel seperti layaknya MS Excel yang bisa kita jadikan sebagai lembar kerja. DataGridView pada umunya berfungsi untuk menampilkan daftar barang atau nama dari tabel-tabel yang berasal dari database. Tetapi disini kita akan membahas cara menggunakan DataGridView sebagai lembar kerja atau form seperti pada MS Excel. 
Skenario formnya seperti ini, ada sebuah tabel yang berisi Uraian, Volume, Satuan, Harga satuan, dan Jumlah. Ketika kita mengisikan data pada kolom Volume dan Harga satuan, otomatis  pada kolom Jumlah akan terisi hasil perkalian antara 2 kolom tersebut. Untuk membuatnya ikuti langkah-langkahnya sebagai berikut.
1. Buka program Visual Studio.Net atau Visual Basic. Net 2005
2. Pilih New Project Aplication


3. Pilih DataGridView pada jendela Tool, drag pada form1 dengan menahan klik pada mouse


4. Membuat kolom pada DataGridView, Doubleclick pada halaman Form1 jangan pada halaman DataGridView, sehingga muncul jendela untuk menuliskan source kode. Ketik kode berikut ini di dalam Form1_Load

DataGridView1.Columns.Add("Uraian", "Uraian")
DataGridView1.Columns.Add("Volume", "Volume")
DataGridView1.Columns.Add("Satuan", "Satuan")
DataGridView1.Columns.Add("Harga Satuan", "Harga Satuan")
DataGridView1.Columns.Add("Jumlah", "Jumlah")
5. Menjadikan DataGridView sebagai lembar kerja, ketikkan kode berikut
Private Sub DGV1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
If e.ColumnIndex = 1 Then
DataGridView1.Rows(e.RowIndex).Cells(4).Value =    DataGridView1.Rows(e.RowIndex).Cells(1).Value * DataGridView1.Rows(e.RowIndex).Cells(3).Value
ElseIf e.ColumnIndex = 3 Then
DataGridView1.Rows(e.RowIndex).Cells(4).Value = DataGridView1.Rows(e.RowIndex).Cells(1).Value * DataGridView1.Rows(e.RowIndex).Cells(3).Value
End If
End Sub
6. Jalankan aplikasi dengan menekan tombol F5. Ingat jangan mengisi kolom Volume dan Harga satuan dengan selain angka karena akan menyebabkan aplikasi error.

Aplikasi ini biasa digunakan sebagai inputan untuk disimpan kedalam database. Mudah bukan? Selamat mencoba.

19 Juli 2013

Struktur Keputusan dan Perulangan

Perintah If...Then...Else
Salah satu tujuan pemrograman komputer adalah mengambil tugas rutin manusia untuk dalam mengambil keputusan-keputusan yang dapat diprogram. Misalnya seorang Dosen dalam menentukan Grade (A,B,C,D, atau E) nilai akhir mahasiswa dengan kondisi sebagai berikut :
Jika Nilai >= 85 Kemudian
Cetak "A"
Jika tidak dan Jika Nilai >= 70 Kemudian
Cetak "B"
Jika tidak dan Jika Nilai >= 60 Kemudian
Cetak "C"
Jika tidak dan Jika Nilai >= 25 Kemudian
Cetak "D"
Jika tidak
Cetak "E"
Akhir dari keputusan

Logika keputusan diatas dapat diprogram pada Visual Basic dengan menggunakan syntax penulisan sebagai berikut :
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If

Contoh :

Option Explicit On
Imports System
Module ModIf
  Sub Main()
      Dim Nilai As Single
      Console.Write("Masukkan Nilai Akhir :")
      Nilai = Console.ReadLine()
      If Nilai >= 85 Then
         Console.WriteLine("A")
      ElseIf Nilai >= 70 Then
         Console.WriteLine("B")
      ElseIf Nilai >= 60 Then
         Console.WriteLine("C")
      ElseIf Nilai >= 25 Then
         Console.WriteLine("D")
      Else
         Console.WriteLine("E")
      End If
  End Sub
End Module

Cara Membuat Form Login Yang Aman (Secure From SQL Injection) VB6/VBNET

Secara singkat sql injection adalah menambahkan perintah sql query melalui input box (textbox, combobox, dll) dengan tujuan untuk memodifikasi sql query yang sudah ada atau menciptakan sql query baru. Biasanya orang yang baru belajar programming sering mengabaikan masalah security ini, contoh kasus:
Sintak/sql quer untuk Login biasanya seperti ini :

"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='" + Txt_User.Text + "' AND PASSWORD='" + Txt_Pass.Text + "'"

Nah jika user/operator menginputkan pada Txt_User dan Txt_Pass seperti ini : ' OR '1'='1
Maka setelah aplikasi/program Run, sintak/sql query tersebut akan berubah menjadi seperti ini :

"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='' OR '1'='1' AND PASSWORD='' OR '1'='1'"
Dan ini akan menghasilkan nilai TRUE, sehingga user (anonymous) akan dapat masuk sesuka hati tanpa harus tahu user id dan password-nya.
Ada beberapa solusi untuk mengatasi masalah ini, diantaranya adalah :
  1. Menghilangkan (Replace) karakter kutip satu (') dengan karakter kosong, contoh :
    Txt_User.Text.Replace("'", "")
  2. Memendekan MaxLength TextBox sesuai dengan field database, contoh jika di table field User_Id = Varchar(10), maka Txt_User pun harus MaxLenght=10 juga agar user tidak bebas/kepanjangan menginput sesuatu/apapun pada textbox tersebut.
  3. Mengubah sintak/sqlquery menjadi seperti ini :
"SELECT USER_ID, PASSWORD FROM MS_USER WHERE USER_ID='" + Txt_User.Text.Replace("'", "") + "'"
'...sintak anda untuk mengecek keberadaan user, Jika User Ada Maka Cek Password, Contoh :
IF reader.Item("PASSWORD") = Txt_Pass.Text.Replace("'", "") Then
    '...sintak anda jika login SUKSES
Else
    '...sintak anda jika login GAGAL
End IF
3 cara diatas adalah sebagian dari banyak cara yang dapat anda lakukan untuk mencegah terjadinya sql injection dari tangan tangan yang jahil dan tidak bertanggung jawab. Semoga artikel saya ini bermanfat ntuk anda. Terimakasih.
 

Cara Insert/Save Kutip Satu/Single Quote ( ' ) dan Validasi di VBNET

Salah satu test untuk mengetahui sebuah apliaksi database itu baik (bebas Error/Bugs) adalah dengan test input karaker kutip satu / single quote ('). Contoh saja di form master (contoh master barang), anda input nama barang misal barang xx' , atau barang'. terus save. Jika tidak error berarti aplikasi itu dapat dikatakan baik. Karena kebanyakan programmer sering melupakan hal single quote. Biasanya jika aplikasi itu tidak validasi single quote, akan muncul error :
Unclosed quotation mark after the character string '''. Incorrect syntax near '''.
Penjelasan detailnya seperti ini :
Contoh sintak Save anda seperti ini :
sql = "INSERT INTO M_BARANG (KD_BRG,NM_BRG) VALUES ('" + txt_kd.text + "','" + txt_nm.text + "')"
Kemudian Jika anda menginput nama barang dengan kutip satu (') contoh barang xx', maka sintak anda akan menjadi :
INSERT INTO M_BARANG (KD_BRG,NM_BRG) VALUES ('B001','barang xx'')
Nah ini akan error seperti diatas karena menjadi ada kutip satu yang tidak ada pasangannya, karena seharusnya sintak yang benar adalah :
INSERT INTO M_BARANG (KD_BRG,NM_BRG) VALUES ('B001','barang xx')
Lalu bagaimana caranya agar kutip satu dapat di insert ke database ?
caranya adalah dengan selalu menambahkan single quote jika ada value single quote, coba anda buka query analyzer sql:
Jika anda ingin menampikan data :
A'B
'AB'
AB'
AA''BB'
caranya ?
SELECT 'A''B'
SELECT '''AB'''
SELECT 'AB'''
SELECT 'AA''''BB'''
Hasilnya ?
Lalu bagaimana mem-validasi di VBNET nya ? banyak sekali.............i carannya.
1.Validasi di setiap textbox saat membuat string sql

Sql = "INSERT INTO M_BARANG (KD_BRG,NM_BRG) VALUES ('" + txt_kd.text.Replace("'", "''") + "','" + txt_nm.text.Replace("'", "''") + "')"
2.Validasi di setiap textbox saat event TextChanged atau LostFocus

    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
        TextBox1.Text = TextBox1.Text.Replace("'", "''")
    End Sub
3.Validasi saat tombol simpan (looping ke semua object di form)

        For Each obj As TextBox In Me.Controls 'Atau GroupBox1.Controls atau Panel1.Controls (sesuikan saja object container nya)
            If TypeOf obj Is TextBox Then
                obj.Text = obj.Text.Replace("'", "''")
            End If
        Next

Tambahan:
Hal ini juga salah satu cara untuk dapat mencegah dari SQL Injection yang sebelumnya saya bahas pada postingan Form Login.

Sumber : http://djiesoft.blogspot.com/

19 Juni 2013

Koneksi ConnectionString MyODBC MySQL, PsqlODBC PostgreSQL dan Firebird ODBC

Bahasa pemrograman desktop windows populer biasanya tidak dibuat oleh vendor Open Source yang berlisensi Free. Sebut saja Visual Basic 6.0, Visual Basic.NET, dan Delphi.

Menurut pengalaman penulis ada 3 database yang banyak digunakan oleh perusahaan atau instansi dengan anggaran yang tidak cukup besar. Sehingga memilih Database Open Source yang berlisensi Free berikut ini, yaitu :

1. MySQL.
2. PostgreSQL.
3. Firebird.

Agar dapat terhubung ke bahasa pemrograman berbasis desktop, Microsoft telah membuat jembatan penghubung yaitu ODBC. Dimana vendor database harus membuat sendiri Driver ODBC-nya, sehingga kita harus mendownload driver tersebut, yaitu :

1. MySQL ODBC Driver untuk MySQL di
http://dev.mysql.com/downloads/connector/odbc/3.51.html       untuk versi 3.51 http://dev.mysql.com/downloads/connector/odbc/                     untuk versi 5.1

2. Postgres ODBC Driver di
http://www.postgresql.org/ftp/odbc/versions/msi/
Pilih salah satu versi, misalnya file : psqlodbc_09_01_0100.zip

3. Firebird / Interbase ODBC Driver di
http://www.firebirdsql.org/en/odbc-driver/
Pilih salah satu versi, misal file : Firebird_ODBC_2.0.1.152_Win32.exe

Kemudian untuk membuat koneksi ke database gunakan ConnectionString berikut ini

1. MySQL :

Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=test;User=root; Password=;Option=3;

Driver={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;Database=test;User=root; Password=;Option=3;



2. PostgreSQL :

Driver={PostgreSQL};Server=localhost;Port=5432;Database=db;Uid=admin;Pwd=123;

Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=db;Uid=admin;Pwd=123;

Driver={PostgreSQL UNICODE};Server=localhost;Port=5432;Database=db;Uid=admin;Pwd=123;



3. Firebird / Interbase :

Driver={Firebird/InterBase(r) driver};Uid=SYSDBA;Pwd=masterkey; DbName=d:\firebird\examples\test.fdb; 

18 Juni 2011

Membuat Form Pencarian Menggunakan Visual Basic 6.0


Buat Form Pencarian Diatas Menggunakan Visual Basic 6.0 saya akan share kepada kalian semua. Kode Script Programnya sebagai berikut:

Private Sub Cari(kodeabarang)_Click()
If Option1.Value = True Then
    Data1.RecordSource = "SELECT * FROM BARANG WHERE KODE_BRG = '" & Text1 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Barang belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
ElseIf Option2.Value = True Then
    Data1.RecordSource = "SELECT * FROM PELANGGAN WHERE KODE_PLG = '" & Text1 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Pelanggan belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
Else: Option3.Value = True
    Data1.RecordSource = "SELECT * FROM Supplier WHERE KODE_SUP = '" & Text1 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Supplier belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
End If
End Sub

Private Sub Cari(nama barang)_Click()
If Option1.Value = True Then
    Data1.RecordSource = "SELECT * FROM BARANG WHERE NAMA_BRG = '" & Text2 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Barang belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
ElseIf Option2.Value = True Then
    Data1.RecordSource = "SELECT * FROM PELANGGAN WHERE NAMA_PLG = '" & Text2 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Pelanggan belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
Else: Option3.Value = True
    Data1.RecordSource = "SELECT * FROM Supplier WHERE NAMA_SUP = '" & Text2 & "'"
    Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "Data Supplier belum ada" + Chr(13) + "Coba kode yang lain", vbCritical, "Informasi"
    Data1.RecordSource = ""
    Text1.SetFocus
    End If
End If
End Sub

Private Sub TampilSemua_Click()
If Option1.Value = True Then
    Data1.RecordSource = "SELECT * FROM BARANG"
    Data1.Refresh
ElseIf Option2.Value = True Then
    Data1.RecordSource = "SELECT * FROM PELANGGAN"
    Data1.Refresh
Else: Option3.Value = True
    Data1.RecordSource = "SELECT * FROM SUPPLIER"
    Data1.Refresh
End If

End Sub

Private Sub Command4_Click()
Unload Me
End Sub

Private Sub DBGrid1_Click()

End Sub

Private Sub Form_Load() ----- Pemanggilan database -------
Data1.DatabaseName = App.Path & "\victory.MDB"
End Sub

Private Sub Option1_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Option2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Option3_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Option4_Click()
Text2.Enabled = False
Command2.Enabled = False
Text1.Enabled = True
Text1.SetFocus
Command1.Enabled = True
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Option5_Click()
Text2.Enabled = True
Command2.Enabled = True
Text1.Enabled = False
Text2.SetFocus
Command1.Enabled = False
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
    If Text1 = "" Then
        Text1.SetFocus
    Else
        Command1.SetFocus
    End If
End If
End Sub

Private Sub text2_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
    If Text2 = "" Then
        Text2.SetFocus
    Else
        Command2.SetFocus
    End If
End If
End Sub


Related Posts Plugin for WordPress, Blogger...
Award Pertama
Photobucket
Langganan Artikel Si Boersan :

Enter your email address:

Delivered by FeedBurner

Monggo Di Copy Linknya :
Text Link

Banner Link

Komunitas Blogger Indonesia Komunitas Blogwalking