Anda di halaman 1dari 14

Pertemuan 2

Desain dan Penerapan Basis Data


[Menggunakan MS Visual Studio dan SQL Server 2008 R2)
I. Lanjutan menggunakan Prosedur dan Fungsi menggunakan Visual Basic 2010.

Prosedur dan fungsi merupkana blok program yang dapat dipanggil dalam sebuah program
aplikasi. Untuk penggunaan prosedur dapat dilakukan hanya dengan memanggil nama
prosedur tersebut. Dengan prosedur penulisan program menjadi lebih modular dan
terstruktur. Prosedur tidak mengembalikan nilai sedangkan fungsi mengembalikan nilai.
Secara garis besar ada tiga jenis prosedur yaitu : Sub prosedur, Function prosedur dan event
prosedur.
Pada Sub prosedur dapat memiliki parameter ataupun tidak. Parameter tersebut bisa
berjumlah lebih dari satu. Pernyataan yang ada didalam prosedur akan dieksekusi ketika
prosedur tersbut dipanggil. Sebuah prosedur didefinisikan dengan kata kunci Sub dan End
Sub.
ByVal merupakan sebuah cara melewatkan nilai dari sebuah argumen ke sebuah prosedur
pengganti dari melewatkan alamatnya. Hal ini mengizinkan prosedur untuk mengakses
sebuah salinan dari variabel. Sebagai sebuah hasil, nilai variabel sebenarnya tidak dapat
diganti oleh prosedur yang melewatkannya.
1. Buka aplikasi VISUAL BASIC 2010, lalu setelah program terbuka, klik FILE > New
Project, maka akan muncul windows pop-up, lalu pilih “Windows Form Application”. Jika
sudah di pilih isikan Nama dan Tempat Penyimpan project yang nanti akan di buat pada
Name dan Location jika sudah klik Ok.

1
2. Design interface program yang akan kita buat menjadi seperti ini. Lihat gambar

3. Beberapa komponen toolbox yang dibutuhkan, antara lain :

• 3 Buah GroupBox
o GroupBox1 : Text : Jenis Bilangan
o GroupBox2 : Text : Hasil
o GroupBox3 : Text : Perhitungan
• 1 Buah ComboBox
o Items :
▪ Ganjil

2
▪ Genap
▪ Prima
▪ Fibonaci
• 1 Buah ListBox : (name) : bilangan
• 3 Buah Text Box
o TextBox1 : (name) : txtbilsatu
o TextBox2 : (name) : txtbildua
o TextBox3 :(name) : txthasil
• 2 Buah Button
o Button 1 : (name) : btnInputBil | Text : Input Bilangan
o Button 2 : (name) : btnExit | Text : Exit

4. Klik 2X pada Button1 (btnInputBil), lalu isikan koding seperti berikut :


Private Sub btnInputBil_Click(sender As System.Object, e As System.EventArgs)
Handles btnInputBil.Click
Dim strGanjil, strGenap, strPrima, strFibo As Integer
proses(strGanjil, strGenap, strPrima, strFibo)
ShowSum(txtbilsatu.Text, txtbildua.Text)
End Sub
5. Lalu tambahkan koding koding ini di bagian halaman kodingnya, (dibawah koding no.4)
Sub ShowSum(ByVal intNum1 As Integer, ByVal intNum2 As Integer)
Dim intSum As Integer
intSum = intNum1 + intNum2
txthasil.Text = intSum
End Sub
Sub proses(ByVal strGanjil As String, ByVal strGenap As String, ByVal strPrima As
String, ByVal strFibo As String)
If (ComboBox1.SelectedIndex.Equals(0)) Then
BilGanjil()
ElseIf (ComboBox1.SelectedIndex.Equals(1)) Then
BilGenap()

3
ElseIf (ComboBox1.SelectedIndex.Equals(2)) Then
BilPrima()
ElseIf (ComboBox1.SelectedIndex.Equals(3)) Then
BilFibo()
End If
End Sub
Sub BilGanjil()
Dim ganjil As Integer
bilangan.Items.Clear()
ganjil = 1
Do While ganjil <= 20
bilangan.Items.Add(ganjil)
ganjil = ganjil + 2
Loop
End Sub
Sub BilGenap()
Dim genap As Integer
bilangan.Items.Clear()
genap = 0
Do While genap <= 20
bilangan.Items.Add(genap)
genap = genap + 2
Loop
End Sub
Sub BilPrima()
Dim prima As Integer
bilangan.Items.Clear()
Dim x As Integer
Dim y As Integer
Dim z As Integer
For x = 2 To 100

