Belajar Java Memahami Encapsulation Untuk Pemula

Encapsulation - Encapsulation merupakan salah satu dari 4 dasar fundamental dalam pemrograman berorientasi objek pada Java, selain Inheritance, Polimorphism dan Abstraction.

Sebenarnya apa sih encapsulation itu?

Ide dari encapsulation adalah penyembunyian data atau yang lebih dikenal dalam Java dengan istilah data hiding

Terus bagaimana anda  menyembunyikan data dalam Java?

Anda bisa menggunakan acces modifier yaitu private dan public.

Sebelumnya anda sudah familiar dengan public, karena anda selalu menggunakannya dalam setiap main method.
Belajar Java Memahami Encapsulation Untuk Pemula
Java encapsulation

Aturan praktis dalam encapsulation adalah : berikan acces modifiers private pada variabel instance dan sediakan public acces modifiers pada method setter dan getter untuk mengontrol variabel instance tersebut.

Ketika anda memiliki desain yang lebih lanjut dan keamanan kode yang lebih, mungkin anda bisa melakukannya dengan hal yang sedikit berbeda, namun untuk saat ini dengan melakukan aturan praktis tersebut, akan membuat aman.

Bagaimanapun, jika anda melakukan pengaturan pada setter dan getter method pada data field private, maka dari luar class dapat mengakses data private tersebut melalui method.

Cara mengakses melalui method ini hanya bisa dicapai bila method setter dan getter tersebut adalah public.

Oleh karena itu encapsulation disebut dengan data hiding

Mengapa Encapsulation Sangat Penting?

Perlu disadari, tanpa encapsulation koding anda seperti 'telanjang', artinya siapa saja bisa memodifikasi nilai variabel instance dengan nilai-nilai yang bisa dikatakan 'tidak sesuai'.

Hal ini mudah dipahami, contohnya bila variabel instance itu mengenai tanggal lahir, tinggi badan, nomor telepon, atau sebagainya, bila tanpa encapsulation, maka bisa saja data tersebut memiliki nilai yang tidak  sesuai seperti angka negatif untuk nilai variabel instance tersebut, karena apa? Karena variabel instance tersebut dapat diakses dimana saja.

Oleh sebab itu, dengan konsep encapsulation, untuk mengakses variabel instance tersebut menggunakan method yang dikenal dengan setter dan getter. Dengan method setter, maka parameter data bisa divalidasi dan dapat diputuskan apakah data yang dimasukkan bisa diterima atau tidak.

Bila data tidak sesuai, maka method bisa menolak atau tidak melakukan apa-apa, atau bisa juga 'melemparkan' Exception, atau mungkin bisa juga method misalnya membulatkan angka yang memenuhi untuk memenuhi persyaratan dan dikirim sebagai nilai yang bisa diterima. 

Intinya anda bisa melakukan apapun yang anda inginkan dengan setter method, dan itu pasti lebih baik karena anda tidak bisa melakukan apa-apa bila variabel instance anda adalah public.

 

Keuntungan Menggunakan Encapsulation

  • Terkadang setter method  dibuat tanpa diberikan perlakuan untuk mengecek apapun. Terus bila anda memiliki variabel instance yang tidak perlu memiliki batasan nilai, apakah setter method tersebut tidak diperlukan?
    Setter method (dan getter method juga) diperlukan, bila anda nantinya merubah pemikiran, tanpa merusak kode orang lain.

    Bayangkan bila banyak orang diperusahaan menggunakan class anda dengan variabel instance public, dan beberapa saat kemudian anda menyadari bahwa anda berubah pikiran dan akan menggunakan setter method, maka anda merusak kode semua orang.

    Dengan encapsulation maka anda bisa merubah pemikiran dan tidak ada siapapun 'yang tersakiti'.
  • User class tidak akan mengetahui apa yang sebenarnya terjadi di balik layar. Mereka hanya akan mengetahui bahwa bila akan mengupdate field maka gunakan setter method dan untuk membaca nilai field gunakan getter method, namun apa yang dilakukan setter dan getter method ini benar-benar tersembunyi dari mereka.
Contoh penggunaan setter dan getter method bisa dilihat di Belajar Java Variabel Instance, set Method dan get Method.

No comments

Bahasa Java. Powered by Blogger.