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 akses public 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