Apa Perbedaan float32 dan float64 pada go

Pernah bingung kapan harus pakai float32 dan kapan float64 dalam program Go? Keduanya sama-sama tipe untuk bilangan desimal, tapi presisinya beda jauh.
Artikel ini menjelaskan perbedaan keduanya dari sisi presisi, rentang nilai, memori, sampai contoh kode yang langsung bisa dicoba.
Pengenalan
Sebelum membahas lebih jauh tentang perbedaan antara float32 dan float64 pada Go, mari kita bahas terlebih dahulu tentang tipe data float pada umumnya. Float adalah jenis tipe data yang digunakan untuk merepresentasikan bilangan real dalam program komputer. Ada beberapa jenis tipe data float yang digunakan dalam bahasa pemrograman, seperti float32, float64, dan sebagainya.
Pada Go, float32 dan float64 merupakan dua tipe data float yang tersedia. Kedua tipe data ini digunakan untuk merepresentasikan bilangan real dengan presisi berbeda.
Perbedaan antara float32 dan float64
Berikut adalah perbedaan utama antara float32 dan float64 pada Go:
Presisi
Float32 merepresentasikan bilangan real dengan presisi 32-bit, sementara float64 merepresentasikan bilangan real dengan presisi 64-bit. Artinya, float64 dapat merepresentasikan bilangan real dengan lebih banyak digit dibelakang koma dibandingkan dengan float32.
Rentang Nilai
Karena float64 menggunakan presisi 64-bit, ia memiliki rentang nilai yang lebih besar dibandingkan dengan float32. Float32 memiliki rentang nilai sekitar 10^-38 hingga 10^38, sedangkan float64 memiliki rentang nilai sekitar 10^-308 hingga 10^308.
Penggunaan Memori
Float64 menggunakan dua kali lipat jumlah bit untuk merepresentasikan bilangan real dibandingkan dengan float32. Karena itu, float64 membutuhkan lebih banyak ruang di memori komputer dibandingkan dengan float32.
Performa
Secara umum float32 bisa lebih cepat pada operasi yang banyak memakai memori atau GPU, karena ukurannya setengah float64. Namun di CPU modern perbedaan kecepatannya sering tidak terasa, dan untuk sebagian besar aplikasi Go, float64 jadi pilihan default. Prioritaskan float32 hanya jika kamu benar-benar perlu menghemat memori (misal array berukuran besar).
Contoh Kode Go
Berikut contoh langsung perbedaan di Go:
package main
import "fmt"
func main() {
var f32 float32 = 0.1
var f64 float64 = 0.1
fmt.Println(f32 + f32 + f32) // 0.30000001 (presisi berkurang)
fmt.Println(f64 + f64 + f64) // 0.30000000000000004
}
Perhatikan hasil penjumlahan 0.1 tiga kali: float32 kehilangan presisi lebih cepat, hasilnya 0.30000001. float64 masih menampilkan desimal lebih panjang. Untuk perbandingan tepat atau akumulasi bonus/saldo, float64 jauh lebih aman.
Tips Golang
- Gunakan
go fmt— Format kode secara otomatis mengikuti standar Go, tidak perlu debat soal style. - Error handling eksplisit — Go menangani error secara eksplisit dengan
if err != nil, jangan diabaikan. - Gunakan goroutine dengan bijak —
go func()untuk concurrency, tapi pastikan pakai WaitGroup atau channel untuk sinkronisasi. - Strukture project — Ikuti struktur standar Go:
cmd/,internal/,pkg/,api/. - Dokumentasi dengan comments — Comments sebelum fungsi otomatis menjadi dokumentasi dengan
go doc.
Go adalah bahasa yang sederhana tapi powerful — fokus pada produktivitas dan performa.
- Cara Upload Project ke Github: Panduan Lengkap bagi Pemula
- Cara Install Golang terbaru di Windows
- Perintah Dasar Git Versi Control: Belajar Mengelola Proyek dengan Git
FAQ
Apa perbedaan float32 dan float64 dalam Go?
float32 memakai 32 bit, float64 64 bit. float64 punya rentang lebih besar (sampai ~10^308 vs ~10^38) dan presisi desimal lebih tinggi, sehingga lebih aman untuk perhitungan yang membutuhkan akurasi.
Kapan pakai float32?
Gunakan float32 saat kamu perlu menghemat memori, misalnya untuk array data besar atau komputasi GPU. Untuk kebanyakan aplikasi, float64 lebih disarankan karena presisinya lebih baik.
Apa contoh float64 vs float32 yang menunjukkan perbedaannya?
Jumlahkan 0.1 tiga kali: hasil float32 menjadi 0.30000001 (presisi berkurang), sedangkan float64 menghasilkan 0.30000000000000004. Contoh lengkapnya ada di bagian Contoh Kode Go di atas.
Apakah float64 lebih lambat dari float32?
Tidak selalu. Di CPU modern perbedaannya sering tidak terasa. float32 baru terasa lebih cepat di skenario yang memakai banyak memori atau GPU, karena ukurannya setengah.
Kesimpulan
Float32 dan float64 adalah dua tipe data float yang tersedia pada Go. Kedua tipe data ini memiliki perbedaan dalam hal presisi, rentang nilai, penggunaan memori, dan performa. Pemilihan tipe data yang tepat sangat penting dalam mengoptimalkan kinerja program, tergantung pada kebutuhan aplikasi yang dibuat. Oleh karena itu, sebagai programmer, anda perlu mempertimbangkan perbedaan antara float32 dan float64 pada Go sebelum memilih tipe data yang tepat untuk digunakan.
Dengan mengetahui perbedaan antara float32 dan float64 pada Go, anda dapat meningkatkan kinerja program dan menghasilkan hasil yang lebih akurat dalam perhitungan bilangan real. Sekarang, anda sudah memahami apa perbedaan float32 dan float64 pada Go!
Pertanyaan yang Sering Diajukan
Apa perbedaan float32 dan float64 dalam Go?
float32 memakai 32 bit, float64 64 bit. float64 punya rentang lebih besar (sampai ~10^308 vs ~10^38) dan presisi desimal lebih tinggi, sehingga lebih aman untuk perhitungan yang membutuhkan akurasi.
Kapan pakai float32?
Gunakan float32 saat kamu perlu menghemat memori, misalnya untuk array data besar atau komputasi GPU. Untuk kebanyakan aplikasi, float64 lebih disarankan karena presisinya lebih baik.
Apa contoh float64 vs float32 yang menunjukkan perbedaannya?
Jumlahkan 0.1 tiga kali: hasil float32 menjadi 0.30000001 (presisi berkurang), sedangkan float64 menghasilkan 0.30000000000000004.
Apakah float64 lebih lambat dari float32?
Tidak selalu. Di CPU modern perbedaannya sering tidak terasa. float32 baru terasa lebih cepat di skenario yang memakai banyak memori atau GPU.

