> For the complete documentation index, see [llms.txt](https://davidwinalda94.gitbook.io/mastering-golang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://davidwinalda94.gitbook.io/mastering-golang/variabel.md).

# Variabel

Pada sesi ini akan dibahas bagaimana membuat sebuah variabel pada Go

Kita semua sudah memahami variabel adalah tempat kita menyimpan sebuah data. Pada Go kita dapat menggunakan variabel dengan beberapa aturan dan cara:

### Menggunakan keyword `var`

Kita dapat mendeklarasikan satu atau beberapa variabel menggunakan `var` dengan menambahkan tipe data di akhir. `var` dapat digunakan dalam scope Package dan Function.

![menggunakan var untuk mendeklarasikan variabel](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRVLngwmz30d8cy95Du%2F-MRVP1KomkxHcpGigyYu%2FScreen%20Shot%202021-01-20%20at%2022.25.17.png?alt=media\&token=849fe745-c13d-4591-b77d-186fd36096ad)

Dari kode di atas kita bisa lihat bahwa `var` dapat di deklarasikan pada scope Package yaitu `a, b, dan c` yang bertipe `int` dan Function yaitu `isUser` dan `isLogin` yang bertipe `bool` . Kita masih belum meng-assign nilai pada variabel-variabel tersebut sehingga nantinya nilai yang ditampilkan adalah default value atau biasa juga disebut zero value.

![output program menampilkan zero value dari beberapa variabel](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRVLngwmz30d8cy95Du%2F-MRVPbNNAqI6fZLejpsb%2FScreen%20Shot%202021-01-20%20at%2022.25.33.png?alt=media\&token=f4ea74c5-58ca-47f5-8bcf-d0fffe84f550)

{% hint style="info" %}
`0` for numeric types,

`false` for the boolean type, and

`""` (the empty string) for strings.
{% endhint %}

### Inisialiasi variabel menggunakan `var`

Kita dapat mengassign langsung suatu nilai pada saat mendeklarasikan variabel menggunakan `var` :

![inisialisasi variabel dengan sebuah nilai](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuCPl4FbDmC7As1RyD%2FScreen%20Shot%202021-01-25%20at%2022.41.49.png?alt=media\&token=a129a32a-4b0a-48ba-a1c8-1734b7448ae3)

Jika program di atas dijalankan maka akan terlihat output seperti berikut ini:

![output program menampilkan nilai dari variabel](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuCam6nNkDPCaxDcie%2FScreen%20Shot%202021-01-25%20at%2022.41.32.png?alt=media\&token=4b646bc0-0626-4754-8d55-0d74b9e2b449)

### Short Variable Declaration

Kita juga bisa menggunakan short syntax dalam membuat sebuah variabel menggunakan `:=` . Namun ini hanya berlaku pada scope `function` dan tidak bisa digunakan pada scope `package` .

![Syntax := tidak dapa digunakan di luar scope function](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuEOB13YtSf5b4pUkW%2FScreen%20Shot%202021-01-25%20at%2022.49.24.png?alt=media\&token=f333b4a1-4677-4117-94a9-b07a7a8e7493)

![Tampilan error pada output program](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuEaP0uW8x3QCPXdA0%2FScreen%20Shot%202021-01-25%20at%2022.49.42.png?alt=media\&token=bbeb5e45-6e75-40e7-bf4f-7e481a376f75)

Jadi gunakan short syntax pada scope function seperti ini:

![Syntax := pada scope function](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuEk-MRnZu64DwQRIH%2FScreen%20Shot%202021-01-25%20at%2022.50.07.png?alt=media\&token=b70dd9b9-7e61-4e2e-9c3b-c6d1a6155502)

![Output program menampilkan nilai variabel](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRu52SLJsL57KKrqYsN%2F-MRuEra4ckirbDv02IE_%2FScreen%20Shot%202021-01-25%20at%2022.50.24.png?alt=media\&token=e48776a6-25bc-4a28-b173-ebaf9f725b54)
