Belajar Mengenal Immutable dan Mutable Object di Program Java
Beberapa dari kalian, mungkin jarang mendengar atau bingung ,tentang istilah apa itu immutable dan mutable di bahasa pemrograman Java. Contohnya saja , saat kita membuat objek baru dengan class String , sebenarnya kita telah menerapkan sifat immutable yang dimiliki oleh class String. Nilai atau value yang digunakan pada objek, yang kita simpan bersifat konstan , alias tetap tidak bisa diganti atu dirubah.
Sedangkan , saat kita membuat objek baru dengan class StringBuffer atau StringBuilder ,kita dapat mengganti atau merubah nilai atau value didalamnya , karena bersifat mutable. Jadi immutable adalah salah satu sifat pada objek dari class tertentu ,yang nilai atau valuenya tidak dapat diubah-ubah (tetap), sebaliknya mutable adalah salah satu sifat pada objek dari class tertentu ,yang nilai atau valuenya dapat diubah-ubah (tidak tetap).
Nah ,setelah kita mengetahui penjelasan secara singkat , apa itu immutable dan mutable. Pada artikel belajar java kali ini ,kita akan belajar mengenal contoh program yang menggunakan sifat immutable dan mutable ,di bahasa pemrograman Java. Selengkapnya , berikut mari kita simak lebih lanjut:
1. Pertama buka IntelliJ IDEA ,atau Software IDE lain yang kalian gunakan , di Komputer atau Laptop kalian.
2. Kalian bisa perhatikan Contoh code ,beserta penjelasanya di bawah:
- Immutable
Contoh Code :
Contoh Code Sifat Immutable String 1 |
Penjelasan :
Pada contoh code program diatas ,akan menghasilkan output hasil "Belajar". Ini di karenakan objek dari class String ,mempunyai sifat immutable , pada referensi objek string. Untuk lebih jelasnya kalian bisa perhatikan gambar dibawah :
Contoh gambar objek menyimpan nilai |
Seperti yang kalian lihat pada contoh gambar diatas. String constant pool ,akan terbentuk di Java Memory Heap , dikarenakan sifat immutable yang terdapat pada objek dari class String. Pada objek string diatas , hanya mereferensikan nilai "belajar" , bukan "belajar java". Beda halnya jika kita menetapkan kembali secara eksplisit objek string. Sebagai contoh code berikut :
Contoh Code:
Contoh Code Sifat Immutable String 2 |
Penjelasan :
Seperti yang kalian lihat , khususnya pada baris code ( string = string.concat("java"), kita telah menetapkan kembali secara eksplisit , sehingga tampilan output yang dihasilkan adalah : "belajarjava". Jadi method .concat() ( concatenate = merangkai ) disini bukan mengubah , tapi hanya menggabungkan , nilai string yang sifatnya tetap alias immutable, menjadi output hasil baru. Sama saja seperti code (string = "belajar "+ "java").
Output :
Output Hasil |
Nah , bagaimana jika codenya seperti berikut :
Contoh code referensi objek dengan nilai baru |
Penjelasan:
Pada dasarnya, sifat immutable itu ketika instansi objek , mempunyai nilai yang tidak dapat dimodifikasi. Jika pada contoh code program diatas , kita tidak dapat mengubah nilai atau value "belajar" menjadi "java". Akan tetapi , kita dapat menetapkan nilai baru ke referensi objek yang sama. Jadi pada code : (string = "java") sama halnya dengan code (string = new String("java")).
- Mutable
Contoh Code:
Penjelasan :
Pada contoh code program diatas , kita menggunakan objek dari class StringBuffer dan StringBuilder , yang sama-sama mempunyai sifat mutable , alias dapat dimodifikasi dan diubah(tidak tetap). Kita menggunakan method .append() ,dari class StringBuffer dan StringBuilder ,yang berfungsi untuk memodifikasi atau menggabungkan nilai , tanpa perlu menetapkan kembali secara eksplisit.
Output :
Contoh code sifat mutable di StringBuilder dan StringBuffer |
Penjelasan :
Pada contoh code program diatas , kita menggunakan objek dari class StringBuffer dan StringBuilder , yang sama-sama mempunyai sifat mutable , alias dapat dimodifikasi dan diubah(tidak tetap). Kita menggunakan method .append() ,dari class StringBuffer dan StringBuilder ,yang berfungsi untuk memodifikasi atau menggabungkan nilai , tanpa perlu menetapkan kembali secara eksplisit.
Output :
Post a Comment for "Belajar Mengenal Immutable dan Mutable Object di Program Java"
Silakan berkomentar dengan baik ,jangan SPAM di komentar ini . NO BACKLINK /LINK HIDUP