Pemrograman | Pemrograman Berorientasi Obyek (PBO) atau Object Oriented Programming (OOP) adalah salah satu paradigma pemrograman yang berusaha menyederhanakan problem yang diselesaikan sebagai kumpulan dari obyek-obyek. Selain paradigma OOP, masih ada beberapa paradigma pemrograman lainnya, seperti Pemrograman Imperative, Pemrograman Procedural, Pemrograman Functional, dan lain-lain. Namun artikel ini tidak akan membahas semua paradigma tersebut. Artikel ini akan mencoba menjelaskan secara ringkas beberapa konsep penting dalam OOP dan menerapkan konsep tersebut menjadi sebuah program Hello World sederhana.
UPDATE: Karena ada permintaan program Hello World dalam versi PHP, silakan buka spoiler di bagian akhir dari artikel ini
Interface
Interface sering digunakan untuk mendefinisikan sebuah tipe abstrak yang tidak berisi data, dan memaparkan perilaku obyek dalam bentuk kumpulan function atau method. Sebuah class yang memiliki semua function atau method yang sama dikatakan mengimplementasikan interface tersebut. Selain itu, class dapat mengimplementasikan beberapa interface sekaligus. Contoh Interface dalam sebuah code VB.net adalah sebagai berikut
''' Interface Printer
''' Mendifinisikan behavior printer
Public Interface Printer
Sub PrintOut(ByVal message As String)
End Interface
Class
Class adalah template atau pola yang digunakan untuk membuat objek, biasanya berisikan sejumlah nilai awal untuk variable dan implementasi perilaku (behavior) dari sebuah interface. Berikut ini contoh implementasi sebuah Interface Printer dan contoh Class Message yang akan kita gunakan untuk menyimpan pesan yang ingin kita cetak ke printer dalam sebuah code VB.net adalah sebagai berikut,
''' implementasi interface Printer
''' class untuk mencetak ke console
Public Class SystemOutPrinter
Implements Printer
Public Sub PrintOut(message As String) Implements Printer.PrintOut
Console.WriteLine(message)
End Sub
End Class
''' Class berisi pesan yang ingin ditampilkan
Public Class Message
Private message As String
' constructor
Public Sub New(ByVal message As String)
Me.message = message
End Sub
' fungsi untuk menampilkan pesan
Public Sub PrintOut(printer As Printer)
printer.PrintOut(Me.ToString())
End Sub
' fungsi untuk mengubah pesan menjadi string
Public Overrides Function ToString() As String
Return Me.message
End Function
End Class
Inheritance
Inheritance adalah ketika suatu obyek atau kelas didasarkan pada objek atau class lain. Inheritance adalah sebuah mekanisme penggunaan kembali kode (code reuse). Hubungan inheritance menimbulkan sebuah hubungan hirarki antara parent class dengan child class, dengan child class akan mewariskan semua property/variable dan method yang ada di parent class. Contoh penerapan abstract class dan inheritance menggunakan VB.net adalah sebagai berikut,
''' contoh class abstract
''' harus dibuat object inheritance kalau mau pake
Public MustInherit Class AbstractPrinterFactory
Public Shared Function GetFactory() As AbstractPrinterFactory
' return default printer factory
Return New SystemOutPrinterFactory()
End Function
Public MustOverride Function GetPrinter() As Printer
End Class
''' hasil turunan abstract class
Public Class SystemOutPrinterFactory
Inherits AbstractPrinterFactory
Public Overrides Function GetPrinter() As Printer
Return New SystemOutPrinter()
End Function
End Class
Abstract Class vs. Interface
Jika kita perhatikan di atas, Inheritance dapat berupa extend/inherits class lain, atau implements sebuah interface. Keduanya sama-sama mewariskan semua method ke child class. Namun ada perbedaan yang perlu diperhatikan. Sebuah class hanya bisa extend/inherits dari satu class saja, sedangkan sebuah class bisa implements banyak Interface. Untuk memudahkannya. Inherits menggambarkan hubungan "adalah", artinya Class Tiger inherits Animals, sama artinya Tiger adalah Animals, Sedangkan Implements artinya "bisa melakukan sesuatu", misalkan Tiger Implements Running, Swimming. Artinya Tiger bisa Running dan Swimming.
Hello World!
Akhirnya setelah semua siap, sekarang kita buatkan method Main untuk memanggil Hello World kita, seperti di bawah ini
''' module utama
Module HelloWorld
Public Sub Main()
Dim message As New Message("Hello World!")
Dim factory As AbstractPrinterFactory
Dim printer As Printer
' create printer
factory = SystemOutPrinterFactory.GetFactory()
printer = factory.GetPrinter()
' display message
' menggunakan printer yang di buat di atas
message.PrintOut(printer)
End Sub
End Module
Dan hasil tampilannya seperti dibawah ini

Source code lengkap menggunakan Visual Studio 2012 silakan unduh di sini.
Versi PHP
UPDATE: Karena ada permintaan program Hello World dalam versi PHP, silakan buka spoiler di bawah ini untuk lebih jelasnya