Download - KonsepDasarPBO
![Page 1: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/1.jpg)
KONSEP DASAR PBO
![Page 2: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/2.jpg)
KONSEP DASAR PBO PEWARISAN POLIMORFISME RELASI KELAS OPERATOR OVERLOADING
![Page 3: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/3.jpg)
Model Objek Pewarisan Polimorfisme
![Page 4: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/4.jpg)
Object, Attributes, Methods, Messages Encapsulation Class & Instance
![Page 5: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/5.jpg)
Object = Attributes + Methods
message
message
message
message
attributes
method
method
method
method
![Page 6: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/6.jpg)
Pemrograman Berorientasi Objek (PBO) Melakukan pembungkusan data (attributes)
dan fungsi (behavior) ke paket yang disebut kelas
![Page 7: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/8.jpg)
Warna
Berat
J Kelamin
menggonggong
berlari
berbaring
![Page 9: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/9.jpg)
Mengerem
Ubah gir
- gir- kecepatan- putaran
Ubahputaran
![Page 10: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/12.jpg)
class Sepeda { };
Sepeda
![Page 13: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/14.jpg)
class Sepeda { }; Mengerem
Ubah gir
Ubahputaran
void mengubahPutaran(int);void mengubahGir(int); void mengerem();
public: Sepeda
![Page 15: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/19.jpg)
Member functions didefinisikan di dalam kelas Tidak membutuhkan scope resolution operator
dan nama kelas
![Page 20: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/25.jpg)
class PersegiPanjang { };
PersegiPanjang
![Page 26: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/26.jpg)
class PersegiPanjang { };
Ubah panjang
Ubahlebar
void ubahpanjan(int);void ubahlebar(int);
public:
private:- panjang- lebar
Int panjang;Int lebar;
PersegiPanjang
![Page 27: KonsepDasarPBO](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062810/55cf8fe7550346703ba11330/html5/thumbnails/31.jpg)
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