> 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/tipe-data.md).

# Tipe Data

Pada sesi ini, kita akan membahas tipe data apa saja yang ada pada Go

Seperti bahasa pemograman lainnya, Go memiliki beberapa tipe data yaitu:

* Numerik non desimal (int)
* Numerik desimal (float)
* Boolean (bool)
* String (string)
* Zero Values

### Numerik Non Desimal

Pada Numerik Non Desimal, terdapat 2 tipe data:

* `uint` tipe data untuk bilangan cacah (bilangan positif).
* `int`, tipe data untuk bilangan bulat (bilangan negatif dan positif).

Dari kedua tipe di atas sebenarnya masih banyak lagi tipe data yang ada sesuai cakupan nilai bilangan. Namun pada dokumentasi Go direkomendasikan langsung menggunakan `int` saja kecuali Kita memiliki alasan atau kasus tertentu.

![contoh deklarasi tipe data integer](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuKX-Rk1seWb-gBdQv%2FScreen%20Shot%202021-01-25%20at%2023.17.05.png?alt=media\&token=04d6dd77-be0b-4c39-a1d8-713b605ad021)

![output program menampilkan nilai integer dari variabel age](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuKvlRWdwHqI8Gs0A6%2FScreen%20Shot%202021-01-25%20at%2023.17.24.png?alt=media\&token=fb5a774c-2a13-4dfe-8e2c-afe7314d6357)

### Numerik Desimal

Pada numerik desimal terdapat 2 tipe data yaitu:

* `float32`&#x20;
* `float64`&#x20;

Keduanya berbeda dari segi lebar cakupan nilai desimal yang ditampung.

![Menggunakan tipe data float](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuOh9KxU7_NVRVzyIR%2FScreen%20Shot%202021-01-25%20at%2023.34.59.png?alt=media\&token=525d07b5-09f8-4cd6-be0b-1f5149744599)

![output program menampilkan kedua nilai float (desimal)](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuOpQ5TR5W1q0_bfqW%2FScreen%20Shot%202021-01-25%20at%2023.34.32.png?alt=media\&token=0850e5c8-23b0-47ab-b32c-7d1a861e25eb)

### Boolean

Tipe data Boolean hanya berisi 2 nilai yaitu `true` dan `false` . Biasanya digunakan dalam mengecek suatu kondisi.

![Menggunakan tipe data Boolean](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuPfB3bWq0HElIruc2%2FScreen%20Shot%202021-01-25%20at%2023.39.54.png?alt=media\&token=1398f213-8f6a-4615-9453-fcad03dc4c25)

![Output program menampilkan nilai Boolean](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuPmqSP2utE8qhySMv%2FScreen%20Shot%202021-01-25%20at%2023.39.41.png?alt=media\&token=5cb20990-e68b-45ee-a602-b1a27df6725b)

### String

String adalah tipe data kumpulan karakter yang diapit oleh double quotes (`""` ).

Selain menggunakan double quote, deklarasi string juga bisa menggunakan tanda *backticks* (`` ` ``), tanda ini terletak di sebelah kiri tombol 1. Keistimewaan string yang dideklarasikan menggunakan backtics adalah membuat semua karakter di dalamnya **tidak di escape**, termasuk `\n`, tanda petik dua dan tanda petik satu, baris baru, dan lainnya. Semua akan terdeteksi sebagai **string**.

![Deklarasi string menggunakan double quotes dan backticks](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuSqGsq0gmG4cPRgRL%2FScreen%20Shot%202021-01-25%20at%2023.52.38.png?alt=media\&token=c931f089-ac60-4005-84dc-3501e48eeb98)

![Output program menampilkan nilai string](https://2969676661-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQaVepPFjuLoNjbs6f8%2F-MRuEyxJeeS3qoigz6wj%2F-MRuT2eSns1ATtMRN2BK%2FScreen%20Shot%202021-01-25%20at%2023.52.17.png?alt=media\&token=0f3c84a2-577d-46a3-858c-5e58b57d72c4)

### Zero Values

Variabel yang dideklarasikan tanpa sebuah nilai, akan memiliki nilai default yang biasa disebut zero value.

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

`false` for the boolean type, and

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

![Deklarasi variabel tanpa sebuah nilai](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)

![Output program dari nilai default 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)
