Belajar Mengenal Immutable Dan Mutable Object Di Jadwal Java
Beberapa dari kalian, mungkin jarang mendengar atau bingung ,tentang istilah apa itu immutable dan mutable di bahasa pemrograman Java. Contohnya saja , ketika kita menciptakan objek gres dengan class String , bahu-membahu kita telah menerapkan sifat immutable yang dimiliki oleh class String. Nilai atau value yang dipakai pada objek, yang kita simpan bersifat konstan , alias tetap tidak sanggup diganti atu dirubah.
Sedangkan , ketika kita menciptakan objek gres dengan class StringBuffer atau StringBuilder ,kita sanggup mengganti atau merubah nilai atau value didalamnya , alasannya yakni bersifat mutable. Makara immutable yakni salah satu sifat pada objek dari class tertentu ,yang nilai atau valuenya tidak sanggup diubah-ubah (tetap), sebaliknya mutable yakni salah satu sifat pada objek dari class tertentu ,yang nilai atau valuenya sanggup diubah-ubah (tidak tetap).
Nah ,setelah kita mengetahui klarifikasi secara singkat , apa itu immutable dan mutable. Pada artikel mencar ilmu java kali ini ,kita akan mencar ilmu mengenal pola aktivitas yang memakai 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 sanggup perhatikan Contoh code ,beserta penjelasanya di bawah:
- Immutable
Contoh Code :
![]() |
Contoh Code Sifat Immutable String 1 |
Penjelasan :
Pada pola code aktivitas diatas ,akan menghasilkan output hasil "Belajar". Ini di karenakan objek dari class String ,mempunyai sifat immutable , pada acuan objek string. Untuk lebih jelasnya kalian sanggup perhatikan gambar dibawah :
![]() |
Contoh gambar objek menyimpan nilai |
Seperti yang kalian lihat pada pola 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 kalau kita menetapkan kembali secara eksplisit objek string. Sebagai pola 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 yakni : "belajarjava". Makara 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 kalau codenya menyerupai berikut :
![]() |
Contoh code acuan objek dengan nilai baru |
Penjelasan:
Pada dasarnya, sifat immutable itu ketika instansi objek , memiliki nilai yang tidak sanggup dimodifikasi. Jika pada pola code aktivitas diatas , kita tidak sanggup mengubah nilai atau value "belajar" menjadi "java". Akan tetapi , kita sanggup menetapkan nilai gres ke acuan objek yang sama. Makara pada code : (string = "java") sama halnya dengan code (string = new String("java")).
- Mutable
Contoh Code:
Penjelasan :
Pada pola code aktivitas diatas , kita memakai objek dari class StringBuffer dan StringBuilder , yang sama-sama memiliki sifat mutable , alias sanggup dimodifikasi dan diubah(tidak tetap). Kita memakai 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 pola code aktivitas diatas , kita memakai objek dari class StringBuffer dan StringBuilder , yang sama-sama memiliki sifat mutable , alias sanggup dimodifikasi dan diubah(tidak tetap). Kita memakai method .append() ,dari class StringBuffer dan StringBuilder ,yang berfungsi untuk memodifikasi atau menggabungkan nilai , tanpa perlu menetapkan kembali secara eksplisit.
Output :
EmoticonEmoticon