Blog

Variable dalam Go Language (Golang)

 

Variable dalam Go Language (Golang)

Golang     3 months ago


Apa itu variabel?

Variabel adalah nama yang diberikan ke alamat memori untuk menyimpan nilai tipe tertentu. Ada berbagai sintaks untuk mendeklarasikan variabel dalam go.

Mendeklarasikan satu variabel

var name type adalah sintaks untuk mendeklarasikan variabel tunggal.

package main

import "fmt"

func main() {  
    var usia int // deklarasi variable
    fmt.Println("usia saya adalah: ", usia)
}

Pernyataan var usia int menyatakan suatu variabel bernama usia dengan tipe int. Kita belum menetapkan nilai apa pun untuk variabel tersebut. Jika variabel tidak diberi nilai apa pun, go secara otomatis memulainya dengan nilai nol dari tipe variabel. Dalam hal ini usia diberikan nilai 0. Jika Anda menjalankan program ini, Anda dapat melihat output berikut:

usia saya adalah: 0

Suatu variabel dapat ditugaskan untuk setiap nilai dari jenisnya. Dalam script sederhana di atas dapat diberikan nilai integer apa pun.

package main

import "fmt"

func main() {  
    var usia int // deklarasi variable
    fmt.Println("usia saya adalah: ", usia)
    usia = 29 //penugasan
    fmt.Println("usia saya adalah: ", usia)
    usia = 54 //penugasan
    fmt.Println("usia baru saya adalah: ", usia)
}

dari progam diatas akan mendapatkan output:

usia saya adalah: 0
usia saya adalah: 29
usia baru saya adalah: 54

Mendeklarasikan variabel dengan nilai awal

Sebuah variabel juga dapat diberi nilai awal ketika dideklarasikan.

var name type = initialvalue adalah sintaks untuk mendeklarasikan variabel dengan nilai awal.

package main

import "fmt"

func main() {  
    var usia int = 29 // deklarasi variable dengan nilai

    fmt.Println("usia saya adalah: ", usia)
}

Dalam program di atas, usia adalah variabel dengan tipe integer dan memiliki nilai awal 29. Jika Anda menjalankan program di atas, Anda dapat melihat keluaran berikut.

usia saya adalah: 29

Type inference

Jika suatu variabel memiliki nilai awal, Go secara otomatis akan dapat menyimpulkan jenis variabel yang menggunakan nilai awal tersebut. Oleh karena itu jika suatu variabel memiliki nilai awal, jenis dalam deklarasi variabel dapat dihilangkan.

Jika variabel dideklarasikan menggunakan syntax var name = initialvalue, Go akan secara otomatis menyimpulkan jenis variabel tersebut dari nilai awal.

Dalam contoh berikut, Anda dapat melihat bahwa tipe int dari variabel usia telah dihapus dalam baris no. 6. Karena variabel memiliki nilai awal 29, pergi dapat menyimpulkan bahwa dari tipe integer.

Deklarasi berbagai variabel

Beberapa variabel dapat dideklarasikan dalam satu pernyataan.

var name1, name2 type = initialvalue1, initialvalue2 adalah sintaks untuk deklarasi variabel ganda.

package main

import "fmt"

func main() {  
    var lebar, tinggi int = 100, 50 //deklarasi multiple variable

    fmt.Println("lebar: ", lebar, "tinggi: ", tinggi)
}

Tipe ini dapat dihilangkan jika variabel memiliki nilai awal. Program di bawah ini menyatakan beberapa variabel menggunakan inferensi tipe.

package main

import "fmt"

func main() {  
    var lebar, tinggi = 100, 50 //"int" sebagai type datanya

    fmt.Println("lebar: ", lebar, "tinggi: ", tinggi)
}

Program di atas akan mencetak lebar: 100 tinggi: 50 sebagai output.

Jika nilai awal tidak ditentukan untuk lebar dan tinggi, mereka akan memiliki 0 yang ditetapkan sebagai nilai awal mereka.

Deklarasi Singkat Variable

Go juga menyediakan cara lain yang ringkas untuk mendeklarasikan variabel. Ini dikenal dengan istilah "short hand declaration" dan menggunakan operator ":=".

name := initialvalue adalah sintaks singkat untuk mendeklarasikan variabel.

package main

import "fmt"

func main() {  
    nama, usia := "wisnu", 29 //ini bagian short hand declaration

    fmt.Println("nama saya: ", nama, "usia: ", usia)
}

Deklarasi dengan cara ini membutuhkan nilai awal untuk semua variabel di sisi kiri penugasan. Program berikut ini akan melemparkan kesalahan tidak dapat menetapkan 1 nilai menjadi 2 variabel. Ini karena usia belum diberi nilai.

package main

import "fmt"

func main() {  
    nama, usia := "wisnu" //error

    fmt.Println("nama saya: ", nama, "usia: ", usia)
}

Sintak dengan cara ini hanya dapat digunakan ketika setidaknya satu variabel di sisi kiri := baru dideklarasikan. Pertimbangkan program berikut,

package main

import "fmt"

func main() {  
    a, b := 20, 30 // deklarasi variable a dan b
    fmt.Println("a adalah: ", a, "b adalah: ", b)
    b, c := 40, 50 // b telah dideklarasikan tapi c belum
    fmt.Println("b adalah: ", b, "c adalah: ", c)
    b, c = 80, 90 // menetapkan nilai baru ke variabel yang sudah dideklarasikan b dan c
    fmt.Println("perubahan b ", b, "c adalah: ", c)
}

Dalam program di atas, di baris no. 8, b telah dinyatakan tetapi c baru dideklarasikan dan karenanya ia bekerja dan output script diatas:

a adalah: 20 b adalah: 30
b adalah: 40 c adalah: 50
perubahan b 80 c adalah: 90

Sedangkan jika kita menjalankan program di bawah ini,

package main

import "fmt"

func main() {  
    a, b := 20, 30 //a dan b dideklarasikan
    fmt.Println("a: ", a, "b: ", b)
    a, b := 40, 50 //error, karena tidak ada variabel baru
}

Error terjadi karena tidak ada variabel baru di sisi kiri := dikarenakan kedua variabel a dan b telah dinyatakan dan tidak ada variabel baru di sisi kiri :=

Variabel juga dapat diberi nilai yang dihitung selama waktu proses. Yuk cek program berikut,

package main

import (  
    "fmt"
    "math"
)

func main() {  
    a, b := 145.8, 543.8
    c := math.Min(a, b)
    fmt.Println("nilai terkecil adalah: ", c)
}

Dalam program di atas, nilai c dihitung selama waktu proses untuk membandingkan nilai yang lebih kecil antara a dan b. Program di atas akan dicetak

nilai terkecil adalah: 145.8

Karena Go bersifat "strongly typed", variabel yang dideklarasikan sebagai milik satu jenis tidak dapat diberi nilai jenis lain. Program berikut contoh betapa strict-nya Go.

package main

func main() {  
    usia := 29      // usia dengan type int
    usia = "wisnu" // error karena kita telah menggunakan nama variabel usia dengan type data integer
}

OK sekian dulu penjelasan Variabel dalam Go. Cukup mudah bukan? Semoga bermanfaat.


CARI ARTIKEL
Card image cap
AUTHOR: Wisnu

"Client-facing" person. His goal - help clients/projects succeed and always coding.


Lihat Project Kami | Bertemu Tim Kami

Tertarik berkerja dengan kami? Email disini:
wisnu@tipa.co.id