konsepdasarpbo

31
KONSEP DASAR PBO

Upload: rekky

Post on 06-Feb-2016

213 views

Category:

Documents


0 download

DESCRIPTION

MATERI PBO

TRANSCRIPT

Page 1: KonsepDasarPBO

KONSEP DASAR PBO

Page 2: KonsepDasarPBO

KONSEP DASAR PBO PEWARISAN POLIMORFISME RELASI KELAS OPERATOR OVERLOADING

Page 3: KonsepDasarPBO

Model Objek Pewarisan Polimorfisme

Page 4: KonsepDasarPBO

Object, Attributes, Methods, Messages Encapsulation Class & Instance

Page 5: KonsepDasarPBO

Object = Attributes + Methods

message

message

message

message

attributes

method

method

method

method

Page 6: KonsepDasarPBO

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

dan fungsi (behavior) ke paket yang disebut kelas

Page 7: KonsepDasarPBO

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”.

Page 8: KonsepDasarPBO

Warna

Berat

J Kelamin

menggonggong

berlari

berbaring

Page 9: KonsepDasarPBO

Mengerem

Ubah gir

- gir- kecepatan- putaran

Ubahputaran

Page 10: KonsepDasarPBO

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

Page 11: KonsepDasarPBO

Kelas (Class) Objek Model

Attributes (data members) Behaviors (member functions)

Didefinisikan dengan keyword class

Member functions Methods Dipanggil sebagai response terhadap

pesan

Page 12: KonsepDasarPBO

class Sepeda { };

Sepeda

Page 13: KonsepDasarPBO

Mode Akses private

Default mode akses Dapat diakses oleh member functions

public Dapat diakses oleh setiap Accessible fungsi

dalam program protected

Pewarisan

Page 14: KonsepDasarPBO

class Sepeda { }; Mengerem

Ubah gir

Ubahputaran

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

public: Sepeda

Page 15: KonsepDasarPBO

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

Page 16: KonsepDasarPBO

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

Page 17: KonsepDasarPBO

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

Page 18: KonsepDasarPBO

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( ){…

}

Page 19: KonsepDasarPBO

Member functions didefinisikan di dalam kelas Tidak membutuhkan scope resolution operator

dan nama kelas

Page 20: KonsepDasarPBO

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

Page 21: KonsepDasarPBO

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

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

Page 22: KonsepDasarPBO

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]

Page 23: KonsepDasarPBO

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

Page 24: KonsepDasarPBO

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

Page 25: KonsepDasarPBO

class PersegiPanjang { };

PersegiPanjang

Page 26: KonsepDasarPBO

class PersegiPanjang { };

Ubah panjang

Ubahlebar

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

public:

private:- panjang- lebar

Int panjang;Int lebar;

PersegiPanjang

Page 27: KonsepDasarPBO

class PersegiPanjang { };

Ubah panjang

Ubahlebar

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

public:

private:- panjang- lebar

Int panjang;Int lebar;

PersegiPanjangPersegipanjang (int,int);//constructor

Page 28: KonsepDasarPBO

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

Page 29: KonsepDasarPBO

class PersegiPanjang { }; Mengerem

Ubah gir

Ubahputaran

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

public:

private:- gir- kecepatan- putaranint panjang;

int luas;

Sepeda

Page 30: KonsepDasarPBO

class PersegiPanjang { }; Mengerem

Ubah gir

Ubahputaran

void HitungLuas();void HitungKeliling();

public:

private:- gir- kecepatan- putaranint panjang;

int lebar;

SepedaPersegiPanjang(int, int); // konstruktor

Page 31: KonsepDasarPBO

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