Minggu, 13 Maret 2011


PERTEMUAN  I

TUJUAN INSTRUKSIONAL KHUSUS (TIU)
  • Agar mahasiswa memahami konsep pemrogramaan berbasis obyek
  • Agar mahasiswa memahami yang dimaksud dengan kelas, inheritance, encapsulation dan polimorphisme
  • Agar mahasiswa memahami dan dapat memilih  bahasa pemrograman berbasis obyek.


Pemrograman Berorientasi Ke Objek

I. Pendahuluan

Perkembangan tehnik pembuatan software dari periode ke periode selalu mengalami perbaikan dan perkembangan, dimana tehnik pembuatan software selalu dititikberatkan pada bagaimana software itu dirancang untuk dapat memenuhi selera pemakai yang dari tahun ke tahunnya selalu berubah. Seperti permintaan akan perubahan bentuk, penambahan informasi, perbaikan kesalahan yang kadangkala timbul pada saat software itu dipakai beberapa waktu dan beberapa permintaan lain yang dimaksudkan untuk membentuk software agar lebih sempurna. Hal ini merupakan tantangan bagi para developer software yang ingin melemparkan produknya ke pasaran.

Beberapa tehnik dalam merancang software pada awalnya terfokus pada bagaimana cara merepresentasikan permasalahan dari dunia nyata ke dalam bentuk program, yang pada beberapa tehnik perancangan dibagi dalam prosedur-prosedur dan fungsi-fungsi yang dirancang sendiri oleh pembuat software (user-defined), contohnya : PASCAL. Pendefinisian permasalahan yang dibagi kedalam beberapa prosedur dan fungsi ini dapat kita kenal sebagai tehnik rancangan yang berorientasi struktur data (Data Structure Oriented Design) dimana tehnik ini menghubungkan antara prosedur yang satu dengan prosedur yang lain dalam satu prosedur diatasnya yang membentuk susunan pohon.
Munculnya generasi perancangan software yang lebih dititikberatkan pada pengikatan prosedur (Inheritance), penyembunyian informasi (Information Hiding) dan Polymorphysme yang kita sebut sebagai tehnik pemrogramn berorientasi objek merupakan hal yang baru dalam teknik perancangan software.

Pemrograman berorientasi objek seperti pada metodologi pemrograman yang berorientasi pada informasi dibuat untuk merepresentasikan suatu domain permasalahan yang nyata ke dalam suatu domain solusi yang kita sebut sebagai software, tetapi pada perancangan pemrograman yang berorientasi objek terdapat hubungan antara objek data (Data Item) dengan proses operasi dalam suatu modul informasi dan pemrosesan dari pada proses itu sendiri.

II. Permasalahan

Pada tehnik perancangan software yang mengarah pada data struktur terdapat kelemahan utama dalam pemecahan masalah. Menurut Wahyu C. Wibowo kelemahan yang dimiliki itu adalah ruang lingkup dan keterlibatan yang dimiliki data terstruktur pada lingkungan software yang dikembangkan. Implementasi berbagai fungsi dan prosedur penting pada sistem seperti ini sangat tergantung pada satu atau beberpa struktur data utama, maka efek perubahan ini dapat menjadi sangat luas pada keseluruhan software, dimana beberapa prosedur dan fungsi harus ditulis kembali.

Dalam beberapa kasus, seluruh struktur sistem software dapat lumpuh akibat perubahan pada beberapa struktur data utama, semakin besar dan kompleks suatu software maka semakin besar pula resiko yang akan ditanggung akibat kelemahan mendasar tersebut.

Pada teknik pemrograman yang berorientasi objek, terdapat kelebihan dalam teknik pembuatannya dimana pengkapsulan dan penyembunyian data akan mengikat data dan prosedur serta membatasi ruang lingkup dan keterlihatan prosedur dan fungsi yang mampu memanipulasi data pada bagian program yang terlokasikan.
III. Pembahasan

