Minggu, 22 Mei 2011

3 Konsep Yang Mendukung PBO

1. Encapsulation


     Encapsulation merupakan teknik dari pemrograman berorientasi obyek untuk mengatur method atau property dari suatu class dalam hal kemampuan untuk diakses. Pada dasarnya, pemrograman berorientasi obyek merupakan pemrograman yang menggunakan pola pikir alami dengan cara membuat berbagai obyek seperti dalam kehidupan nyata. Antara obyek tersebut kemudian berinteraksi melalui suatu antarmuka (interface). Interaksi antar obyek tersebut harus diatur karena pada dasarnya setiap obyek mempunyai atribut yang boleh diakses maupun atribut yang tidak boleh diakses.

2. Inheritance

Atau pewarisan pada pemrograman berorientasi objek merupakan  suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yangmemiliki atribut dan metode yang sama dengan kelas lainnya beserta atributdan  metode  tambahan  yang  merupakan  sifat  khusus  kelas  yang  menjadi turunannya :

1. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar PBO.
2. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek 
3. dapat mempunyai entitas/obyek turunan.Dengan konsep inheritance, sebuahclass dapat mempunyai class turunan.
1. Pengertian Inheritance
Proses pewarisan data dan method dari suatu kelas kepada kelas yang lain
Class yg mewariskanSuperclass
Class yg diwariskan Subclass
2. Keyword Extends
bentukumumpada Java :
<hakakses> class <subclass> extends <superclass>
Contoh :
public class mobilextendsKendaraanBermotor
bentukumumpada C++ :
class <subclass> : <hakakses> <superclass>
contoh :
class mobil : public kendaraan_bermotor
3. Keyword Super
untuk memanggil konstruktor dan method oleh subclass yang dimiliki oleh superclass
o    Bentuk umum untuk memanggil konstruktor :
super ()
super(parameter)
o    Bentuk umum untuk memanggil method :
super.method(parameter)
4. Jenis-Jenis Inheritance
Single Inheritance (Pewarisan Tunggal)
Multiple Inheritance (PewarisanJamak)
Virtual Multiple Inheritance (PewarisanJamak Maya)
5. Single Inheritance (Pewarisan Tunggal)
Adalah pewarisan yang jumlah kelas dasarnya (basic class / superclass) tunggal, tapi kelas turunan (subclass) bisa lebih dari satu
Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance.
6. Single Inheritance (Pewarisan Tunggal)
7. Syntax Single Inheritance
C++
JAVA
class A
{
. . .
};
class B : public A
{
. . .
}
class A
{
. . .
};
Public class B extends A
{
. . .
}

3. Polymorphism

Polymorphism merupakan kemampuan suatu method untuk bekerja dengan lebih dari satu tipe argumen. Pada bahasa lain (khususnya C++), konsep ini sering disebut dengan method overloading. Pada dasarnya, Python tidak menangani hal ini secara khusus. Hal ini disebabkan karena Python merupakan suatu bahasa pemrograman yang bersifat dynamic typing yaitu tidak memerlukan deklarasi tipe.
     Tidak seperti bahasa lain yang menangani Polymorphism ini secara khusus, Python tidak mengijinkan definisi lebih dari satu method. Untuk mengatasi hal ini, pemrogram harus mendefinisikan apa yang akan dilakukan terhadap method tersebut jika dalam method tersebut terdapat lebih dari kemungkinan argumen. Berikut ini adalah cara menangani polymorphism:

>>> class contohPoly:
...     def __init__(self, args=None):
...             if args == None:
...                     print 'Tidak ada argumen!'
...             if args == 1:
...                     print 'Ada 1 argumen!'
>>> testPoly = contohPoly()
Tidak ada argumen!
>>> test2Poly = contohPoly(1)
Ada 1 argumen!
>>> 

Berikut ini adalah contoh kesalahan karena mendefinisikan lebih dari satu method (meskipun dalam bahasa lain hal ini mungkin diijinkan):

>>> class polyError:
...     def __init__(self):
...             print 'Tidak ada argument!'
...     def __init__(self, args):
...             print 'Ada satu argument!'
...
>>> jelasKeliru = polyError()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: __init__() takes exactly 2 arguments (1 given)
>>> jelasKeliru = polyError(1)
Ada satu argument!
>>> 


Referensi :

  1. http://ns.akakom.ac.id/~kurikulum2009/Penyusunan%20modul%2024-27%20agt%200
  2. http://ifani.wordpress.com/2011/05/17/inheritance/

Tidak ada komentar:

Posting Komentar