Anda di halaman 1dari 8

4 Pemrograman Berbasis Objek

Objektif :

• Memahami konsep OOP


• Mampu memrogram program berbasis objek dengan C#

4.1 Pendahuluan Pemrograman Berbasis Objek


Jika anda harus meneliti sebuah benda, hal apakah yang harus anda teliti? Pasti yang harus anda cari adalah
berbagai karakteristik dari benda tersebut. Mulai darihal apa saja yang dapat dilakukan benda tersebut, sifat,
hingga karakteristik unik yang dimiliki benda tersebut. Sekarang asumsikan bahwa benda merupakan objek.
Pada konsep bahasa pemrograman berbasis objek hal yang kita lakukan adalah sama dengan proses
penelitian tersebut. Perbedaannya adalah pada pemrograman berbasis objek, objek tersebut akan diubah ke
dalam bentuk instruksi komputer atau biasa disebut program. Sehingga pemrograman berbasis objek dapat
disebut juga sebagai cara memrogram komputer dengan pendekatan mengartikan objek dunia nyata
kedalam objek dalam bahasa pemrograman.

Melakukan pemrogram komputer dengan bahasa pemrograman berbasis objek tidak selamanya membuat
program yang kita dihasilkan merupakan program yang berbasis pada objek. Bisa saja programmer
menggunakan bahasa C# tetapi cara penulisannya adalah pemrograman terstruktur. Hal ini disebabkan,
analisis yang dilakukan oleh programmer pada masalah yang ada adalah analisis terstruktur. Pada BAB ini
kita tidak akan terlalu berkutat pada masalah bagaimana analisa pemrograman berbasis objek itu sendiri,
namun lebih berfokus pada penerapan pemrograman berbasis objek dengan bahasa C#. Sebelum mengenal
penerapan pemrograman berbasis objek dengan bahasa pemrograman C#, terdapat beberapa istilah pada
pemrogramman berbasis objek yang harus dikenal. Berikut merupakan beberapa penjelasan secara singkat
dariistilah pada pemrograman berbasis objek:

4.1.1 Class dan Objek


Class merupakan blue print dari sebuah objek, yangakan menjadi "cetakan" dari objek-objek yang
dihasilkan class tersebut. Sebuah class mendeklarasikankarakteristik sebuah objek dalam bentuk attribut
(properti) dan method dari sebuah objek. Attribut merupakanciri-ciri dari sebuah objek, yang diartikan pada
bentuk variabel pada sebuah class. Sedangkan method merupakan hal yang dapat dilakukan oleh sebuah
class yang diimplementasikan dalam bentuk sebuah fungsi.

1
Gambar 4.1 – Blueprint sebuah mobil menghasilkan berbagai objek mobil
dengan berbagai karakteristik

Misal terdapat sebuah objek mobil, maka attribut yang dapat dimiliki oleh class mobil adalah: warna mobil,
ukuran mobil, jumlah roda, merek mobil, jenis mobil, dan lain sebagainya. Sedangkan method yang dapat
dimiliki sebuah class mobil adalah: jalan maju, jalan mundur, hidupkan mesin, matikan mesin, dan lain
sebagainya.

Terdapat sebuah method yang spesial pada konsep bahasa pemrograman berbasis objek yang disebut
sebagai constructor. Method constructor merupakan method yang pertama kali dijalankan ketika sebuah
class hendak dijalankan. Constructor memiliki keistimewaan dari segi penamaannya, yaitu dideklarasikan
dengan nama sesuai dengan nama sebuah class.

4.1.2 Abstraksi dan Enkapsulasi


Abstraksi merupakan salah satu konsep dasar yang dimiliki oleh pemrograman berbasis objek. Dengan
abstraksi memungkinkan penggunaan sebuah class untuk tujuan tertentu, tanpa harus mengetahui detail
yang ada dalam class. Detail proses yang ada dimasukkan ke dalam sebuah entitas yang disebut sebagai
sebuah class. Fitur memasukkan karakteristik dan proses sebuah objek kedalam sebuah class disebut juga
sebagai enkapsulasi. Sehingga abstraksi dan enkapsulasi merupakan konsep yang saling berkaitan dalam
pemrograman berorientasi objek.

