Dalam bahasa pemrograman Java, type casting adalah proses mengonversi satu tipe data ke tipe lain. Java adalah bahasa pemrograman strongly typed, yang berarti setiap variabel harus memiliki tipe data yang tetap, sehingga konversi tipe sering diperlukan saat bekerja dengan berbagai tipe data dalam operasi aritmatika atau pemrograman umum. Type casting sangat berguna untuk mengoptimalkan penggunaan memori, memastikan kompatibilitas tipe data dalam operasi matematika, dan menghindari error yang tidak diinginkan. Artikel ini akan membahas berbagai jenis type casting dalam Java, termasuk contoh penggunaannya.
Jenis Type Casting dalam Java
Secara umum, type casting dalam Java terbagi menjadi dua kategori utama:
-
Widening Casting (Implicit Casting)
- Konversi dari tipe kecil ke tipe lebih besar secara otomatis oleh Java.
- Tidak memerlukan deklarasi eksplisit.
- Contoh:
byte → short → int → long → float → double
.
-
Narrowing Casting (Explicit Casting)
- Konversi dari tipe lebih besar ke tipe lebih kecil secara manual.
- Memerlukan deklarasi eksplisit dengan
(tipe_data)
. - Contoh:
double → float → long → int → short → byte
.
1. Widening Casting (Implicit Casting)
Widening casting terjadi secara otomatis tanpa perlu perintah khusus dari programmer.
Contoh Widening Casting:
public class WideningExample {
public static void main(String[] args) {
int myInt = 9;
double myDouble = myInt; // Konversi otomatis dari int ke double
System.out.println(myInt); // Output: 9
System.out.println(myDouble); // Output: 9.0
}
}
🔹 Mengapa tidak perlu casting manual?
Karena double
lebih besar dari int
, maka Java secara otomatis melakukan konversi untuk menghindari kehilangan data.
2. Narrowing Casting (Explicit Casting)
Narrowing casting harus dilakukan secara manual menggunakan (tipe_data)
.
Contoh Narrowing Casting:
public class NarrowingExample {
public static void main(String[] args) {
double myDouble = 9.78;
int myInt = (int) myDouble; // Konversi manual dari double ke int
System.out.println(myDouble); // Output: 9.78
System.out.println(myInt); // Output: 9
}
}
🔹 Apa yang terjadi?
9.78
diubah menjadi9
, karenaint
tidak dapat menyimpan desimal.- Proses ini disebut truncation (pemotongan angka desimal).
Jenis Type Casting yang Lebih Detail
Dalam beberapa referensi, disebutkan bahwa ada 13 jenis type casting dalam Java, jika kita melihat lebih luas termasuk tipe primitif dan tipe objek. Berikut adalah rincian ke-13 jenis tersebut:
A. Type Casting pada Tipe Data Primitif (4 jenis utama)
- Widening Primitive Casting (byte → short → int → long → float → double).
- Narrowing Primitive Casting (double → float → long → int → short → byte).
- Boolean Casting (Tidak Didukung) – Java tidak mengizinkan konversi antara
boolean
dan tipe numerik. - Character to Integer Casting (char ke int secara otomatis).
📌 Contoh Character ke Integer:
public class CharToInt {
public static void main(String[] args) {
char ch = 'A';
int ascii = ch; // Konversi otomatis dari char ke int
System.out.println(ascii); // Output: 65
}
}
B. Type Casting pada Tipe Objek (9 jenis utama)
Java juga memungkinkan type casting pada objek, terutama dalam pewarisan (inheritance) dan penggunaan interface.
- Upcasting – Konversi dari subclass ke superclass (otomatis).
- Downcasting – Konversi dari superclass ke subclass (harus manual).
- Interface Casting – Implementasi dari interface bisa dikonversi.
- Autoboxing – Konversi otomatis dari tipe primitif ke kelas wrapper (
int
→Integer
). - Unboxing – Konversi dari kelas wrapper ke tipe primitif (
Integer
→int
). - Casting dengan
instanceof
– Mengecek apakah suatu objek bisa dikonversi ke tipe lain. - String to Numeric Casting – Mengonversi String ke
int
,double
, dll. - Numeric to String Casting – Mengonversi angka menjadi String.
- Object Casting – Mengubah
Object
menjadi tipe spesifik.
Contoh Upcasting dan Downcasting dalam Java
Contoh Upcasting (Otomatis)
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog barks");
}
}
public class UpcastingExample {
public static void main(String[] args) {
Animal myDog = new Dog(); // Upcasting (Dog ke Animal)
myDog.makeSound(); // Output: Animal sound
}
}
🔹 Kenapa bisa?
Dog
adalah subclass dariAnimal
, sehingga bisa diperlakukan sebagaiAnimal
.- Namun, metode
bark()
tidak bisa dipanggil, karena hanya ada diDog
.
Contoh Downcasting (Harus Manual)
public class DowncastingExample {
public static void main(String[] args) {
Animal myAnimal = new Dog(); // Upcasting
Dog myDog = (Dog) myAnimal; // Downcasting
myDog.bark(); // Output: Dog barks
}
}
🔹 Kenapa perlu casting manual?
- Karena
Animal
bisa menjadi objek dari berbagai subclass (Dog
,Cat
, dll.), Java tidak otomatis mengonversinya keDog
tanpa izin eksplisit.
Kesimpulan
Type casting sangat penting dalam Java untuk mengonversi tipe data agar sesuai dengan kebutuhan program.
🔹 Poin utama:
✔ Widening Casting (Implicit) – Konversi otomatis dari tipe kecil ke besar.
✔ Narrowing Casting (Explicit) – Konversi manual dari tipe besar ke kecil.
✔ Casting pada objek – Digunakan dalam inheritance dan interface.
✔ Java memiliki total 13 jenis casting yang mencakup tipe primitif, objek, interface, dan konversi lainnya.
Dengan memahami type casting, kita dapat menghindari error, meningkatkan efisiensi kode, dan mengoptimalkan penggunaan memori dalam aplikasi Java. 🚀
Sumber / Referensi
- https://www.simplilearn.com/tutorials/java-tutorial/type-casting-in-java diakses 14 Maret 2025
- https://www.programiz.com/java-programming/typecasting diakses 14 Maret 2025
Posting Komentar untuk "Mengenal Type Casting dalam Java: Konsep, Jenis, dan Contohnya"
Berilah komentar, saran, dan kritik dengan bijak