Type Conversion

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

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 Tipe Data 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:

Menggunakan tipe data int8 dan memasukkan nilai 100
Output program berjalan karena masih pada range yang tersedia pada int8

Lalu bagaimana jika nilai variabel melebihi kapasitas range dari int8 ?

Menggunakan tipe data int8 dan memasukkan nilai 129
Error pada output program karena nilai variabel melebihi range tipe data 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:

Konversi variabel index dari tipe data int8 menjadi tipe data int32
Output program menampilkan nilai dari variabel dan tipe datanya

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:

Konversi integer ke dalam float
Output hasil konversi integer ke dalam float

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 .

Data type sudah berhasil dikonversikan namun tidak bisa menggunakan fmt.Println()

Converting float to integer

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

Konversi nilai Float ke dalam Integer
Output hasil konversi nilai Float ke dalam Integer

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.

Melakukan operasi pembagian
Output program menghasilkan nilai Integer

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

Melakukan operasi pembagian nilai Float dan Integer
Output program menghasilkan nilai float64

Converting with String

Untuk melakukan konversi pada string , Go meminta kita untuk menggunakan Internal Package strconv. 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:

Konversi nilai Integer ke dalam String
Output program sudah berhasil melakukan konversi

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

Konversi nilai String ke dalam Integer
Output program konversi 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:

Nilai dari age berisikan sebuah teks
Program error dan akan berhenti

Last updated

Was this helpful?