Object Oriented Programming

On Sabtu, 25 Januari 2014 0 komentar



Object Oriented Programming
& Sejarah OOP
Tahun 1960, ditemukan suatu pembuatan program yang terstuktur (structure programming). Metode ini dikembangkan dari bahasa C dan Pascal. Dengan program yang terstruktur inilah untuk pertama kalinya kita mampu menulis program yang begitu sulit dengan lebih mudah.

& Definisi OOP
Object Oriented Programming adalah suatu metode dalam pembuatan program, dengan tujuan untuk  menyelesaikan kompleksnya berbagai masalah program yang terus meningkat.
Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi.

& Objek dan Kelas
Ø  Ide dasar pada OOP adalah mengkombinasikan data dan fungsi untuk mengakses data menjadi sebuah kesatuan unit yang dikenal dengan nama objek.
Ø  Kelas adalah kumpulan dari beberapa objek yang sama.

& Kelebihan OOP
OOP memiliki beberapa keuntungan dalam pemrograman, di antaranya:
Ø  OOP menyediakan struktur modular yang jelas untuk program sehingga OOP sangat bagus digunakan untuk mendefinisikan tipe data abstrak di mana detil implementasinya tersembunyi.
Ø  OOP akan mempermudah dalam memaintain dan memodifikasi kode yang sudah ada. Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada.
Ø  OOP menyediakan framework untuk library kode di mana komponen software yang tersedia dapat dengan mudah diadaptasi dan dimodifikasi oleh programmer. Hal ini sangat berguna untuk mengembangkan GUI (Graphical User Interfaces).

& Kekurangan OOP
Ø  Tidak memperbolehkan implementasi yang kuat pada reuse
Ø  Properti software tidak terikat dalam satu unit fungsional, sehingga harus
crosscut di antara komponennya.
Ø  Crosscut tersebut mengakibatkan sulitnya pengembangan dan pemeliharaan.





& Konsep dasar OOP
Ø  Pengkapsulan (Encapsulation)
Ø  Pewarisan (Inheritance)
Ø  Polimorfisme

Ø  Pengkapsulan (Encapsulation) Enkapsulation seringkali dianggap sebagai “penyembunyian informasi”, dapat diartikan juga pengemasan data dan fungsi dalam wadah bernama objek. Konsep public dan private akan senantiasa dipakai dalam pengkapsulan. Enkapsulation memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Contoh program
#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;
}



Outputnya:
 
& Pewarisan (Inheritance)
Inheritance merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain.
Contoh program
#include <iostream>
using namespace std;
// Base class
class Shape
{
   public:
      void setWidth(int w)
      {
         width = w;
      }
      void setHeight(int h)
      {
         height = h;
      }
   protected:
      int width;
      int height;
};// Derived class
class Rectangle: public Shape
{
   public:
      int getArea()
      {
         return (width * height);
      }
};
int main(void)
{
   Rectangle Rect;
   Rect.setWidth(5);
   Rect.setHeight(7);
   // Print the area of the object.
   cout << "Total area: " << Rect.getArea() << endl;
   return 0;
}

Outputnya:
 
& Polimorfisme
Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda. Istilah ini sendiri berasal dari Bahasa Yunani, yang berarti “mempunyai banyak bentuk”. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut.

& Program Pengkapsulan (Encapsulation)
#include <stdio.h>
#include <iostream>
// Deklarasi kelas-kelas
class Kotak
{ 
        protected :
            int panjang, lebar;
            long luas, keliling;
        public :
            Kotak (int Panjang, int Lebar);
            int ambil_panjang();
            int ambil_lebar();
            virtual void hitung(); // metode virtual
            void ambil (long& Luas, long& Keliling);
};
class Balok : public Kotak
{
        private :
            int tinggi;
            int volume;
        public :
            Balok (int Panjang, int Lebar, int Tinggi);
            int ambil_tinggi();
            virtual void hitung(); // metode virtual
            void ambil (long& Luas, long& Keliling, long& Volume);
};
// Definisi metode-metode kelas Kotak

Kotak::Kotak (int Panjang, int Lebar)

{
        panjang = Panjang;
        lebar = Lebar;
}
int Kotak::ambil_panjang()
{
        return panjang;
}

int Kotak::ambil_lebar()
{
        return lebar;
}
void Kotak::hitung()
{
        luas = panjang * lebar;
        keliling = 2 * (panjang + lebar);
}

void Kotak::ambil (long& Luas, long& Keliling)
{
        Luas = luas;
        Keliling = keliling;
}// Definisi metode-metode kelas Balok
 
Balok::Balok (int Panjang, int Lebar, int Tinggi):Kotak (Panjang, Lebar)
{
        tinggi = Tinggi;
}
 
int Balok::ambil_tinggi()
{
        return tinggi;
}
void Balok::hitung()
{
        Kotak::hitung();
        volume = panjang*lebar*tinggi;
}
 
void Balok::ambil(long& Luas, long& Keliling, long& Volume)
{
        Kotak::ambil(Luas, Keliling);
        Volume = volume;
}
// Program Utama
int main ()
{
        Kotak A (12, 3);
        Balok B (12, 3, 8);
        std::cout << std::endl;
std::cout << "Menghitung luas, keliling, dan volume bangun" << std::endl;
std::cout << "===============================================" << std::endl;
        A.hitung();
        long l, k;
        A.ambil(l, k);
        std::cout << "Kotak sisi-sisinya : " << std::endl;
        std::cout << "Panjang = " << A.ambil_panjang() << std::endl;
        std::cout << "Lebar = " << A.ambil_lebar() << std::endl;
std::cout << "Memiliki luas " << l <<" dan keliling "<< k << std::endl << std::endl;
        long v;
        B.hitung();
        B.ambil(l, k, v);
        std::cout << "Balok dengan rusuk-rusuknya : " << std::endl;
        std::cout << "Panjang = " << B.ambil_panjang() << std::endl;
        std::cout << "Lebar = " << B.ambil_lebar() << std::endl;
std::cout << "Tinggi = " << B.ambil_tinggi() << std::endl;
std::cout << "Memiliki luas " << l <<", keliling "<< k <<", dan volume " << v <<std::endl;
std::cout << std::endl;
}

Outputnya:
& Kesimpulan
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.

0 komentar:

Posting Komentar