Selasa, 08 Desember 2009

Konsep Dasar OOP

Bukan suatu yang baru dalam membahas konsep dasar OOP, karena sudah cukup banyak bahasan terkait dengan pembahasan ini.

Object Oriented Programming atau disingkat OOP merupakan suatu metode/teknik pemrograman yang sesuai dengan namanya berorientasi pada objek. Karenakan OOP merupakan suatu metode/teknik pemrograman, maka haruslah memahami terhadap pendekatan, aturan, dan tools yang digunakan dalam membuat suatu kode program. Dalam metode OOP, menganggap segala sesuatu dalam pemrograman sebagai objek dan interaksi objek.
OOP mempunyai pendekatan pada pemodelan suatu objek pada dunia nyata, baik fisik atau state maupun sifat tingkah laku atau behavior objek tersebut. Fisik /state dalam OOP diwakilkan dengan atribut atau variabel dan relasi, sedangkan sifat tingkah laku /behaviour diwakilkan dengan operasi dan method. Contoh state pada objek kuda antara lain : kepala, ekor, kaki, badan, warna. Contoh behaviour pada objek kuda antara lain : mengangkat kedua kaki depan, mengibas ekor, meringkik.
Setiap objek tentulah memiliki identitas yang unik sehingga dapat membedakan suatu objek dengan objek yang lain dan juga mengelompokkannya. contoh : dalam sistem buku perpustakaan, kandidat objek bisa berupa penjaga perpustakaan, buku perpustakaan, pengunjung dan peminjam. objek dan interaksinya serta interaksi antar objek akan mempresentasikan lingkup permasalahan, maka Object Oriented digunakan sebagai cara untuk memodelkan sistem di dunia nyata yang digambarkan melalui objek-objek penyusunnya dan bagaimana setiap objek tersebut berinteraksi.
Sebagai awal pengenalan dalam Object Oriented adalah :
  • Abstraksi, merupakan karakteristik penting pada suatu objek yang membedakannya dari objek yang lain dan biasanya bersifat public. contoh : objek event, yaitu objek yang mewakili suatu peristiwa seperti peristiwa mouse klik, geser
  • Modularitas, merupakan pembuatan objek secara terpisah dengan objek lain dengan cara dekomposisi logik dan fisik objek menjadi sederhana / kecil.
  • Hirarki, merupakan pemeringkatan atau pengurutan abstraksi kedalam bentuk pohon. Contoh : objek mobil terdiri dari mesin dan penggerak. Penggerak terdiri dari transmisi dan Drive Wheels. Sedangkan Mesin terdiri dari Karburator, Pompa Bahan Bakar, Sistem Pengaturan Mesin, Sistem Pembuangan dan Sistem Ignisi
Selanjutnya dalam OOP terdapat beberapa komponen, yaitu:

  • Kelas, merupakan tempat objek berada beserta atribut dan method yang dimiliki objek. Dalam sehari-hari kita mengenal adanya makhluk hidup seperti manusia, kuda, pohon, dll maka manusia, kuda, pohon itu adalah kelas. Dalam pemrograman java cara penentuan kelas ditulis dengan cara : class namakelas{...}.
    • contoh : kelas kuda, maka penulisan dalam java adalah : class Kuda { ... }

  • Objek, merupakan instance (wujud nyata) dari kelas yang memiliki atribut/variabel dan method/fungsi yang menggunakan variabel yang telah ditentukan. Lanjutan dari pembahasan di atas, maka objek dari kelas Kuda adalah kepala, kaki, ekor. Contoh lain objek dari kelas pohon adalah : daun, batang, akar. Dalam pemrograman java cara penentuan objek adalah : namobjek = new namakelas;.
    • contoh : kaki kuda, maka penulisan dalam java adalah Kuda kakiKuda = new Kuda(); , objek ekor kuda, penulisannya Kuda ekorKuda = new Kuda();
  • Atribut, merupakan ciri suatu objek yang terdiri dari variable-variable. Dalam pemrograman kita mengenal adanya properties, maka atribut ini dapat dicontohkan berupa properties dari contoh di atas, misalnya dari kelas kuda pada objek kaki terdapat atribut berupa panjang kaki, warna kulit kaki, jumlah sendi. Dalam pemrograman java penentuan atribut dengan cara antara lain : tipe data variable namavariable;
    • contoh String warnakakiKuda; , double panjangkakiKuda;

  • Variable yang merupakan penyimpanan data sebuah atribut, terbagi atas instance variable (atribut yang dapat dimiliki sebuah objek dalam kelas yang sama) contoh : panjang ekor kuda pada objek ekor kuda. Dan class variable (atribut yang dimiliki beberapa objek dalam kelas yang sama) contoh : warna kuda dimiliki pada objek badan kuda dan kaki kuda.
  • Method, merupakan fungsi bagaimana objek bereaksi dan menerima reaksi serta merubah nilai atribut, atau dengan kata lain merupakan implementasi objek pada kelas bekerja. Bila diambil dari contoh di atas, maka mehod dari objek kaki kuda pada kelas Kuda
  • Contoh penggunaan beberapa komponen OOP :
