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: