slide1
Download
Skip this Video
Download Presentation
Constructor dan Destructor Pertemuan 17

Loading in 2 Seconds...

play fullscreen
1 / 18

Constructor dan Destructor Pertemuan 17 - PowerPoint PPT Presentation


  • 233 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Constructor dan Destructor Pertemuan 17' - elisa


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

slide17

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

ad