Pengertian dan Contoh Class & Object C++

Tags

Pengertian dan Contoh Class & Object C++ - Belajar C++

Dalam C dan bahasa pemrograman prosedural lainnya, pemrogramannya berorientasi kepada aksi, sedangkan pemrograman C++ cenderung berorientasi pada obyek. Disamping itu, unit program dalam C adalah fungsi, tetapi di dalam C++, unit program adalah kelas (class) dimana suatu obyek (object) secara mendekati kenyataan dapat diciptakan. Kelas di dalam C++ merupakan pengembangan dari notasi struct di dalam C biasa, yaitu struktur untuk mendefinisikan elemen-elemen data. Misalnya didefinisikan data tentang waktu yang terdiri dari jam, menit, dan detik sebagai berikut:
struct waktu{
   int hour;       // nilai jam 0 - 23
   int minute;   // nilai menit 0 - 59
   int second;   // nilai detik 0 - 59
};

Baca juga : Pengertian dan Contoh Structure C++

Definisi Waktu ini terdiri dari tiga buah anggota data (data members) yang semuanya bertipe int, yaitu hour, minute, dan second. Anggota struktur dapat terdiri dari berbagai macam tipe, kecuali tipe Waktu itu sendiri.  Class (Kelas) adalah sebuah konsep yang memperluas dari struktur data, seperti struktur data, mereka dapat berisi data anggota, tetapi mereka juga dapat mengandung fungsi sebagai anggota. Sebuah objek adalah Instansiasi kelas. Dalam hal variabel, kelas akan menjadi tipe, dan objek akan variabel. Kelas didefinisikan baik menggunakan kata kunci class atau kata kunci struct , dengan sintaks berikut.

Bentuk umum Class
class nama_class {
   access_specifier_1:
      member1;
   access_specifier_2:
      member2;
   ...
} nama_object;

Dimana class_name adalah identifier yang valid untuk kelas, object_names adalah daftar nama opsional dari objek dari kelas ini. Tubuh deklarasi dapat berisi anggota, yang dapat menjadi data atau deklarasi fungsi, dan specifier akses opsional.

Kata kunci class dalam C++ digunakan untuk memodelkan suatu obyek terdiri dari dua anggota, yaitu atribut yang direpresentasikan sebagai anggota data (data members) dan sifat atau operasi-operasi atau prosedur-prosedur yang direpresentasikan sebagai fungsi anggota (member functions). Fungsi anggota sering disebut dengan metode pada bahasa OOP lainnya dan digunakan untuk memberi pesan pada obyek yang bersangkutan. Setiap anggota dari obyek ini dikelompokkan berdasarkan sifat akses terhadap anggotaanggotanya, baik dari dalam obyek itu sendiri maupun dari obyek lainnya. Ada tiga sifat yang dapat diberikan, yaitu public, private, dan protected.
  • private anggota kelas dapat diakses hanya dari dalam anggota lain dari kelas yang sama (atau dari "teman-teman" mereka).
  • protected anggota dapat diakses dari anggota lain dari kelas yang sama (atau dari "teman-teman" mereka), tetapi juga dari anggota turunan kelas mereka.
  • public anggota dapat diakses dari mana saja dimana objek terlihat.
class Time {
   public:
      Time();                                  // default constructor
      void setTime(int, int, int);      // member function
      voit print();
      ~Time();                                // destructor
      private:
      int hour;                                // data members
      int minute;
      int second;
};

Anggota kelompok private hanya dapat diakses oleh fungsi anggota dari kelas itu sendiri dan kelas lain yang mempunyai hubungan friend. Hal ini berbeda dengan kelompok public yang dapat diakses dari bagian-bagian lainnya dari program, sedangkan kelompok protected hanya dapat diakses oleh fungsi anggota dari kelas yang bersangkutan dan kelas-kelas lain yang menjadi turunannya.

