Class dan object

19
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

Transcript of Class dan object

Page 1: Class dan object

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

Page 2: Class dan object

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.

Page 3: Class dan object

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.

Page 4: Class dan object

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

Page 5: Class dan object

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;

Page 6: Class dan object

   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:

Page 7: Class dan object

-          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          = "<<

    }

Page 8: Class dan object

    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 {

Page 9: Class dan object

        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');

}

Page 10: Class dan object

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

Page 11: Class dan object

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

Page 12: Class dan object

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

Page 13: Class dan object

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;

Page 14: Class dan object

Operator Kelas pada Pemograman Delphi

Operator kelas ialah operator as dan is menerima class dan instan obyek sebagai operand,

operator = dan juga beroperasi dengan class.