Sunday 26 August 2012

Modifier

Penggunaan modifier berfungsi untuk melakukan enkapsulasi (membungkus data) pada objeck. Dengan menggunakan modifier kita dapat menentukan siapa saja yang boleh menggunakan atau mengakses member dari suatu objek.

Modifier diletakkan pada anatomi kelas, sifatnya optional, digunakan berdasarkan kebutuhan.

Modifier menunjukkan sifatsifat tertentu dari : kelasnya, methodnya, atau attributenya. Maka dari itu, modifier memberi dampak tertentu pada kelas, interface,metode, dan variabel.

Ada beberapa keyword yang digunakan sebagai modifier dan dikelompokkan menjadi :

Java modifier terbagi menjadi kelompok berikut :
  • Modifier ketampakan/Visiblity modifier/Modifier pengaksesan/Access modifier) berlaku untuk kelas,interface, metode, dan variabel yaitu default, public, protected, private.
  • Final modifier berlaku untuk kelas, variabel, dan metode, yaitu final.
  • Static modifier berlaku untuk variabel dan metode, yaitu static.
  • Abstract modifier berlaku untuk kelas, dan metode, yaitu abstract.
  • Synchronized modifier berlaku untuk metode, yaitu synchronized.
  • Native modifier berlaku untuk metode, yaitu native.
  • Storage modifier berlaku untuk variabel, yaitu transient.


***

Access Modifier
Modifier akses digunakan untuk membatasi akses class lain terhadap suatu bagian dari class.
(attributes, methods, ataupun class itu sendiri)

Ada 4 macam modifier akses:
1. default (bisa diakses oleh anaknya dan semua yang satu package/satu folder.)
Modifier default menspesifikasikan kelas-kelas sepaket yang mengakses. Tidak ada keyword khusus untuk mendeklarasikan default access modifier, bila tidak ada access modifier pada deklarasi variabel atau metode berartimodifier yang digunakan adalah default modifier.

Jika tidak disebutkan akses modifiernya berarti default, sifatnya:
– Dapat diakses pada kelas itu
– Dapat diakses pada kelas yang sama pada paket
(package/directory) yang sama


2. public (umum, bisa dipakai siapa saja.)
Modifier public menspesifikasikan variabel dan metode yang dapat diakses oleh siapa pun, baik di dalam atau di luarkelas. Hal ini berarti anggota  public tampak dan dapat diakses oleh sembarang objek lain.

3. protected (hanya bisa diakses oleh anakanaknya)
Modifier protected menspesifikasikan anggota hanya dapat diakses metode-metode di kelas itu dan subkelas-subkelas turunan kelas itu. Ini berarti anggota protected hanya terbatas pada kelas itu dan subkelas-subkelasnya.

4. private (hanya bisa diakses class tersebut)
Modifier private adalah paling terbatas karena menspesifikasikan anggota kelas hanya dapat diakses oleh kelas di mana anggota itu didefinisikan. Ini berarti tidak ada kelas lain yang dapat mengakses anggota private, sekalipun subkelasnya.

***

Final Modifier
Modifier final berarti konstan / tetap dan tidak dapat dimodifikasi (diubah). Variabel final harus diinisialisasi saat dideklarasikan. Apabila diterapkan pada metode berarti metode tidak dapat ditimpa. Metode yang diberi modifier finaltidak dapat lagi diperluas dan ditimpa (override) di subkelas-subkelasnya. Modifier final berarti anggota kelas itu versi akhir (final version).
Variabel final serupa dengan variabel const di C++. Variabel ini harus selalu telah diinisialisasi saat deklarasi dan selanjutnya nilainya tidak dapat diubah.

Untuk membuat sebuah variabel menjadi konstanta.
• Jika modifier final diberikan pada suatu class, maka class tersebut tidak bisa diturunkan/diwariskan.
• Jika diberikan pada suatu method, maka method tersebut tidak bisa diturunkan ke
anaknya

***

