PBO TM 07

T00440020220133014TM 07 – jawab

Posted in Uncategorized | Tagged , | Leave a comment

PBO TM 06

TM 06

Posted in Uncategorized | Tagged , | Leave a comment

PBO – TM 05

TM 05 – jawab

Posted in Uncategorized | Tagged , | Leave a comment

PBO – TM 04

1701295104 / Tifany Inne / 37

TM 04 : Class Time

  1. Desain klas dengan nama Time yang mempunyai tiga data anggota yaitu hour, minute dan second dengan level akses adalah private. Selain fungsi anggota baku constructor dan destructor, class Time juga mempunyai tiga fungsi anggota lain yang prototipenya adalah sebagai berikut: void setData() , fungsi konstant void geData() dan fungsi konstant void printData(). Tugas ketiga fungsi terakhir ini adalah sebagai berikut: fungsi setData() untuk memberi nilai hour, minute dan second , fungsi getData() untuk mengambil nilai data yang diisi oleh fungsi setData(), sedangkan fungsi printData() untukmencetak ketiga data anggota tersebut.

class Time{

private:

int hour, minute, second;

public:

Time(){hour=0; minute=0; second=0;}

~Time(){}

void getData(int*, int*, int*)const;

void setData(int, int, int);

void printData()const;

};

  1. Definisikan atau implementasikan constructor dan destructor di dalam klas sedangkan fungsi setData() , getData() dan printData() di luar klas Time. Untuk definisi fungsi yang ada di luar class jangan lupa untuk menggunakan scope resolution operator.

void Time::getData(int *hour, int *minute, int *second)const{

*hour=this->hour;

*minute=this->minute;

*second=this->second;

}

void Time::setData(int hour, int minute, int second){

this->hour=hour;

this->minute=minute;

this->second=second;

}

void Time::printData()const{

cout<<“Hour: “<<this->hour<<endl;

cout<<“Minute: “<<this->minute<<endl;

cout<<“Second: “<<this->second<<endl;

}

  1. Berikan alasan mengapa fungsi getData() dan printData() perlu dibuat konstant?

Karena getData() dan printData() tidak boleh mengganti isi membernya.

  1. Selanjutnya tulis fungsi main() untuk mengetes klas yang Anda desain.

void main() {

int hour, minute, second;

Time a;

a.setData(4, 5, 6);

a.getData(&hour, &minute, &second);

cout<<“Hour: “<<hour<<endl;

cout<<“Minute: “<<minute<<endl;

cout<<“Second: “<<second<<endl<<endl;

a.printData();

cin.get();

}

I AM PROUD AS A BINUSIAN

Posted in Uncategorized | Tagged , | Leave a comment

PBO – TM 03

1701295104 / Tifany inne / 37

TM 03 : ADT Array dan Struct

Array adalah suatu ADT. Seperti halnya ADT lain, array mempunyai data anggota dan operasi, metode atau fungsi anggota. Elemen array diakses berdasarkan posisinya di dalam array relatif terhadap elemen pertama. Operasi utama array adalah store dan retrieve. Operassi store untuk menyimpan elemen e di indeks i array A[] adalah A[i] = e sedangkan operasi retrieve untuk mengambil suatu elemen dari array A[] di indeks i dan disimpan di elemen e adalah e = A[i].

  1. Desain class Array berdasarkan uraian ADT Array di atas dengan ketentuan level akses data anggota adalah private dan level akses fungsi anggota adalah public. Selain itu jangan lupa untuk menambahkan constructor dan destructor pada class tersebut. Dalam desain ini, semua fungsi anggota kecuali constructor dan destructor, harus berbentuk prototype.

const int MAX =10;

class Array {

private :

int A[MAX};

int i, e;

public :

Array() { for ( i =0; i < MAX; i++) A[i] = 0; }

~Array(){}

void store( int, int );

int retrieve (int, int);

};

  1. Selanjutnya definisikan semua fungsi anggota di luar class Array. Ingat jangan lupa untuk menggunakan scope resolution operator ::

void Array :: store (int i, int e) { A[i] = e; }

int Array :: retrieve (int i, int e) { e = A[i]; }

  1. Terakhir, tulis fungsi main() sebagai driver untuk menguji desain kamu.

