Skip to content

Tipe Data Bawaan Go Lang

Tipe data bawaan golang;

  • Integer
  • String

Integer

Integer pada Go dapat didefinisikan besarannya, seperti int8, int16 ,uint8, uint16 dst. Dalam memilih tipe data khususnya integer dilandasi pada kebutuhannya.

  1. Jika ukurannya dapat ditentukan batasnya, maka gunakan int diikut dengan besaranya, contoh uint8 cocok untuk tipe data yang menampung besaran warna, 0-255.

  2. Jika mengembangkan fungsi yang harus menerima semua tipe integer, maka menggunakan Generic Type Parameter adalah pilihan yang paling tepat.

ch2_predeclared_type

package main

import "fmt"

func main() {
    fmt.Println(exampleBaseAritmatika())
}
package main

func exampleBaseAritmatika() uint8 {

    var nilai_1 uint8 = 20
    var nilai_2 uint8 = 30

    return nilai_1 + nilai_2
}

String

String pada GO Lang adalah immutable, kita tidak dapat mengganti nilai dari variable string namun kita dapat mengisi ulang varible.

ch2_predeclared_type

package main

func exmapleStringResigned() string {

    nilai_1 := "Farras"
    // nilai_1 := "Faris" # You can't do this
    // nilai_1[0] = "P" # You can't do this

    nilai_1 = "Faris" // # You can do this

    return nilai_1
}

Type Conversion

GO tidak mengijinkan "automotic type promotion" dan mengharuskan "type convetion".

ch2_predeclared_type

package main

import "fmt"

var nilai1 int8 = 10
var nilai2 float64 = 17.54321

func learnTypeConversion() {
    var sum1 float64 = float64(nilai1) + nilai2
    var sum2 uint8 = uint8(nilai1) + uint8(nilai2)
    var sum3 uint8 = sum2 + uint8(nilai1)

    fmt.Printf("Sum1 : %f\nSum2 : %d\nSum3 : %d\n", sum1, sum2, sum3)
}

Namun uniknya Go Lang mengijinkan integer literal pada tipe data yang berbeda.

ch2_predeclared_type

func learnAdditionLiteral() {
    var sum4 float32 = 20.1 + 2
    fmt.Printf("Sum 4 : %f\n", sum4)
}