Static Modifier
Modifier static berarti variabel diasosiasikan dengan kelas dan dipakai bersama objek-objek kelas itu. Variabel staticdisebut variabel kelas (class variable). Kita memanggilnya pada kelas bukan pada satu objek.

Serupa dengan data statis, kita juga membuat metode yang hanya bertindak pada kelas, jadi hanya dapat mengaksesvariabel static saja bukan data instan tertentu. Kita mendeklarasikan dengan memberi modifier static.

Terdapat kebutuhan variabel atau metode yang common (dipakai bersama) untuk semua objek tertentu. Modifier static menspesifikasikan bahwa variabel atau metode sama untuk semua objek kelas itu. Metode atau variabel yang memiliki modifier static adalah milik kelas. Metode static hanya dapat mengakses variabel statis. Metode nonstatis dapat mengakses variabel instan dan variabel static . Metode kelas (class method, yaitu dengan modifier statis) hanya diizinkan mengakses variabel static . Metode static adalah final.

Metode static yang public yang dapat diakses tanpa perlu menciptakan instan kelas. Metode System.out.println ()adalah static, sehingga dapat dipanggil tanpa diinisialisasi objek System. Variabel out adalah anggota static kelasSystem, akibatnya untuk mengaksesnya kita tidak perlu melakukan inisialisasi objek out

Modifier static digunakan untuk membuat sebuah method/attribute bisa diakses tanpa
melakukan instansiasi terlebih dulu.

• Contoh System.out.println() bersifat static artinya untuk memanggil method println() tidak harus dilakukan instansiasi dari kelas System.

• Nilai attribute yang static akan sama untuk semua objek.

• Kelebihan:
– Mudah digunakan
– Tidak perlu instansiasi obyek
– Dapat digunakan bersamasama dengan obyek lain

• Kekurangan:
– Boros memory
– Tidak bersifat private untuk masingmasing obyek

***

Abstract Modifier
Modifier abstract berarti mengidentifikasi metode yang tidak dapat dijalankan dan harus didefinisikan subkelas tidak abstrak dari kelas yang dideklarasikan. Metode abstract tidak mempunyai badan metode, jadi langsung diakhiri dengan titik koma (;)

***

Synchronized Modifier
Modifier synchronized berarti metode harus memperoleh look di satu objek atau kelas sebelum dapat dieksekusi.Modifier synchronized untuk menspesifikasikan bahwa metode adalah thread safe. Ini berarti hanya satu jalur eksekusi yang diizinkan di metode synchronized pada satu waktu. Pada lingkungan multithread seperti Java, dimungkinkan lebih dari satu jalur eksekusi berjalan di kode yang sama. Modifier synchronized mengubah aturan ini dengan hanya mengizinkan satu pengaksesan thread tunggal pada satu saat, memaksa thread-thread lain menunggu giliran.

***

Native Modifier
Modifier native berarti metode ditulis di bahasa selain bahasa Java. Seperti pada metode abstract, badan metode diganti atau diakhiri dengan titik koma (;).

Modifier native untuk menspesifikasikan metode dengan implementasi di bahasa lain. Modifier native menginformasikan ke kompilator Java bahwa implementasi metode di file C/C++ eksternal. Hal ini menjadi alasan kenapa deklarasi metodenative terlihat berbeda dari pada metode-metode lain   , yaitu tanpa badan metode.

***

Storage Modifier
Modifier transient mengacu ke objek dan nilai primitif di Java virtual machine. Modifier ini untuk menyatakan bahwavariabel tidak menjadi sasaran serialisasi. Volatile

Modifier volatile mengacu ke objek dan nilai primitif yang dapat dimodifikasikan secara asinkron. Variabel-variabel ini diperlakukan secara spesial oleh kompilator untuk mengendalikan cara variabel-variabel itu diperbarui.


Sumber Referensi :
lecturer.ukdw.ac.id
http://sinau-java.blogspot.com
http://blog.uin-malang.ac.id

0 comments:

Post a Comment