Dokumen tersebut membahas konsep-konsep dasar pemrograman berorientasi objek pada bahasa Delphi seperti class, object, konstruktor, destruktor, pewarisan, pengkapsulan, polimorfisme dan eksepsi serta operator kelas.
1. TUGAS PEMROGRAMAN 2 (DELPHI)
KELAS DAN OBJEK
KONSTRUKTOR DAN DESTRUKTOR
PENGKAPSULAN, PEWARISAN, POLIMORFISME, dan EKSEPSI (delphi)
OPERATOR KELAS
OLEH:
HARDINI
NIM.3201416015
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI PONTIANAK
2015
2. Class dan Object
Class 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.
3. 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.
4. 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
5. 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;
6. 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:
7. - 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 = "<<
}
8. 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 {
9. 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');
}
10. Mengenal eksepsi pada Delphi
Kesalahansewaktu programdieksekusi atauyangdikenal denganistilah runtimeerrorbisaterjadi
karenaterdapatoperasi pembagianolehbilangannol,memoryhabisketikadiperlukan,atauoperasi
penulisanke suatuperanti gagal dilaksanakan.
Untuk mengatasi permasalahandemikian,Delphimenyediakanmekanisme yangdisebuteksepsi.
Denganmemberikankode padapenanganeksepsi,suatutindakandapatdiatursendiri olehpemrogram
sekiranyakesalahan-kesalahanangtidaknormal terjadi.Eksepsi akanmuncul manakalasuatukesalahan
atau kejadianyangmenginterupsi eksekusi yangnormal terjadi padaprogram.Eksepsi akan
menyebabkankontrolprogramdiberikankepadapenangananeksepsi.Denganmelakukanpenanganan
terhadapeksepsi,pemrogramdapatmenangkapkesalahan,memberitahukanataumengoreksi
kesalahan,sertamenjalankanataubahkanmenghentikaneksekusiprogram.
PEWARISAN
11. 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
12. 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
13. 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;