TM 01
(Albert Hendry Harsono/1701296914/02PPT)
- 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.
– Abstract Data Type (ADT): suatu cara di mana data atau suatu objek nyata diwakili dalam suatu tipe data, dilakukan dengan cara enkapsulasi/pembungkusan terhadap berbagai macam tipe data (tidak harus sama) untuk dijadikan suatu tipe data baru.
Contoh: Struct Account Bank:
–Data representation :
•Account number
•Account name
•Account balance
–Operation
•View
•Deposit
•Withdrawal
– Enkapsulasi merupakan proses pemaketan pada sebuah/sekelompok data yang bertujuan untuk menyembunyikan informasi dari user yang biasa disebut sebagai information hiding.
Contoh:
class Student{ private : int nim; char name[20]; public : int getNim(){ return nim; } char* getName(){ return name; } void setName(char* name){ strcpy(this->name, name); } void setNim(int nim){ this->nim = nim; } };
– Class adalah sebuah konsep Object Oriented Programming (OOP) yang digunakan dalam proses enkapsulasi attribute dan method yang memiliki kesamaan behavior. Class terdiri dari 3 bagian: class name, attribute, dan method.
Contoh:
class className { accessControl: member; accessControl: member; … … … };
2. Ada tiga karakteristik yang membedakan OOP dengan procedural programming yaitu ADT, inheritance dan dynamic binding, Dua topik terakhir belum kita pelajari sehingga dalam soal ini kita hanya fokus pada ADT.
a. Apa yang dimaksud dengan ADT?
ADT(Abstract Data Type) merupakan penggabungan berbagai object dengan berbagai maca tipe data beserta fungsinya untuk membentuk suatu tipe data baru.
b. Apa yang dimaksud dengan properties suatu ADT?
Properties dalam ADT merupakan bagian-bagian yang dimiliki di dalam ADT itu sendiri. Properties yang dimiliki ADT ada 3 yaitu: class name, attribute, dan method.
c. Mengapa kita memerlukan ADT?
ADT menyederhanakan proses pemrograman kompleks sehingga membuat program yang kita buat lebih terstruktur, dapat dikompilasi secara seperate (terpisah) dan juga dapat dimodifikasi. ADT juga mendukung information hiding yang dapat digunakan untuk menyembunyikan bagian-bagian yang tidak perlu diperlihatkan pada pihak yang tidak terotorisasi seperti user.
d. Bagaimana suatu ADT berhubungan dengan ADT lain?
Suatu ADT dapat berhubungan dengan ADT lain dengan menggunakan access modifier yang merupakan kata kunci (public, protected atau private) yang digunakan untuk menentukan spesifikasi tingkat akses suatu attribute atau method.
e. Apa yang dimaksud dengan ”…dalam ADT implementasi disembunyikan dari user…”
Implementasi disembunyikan dari user berkaitan dengan penyembunyian data atau information hiding. Information hiding sendiri terbagi menjadi 3, yaitu:
– Private (-), attribute dan method hanya bisa diakses oleh class-nya sendiri.
– Protected (#), attribute dan method hanya bisa diakses oleh class itu sendiri dan turunannya.
– Public (+), attribute dan method bisa diakses oleh class-nya sendiri, class lain, atau pun dari lingkungan luar class.
3. Esensinya tidak ada perbedaan mendasar antara struct dan class tetapi kita lebih suka menggunakna class daripada struct. Uraikan mengapa kita lebih suka menggunakan class daripada struct?
Kita dapat memasukkan attribute bersamaan dengan method-nya dalam kelas yang sama. Selain itu pada class terdapat constructor dan destructor (yang dijalankan secara otomatis) yang berguna untuk dealokasi memori.
- Esensinya class dan struct adalah sama dalam C++. Perbedaan yang signifikan di antara mereka adalah:
- default akses class adalah private sedangkan struct adalah private
- default akses class adalah private sedangkan struct adalah public
- default akses class adalah public sedangkan struct adalah private
- 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
soal: www.binus.ac.id