void main() {

int e;

Array a;

            a.store(1,11);

            a.store(2,22);

            a.store(3,33);

            cout << endl << a,retrieve (3,e);

            cout << endi << a.retrieve(2,e);

            cout << endl << a.retrieve(1,e);

}

   Seperti halnya array, struct adalah suatu ADT yang mempunyai data anggota dan   operasi, metode atau fungsi anggota. Elemen, member atau field struct diakses menggunakan operator dot atau pointer ->. Bentuk umumnya adalah sebagai berikut:

  <structure_variabel>.<field_name>

  <structure_pointer> ® <field_name>

Operasi utama di struct adalah store(e) dan retrieve(). Operassi store(e) untuk menyimpan elemen e di field i struct s adalah s.i = e sedangkan operasi retrieve() untuk mengambil suatu elemen dari struct s di field i dan disimpan di elemen e adalah e = s.i.

  1. Diketahui struktur dtMhs dengan tiga data anggota : nim, nama dan IPK serta fungsi anggota store() dan retrieve(). Desain class dtMhs berdasarkan uraian di atas dengan ketentuan level akses data anggota adalah private dan level akses fungsi anggota adalah public. Selain itu jangan lupa untuk menambahkan constructor dan destructor pada class tersebut. Dalam desain ini, semua fungsi anggota kecuali constructor dan destructor, harus berbentuk prototype.

class Struct {

private :

char nim[12], nama[255];

float ipk;

public :

Struct() { nim=””; nama=””; ipk=0; }

~Struct(){}

void storeNim( char* );

char* retrieveNim();

void storeNama( char* );

char* retrieveNama();

void storeIpk( float );

float retrieveIpk();

};

  1. Selanjutnya definisikan semua fungsi anggota di luar class Struct Ingat jangan lupa untuk menggunakan scope resolution operator ::

void Struct :: storeNim (char nim[]) { this->nim=nim; }

char* Struct :: retrieveNim () { return nim; }

void Struct :: storeNama (char nama[]) { this->nama=nama; }

char* Struct :: retrieveNama () { return nama; }

void Struct :: storeIpk (float ipk) { this->ipk=ipk; }

float Struct :: retrieveIpk() { return ipk; }

  1. Terakhir, tulis fungsi main() sebagai driver untuk menguji desain kamu.

void main() {

Struct a;

a.storeNim(“1701294193”);

a.storeNama(“Tumpeng”);

a.storeIpk(3.33);

cout << endl << a.retrieveNim();

cout << endi << a.retrieveNama();

cout << endl << a.retrieveIpk();

cin.get();

}

I AM PROUD AS A BINUSIAN

Posted in Uncategorized | Tagged , | Leave a comment

PBO – TM02

TM 02

Tifany inne – 1701295104

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

a. direct assignment b. initialization
c. passing by value c. 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 klas 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”;
}
}
Jawab:
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.
Jawab:
a. Constructor: adalah metode khusus yang mengatur bagaimana menginisialisasi suatu objek di class secara otomatis.
b. User defined constructor: konstruktor yang di buat oleh pengguna. Karena ada konstruktor default, maka dilakukan overloading function.
c. default constructor: konstruktor yang secara otomatis dibuat saat class dibentuk secara implisit(tidak terlihat).
d. parameterized constructor: konstruktor yang mengambil parameter tertentu yang ditentukan oleh pengguna.
e. constructor initialization list: kumpulan konstruktor yang bukan default.
f. copy constructor: saat constructor dibuat, ada copy constructor yang dibuat secara otomatis pula.
g. destructor: kebalikannya konstruktor, sebuah metode untuk menghancurkan class setelah selesai digunakan untuk membebaskan memori.

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

default arguments adalah argumen di suatu fungsi yang tidak harus di spesifikasi oleh pengguna karena telah ada default valuenya. Default value bisa saja const, variable, atau pointer. Nilai constant tidak dapat di gunakan sebagai default value di reference variable karena const tidak bisa diubah isinya dan sebuah const variable tidak bisa dikembalikan sebagai non-const variable.

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.
Jawab:
Function overloading adalah lebih dari satu fungsi yang mempunyai nama yang sama tetapi dibedakan oleh programnya. Kriteria yang digunakan untuk menyatakan dua fungsi dengan nama sama berbeda adalah jumlah parameter, urutan parameter dipanggil, dan jenis parameternya.

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?
b. Untuk penggalan kode berikut berapa kali copy constructor dieksekusi?

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);
}

