Tipe data float dan double adalah tipe data angka pecahan. Dalam lanjutan tutorial belajar bahasa pemrograman Java di Duniailkom kali ini kita akan bahas tentang pengertian dan perbedaan antara keduanya.
Pengertian Tipe Data Float dan Double Bahasa Java
Tipe data float dan double dipakai untuk menampung angka pecahan seperti 3.14, 44.53 atau -0.09876. Sama seperti bahasa pemrograman pada umumnya, kita menggunakan tanda titik sebagai pemisah angka bulat dan pecahan, bukan tanda koma seperti yang kita pakai sehari-hari di Indonesia.
Perbedaan antara float dan double terletak dari jangkauan angka serta tingkat ketelitian. Berikut tabel perbedaan antara tipe data float dan double dalam bahasa Java:
Jenis Tipe Data | Ukuran Memory | Jangkauan |
---|---|---|
float | 4 byte (32 bit) | 3.4 * 10-38 hingga 3.4 * 1038 |
double | 8 byte (64 bit) | 1.7 * 10-308 hingga 1.7 * 10308 |
Meskipun tipe data float dan double bisa menyimpan angka yang sangat besar, tapi tipe data ini memiliki kelemahan yang umum di setiap bahasa pemrograman (tidak bahasa Java saja). Yakni terdapat batas tingkat ketelitian. Hal ini berhubungan dengan mekanisme penyimpanan di dalam komputer yang berbentuk angka biner.
Contoh Kode Program Tipe Data Float dan Double Bahasa Java
Sebagai contoh kode program pertama, saya akan membuat 2 buah variabel bertipe float dan double, menginput angka, lalu menampilkannya:
class BelajarJava { public static void main(String args[]){ float var1; double var2; var1 = 234.45F; var2 = 234.45; System.out.println("var1 = "+var1); System.out.println("var2 = "+var2); } }
Hasil kode program:
var1 = 234.45 var2 = 234.45
Di awal kode program, saya mendeklarasikan variabel var1 bertipe float, dan variabel var2 bertipe double. Kemudian di baris 7-8, kedua variabel ini diisi dengan angka 234.45.
Perhatikan cara mengisi variabel var1, terdapat akhiran "F", yakni 234.45F. Ini diperlukan karena secara default semua angka pecahan di Java dianggap sebagai double.
Terakhir kedua variabel ini ditampilkan dengan perintah System.out.println() di baris 10 dan 11.
Akhiran "F" untuk proses input tipe data float ini harus ditulis, jika tidak akan terjadi error seperti contoh berikut:
class BelajarJava { public static void main(String args[]){ float var1; double var2; var1 = 234.45; // ini akan error var2 = 234.45; System.out.println("var1 = "+var1); System.out.println("var2 = "+var2); } }
Hasil kode program:
BelajarJava.java:7: error: incompatible types: possible lossy conversion from double to float var1 = 234.45; // ini akan error ^ 1 error
Dalam hal ini compiler Java protes karena ada proses konversi dari double ke float.
Penulisan angka pecahan juga bisa menggunakan notasi ilmiah, seperti 3.12e2 atau 4E-3. Karakter e atau E mewakili pangkat 10, sehingga 3.12e2 = 3.12 x 102 = 312. Sedangkan 4E-3 = 4 x 10-3 = 0.004. Berikut contohnya:
class BelajarJava { public static void main(String args[]){ float var1; double var2; var1 = 3.12e2F; var2 = 4E-3; System.out.println("var1 = "+var1); System.out.println("var2 = "+var2); } }
Hasil kode program:
var1 = 312.0 var2 = 0.004
Cara Membaca (input) Data Double dan Float
Untuk proses input tipe data double dan float, juga bisa menggunakan Scanner class, tapi harus menggunakan perintah input berikut:
- nextFloat()
- nextDouble()
Juga untuk menghindari masalah tanda baca seperti yang pernah kita bahas pada tutorial: Cara Menginput Data ke dalam Bahasa Java, sebaiknya proses input ini juga menyertakan Locale class. Berikut contoh penggunaannya:
import java.util.Scanner; import java.util.Locale; class BelajarJava { public static void main(String args[]){ Scanner input = new Scanner(System.in).useLocale(Locale.US); float var1; double var2; System.out.print("var1 (float): "); var1 = input.nextFloat(); System.out.print("var2 (double): "); var2 = input.nextDouble(); System.out.println(); System.out.println("## Hasil ##"); System.out.println("var1 = "+var1); System.out.println("var2 = "+var2); } }
Di awal kode program, terdapat kode untuk proses import java.util.Scanner dan java.util.Locale. Class Locale ini diperlukan pada saat proses intansiasi class Scanner di baris 7. Fungsinya agar proses input menggunakan sistem amerika (US), yakni menggunakan tanda titik sebagai pemisah pecahan.
Jika tanpa perintah ini, bisa saja di komputer anda proses input pecahan ini menggunakan tanda koma. Jadi agar seragam, kita set saja dengan sistem US. Proses pembacaan sendiri dilakukan di baris 13 dan 16, yakni untuk tipe data float dan tipe data double.
Jadi, sebaiknya pakai tipe data float atau double?
Untuk penggunaan umum, sebaiknya pakai double saja. Selain karena jangkauannya lebih besar, double juga menjadi tipe data pecahan default dari Java, sehingga kita tidak perlu menambah akhiran "F" ketika ingin mengisi nilai ke dalam variabel.
Dalam tutorial belajar bahasa Java di Duniailkom kali ini kita sudah membahas banyak hal terkait tipe data float dan double, mulai dari pengertian, perbedaan, serta berbagai contoh kode program. Berikutnya akan dibahas tentang Tipe Data Boolean Bahasa Pemrograman Java.