# Cara Konversi Tipe Data di Golang

untuk melakukan konversi tipe data di Go (Golang) dari string ke int, string ke float, int ke string, dan float ke string.

#### Konversi String ke Int:

```go
package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "123"
	// Konversi string ke int menggunakan strconv.Atoi
	num, err := strconv.Atoi(str)
	if err != nil {
		fmt.Println("Gagal mengonversi string ke int")
	} else {
		fmt.Println("Nilai integer:", num)
	}
}
```

#### Konversi String ke Float:

```go
package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "123.45"
	// Konversi string ke float menggunakan strconv.ParseFloat
	num, err := strconv.ParseFloat(str, 64)
	if err != nil {
		fmt.Println("Gagal mengonversi string ke float")
	} else {
		fmt.Println("Nilai float:", num)
	}
}
```

#### Konversi Int ke String:

```go
package main

import (
	"fmt"
	"strconv"
)

func main() {
	num := 123
	// Konversi int ke string menggunakan strconv.Itoa
	str := strconv.Itoa(num)
	fmt.Println("Nilai string:", str)
}
```

#### Konversi Float ke String:

```go
package main

import (
	"fmt"
	"strconv"
)

func main() {
	num := 123.45
	// Konversi float ke string menggunakan fmt.Sprintf atau strconv.FormatFloat
	str := strconv.FormatFloat(num, 'f', 2, 64) // 'f' untuk format desimal, 2 untuk jumlah angka di belakang koma, 64 untuk bit size
	fmt.Println("Nilai string:", str)
}
```

#### 1. `strconv.Atoi(str string) (int, error)`:

`strconv.Atoi` digunakan untuk mengonversi string ke tipe data integer (`int`). Fungsi ini mengambil satu parameter string dan mengembalikan dua nilai: nilai integer yang dihasilkan dari string tersebut, dan nilai error jika konversi gagal. Misalnya:

```go
num, err := strconv.Atoi("123")
```

Variabel `num` akan memiliki nilai `123` jika konversi berhasil, dan jika gagal, variabel `err` akan berisi pesan kesalahan.

#### 2. `strconv.ParseFloat(s string, bitSize int) (float64, error)`:

`strconv.ParseFloat` digunakan untuk mengonversi string ke tipe data float. Fungsi ini mengambil dua parameter: string yang akan dikonversi dan ukuran bit (`bitSize`) dari tipe data float yang diinginkan. Fungsi ini mengembalikan dua nilai: nilai float yang dihasilkan dari string tersebut, dan nilai error jika konversi gagal. Misalnya:

```go
num, err := strconv.ParseFloat("123.45", 64)
```

Variabel `num` akan memiliki nilai `123.45` jika konversi berhasil, dan jika gagal, variabel `err` akan berisi pesan kesalahan.

#### 3. `strconv.Itoa(i int) string`:

`strconv.Itoa` digunakan untuk mengonversi tipe data integer (`int`) ke tipe data string. Fungsi ini mengambil satu parameter integer dan mengembalikan nilai string yang merepresentasikan nilai integer tersebut. Misalnya:

```go
str := strconv.Itoa(123)
```

Variabel `str` akan memiliki nilai `"123"` sebagai string.

#### 4. `strconv.FormatFloat(f float64, fmt byte, prec, bitSize int) string`:

`strconv.FormatFloat` digunakan untuk mengonversi tipe data float ke tipe data string dengan kontrol terhadap format dan presisi. Fungsi ini mengambil empat parameter: nilai float yang akan dikonversi, format (biasanya `'f'` untuk format desimal), presisi (jumlah angka di belakang koma), dan ukuran bit dari tipe data float. Misalnya:

```go
str := strconv.FormatFloat(123.45, 'f', 2, 64)
```

Variabel `str` akan memiliki nilai `"123.45"` sebagai string dengan dua angka di belakang koma.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zakimaliki.gitbook.io/golang/cara-konversi-tipe-data-di-golang.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
