Constructor dan destructor pertemuan 17
Sponsored Links
This presentation is the property of its rightful owner.
1 / 18

Constructor dan Destructor Pertemuan 17 PowerPoint PPT Presentation


  • 188 Views
  • Uploaded on
  • Presentation posted in: General

Constructor dan Destructor Pertemuan 17. Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007. Learning Outcomes. Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat mendemonstrasikan penggunaan constructor dan destructor pada sebuah class.

Download Presentation

Constructor dan Destructor Pertemuan 17

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Constructor dan DestructorPertemuan 17

Matakuliah: T0456 / Algoritma dan Metode Object

Oriented Programming

Tahun: 2007


Learning Outcomes

Pada akhir pertemuan ini, diharapkan:

Mahasiswa dapat mendemonstrasikan penggunaan constructor dan destructor pada sebuah class

Buku Referensi:

  • C++ - How to program, Deitel & Deitel, Prentice Hall, 2001.

    Websites:

  • http://www.deitel.com

3


Outline Materi

  • Penggunaan Constructor

  • Syntax constructor dan contoh program

  • Macam - macam Constructor

  • Constructor dengan parameter default

  • Penggunaan Destructor

  • Syntax destructor dan contoh program

  • Pemanggilan constructor & destructor

  • Latihan dan diskusi

4


Constructor

  • Adalah method yang pertama kali dikerjakan ketika suatu class diciptakan

  • Bertugas melakukan proses inisialisasi

  • Nama constructor = nama class

  • Constructor harus dideklarasi sebagai public

  • Dapat memiliki parameter, tetapi tidak mengembalikan nilai (biarpun void)

  • Tiap class harus mempunyai minimal 1 (satu) constructor, bila tidak dideklarasikan oleh user,maka kompiler akan secara otomatis membuat default constructor.

5


Macam-macam Constructor:

  • Default constructor

    • Costructor yang digunakan untuk inisialisasi dan didefinisikan tanpa argumen (parameter)

  • Constructor dengan parameter

    • Constructor yang digunakan untuk inisialisasi object dan didefinisikan dengan argumen (parameter)

  • Copy constructor

    • Contructor khusus yang digunakan untuk meng-copy isi dari suatu object ke dalam obyek baru yang sedang diciptakan.

6


Contoh Default Constructor

#include <constrea.h>

class Point{ //deklarasi kelas Point

int x, y; //data koordinat x dan y

public:

Point(); //deklarasi konstruktor default

void move(int, int); //fungsi untuk menggerakan titik

void print(); //fungsi untuk mencetak di layar

};

Point::point(){ // definisi default constructor

cout << “Constructor is called…” << endl;

x = y = 0; //inisialisasi nilai x dan y

}

void main(){

Point P1, P2; //constructor dipanggil dua kali

}

7


Constructor dengan parameter

  • Seperti anggota fungsi yang lain, kontruktor juga dapat dideklarasikan dengan argumen atau parameter.

  • Contoh fungsi dengan argumen:

Argumen atau parameter

  • int luasPersegi(int P, int L){

  • int hasil;

  • hasil = P*L;

  • return(hasil);

  • }

8


Contoh Constructor dengan parameter

class Point{ //deklarasi kelas Point

int x, y; //data koordinat x dan y

public:

Point(int, int);//constructor declaration

void move(int, int);//fungsi untuk menggerakan titik

void print(); //fungsi untuk mencetak di layar

};

Point::point(int x1, int y1){

cout << “Constructor is called…” << endl;

if (x1 < 0) x = 0;

else x = x1;

if (y1 < 0) y = 0;

else y = y1;

}

void main(){

Point P1(20,50), P2(-10,8); //constructor dipanggil dua kali

Point p3; //ERROR

}

9


Constructor dengan parameter Default

  • Parameter dari kontruktor dapat memiliki nilai default

  • Contoh:

Nilai default dari y adalah 0

Point::point(int x1=0, int y1=0){

cout <<“Constructor is called…” <<“\n”;

if (x1 < 0)x = 0;

else x = x1;

if (y1 < 0) y = 0;

else y = y1;

}

10


Constructor dengan parameter default …

  • Dengan konstruktor ini obyek dapat dicipta dengan parameter ataupun tidak dengan parameter:

  • Contoh dengan parameter:

    Point P1(15, 75); //x=15, y=75

    Point P2(100); //x=100, y=0

  • Contoh tanpa parameter:

    Point P3; //x=0, y=0

11


Copy Constructor

  • Merupakan kontruktor khusus yang digunakan untuk mengcopi isi dari suatu object ke dalam obyek baru yang sedang diciptakan.

  • Tipe data dari parameter input adalah referance (alamat) dari obyek dengan tipe yang sama.

12


Contoh Copy Constructor

class String {

int size;

char *contents;

public:

String(const char *); //contructor dengan parameter

String(cont String &); //copy contructor

void Print();

};

//definisi fungsi copy contructor

String::String(const String &object_in) {

cout << ”copy constructor has been invoked” << endl;

size = object_in.size;

contents = new char[size+1];

strcpy(contents, object_in.contents);

}

void main() {

String my_string(“string 1”);

My_string.Print();

String other = my_string; //copy constructor dipanggil

String more(my_string); //copy constructor dipanggil

}

13


Dectructor

  • Adalah method yang terakhir kali dikerjakan sebelum siklus hidup object berakhir

  • Bertugas melakukan proses deinisialisasi, clean up, dealokasi memory, dll

  • Seperti kontruktor nama destructor sama dengan nama class dengan diberi tanda ~ di depan nama destructor

  • Nama constructor = ~nama class

  • Didefinisikan tanpa return type dan tanpa argument (parameter).

  • Destructor dideklarasi sebagai public

14


Contoh Destructor

class String {

int size;

char *contents;

public:

String(const char *); //contructor

void Print();

~String();

};

//definisi contructor

String::String(const char *in_data) {

cout <<”contructor has been call” << endl;

size = strlen(in_data);

contents = new char[size+1];

strcpy(contents, in_data);

}

15


Contoh Destructor Lanjutan …

void String::Print(){

cout << contents << “ “ << size << endl;

}

//definisi destructor

String::~String(){

Cout << “Destructor has been invoked” << endl;

Delete [] contents;

}

void main() {

String string1(“String 1”);

String string2(“String 2”);

string1.Print();

string2.Print();

Return 0; //destructor dipanggil 2 kali

}

16


Pemanggilan constructor & destructor

  • Constructor & destructor dipanggil secara otomatis.

  • Constructor pada object global dipanggil sebelum fungsi main dieksekusi dan destructor dikerjakan setelah fungsi main selesai dieksekusi.

  • Constructor pada object lokal dipanggil otomatis saat object dedefinisikan dan destructornya dieksekusi setelah proses object selesai.

  • Pada object static lokal, constructor dipanggil sekali pada saat object didefinisikan dan destructornya dipanggil setelah fungsi main selesai.

17


Diskusi dan Tanya JawabLatihan soal

18


  • Login