Type Conversion
Pada sesi ini akan dibahas bagaimana cara mengkonversi suatu tipe data ke tipe data lain
Last updated
Pada sesi ini akan dibahas bagaimana cara mengkonversi suatu tipe data ke tipe data lain
Last updated
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).
Seperti yang sudah dibahas pada sesi Tipe Data dimana pada Go terdapat 2 tipe data numerik yaitu integer dan floating numbers.
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.
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
.
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 nilai30
jika digenapi, hal ini tidak berlaku pada konversi.
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.
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:
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: