C++ Class Vs Struct

4 min read Jul 01, 2024
C++ Class Vs Struct

C++ Class vs Struct: Perbedaan dan Kapan Menggunakannya

Dalam pemrograman C++, class dan struct adalah dua konsep penting yang digunakan untuk mendefinisikan tipe data baru. Meskipun keduanya memiliki kemiripan, ada perbedaan signifikan dalam penggunaan dan konvensi yang perlu dipahami.

Pengertian

Class dan struct adalah blueprint atau template untuk membuat objek. Mereka mendefinisikan sekumpulan data (member data) dan fungsi (member function) yang berhubungan dengan objek tersebut.

Perbedaan Utama

1. Default Akses Modifier

  • Class: Member data dan member function dalam class memiliki akses default private, yang berarti mereka tidak dapat diakses dari luar class kecuali dideklarasikan sebagai public.
  • Struct: Member data dan member function dalam struct memiliki akses default public, yang berarti mereka dapat diakses dari mana saja.

2. Penggunaan Konvensi

  • Class: Umumnya digunakan untuk mendefinisikan objek yang lebih kompleks dengan banyak data dan fungsi, dan memiliki fokus pada enkapsulasi dan abstraksi.
  • Struct: Umumnya digunakan untuk mendefinisikan data sederhana yang hanya berisi sedikit data dan fungsi minimal, seringkali hanya untuk pengelompokan data.

3. Penurunan

  • Class: Dapat digunakan untuk menurunkan class lain melalui pewarisan (inheritance).
  • Struct: Juga dapat digunakan untuk menurunkan class lain melalui pewarisan.

Kapan Menggunakan Class dan Struct

Class umumnya lebih cocok untuk:

  • Objek kompleks: Objek dengan banyak data dan fungsi yang berhubungan.
  • Enkapsulasi: Menyembunyikan detail implementasi dan mengendalikan akses ke data dan fungsi.
  • Abstraksi: Menyediakan antarmuka yang sederhana untuk objek kompleks.
  • Pewarisan: Mendukung pewarisan untuk membangun hierarki kelas.

Struct umumnya lebih cocok untuk:

  • Data sederhana: Mengelompokkan data yang berhubungan.
  • Struktur data: Seperti titik, vektor, dan matriks.
  • Performa: Karena akses default public, struct dapat sedikit lebih cepat diakses daripada class.

Contoh

// Class example
class Employee {
private:
  string name;
  int salary;

public:
  void setName(string newName) {
    name = newName;
  }
  string getName() {
    return name;
  }
  void setSalary(int newSalary) {
    salary = newSalary;
  }
  int getSalary() {
    return salary;
  }
};

// Struct example
struct Point {
  int x;
  int y;
};

Kesimpulan

Pilihan antara class dan struct tergantung pada kebutuhan dan konteks dalam desain program Anda. Dalam banyak kasus, class adalah pilihan yang lebih umum karena menawarkan fitur yang lebih kuat untuk enkapsulasi, abstraksi, dan pewarisan. Namun, struct tetap berguna untuk mengelompokkan data sederhana atau untuk tujuan kinerja.

Latest Posts


Featured Posts