Paradigma OOP (Object Oriented Programming)

Java dikenal sebagai bahasa pemrograman yang memiliki konsep OOP secara murni. Karena, pada setiap program java sudah pasti memiliki paling sedikitnya satu class. Hal inilah yang mendasari kemurnian konsep OOP yang diterapkan dalam bahasa java. Sehingga, bagi setiap programmer java diwajibkan menguasai konsep OOP terlebih dahulu sebelum melangkah ke level programan yang lebih advance. Ada banyak keunggulan dalam konsep OOP dibandingkan konsep bahasa procedural. Salah satu diantaranya adalah problematika yang akan dicari solusinya, tidak diselesaikan menggunakan prosedur- prosedur yang berelasi. Namun, diselesaikan oleh Object- object yang pada dasarnya merupakan representasi dari dunia nyata. Sehingga, programmer dapat berfikir lebih realistis. Dari mindset yang procedural, diubah menjadi mindset OOP yang lebih mendekati pada permasalahan dunia nyata. Pada akhirnya, programmer akan lebih mudah untuk membangun suatu perangkat lunak yang notabene-nya besar dibandingkan menggunakan konsep procedural

Konsep OOP terdiri dari 6 topik utama yakni : Object, Class, Inheritance , Enkapsulasi, polimorfisme, dan interface. Namun, pada saat pembangunan sebuah program, tidak semua dari konsep tersebut harus digunakan. Hal ini, sangat bergantung pada kasus yang akan dihadapi dan juga pola pikir programmer yang akan membentuk program tersebut.

Berikut merupakan penjelasan singkat mengenai 6 topik tersebut :

  1. Object merupakan representasi dari dunia nyata yang akan digunakan oleh programmer untuk menyelesaikan problematika. Object dapat dibuat melalui proses instansiasi (istilah untuk deklarasi objek di java) dari suatu class. Ada dua hal penting yang selalu berkaitan dengan object yaitu : state dan behaviour. State adalah property atau atribut objek. Sedangkan behavior merupakan tingkah laku alias method/ event yang bekerja pada objek. Misal, terdapat objek computer. State/ property-nya adalah monitor, keyboard, mouse, dll. Behaviour-nya adalah menyala ,mati atau berbunyi.
  2. Class merupakan bentuk awal dari suatu objek (prototype) yang mendefinisikan variable- variable dan prosedur/ fungsi secara global.
  3. Inheritance merupakan penurunan sifat dari suatu parent class ke subclass. Penurunan sifat ini, dapat berupa penurunan property juga method yang dimiliki oleh parent class. Sehingga, subclass dapat memiliki kesamaan dengan parentclass- nya. Subclass, juga dapat melakukan definisi ulang terhadap method/ event yang diturunkan dari parent. Hal ini biasa disebut dengan method override. Namun, jika property/ method yang diturunkan dimodifikasi, hal ini disebut dengan overloading. Dalam konsep Inheritance, untuk membuat suatu class turunan dibutuhkan keyword extends dalam mendefinisikan subclass. untuk memanggil constructor yang dimiliki oleh parent class dibutuhkan keyword super. Sedangkan untuk memanggil constructor subclass- nya menggunakan keyword this
  4. Encapsulasi adalah suatu perlindungan terhadap property/ method yang dimiliki oleh suatu class. Encapsulasi, membutuhkan keyword private untuk mendefinisika method/ property yang ingin dilindungi.encapsulasi ditujukan agar method/ property yang dilindungi dapat diolah secara independen dalam suatu class. Encapsulasi juga digunakan untuk menyembunyikan informasi dari suatu class terhadap class yang lain agar tidak dapat diakses secara sembarangan. Sehingga, dalam pengembangannya dapat menjadi lebih mudah.
  5. Polymorfisme berarti suatu object yang memilki bentuk yang banyak. Artinya, dalam konsep ini, terdapat suatu object reference/ turunan dari suatu parent class yang apabila dipanggil method-nya akan memberikan hasil yang berbeda.
  6. Interface adalah suatu media yang memungkinkan untuk komunikasi antar class. Interface dapat juga disebut sebagai protocol yang menjembatangani antar class dalam program.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: