Konstruktor dan Destruktor pada OOP C++ - nblognlife

Konstruktor dan Destruktor pada OOP C++

Contoh Program Konstruktor dan Destruktor pada OOP C++

          Dalam Object Oriented Programming terdapat istilah konstruktor dan destruktor. Lalu, apa yang dimaksud dengan Konstruktor dan Destruktor?. Berikut penjelasannya.

KONSTRUKTOR 
          Konstruktor adalah fungsi anggota dari suatu kelas yang secara otomatis dijalankan ketika suatu objek diciptakan.  Konstruktor mempunyai aturan sebagai berikut, 
 1)    Nama Konstruktor harus sama dengan nama kelas yang mendefiniskannya, 
 2)    Konstruktor tidak memiliki nilai balik, 
 3)    Konstruktor harus diletakkan pada bagian public.

Konstruktor biasanya digunakan untuk,
1)    Melakukan alokasi memori,
2)   Memberikan nilai awal terhadap anggota kelas (atau disebut inisialisasi), dan melakukan tugas umum lainnya.

DESTRUKTOR 
          Destruktor adalah fungsi anggota dari suatu kelas yang akan dijalankan secara otomatis pada saat objek akan sirna/hilang. Nama dari destruktor sama dengan nama kontruktor, hanya saja diawali dengan karakter ‘ ~ ’. Destruktor banyak digunakan untuk melakukan operasi dealokasi memori.
Contoh class yang di dalamnya terdapat konstruktor dan destruktor :

class Mobil
{
    private :
int roda, pintu;
char warna[10];
    public :
      Mobil(); //Konstruktor
      ~Mobil(); //Destruktor
void info();
}

Berikut ini contoh program yang menggunakan Konstruktor dan Destruktor :
/*
      Compiler : Visual C++ 2008
*/
#include <iostream>
using namespace std;
#include <conio.h>

class Rumah
{
private :
      int pintu, jendela;
      char *warna;
public
      //konstruktor
      Rumah(int jum_pintu, int jum_jendela, char *warna_rumah); 
      ~Rumah(); //destruktor
      void info();
};

int main()
{  
      cout<<"//Awal fungsi main..."<<endl;

      Rumah obj(2,4,"Putih");
     
      cout<<endl;
      cout<<"DATA RUMAH"<<endl;
      cout<<"----------"<<endl;
      obj.info();
     
      cout<<endl;
      cout<<"//Akhir fungsi main..."<<endl;
      return 0;
}

void Rumah::info()
{
      //menampilkan hasil ke layar
      cout<<"Jumlah pintu   : "<<pintu<<endl;
      cout<<"Jumlah jendela : "<<jendela<<endl;
      cout<<"Warna Rumah    : "<<warna<<endl;
}

Rumah::Rumah(int jum_pintu, int jum_jendela, char *warna_rumah)
{
      cout<<"//Objek dibuat, kontruktor dijalankan... "<<endl;
      warna = new char[25]; //alokasi memori
      strcpy(warna, warna_rumah);
      pintu = jum_pintu;
      jendela = jum_jendela;
}

Rumah::~Rumah()
{
      cout<<"//Objek akan sirna, destruktor dijalankan..."<<endl;
      delete [] warna; //dealokasi memori
      _getche();
      //getche() diletakkan di sini hanya untuk menampilkan hasil
}


Output 
//Awal fungsi main...
//Objek dibuat, kontruktor dijalankan...

DATA RUMAH
----------
Jumlah pintu   : 2
Jumlah jendela : 4
Warna Rumah    : Putih

//Akhir fungsi main...
//Objek akan sirna, destruktor dijalankan...


Penjelasan :
-    Pada program di atas, konstruktor digunakan untuk melakukan operasi inisialisasi dan melakukan alokasi memori. Dengan menggunakan konstruktor kita bisa sedikit ‘berhemat’ dengan tidak membuat suatu fungsi yang secara khusus diciptakan untuk melakukan suatu inisialisasi, namun cukup dengan menggunakan suatu konstruktor.
-  Konstruktor secara otomatis dijalankan saat objek ‘obj’ diciptakan (tanpa memerlukan pemanggilan), sedangkan destruktor secara otomatis dijalankan pada saat objek akan sirna/hilang (tanpa memerlukan pemanggilan). 
-   Walaupun fungsi main selesai dijalankan, compiler masih menuju ke fungsi destruktor. 


[RS]

Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?

Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).

Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.

Terima kasih

2 Responses to "Konstruktor dan Destruktor pada OOP C++"

  1. saya blm begitu paham apa kepentingannya dibuat konstruktor. Apakah tiap kali membuat script dengan konsep OOP perlu kita membuat konstruktor?

    ReplyDelete
    Replies
    1. @Balmut
      Silahkan dibaca lagi penjelasan saya di atas.

      Konstruktor bisa dideklarasikan langsung oleh pemrogram secara eksplisit atau boleh juga tidak.
      Karena C++ menyediakan "default constructor", yakni semacam konstruktor bawaan pada C++. Apabila tidak ada kontruktor yang dideklarasikan oleh pemrogram maka kompiler akan memanggil "default constructor" tersebut.

      Delete