Pengertian Class


Class adalah metode logical untuk organisasi data dan fungsi dalam struktur yang sama. Class dideklarasikan menggunakan keyword class, yang secara fungsional sama dengan keyword struct, tetapi dengan kemungkinan pernyataan fungsi sebagai anggota, formatnya sebaai berikut :


class class_name {
 permission_label_1:
  member1;
 permission_label_2:
  member2;
 ...
} object_name;

Dimana class_name adalah nama class (user defined type) dan field optional object_name adalah satu atau beberapa identifier objek yang valid. Body dari deklarasi berisikan members yang dapat berupa data ataupun deklarasi fungsi dan permission labels (optional), dapat berupa satu dari tiga keyword berikut : private: , public: atau protected: . Digunakan untuk menentukan batasan akses terhadap members yang ada :

-  private = anggota class dapat diakses dari danggota lain pada kelas yang sama atau dari class "friend".
-  protected = anggota dapat diakses dari anggota class yang sama atau class friend , dan juga dari anggota class turunannya(derived).
-  public = anggota dapat diakses dari class manapun.

Default permission label : private
Contoh : 

class CRectangle { 
   int x, y; 
 public: 
   void set_values (int,int); 
   int area (void); 
 } rect "

Deklarasi class  CRectangle dan object bernama  rect. Class ini berisi empat anggota: dua variable bertipe int (x and y) pada bagian private (karena private adalah default permission) dan dua fungsi pada bagian public : set_values() dan area(), dimana hanya dideklarasikan propotype_nya.

Perhatikan perbedaan antara nama classdan nama object. Pada contoh sebelumnya CRectangle adalah nama class(contoh, user-defined type), dan rect adalah object dari tipe CRectangle. Sama halnya dengan deklarasi berikut :
          
int a;

int adalah nama class (type) dan a adalah nama object(variable)

Contoh : 


// 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(); 
}

Output :
         area: 12

Hal baru dari contoh diatas adalah operator :: dari lingkup yang disertakan dalam pendefinisian set_values(). Digunakan untuk mendeklarasikan anggota dari class diluar class tersebut.

Scope operator (::) menspesifikasikan class dimana anggota yang dideklarasikan berada, memberikan scope properties yang sama seperti jika dideklarasikan secara langsung dalam class. 

Contoh : 
// class 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, rectb; 
  rect.set_values (3,4); 
  rectb.set_values (5,6); 
  cout << "rect area: " << rect.area() << endl; 
  cout << "rectb area: " << rectb.area() << endl; 
}


Output : 
             rect area: 12
             rectb area: 30

Perhatikan pemanggilan rect.area() tidak memberikan hasil ang sama dengan pemanggilan rectb.area(). Ini disebabkan karena objek dari class CRectangle mempunyai varialbe sendiri, x dan y, dan fungsi set_value() dan area().




Share this

Related Posts

Previous
Next Post »