Kamis, 05 Januari 2012

Paradigma Pemrograman Berorientasi Objek

1. OO Sebagai Paradigma Pemrograman
    - Paradigma pemrograman: cara pandang terhadap penyelesaian masalah pemrograman
    - Pemrograman berorientasi obyek (OOP) didasarkan pada konsep object dan interaksinya

2. Konsep Object
    Dalam paradigma berbasis object, “object” adalah representasi sebuah entitas yang memiliki makna
    tertentu yang menjadi perhatian si pemandang ? object memiliki abstraksi tertentu bagi si pemandang
        Contoh: dalam sistem akademik di kampus, beberapa kandidat object adalah: mahasiswa, dosen,kelas, 
         mata kuliah, kurikulum, praktikum, laboratorium, perpustakaan, KRS, KHS, …
   Object dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain ?
    membentuk interaksi antar object
   Object bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang memiliki peran  atau tanggung jawab tertentu
3. Object dan Interaksinya


Skenario: restoran cepat-saji

4. Object dan Representasi Lingkup Permasalahan
    Object dan interaksinya dapat digunakan untuk merepresentasikan lingkup permasalahan
        - Object merepresentasikan entitas-entitas yang dianggap penting dalam skenario permasalahan
        - Interaksi antar object menggambarkan bentuk-bentuk relasi antar entitas di dalam skenario     permasalahan
    OO sebagai tool untuk memodelkan sistem di dunia nyata (tujuan bahasa Simula-67) menjadi setiap sistem  selalu dapat digambarkan melalui object-object penyusunnya dan bagaimana object-object tersebut saling berinteraksi
    Dalam software engineering: OO analysis menjadi OO design kemudian menjadi OO programming

5. Kelebihan OO Sebagai Model Representasi
    Natural: mengikuti cara berpikir manusia (manusia memandang dunianya sebagai kumpulan object yang     
    berinteraksi)
   Abstraksi: menjelaskan makna sebuah entitas secara cepat dan mudah
   Enkapsulasi: dapat menyembunyikan detil yang tidak perlu
   Modular: object adalah entitas yang independen

6. Pemrograman dan Bahasa Pemrograman Berbasis OO
    Merealisasikan entitas-entitas object dalam desain software (OOD) dalam bahasa pemrograman
    Bahasa pemrograman berbasis object menyediakan mekanisme untuk bekerja dengan:
    kelas dan object
    methods
    inheritance
    polymorphism
    reusability

7. Konsep-Konsep dalam OOP: Kelas (Class)
    Mendefinisikan karakteristik abstrak dari sebuah entitas
    Property (statis) – fields, atribut
    Behaviour (dinamika) – fitur, methods
   Contoh: abstraksi “sepeda” memiliki property “punya roda”, “punya rantai”, dsb., dan behaviour “bisa      
   berjalan”, “bisa berbelok”, dsb.
   Sebagai abstraksi dari sebuah entitas, definisi kelas harus mencerminkan karakteristik sebenarnya dari   
   entitas tsb.

    a. Kelas
    Kelas merupakan “cetakan” (template) untuk instance (wujud nyata) entitas-entitas yang
    direpresentasikannya
       Sebuah kelas dapat melahirkan lebih dari satu instance

  b. Object
    Sebuah instance (perwujudan nyata) dari suatu kelas tertentu
    c. Inheritance (Pewarisan Sifat)
    Dalam dunia OO, beberapa object memiliki sifat/ciri yang mirip dengan yang lain ? sebuah kelas object
    dapat didefinisikan dari kelas yang lain
       Kemiripan ini membentuk hubungan sifat yang bersifat hirarkis
      “pesawat penyergap adalah sebuah pesawat terbang yang dilengkapi dengan persenjataan dan dapat  
        terbang melebihi kecepatan suara”
      “pesawat penyergap” memiliki ciri yang sama dengan “pesawat terbang” ? “pesawat penyergap” mewarisi  sifat “pesawat terbang”
      “pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan “pesawat terbang” ? “pesawat  
        penyergap” adalah subclass dari “pesawat terbang”
       Dalam OOP, hubungan inheritance (pewarisan sifat) ini diimplementasikan melalui definisi kelas: sebuah kelas dapat didefinisikan dari kelas yang lain

   

  Dalam pohon hirarki inheritance, sebuah subclass mewujudkan abstraksi yang lebih spesifik dari superclassnya: subclass = superclass + (fitur-fitur baru)
     Subclass dapat menambahkan fields dan methods baru
     Subclass dapat mengambil alih (override) method milik superclass dan mengubah implementasi method tersebut

    Manfaat inheritance:
    Pemanfaatan kembali (reuse) kelas
    Menyediakan model yang bersifat generik (abstract class); implementasi spesifiknya bisa dilakukan  
    kemudian (mungkin oleh pemrogram yang berbeda)

   d. Enkapsulasi
    Enkapsulasi menyembunyikan property dan behaviour object dari pihak luar (object yang lain) menjadi   
    object lain melihat object ini sebagai “black box” saja

  e. Polymorphism
    Poly: banyak; morphism: bentuk ? sebuah fitur (generik) bisa diimplementasikan dengan berbagai cara
     Polymorphism diimplementasikan dengan mekanisme inheritance

Tidak ada komentar:

Posting Komentar