Jumat, 18 November 2011

C++ Lanjutan 28

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.
  • Private dapat digunakan di dalam kelas untuk memproteksi anggota-anggota tertentu dari kelas, agar tidak dapat diakses dari luar kelas secara langsung. Private merupakan default dari kelas.
  • Public mengizinkan anggota-anggota yang berada didalamnya bebas di akses dari luar 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