4
z=0
For y = 2 To x
prima = x Mod y
If prima = 0 Then
z=z+1
End If
Next y
If z <= 1 Then
bilangan.Items.Add(x)
End If
Next x
End Sub
Sub BilFibo()
bilangan.Items.Clear()
Dim a As Integer = 0
Dim b As Integer = 1
Dim fib As Integer = 0
bilangan.Items.Add(“1″)
Do
fib = a + b
a=b
b = fib
bilangan.Items.Add(fib.ToString)
Loop While fib <= 100
End Sub
6. Klik 2X pada Button2 (btnExit), lalu isikan koding seperti berikut :
Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles
btnExit.Click
Me.Close()
End Sub
7. Selesai, maka setelah itu jalankan programnya dengan menekan tombol F5. Maka seperti ini

5
lah hasil program yang kita buat. Lihat gambar. Maka hasilnya jika kita menekan tombol “Input
Bilangan” maka hasilnya akan jalan 2 2 nya.
Hasilnya :

II. Penerapan Basis Data:

a. Gunakan SQL Server 2008 R2, untuk membuat data base dengan nama = latDB, didalam nya
buatlah table dengan nqma table= mhs, dan struktur table nya sbb:

b. Rancanglah form input data seperti gambar berikut, dengan nama form= frmMHS

6
c. Lalu buatlah Modul Koneksi nya, dan kode programnya:

'—mengaktifkan namespace untuk database SQL Server --


Imports System.Data
Imports System.Data.SqlClient
Public Module ModulKoneksi
'-- deklarasi variabel objek koneksi --
Public conn As SqlConnection = Nothing
Public erwin As SqlConnection = Nothing
Public dtReader As SqlDataReader = Nothing
Public dtAdapter As SqlDataAdapter = Nothing
Public cmdBuilder As SqlCommandBuilder
Public cmd As SqlCommand = Nothing
Public dtRow As DataRow
Public dtTable As DataTable
Public dtSet As DataSet
Public sql As String = Nothing
Public PosisiRecord As String = Nothing
Public cariRecord As String
Public proses As String
Public VerifikasiUser As Integer
Public i As Int16

'-- deklarasi sub program yang selalu dipanggil oleh form lain--
Public Sub BukaDatabase()
Dim Dian As String
'Dian = "Password=erwin;Data Source=PC3_LAB9;User ID=sa;Initial
Catalog=LatDB;Integrated Security=True"

Dian = "Password=123456;Persist Security Info=True;User ID=sa;Initial


Catalog=latDB;Data Source=LAPTOP-1N6TL3GF\ERWINMSSQLSERVER"

'Provider=SQLOLEDB.1;Password=erwin;Persist Security Info=True;User ID=sa;Initial


Catalog=LatDB;Data Source=WIN-QNVC5ROR64U
'Dian = "Data Source=D:\Lat_vb2008\LatDB\Database1.mdb;Persist Security
Info=True"
'Koneksi dengan database SERVER
'Dian = "Password=12345;Persist Security Info=True;User ID=sa;Initial
Catalog=PTMaju;Data Source=LAB05_04"
Try
erwin = New SqlClient.SqlConnection(Dian)
erwin.Open()
erwin.Close()
Catch ex As Exception
MessageBox.Show("Koneksi Error : " & ex.Message)
End Try
End Sub
End Module

d. Buatjugalah Modul MHS, dengan Koding:

7
Imports System.Data.SqlClient
Module modMHS
#Region "SubUmum"
Sub FormIsianKosong()
With frmMHS
.txtNim.Clear()
.txtNama.Clear()
.txtAlamat.Clear()
.txtNim.Focus()
End With
End Sub
Sub Bersih()
With frmMHS
.txtNim.Clear()
.txtNama.Clear()
.txtAlamat.Clear()
.txtNim.Focus()
End With
End Sub
Sub Navigasi(ByVal tombol As Boolean)
With frmMHS
.btFirst.Enabled = tombol
.btPrev.Enabled = tombol
.btNext.Enabled = tombol
.btLast.Enabled = tombol
End With
End Sub

Sub ReadOnlyRecord(ByVal baca As Boolean)


With frmMHS
End With
End Sub
Sub TextboxEnable(ByVal aktif As Boolean)
With frmMHS

End With
End Sub
#End Region
#Region "AccessTabel"
'-- akses ke basis data --
Sub BindingMHS()
With frmMHS
Dim MHS As New DataTable
Try
BukaDatabase()
dtSet = New DataSet
sql = "select * from MHS"
dtAdapter.SelectCommand = New SqlClient.SqlCommand(sql, erwin)
MHS.Clear()
dtAdapter.Fill(MHS)
.txtNim.DataBindings.Add("text", MHS, "Nim")
.txtNama.DataBindings.Add("text", MHS, "Nama")
.txtAlamat.DataBindings.Add("text", MHS, "Alamat")
modMHS.FormIsianKosong()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Form Mahasiswa")
End Try
End With

