Kelas & Objek C++: Panduan Praktis Pemrograman Berorientasi Objek
Kelas & Objek C++
Temukan cara mengenkapsulasi data dan perilaku dalam C++ menggunakan kelas dan objek, dengan contoh yang jelas dan praktik terbaik.
Mengapa Menggunakan Kelas?
Dalam pelajaran sebelumnya kita telah menjelajahi fungsi dan variabel. Saat proyek tumbuh, mengelompokkan data dan operasi terkait menjadi penting untuk kemudahan pemeliharaan dan kejelasan. Sebuah kelas memungkinkan Anda menggabungkan anggota data dan fungsi anggota ke dalam satu unit logis, memungkinkan pemrograman berorientasi objek (OOP)—fondasi desain C++ modern.
Ilustrasi: Sebuah Ruangan
Pertimbangkan ruangan persegi panjang. Anda perlu menyimpan length, breadth, dan height sambil juga menghitung luas dan volume. Dengan kelas, Anda dapat menjaga ini erat kaitannya:
class Room { public: double length; double breadth; double height; double calculateArea() { return length * breadth; } double calculateVolume() { return length * breadth * height; } };
Mendefinisikan Kelas
Sebuah kelas didefinisikan dengan kata kunci class, diikuti oleh namanya dan badan yang dibungkus dalam kurung kurawal, diakhiri dengan titik koma:
class ClassName { // data members // member functions };
Dalam contoh di atas, Room adalah biru cetak. Variabel di dalamnya disebut anggota data; fungsi adalah fungsi anggota.
Membuat Objek
Mendefinisikan kelas hanya menentukan tata letak; itu tidak mengalokasikan memori. Objek adalah instance konkret yang dibuat dari biru cetak tersebut:
Room room1; // satu objek Room room2, room3; // beberapa objek dalam satu deklarasi
Objek dapat dibuat instance di mana pun—di dalam fungsi, kelas lain, atau secara global—asalkan cakupannya dihormati.
Mengakses Anggota
Gunakan operator titik (.) untuk memanggil fungsi anggota atau mengakses anggota data:
room1.length = 5.5; double area = room1.calculateArea();
Contoh 1: Menghitung Metrik Ruangan
#include <iostream> using namespace std; class Room { public: double length; double breadth; double height; double calculateArea() { return length * breadth; } double calculateVolume() { return length * breadth * height; } }; int main() { Room room1; room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; cout << "Luas Ruangan = " << room1.calculateArea() << endl; cout << "Volume Ruangan = " << room1.calculateVolume() << endl; return 0; }
Output
Luas Ruangan = 1309 Volume Ruangan = 25132.8
Enkapsulasi: Publik vs Privat
Enkapsulasi melindungi data dengan mengontrol akses. Anggota yang dideklarasikan sebagai private tersembunyi dari dunia luar dan hanya dapat diakses melalui fungsi anggota publik.
class Test { private: int a; void function1() {} public: int b; void function2() {} };
Dalam contoh berikut, anggota data privat dan diinisialisasi melalui metode publik:
#include <iostream> using namespace std; class Room { private: double length; double breadth; double height; public: void initData(double len, double brth, double hgt) { length = len; breadth = brth; height = hgt; } double calculateArea() { return length * breadth; } double calculateVolume() { return length * breadth * height; } }; int main() { Room room1; room1.initData(42.5, 30.8, 19.2); cout << "Luas Ruangan = " << room1.calculateArea() << endl; cout << "Volume Ruangan = " << room1.calculateVolume() << endl; return 0; }
Output
Luas Ruangan = 1309 Volume Ruangan = 25132.8
Baca Lebih Lanjut
Untuk panduan resmi, konsultasikan Standar C++ ISO/IEC 14882:2023 atau sumber terpercaya seperti cplusplus.com dan cppreference.com.