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

Constructor dan Destructor Pertemuan 17 PowerPoint PPT Presentation


  • 171 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 destructor pertemuan 17

Constructor dan DestructorPertemuan 17

Matakuliah: T0456 / Algoritma dan Metode Object

Oriented Programming

Tahun: 2007


Learning outcomes

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

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

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

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

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

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

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

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 default1

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

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

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

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

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

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


Constructor dan destructor pertemuan 17

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 jawab latihan soal

Diskusi dan Tanya JawabLatihan soal

18


  • Login