Pembatasan akses itu merupakan information hiding yang berguna antara lain jika representasi data dari kelas berubah, hanya fungsi anggota (bukan program dari pengguna) yang perlu diambil, dan jika ada kesalahan dalam manipulasi anggota data dari kelas, hanya fungsi anggota yang perlu di-debug, bukan seluruh program. Fungsi anggota yang namanya sama dengan nama kelas disebut default constructor, dan fungsi anggota yang namanya terdiri tanda tilde (“~“) diikuti dengan nama kelas disebut destructors. Constructor akan secara otomatis dipanggil oleh kompilator untuk inisialisasi obyek, sedangkan destructor akan secara otomatis dipanggil oleh kompilator untuk dealokasi memori.

class Persegipanjang {
      int width, height;
   public:
      void set_values (int,int);
      int area (void);
} persegi;

Keterangan :
  • Persegipanjang : Menyatakan tipe kelas yang bernama "persegipanjang "
  • persegi : yaitu sebuh nama object dari kelas yang dinamakan "persegi"
  • Kelas ini berisi empat anggota : dua anggota data jenis int width dan height dengan akses pribadi dan dua fungsi anggota dengan akses publik: fungsi set_values ​​dan area.

Baca juga : Pengertian dan Contoh Destruktor C++

Sebuah kelas menyediakan cetak biru untuk objek, jadi pada dasarnya sebuah objek dibuat dari kelas. Kami menyatakan objek dari kelas dengan tepat jenis yang sama dari deklarasi bahwa kita mendeklarasikan variabel dari tipe dasar.

Contoh :
#include <iostream>
#include <conio>
class Kubus
{
   public:
      double panjang;
      double luas;
      double tinggi;
};
int main( )
{
   Kubus kubus1;
   Kubus kubus2;
   double volume = 0.0;
   // data kubus 1
   kubus1.tinggi = 5.0;
   kubus1.panjang = 6.0;
   kubus1.luas = 7.0;
   // data kubus 2
   kubus2.tinggi = 10.0;
   kubus2.panjang = 12.0;
   kubus2.luas = 13.0;
   // volume dari kubus 1
   volume = kubus1.tinggi * kubus1.panjang * kubus1.luas;
   cout << "Volume dari kubus 1 : " << volume <<endl;
   // volume dari kubus 2
   volume = kubus2.tinggi * kubus2.panjang * kubus2.luas;
   cout << "Volume dari kubus : " << volume <<endl;
   getch();
}

Seperti halnya operasi Struct program diatas mengelompokan beberapa variabel dan menjadikanya variabel yang bisa digunakan untuk pemudahan pemrograman. program diatas memproses rumus kubus satu dan dua. dengan nilai yang berbeda.

tetapi harus diingat kita tidak dapat mengakses x atau y karena mereka adalah member
private.
// classes example
#include <iostream.h>
class CRectangle {
      int x, y;
   public:
      void set_values (int,int);
      int area (void) {return (x*y);}
};
void CRectangle::set_values (int a, int b) {
   x = a;
   y = b;
}
int main () {
   CRectangle rect;
   rect.set_values (3,4);
   cout << "area: " << rect.area();

Pada contoh diatas kita menemui scope operator baru :: yang digunakan untuk deklarasi suatu member diluar dari class-nya. Penulisannya diawali dengan nama class yang memiliki member tersebut diikuti oleh scope operator (::) dan nama member yang bersesuaian.

Baca juga : Pengertian dan Daftar Precedence of Operator C++

Catatan : Sesuatu hal yang sering dikacaukan adalah perbedaan antara Class dan Object. Pada dasarnya Object merupakan Instance dari suatu Class. Dan Class merupakan cetak biru dari suatu Object.

Cukup sekian dari belajarcpp.com semoga artikel ini bisa bermanfaat untuk kita semua. Mohon maaf atas kekuranganya dan Terima Kasih atas dukungan dan kunjungan anda ke BelajarCPP. Have a nice day.

Last update : 6 Februari 2016

1 comments

kalau untuk objectnya gimana??
itu kan cuma class saja. Newbie


EmoticonEmoticon