IX. KELAS
9.1 KELAS & STRUKTUR
Kelas merupakan struktur data dari objek. Untuk menjelaskan tentang kelas, akan kita bandingkan bentuk antara struktur dan kelas.
BENTUK
| |
KELAS
|
STRUKTUR
|
class nama_class
{
private :
anggota_data;
public :
fungsi_anggota;
} ;
|
struct nama_struct
{
anggota_data;
} ;
|
Terlihat perbedaan antara kelas dan struktur, yaitu :
PERBEDAAN
| |
KELAS
|
STRUKTUR
|
Terdapat anggota data dan fungsi anggota. Anggota data biasanya berupa variabel dan fungsi anggota biasanya berupa fungsi.
|
Hanya terdapat anggota data
|
Terdapat kata-kata kunci private dan public yang menentukan hak akses bagi anggota-anggota di dalam kelas.
|
Hak akses pada struktur sama seperti hak aksespublic pada kelas
|
9.2 KELAS SECARA UMUM
Konsep penggabungan data dan fungsi seperti diatas disebut encapsulasi, yang diterapkan dalam C++ dengan tipe turunan.
Contoh Kelas :
1. Fungsi didefinisikan di dalam kelas
#include <iostream.h>
#include <string.h>
class penduduk
{
private:
int id;
char nama[80];
public:
void tampilkan(void)
{
cout<<”No. KTP : “<<id<<endl;
cout<<”Nama : “<<nama<<endl;
}
void set(int idn, char *n)
{
id = idn;
strcpy(nama,n);
}
};
void main()
{
penduduk saya;
saya.set(1234,”Andi”);
saya.tampilkan();
}
2. Fungsi anggota didefinisikan diluar kelas
#include <iostream.h>
#include <string.h>
class penduduk
{
private:
int id;
char nama[80];
public:
void tampilkan();
void set(int idn, char *n);
};
void main()
{
penduduk saya;
saya.set(1234,”Andi”);
saya.tampilkan();
}
void penduduk :: tampilkan(void)
{
cout<<”No. KTP : “<<id<<endl;
cout<<”Nama : “<<nama<<endl;
}
void penduduk :: set(int idn, char *n)
{
id = idn;
strcpy(nama,n);
}
Keluaran kedua contoh diatas sama saja, yaitu :
No. KTP : 1234
Nama : Andi
Penjelasan :
Saya merupakan objek dari class penduduk.Pada contoh 2 fungsi didefinisikan diluar, oleh karena itu pada pendefinisian fungsi harus memiliki bentuk :
tipe_return_fungsi nama_kelas :: nama_fungsi (parameter)
Hal ini untuk memberitahu kompiler bahwa fungsi tersebut merupakan anggota dari kelas nama_kelas. Simbol ( :: ) merupakan operator resolusi lingkup.
Tidak ada komentar:
Posting Komentar