Object Oriented Program – TM01
Nama : Kenneth
NIM : 1701290425
Kelas : 02PPT
TM 01
- 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.
- 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. - 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?
- 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. - Interface suatu class terdiri dari
a. data anggota b. prototipe fungsi anggota
c. implementasi fungsi anggota d. data anggota dan prototipe fungsi anggota
Jawab
1. Abstract Data type (ADT) adalah tipe data user define, yang merepresentasikan operasi dan tipe objek dalam satu unit dan memungkinkan untuk disembunyikan dari unit lain yang menggunakan program tersebut.
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Enkapsulasi juga merupakan suatu mekanisme untuk memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaansystem itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface
Contoh enkapsulasi dan ADT di C++ :
#include <iostream> using namespace std; class Adder{ public: // constructor Adder(int i = 0) { total = i; } // interface to outside world void addNum(int number){ total += number; } // interface to outside world int getTotal(){ return total; }; private: // hidden data from outside world int total; }; int main( ){ Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
Class adalah unit terstruktur pada oop yang berisikan sekumpulan dari object berupa data beserta method / fungsi (property). Property dan method yang didefinisikan pada class disebut dengan members.
Contoh class di C++ :
#include <iostream> using namespace std; class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box }; int main( ) { Box Box1; // Declare Box1 of type Box Box Box2; // Declare Box2 of type Box double volume = 0.0; // Store the volume of a box here // box 1 specification Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; // box 2 specification Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // volume of box 1 volume = Box1.height * Box1.length * Box1.breadth; cout << "Volume of Box1 : " << volume <<endl; // volume of box 2 volume = Box2.height * Box2.length * Box2.breadth; cout << "Volume of Box2 : " << volume <<endl; return 0; }
2. a. ADT merupakan penggabungan berbagai object dengan berbagai maca tipe data beserta dengan fungsinya untuk membentuk suatu tipe data baru. ADT dibuat untuk menghindari pemrograman yang kompleks dengan cara menyederhanakan proses pemrograman.
b. Atribut dari suatu entity yang terdiri dari nama class, data (data structure), dan operation (function).
c. -. Dapat mengorganisasi dan manipulasi data
-. Mengubah kompleksitas program menjadi lebih simpel
-. Mendukung information hiding
d. Suatu ADT dapat berhubungan dengan ADT lain dengan menggunakan access modifier yang merupakan kata kunci yang digunakan untuk menentukan spesifikasi tingkat akses suatu atribut atau method. Kata kunci tersebut adalah private, protected, dan public.
e. Information Hiding berguna untuk membatasi pengaksesan data ADT pada user. Macam-macam information hiding :
I. Public(+) : Bagian dari class yang dapat diakses oleh umum baik dari dalam maupun dari luar class.
II. Private(-) : Bagian class yang hanya dapat diakses oleh lingkungan internal class itu sendiri
III. Protected(#) : Bagian class yang dapat diakses oleh lingkungan internal class dan class turunannya
3. Karena kegunaan class adalah mengelompokkan objek – objek menjadi kelas – kelas, berarti mengabstraksikan persoalan yang dihadapi. Dengan terjadinya abstraksi, maka memberikan daya keampuhan pemodelan dan memberikan kemampuan generalisasi berupa kasus spesifik menjadi induk kasus – kasus yang serupa.
4. B. default akses class adalah private sedangkan class adalah public.
5. C. implementasi fungsi anggota.
2 Comments »
RSS feed for comments on this post. TrackBack URL
Hello would you mind stating which blog platform you’re using?
I’m looking to start my own blog in the near future but I’m having
a difficult time choosing between BlogEngine/Wordpress/B2evolution and Drupal.
The reason I ask is because your layout seems different then most blogs and I’m looking for something completely unique.
P.S My apologies for getting off-topic but I had to ask!
Hi ! I’m using my university blog. In here there is an option to change the layout what we want.