Jawab:
a. copy constructor dieksekusi saat objek di kopi di iniliasisasi deklarasi, saat value objek dikirim ke suatu fungsi dan saat value objek dikembalikan dari suatu fungsi.
b. 4 kali
I AM PROUD AS A BINUSIAN

Posted in Uncategorized | Tagged | Leave a comment

PBO: TM 01

TM 01

Tifany Inne – 1701295104
1. Ada tiga istilah yang saling berkaitan saat kita mulai mempelajari OOP yaitu ADT (Abstract Data Type), encapsulation dan class. Coba uraikan secara rinci apa yang dimaksud istilah-istilah tersebut. Selain itu berikan contoh-contohnya.

2. Ada tiga karakteristik yang membedakan OOP dengan procedural programming yaitu ADT, inheritance dan dynamic binding, Dua topik teerakhir belum kita pelajari sehingga dalam soal ini kita hanya fokus pada ADT.
a. Apa yang dimaksud dengan ADT?
b. Apa yang dimaksud dengan propterties suatu ADT?
c. Mengapa kita memerlukan ADT?
d. Bagaimana suatu ADT berhubungan dengan ADT lain?
e. Apa yang dimaksud dengan ”…dalam ADT implementasi disembunyikan dari user…” Berikan contohnya.

3. Esensinya tidak perbedaan mendasar antara  struct dan class tetapi kita lebih suka menggunakna class daripada struct. Uraikan mengapa kita lebih suka menggunakan class daripada struct?

4. Esensinya class dan struct adalah sama dalam C++. Perbedaan yang signifikan di antara mereka adalah
a. default akses class adalah private sedangkan struct adalah private
b. default akses class adalah private sedangkan struct adalah public
c. default akses class adalah public sedangkan struct adalah private
d. default akses class adalah public sedangkan struct adalah public

5. Interface suatu class terdiri dari
a. data anggota                                   b. prototipe fungsi anggota
c. implementasi fungsi anggota        d. data anggota dan prototipe fungsi anggota

-d1030-

Jawab

1. a. Abstract Data Type adalah suatu jenis struktur data yang tidak didefinisikan secara langsung, melainkan dengan suatu model matematika atau algoritma tertentu. Contoh Abstract Data Type adalah pointer di C.
b. Enkapsulasi merupakan perepresentasian suatu kumpulan data menjadi satu tipe data baru yang mencakup semua isi data. Contohnya adalah class, struct, array.
c. Inheritance adalah pewarisan suatu sifat, dalam bahasa pemograman pewarisan variabel atau fungsi. Contohnya adalah class dan subclassnya.

2. a. Abstract Data Type adalah suatu jenis struktur data yang tidak didefinisikan secara langsung, melainkan dengan suatu model matematika atau algoritma tertentu.
b. Atribut dari suatu entiti yang merupakan struktur data dan fungsi.
c. Kita memerlukan ADT agar program dapat di modifikasi lebih mudah dan data yang dynamic.
d. Suatu ADT dapat diakses oleh ADT lain melalui tiga cara, yaitu public, private, dan protected. Ketiga akses tersebut dapat di definisi dengan operator tertentu.
e. Penyembunyian informasi. Di private, data hanya bisa di akses ADT itu sendiri. Protected berarti data bisa di akses ADT itu dan ADT turunannya, sementara public berarti datanya bisa di akses semuanya.

3. Karena class mendefinisikan isinya sebagai satu objek, sedangkan struct sebagai satu tipe data.
4. b.
5. d.

Posted in Uncategorized | Tagged , | Leave a comment

Hello world!

Welcome to Binusian blog.
This is the first post of any blog.binusian.org member blog. Edit or delete it, then start blogging!
Happy Blogging 🙂

Posted in Uncategorized | 1 Comment