Tipe Data Dasar & Konversi

Mengenal int, float64, string, bool, rune dan konversi tipe eksplisit.

Part 4 dari 23 ± 30 menit Gratis

Tipe data bawaan

TipeContohKeterangan
---------
int42, -7Bilangan bulat (ukuran menyesuaikan mesin, umumnya 64-bit)
float643.14Bilangan desimal presisi ganda
string"Go"Teks (tidak bisa diubah setelah dibuat)
booltrue, falseBenar atau salah
rune'世'Satu karakter Unicode (alias int32)
byte651 byte (alias uint8)

Ada pula varian ber-ukuran: int8, int16, int32, int64, uint (tanpa tanda minus), float32, dan lainnya. Untuk kebanyakan kasus pakai saja int dan float64.

Go tidak mengubah tipe secara otomatis

Pada banyak bahasa 7 / 2.0 langsung berhasil. Di Go, int dan float64 tidak boleh dicampur:

a := 7        // int
b := 2.0      // float64
// c := a / b  // ERROR: mismatched types

Kamu harus mengonversi secara eksplisit dengan NamaTipe(nilai):

c := float64(a) / b    // 3.5

Pembagian bilangan bulat

fmt.Println(7 / 2)     // 3   (pecahan dibuang)
fmt.Println(7 % 2)     // 1   (sisa bagi)
fmt.Println(7.0 / 2)   // 3.5

Konversi desimal ke int memotong

f := 3.9
fmt.Println(int(f))    // 3   (dipotong, bukan dibulatkan jadi 4!)

Catatan: menulis langsung int(3.9) justru error kompilasi karena Go tidak mau memotong konstanta secara diam-diam. Simpan dulu ke variable.

Konversi dengan strconv

string dan angka tidak bisa dikonversi dengan string(65) (hasilnya huruf "A"). Gunakan paket strconv:

n, err := strconv.Atoi("123")   // string -> int
s := strconv.Itoa(456)           // int -> string

Atoi mengembalikan dua nilai: hasil dan error (bila teks bukan angka).

Mengecek tipe

fmt.Printf("%T\n", 3.14)   // float64

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X