Apa itu Objek Oriented ???
Cobalah perhatikan di sekitar kita. Pada kehidupan kita sehari-hari kita menemukan sejumlah subjek yang berbeda atau DOMAIN. Ada beberapa domain yang besar seperti Ilmu Komputer, Telekomunikasi, Teknik Industri, dan lain-lain, sama banyaknya domain yang lebih luas seperti Sistem Operasi, Pemrosesan Sinyal, CAD, dan lain sebagainya. Pada setiap kasus, setiap domain dapat dipikirkan sebagai bagian yang terpisah dari dunia nyata, atau bahkan sebagai dunia yang terpisah, yang ditinggali oleh entitas konseptual kepunyaanya, yang dinamakan OBJEK. Setiap domain dapat terjadi (eksis) lebih atau kurang independen dari yang lain karena objek yang dapat dibedakan, pada satu sisi, dan hubungan yang khusus antara objek-objek tersebut, pada sisi lainya.

Sebuah objek adalah sebuah phenomena atau dengan kata lain, sesuatu di dunia yang dapat didefinisikan, individu yang ada dalam kenyataan atau dalam pikiran. Maka dapat kita katakan bahwa : ‘Semua benda/sesuatu di sekitar kita adalah objek dan tiap-tiap dari mereka kepunyaan dari suatu domain.  

Tehnik perancangan software konvensional pada beberapa bahasa tingkat tinggi mengalami evolusi selama tahun 1960 dan 1970-an, penelitian kembali pada tehnik perancangan telah mengembangkan suatu bentuk bahasa yang mengarah kepada prototipe dan simulasi seperti bahasa SIMULA dan SmallTalk dimana pada bahasa-bahasa ini abstraksi lebih diutamakan dan masalah dari keadaan sehari-hari direpresentasikan pada kumpulan dari data objek  yang operasi-operasinya saling mengikat. Hal ini sangat berbeda dari penggunaan dari bahasa konvensional dimana pendekatan ini kita sebut tehnik perancangan yang berorientasi objek. Tehnik pemrograman berorientasi objek terbagi atas empat(4) konsep dasar, yaitu : Kelas, Inheritanc, Encapsulation dan Polmorphisme

IV. Kelas, Inheritance, Encapsulation dan Polymorphisme

1.      Inheritance.
Konsep inheritance (Pengikatan) merupakan konsep yang mendefinisikan suatu objek serta menggunkannya untuk membentuk hirarki turunan dari objek dimana untuk setiap turunan diikat pada semua ancestor dari kode dan data. Adapun contoh bagaimana operasi pengikatan tersebut adalah sebagai berikut:
Contoh 1:
Class Person {
   char  * nama;
   char *  alamat;
   int KodeArea;
   long int Telp;
Public:  
   // Definisi dari data anggota Public dan fungsi --- anda tentukan sendiri
};
Class Pegawai {
   char * nama;
   char * alamat;
   int KodeArea;
   longint Telp;
   int Depend ;
   int ThnMsk;
   Public:
   // Definisi dari data anggota Public dan fungsi --- anda tentukan sendiri
};
Hal tersebut dapat dijelaskan dengan diagram diatas ini:
Contoh 2:
Class Person {
   char  * nama;
   char *  alamat;
   int KodeArea;
   long int Telp;
   Person();
   ~Person();
   Person inputPerson(Void);
   prPerson(void);
};
Class Pegawai : Person {
Public: 
   int Depend;
   int ThnMasuk;
   int ThnTest(void);
};

Hal tersebut dapat dijelaskan dengan diagram berikut ini:

              


2.      Encapsulation (Pengkapsulan)
Konsep pengkapsulan adalah aplikasi dari suatu modul ke bentuk data, yang merupakan kombinasi dari record-record dengan prosedur-prosedur dan fungsi-fungsi (dinamakan metode) dimana manipulasi data tersebut membentuk tipe data baru yang disebut OBJEK.
Contoh potongan program pengkapsulan ini adalah:
Class Lemon {
Private:
    int totalLeft;
    int sugarTeasp;
    float total;
Public:
    void init(void);
     void showTot(void);
   void buySweet(void);
   void buyUnSweet(void);
};
// Di sini deklarasi-deklarasi fungsi yang didefinisikan di atas
main()
{
    Lemon drink;
    int ans;
    clrscr();
    drink.init();
    .
    .
    .
return 0;
}

