TUGAS TM07- PEMROGRAMAN BERORIENTASI OBYEK

Kuis dan TM 7
(Albert Hendry Harsono/1701296914/02PPT)

Soal Pilihan
01. Inheritance kerap kali dihubungkan dengan polymorphism. Istilah yang paling
tepat untuk menyatakan inheritance sebagai polymorphism adalah
a. trivial polymorphism
b. universal polymorphism
c. pure polymorphism
d. subtype polymorphism

02. Meskipun mendukung penggunaan multiple inheritance tetapi penggunaan fitur
ini tidak dianjurkan di C++. Opsi berikut yang dianjurkan sebagai penggantinya
adalah
a. composition
b. template
c. polymorphism
d. overloading function

03. Salah satu kerugian penggunaan inheritance di OOP adalah
a. independensi di antara class dalam hirarki
b. independensi di antara object dalam hirarki
c. dependensi di antara class dalam hirarki
d. dependensi di antara object dalam hirarki

04. Tipe inheritance yang dianjurkan untuk melakukan derivation adalah
a. private
b. protected
c. public
d. private, protected dan public

05. ADT dan inheritance mempunyai komponen yang sama tetapi hanya beda strukturnya.
Paralel di ADT, hirarki di inheritance. Karena itu sejumlah inheritance mempunyai
kelebihan dibandingkan dengan ADT. Kelebihan-kelebihan itu diantaranya adalah
adalah adanya fitur-fitur bedrikut ini
a. reuse-ability dan extend ability
b. extend ability dan overriding function
c. overriding function dan reuse-ability
d. reusability, extend ability dan overriding function

Soal Uraian

1. Apa yang salah dalam penggalan definisi class berikut:
class Time {
public: // prototype fungsi
private: int h = 0;
int m = 0;
int s = 0;
}
Deklarasi atribut dalam suatu kelas tidak diperbolehkan.
Seharusnya ditulis:

class Time {
public:
   // prototype fungsi
private:
   int h;
   int m;
   int s;
};

2. Jika Rasional adalah class bilangan rasional (pecahan seperti 22/7), apa beda ketiga pernyataan berikut:
Rasional y(x);
Rasional y = x;
Rasional y; y = x;

Rasional y(x); // copy constructor called
Rasional y = x; // copy constructor called
Rasional y; y = x; // Default Constructor

3. Uraikan mengapa constructor dan destructor tidak diwariskan di C++ meskipun mereka kita deklarasikan dengan level akses public atau protected. Uraikan juga mengapa fungsi friend tidak diwariskan di klas turunan. Selanjutnya, sebutkan pula sejumlah fitur lain di klas induk yang tidak diwariskan di klas turunan.
Pengecualian pada Inheritance: Constructor, destructor, operator=() member, friends. Pengecualian pada beberapa method di atas dikarenakan method-method tersebut merupakan class-specific.

4. Konsep inheritance memunculkan fitur baru dalam C++ yaitu reusability, dominating dan overriding. Jelaskan melalui penggalan kode, apa yang kamu ketahui tentang ketiga fitur tersebut.

REUSABILITY

class Persegi
{
private:
int sisi;
public:
void luas()
{
return sisi*sisi;
}
};

class Kubus : public Persegi //reusability, pemakaian kelas persegi untuk membuat kelas kubus
{

};

OVERRIDING

class Man
{
private:
string nama;
int umur;
public:
void makan()
{
cout<<”Man makan”<<endl;
}
};

class Mhs : public Man
{
public:
void makan()
{
cout<<”Mhs makan”<<endl; //overriding fungsi makan
}
};

5. Ilmu pengetahuan itu sifatnya kumulatif sehingga meskipun kita sudah mempunyai utilitas ADT yang tidak lain adalah enkapsulasi kita masih memerlukan inheritance. WHY? Untuk bisa menjawab kasus ini kamu harus membandingkan inheritance dengan ADT. Pertanyaan buat kamu adalah coba bandingkan inheritance dengan ADT dari berbagai sisi diantaranya dari sisi komponen, struktur komponen, advantage dan disadvantage.

ADT merupakan suatu cara untuk merepresentasikan benda/objek nyata ke dalam suau level presisi yang dapat diterima suatu sistem komputer. ADT sendiri menonjolkan encapsulation sebagai suatu ciri khas. Encapsulation adalah suatu metode pembungkusan data. Di lain pihak, Inheritance merupakan suatu prinsip pewarisan sifat, biasa digunakan untuk membuat ulang suatu kelas baru dari kelas yang sudah ada.

Komponen-komponen dari ADT:
– Operation/Method
– Data/Attribute

Komponen-komponen dari Inheritance:
– New Operation/Method
– New Data/Attribute
– Overriding existing Data or Method

Keuntungan ADT:
– Membentuk jenis data baru yang belum ada
– Memberi otorisasi pada data/metode tertentu

Keuntungan Inheritance:
– Sifat reusability
– Membuat ADT yang lebih khusus dari Class/Struct yang lebih umum
– Overriding function
– Extendable

Kerugian ADT:
Tidak ada kerugian berarti dari pemakaian Abstract data Type.

Kerugian Inheritance:
– Waktu load yang lebih lma buat sistem untuk mengakses/berpindah level diantara class
– Base & Inherited class tidak bisa digunakan secara independen terhadap satu sama lain
– Jika kita menghapus salah satu fungsi pada superclass yang dioverride fungsi pada derived class, akan terjadi kompleksitas di mana fungsi anak akan menjadi independen.

I AM PROUD AS BINUSIAN

This entry was posted in PBO, Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *