Kepada pengunjung Yang Terhormat

Saya harap anda bahagia dengan postingan di Blog ini. anda senang,saya Melayang

Sunday 24 January 2021

Property pada bahasa pemrograman Java dash5as4d3a

 

Property pada bahasa pemrograman Java dash5as4d3a

Property adalah variabel yang dideklarasikan di dalam class sejajar dengan method. Variabel yang berada di dalam method bukan merupakan property, tetapi disebut sebagai local variabel. Layaknya variabel yang lain, property mempunyai tipe data dan nama. Berdasarkan aturan java bean, property akan dibuatkan method getter dan setter untuk membungkus property. Secara umum, disarankan untuk memberikan access modifer private kepada semua property, kalau ingin mengakses property tersebut maka buatlah method getter dan setter.  Deklarasi  property  diawali dengan  access modifer  kemudian  diikuti  dengan  tipe  data  dan akhirnya adalah nama dari property. Property bisa langsung diinisialisasi nilainya atau tidak, kalau  tidak  diberi  nilai,  maka  nilai  default  yang  akan  diset  sebagai  nilai  awal  property.

Contohnya seperti di bawah ini :

private String stringProperty;

Beberapa keyword lain juga bisa digunakan untuk mendeklarasikan property. Keyword static bisa digunakan untuk mendeklarasikan property, static akan membuat property menjadi milik class bukan milik object. Property static bisa diakses dari nama classnya dan tidak perlu ada object yang  diinstansiasi. Karena  property  static  menjadi milik class,  maka kalau  property static ini diganti isinya maka semua kode yang mengakses property static ini akan melihat nilai

yang sama. Contohnya seperti di bawah ini :

public class PropertyStaticTest {

  public static String nilaiStatic;

  public static void main(String[] args) {

    //property static dipanggil menggunakan nama class

    PropertyStaticTest.nilaiStatic =  "nilai dari main";

    //property static juga bisa dipanggil tanpa nama class dari class yang sama

    System.out.println(nilaiStatic);

    //method main adalah method static, hanya bisa memanggil method static juga

    methodUbahPropertyStatic();

    //nilai property static berubah setelah method  methodUbahPropertyStatic

    //dipanggil

    System.out.println(nilaiStatic);

  }

  public static void methodUbahPropertyStatic() {

      PropertyStaticTest.nilaiStatic = "nilai dari methodUbahPropertyStatic";

  }

}

Kalau class di atas dicompile dan dijalankan, hasilnya adalah seperti di bawah ini :

$ javac PropertyStaticTest.java

$ java PropertyStaticTest

nilai dari main

nilai dari methodUbahPropertyStatic

$

variabel  static  bisa  sangat  berguna  untuk  memudahkan  mengakses  suatu  variabel  karena tinggal menggunakan nama class saja, jadi tidak perlu membawa-bawa nilai variabel ke dalam  object  yang  memerlukanya.  Tetapi  pada  skenario  berbeda  property  static  ini  malah merepotkan, terutama di lingkungan aplikasi web yang berjalan dalam cluster. Antara satu cluster  satu  dan  cluster  yang  lain  nilai  static  ini  bisa  berbeda  dan  menyebabkan  aplikasi menjadi tidak konsisten. Karena dalam buku ini kita tidak bekerja dalam lingkungan cluster, kita

bisa menganggap property static sebagai praktek yang aman. Nantinya di dalam aplikasi contoh,

kita akan cukup banyak menggunakan property static untuk menyederhanakan kode.

Keyword berikutnya yang bisa diletakkan dalam property static adalah fnal. Adanya keyword fnal

dalam deklarasi property menyebabkan property hanya bisa diinisialisasi (diberi nilai) sekali saja,

setelah  itu nilainya tidak  bisa dirubah, perilaku ini biasa kita sebut dengan konstanta: sekali

diberi nilai tidak bisa berubah nilainya. Kalau kita memaksa merubah nilainya maka akan terjadi

error pada waktu kompilasi atau kalau java compiler tidak sanggup menentukan errornya akan

terjadi pada waktu aplikasi berjalan.

Contohnya  kita  akan  merubah  property  nilaiStatic  di  contoh  kode  sebelumnya  dengan

menambahkan keyword fnal, seperti di bawah ini :

public class PropertyStaticFinalTest {

  public static final String nilaiStatic;

  public static void main(String[] args) {

    PropertyStaticFinalTest.nilaiStatic =  "nilai dari main";

    System.out.println(nilaiStatic);

    methodUbahPropertyStatic();

    System.out.println(nilaiStatic);

  }

  public static void methodUbahPropertyStatic() {

    PropertyStaticFinalTest.nilaiStatic =

      "nilai dari methodUbahPropertyStatic";

  }

}

Ketika kode dikompilasi maka akan terjadi error yang menerangkan bahwa “tidak bisa mengubah

nilai variabel yang ditandai dengan fnal”. Outputnya seperti di bawah ini :

$ javac PropertyStaticFinalTest.java

PropertyStaticFinalTest.java:4: cannot assign a value to final variable nilaiStatic

    PropertyStaticFinalTest.nilaiStatic =  "nilai dari main";

                           ^

PropertyStaticFinalTest.java:10: cannot assign a value to final variable

nilaiStatic

    PropertyStaticFinalTest.nilaiStatic =

                           ^

2 errors

$

Jadi  kalau  begitu  kapan  property  yang  ditandai  dengan  fnal  bisa  diberi  nilai?  Pada  waktu

mendeklarasikan property. Contoh di bawah ini adalah cara yang benar menginisialisasi nilai ke

property yang ditandai dengan fnal :

public class PropertyFinalTest {

  public final String nilaiFinal="inisialisasi";

  public static void main(String[] args) {

 

PropertyFinalTest finalTest = new PropertyFinalTest();

 

System.out.println(finalTest.nilaiFinal);

  }

}

Perhatikan kode di atas, property nilaiFinal langsung diberi nilai pada waktu deklarasi. Karena sekarang property nilaiFinal kita harus membuat object dari class  PropertyFinalTest agar bisa mengakses property nilaiFinal, berbeda dengan property yang ditandai static dimana kita bisa langsung mengaksesnya tanpa membuat object.  Masih ada keyword lain yang bisa kita letakkan dalam deklarasi property, yaitu volatile. Keyword ini  menyebabkan  property  tidak  akan  ikut disimpan  ketika  object  diserialize. Proses serialize adalah proses mengubah object ke dalam bentuk yang bisa ditransfer lewat media I/O, misalnya object ini disimpan ke hardisk atau dikirim ke komputer lain lewat jaringan. Proses sebaliknya adalah deserialize dimana dari bentuk ini diubah lagi menjadi bentuk object di dalam JVM.

 

No comments:

Post a Comment

iklan popcash