Dalam mengimplementasikan abstraksi sebuah objek, digunakan pembatasan hak akses dari sebuah entitas
dengan entitas lainnya menggunakan scopes. Scopes merupakan pengaturanpembatasanhakakses dari
sebuah variable atau objek dengan tingkatanhakakses tertentu. Terdapat beberapa modifier aksesyang
umum digunakan untuk mendeklarasikan scope dari sebuah variable atau objek, diantaranya:

1. Public
Modifier tingkatan variable untuk sebuah variable yang dapat diakses dari manapun.

2
2. Private
Modifier tingkatan variable untuk sebuah variable yang hanya dapat diakses dari dalam sebuah
class itu sendiri.
3. Protected
Modifier tingkatan variable untuk sebuah variable yang hanya dapat diakses dari dalam sebuah
class itu sendiri dan class turunannya.

4.1.3 Inheritance
Inheritance (pewarisan) merupakan konsep dari pemrograman berbasis objek untuk mewariskan atribut dan
method sebuah class ke sebuah class lainnya. Class yang melakukan pewarisan karakteristik dikenal dengan
istilah parent class. Sedangkan class yang menerima pewarisan dikenal dengan istilah child class.

Contoh dari pewarisan yang dapat dilakukan adalah klasifikasi dari sebuah objek burung. Tidak semua
burung memiliki kesamaan karakteristik, tetapi tidak semua berarti semua burung tidak memiliki
persamaan. Persamaan tersebut dapat digambarkan dengan sebuah class utama yang menjadi parent class
dari jenis burung lainnya. Ilustrasi contoh dari class pada jenis hewanburung tersebut dapat dilihat pada
Gambar 4.2.

Gambar 4.2 – class burungmewariskan sifat burung ke class jenis burung yang spesifik

4.1.4 Polymorphism
Polymorphism merupakan kata yang berasal dari bahasa Yunani, yaitu polys yang berarti banyak dan
morphe yang berarti bentuk. Dalam pemrograman berbasis objek polymorphism sering diekspresikan
sebagai satu interface namun memiliki banyak fungsi.Polymorphism ada untuk mengantisipasi hasil analisis
objek dari dunia nyata yang terkadang ditemukan sebuah sifat atau karakteristik yang sama namun berbeda
penanganannya sesuai dengan kondisi tertentu. Polymorphism diterapkan dalam sebuah bahasa
pemrograman dengan melakukan overloading sebuah method atau attribut.

3
4.2 Pemrograman Berbasis Objek pada C#
Setelah mengenal konsep dari pemrogramman berbasis objek, pada bagian ini akan dibahas mengenai
penerapan pemrogramman berbasis objek dengan menggunakan bahasa pemrograman C#.

4.2.1 Dasar Penulisan Class pada C#


Pada dasarnya C# merupakan bahasa pemrograman berbasis objek. Sehingga untuk memulai menuliskan
sebuah program C#, diharuskan terlebih dahulu menuliskan sebuah class pada program yang dibuat.
Deklarasi dari sebuah class pada C# dapat dilihat pada contoh dibawah ini:

class Mobil
{
Private String brand;
Private String name;

public void setBrand(string brand)


{
this.brand = brand;
}
public string getBrand()
{
returnthis.brand;
}

public void setName(string name)


{
this.name = name;
}

public string getName() {


return this.name;
}
}

Pada deklarasidari class mobil di atas, dideklarasikan modifier class, nama class, serta method dan
properties dari class mobil. Pendeklarasian nama dari sebuah class umumnya dimulai dengan huruf kapital
pada huruf awalnya. Attribute dideklarasikan pada class mobil dengan tipe private, yang memiliki arti
bahwa attribut hanya bisa diakses melalui class itu sendiri. Sedangkan method dideklarasikan dengan tipe
public yang memiliki arti bahwa method dapat diakses dari manapun. Sebuah objek dari class mobil harus
dibuat untuk dapat menggunakan class tersebut.

