Upload
muhammaddaus
View
40
Download
2
Embed Size (px)
TUGAS
PEMROGRAMAN 2
Operator dan Kelas
Konstruktor dan Destruktor
Pengkapsulan, Pewarisan, Polimorfisme, Eksepsi
Operator Kelas
Nama : Muhammad Firdaus
Nim : 3201416054
Mata Kuliah : PEMROGRAMAN 2
Semester : 2
Program Studi : T. Inforamtika
Dosen : MARYANA SYAMSYUDIN
Class dan ObjectClass dan Object adalah dua istilah yang sering dipakai dalam Object Pascal dan
bahasa OOP lainnya. Class adalah type data yang didefinisikan oleh pemakai. Class
mempunyai keadaan (representasi) dan operasi (perilaku). Class mempunyai data
internal dan beberapa method (dalam bentuk procedure dan function. Method
menggambarkan karakteristrik dasar dan perilaku sejumlah objek yang serupa.
Object adalah instance dari sebuah class atau sebuah variable dengan type class. Pada
saat program dijalankan, Object memerlukan memori untuk representasi internalnya.
Hubungan antara class dan obect sama dengan hubungan type data dengan variable.
KONSTRUKTOR DAN DESTRUKTOR
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:
1. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal
tertentu.
2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal
dari parameter.
3. 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');
}
Mengenal eksepsi pada Delphi
Kesalahan sewaktu program dieksekusi atau yang dikenal dengan istilah runtime error bisa terjadi karena terdapat operasi pembagian oleh bilangan nol, memory habis ketika diperlukan, atau operasi penulisan ke suatu peranti gagal dilaksanakan.
Untuk mengatasi permasalahan demikian, Delphi menyediakan mekanisme yang disebut eksepsi. Dengan memberikan kode pada penangan eksepsi, suatu tindakan dapat diatur sendiri oleh pemrogram sekiranya kesalahan-kesalahan ang tidak normal terjadi. Eksepsi akan muncul manakala suatu kesalahan atau kejadian yang menginterupsi eksekusi yang normal terjadi pada program. Eksepsi akan menyebabkan kontrol program diberikan kepada penanganan eksepsi. Dengan melakukan penanganan terhadap eksepsi, pemrogram dapat menangkap kesalahan, memberitahukan atau mengoreksi kesalahan, serta menjalankan atau bahkan menghentikan eksekusi program.
PEWARISAN
Pewarisan Di Delphi 7.Inheritance/pewarisan merupakan fitur yang tersedia dalam OOP(Object Oriented Programming).Dimana kita bisa menduplikasi sifat-sifat sebuah class , dan memanfaatkannya di class yang lain.Class dalam Delphi 7 sendiri ialah file Unit yang bersisi source code dari program.Dan class itu sendiri merupakan sebuah object.
Contoh :TypeTitik = Objekx,y,Warna : Integer;constructor Initsdestructor doneprocedure SetX(newx:Integer)function GetX:Integer;End;Lingkaran = Object(Titik)
R : Real;End;
PENGKAPSULAN
Penggabungan data dan metode menjadi satu kesatuan yang disebut kelas. Pada konsep ini terdapat konsep untuk menyembunyikan infomasi. Konsep penyembunyian informasi ini dalam hal kontrol akses (AC), yang terdiri dari Public dan Private. Public, anggota kelas tersebut hanya dapat diakses dari kelas/procedure yang lain, sedangkan Private, hanya dapat diakses pada kelas/procedure pada unit yang sama.
Contoh :TypeTitik = ObjekPrivatex,y,Warna : Integer;Publicconstructor Initsdestructor doneprocedure SetX(newx:Integer)function GetX:Integer;End;
POLIMORFISME
Banyak bentuk, merupakan dua kelas yang diturunkan dari satu kelas mempunyai metode sama tetapi implementasinya berbeda. Atau dengan kata lain nama metode sama kode berbeda. Metode ini sering disebut metode Virtual. Penggunaannya dengan menggunakan kata “Virtual”Contoh :TypeTitik = Objekx,y,Warna : Integer;constructor Initsdestructor doneprocedure gambar; virtual;End;Lingkaran = Object(Titik)R : Real;constructor Initsdestructor doneprocedure gambar; virtual;End;Metode gambar pada titik dam lingkaran adalah Virtual, artinya implementasinya bisa berbeda tergantung kelasnya.Contoh :
Procedure Titik.Gambar;BeginWriteln(‘Titik’);End;Procedure Lingkaran.Gambar;BeginWriteln(‘Lingkaran’);End;
KONSTRUKTOR DAN DESTRUKTOR
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:
4. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu.
5. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari
parameter.
6. 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');
}
Mengenal eksepsi pada Delphi
Kesalahan sewaktu program dieksekusi atau yang dikenal dengan istilah runtime error bisa terjadi
karena terdapat operasi pembagian oleh bilangan nol, memory habis ketika diperlukan, atau operasi
penulisan ke suatu peranti gagal dilaksanakan.
Untuk mengatasi permasalahan demikian, Delphi menyediakan mekanisme yang disebut eksepsi.
Dengan memberikan kode pada penangan eksepsi, suatu tindakan dapat diatur sendiri oleh
pemrogram sekiranya kesalahan-kesalahan ang tidak normal terjadi. Eksepsi akan muncul manakala
suatu kesalahan atau kejadian yang menginterupsi eksekusi yang normal terjadi pada program.
Eksepsi akan menyebabkan kontrol program diberikan kepada penanganan eksepsi. Dengan
melakukan penanganan terhadap eksepsi, pemrogram dapat menangkap kesalahan, memberitahukan
atau mengoreksi kesalahan, serta menjalankan atau bahkan menghentikan eksekusi program.
PEWARISAN
Pewarisan Di Delphi 7.Inheritance/pewarisan merupakan fitur yang tersedia dalam OOP(Object
Oriented Programming).Dimana kita bisa menduplikasi sifat-sifat sebuah class , dan
memanfaatkannya di class yang lain.Class dalam Delphi 7 sendiri ialah file Unit yang bersisi source
code dari program.Dan class itu sendiri merupakan sebuah object.
Contoh :
Type
Titik = Objek
x,y,Warna : Integer;
constructor Inits
destructor done
procedure SetX(newx:Integer)
function GetX:Integer;
End;
Lingkaran = Object(Titik)
R : Real;
End;
PENGKAPSULAN
Penggabungan data dan metode menjadi satu kesatuan yang disebut kelas. Pada konsep ini terdapat
konsep untuk menyembunyikan infomasi. Konsep penyembunyian informasi ini dalam hal kontrol
akses (AC), yang terdiri dari Public dan Private. Public, anggota kelas tersebut hanya dapat diakses
dari kelas/procedure yang lain, sedangkan Private, hanya dapat diakses pada kelas/procedure pada
unit yang sama.
Contoh :
Type
Titik = Objek
Private
x,y,Warna : Integer;
Public
constructor Inits
destructor done
procedure SetX(newx:Integer)
function GetX:Integer;
End;
POLIMORFISME
Banyak bentuk, merupakan dua kelas yang diturunkan dari satu kelas mempunyai metode
sama tetapi implementasinya berbeda. Atau dengan kata lain nama metode sama kode
berbeda. Metode ini sering disebut metode Virtual. Penggunaannya dengan menggunakan
kata “Virtual”
Contoh :
Type
Titik = Objek
x,y,Warna : Integer;
constructor Inits
destructor done
procedure gambar; virtual;
End;
Lingkaran = Object(Titik)
R : Real;
constructor Inits
destructor done
procedure gambar; virtual;
End;
Metode gambar pada titik dam lingkaran adalah Virtual, artinya implementasinya bisa
berbeda tergantung kelasnya.
Contoh :
Procedure Titik.Gambar;
Begin
Writeln(‘Titik’);
End;
Procedure Lingkaran.Gambar;
Begin
Writeln(‘Lingkaran’);
End;
OPERATOR KELAS
|Operator kelas ialah operator as dan is menerima class dan instan obyek sebagai
operand, operator = dan juga beroperasi dengan class.