OOP Part-2 (VB)

Posted at : Apr/28/2007
6578 Views

Pada artikel sebelumnya saya telah membahas tentang pilar-pilar OOP. Kali ini saya akan menjelaskan OOP dari sisi struktur code nya. Let us begin :

Struktur sebuah class di VB diawali oleh deklarasi class tersebut disertai dengan nama classnya :

Public Class Employees

End Class

Class tersebut merupakan abstraction dari objek Pegawai. Seringkali kita mendengar class dan object, so what's the difference? Class merupakan template dari sebuah object, dan object merupakan representasi dari sebuah class. Class dibuat ketika proses design time, sedangkan object dibuat ketika runtime.

Dalam sebuah class kita dapat menambahkan member-member yang mencerminkan dari atribut-atribut yang berhubungan dengan object yang kita buat. Member sebuah class dapat berupa Property, Field, Prosedur, Event, dsb. Sekarang saya akan tambahkan property GetID dan GetName pada class Employees diatas :

Private mIntID As Integer
Private mStrName As String

Public Property GetID() As Integer
Get
Return mIntID
End Get
Set(ByVal value As Integer)
mIntID = value
End Set
End Property

Public Property GetName() As String
Get
Return mStrName
End Get
Set(ByVal value As String)
mStrName = value
End Set
End Property

Penggunaan private field diatas untuk mengenkapsulasi business role yang kita gunakan di class tsb. Misalkan kita punya aturan sendiri untuk generate ID number pegawai, sehingga user hanya berinteraksi lewat property yang kita buat. Prosedur Get akan dieksekusi kalau kita akan baca value dari properti tsb, sedangkan prosedur Set akan dieksekusi kalau properti tsb menerima value yang diberikan oleh user. Property dapat berupa ReadOnly properti atau WriteOnly properti. ReadOnly property hanya bisa digunakan untuk membaca value yang terdapat didalamnya, WriteOnly sebaliknya, hanya bisa diberikan value tanpa bisa membacanya.

Sekarang saya akan membahas mengenai inheritance. Yup, fitur ini yang membuat VB.NET menjadi bahasa yang true OOP, karena di VB6 kita tidak bisa melakukannya. Dengan inheritance maka sebuah class bisa dijadikan sebagai base class yang berguna sebagai template general untuk class-class yang dibentuk berdasarkan class tersebut. Jika sebuah class inherits dari suatu class maka proses tsb biasanya diistilahkan dengan subclassing. Child class yang terbentuk akan mewarisi semua member yang terdapat di base class nya. Dan sudah pasti member tsb merupakan member yang diberi akses modifier Public, Protected, atau Friend. Di VB.NET kita hanya bisa melakukan single inheritance, artinya sebuah class hanya bisa inherits dari satu class saja, tidak bisa lebih dari itu. Secara sintaks seperti ini (misal saya buat class HRDEmployees yang inherits dari class Employees) :

Public Class HRDEmployees
Inherits Employees

End Class

Class HRDEmployees akan mewarisi member GetID dan GetName, sehingga kita tidak perlu lagi untuk menambahkan properti GetID dan GetName. Salah satu member yang perlu kita ketahui yaitu Constructor. Constructor di VB.NET tidak lain hanyalah merupakan sebuah Sub dengan nama New. Di kedua class diatas tidak terlihat adanya constructor tsb. Sebenarnya constructor tsb secara default ada dan akan ditambahkan secara otomatis kalau kita tidak secara eksplisit menuliskannya. Constructor tsb biasa disebut Default constructor (constructor tidak berparameter). Ok...sekarang saya akan tambahkan constructor ke class HRDEmployees :

Public Class HRDEmployees
Inherits Employees

Public Sub New()
End Sub

Public Sub New(ByVal ID As Integer)
MyBase.GetID = ID
End Sub

Public Sub New(ByVal Name As String)
MyBase.GetName = Name
End Sub

Public Sub New(ByVal ID As Integer, ByVal Name As String)
MyBase.GetID = ID
MyBase.GetName = Name
End Sub

Di class tsb dibuatkan tiga buah constructor. Kita dapat membuat lebih dari constructor dalam sebuah class, fitur ini dinamakan dengan Overloading. Dengan overloading maka kita dapat membuat lebih dari satu member dengan nama yang sama tetapi dengan signature yang berbeda. Berbeda disini bisa dalam hal jumlah parameter, dan perbedaan tipe data parameternya. Jumlah paramater bisa saja sama, namun disini kita harus membedakannya dengan tipe data yang digunakan. Dengan fitur overloading pada constructor kita diberikan beberapa pilihan untuk create instance class yang akan digunakan. Anda bisa mencobanya dengan cara seperti ini :

Sub Main()
Dim HRDEmp1 As New HRDEmployees()
HRDEmp1.GetID = 1
HRDEmp1.GetName = "Roel"

Dim HRDEmp2 As New HRDEmployees(2)
HRDEmp2.GetName = "Yulian"

Dim HRDEmp3 As New HRDEmployees(3, "Rully Yulian")

Console.WriteLine(HRDEmp1.GetID & "," & HRDEmp1.GetName)
Console.WriteLine(HRDEmp2.GetID & "," & HRDEmp2.GetName)
Console.WriteLine(HRDEmp3.GetID & "," & HRDEmp3.GetName)

Console.ReadLine()
End Sub

Ok... sementara sampai disini dulu pembahasannya untuk basic pembuatan class, constructor, inheritance, member, saya akan lanjutkan nanti di next article...c u !!


ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Co-Founder & IT Trainer at Native Enterprise | Microsoft Azure Data Scientist | IBM RAG & Agentic AI | IBM Data Science & Data Analyst | Python Certified (PCEP, PCAP) | MOS, MTA, Xamarin Certified, ex MCT | ex MVP

CERTIFICATIONS

Microsoft Certified Associate
IBM RAG and Agentic AI Professional
IBM Data Science Professional IBM Data Analyst Professional
PCAP Associate Python Programmer Certified PCEP Entry Level Python Programmer Certified
Xamarin Certified
MOS 2007
MCPD MCTS
MCAD.NET

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  X Twitter Facebook  Instagram  LinkedIn

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2026   Rully Yulian MF   All rights reserved.