Dalam membuat aplikasi, kita sering memerlukan pengubahan dari tipe data yang satu ke tipe data yang lain. Artikel ini merupakan penjelasan tentang pengubahan tersebut menggunakan bahasa pemrograman Java.
Apa itu primitive?
Primitive yang dimaksud di sini adalah ‘primitive data type’, yaitu tipe data dasar yang diberikan oleh bahasa pemrograman. Java memberikan tipe data dasar sebagai berikut :
• Integer types : byte(8 bit), short(16 bit), char(16 bit), int(32 bit), dan long (64 bit)
• Floating point types : float (32 bit), double (64 bit)
• boolean types : boolean
Pengetahuan mengenai bit yang dapat ditampung oleh masing-masing tipe data diperlukan untuk menentukan penggunaan casting, apakah bisa menggunakan implicit ataukah harus explicit cast.
Implicit dan Explicit cast
Anggaplah tipe data itu merupakan sebuah kontainer, dan bit-bit yang mampu ditampung oleh masing-masing tipe data itu merupakan daya tampung kontainer! Implicit cast adalah usaha untuk “memperlebar” daya tampung tipe data dengan mengubah sebuah tipe data menjadi tipe data yang lain. Contoh mengubah byte ke short atau int menjadi long adalah termasuk implicit cast. Dalam kode program, kita tidak perlu menuliskan tipe data tujuan perubahan. Namun, kita bisa juga menyebutkan tipe data tujuan perubahan. Contoh :
int a = 100; long b = (long)a; //mencantumkan 'long' sebagai tipe data tujuan, OK! short c = 10; byte d = c; //tanpa mencantumkan 'byte' sebagai tipe data tujuan, OK!
Explicit cast kebalikan dari implicit cast yaitu usaha untuk “mempersempit” daya tampung tipe data. Bila implicit cast tidak perlu mencantumkan tipe data tujuan, maka explicit cast “harus” menyebutkan tipe data tujuan. Contoh :
long x = 100L; int y = (int)x; //OK! int z = x //salah!
yang perlu diperhatikan dalam explicit cast adalah kemungkinan kehilangan presisi / ketepatan. Misalnya, bila anda ingin mengubah dari double ke int kemungkinan besar (jika bilangan tersebut adalah desimal) anda akan kehilangan nilai di belakang koma. Contoh :
double dbl = 10.12345d; int i = (int)dbl;
anda akan mendapatkan nilai 10 dan kehilangan nilai di belakang koma! Untuk itu, dalam casting perlu diperhatikan aspek-aspek perubahan presisi tersebut.
Selamat mencoba!