Sunday, June 10, 2012

Pewarisan (Inheritance)

C++ memungkinkan suatu kelas mewarisi data ataupun fungsi anggota kelas lain. Sifat seperti ini disebut pewarisan ( inheritance). Kelas yang mewarisi sifat kelas lain disebut kelas turunan ( derived class). Sedangkan yang mewariskan sifat ke kelas lain disebut kelas dasar ( base class ).
Keuntungan utama adanya pewarisan yaitu memungkinkan suatu kode yang telah ditulis mudah skali untuk di gunakan kembali. Dengan cara demikian pengembangan suatu program menjadi lebih efisin dan menghemat waktu. Selain itu , kita dapat menambahkan sifat -sifat baru yang tidak ada pada kelas dasar atau bahkan mengganti sifat- sifat pada kelas turunan, yang berbeda dengan sifat dasar.
Berikut adalah contoh dari kode c++ yang telah menggunakan sifat pewisan :
---------------------------------------------------------------------------------------------------------------
# include
# include
#include
const int batas = 80;

class Tespegawai // kelas induk
{
          private:
                char nama [batas];
                int nip;
                char alamat [batas];
          public:
                void getdata()
                {
                cout<<"\n==============================";
                     cout << endl << " Input Nama       : ";
                     cin >> nama;
                     cout << endl<<  " Input NIP        : ";
                     cin >> nip;
                     cout<< endl<<   " Input Alamat     : ";
                     cin >> alamat;
                }
                void putdata()
                {
                cout<<"\n==============================";
                cout << endl << " Nama        : " << nama;
                cout << endl << " NIP         : " << nip;
                cout << endl << " Alamat      : " <
                }
};
class dosen : public Tespegawai // kelas turunan
{
          private:

                float tunjangan;
                float gaji;
                float total;
          public:
                void getdata()
                {
                     Tespegawai::getdata();

                     cout<<<  " Input Gaji        :Rp.";
                     cin>> gaji;
                     cout<<<  " Input Tunjangan   :Rp. ";
                     cin >> tunjangan;
                     cout<<"\n==============================";
                }
                void putdata()
                {
                     Tespegawai::putdata();
                     total = gaji + tunjangan;

                     cout<<< "\n Tunjangan  :Rp. "<< tunjangan;
                     cout<<< "\n Gaji Pokok :Rp. "<< gaji;
                     cout<<< "\n Gaji Total :Rp. "<
                     cout<<"\n==============================";
                }
};
class admin:public Tespegawai //kelas turunan
{
          private:
                char bagian [batas];
                float gaji;
                int lembur;
                float total;
                int jam;
          public:
                void getdata()
                {
                     Tespegawai::getdata();
                     cout<<< "Input Bagian       : " ;
                     cin>>bagian;
                     cout<<< " Input Gaji Pokok  : ";
                     cin >> gaji;
                     cout<<< "lembur            : Rp.10000/jam";
                     cout<<< "Input Jumlah jam lembur :";
                     cin>> jam;

                     cout<<"\n==============================";
                }
                void putdata()
                {
                     Tespegawai::putdata();
                     lembur = 10000;
                     total = lembur*jam+gaji;
                     cout<<< "\n Bagian      :" << bagian;
                     cout<<< "\n Jam Lembur  :" << jam;
                     cout<<< "\n Gaji Pokok  :Rp." << gaji;
                     cout<<< "\n Total Gaji  :Rp." << total;
                     cout<<"\n==============================";
                }
};


class honorer:public Tespegawai   //kelas turunan
{
          private  :
              float gaji;

          public :
                void getdata()
                {
                Tespegawai :: getdata();
                cout<<< "Input Gaji  :Rp. ";
                cin >> gaji;
                cout<<"\n==============================";
                }
                void putdata()
                {
                Tespegawai :: putdata();
                cout <<<" \n Gaji        :Rp. "<< gaji;
                cout<<"\n==============================";
                }

};

void main()
{
          dosen d1;
         admin a1;
          honorer h1;


cout<< "************************************************************************\n";
cout<< "* Nama : Ibnu Fatoni                            NIM : 11201022         *\n";
cout<< "*                        TUGAS UAS PBO                                 *\n";
cout<< "************************************************************************\n";
cout<<"\n";
cout<<"\n";
          cout<
          cout<<"Input Data Dosen \n";
          d1.getdata();

          cout<
          cout<<"Input Data Admin \n";
          a1.getdata();

          cout<<"\nInput Data Honorer ";
          h1.getdata();


          clrscr();
          cout<<<"\n DATA KETIGA JENIS PEGAWAI ";
          cout<<<"\n";
          cout<<"\n==============================";
          cout<<"\nData DOsen ";
          d1.putdata();

          cout<<"\nData Admin";
          a1.putdata();

          cout<<"\nData Honorer";
          h1.putdata();
          cout << endl;

        getch();

}

---------------------------------------------------------------------------------------------------------------------
Dilihat dari kode diatas maka jelas dengan pewarisan kita bisa memperpendek code program.
jadi inilah perbedaan uama anata pemrograman terstruktur dengan pemrograman berorientasi objek.

No comments:

Post a Comment