konsepdasarpbo

Post on 06-Feb-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

MATERI PBO

TRANSCRIPT

KONSEP DASAR PBO

KONSEP DASAR PBO PEWARISAN POLIMORFISME RELASI KELAS OPERATOR OVERLOADING

Model Objek Pewarisan Polimorfisme

Object, Attributes, Methods, Messages Encapsulation Class & Instance

Object = Attributes + Methods

message

message

message

message

attributes

method

method

method

method

Pemrograman Berorientasi Objek (PBO) Melakukan pembungkusan data (attributes)

dan fungsi (behavior) ke paket yang disebut kelas

Attributes : data yang menggambarkan status internal sebuah objek “member variables” in C++ Tidak dapatt diakses dari luar

Encapsulation Disebut juga sebagai “state”.

Methods : fungsi yang mengakses status internal sebuah objek “member functions” in C++ Dapat diakses dari luaar memanipulasi attributes Disebut juga “behavior”.

Warna

Berat

J Kelamin

menggonggong

berlari

berbaring

Mengerem

Ubah gir

- gir- kecepatan- putaran

Ubahputaran

Ubah gir

mengerem

Ubahputaran

UserUser harus menggunakan method untuk memanipulasi objek.User tidak boleh mengakses attributes secara langsung.Akses ke attributes dilakukan oleh method.Method dapat menjaga konsistensi attributes.

OK

OK

NO!

OK

- gir- kecepatan- putaran

Kelas (Class) Objek Model

Attributes (data members) Behaviors (member functions)

Didefinisikan dengan keyword class

Member functions Methods Dipanggil sebagai response terhadap

pesan

class Sepeda { };

Sepeda

Mode Akses private

Default mode akses Dapat diakses oleh member functions

public Dapat diakses oleh setiap Accessible fungsi

dalam program protected

Pewarisan

class Sepeda { }; Mengerem

Ubah gir

Ubahputaran

void mengubahPutaran(int);void mengubahGir(int); void mengerem();

public: Sepeda

class Sepeda { }; Mengerem

Ubah gir

Ubahputaran

void mengubahPutaran(int);void mengubahGir(int); void mengerem();

public:

private:- gir- kecepatan- putaranint gir;

int kecepatan; int putaran;

Sepeda

class Sepeda { }; Mengerem

Ubah gir

Ubahputaran

void mengubahPutaran(int);void mengubahGir(int); void mengerem();

public:

private:- gir- kecepatan- putaranint gir;

int kecepatan; int putaran;

SepedaSepeda (int); //konstruktor

Fungsi Constructor member function khusus

menginisialisasi data members Memiliki nama yang sama dengan nama

kelas Dipanggil saat membuat objek dari

kelas. Tidak memiliki tipe balikan

Member functions didefinisikan di luar kelas Binary scope resolution operator (::)

“mengikat” nama fungsi ke nama kelas Mengindentifikasi fungsi dari suatu kelas tertentu

FormatNilaiBalikan NamaKelas::NamaFungsi( ){…

}

Member functions didefinisikan di dalam kelas Tidak membutuhkan scope resolution operator

dan nama kelas

Sepeda::Sepeda() { gir = kecepatan = putaran = 0; } // constructor void Sepeda::mengubahPutaran(int p) { putaran = p; } // mengubahPutaran void Sepeda::mengubahGir(int g) { gir = g;} // mengubahGir

void Sepeda::mengerem(){ cout << "Kecepatan dan putaran berkurang ..." ;} // mengerem

void Sepeda::tampilInfo(){ cout << "Gir : " << gir << endl << "Kecepatan : " << kecepatan << endl << "Putaran : " << putaran << endl;} // mengerem

Class Instance-Blueprint sebuah objek-tidak ada alokasi memori (hanya deklarasi)

-Objek aktual yang dibuat -membutuhkan ruang memori untuk atribut dan fungsi

Instantiate

Mengerem

Ubah gir

Ubahputaran

- gir- kecepatan- putaran

Mengerem

Ubah gir

Ubahputaran

- gir = 2 - kecepatan = 10 [mph]- putaran = 40 [rpm]

sepeda1

- putaran = 60 [rpm]- gir = 3

Instance objek yang berbeda dapat memiliki nilai atribut yang berbeda

- kecepatan = 4 [mph]- putaran = 12 [rpm]- gir = 1

- kecepatan = 35 [mph]- putaran = 80 [rpm]- gir = 5

sepeda2

sepeda3

- kecepatan = 10 [mph]kelas Sepeda

int main(){ Sepeda sepeda1(10,60,3), sepeda2(4,12,1), sepeda3(35,80,5); // instantiasi objek kelas Sepeda sepeda1.tampilInfo(); sepeda2.tampilInfo(); sepeda3.tampilInfo(); //s.mengubahGir(2); //s.tampilInfo(); getch(); return 0; } // end main

class PersegiPanjang { };

PersegiPanjang

class PersegiPanjang { };

Ubah panjang

Ubahlebar

void ubahpanjan(int);void ubahlebar(int);

public:

private:- panjang- lebar

Int panjang;Int lebar;

PersegiPanjang

class PersegiPanjang { };

Ubah panjang

Ubahlebar

void UbahPanjang(int);void UbahLebar(int);

public:

private:- panjang- lebar

Int panjang;Int lebar;

PersegiPanjangPersegipanjang (int,int);//constructor

PersegiPanjang::PersegiPanjang() { panjang = lebar=1; } // constructor void PersegiPanjang::UbahPanjang(int p) { panjang = p; } // mengubahPanjang void PersegiPanjang::UbahLebar(int l) { lebar = l;} // mengubahLebar

class PersegiPanjang { }; Mengerem

Ubah gir

Ubahputaran

void HitungLuas(int,int);void HitungKeliling(int,int);

public:

private:- gir- kecepatan- putaranint panjang;

int luas;

Sepeda

class PersegiPanjang { }; Mengerem

Ubah gir

Ubahputaran

void HitungLuas();void HitungKeliling();

public:

private:- gir- kecepatan- putaranint panjang;

int lebar;

SepedaPersegiPanjang(int, int); // konstruktor

PersegiPanjang :: PersegiPanjang () { luas = keliling = 0; } // constructor void PersegiPanjang ::HitungLuas (int p, int l) { panjang = p; lebar = l; } // Hitung Luas void PersegiPanjang ::HitungKeliling(int p, int l) { panjang = p; lebar = l; } // Hitung Keliling

top related