Belajar Java Konversi Numerik (Casting)

Belajar Java Konversi Numerik (Casting)

Belajar Java Konversi Numerik (Casting) - Pemula dalam belajar Java harus mengetahui bahwa angka dengan tipe float dapat dikonversi menjadi tipe integer dengan menggunakan casting secara eksplisit.

Dapatkah kita melakukan operasi binary dengan dua operand dengan tipe yang berbeda?

Jawabannya adalah bisa. 

Jika suatu integer dan suatu angka float dilibatkan dalam operasi binary, maka Java secara otomatis akan mengkonversi integer menjadi nilai float.

Contoh:

3 * 4.5  akan sama dengan 3.0 * 4.5

Kita dapat selalu menetapkan nilai pada suatu variabel numerik yang tipenya mendukung range nilai yang lebih besar. Oleh karena itu, kita dapat menetapkan nilai dengan tipe long pada variabel dengan tipe float.

Belajar Java Konversi Numerik (Casting)
Belajar Java Konversi Numerik (Casting)

Kita bagaimanapun tidak bisa menetapkan nilai pada variabel dari tipe dengan nilai range yang lebih kecil kecuali kita menggunakan tipe casting.

Casting adalah operasi untuk mengkonversi nilai dari satu tipe data ke sebuah nilai dari tipe data lainnya.

Casting suatu tipe nilai dengan range yang lebih kecil dengan range yang lebih besar disebut dengan 'widening casting' / casting yang diperluas, sementara casting dari range yang lebih besar ke range yang lebih kecil disebut dengan 'narrowing a type' / mempersempit suatu tipe.


Widening casting dan narrowing a type

Java akan secara otomatis melakukan widening casting, namun kita harus melakukan narrowing a type secara eksplisit.

Syntax untuk melakukan casting suatu tipe adalah dengan menetapkan tipe target dalam tanda kurung, kemudian diikuti dengan nama variabel atau nilai yang akan di casting.

Contoh :

System.out.println((int)2.8);

akan menampilkan nilai 2.  Ketika nilai double di casting ke tipe int, maka bagian fractional akan dipotong.

Pernyataan di bawah ini :

System.out.println((double)1 / 2);

akan menampilkan nilai 0.5, karena pertama kali 1 akan di cast menjadi 1.0 dan baru kemudian dibagi dengan 2.

Namun,  pernyataan :

System.out.println(1 / 2);

akan menampilkan nilai 0, karena 1 dan 2 keduanya adalah integer, sehingga nilai yang dihasilkan juga akan memiliki tipe integer.

Casting diperlukan bila kita menetapkan suatu nilai ke variabel dari tipe data yang memiliki range yang lebih kecil, seperti menetapkan nilai double pada variabel int. 

Compile error akan terjadi jika casting tidak digunakan dalam kondisi seperti ini.

Bagaimanapun, berhati-hatilah ketika menggunakan casting, karena kesalahan informasi bisa mengakibatkan hasil yang tidak akurat.

Hal yang perlu diingat juga adalah bahwa casting tidak mengubah variabel yang di cast.

Sebagai contoh :


double x = 4.5;

int i = (int)x; // i menjadi 4, tapi x masih bernilai 4.5


Casting dengan operator penetapan tambahan juga bisa dilakukan seperti di bawah ini :


int sum = 0;

sum += 3.5; // sum menjadi 3 setelah pernyataan ini

sum += 3.5 adalah equivalen dengan sum = (int)(sum + 3.5).


Untuk menetapkan variabel bertipe int ke variabel bertipe short atau byte, maka casting secara eksplisit harus digunakan.

Contoh pernyataan di bawah ini akan memberikan compile error :


int i = 1;

byte b = i; // Error karena eksplisit casting diperlukan di sini.


Contoh coding Java:
1:  import java.util.Scanner;  
2:    
3:  public class Pajak {  
4:     
5:   public static void main(String[] args) {  
6:   Scanner input = new Scanner(System.in);  
7:   System.out.print("Masukkan nilai pembelian Rp");  
8:   double nilaiPembelian = input.nextDouble();  
9:     
10:   double pajak = nilaiPembelian * 0.08;  
11:     
12:   System.out.println("Pajak tanpa casting adalah " + pajak);  
13:     
14:   System.out.println("Pajak dengan casting adalah Rp"   
15:   + (int)(pajak * 100) / 100.0);  
16:    }  
17:   }  

Contoh Output:
Masukkan nilai pembelian Rp464799.876
Pajak tanpa casting adalah Rp37183.99008
Pajak dengan casting adalah Rp37183.99

Ok, demikianlah pembahasan mengenai Belajar Java Konversi Numerik (Casting), semoga bisa menambah pengetahuan anda, dan jika merasa bermanfaat mohon di share ya.

No comments

Bahasa Java. Powered by Blogger.