Sunday, 3 July 2016

Mengenal Istilah Encapsulation dan Polymorphism pada OOP Java

Java programming language adalah bahasa pemrograman yang dapat dijalankan diberbagai komputer termasuk telepon genggam. Bahasa pemrograman java pada awalnya di ciptakan oleh James Gosling saat masih bergabung di Sun MicroSystems (yang saat ini merupakan bagian dari Oracle dan dirilis tahun 1995).

Bahasa ini masih banyak mengadopsi sytax dari bahasa C dan C++ namun dengan syntax model object yang lebih sederhana. Aplikasi yang berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java.



Karena java menggunakan konsep Object Oriented, dan sebelum memulai belajar pemrograman yang lebih dalam lagi, ada sebaiknya kita mengetaui beberapa hal yang ada dalam bahasa pemrograman java

OBJECT ORIENTED

ada beberapa istilah dalam Object Orietend, antara lain :

ENCAPSULATION

Encapsulation adalah pembungkus, encapsulation pada object oriented maksudnya adalah membungkus class dan menjaga apa apa saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari Private. Public dan Protected.
  • Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.
  • public = memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun (property atau class lain diluar class yang bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B dan seterusnya.
  • protected = memberikan hak akses kepada class itu sendiri dan class hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh class A sendiri dan class yang meng Extends class A. Namun harus dipahami class lain yang berada dalam satu package dengan class A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada diluar package class A. untuk dapat mengaksesnya, class yang berada diluar package class A harus meng extends class A.
Contoh programnya seperti berikut, kuta buat 2 package, kebetulan nama package saya oop dan b

dalam package oop buat 3 class :
  1. OrangTua.java
  2. Anak.java
  3. Tetangga.java
OrangTua.java   Anak.java
Coba perhatikan method yang saya komentari, class ini berusaha mengakses method private milih OrangTua.java. Walopun sudah meng extends OrangTua tapi karena menggunakan modifier private, siapapun tidak bisa mengaksesnya. Perhatikan Gambar 1

Gambar 1
Di suggestion Netbeans saja kita tidak menemukan method bernama getNamaPrivate(); Sekali lagi karena modifier private tidak bisa diakses oleh siapapun.

Protected bisa diakses oleh dirinya sendiri, class turunannya dan class yang berada dalam satu package

Tetangga.java Perhatikan hasilnya, class tetangga dapat mengakses method protected walopun dia tidak meng extends OrangTua, tapi hanya berada pada satu package dengan class OrangTua [lihat packagenya]

Selanjutnya kita lihat bagaimana usaha class lain diluar package OrangTua.java yang berusaha mendapatkan/mengakses modifier protected, perhatikan kode berikut :

TryToAccessProtected.java

Jika kalian tulis kode diatas, maka akan terlihat garis merah/keterangan error, itu karena class ini berusaha mengakses method dengan modifier private, lihat Gambar 2

Gambar 2
Perhatikan juga packagenya, package class ini berbeda dengan package class OrangTua.java.

Untuk modifier public, semua bisa mengaksesnya tanpa terkecuali.

POLYMORPHISM

Polymorphism merupakan banyak bentuk. Banyak bentuk disini maksudnya apa? dan kenapa bisa dikatakan banyak bentuk? Begini, pada bagian ini kita akan mengenal istilah OVERRIDE dan OVERLOAD, apa perbedaanya?

OVERLOAD

Overload adalah kondisi dimana method dalam satu class memiliki nama method yang sama cuma beda parameter. Lihat kode dibawah ini :

Overload_Test.java

OVERRIDE

Pendeknya begini, jika method yang digunakan pada child class sama dengan parent classnya, maka hal itu harus di override.
Keuntungan dari menggunakan Overriding ini adalah kita dapat mendefinisikan behavior yang spesifik dari subclass/child yang artinya child class dapat mengimplement method yang sudah ada di parent classnya.
 Contoh kodingan dari Override bisa lihat dibawah ini

Override_Test.java

Please post a polite comment and do not post a spam
EmoticonEmoticon