# 1. Memulai Go
## 1.1 Instalasi Go
### Sistem Operasi Windows
Download installer Go di http://go.dev/doc/install dan pilih Windows.
Ikuti langkah berikut:
1. Buka file MSI yang Anda download dan ikuti prompt-prompt pertanyaan untuk menginstalasi Go.
Secara default, isntaller akan menginstal Go ke `Program Files` atau `Program Files (x86)`. Anda dapat mengubah lokasi sesuai yang dibutuhkan. Setelah instalasi, Anda perlu menutup dan membuka ulang window command prompt sehingga perubahan environment yang dilakukan oleh installer dimuat ulang.
2. Periksa instalasi GO Anda.
- Klik menu Start
- Pada boks search dalam menu, ketik `cmd`, lalu tekan `Enter`.
- Pada window Command Prompt yang muncul, ketik perintah berikut:
`$ go version`
- Pastiakn output dari perintah di atas mencetak versi Go yang terinstalasi.
3. Kode Go.
Anda telah siap untuk menuliskan program dalam bahasa Go.
## 1.2 Program Go Pertama
Seperti ketika memulai belajar bahasa-bahasa pemrograman lainnya, kita akan membuat sebuah program yang mencetak "Hello, World!" ke layar.
```go=
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
```
Penjelasan program:
- `package main`, adalah module titik masuk program.
- `import "fmt"`. adalah package standar untuk input dan output.
- `func main`, adalah fungsi titik masuk, dimana program Anda memulai.
Untuk menjalankan program di atas, ketikkan
```
go run <file>.go
```
## Variabel
## Fungsi `Fprintf`
Fungsi `Fprintf` digunakan untuk mencetak string terformat ke tujuan output yang kita inginkan.
`Fprintf` berbeda dengan fungsi `Fprint`, dimana ia mendukung format specifier custom dan menggunakan string format untuk membentuk string output.
### Signature `Fprintf`
Signature dari fungsi `Fprintf`:
```go
func Fprintf(w io.Writer, format string, a ...interface()) (n int, err error)
```
- `dest`: tujuan dari cetak output string terformat. Ini harus berupa sebuah object dari tipe `io.Writer`.
Object `io.Write`, secara sederhana, adalah object-object yang mempunyai method built-in `write`.
- `format`: argumen ini adalah tipe string yang merepresentasikan string yang mengandung specifier yang digunakan oleh `Fprintf` untuk memformat output string final.
- `a ...interface()`: daftar semua argumen yang ingin diformat dan dicetak.
### Nilai Return
Fungsi `fmt.Fprintf` mengembalikan dua nilai:
- `count`: banyak byte yang dituliskan ke output standard.
- `err`: error (jika ada) yang dilempar saat eksekusi fungsi.
### Specifier
- `%s`: untuk memprint string
-