Mastering Golang
  • Tentang Go
  • Instalasi Go
  • Membuat Project Go
  • Go Run & Go Build
  • Apa itu Package pada Go
  • Imports dan Exports
  • Variabel
  • Tipe Data
  • Konstanta dan Komentar
  • Operator
  • Type Conversion
  • Kondisional - IF
  • Kondisional - Switch Case
  • Looping
  • Array
  • Array - Looping
  • Slices
  • Pointer
  • Map
  • Fungsi
  • Struct
  • Method
  • Interface
  • Interface Kosong
  • Concurrency
  • Concurrency - Goroutines
  • Channel
  • Buffered Channel
  • Channel - Close and Range
  • Channel - Direction
  • Channel - Select
  • Concurrency - WaitGroup
  • Concurrency - Mutex
  • JSON Data
  • SQL
  • URL Parsing
  • GO Vendor
  • Unit Testing
  • Go Basic for Web Development
    • Aplikasi Web pada Go - Hello World
    • Root Routing
    • Query String
    • Web Service API Server
    • HTTP Basic Auth
    • RESTFul API dengan Gin dan Gorm
Powered by GitBook
On this page
  • Converting Number Types
  • Converting with String

Was this helpful?

Type Conversion

Pada sesi ini akan dibahas bagaimana cara mengkonversi suatu tipe data ke tipe data lain

PreviousOperatorNextKondisional - IF

Last updated 4 years ago

Was this helpful?

Pada saat membuat suatu aplikasi, ada suatu momen dimana kita butuh mengkonversi suatu tipe data ke tipe data lain misalnya kita ingin menampilkan nilai desimal (float) dari suatu variabel yang tipe datanya adalah bilangan non desimal (integer).

Converting Number Types

Seperti yang sudah dibahas pada sesi dimana pada Go terdapat 2 tipe data numerik yaitu integer dan floating numbers.

Converting between integer types

Pada integer terdapat beberapa tipe lagi seperti int , int8 , int16 , int32 , dan int64 . Berikut ini tabel range nilai yang membedakan dari beberapa tipe integer di atas:

Tipe Data

Nilai Minimum

Nilai Maksimum

int8

-128

127

int16

-32768

32767

int32

-2147483648

2147483647

int64

-9223372036854775808

9223372036854775807

Pada contoh di bawah ini kita akan menggunakan int8 untuk mendeklarasikan variabel dan nilai yang dapat ditampung:

Lalu bagaimana jika nilai variabel melebihi kapasitas range dari int8 ?

Kita bisa melihat bahwa akan muncul error pada output program jika nilai suatu variabel melebihi range nilai yang ditentukan.

Pada GO, untuk mengkonversi sebuah nilai menggunakan statement T(v) dimana T adalah tipe data dan v adalah nilai yang ingin dikonversikan.

T(v)

T : Tipe data

v : Nilai

Kita dapat melakukan konversi antar tipe integer seperti ini:

Untuk melihat tipe data yang digunakan pada suatu variabel kita dapat menggunakan fmt.Printf() dan T verbs. \n digunakan untuk membuat baris baru. Detail tentang fmt.Printf() akan kita bahas pada sesi lainnya.

Converting integer to float

Kita dapat melakukan konversi dari Integer ke Float dengan cara seperti berikut ini:

Pada kode di atas kita kembali menggunakan fmt.Printf() dengan %.2f untuk membuat nilai presisi pada desimal. Nilai %.2f bisa kita ganti menyesuaikan kebutuhan kita ingin menggunakan berapa banyak angka di belakang koma misalnya %.3f berarti outputnya akan menjadi 26.000 .

Mungkin kamu bertanya bagaimana jika menggunakan fmt.Println() ? Sayangnya kita tidak bisa menampilkan nilai desimal hasil konversi jika menggunakan fmt.Println() walaupun sebenarnya tipe datanya sudah berubah menjadi float64 .

Converting float to integer

Kita dapat melakukan konversi nilai Float ke dalam Integer seperti berikut ini:

Konversi Float ke dalam Integer akan memangkas nilai desimal tanpa mengukur presisi nilainya. Jadi jika ada nilai float 26.9 yang sebenarnya mendekati nilai 30 jika digenapi, hal ini tidak berlaku pada konversi.

Numbers Converted Through Division

Saat melakukan operasi numerik dua nilai Integer maka output yang didapatkan juga bernilai Integer.

Namun jika melakukan operasi nilai Integer dan Float, maka tipe data dari hasil operasi tersebut akan menjadi Float.

Converting with String

Contoh di bawah ini jika kita melakukan konversi dari nilai String ke dalam Integer:

Pada konversi String ke dalam Integer kita harus menambahkan variabel err dan juga melakukan kondisi pengecekan apakah nilai pada String yang ingin dikonversikan bernilai numerik atau teks. Jika numerik maka tidak akan terjadi error namun jika teks maka akan muncul Log error dan program akan berhenti.

Contoh jika nilai String yang ingin dikonversikan berisikan sebuah teks:

Untuk melakukan konversi pada string , Go meminta kita untuk menggunakan Internal Package . Function yang biasa digunakan yaitu Atoi (string to int) dan Itoa (int to string). Contoh di bawah ini kita melakukan konversi dari nilai Integer ke dalam String:

strconv
Tipe Data
Menggunakan tipe data int8 dan memasukkan nilai 100
Output program berjalan karena masih pada range yang tersedia pada int8
Menggunakan tipe data int8 dan memasukkan nilai 129
Error pada output program karena nilai variabel melebihi range tipe data int8
Konversi variabel index dari tipe data int8 menjadi tipe data int32
Output program menampilkan nilai dari variabel dan tipe datanya
Konversi integer ke dalam float
Output hasil konversi integer ke dalam float
Data type sudah berhasil dikonversikan namun tidak bisa menggunakan fmt.Println()
Konversi nilai Float ke dalam Integer
Output hasil konversi nilai Float ke dalam Integer
Melakukan operasi pembagian
Output program menghasilkan nilai Integer
Melakukan operasi pembagian nilai Float dan Integer
Output program menghasilkan nilai float64
Konversi nilai Integer ke dalam String
Output program sudah berhasil melakukan konversi
Konversi nilai String ke dalam Integer
Output program konversi nilai String ke dalam Integer
Nilai dari age berisikan sebuah teks
Program error dan akan berhenti