Thursday 5 June 2014

KBP pert 9



Object Oriented Programming
Object oriented programming memiliki 3 konsep dasar :
1.      Abstract data type (ADT)
2.      Inheritance
3.      Dynamic binding
Object oriented programming language juga mendukung paradigm menggunakan class, methods, object dan message passing.

Inheritance
Inheritance adalah pewarisan sifat dari superclass ke subclass, yang mewarisi attribute dan method yang masih sejenis beserta attribute dan method tambahan yang merupakan sifat khusus subclass.
Sebagai contoh class sapi adalah hewan bertulang belakang / vertebrata yang merupakan mamalia pemakan tumbuhan / herbivora.

Object oriented concepts
Object oriented concepts memiliki cirri-ciri:
-          ADT biasa nya di sebut class
-          Isi dari class biasa nya disebut objek
-          Class yang menurunkan ke subclass
-          Subprogram yang melakukan definisi operasi pada objek disebut dengan method
-          Pemanggilan terhadap method di sebut messages
-          Kumpulan dari method pada sebuah objek disebut dengan message protocol atau message interface
-          Messages memiliki 2 bagian :
o   Method name
o   Destination object
-          Dalam kasus simple, class mewarisi semua entities dari parent nya
-          Inheritance dapat di komplikasikan dengan akses control terhadap enkapsulasi entities
o   Class dapat menyembunyikan entities dari subclass nya
o   Class dapat menyembunyikan entities dari client nya
o   Class dapat menyembunyikan entities dari client nya tetapi memperbolehkan subclass mengakses nya
-          Sebuah class dapat memodifikasi method dari class turunan nya
o   Method yang baru melakukan override terhadap method yang lama
o   Method pada parent di overridden
-          3 cara membedakan dari class parent nya:
1.      Class parent dapat mendefinisikan beberapa variable atau method nya untuk memiliki private akses, yang berarti mereka tidak akan terlihat oleh kelas turunan nya.
2.      Subclass dapat menambahkan variable atau method untuk yang di wariskan dari parent.
3.      Subclass dapat memodifikasi sikap dari satu atau banyak method yang diwariskan.
-          Terdapat 2 jenis variable pada sebuah class :
1.      Class variable – satu / class
2.      Instance variable – satu / objek
-          Terdapat 2 jenis method pada sebuah class :
1.      Class method – menerima pesan kepada class.
2.      Instance method – menerima pesan kepada objek.
-          Single vs multiple inheritance
-          Kekurangan dari inheritance pada penggunaan ulang :
o   Membuat ketergantungan antar class yang membuat sulit di maintenance

Dynamic Binding
-          Polymorphic variable dapat di definisikan pada kelas yang dapat melakukan referensi objek kelas dan objek dari turunan nya
-          Ketika hierarki kelas mengandung kelas yang override method biasa disebut dengan polymorphic variable, binding ke method akan dynamic
-          Mengizinkan system software lebih mudah di perpanjang ketika dikembangkan dan maintenance
-          Abstrak method adalah salah satu yang tidak dimiliki pada definisi (hanya mendefinisikan protocol)
-          Abstrak kelas memiliki setidak nya satu virtual method
-          Abstrak kelas tidak dapat di instansikan

Exclusivity dari objek
-          Semua adalah objek
o   Keuntungan : elegant dan purity
o   Kekurangan : lambat pada operasi objek yang simple
-          Menambah objek untuk menyempurnakan typing system
o   Kelebihan : cepat operasi simple objek
o   Kekurangan : hasil membingungkan type system (2 tipe entities)
-          Memasukkan gaya imperative typing sistem untuk primitive tetapi membuat semua nya menjadi objek
o   Kelebihan : cepat operasi pada simple objek, secara relative system typing kecil
o   Kekurangan : masih membingungkan memiliki 2 type system

Jika kelas turunan adalah kelas parent. Maka objek pada kelas turunan harus bersifat sama dengan objek pada kelas parent
Subclass dapat menambah variable dan method dan override method turunan dengan cara compatible

Single dan multiple inheritance
-          Multiple inheritance mengizinkan kelas baru untuk di warisi dari 2 atau lebih kelas
-          Kekurangan multiple inheritance :
o   Bahasa dan implementasi yang kompleks
o   Potensial tidak efisien – dynamic binding memiliki biaya lebih disbanding dengan multiple inheritance
-          Kelebihan :
o   Terkadang berharga dan berguna

Alokasi dan dealokasi objek
-          Jika bersifat ADT, maka dapat di alokasikan dari semua tempat
o   Alokasi dari run-time stack
o   Secara explicit membuat pada heap
-          Jika heap-dynamic referensi dapat melalui pointer atau referensi variable
o   Memudahkan assignment – melakukan referensi ulang secara implicit
-          Jika objek stack dynamic, akan memiliki masalah pada subtype – object slicing

Nested class
-          Jika kelas baru dibutuhkan oleh satu kelas, maka tidak ada alasan untuk mendefinisikan agar dapat terlihat oleh kelas lain nya

OOP pada C++
-          Berevolusi dari C dan SIMULA 67
-          OOP yang paling sering digunakan
-          Memiliki mixed typing system
-          Constructor dan destructor
-          Elaborate akses control kepada kelas entities

Inheritance
-          Kelas tidak perlu menjadi subclass dari kelas lain
-          Akses control terhadap
o   Private (hanya terlihat oleh kelas sendiri dan friend kelas itu, tidak mengizinkan subclass menjadi subtype)
o   Public (terlihat oleh subclass dan semua nya)
o   Protected (terlihat pada kelas dan subclass, tetapi tidak pada client nya)
Dynamic binding
-          Method dapat didefinisikan dengan virtual, yang berarti dapat dipanggil melalui polymorphic variable dan secara dynamic terikat pada message

1 comment: