Cara Ubah String Jadi Integer di Go (Dengan Aman)
Waktu ngoding Go, sering banget saya ketemu kasus di mana angka datangnya dalam bentuk string. Misalnya: input dari user, data dari file, atau respons API. Nah, supaya bisa diolah (ditambah, dikali, atau dicek logikanya), saya harus ubah dulu string itu jadi integer.
Untungnya, Go udah nyediain fungsi-fungsi siap pakai lewat paket strconv
. Mari kita bahas cara paling sering dipakai.
1. Pakai strconv.Atoi()
Ini cara paling simpel. Atoi
singkatan dari ASCII to integer. Fungsi ini nerima string, balikin integer, plus error
kalau parsing gagal.
Contoh:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.Atoi(str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Angkanya adalah:", num)
}
Kalau string berisi angka valid, hasilnya oke. Tapi kalau ada karakter aneh (misalnya "12a"
), dia bakal balikin error. Jadi jangan lupa dicek.
2. Pakai strconv.ParseInt()
Butuh lebih fleksibel? Misalnya mau parsing angka dengan basis lain (biner, heksadesimal) atau atur ukuran bit tertentu (int8, int32, dst).
Gunakan strconv.ParseInt()
.
Contoh:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.ParseInt(str, 10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Angkanya adalah:", num)
}
Parameternya:
"123"
→ string yang mau diubah10
→ basis (pakai 10 untuk desimal, 2 untuk biner, 16 untuk heksa, dll)0
→ ukuran bit (0 = otomatis sesuaiint
di sistem)
Hasil dari ParseInt
berupa int64
, jadi kalau butuh tipe lain, tinggal cast.
3. Pakai strconv.ParseUint()
Kalau angkanya unsigned (nggak mungkin negatif), gunakan ParseUint()
. Caranya sama persis dengan ParseInt()
, cuma hasilnya berupa uint64
.
Contoh:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.ParseUint(str, 10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Unsigned integer:", num)
}
Ringkasnya
Atoi()
→ jalan cepat kalau cuma butuhint
.ParseInt()
→ buat kontrol lebih, termasuk basis dan ukuran bit.ParseUint()
→ khusus angka positif tanpa tanda minus.
Yang paling penting: jangan abaikan error. Soalnya input dari luar sering nggak bisa dipercaya. Dengan nge-handle error, programmu jadi lebih kuat dan aman.