algoritma dan struktur data - constructor dan destructor

Post on 06-Jul-2015

69 Views

Category:

Engineering

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Pengenalan konstruktur dan destruktor dari sebuah tipe data

TRANSCRIPT

Konstruktor dan Destruktor

Algoritma dan Struktur Data

Kuliahkita - Edwin Lunando

Pendahuluan

Konstruktor dan Destruktor adalah fungsi umum yang diimplementasikan pada tipe data abstrak.

Sesuai dengan namanya, konstruktor dan destruktor masing-masing digunakan untuk membuat dan menghancurkan objek

KonstruktorKonstruktor digunakan untuk membuat atau menginstansiasikan suatu objek.

Konstruktor melibatkan alokasi memori ketika instansiasi dan inisialisasi objek

Proses instansiasi berarti mengalokasikan sejumlah memory untuk struktur data yang ditentukan, sedangkan proses inisialisasi berarti menentukan sebuah nilai awal untuk data yang ada di dalamnya

Destruktor

Destruktor digunakan untuk menghancurkan objek.

Fungsi ini dipanggil ketika objek tidak lagi digunakan dan alokasi memori terhadap objek akan dibersihkan sepenuhnya dari program

Destruktor - 2

Mengapa perlu ada destruktor? tidak cukup dihapus?

Jika kita lupa untuk membersihkan objek-objek yang sudah tidak lagi dipakai, maka akan terjadi pembengkakan penggunaan memory yang terus menumpuk. (memory leak)Ketika destructor dipanggil, memori yang ditempati akan dikembalikan atau dikosongkan kembali

Contoh Pendefinisian

{ Pendefinisian Pseudocode Tipe } type namaTipe : < namaTipe1 : tipe1, namaTipe2 : tipe2, …, namaTipeN : tipeN >

procedure Destruct();

procedure Construct();

Contoh Deklarasi di C++

typedef struct Jam{

int Hour;

int Minute;

int Second;

// Jam (); // constructor default

Jam (int HH, int MM, int SS) { // constructor buatan

Hour = HH; Minute = MM; Second = SS;

}

// ~Jam (); // constructor default

~Jam() { cout << “telah dihancurkan”; }

} Jam;

Contoh Deklarasi di C++

int main() {

Jam J(10,11,12);

cout << J.Hour << endl; // akan mengembalikan nilai 10

cout << J.Minute << endl; // akan mengembalikan nilai 11

cout << J.Second << endl; // akan mengembalikan nilai 12

return 0;

}

top related