constructor dan descructor
-
Upload
arsul-ansar -
Category
Documents
-
view
15 -
download
0
description
Transcript of constructor dan descructor
![Page 1: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/1.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
INF-103 Pemrograman II
CONSTRUCTOR DAN
DESTRUCTOR
Dr. Taufik Fuadi Abidin, M.TechIrvanizam Zamanhuri, M.Sc
Program Studi InformatikaFMIPA UNIVERSITAS KUALA
http://www.informatika.unsyiah.ac.id
![Page 2: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/2.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Constructor� Constructor adalah fungsi khusus dalam sebuah class
yang dipanggil saat sebuah objek dibuat. Constructortidak memiliki return value
� Nama constructor sama dengan nama class
� Constructor yang tidak memiliki parameter disebut default constructor
� Jumlah constructor dalam sebuah class boleh lebih dari satu, namun parameternya harus berbeda satu dengan yang lainnya
2
![Page 3: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/3.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Contohclass counter {
public:counter(int i); //constructorvoid reset() { val = 0; }int get() const { return val; }void print() const {
cout << val << '\t'; }void click() { val = (val + 1) % 100; }
private:int val; // 0 to 99
};
inline counter::counter(int i){val = i%100;}
3
![Page 4: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/4.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Contoh Penggunaan
counter a(0); // nilai val dalam objek a bernilai 0
counter b(1); // nilai val = 1// nilai val dalam objek b bernilai 1
counter a; //illegal karena tanpa parameter
4
![Page 5: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/5.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Default Constructor� Default constructor tidak memiliki paramater. Jika
dalam class tidak dibuat constructor, maka compiler akan membuat sebuah default constructor
� Beberapa constructor dapat dideklarasi dalam sebuah class. Proses ini disebut overloading
Bila constructor berikut di tambah dalam class counter:
counter() { val = 0; }
Maka:counter s; //inisialisasi val dalam s = 0counter d[5]; // array ukuran 5 dengan val 0
5
![Page 6: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/6.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Default ConstructorJika pernyataan berikut ditambahkan dalam class counter :
inline counter::counter(int i = 0) {value = i % 100;
}
Maka constructor tersebut menjadi constructor yang memiliki parameter dan sekaligus menjadi default constructor .
Mengapa?
6
![Page 7: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/7.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Constructor dalam Classclass Player {
int health;int strength;int agility;
Player(); // constructor - no return type
public void move();public void attack();
};
7
Player::Player() {strength = 10;agility = 10;health = 10;
}
![Page 8: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/8.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Dua Constructor dalam Classclass Player {
int health;int strength;int agility;
Player(); Player(int s, int a = 5); // 2 parameters
public void move();public void attack();
};
8
Player::Player(int s, int a = 5) {
strength = s;agility = a;health = 10;
}
Player::Player() {strength = 10;agility = 10;health = 10;
}
![Page 9: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/9.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Inisialisasi Objek Class Player
Player redHat; // default constructor
Player blueHat(14,7);
Player greenHat(20);
Player yellowHat(10,10);
9
![Page 10: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/10.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Destructor� Destructor lebih simple dari constructor. Setiap class
hanya memiliki satu destructor
� Destructor tidak perlu secara eksplisit dipanggil. Destructor dipanggil secara otomatis oleh compiler saat objek tidak dibutuhkan lagi
� Nama destructor sama dengan nama class dan diawali dengan simbol tilde (~)
10
Player::~Player(){strength = 0;agility = 0;health = 0;
}
![Page 11: constructor dan descructor](https://reader035.fdocuments.net/reader035/viewer/2022073103/55cf8f89550346703b9d43bb/html5/thumbnails/11.jpg)
INF-103 PEMROGRAMAN IIINF-103 PEMROGRAMAN II
Tugas Bacaan:
11
Constructor dan Destructor
http://www.fredosaurus.com/notes-cpp/oop-condestructors/constructors.html
http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/constructors/
http://www.intap.net/~drw/cpp/cpp07_01.htm