Penggunaan fungsi INTEGER.VALUEOF pada PHP

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.

int x = 14;

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!!!

Mobil mobil = new Mobil("Esemka");

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 int dan Integer adalah 2 bentuk tipe yang berbeda, yang pertama adalah tipe primitif yang kedua adalah tipe objek.

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

Integer x = 14;

Kita tahu bahwa Integeradalah sebuah tipe data objek namun kita biasa mengisi nilainya tanpa melalui proses inisiasi. Sebenarnya proses inisiasi dilakukan oleh compiler, yang dari kode diatas menjadi

Integer x = Integer.valueOf(14);

Sekarang contoh unboxing

int y = new Integer(14);

Nah kok bisa? bukannya tipe primitif tidak perlu inisiasi?. Iya, sebenarnya compiler Java akan secara otomatis membuat objek new Integer(14);kemudian mengambil nilai integer dari objek tersebut dan memasukkan nilainya kedalam variabel y. Proses inilah yang dinamakan unboxing.

Kalau kita pecah mungkin prosesnya akan menjadi seperti ini;

Integer x = new Integer(14);
int y = x.intValue();

Contoh lagi unboxing.

Mobil mobil = new Mobil("Esemka");0

Yaps, didalam kelas Integer juga terdapat fungsi doubleValue().
Nah bagimana dengan kode dibawah ini?

Mobil mobil = new Mobil("Esemka");1

Iya, pada baris pertama adalah autoboxing dan pada baris kedua saat penjumlahan dilakukan unboxing menjadi bentuk primitif int dan terjadi proses autoboxing kembali saat mengisi nilainya ke variable x;

Mobil mobil = new Mobil("Esemka");3

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

  • i - Sebuah int yang direpresentasikan oleh integer yang akan dikembalikan.
  • s - Sebuah String yang direpresentasi oleh integer yang akan dikembalikan.
  • radix - ini akan digunakan untuk menentukan nilai kembali Integer berdasarkan String yang dilalui.

Return Value

  • valueOf (int i): mengembalikan sebuah objek Integer yang memegang nilai primitif tertentu.
  • valueOf (String s): mengembalikan sebuah objek Integer memegang nilai yang direpresentasikan sebagai string yang telah ditentukan.
  • valueOf (String s, int radix): mengembalikan sebuah objek Integer memegang nilai integer dari representasi string yang ditentukan, diuraikan dengan nilai radix.