Membuat Class Data Access Object pada VB.NET
Pada pengembangan aplikasi dengan konsep OOP, Kita dapat membuat Class yang berfungsi sebagai proxy ke sebuah object atau menggunakan istilah Ms.Windows namanya Data Access Object (DAO). Class DAO inilah yang bertanggung jawab untuk mengakses (READ, CREATE, UPDATE, DELETE) data object ke sebuah koleksi ( Collection Class ) yang dapat dihubungkan ke media penyimpanan file ataupun database.
Pola pengembangannya adalah dengan membuat Class DAO untuk setiap Class yang mewakili sebuah entitas di dunia nyata atau sebuah table pada database.
- Class PhoneAddress
Contoh sederhana, kita desain sebuah class PhoneAddress yang mewakili sebuah item informasi pada buku telpon, informasi yang tersimpan dalam class PhoneAddress adalah notelpon, nama dan kota.Berikut kode programnya :
Public Class PhoneAddress 'member class field Private strNama As String Private strTelpon As String Private strKota As String 'blank konstruktor Public Sub New() End Sub 'konstruktor dengan argumen nama dan telpon Public Sub New(ByVal nama As String, ByVal telp As String) Me.strNama = nama Me.strTelpon = telp End Sub Public Property telpon() Get Return Me.strTelpon End Get Set(ByVal value) Me.strTelpon = value End Set End Property Public Property nama() Get Return Me.strNama End Get Set(ByVal value) Me.strNama = value End Set End Property Public Property kota() Get Return Me.strKota End Get Set(ByVal value) Me.strKota = value End Set End Property Public Overrides Function toString() As String Return Me.nama + " - " + Me.telpon + " - " + Me.kota End Function Public Sub info() MessageBox.Show("Nama " + Me.nama + ",Telponnya " + Me.telpon) End Sub End Class
- Class DAOPhoneAddress
Pada contoh ini DAO class belum terhubung ke database ataupun ke media penyimpanan file. Dalam class DAOPhoneAddress ini terdapat method simpan (simpan Object PhoneAddress) dan method cari ( cari Object PhoneAddress dalam koleksi data) dan method init ( untuk inisialisasi awal data alamat telpon yang sudah ada ), Berikut kode programnya :Public Class DAOPhoneAddress Private ar_daftar As New ArrayList Public Sub New() init() End Sub Public Sub init() Dim pb1 As New PhoneAddress("Umam", "021-78702233") Dim pb2 As New PhoneAddress("Joko", "021-78242433") Dim pb3 As New PhoneAddress("Dewi", "021-87342433") ar_daftar.Add(pb1) ar_daftar.Add(pb2) ar_daftar.Add(pb3) End Sub Public Property daftar() Get Return ar_daftar End Get Set(ByVal value) Me.ar_daftar = value End Set End Property Public Sub simpan(ByVal phone As PhoneAddress) Me.ar_daftar.Add(phone) End Sub Public Function cari(ByVal phone As PhoneAddress) Dim objphone As New PhoneAddress For Each objphone In ar_daftar If (objphone.telpon = phone.telpon) Then Exit For Else objphone = Nothing End If Next Return objphone End Function End Class
- Contoh implementasi Class DAOPhoneAddress, Pada Form1 dengan elemen-elemen TextBox : txtNama, txtTelpon , Button : btnSimpan dan ListBox : ListBox1
Public Class Form1 Dim daoPhone As DAOPhoneAddress Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load daoPhone = New DAOPhoneAddress() Dim objphone As PhoneAddress For Each objphone In daoPhone.daftar ListBox1.Items.Add(objphone.toString) Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click Dim pb As New PhoneAddress() pb.telpon = txtTelpon.Text pb.nama = txtNama.Text If (daoPhone.cari(pb) Is Nothing) Then daoPhone.simpan(pb) Else MessageBox.Show(pb.toString & " Sudah Ada ", "DITEMUKAN !!! ") End If ListBox1.Items.Clear() For Each phone In daoPhone.daftar ListBox1.Items.Add(phone.ToString) Next End Sub End Class