3.      Polymorphism

Tiang penyangga dari pemrograman berorientasi pada objek adalah polymorphism, yaitu suatu cara yang memungkinkan pemrogram untuk menjalankan aksi tertentu dengan cara mengirimkan pesan ke objek tanpa perlu mengetahui bagaimana sistem software mengimplementasikan aksi tersebut, cara ini merupakan tehnik information hiding. Contoh :

Class Building {
protected:
   int sqFt;
   char alamat[25];
public:
   Building(int,char []);
   virtual void prData(void);
};

Fungsi prData() diimplementasikan di dalam berbagai derived class dari base class Building dan dijalankan pada main() program.

4.      Kelas (Class)

Tehnik pemrograman yang merupakan bagian dari pemrograman berorientasi objek ini dinamakan kelas, yaitu suatu sarana untuk mengimplementasikan pengkapsulan dan penyembunyian data. Deskripsi kelas mendefinisikan karakteristik seluruh objek yang menjadi bagian dari suatu kelas. Contoh-contoh yang telah disajikan di atas merupakan contoh kelas (Class).

V. Pemilihan Pemrograman Berorientasi Objek.

Pemrograman berorientasi objek seperti yang dituturkan di atas mempunyai kelebihan yaitu cara pengkelasan yang khas dimana suatu prosedur dapat dideklarasikan kembali dengan cara yang sama dan nama yang sama tetapi berbeda nama objeknya. Cara ini diharapkan tidak membingungkan bagi para developer software karena pada pelaksanaan program, nama dan prosedur yang sama dijlankan sesuai dengan perintah objeknya saja.

Metode lain dari program berorientasi objek ini adalah virtual yang berbeda dengan metode static, yang mana metode static merupakan metode pemrograman yang konvensional dan mudah untuk dimengerti. Pada metode virtual, proses penanganannya sangatlah berbeda dimana ketika proses virtual ini dipanggil pada saat run-time akan bereaksi secara cepat. Tehnik ini merupakan tehnik baru dalam perancangan software. Beberapa contoh dari tehnik pemrograman berorientasi objek (Object Oriented Programming Language) adalah bahasa C++, Java, Delphi, VB, dll.

Dengan adanya tehnik perancangan program berorientasi objek ini diharapkan dapat memberikan sumbangan yang besar dalam merancang software yang besar dan perubahan yang dilakukan pada saat software itu sudah jadi, sehingga bagi para pembuat software dan beberapa programmer yang siap menjual programnya ke pasaran akan dapat memperkirakan perubahan yang akan dilakukan agar program yang dirancangnya sempurna. 

Referensi :
1.      Budd, T, “Understanding Object-Oriented Programming “, 2/e, Addison Wesley, 1997
2.      Budd, T, “Understanding Object-Oriented Programming wih Jav”a, Adison Wesley, 2000
3.      Bell, D, Deitel, H.M, dan Deitel, P.J, “ C  How to Program”, 3/e, Prentice Hall, 2001
4.      Deitel, H.M. dan Deitel, P.J., “Java How to Program 4/”e, Prentice Hall, 2002.
5.      Perry, Greg, "Teach Yourself : Object-oriented Programming with Turbo C++ in 21 Days ", Sam Publishing, Indianapolis, 1993.
6.      Peter Muler, " Object-OrientedProgramming UsingC++, Globewide Network Academy(GNA), 1996
7.      Wahyu C. Wibowo, " Pemrograman Berorientasi Objek ", Penerbit Universitas Indonesia, Jakarta, 1990

Tidak ada komentar:

Posting Komentar