//penentuan class
class Kuda{
// penentuan atribut berupa variable
String warnakaki() ;
int langkahkaki();
}
// penentuan method
public class KudaBerjalan{
public static void main (String [] args){
// menentukan objek
Kuda kakiKuda = Kuda();

// menggunakan atribut dan nilai pada atribut
kakiKuda.warnakaki = "Coklat";
kakiKuda.langkahkaki = 2;

System.out.println("Kuda yang berkaki warna "+ekorKuda.warnakaki+" melangkah sebanyak "+kakiKuda.langkahkaki+" langkah.");
}}
maka keluaran dari contoh tersebut adalah : Kuda yang berkaki coklat melangkah sebanyak 2 langkah.
Lebih lanjut yang musti diketahui adalah deklarasi hak akses, karena deklarasi ini senantiasa dipergunakan pada awalan sebuah method/fungsi dan juga pada kelas. Penggunaan hak akses ini untuk membagi kewenangan penggunaan sebuah kelas atau method. Dengan hak akses ini pada salah satu karakteristik OOP dipergunakan, yaitu encapsulation (pembungkusan). Hak akses yang umum dipergunakan adalah :
  • Public,
    Dengan menggunakan deklarasi ini, suatu method dapat dipergunakan pada kelasnya sendiri atau oleh kelas lain yang merupakan turunan dari kelas utama yang memiliki method ini.
    • contoh : sebuah method pada kelas Kuda memiliki method kudaBerjalan dengan penggunaan deklarasi public pada method kudaBerjalan, method kudaBerjalan juga bisa dipergunakan pada kelas KudaPerang.
  • Private,
    Dengan menggunakan deklarasi ini, suatu method hanya dapat dipergunakan pada kelasnya sendiri sedangkan oleh kelas lain baik dari turunan kelas ini maupun bukan tidak dapat mempergunakan.
    • contoh : sebuah method pada kelas MobilSedan memiliki method buka pintu dengan penggunaan deklarasi private pada method tersebut maka method buka pintu pada kelas MobilSedan tidak bisa dipergunakan pada kelas MobilSport.
Selanjutnya membahasa karakteristik dari OOP yang salah satunya sudah dibicarakan pada baris sebelumnya. Karakteristik dari OOP adalah :
  1. Polymorphism (perbedaan bentuk), yaitu suatu objek dapat mempunyai lebih dari satu interface atau berubah menjadi objek lain. Hal ini dikarenakan atribut/method bersifat umum. contoh warna kulit kuda bisa dipergunakan oleh objek kaki kuda dan badan kuda, method buka bagasi pada objek bagasi pada kelas MobilMewah dapat dipergunakan pada objek pintu belakang kelas MobilSUV.
  2. Encapsulation (pembungkusan), yaitu penyembunyian atribut dan method tertentu pada suatu objek dari objek lain melalui private dan proteced dari suatu kelas / objek, sehingga hanya fungsi / method tertentu yang dapat diakses / digunakan. contoh yang mungkin dapat dimengerti adalah : pada kelas mobil terdapat method pembakaran bahan bakar yang tidak perlu diketahui oleh pengguna mobil agar mobil dapat bergerak, yang cukup diketahui hanyalah method penginjakan pedal gas dan method kecepatan mobil.
  3. Inheritance (pewarisan), yaitu dimana kelas yang berasal satu atau lebih dari kelas lain, sehingga dapat memperluas atau mempersempit kelas sesuai kebutuhan. Hal ini dikarenakan beberapa objek memiliki ciri yang sama dengan penggunaan berbeda. contoh : kelas kereta api uap dan kelas kereta api listrik memiliki objek yang sama pada kelas kereta api seperti objek lokomotif dan objek gerbong
Selain hal yang sudah disebutkan di atas, terdapat pemodelan objek yang belum terbahas sebelumnya berupa :

  1. Interface, berfungsi sebagaipendefinisian method/fungsi dan variable/atribut tanpa implementasi dikarenakan hanya digunakan objek untuk saling berinteraksi.

  2. Package, merupakan himpunan kelas-kelas yang biasanya mewakili dari sistem.

  3. Subsystem, merupakan kombinasi dari suatu paket dan suatu kelas dengan memiliki satu atau lebih suatu interface untuk menjalankan fungsinya.

  4. Component, merupakan bagian fisik dari sistem aplikasi.

  5. Association, merupakan hubungan atau relasi berupa tanda antara suatu kelas dengan kelas lain.

  6. Multiplicity, merupakan jumlah atribut yang berhubungan dengan satu atribut kelas lainnya.

  7. Aggregation, merupakan bentuk yang lebih kuat dari association, dimana

  8. Navigability, merupakan dimungkinkannya menavigasi/kontrol dari suatu kelas yang berasosiasi ke kelas lain yang telah menggunakan asosiasi dengan kelas lainnya.

  9. Dependency, merupakan relasi atau hubungan dua elemen dimana perubahan di dalam satu elemen akan menyebabkan perubahan pada elemen yang lain namun tidak sebaliknya.

  10. Generalisasi, merupakan hubungan / relasi dari suatu inheritance (pewarisan) antar unsur dalam kelompok kelas

sekian dulu penjelasan untuk konsep dasar OOP ...

Tidak ada komentar:

Posting Komentar