4
Berikut merupakan contoh pendeklarasian dan penggunaan sebuah objek pada C#:

classProgram
{
static void Main(string[]args)
{
Mobil m = new Mobil();
m.setBrand("toyota");
Console.WriteLine(m.getBrand());
}
}

Pendeklarasian objek dari sebuah class umumnya dilakukan diluar class dari class yang akan dideklarasikan
objeknya. Seperti pada contoh kali ini, objek mobil dideklarasikan di dalam sebuah class Program. Cara
pendeklarasian sebuah objek dapat kita lihat pada contoh baris statement Mobil m = new Mobil();,
m merupakan objek dari class mobil. Objek m tersebut akan menjadi entry point untuk menggunakan
method dan atribut didalamnya.

4.2.2 Inheritance
Penerapan inheritance pada C# sangat sederhana untuk dilakukan, hanya dengan menggunakan simbol “:”.
Berikut merupakan contoh pendeklarasian inheritance pada C#:

classA : B
{
}

Contoh program pada di atas menyatakan bahwa class B menurunkan semua sifat dan karakteristiknya
kepada class A. Dalam kata lain class A merupakan child class dari parent class B. C# tidak mendukung
fitur multiple inheritance, yaitu mewariskan banyak class pada suatu class. Namun ada teknikal ternatif
mewariskan banyak class pada suatu class, yang digambarkan pada program berikut:

classA : B
{
}
classB : C
{
}
classC

5
{
}

Dengan cara pewarisan yang demikian, class A akan memiliki semua karakteristik dan sifat yang dimiliki
oleh class B dan class C.

4.2.3 Polymorphism
Pada sub bab sebelumnya telah dibahas secara singkat mengenai pengertian dari polymorphism. Mungkin
definisi yang dibahas tersebut terdengarkompleks, atau dalam kata lain sulitdimengerti. Untuk mudah men-
visualisasikan polymorphism dengan mudah, mari kita lihat program 4.x.

using System;
namespacePolymorphismApplication
{
classPrintdata
{
void print(int i)
{
Console.WriteLine("Printing int: {0}", i );
}

void print(double f)
{
Console.WriteLine("Printing float: {0}" , f);
}
void print(string s)
{
Console.WriteLine("Printing string: {0}", s);
}
static void Main(string[] args)
{
Printdata p = new Printdata();
// Call print to print integer
p.print(5);
// Call print to print float
p.print(500.263);
// Call print to print string
p.print("Hello C++");
Console.ReadKey();
}
}
}

6
Pada program 4.x tersebut dilakukan overloading terhadap method print, dengan menerapkan argument
pada masing-masing method yang berbeda-beda.

Contoh program
using System;

namespaceInherintancePolymophism
{
class Program
{
static void Main()
{
Bird b = new Bird("Tweety");
b.Speak();
b.Fly();
Console.WriteLine();

Duck d = new Duck("Ducky");


d.Speak();
d.Fly();
Console.WriteLine();

Penguin p = new Penguin("Galapagos");


p.Speak();
p.Fly();
Console.WriteLine();

Console.ReadKey();
}
}

class Bird
{
protected string name = "Birdy";

public Bird(string name)


{
this.name = name;
}

public void Speak()


{
Console.WriteLine(“Tweet. . .”);
}
void Fly()
{
Console.WriteLine("Up up and away...");
}
}

7
class Duck : Bird
{
public Duck(string name): base(name)
{
this.name = name;
}
public void Speak()
{
Console.WriteLine("Quack...");
}
}

class Penguin : Bird


{
public Penguin(string name): base(name)
{
this.name = name;
}
void Speak()
{
Console.WriteLine("Quack...");
} public
void Fly()
{
Console.WriteLine("Nope. I swim...");
}
}
}

Anda mungkin juga menyukai