8
End Sub

Sub SaveRecordMHS()
With frmMHS
Try
If (.txtNim.Text = Nothing) Then
MsgBox("Record Nim Mahasiswa/i harus diisi", MsgBoxStyle.Information,
"Perhatian")
.txtNim.Focus()
Exit Sub
ElseIf (.txtNama.Text = Nothing) Then
MsgBox("Record Nama Mahasiswa harus diisi", MsgBoxStyle.Information,
"Perhatian")
.txtNama.Focus()
Exit Sub
ElseIf (.txtAlamat.Text = Nothing) Then
MsgBox("Record Alamat Mahasiswa harus diisi",
MsgBoxStyle.Information, "Perhatian")
.txtAlamat.Focus()
Exit Sub
Else
Dim sqlMHS As String
sqlMHS = "Insert into MHS values(" & .txtNim.Text & ",'"
sqlMHS += .txtNama.Text & "','"
sqlMHS += .txtAlamat.Text & "')"

cmd = New SqlClient.SqlCommand(sqlMHS)


cmd.Connection = erwin
erwin.Open()
cmd.ExecuteNonQuery()
erwin.Close()
MsgBox("Record pada tabel MHS dengan Kode " & .txtNim.Text & " dan
Nama " & .txtNama.Text & " Berhasil di Simpan.", MsgBoxStyle.Information, "Saved record")
End If
Catch ex As SqlException
MsgBox(ex.Message, MsgBoxStyle.Information, "Simpan record")
End Try
End With
End Sub
Sub UpdateRecord()
With frmMHS
Try
Dim qrEdit As String
qrEdit = "Update MHS "
qrEdit &= "Set nama='" & .txtNama.Text & "',"
qrEdit &= "Alamat='" & .txtAlamat.Text & "' "
qrEdit &= "Where Nim='" & .txtNim.Text & "'"

cmd = New SqlClient.SqlCommand(qrEdit)


cmd.Connection = erwin
erwin.Open()
cmd.ExecuteNonQuery()
erwin.Close()
MsgBox("Record pada tabel MHS dengan Nim " & .txtNim.Text & " dan Nama "
& .txtNama.Text & " Berhasil di edit.", MsgBoxStyle.Information, "Editing record")
.btRefresh.PerformClick()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")

9
End Try
End With
End Sub
Sub DeleteRecord()
With frmMHS
Try
If Len(.txtNama.Text) = 0 Then
MsgBox("Tidak ada data yang akan dihapus", MsgBoxStyle.Information,
"Perhatian")
Exit Sub
Else
Dim qrDelete As String
Dim cmd As SqlClient.SqlCommand
Dim hapus As Int16

hapus = MsgBox("Benar record ini akan dihapus " & .txtNama.Text &
"?", MsgBoxStyle.OkCancel, "Delete record")
Select Case hapus
Case vbCancel
Exit Sub
Case vbOK
qrDelete = "Delete from MHS where Nim= '" & .txtNim.Text &
"'"
cmd = New SqlClient.SqlCommand(qrDelete)
cmd.Connection = erwin
erwin.Open()
cmd.ExecuteNonQuery()
erwin.Close()
MsgBox("Record pada tabel MHS, dengan Nim " & .txtNim.Text &
" dan Nama " & .txtNama.Text & " Telah terhapus", MsgBoxStyle.Information, "Delete
record")
.btRefresh.PerformClick()
End Select
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub
Sub RefreshRecord()
With frmMHS
Try
dtAdapter = New SqlClient.SqlDataAdapter("select Nim As [Nim],Nama As
[Nama Mahasiswa],Alamat As [Alamat] from MHS order by Nim", ModulKoneksi.erwin)
Dim MHS As New DataTable
MHS.Clear()
dtAdapter.Fill(MHS)
.DataGridViewMHS.DataSource = MHS

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub
Sub SearchRecord()
With frmMHS
If .txtCari.Text = "" Then
MsgBox("Isikan kata kunci pencarian", , "Searching record")

10
.txtCari.Focus()
Exit Sub
End If
Try
If .rbNim.Checked = True Then
dtAdapter = New SqlDataAdapter("select * from MHS where Nim = '" &
.txtCari.Text & "'", ModulKoneksi.erwin)
Else
dtAdapter = New SqlDataAdapter("select * from MHS where Nama like '"
& .txtCari.Text & "%'", ModulKoneksi.erwin)
End If
Dim MHS As New DataTable
MHS.Clear()
dtAdapter.Fill(MHS)
If MHS.Rows.Count = Nothing Then
MsgBox("Data tidak ditemukan, isikan data yang benar...!",
MsgBoxStyle.Information, "Perhatian")
.txtCari.Clear()
.txtCari.Focus()
Exit Sub
End If
.DataGridViewMHS.DataSource = MHS
Catch ex As OleDb.OleDbException
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub

#End Region
End Module

Kode Program utk frmMHS:


Imports System.Data
Imports System.Data.SqlClient

Public Class frmMHS


#Region "DeklarasiVariabel"
Private cmdMHS As New SqlClient.SqlCommand
Private daMHS As New SqlClient.SqlDataAdapter
Private drMHS As SqlDataAdapter
Private dsMHS As New DataSet
Private MHS As New DataTable
Private sqlMHS As String
'Private jumlah, harga, jumlahHarga As Double
#End Region
#Region "ClassAccesData"
'-- buka koneksi ke database --
Sub AmbilData()
ModulKoneksi.BukaDatabase()
Dim daMHS As New SqlDataAdapter
Try
erwin.Open()
dsMHS = New DataSet

11
sqlMHS = "select * from MHS"
daMHS.SelectCommand = New SqlClient.SqlCommand(sqlMHS, erwin)
daMHS.Fill(dsMHS, "MHS")
PosisiRecord = 0
erwin.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

#End Region

Private Sub cmdexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdexit.Click
Me.Close()
End Sub

Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles cmdSimpan.Click
modMHS.SaveRecordMHS()
'modMHS.FormIsianKosong()
'Me.ListRecordMHS()
' modMHS.Navigasi(True)
' modMHS.ReadOnlyRecord(True)
' modMHS.TextboxEnable(True)
End Sub

Private Sub frmMHS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
Me.Text = "Input Data Mahasiswa dan Mahasiswi"
'Me.GroupBox2.Text = "| Search record |"
'Me.pnData.BackColor = Color.CadetBlue
'Me.GroupBox2.BackColor = Color.SlateBlue
'Me.rbKode_obat.Checked = True

'-- memanggil sub-program pada modul --


ModulKoneksi.BukaDatabase()
modMHS.RefreshRecord()
modMHS.Navigasi(True)
'modObat.ReadOnlyRecord(True)
'modObat.TextBoxEnable(True)
Me.AmbilData()
Me.ListRecordMHS()
End Sub

Private Sub cmdNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdNew.Click
modMHS.Bersih()
BtnUpdate.SendToBack()
btnEdit.Visible = True

End Sub

Sub ListRecordMHS()

12
ModulKoneksi.BukaDatabase()
Me.txtNim.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Nim").ToString()
Me.txtNama.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Nama").ToString()
Me.txtAlamat.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Alamat").ToString()
End Sub

Private Sub BtnUpdate_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles BtnUpdate.Click
btnEdit.BringToFront()
btnEdit.Text = "&Edit"
modMHS.UpdateRecord()
modMHS.ReadOnlyRecord(True)
modMHS.TextboxEnable(False)
modMHS.Navigasi(True)
End Sub

Private Sub btRefresh_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs)

End Sub

Private Sub btFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btFirst.Click
PosisiRecord = 0
Me.ListRecordMHS()
'Me.lbRecno.Text = "Record No. " + (PosisiRecord + 1).ToString() + " Of " +
dsObat.Tables("tObat").Rows.Count.ToString()
End Sub

Private Sub btNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btNext.Click
If PosisiRecord = dsMHS.Tables("MHS").Rows.Count - 1 Then
MsgBox("Record sudah paling akhir...!", MsgBoxStyle.Information, "Navigasi
record")
Else
PosisiRecord += 1
Me.ListRecordMHS()
End If
End Sub

Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles cmdHapus.Click
modMHS.DeleteRecord()
Me.ListRecordMHS()
End Sub

Private Sub btPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btPrev.Click
If PosisiRecord = 0 Then
MsgBox("Record sudah paling awal...!", MsgBoxStyle.Information, "Navigasi
record")
Else
PosisiRecord -= 1
Me.ListRecordMHS()
End If
End Sub

13
Private Sub btLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btLast.Click
PosisiRecord = dsMHS.Tables("MHS").Rows.Count - 1
Me.ListRecordMHS()
'Me.lbRecno.Text = "Record No. " + (PosisiRecord + 1).ToString() + " Of " +
dsObat.Tables("tObat").Rows.Count.ToString()
End Sub

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btRefresh.Click
modMHS.RefreshRecord()
End Sub

Private Sub rbKode_obat_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rbNim.CheckedChanged

End Sub

Private Sub btCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btCari.Click
modMHS.SearchRecord()
Me.ListRecordMHS()
End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnEdit.Click
btnEdit.Hide()
BtnUpdate.Enabled = True
End Sub
End Class

14

Anda mungkin juga menyukai