CodeGym/Java Blog/Acak/Pengecoran Tipe Java
John Squirrels
Level 41
San Francisco

Pengecoran Tipe Java

Dipublikasikan di grup Acak
anggota

Apa itu Tipe Casting di Java?

Tipe data adalah sekumpulan nilai yang telah ditentukan sebelumnya yang menentukan tipe nilai yang dapat disimpan di dalamnya beserta operasi yang dapat dilakukan pada nilai tersebut.
Java Type Casting adalah proses dimana satu tipe data diubah ke tipe data lainnya.
Hal ini dapat bersifat implisit dan eksplisit . Typecasting implisit juga dikenal sebagai typecasting otomatis dilakukan oleh compiler. Typecasting eksplisit dilakukan secara manual oleh pemrogram dalam kode.

Mengapa Tipe Casting Diperlukan?

Java memiliki tipe data primitif berbeda yang memerlukan ruang berbeda di memori. Hal ini dapat menyebabkan masalah kompatibilitas saat menetapkan nilai dari satu tipe data ke tipe data lainnya. Jika tipe data sudah kompatibel, typecasting dilakukan secara otomatis oleh compiler. Dengan demikian, typecasting memecahkan masalah kompatibilitas utama ketika berhadapan dengan tipe data yang berbeda dalam program kita.

Jenis Pengecoran Tipe Java

Ada dua jenis tipe casting di Java.
  1. Pengecoran Tipe Pelebaran — Juga dikenal sebagai Pengecoran Tipe Implisit atau Otomatis
  2. Pengecoran Tipe Penyempitan — Juga dikenal sebagai Pengecoran Tipe Eksplisit atau Manual

Pengecoran Tipe Pelebaran

Pelebaran typecasting, seperti namanya, mengacu pada pelebaran tipe data yang lebih kecil ke tipe data yang lebih besar. Kita melakukan typecasting ini ketika kita ingin mengubah tipe kecil menjadi tipe besar. Tipe data harus kompatibel satu sama lain. Tidak ada konversi implisit dari tipe numerik ke char atau boolean. Di Java, tipe char dan boolean tidak kompatibel.
byte -> pendek -> char -> int -> panjang -> float -> ganda
Jenis casting ini dilakukan secara otomatis oleh compiler tanpa kehilangan informasi. Itu tidak memerlukan pemicu eksternal apa pun oleh programmer.

Contoh

//Automatic type conversion
public class WideningExample {
   public static void main(String[] args) {

       int i = 100;
       System.out.println("int value: " + i);

       // int to long type
       long l = i;
       System.out.println("int to long value: " + l);

       // long to float type
       float f = l;
       System.out.println("int to float value: " + f);


       byte b = 1;
       System.out.println("byte value: " + b);

       // byte to int type
       i = b;
       System.out.println("byte to int value: " + i);

       char c = 'a';
       System.out.println("char value: " + c);

       // char to int type
       i = c;

       // prints the ASCII value of the given character
       // ASCII value of 'a' = 97
       System.out.println("char to int value: " + i);
   }
}

Keluaran

nilai int: 100 int ke nilai panjang: 100 int ke nilai float: 100,0 nilai byte: 1 byte ke nilai int: 1 nilai char: nilai char ke int: 97

Penjelasan

Pada kode di atas, kami telah menunjukkan pelebaran typecasting yang dilakukan oleh compiler secara otomatis. Pertama-tama, kami menetapkan nilai ke int , byte , dan char . Kami kemudian menetapkan nilai int ke long dan float , keduanya lebih besar dari int . Kami juga menetapkan nilai byte dan char ke int . Baik byte maupun char merupakan tipe data yang lebih kecil daripada int , oleh karena itu, konversi ini bersifat implisit.

Pengecoran Tipe Penyempitan

Mempersempit typecasting, seperti namanya, mengacu pada penyempitan tipe data yang lebih besar ke tipe data yang lebih kecil. Kita melakukan typecasting ini ketika kita ingin mengubah tipe besar ke tipe kecil.
ganda -> float -> panjang -> int -> char -> pendek -> byte
Untuk jenis transmisi ini, kami mengganti konversi default Java dengan menentukan konversi kami sendiri. Untuk mencapai hal ini, kita menulis variabel atau nilai yang perlu diketikkan, diawali dengan tipe data target dalam tanda kurung '()'. Namun, jenis pengecoran ini dapat mengakibatkan hilangnya presisi.

Contoh

//Manual Type Conversion
public class NarrowingExample {
   public static void main(String[] arg) {

       // double data type
       double d = 97.04;
       // Print statements
       System.out.println("double value: " + d);

       // Narrowing type casting from double to long
       // implicitly writing the target data type in () followed by initial data type
       long l = (long) d;

       // fractional part lost - loss of precision
       System.out.println("long value: " + l);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       int i = (int) l;

       // fractional part lost - loss of precision
       System.out.println("int value: " + i);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       char c = (char) i;

       // displaying character corresponding to the ASCII value of 100
       System.out.println("char value: " + c);
   }
}

Keluaran

nilai ganda: 97,04 nilai panjang: 97 nilai int: 97 nilai karakter: a

Penjelasan

Mempersempit typecasting perlu dilakukan secara eksplisit oleh programmer menggunakan sintaks standar. Pada program di atas, kita memulai dengan nilai double yang lebih besar dari tipe data long dan int . Kami mengetikkan double menjadi long dan int dengan menggunakan tanda kurung dengan tipe data target yang diinginkan. Kami juga mengetikkan 'int' ke 'char' secara manual.

Kesimpulan

Di akhir postingan ini, kami harap Anda sudah memahami Java Type Casting secara detail. Anda telah mempelajari dua jenis typecasting di java. Anda juga telah mempelajari cara mentransmisikan tipe data yang tidak kompatibel secara manual menggunakan Narrowing typecasting. Anda dapat mencoba sendiri kombinasi tipe data lain dengan nilai berbeda untuk memahaminya lebih dalam. Teruslah berlatih untuk menguasai konsep lebih dalam. Sampai saat itu tiba, teruslah bertumbuh dan teruslah bersinar!
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar