Type Casting¶
Sebelum mempelajari Java Type Casting, pastikan kamu sudah paham tentang Tipe Data di Java.
1 | Type Casting¶
Proses mengubah nilai dari satu tipe data (mis. int, float, double, dll.) menjadi tipe data lain disebut typecasting.
Di Java, ada 13 jenis konversi tipe data, tetapi pada tutorial ini kita fokus pada dua tipe utama:
- Widening Type Casting
- Narrowing Type Casting
Untuk mempelajari jenis konversi lainnya, lihat dokumentasi resmi Java: Java Type Conversion.
2 | Widening Type Casting¶
Pada Widening Type Casting, Java secara otomatis mengonversi satu tipe data ke tipe data lain.
Contoh: Mengubah int menjadi double
class Main {
public static void main(String[] args) {
// membuat variabel tipe int
int num = 10;
System.out.println("The integer value: " + num);
// mengonversi menjadi tipe double
double data = num;
System.out.println("The double value: " + data);
}
}
Output:
Di contoh di atas, variabel num (tipe int) secara otomatis dikonversi menjadi double dan kemudian disimpan di variabel data.
- Aturan: tipe data yang lebih kecil (lower data type) dikonversi menjadi tipe data yang lebih besar (higher data type).
- Tidak ada kehilangan data, sehingga konversi ini terjadi otomatis.
- Juga dikenal sebagai Implicit Type Casting.
3 | Narrowing Type Casting¶
Pada Narrowing Type Casting, kita secara manual mengonversi tipe data menggunakan tanda kurung ( ).
Contoh: Mengubah double menjadi int
class Main {
public static void main(String[] args) {
// membuat variabel tipe double
double num = 10.99;
System.out.println("The double value: " + num);
// mengonversi menjadi tipe int
int data = (int)num;
System.out.println("The integer value: " + data);
}
}
Output:
- Baris penting:
- Tanda
(int)menunjukkan bahwa variabelnumdikonversi secara eksplisit menjadi tipeint. - Aturan: tipe data yang lebih besar (higher data type) dikonversi menjadi tipe data yang lebih kecil (lower data type), sehingga ada kemungkinan kehilangan data.
- Juga dikenal sebagai Explicit Type Casting.
4 | Contoh konversi tipe lain¶
4.1 | Contoh 1: int → String¶
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("The integer value is: " + num);
// konversi int menjadi string
String data = String.valueOf(num);
System.out.println("The string value is: " + data);
}
}
Output:
- Baris penting:
- Menggunakan metode
valueOf()dari kelasStringuntuk mengubahintmenjadiString.
4.2 | Contoh 2: String → int¶
class Main {
public static void main(String[] args) {
String data = "10";
System.out.println("The string value is: " + data);
// konversi string menjadi int
int num = Integer.parseInt(data);
System.out.println("The integer value is: " + num);
}
}
Output:
- Baris penting:
- Menggunakan metode
parseInt()dari kelasIntegeruntuk mengubahStringmenjadiint.
Catatan: Jika string tidak bisa dikonversi menjadi integer, akan muncul NumberFormatException.
5 | Cheat-Sheet Java Type Casting¶
Type Casting adalah proses mengubah nilai dari satu tipe data ke tipe data lain (misal int → double).
Di Java ada dua tipe utama:
| Jenis | Penjelasan | Otomatis / Manual |
|---|---|---|
| Widening (Casting melebar) | Tipe kecil → tipe besar | Otomatis (Implicit) |
| Narrowing (Casting menyempit) | Tipe besar → tipe kecil | Manual (Explicit) |
Selain itu, ada konversi lain seperti int → String, String → int, dll.
5.1 | Widening Type Casting (Casting Melebar)¶
- Java otomatis mengonversi tipe data kecil menjadi tipe data besar.
- Tidak ada kehilangan data.
- Contoh:
int num = 10; // int
double data = num; // int → double otomatis
System.out.println(data); // Output: 10.0
- Aturan:
byte → short → int → long → float → double - Alias: Implicit Type Casting
Tips: Gunakan ini untuk operasi matematika atau penyimpanan nilai ke tipe lebih besar tanpa khawatir kehilangan data.
5.2 | Narrowing Type Casting (Casting Menyempit)¶
- Java tidak otomatis, kita harus manual dengan tanda
(tipe). - Bisa terjadi kehilangan data.
- Contoh:
double num = 10.99;
int data = (int) num; // double → int manual
System.out.println(data); // Output: 10
- Aturan:
double → float → long → int → short → byte - Alias: Explicit Type Casting
Tips: Selalu sadar akan kemungkinan kehilangan data saat casting tipe besar → kecil.
6 | Contoh Konversi Lain Diperluas¶
6.1 | int → String¶
- Gunakan
String.valueOf()untuk mengubah tipe primitif menjadi String.
6.2 | String → int¶
- Gunakan
Integer.parseInt(). - Catatan: Jika string tidak bisa dikonversi → muncul
NumberFormatException.
6.3 | int → char¶
6.4 | long → int¶
- Waspadai overflow jika nilai
longterlalu besar untukint.
6.5 | double → int¶
- Nilai di belakang koma akan hilang.
7 | Ringkasan Implicit vs Explicit¶
| Tipe Casting | Contoh | Otomatis? | Risiko Hilangnya Data? |
|---|---|---|---|
| Widening | int → double |
Ya | Tidak |
| Narrowing | double → int |
Tidak | Ya |
| int → String | String.valueOf(int) |
Manual | Tidak |
| String → int | Integer.parseInt(String) |
Manual | Bisa Exception |
| int → char | (char) int |
Manual | Bisa karakter berbeda |
| long → int | (int) long |
Manual | Bisa overflow |
8 | Tips Praktis¶
- Gunakan Widening jika memungkinkan → aman dan otomatis.
- Gunakan Narrowing dengan hati-hati → cek kehilangan data.
- String ↔ int hanya untuk input/output atau parsing.
- Casting numerik → char hanya untuk karakter Unicode / ASCII.
- Hindari casting yang tidak perlu → bikin kode lebih bersih dan aman.