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.

  1. 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
    
  2. 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
    
  3. 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
    

Post a Response