Tipe data float adalah tipe data untuk angka pecahan. Dalam tutorial belajar bahasa pemrograman C di Duniailkom kali ini kita akan bahas tentang pengertian, jenis-jenis serta contoh kode program untuk tipe data float dalam bahasa C.
Pengertian Tipe Data Float Bahasa C
Tipe data float digunakan untuk menampung angka pecahan seperti 3.14, 62.22 atau -0.01234. 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 dalam bahasa C, selain float juga terdapat tipe data double yang juga bisa dipakai untuk menyimpan angka pecahan. Perbedaan antara float dan double terletak dari jangkauan angka serta tingkat ketelitian angka.
Berikut tabel perbedaan antara tipe data float dan double dalam bahasa C:
Jenis Tipe Data | Ukuran Memory | Jangkauan | Ketelitian |
---|---|---|---|
float | 4 byte | 1.2E-38 hingga 3.4E+38 | 6 tempat desimal |
double | 8 byte | 2.3E-308 hingga 1.7E+308 | 15 tempat desimal |
Sebenarnya masih ada 1 lagi jenis tipe data untuk angka pecahan, yakni long double dengan jangkauan yang lebih besar dari double. Namun tidak semua compiler bahasa C mendukung tipe data ini.
Penulisan angka pecahan juga bisa menggunakan notasi ilmiah, seperti 3.12e2 atau 4E-3. Tanda e atau E mewakili pangkat 10, sehingga 3.12e2 = 3.12 x 10^2 = 312. Sedangkan 4E-3 = 4 x 10^-3 = 0.004.
Meskipun tipe data float bisa menyimpan angka yang sangat besar, tapi tipe data ini memiliki kelemahan yang umum di setiap bahasa pemrograman (tidak bahasa C saja). Yakni terdapat batas tingkat ketelitian. Hal ini berhubungan dengan mekanisme penyimpanan di dalam komputer yang berupa angka biner. Kita akan lihat contohnya beberapa saat lagi.
Contoh Kode Program Tipe Data Float Bahasa C
Sebagai contoh kode program pertama, saya akan membuat 2 buah variabel bertipe float dan double, menginput angka, lalu menampilkannya:
#include <stdio.h> int main(void) { float angka1; double angka2; angka1 = 4.323; angka2 = 0.0067; printf("Isi variabel angka1 (float): %f \n",angka1); printf("Isi variabel angka2 (double) %f \n",angka2); printf("\n"); return 0; }
Untuk menampilkan angka float, kita menggunakan kode %f di dalam perintah printf.
Berikutnya, saya akan input angka dengan penulisan notasi ilmiah:
#include <stdio.h> int main(void) { float angka1 = 9.13e5; double angka2 = 3.99E-4; printf("Isi variabel angka1 (float): %f \n",angka1); printf("Isi variabel angka2 (double) %f \n",angka2); printf("\n"); return 0; }
Dari kedua contoh diatas, kita bisa lihat bahwa secara default bahasa C menampilkan angka desimal dengan 6 angka di belakang koma. Maksudnya, jika yang ditulis adalah 4.323, maka yang ditampilkan menjadi 4.323000. Bagaimana mengubah tampilan ini? Misalnya jika kita ingin 2 angka di belakang koma?
Kita bisa mengaturnya dengan menulis format tampilan data float.
Mengatur Format Tampilan Tipe Data Float
Perintah printf memiliki aturan khusus untuk menampilkan angka pecahan, yang salah satunya bisa dipakai untuk mengatur jumlah angka di belakang koma. Berikut format penulisan yang dimaksud:
%(0)(jumlah total digit).(jumlah angka di belakang koma)%f
Kode yang ada di dalam tanda kurung bersifat opsional dan boleh tidak ditulis. Mari kita lihat prakteknya menggunakan contoh kode program:
#include <stdio.h> int main(void) { float angka1 = 1234.5678; printf("Isi variabel angka1: %f \n",angka1); printf("Isi variabel angka1: %15f \n",angka1); printf("Isi variabel angka1: %015f \n",angka1); printf("Isi variabel angka1: %.3f \n",angka1); printf("Isi variabel angka1: %010.3f \n",angka1); printf("Isi variabel angka1: %e \n",angka1); printf("Isi variabel angka1: %E \n",angka1); printf("\n"); return 0; }
Di awal kode program saya mendefinisikan variabel angka1 sebagai float dan diisi dengan angka 1234.5678.
Dalam perintah printf pertama, terlihat bahwa angka1 berisi 1234.567749. Loh, kenapa berbeda? inilah salah satu kelemahan dari tipe data float, yakni tidak bisa secara persis menyimpan angka. Kesalahan pembulatan ini umum di setiap bahasa pemrograman yang berasal dari mekanisme konversi angka di dalam komputer (digit biner).
Untuk perintah printf kedua, saya menggunakan pola %15f. Pola ini akan menampilkan angka pecahan dengan 15 digit (termasuk karakter titik). Karena variabel angka1 tersimpan sebagai 1234.567749 (total 11 digit), maka akan ditambah 4 spasi sebelum angka agar total menjadi 15 digit.
Untuk perintah printf ketiga, saya menggunakan pola %015f. Pola ini juga akan menampilkan angka pecahan dengan 15 digit, namun 4 spasi sebelumnya akan diganti dengan angka 0.
Perintah printf keempat, saya menggunakan pola %.3f. Pola ini akan menampilkan angka pecahan dengan 3 digit di belakang koma.
Perintah printf kelima, saya menggunakan pola %010.3f. Pola ini akan menampilkan angka pecahan dengan 3 digit di belakang koma. Selain itu angka akan ditampilkan dengan jumlah total 10 digit. Jika kurang, akan ditambah dengan angka 0 di sisi kiri angka bulat.
Dua perintah printf terakhir menggunakan pola %e dan %E. Ini dipakai untuk menampilkan angka dalam format notasi ilmiah, yakni 8.012457e+003 dan 8.012457E+003. Perbedaannya hanya menggunakan huruf e kecil atau E besar.
Batas Minimum dan Maksimum Float Bahasa C
Sebagai penutup tutorial tentang tipe data float di dalam bahasa C, kita akan akses file header float.h yang berisi berbagai konstanta untuk melihat ukuran memory, nilai minimum, nilai maksimum serta jumlah digit ketelitian dari tipe data float:
#include <stdio.h> #include <float.h> int main(void) { printf("Ukuran memory untuk tipe data float: %d byte \n", sizeof(float)); printf("Ukuran memory untuk tipe data double: %d byte \n",sizeof(double)); printf("\n"); printf("Nilai minimal tipe data float: %E \n", FLT_MIN); printf("Nilai maksimal tipe data float: %E \n", FLT_MAX); printf("\n"); printf("Nilai minimal tipe data double: %E \n", DBL_MIN); printf("Nilai maksimal tipe data double: %E \n", DBL_MAX); printf("\n"); printf("Ketelitian float: %d digit\n", FLT_DIG ); printf("Ketelitian double: %d digit\n", DBL_DIG ); printf("\n"); return 0; }
Dengan kode program ini, kita bisa melihat informasi seputar tipe data float.
Dalam tutorial belajar bahasa C di Duniailkom kali ini kita sudah membahas banyak hal terkait tipe data float, mulai dari pengertian, jenis tipe data float, serta berbagai contoh kode program. Berikutnya akan dibahas tentang Pengertian Array dan Contoh Kode Program Tipe Data Array dalam bahasa C.
Bang pendeklarasianya pakek %lf bisa?
Yup bisa, itupun bisa dipakai. Secara spesifik %lf singkatan dari "long float", bisa dipakai untuk angka2 yang lebih besar.
dudi dudi dam dam
mantap euy
Mas, bisa jelaskan lebih detail perbedaaan type data float dan type data double ?
Sederhananya hanya di beda tingkat ketelitian dan jangkauan, dimana tipe data double bisa menampung angka yang lebih banyak dari pada tipe data float.
Kalau mau yang lebih detail, harus menggunakan contoh kasus dan sedikit perhitungan matematika. Bisa coba lanjut ke sini: https://stackoverflow.com/questions/2386772/what-is-the-difference-between-float-and-double
Biasanya di Flow Computer (Daniel S600) data modbusnya menggunakan type data float , dimana sesuai dengan uraian di atas hanya presisi sampai 6 digit / 8 digit.
sedangkan beberapa user (oil & gas company) menuntut pembacaaan di metering mereka lebih presisi, bisa sampai baca 15 digit.
untuk itu solusinya adalah mengganti data modbus dengan type data double (float64).
mohon di jelaskan lebih detail perbedaaan type data float dan type data double float (dari sisi penggunaan memory, kelebihan, kekurangan).
Terimakasih.
Halo admin ini bagus banget tutorial nya.
maaf saya mau tanya, kalau tipe data float saya masukkan formula ko hasilnya tetap 0 juga ya
contoh : float nilai = 15/100;
printf("%f", nilai);
nah ini hasilnya selalu 0.00, bukan 0.15
mohon pencerahannya thank you
Itu karena di bahasa C, operasi pembagian " / " akan melihat angka asal.
Agar hasilnya float (pecahan), kita harus menulis angka asal sebagai pecahan juga, seperti contoh berikut:
float nilai = 15.0/100.0;
printf("%f", nilai); // 0.150000
Contoh kasusnya nanti juga akan di bahas di Part tentang operator matematika di bahasa C: https://www.duniailkom.com/tutorial-belajar-c-jenis-jenis-operator-aritmatika-bahasa-c/
Bang, kapan harus menggunakan float dan kapan harus menggunakan double
mas
terkait format float
saya buat program mencari luas segitiga
0,5 * (alas*tinggi)
variabel deklarasinya : float luas_segitiga,alas,tinggi
tapi kalo saya masukan alas = 6 dan tinggi = 6 maka seharusnya dapat hasil 18 tapi ini dapatnya 180
Wow, ini bener-bener nambah pengetahuan saya sih tentang kode program tipe data float, mantap mas, terima kasih!
printf("sangat berguna")