Pinned

Konversi Tipe Data Java dan Fungsinya

Ketika menetapkan nilai dari salah satu tipe data untuk dikirim ke tipe data yang lain pada bahasa pemrograman Java, maka dua tipe data tersebut mungkin tidak kompatibel satu sama lain. Jika tipe data bersifat kompatibel, maka Java akan menjalankan konversi secara otomatis yang disebut dengan konversi tipe data otomatis, namun jika tidak kompatibel, maka tipe data tersebut harus di-casted atau dikonversi secara eksplisit terlebih dahulu. Contoh, Nilai dengan tipe data integer yang dikirim ke variabel dengan tipe data long.

5 Cara Konversi Tipe Data pada Java
Ilustrasi Tipe Konversi JAVA


Konversi tipe data secara otomatis
Konversi data tipe dilakukan ketika dua tipe data dikonversi secara otomatis. Hal ini terjadi ketika:
  • Dua tipe data kompatibel atau sama.
  • Ketika ditetapkan nilai dari ukuran kecil tipe data ke tipe data ukuran besar.

Contoh, Tipe data numerik pada Java kompatibel terhdap tipe data numerik satu sama lain, namun tipe data numerik tidak kompatibel terhadap tipe data char. Dan juga, tipe data char dan boolean tidak kompatibel satu sama lain dan contoh lainnya.

Byte -> Short -> Int -> Long -> Float -> Double

Contoh: Program konversi tipe data Java.

class Test 

 

public static void main(String[] args

int i = 100

 

// konversi tipe data otomatis 

long l = i; 

  

// konversi tipe data otomatis 

float f = l; 

System.out.println("Nilai "

+"Int "

+i); 

System.out.println("Nilai "

+"Long "

+l); 

System.out.println("Nilai "

+"Float "+f); 

}

 

}

Output:
Nilai Int 100
Nilai Long 100
Nilai Float 100.0

Konversi Eksplisit Tipe Data
Jika ingin menetapkan nilai dari tipe data dari ukuran besar ke tipe data ukuran kecil maka digunakan tipe ekplisit.
  • Konversi tipe data eksplisit berguna ketika konversi otomatis tidak bisa digunakan.
  • Spesifikasi tipe data target menentukan tipe konversi dari nilai spesifikasi data.

Double -> Float -> Long -> Int -> Short -> Byte

Eksplisit Konversi
Tipe data karakter (seperti char) dan numerik (seperti integer) adalah tipe data yang tidak kompatibel. Untuk dapat mengirim nilai antar variabel maka digunakan konversi eksplisit seperti contoh program berikut ini.

Contoh:

// Program Java

// mengilustrasikan tipe data

// yang tidak kompatibel untuk

// konversi tipe data

// eksplisit

public class Test 

 

public static void main(String[] argv

char ch = 'c'

int num = 88

ch = num; 

}

 

}

Output:
7: error: incompatible types: possible lossy conversion from int to char
    ch = num;
         ^
1 error

Contoh: Cara melakukan konversi tipe data secara eksplisit.

// Program Java

// mengilustrasikan konversi

// tipe data secara eksplisit 

class Test 

{

 

public static void main(String[] args

double d = 100.04

 

// casting tipe data eksplisit

long l = (long)d; 

  

// casting tipe data eksplisit

int i = (int)l; 

System.out.println("Nilai"

+" Double "

+d); 

  

// bagian dari nilai yang

// hilang 

System.out.println("Nilai"

+" Long "

+l); 

  

// bagian dari nilai yang

// hilang

System.out.println("Nilai"

+" Int "

+i); 

 

}

Output:
Nilai Double 100.04
Nilai Long 100
Nilai Int 100


Ketika menetapkan nilai bagian yang hilang ke tipe data byte, maka nilai tersebut akan direduksi ke nilai 256 (jangkauan nilai byte).

Contoh:

// Program java

// mengilustrasikan konversi

// dari tipe data integer dan

// double ke tipe data byte

class Test 

 

public static void main(String args[]

byte b; 

int i = 257

double d = 323.142

System.out.println("Konversi"

+" int ke byte."); 

  

/* i%256 */ 

b = (byte) i; 

System.out.println("i = " 

+ i + " b = " 

+ b); 

System.out.println("\nKonver"

+"si double ke byte."); 

  

/* d%256 */ 

b = (byte) d; 

System.out.println("d = " 

+ d + " b= " 

+ b); 

}

 

}

