Salah satu keunggulan C++ dibandingkan C adalah dukungan yang baik akan Object Oriented Programming (OOP). Saat bekerja dengan OOP, kita pasti akan berhadapan dengan yang dinamakan class karena merupakan template / cetakan dari sebuah objek. Di Ambon, makanan khas kami adalah Sagu. Untuk membuat sagu kami biasanya menggunakan porna. Sagu yang masih mentah, disebut Sagu manta,
akan dimasukkan ke dalam porna ini untuk kemudian dibakar. Dari sebuah
porna kita bisa memperoleh beberapa buah sagu. Setelah sagu menjadi
masak dan disiap dimakan, porna yang sudah dipakai bisa dipakai lagi
untuk membuat sagu yang lain. Untuk itu porna bisa juga kita pahami
sebagai template / cetakan untuk membuat objek yang disebut Sagu bakar.
Bentuk Umum Sebuah Class
class nama_kelas
{
};
Berikut ini adalah beberapa catatan penting yang perlu diperhatikan dari bentuk umum ini:
- kata kunci class, menunjukkan bahwa kita hendak membuat sebuah kelas dan harus ditulis menggunakan huruf kecil.
- nama_kelas adalah nama dari kelas yang hendak kita buat. Sebaiknya nama ini bisa melukiskan fungsi dari kelas tersebut. Sebagai contoh, kita hendak membuat kelas untuk menyimpan data diri dari seorang mahasiswa, maka sebaiknya nama kelas yang digunakan adalah Mahasiswa atau DataMahasiswa. Perlu juga untuk diperhatikan aturan pemberian nama kelas: (1) Selalu dimulai dengan huruf Besar, misal Mahasiswa (2) Jika terdapat lebih dari satu suku kata maka setiap suku kata selalu dimulai dengan huruf besar, misal DataMahasiswa.
- Jangan melupakan tanda titik koma ';' untuk mengakhiri deklarasi dari sebuah kelas.
Posisi Penulisan Class dan Fungsi Utama
Andaikan
kita akan mendeklarasikan kelas di dalam sebuah file yang terdapat
fungsi utama, maka struktur program kita adalah sebagai berikut:
#include< …>
#include
using namespace std;
class Mahasiswa
{
};
class Dosen
{
};
…
int main()
{
//body fungsi utama
return 0;
}
Class Sebagai Tipe Data
Selama ini kita sudah mengenal beberapa macam tipe data seperti int, float, double
dll. Kelas juga bisa digunakan sebagai tipe data dari sebuah variable.
Sebagai contoh, andaikan kita mempunyai kelas dengan nama Mahasiswa dan kita hendak mendeklarasikan sebuah variabel bertipe Mahasiswa maka penulisannya adalah sebagai berikut:
Mahasiswa mhs;
Pendeklarasian
sebuah variabel yang memiliki tipe kelas tertentu bisa juga dipahami
sebagai proses pembuatan objek. Pada contoh di atas kita memiliki
sebuah objek dengan nama mhs.
Membuat Objek
Pembuatan
objek bisa dilakukan dengan mendeklarasikan sebuah varibel bertipe
kelas tertentu seperti yang sudah dijelaskan di atas. Bisa juga
dilakukan dengan menggunakan pointer, seperti berikut:
Mahasiswa *mhs1 = new Mahasiswa();
Keunggulan menggunakan pointer adalah kita bisa membuat objek pada saat program dijalankan – runtime.
Penting untuk diingat setiap objek yang sudah diciptakan (menggunakan
pointer) harus dihapus jika sudah tidak dibutuhkan lagi menggunakan
perintah delete.
delete (mhs);
Membuat Sebuah Class
Sebuah kelas bisa memiliki variabel/attribute dan fungsi/method. Setiap variabel dan fungsi ini memiliki beberapa sifat seperti private, protected dan public. Ketiga sifat ini disebuh access specifiers dan digunakan untuk menentukan siapa yang berhak mengakses variabel dan fungsi.
Berikut ini adalah bentuk umum sebuah kelas yang berisi variabel, fungsi dan access specifiers:
class Mahasiswa
{
private:
// deklarasi variabel dan fungsi yang bersifat private
…
protected:
//deklarasi variabel dan fungsi yang bersifat protected
…
public:
//deklarasi variabel dan fungsi yang bersifat public
…
};
Mengenal Konstruktor dan Destruktor
Di
dalam sebuah kelas terdapat dua buah fungsi/method spesial. Disebut
spesial karena kita tidak akan pernah memanggil fungsi tersebut secara
langsung namun fungsi ini akan dijalankan secara otomatis. Fungsi
Konstruktor (constructor) adalah fungsi yang dipanggil pada saat pembuatan sebuah objek. Sedangkan fungsi Destruktor (destructor) adalah fungsi yang dipanggil pada saat penghancuran sebuah objek.
Pertanyaan
yang menarik bagi kita adalah “kapan sih sebuah objek dihancurkan” ?
Jawabannya adalah saat objek itu sudah tidak lagi digunakan. Untuk
objek yang dibuat menggunakan pointer, objek ini akan dihancurkan hanya
pada saat kita memanggil perintah delete. Sedangkan untuk objek yang
dibuat tanpa menggunakan pointer, objek tersebut akan dihancurkan jika
keluar dari scope objek / variabel tersebut. Pembahasan tentang scope sudah pernah dibahas sebelumnya. Agar lebih memahami cobalah memahami source code yang disertakan pada tulisan ini.
Sifat
spesial yang lain dari kedua fungsi ini adalah nama. Kedua fungsi
memiliki nama yang sama dengan nama kelas. Namun yang membedakan, untuk
fungsi Destruktor ditambahkan tanda 'cacing' didepan nama fungsi. Sebagai contoh, jika kita mempunyai kelas dengan nama Mahasiswa maka nama fungsi konstruktor dari kelas ini adalah Mahasiswa() sedangkan nama fungsi destruktor dari kelas ini adalah ~Mahasiswa(). Kedua fungsi ini biasanya bersifat public.
Dengan demikian bentuk umum dari sebuah kelas adalah sebagai berikut:
class Mahasiswa
{
private:
// deklarasi variabel dan fungsi yang bersifat private
…
protected:
//deklarasi variabel dan fungsi yang bersifat protected
…
public:
//deklarasi variabel dan fungsi yang bersifat public
Mahasiswa()
{
//body dari konstruktor
}
~Mahasiswa()
{
//body dari destruktor
}
};
0 komentar:
Posting Komentar