Uncategorized

Tutorial Pemrograman Berorientasi Obyek dengan C++ : Kelas, Obyek, dan Enkapsulasi

Pada dasarnya dalam pemrograman berorientasi obyek, suatu permasalahan yang akan dipecahkan dengan pemrograman harus diidentifikasi berdasarkan obyek-obyek yang terlibat didalamnya. Setiap obyek tersebut direkonstruksi menurut karakteristik/sifat yang dijabarkan dalam permasalah. Obyek tersusun atas data dan prosedur. Data adalah elemen dari obyek yang akan diproses, sedangkan prosedur merupakan proses terhadap data-data tersebut. Dalam pemrograman berorientasi obyek (PBO), data diistilahkan dengan instance, dan prosedur disebut sebagai metode (method). Misalnya dalam bahasa C++, deklarasi data seperti halnya deklarasi variabel dengan tipe-tipe data seperti integer (int), float, karakter (char), string, pointer, dan tipe data lainnya. Bahkan dapat menggunkan tipe data kelas lain dalam definisi kelas obyek tersebut.

Obyek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku ( behaviour ) dalam method-method atau fungsi-fungsi/prosedur.

Jika perhatikan lebih lanjut, pada dasarnya ada dua karakteristik yang utama pada sebuah obyek , yaitu :

  • Setiap obyek memiliki atribut sebagai status yang kemudian akan disebut sebagai state.
  • Setiap obyek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour.

Kelas berbeda dengan obyek. Kelas merupakan prototipe yang mendefinisikan variabel-variabel dan method-method secara umum. Sedangkan obyek pada sisi yang lain merupakan instansiasi dari suatu kelas.

Dalam sebuah obyek yang mengandung variabel-variabel dan method-method, dapat ditentukan hak akses pada sebuah variabel atau method dari obyek. Pembungkusan variabel dan method dalam sebuah obyek dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi. Jadi, enkapsulasi dapat diartikan sebagai bungkusan ( wrapper ) pelindung program dan data yang sedang diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data yang sedang diolah agar tidak diakses sembarangan oleh program lain.

Manfaat dari proses enkapsulasi yaitu :

1.   Modularitas

Kode sumber dari sebuah obyek dapat dikelola secara independen dari kode sumber obyek yang lain.

2.   Information Hiding

Karena kita dapat menentukan hak akses sebuah variabel/method dari obyek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui obyek lain.

Bentuk umum definisi kelas :

Class <nama-kelas>
{
<perubah-akses> :
<tipe-data> instance1, instance2, ... ;
<tipe-data> instance3, ...;
......
<tipe> metode1 (parameter, ...);
<tipe> metode2 (...);
......
<perubah-akses> :
......
};

Keterangan :

  • <nama-kelas> merupakan nama dari kelas tersebut
  • <perubah-akses> merupakan pengenal yang menyatakan sifat akses dari anggota-anggota kelas dibawahnya, baik data meupun metode.
  • <tipe-data> merupakan tipe data masing-masing instance
  • <tipe> merupakan tipe data untuk keluaran dari masing-masing metode (fungs kelas).
  • parameter merupakan parameter yang disertakan ketika pemanggilan metode

 

Sifat akses masing-masing anggota kelas dituliskan sebagai label blok pada perubah-akses. Sifat akses ini terdiri dari tiga macam : private, protected, dan public.

  1. Private : Data dan metode dalam blok private hanya dapat diakses oleh metode-metode dalam kelas itu sendiri, dan tidak dapat diakses dari luar kelas.
  2. Public : Kebalikan dari private, yaitu dapat diakses dari dalam kelas maupun dari luar kelas, yaitu dalam program yang menciptakan obyek dengan kelas yang bersangkiutan.
  3. Protected : Merupakan sifat private yang sedikit lebih longgar, yaitu data dan metode tetap tidak dapat diakses dari luar kelas, kecuali oleh kelas turunannya.