Apa Perbedaan float32 dan float64 pada go

| | | Golang - Go Language
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

  1. Gunakan go fmt — Format kode secara otomatis mengikuti standar Go, tidak perlu debat soal style.
  2. Error handling eksplisit — Go menangani error secara eksplisit dengan if err != nil, jangan diabaikan.
  3. Gunakan goroutine dengan bijakgo func() untuk concurrency, tapi pastikan pakai WaitGroup atau channel untuk sinkronisasi.
  4. Strukture project — Ikuti struktur standar Go: cmd/, internal/, pkg/, api/.
  5. Dokumentasi dengan comments — Comments sebelum fungsi otomatis menjadi dokumentasi dengan go doc.

Go adalah bahasa yang sederhana tapi powerful — fokus pada produktivitas dan performa.

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.

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.