Output:
Konversi int ke byte.
i = 257 b = 1

Konversi double ke byte.
d = 323.142 b = 67

Konversi tipe aritmatika
Ketika nilai ekspresi dievaluasi, nilai ambang batas dapat melebihi rentang nilai operand dan karenanya nilai ekspresi akan dijumlahkan. Beberapa kondisi dimana tipe data akan dilakukan perhitungan adalah sebagai berikut:
  • Java secara otomatis akan menjumlahkan setiap nilai operand byteshort, atau char ke tipe data integer ketika dilakukan evaluasi pada ekspresi.
  • Jika salah satu operand bertipe data longfloat, atau double maka keseluruhan ekspresi akan dijumlahkan ke dalam tipe data longfloat, atau double secara berurutan.

Contoh:

// Program Java

// mengilustrasikan tipe data

// konversi dari ekspresi

class Test 

 

public static void main(String args[]

byte b = 42

char c = 'a'

short s = 1024

int i = 50000

float f = 5.67f

double d = .1234

  

// bentuk ekspresi tipe data 

double result = (f * b) + (i / c) - (d * s); 

  

// hasil setelah proses

// perhitungan selesai

System.out.println("Hasil = " 

+ result); 

 

}

Output:
Hasil = 626.7784146484375

Casting tipe data eksplisit dalam ekspresi
Ketika melakukan evaluasi nilai ekspresi, hasil akan secara otomatis diperbarui ke dalam tipe data yang lebih besar dari nilai operand. Tetapi jika nilai yang disimpan dalam ukuran tipe data yang lebih kecil, maka akan menghasilkan pesan error pada saat kompilasi program dijalankan, karena hal tersebut maka dibutuhkan casting tipe data untuk mendapatkan hasil dari evaluasi nilai proses tersebut.

Contoh:

// Program Java

// mengilustrasikan casting

// tipe data dari integer ke

// tipe data byte

class Test 

 

public static void main(String args[]

byte b = 50

  

// casting tipe data dari

// integer ke byte

b = (byte)(b * 2); 

System.out.println(b); 

}

 

}

Output:
100

catatan: dalam kasus dimana hanya ada tipe data tunggal (satu variabel) maka hasil dari evaluasi (perhitungan) akan dikonversi ke tipe data integer dan casting terhadap tipe data itu sendiri.

Contoh:

// Program Java

// mengilustrasikan casting

// tipe data integer ke byte 

class Test 

 

public static void main(String args[]

byte b = 50

 

// casting tipe data dari

// integer ke byte

b = (byte)(b * 2); 

System.out.println(b); 

}

 

}

Output:
100


Artikel ini didedikasikan kepada: Yasmine Salsabila, Yudha Gusti Pratama, Yuniar Pingkan Fitriannisa, Zahra Ayu Novitasari, dan Adela Dian Putri Herjati.

6 komentar:

  1. Apa yang dimaksud dengan type casting pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Mengubah tipe data primitif menjadi tipe data primitif lainny dikenal dengan istilah type casting atau type conversion dalam bahasa pemrograman Java. Programmer dapat mentransmisikan tipe data primitif dengan dua cara yaitu: widening, dan narrowing.

      Hapus
  2. Apa yang dimaksud dengan konversi eksplisit pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Saat programmer menetapkan nilai dari satu tipe data ke tipe data lainnya, maka kedua tipe data tersebut mungkin tidak kompatibel satu sama lain. Jika tipe data tersebut tidak kompatibel, maka Java akan melakukan konversi secara otomatis yang dikenal dengan istilah Automatic Type Conversion dan jika tidak maka dikenal dengan istilah casted atau konversi eksplisit.

      Hapus
  3. Apa perbedaan antara type casting dan type conversion pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Pada type casting, tipe data diubah menjadi tipe data lain oleh programmer menggunakan operator casting. Sedangkan type conversion, tipe data diubah menjadi tipe data lain oleh kompilator. Jenis casting dapat diterapkan ke jenis data yang kompatibel serta jenis data yang tidak kompatibel.

      Hapus

Hubungi admin melalui Wa : +62-896-2514-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -