package main

import (
	"fmt"
	"math"
)

func main() {
	var (
		aktif    bool
		nama     string
		jumlah   int
		rasio    float64
		ptr      *int
		daftar   []int
		indeks   map[string]int
		fungsi   func()
		saluran  chan int
		pengguna struct {
			Nama string
			Umur int
		}
	)
	fmt.Printf("bool    : %v\n", aktif)
	fmt.Printf("string  : %q\n", nama)
	fmt.Printf("int     : %v\n", jumlah)
	fmt.Printf("float64 : %v\n", rasio)
	fmt.Printf("*int    : %#v\n", ptr)
	fmt.Printf("[]int   : %#v\n", daftar)
	fmt.Printf("map     : %#v\n", indeks)
	fmt.Printf("func    : %#v\n", fungsi)
	fmt.Printf("chan    : %#v\n", saluran)
	fmt.Printf("struct  : %#v\n", pengguna)
	fmt.Println("int8    :", math.MinInt8, "sampai", math.MaxInt8)
	fmt.Println("uint8   : 0 sampai", math.MaxUint8)
	fmt.Println("int16   :", math.MinInt16, "sampai", math.MaxInt16)
	fmt.Println("uint16  : 0 sampai", math.MaxUint16)
	fmt.Println("int32   :", math.MinInt32, "sampai", math.MaxInt32)
	fmt.Println("uint32  : 0 sampai", math.MaxUint32)
	fmt.Println("int64   :", math.MinInt64, "sampai", math.MaxInt64)
	fmt.Println("float64 :", math.MaxFloat64)
}
