OOP Part-2 (VB)

VB - OOP , Posted at : Apr/28/2007  
2357 Views   3 Comments

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 !!


[Comments]
Jay  Sep/25/2011 03:20:16 :

Salam kenal Pak Rully. Saya ada sebuah tugas di kuliah tentang cara membuat overloading Function pada VB.NET. Bagaimana cara membuat sebuah fungsi dimana parameter dari function tersebut dapat kita pilih? Seperti contohnya fungsi MsgBox pada vb.net dimana parameter pertama merupakan isi pesan, parameter kedua merupakan pilihan style messagebox dan parameter ketiga merupakan judul messagebox. Bagaimana cara membuat parameter yang seperti parameter kedua pada fungsi messagebox tersebut?

Sebelum dan sesudahnya saya ucapkan Terima kasih.

Rully  Sep/26/2011 08:41:11 :

Jay > Salam kenal juga pak Jay...

Coba gunakan Enumerasi :)

Jay  Sep/28/2011 05:17:57 :

Ok Pak Rully. Terima Kasih atas informasinya.

Sekarang fungsi tersebut sudah bisa saya buat.

Thanks...


[Write your comment]
Name (required)
Email (required-will not published)
 
Comment

HL90
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 3175 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2591 times  
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 2180 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 2127 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1806 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News