Pada pemrograman sering sekali terjadi pemindahan nnilai dari satu variabel ke variabel lainnya dengan tipe data yang berbeda. Dalam pemindahan tersebut ada dua jenis pemindahan yang dilakukan yaitu Konversi dan Casting.
- Konversi adalah pemberian nilai
kepada variabel yang berbeda tipe datanya. Dalam konversi melibatkan widening conversation yaitu tipe data
tujuan harus mempunyai range yang lebih besar daripada tipe data aslinya.
Misalnya dari byte ke short, short ke
long, atau int ke double. Konversi tidak dapat dilakukan pada tipe data
boolean.
Contoh :
public
class Promotion{
public static void main (String[] args){
char c = 'a';
byte b = 12;
short s = 32767;
int i = 2147483647;
long l = 72036854775807L;
float f = 3.324243532f;
double d = 3.23442323445242;
System.out.println("Default
value c = "+c);
System.out.println("Default
value b = "+b);
System.out.println("Default
value s = "+s);
System.out.println("Default
value i = "+i);
System.out.println("Default
value l = "+l);
System.out.println("Default
value f = "+f);
System.out.println("Default
value d = "+d);
d = f;
f = l;
l = i;
i = s;
s = b;
//c = i;
System.out.println("\nAfter
Promotion proses : ");
System.out.println("\nDefault
value c(int) = "+c);
System.out.println("Default
value b(short) = "+b);
System.out.println("Default
value s(byte) = "+s);
System.out.println("Default
value i(short) = "+i);
System.out.println("Default
value l (int) = "+l);
System.out.println("Default
value f (long) = "+f);
System.out.println("Default
value d (float) = "+d);
}
}
- Casting adalah saat programmer
melakukan konversi antar tipe yang
tipenya tidak kompatibel, tidak dapat mengonversi secara otomatis maka
dibutuhkan casting. Casting juga melibatkan narrowing conversation yaitu bila tipe tujuan lebih kecil dari
tujuan asal maka akan ada informasi yang hilang. Contoh casting saat pemberian
nilai dari tipe data double ke int yang memiliki range lebih kecil dari double.
Format proses casting :
i = (int)d;
i
= variabel tipe data int
d
= variabel tipe data double
Contoh :
public
class Casting{
public static void main (String args[]){
char c = 'a';
byte b = 12;
short s = 32767;
int i = 2147483647;
long l = 72036854775807L;
float f = 3.324243532f;
double d = 3.23442323445242;
System.out.println("Default
value c = "+c);
System.out.println("Default
value b = "+b);
System.out.println("Default
value s = "+s);
System.out.println("Default
value i = "+i);
System.out.println("Default
value l = "+l);
System.out.println("Default
value f = "+f);
System.out.println("Default
value d = "+d);
f = (float)d;
l = (long)f;
i = (int)l;
s = (short)i;
b = (byte)s;
c = (char)i;
System.out.println("\nAfter
Casting proses: ");
System.out.println("\nDefault
value c(int) = "+c);
System.out.println("Default
value b(short) = "+b);
System.out.println("Default
value s(int) = "+s);
System.out.println("Default
value i(long) = "+i);
System.out.println("Default
value l (float) = "+l);
System.out.println("Default
value f (double) = "+f);
System.out.println("Default
value d (double) = "+d);
}
}
sangat mencerahkan...terima kasih. oia ....kalau source code diatas di konvert ke c++ bagaimana ya ? terima kasih atas pencerahan sebelumnya...
ReplyDeleteSangat membantu, terima kasih
ReplyDeleteSangat membantu mas lancar terus rezekinya dan always sharing ya
ReplyDeleteSangat membantu mas lancar terus rezekinya dan always sharing ya
ReplyDelete