Deklarasi Kelas

9.4.1. Deklarasi Kelas

Sama seperti pada Java, pembuatan kelas dalam C++ menggunakan kata kunci class. Di dalam kelas tersebut terdapat data dan method yang akan digunakan oleh obyek yang akan dibuat (instance) dari kelas tersebut. Data dan method ini biasan disebut sebagai anggota kelas (class member). Method dalam C++ sama bentuknya dengan fungsi yang telah kalian pelajari di sub bab sebelumnya. Perhatikan contoh berikut.

Contoh 9.26. Deklarasi dan penggunaan kelas. #include <iostream>

using namespace std;

class PersegiPanjang { int x, y; public : void set_nilai ( int , int ); int luas() { return (x*y);}

void PersegiPanjang::set_nilai ( int a, int

b) { x = a; y = b;

int main () { PersegiPanjang pp1, pp2; pp1.set_nilai (3,4); pp2.set_nilai (7,12); cout << “Luas pp1 : “ << pp1.luas()<<endl; cout << “Luas pp2 : “ << pp2.luas()<<endl;

return 0; }

Pada contoh di atas, kelas yang kita deklarasikan bernama PersegiPanjang dan mempunyai anggota kelas dua data yaitu x dan y dan dua method yaitu set_nilai dan luas(). Dua buah method tersebut ditetapkan mempunyai akses public. Seperti halnya java, ada 3 hak akses terhadap data atau method dalam

240 Rekayasa Perangkat Lunak 240 Rekayasa Perangkat Lunak

Method set_nilai mempunyai dua argument/parameter yang semuanya bertipe data int namun tidak memiliki pengembalian nilai, sehingga kita menggunakan kata kunci void. Method luas() tidak memiliki argumen namun memiliki pengembalian nilai. Untuk method yang memiliki pengembalian nilai maka kita menggunakan tipe data di depan nama method. Bukalah kembali bab

8 untuk mengingat kembali tentang argumen dalam method. Pada C++ kita dapat mengimplementasikan method di dalam kelas atau di

luar kelas, tetapi deklarasi method harus berada di dalam kelas. Umumnya kita meletakkan implementasi method di luar kelas (di luar tanda { }). Perhatikan pada contoh di atas. Deklarasi method set_nilai terletak di dalam kelas PersegiPanjang namun implementasinya berada di luar kelas. Sedangkan method luas(), baik deklarasi maupun implementasi berada di dalam kelas. Pada implementasi method di luar kelas kita menggunakan tanda :: untuk mendefinisikan anggota kelas di luar kelasnya (perhatikan pada baris void

PersegiPanjang::set_nilai ( int a, int b)).

Setelah kelas terbentuk kita dapat menggunakan dengan membuat obyek yang merupakan instance dari kelas tersebut. Perhatikan pada bagian yang diawali dengan int main(). Pada bagian ini kita membentuk dua obyek dengan nama pp1 dan pp2 sebagai instance dari kelas PersegiPanjang. Kemudian kita menggunakan obyek-obyek ini untuk memanggil method set_nilai dan luas() dari kelas PersegiPanjang. Ketikkan program di atas kemudian jalankan. Bagaimanakah hasilnya?

Seperti pada Java, umumnya suatu kelas akan mempunyai constructor yang digunakan untuk menginisialisasi variabel atau mengalokasikan memori. Constructor ini mempunyai nama yang sama dengan kelasnya. Di dalam suatu kelas sebaiknya juga dibentuk method destructor. Destructor adalah kebalikan dari constructor. Tujuan utamanya adalah mengembalikan nilai variabel ke bentuk awal dan membebaskan memori dari penggunaan variabel. Method destructor mempunyai nama yang sama dengan nama kelasnya, tetapi dengan ditambah awalan tanda ~. Perhatikan contoh penggunaan constructor dan destructor berikut.

Contoh 9.27. Constructor dan destructor.

#include <iostream> using namespace std;

class PersegiPanjang { int *panjang, *lebar; public: PersegiPanjang (int,int); ~PersegiPanjang ();

Rekayasa Perangkat Lunak 241 Rekayasa Perangkat Lunak 241

PersegiPanjang::PersegiPanjang (int a, int b) { panjang = new int; lebar = new int; *panjang = a; *lebar = b;

PersegiPanjang::~PersegiPanjang () { delete panjang; delete lebar;

int main () { PersegiPanjang pp1 (3,4), pp2 (5,6); cout << "Luas pp1: " << pp1.luas() << endl; cout << "Luas pp2: " << pp2.luas() << endl; return 0;

Dokumen yang terkait

ANALISIS KESESUAIAN ANTARA RENCANA PEMBANGUNAN JANGKA MENENGAH DAERAH 2010-2015 DENGAN ALOKASI DANA, PROGRAM, DAN CAPAAN PROGRAM SATUANKERJA PERANGKAT DAERAH (Studi pada Kabupaten Jember)

1 28 68

ANALISIS KINERJA SIMPANG MENGGUNAKAN PERANGKAT LUNAK KAJI DAN PTV VISTRO (STUDI KASUS : SIMPANG BERSINYAL DAN TAK BERSINYAL PERKOTAAN JEMBER)

5 45 18

ANALISIS PENGARUH PERSEPSI PENERAPAN TRANSPARANSI DAN AKUNTABILITAS PUBLIK TERHADAP KINERJA SATUAN KERJA PERANGKAT DAERAH (Studi Empiris Pada Pemerintah Daerah Kabupaten Bondowoso)

1 31 18

ANALISIS PENGARUH PERSEPSI TRANSPARANSI DAN AKUNTABILITAS TERHADAP KINERJA LAYANAN PUBLIK SATUAN KERJA PERANGKAT DAERAH KABUPATEN BANYUWANGI

1 32 18

ANALISIS PENGARUH PERSEPSI TRANSPARANSI DAN AKUNTABILITAS TERHADAP KINERJA LAYANAN PUBLIK SATUAN KERJA PERANGKAT DAERAH KABUPATEN BANYUWANGI

19 247 18

PERANGKAT PEMBELAJARAN RENCANA PELAKSANAAN RENCANA PELAKSANAAN PEMBELAJARAN PEMBELAJARAN5

0 39 600

PERANGKAT PEMBELAJARAN RENCANA PELAKSANAAN RENCANA PELAKSANAAN PEMBELAJARAN PEMBELAJARAN 4

0 30 284

PENGUJIAN PERANGKAT LUNAK PADA SISTEM INFORMASI RAPOR ONLINE MENGGUNAKAN METODE BLACKBOX TESTING DENGAN TEKNIK EQUIVALENCE CLASS PARTITIONING

3 38 23

PENGEMBANGAN APLIKASI CLIENT E-LEARNING UNTUK LEARNING MANAGEMENT SYSTEM (LMS) CLAROLINE PADA PERANGKAT MOBILE ANDROID

2 27 29

HUBUNGAN KEPEMIMPINAN KEPALA DESA DENGAN EFEKTIVITAS KERJA PERANGKAT DESA (Studi Pada Pemerintah Desa Talang Bojong Kecamatan Kotabumi Kota Kabupaten Lampung Utara)

0 25 90