Berbeda dengan Javascript, Python maupun PHP (dynamically typed), Java merupakan bahasa dengan statically typed yang artinya dalam mendeklarasikan variabel kita perlu penyebutkan tipe datanya sebelum dapat digunakan, hal ini diperlukan untuk pengalokasian memori sesuai ukuran dari variabel yang kita buat. Ada 2 macam tipe data variabel yang ada di Java yaitu tipe data primitif, dan tipe data objek. Tipe data primitif merupakan tipe data yang secara default tersedia di Java. Tipe ini dalam penggunaannya dinamai dengan sebuah keyword. Ada 8 jenis tipe data primitif yaitu byte, short, int, long, float, double, char, dan boolean. Dan tiap-tiap tipe primitif mempunyai default nilai, misal 0 integer, atau false untuk boolean. Berbeda dengan Java, Scala dan Kotlin (yang masih keluarga JVM) tidak mendukung tipe data primitif, karena di kedua bahasa ini semua adalah objek. Tipe primitif biasa juga disebut tipe non-class karena dalam mengisi nilai tidak perlu menggunakan konstruktor yaitu menyebutkan new kemudian diikuti nama kelas (inisiasi), melainkan cukup langsung dengan menyebutkan nilainya.
Sedangkan tipe data objek atau biasa juga disebut referenced types untuk membuatnya perlu dengan inisiasi terhadap sebuah kelas. Dan kita bisa menggunakan fungsi dan variabel yang tersedia di kelas tersebut. Nilai default dari tipe ini adalah null jika kita tidak melakukan inisiasi. NullPointerException!!!
Nah setelah tahu dan ingat dengan jenis-jenis tipe data yang ada di Java. Kita akan mulai membahas istilah autoboxing dan unboxing. Autoboxing merupakan pengubahan otomatis yang dilakukan oleh compiler Java dari tipe data primitif menjadi sebuah tipe data objek(wrapper classes). Misalnya int menjadi Integer atau char menjadi Character. Ingat iya Dan proses sebaliknya mengubah dari tipe data objek menjadi tipe primitif disebut Unboxing. Dua jenis istilah ini berguna bagi developer untuk membuat kode lebih bersih dan mudah untuk dibaca. Contoh autoboxing
Kita tahu bahwa
Sekarang contoh unboxing
Nah kok bisa? bukannya tipe primitif tidak perlu inisiasi?. Iya, sebenarnya compiler Java akan secara otomatis membuat objek Kalau kita pecah mungkin prosesnya akan menjadi seperti ini;
Contoh lagi unboxing.
Yaps, didalam kelas Integer juga terdapat fungsi doubleValue().
Iya, pada baris pertama adalah autoboxing dan pada baris kedua saat penjumlahan dilakukan unboxing menjadi bentuk primitif
Sekarang kita juga tahu bahwa di Java selain tipe int (primitif) ada tipe Integer sebagai kelas wrapper nya atau double ada juga tipe Double. Apa kita masih perlu menggunakan tipe data primitif?. Mengingat dari kelas wrapper-nya saja kita bisa melakukan banyak hal. Masih sangat perlu, ingat bahwa tipe data objek tersebut membutuhkan alokasi memori yang lebih besar dibandingkan tipe primitif, sehingga akan berpengaruh pada performa program. Tipe data objek tersebut lebih baik digunakan pada bentuk tipe generics misal pada List, karena di sana memang dibutuhkan tipe data objek. Atau digunakan pada situasi program yang membutuhkan banyak perubahan tipe data (casting), karena di kelas wrapper sudah tersedia fungsi-fungsi untuk menangani itu. Method valueOf mengembalikan Object bilangan tertentu yang memegang nilai argumen. Argumen dapat menjadi tipe data primitif, String, dll.Method ini adalah method statis. Method ini dapat mengambil dua argumen, di mana satu adalah String dan yang lainnya adalah radix(asal usul). Syntax :berikut adalah beberapa jenis syntax yang dapat kita gunakan static Integer valueOf(int i) static Integer valueOf(String s) static Integer valueOf(String s, int radix) Parameter
Return Value
|