TUGAS TM02- PEMROGRAMAN BERORIENTASI OBYEK

TM 02

(Albert Hendry Harsono/1701296914/02PPT)

1.   Copy constructor suatu class dieksekusi jika obyek klas di-copy dengan mekanisme di bawah ini kecuali:

a. direct assignment

b. initialization

c. passing by value

d. return by value

 

2.   Fungsi anggota yang otomatis di-create oleh kompilator meskipun ia tidak secara eksplisit ditulis oleh pemrogram dalam definisi klas adalah opsi-opsi di bawah ini kecuali:

a. default constructor                         b. copy constructor

c. destructor                                             d. overloaded constructor

 

3.   Level akses utility function  atau helper function suatu class adalah:

a. public

b. protected

c. private

d. inline

 

4.   Untuk class X, sintaks copy constructor adalah

a. X(& X)

b. X(const X&)

c. X(const &X)

d. X(X &)

 

5.   C++ class mempunyai

a. satu konstruktor dan satu destructor

b. lebih dari satu konstruktor dan satu destructor

c. satu konstruktor dan lebih dari satu destructor

d. lebih dari satu konstruktor dan lebih dari satu destructor

 

6.   Apa keluaran dari penggalan program berikut ini:

class Rational {

public:

Rational() { cout << “OBYEK LAHIR.\n”; }

~Rational() { cout << “OBYEK MATI. \n”; }

private:

int num, den;

};

main() {

{   Rational x;

cout << “SEKARANG x HIDUP.\n”;

}

cout << “ANTAR BLOK.\n”;

{   Rational y;

cout << “SEKARANG y HIDUP.\n”;

}

}

Output:

OBYEK LAHIR

SEKARANG x HIDUP

OBYEK MATI

ANTAR BLOK

OBYEK LAHIR

SEKARANG y HIDUP

OBYEK MATI

 

7.   Uraikan apa yang kamu ketahui tentang constructor, user defined constructor, default constructor, parameterized constructor, constructor initialization list, copy constructor dan destructor.

– Constructor: method yang pertama kali dijalankan pada saat pembuatan suatu obyek. Constructor mempunyai nama yang sama dengan nama class dan tidak mempunyai return type.

– User-defined Constructor: Constructor yang dibuat/didefinisikan sendiri oleh user sesuai kebutuhan.

– Default Constructor: sebuah fungsi anggota yang namanya sama dengan nama kelas.

Parameterized Constructor: Constructor yang mempunyai satu atau lebih parameter.

– Constructor Initialization List: fasilitas yang disediakan oleh C++ untuk menyederhanakan struktur suatu constructor.

– Copy Constructor: Constructor dengan satu parameter dengan tipe yang sama yang ditetapkan untuk setiap anggota variabel class nonstatik objek yang datanya disalin dari objek sebelumnya.

– Destructor: sebuah method yang berguna untuk “menghancurkan” sebuah obyek (kelas) dari memori. Nama dari fungsi destructor sama dengan nama class dengan ditambahkan tanda tilde (~) di depan nama class.

 

8.   Uraikan apa yang kamu ketahui tentang default arguments di C++. Sebutkan apa saja  yang dapat digunakan sebagai default value. Mengapa nilai constant tidak dapat digunakan sebagai default value untuk reference variable?

– Default Argument:  Suatu nilai yang akan dipakai sebagai argumen bila fungsi tidak dipanggil dengan argumen lengkap. Sebagai contoh, constructor dengan default argument memiliki satu atau lebih parameter yang fungsi constructnya sudah disediakan nilai awal sebagai nilai otomatis yang akan diberikan ketika programmer tidak mencantumkannya.

– Default value yang yang diperbolehkan adalah semua tipe data kecuali tipe constant, bisa berupa variabel global, atau pemanggilan suatu fungsi.

– Constant value tidak dapat digunakan karena nilainya bersifat konstan (tidak dapat diubah), bertolak belakang dengan default value yang akan digunakan programmer untuk  memberi nilai yang bersifat modifiable (biasanya dari input user).

 

9.   Apa yang dimaksud dengan function overloading? Kriteria apa yang digunakan untuk menyatakan bahwa dua fungsi dengan nama yang sama adalah berbeda satu sama lain.

Function Overloading merupakan suatu fitur dalam C++ yang dapat digunakan seorang programmer di mana programmer diperbolehkan menggunakan fungsi dengan nama yang sama dengan suatu syarat tertentu.

Berikut syarat dari Function Overloading (minimal 1 harus terpenuhi):

– Jumlah parameter yang berbeda

– Tipe data dalam parameter list yang berbeda

– Urutan parameter berbeda jika jumlah dan tipe parameter sama

 

10.   Banyak penulis buku menyatakan bahwa untuk  class X paling sedikit  mempunyai satu constructor yaitu default constructor dengan prototype X(). Tetapi John Hubbard dalam bukunya Programming with C++ menyatakan bahwa setiap class X paling sedikit mempunyai dua constructor yaitu default X() dan copy constructor yang prototipe sintaksnya adalah X (const X & ), fungsi anggota dengan satu parameter dan pass by constant reference.

Tugas Anda:

a. Kapan copy constructor dieksekusi?

Copy constructor dieksekusi saat memenuhi kondisi berikut:

–        Suatu object di-copy sesuai meaning dari suatu inisialisasi deklarasi

–        Suatu object dipindahkan(dioper) ke suatu fungsi sesuai value-nya

–        Suatu object memiliki nilai return dari suatu fungsi

class Rational {

public :   Rational(int n, int d) : num(n), den (d) { }

Rational(const Rational  & r) : num(r.num), den(r.den)

{ cout << “COPY CONSTRUCTOR CALLED\n”;}

private: int num, den;

};

Rational f(Rational r) {

Rational s = r;

return s;

}

main() {

Rational(22,7);

Rational y(x);

f(y);

            }

b. Untuk penggalan kode di atas berapa kali copy constructor dieksekusi?

1 kali.

I AM PROUD AS A BINUSIAN

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

Leave a Reply

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