Menguasai Type Casting Java: Dari Widening hingga Narrowing dan Lebih Lanjut
Java Type Casting
Panduan ini mengungkap misteri type casting Java, mencakup bentuk utamanya dan mengilustrasikan masing-masing dengan contoh yang jelas.
Sebelum memulai type casting Java, pastikan Anda memahami tipe data Java.
Type Casting
Proses mengonversi nilai dari satu tipe data (int, float, double, dll.) ke tipe lain dikenal sebagai type casting.
Java menawarkan 13 tipe konversi, namun tutorial ini berfokus pada dua kategori inti:
- Widening Type Casting
- Narrowing Type Casting
Untuk daftar lengkap, lihat dokumentasi Type Conversion resmi Java.
Widening Type Casting
Dalam Widening Type Casting, Java secara otomatis mempromosikan primitif yang lebih kecil ke yang lebih besar, memastikan tidak ada kehilangan data.
Contoh: Mengonversi int ke double
class Main { public static void main(String[] args) { int num = 10; System.out.println("The integer value: " + num); double data = num; System.out.println("The double value: " + data); } }
Output
The integer value: 10 The double value: 10.0
Ini menunjukkan bagaimana variabel int dipromosikan ke double sebelum penugasan. Karena konversi ini otomatis, juga disebut implicit type casting.
Catatan: Konversi widening aman dan dilakukan oleh compiler.
Narrowing Type Casting
Dengan Narrowing Type Casting, Anda harus secara eksplisit me-cast primitif yang lebih besar ke yang lebih kecil menggunakan tanda kurung.
Contoh: Mengonversi double ke int
class Main { public static void main(String[] args) { double num = 10.99; System.out.println("The double value: " + num); int data = (int)num; System.out.println("The integer value: " + data); } }
Output
The double value: 10.99 The integer value: 10
Cast (int) memotong bagian pecahan, mengilustrasikan mengapa konversi ini dianggap explicit type casting dan dapat menyebabkan kehilangan data.
Catatan: Java tidak secara otomatis melakukan konversi narrowing.
Berikut adalah konversi praktis antara primitif dan string.
Contoh 1: int ke String
class Main { public static void main(String[] args) { int num = 10; System.out.println("The integer value is: " + num); String data = String.valueOf(num); System.out.println("The string value is: " + data); } }
Output
The integer value is: 10 The string value is: 10
Di sini, String.valueOf() mengonversi integer ke representasi teksnya.
Contoh 2: String ke int
class Main { public static void main(String[] args) { String data = "10"; System.out.println("The string value is: " + data); int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); } }
Output
The string value is: 10 The integer value is: 10
Parsing bergantung pada Integer.parseInt(). Jika string tidak dapat diurai, NumberFormatException dilemparkan.
Catatan: Validasi input untuk menghindari pengecualian runtime.