Posted by :
Kenji
March 12, 2015
KONSTRUKTOR
Konstruktor
adalah fungsi khusus anggota kelas yang otomatis dijalankan pada saat
penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengan
namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe
hasil (return value). Biasanya konstruktor dipakai untuk inisialisasi
anggota data dan melakukan operasi lain seperti membuka file dan
melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak
harus ada dalam kelas, tetapi jika diperlukan konstruktor dapat lebih
dari satu.
Konstruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas. Kegunaannya :
- Mengalokasikan ruang bagi sebuah objek
- Memberikan nilai awal terhadap anggota data suatu objek
- Membentuk tugas-tugas umum lainnya
Adapaun jenis-jenis kontruktor adalah sebagai berikut:
- Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu.
- Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari parameter.
- Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain.
Contoh penulisan konstruktor :
#include
class jumlah
{
public:
int jumlah1;
int jumlah2;
~jumlah();
};
jumlah objek1,objek2;
void main()
{
cout<<”Didalam main() \n”;
cout<<”objek1.jumlah1 adalah “<<
cout<<”objek1.jumlah2 adalah “<<
cout<<”objek2.jumlah1 adalah “<<
cout<<”objek2.jumlah2 adalah “<<
}
jumlah::~jumlah()
{
cout<<”Didalam jumlah() \n”;
}
DESTRUKTOR
Destruktor
adalah pasangan konstruktor. Pada saat program membuat objek maka
secara otomatis kontruktor akan dijalankan, yang biasanya dimaksudkan
untuk memberi nilai awal variable private. Sejalan dengan itu, C++
menyediakan fungsi destruktor (penghancur atau pelenyap) yang
secara otomatis akan dijalankan pada saat berakhirnya objek. Setiap
kelas mempunyai tepat satu destuktor. jika kita tidak mendeklarasikan
sebuah destruktor dalam sebuah kelas, maka destruktor akan diciptakan
sendiri oeh compiler C++. Fungsi destruktor itu sendiri adalah untuk
mendealokasikan memori dinamis yang diciptakan kontruktor. Nama
destruktor sama dengan nama kelas ditambah awalan karakter tilde (~).
Walaupun compiler C++ akan secara otomatis mendeklarasikan sebuah
destruktor, akan tetapi sangat disarankan untuk mendeklarasikan sendiri
sebuah destruktor. Karena dengan mendeklarasikan sendiri destruktor maka
kita mempunyai kontrol penuh terhadap apa yang dilakukan destruktor
dari kelas yang kita buat.
Destruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas ditambah symbol tilde (~) didepannya.
Contoh penulisan dalam Destruktor :
#include
Class Tpersegi
{
int *lebar, *panjang;
public:
Tpersegi (int, int);
~Tpersegi();
int Luas() {return (*lebar * *panjang);}
};
Tpersegi::Tpersegi(int a, int b)
{
lebar=new int;
panjang=new int;
*lebar = a;
*panjang = b;
}
Tpersegi::~Tpersegi()
{
delete lebar;
delete panjang;
}
int main()
{
Tpersegi pers(3,4), persg(5,6);
cout<<”Luas pers= “<<
cout<<”Luas persg = “<<
return 0;
}
KESIMPULAN
Dari uraian diatas dapat kita simpulkan bahwa:
Konstruktor :
- Nama kontruktor sama dengan nama kelas
- Kontruktor tidak mempunyai nilai balik
- Kontruktor harus diletakkan di bagian public
- Kontruktor
dijalankan dengan sendirinya pada saat objek diciptakan, bahkan
kontruktor dijalankan sebelum fungsi main() dijalankan.
Destruktor:
- Nama destruktor sama dengan nama kelas ditambahkan tanda tilde (~) di depannya.
- Destruktor tidak mempunyai nilai balik.
- Destruktor harus diletakkan di bagian public.
- Destruktor dijalankan dengan sendirinya pada saat objek akan sirna.
Contoh Lain konstruktor dan destruktor :
#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"
class hitung
{
public:
double alas,tinggi,luas,sisi,jari,kel;
void segitiga()
{ cout<<"** Luas Segitiga **"<
cout<<"Masukkan Alas = ";cin>>alas;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
luas=(alas*tinggi)/2;
cout<<"Luas Segitiga = "<<
}
void persegi()
{ cout<<"** Luas Persegi **"<
cout<<"Masukkan Panjang Sisi = ";cin>>sisi;
luas=sisi*sisi;
cout<<"Luas Persegi = "<<
}
void llingkaran()
{ cout<<"** Luas Lingkaran **"<
cout<<"Masukkan Panjang Jari = ";cin>>jari;
luas=3.14*jari*jari;
cout<<"Luas Lingkaran = "<<
}
void ppanjang()
{ cout<<"** Luas Persegi Panjang **"<
cout<<"Masukkan Alas = ";cin>>alas;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
luas=alas*tinggi;
cout<<"Luas Persegi Panjang = "<<
}
void kellingkaran()
{
cout<<"** Keliling Lingkaran **"<
cout<<"Masukkan Panjang Jari = ";cin>>jari;
kel=2*3.14*jari;
cout<<"Keliling Lingkaran = "<<
}
};
void main()
{ hitung htg;
char tanya;
tanya = 'y';
int pilih;
do {
system ("cls");
cout<<"== KALKULATOR LINDA =="<
cout<<"---------------------------"<
cout<<"1. Mencari Luas Segitiga"<
cout<<"2. Mencari Luas Persegi"<
cout<<"3. Mencari Luas Lingkaran"<
cout<<"4. Mencari Luas Persegi Panjang"<
cout<<"5. Mencari Keliling Lingkaran"<
cout<<"---------------------------"<
cout<<"Masukkan pilihan Anda = ";cin>>pilih;
if (pilih==1)
{ htg.segitiga();} else
if (pilih==2)
{ htg.persegi();} else
if (pilih==3)
{ htg.llingkaran();} else
if (pilih==4)
{ htg.ppanjang();} else
if (pilih==5)
{ htg.kellingkaran();}
cout<<"---------------------------"<
cout<<"Apakah Anda Ingin Mengulanginya ..? "; cin>>tanya;
} while (tanya == 'y');
}
#include "iostream.h"
#include "stdlib.h"
class hitung
{
public:
double alas,tinggi,luas,sisi,jari,kel;
void segitiga()
{ cout<<"** Luas Segitiga **"<
cout<<"Masukkan Alas = ";cin>>alas;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
luas=(alas*tinggi)/2;
cout<<"Luas Segitiga = "<<
}
void persegi()
{ cout<<"** Luas Persegi **"<
cout<<"Masukkan Panjang Sisi = ";cin>>sisi;
luas=sisi*sisi;
cout<<"Luas Persegi = "<<
}
void llingkaran()
{ cout<<"** Luas Lingkaran **"<
cout<<"Masukkan Panjang Jari = ";cin>>jari;
luas=3.14*jari*jari;
cout<<"Luas Lingkaran = "<<
}
void ppanjang()
{ cout<<"** Luas Persegi Panjang **"<
cout<<"Masukkan Alas = ";cin>>alas;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
luas=alas*tinggi;
cout<<"Luas Persegi Panjang = "<<
}
void kellingkaran()
{
cout<<"** Keliling Lingkaran **"<
cout<<"Masukkan Panjang Jari = ";cin>>jari;
kel=2*3.14*jari;
cout<<"Keliling Lingkaran = "<<
}
};
void main()
{ hitung htg;
char tanya;
tanya = 'y';
int pilih;
do {
system ("cls");
cout<<"== KALKULATOR LINDA =="<
cout<<"---------------------------"<
cout<<"1. Mencari Luas Segitiga"<
cout<<"2. Mencari Luas Persegi"<
cout<<"3. Mencari Luas Lingkaran"<
cout<<"4. Mencari Luas Persegi Panjang"<
cout<<"5. Mencari Keliling Lingkaran"<
cout<<"---------------------------"<
cout<<"Masukkan pilihan Anda = ";cin>>pilih;
if (pilih==1)
{ htg.segitiga();} else
if (pilih==2)
{ htg.persegi();} else
if (pilih==3)
{ htg.llingkaran();} else
if (pilih==4)
{ htg.ppanjang();} else
if (pilih==5)
{ htg.kellingkaran();}
cout<<"---------------------------"<
cout<<"Apakah Anda Ingin Mengulanginya ..? "; cin>>tanya;
} while (tanya == 'y');
}