Pemrograman Berorientasi Obyek


.: Object Oriented Programming .:

Pemrograman Berorientasi Obyek (PBO) merupakan salah satu konsep yang digunakan oleh developer software waktu membuat kode program. PBO digunakan dikarenakan pada pemrograman sekuens masih terdapat beberapa kekeliruan deklarasi, misalnya deklarasi suatu variable global yang bisa diakses dari class lain. Juga, jika terjadi perubahan (update) pada kode program, maka akan dilakukan pengecekan dari awal penyusunan baris sampai terakhir. Hal ini jelas akan menyita waktu developer pada waktu pengerjaan software.

Pemrograman sekuens bukan tidak diperbolehkan untuk dilakukan, namun untuk beberapa kasus tertentu PBO lebih diutamakan untuk diterapkan. Terlebih, jika developer tersebut  sudah terbiasa dengan pembuatan / penyusunan kode program, maka akan terlintas paradigma atau konsep PBO akan lebih tepat jika diterapkan.

PBO memiliki keunggulan, diantaranya: kemudahan di waktu melakukan perubahan atau update pada kode program yang sedang disusun (resilience to change), penggunaan satu method yang bisa digunakan atau invoke lebih dari satu kali (reusability), ketahanan (robust), menyembunyikan informasi (information hiding) maksudnya adalah suatu class memiliki berbagai behavior namun penyusunan behavior itu ada pada class tersebut.

Konsep-konsep PBO, antara lain:

  1. Enkapsulasi,
  2. Relasi antar Class,
  3. Polimorfisme,
  4. Inheritance,
  5. Exception Handling, dan
  6. Multi-Threading.

Konsep pertama, yakni Enkapsulasi merupakan suatu cara untuk memodelkan obyek di real world ke dalam pemrograman. Obyek tersebut digambarkan dengan Diagram Class, yang terdiri dari tiga field, diantaranya: NamaClass, atribut dan behavior. Pada konsep ini juga melibatkan mengenai Modifier yang berguna dalam beberapa hal, beberapa diantaranya yang sering digunakan di perkuliahan meliputi pengaturan hak akses antar Class dan pengaturan memory.

Modifier hak akses kontrol meliputi: () private, (+) public, (#) protected dan default. Sedangkan modifier untuk pengaturan memory meliputi: final dan static.

Konsep kedua, yakni Relasi antar Class, terdiri dari hubungan antar Class yang bisa berupa:

  1. Asosiasi, Class A mengirim obyek ke Class B (relasi use a)
  2. Agregasi, Class A merupakan bagian dari Class B (relasi has a)
  3. Komposisi, Class A merupakan bagian dari Class B serta diinstasiasi di Class B (relasi part of)

Konsep ketiga, Polimorfisme, yakni: menjelaskan berbagai bentuk behavior (operasi / proses / method) yang terjadi di suatu Class atau pun di Class turunan (sub-Class, terkait dengan konsep inheritance). Polimorfisme menjelaskan bahwa method bisa saja memiliki deklarasi nama method yang sama, namun ada kriteria pembeda yang harus diperhatikan. Polimorfisme ini dibagi menjadi dua, yakni Overload dan Override method. Overload method terjadi di suatu Class, yakni banyak method memiliki nama yang sama namun jumlah parameter, susunan parameter beserta tipe data parameter tersebut berbeda. sebagai contoh di Class A terdapat method prosedur sebagai berikut:

class A {
int a, b;
double c;
void setParameter(int x) { . . .  }
void setParameter(int x, int y) { . . . }
void setParameter(int x, double y) { . . . }
void setParameter(int x, int y, double z) { . . . }
}

sedangkan Override method berkaitan dengan konsep inheritance. Method yang mengalami override itu adalah method yang ditulis lagi di sub-Class. Definisi sub-Class adalah suatu Class yang mewarisi sifat dan karakteristik (atribut dan atau method) yang ada di parent-Class (induk Class). Sifat dan karakteristik yang bisa diwarisi tersebut adalah yang masih dalam satu package yang sama atau lebih tepatnya sifat dan karakteristik yang memiliki modifier protected serta public. Method yang ada di induk Class ditulis lagi di sub-Class dengan maksud men-generalisasi atau memperluas statement-statement yang sebelumnya ada di induk Class atau pun bisa juga menuliskan statement yang berbeda dengan method yang ada di induk Class. Definisi men-generalisasi sama halnya dengan keyword extends.

konsep keempat, Inheritance, yakni:  . . . . . relasi is a // to be continued

 

Anime ?
Oon Piece ?
,

Leave a Reply