Go From Zero to Hero #05: Panduan Lengkap Konversi Data (Casting) & Modulo di Go-lang

Go From Zero to Hero #05: Panduan Lengkap Konversi Data (Casting) & Modulo di Go-lang

Table of Contents

Halo Go Developers! Selamat datang kembali di seri Go From Zero to Hero.

Di artikel keempat kemarin, kita sudah berhasil membedah operator aritmatika dan logika dasar di Go-lang serta cara membuat program interaktif. Kita sudah belajar bagaimana cara menerima input langsung dari keyboard dan mengolahnya agar program kita bisa menghasilkan output dasar yang kita inginkan.

Nah, di artikel kelima ini, kita akan menaikkan lagi ketelitian kode program kita ke tingkat yang lebih tinggi! Kita akan berkenalan dengan sebuah konsep penting yang sering banget bikin para programmer pemula garuk-garuk kepala karena bingung dengan hasil hitungan komputernya, yaitu Konversi Tipe Data (Casting) dan operasi matematika cerdas bernama Modulo.

Pernah gak sih kamu iseng membagi angka 5 dengan 2 di kalkulator HP? Hasilnya pasti 2.5, kan? Tapi tahu gak, kalau kamu menyuruh komputer melakukan hal yang sama lewat tipe data bilangan bulat di Go-lang, hasilnya secara ajaib berubah menjadi 2! Ke mana perginya angka 0.5 tersebut?

Di artikel ini, kita akan mengupas tuntas kenapa fenomena “hilang angka desimal” itu bisa terjadi di dalam komputer, lengkap dengan analogi dunia nyata, cara menyelamatkannya lewat ilmu Casting, hingga trik memanfaatkan sisa pembagian tersebut untuk membuat logika program yang super cerdas.

Di akhir artikel nanti, kamu akan paham kenapa para programmer profesional sangat teliti dalam memilih tipe data angka agar tidak terjadi bug perhitungan yang fatal!

Sudah siap berdamai dengan matematika komputer agar kodemu terlihat lebih profesional? Yuk, siapkan teks editor favoritmu, ambil posisi duduk paling nyaman, dan mari kita mulai!


Misteri “Hilangnya” Angka Desimal (Integer Division)

Sebelum masuk ke codingan, kita harus tahu dulu aturan main di Go-lang. Go adalah bahasa yang sangat kaku dan disiplin. Jika kamu melakukan operasi matematika antara bilangan bulat (int) dengan bilangan bulat (int), maka Go akan selalu menghasilkan bilangan bulat juga.

Mari kita buktikan lewat contoh kode ini:

package main

import "fmt"

func main() {
    pembilang := 5 // Tipe data otomatis int
    penyebut := 2  // Tipe data otomatis int
    
    hasil := pembilang / penyebut
    fmt.Println("Hasil 5 / 2 adalah:", hasil) 
}

Jika kode di atas dijalankan, output di terminalmu akan memunculkan angka 2, bukan 2.5.

Komputer tidak salah, Karena pembilang dan penyebut sama-sama bertipe int, komputer langsung memotong (truncate) bagian desimal di belakang koma. Angka .5-nya dibuang begitu saja. Fenomena ini disebut dengan Integer Division.

Lalu, bagaimana cara menyelamatkan angka di belakang koma tersebut? Di sinilah kita butuh ilmu Casting!

Menyelamatkan Desimal dengan Konversi Tipe Data (Casting)

Casting adalah proses memaksa suatu tipe data untuk berubah wujud menjadi tipe data lain. Agar hasil pembagian kita bisa memunculkan angka desimal, kita harus mengubah (mengonversi) variabel int tersebut menjadi float64 sebelum proses pembagian terjadi.

Cara menulis casting di Go-lang sangat mudah: ketik TipeDataTujuan(NamaVariabel).

Mari kita perbaiki kode di atas:

package main

import "fmt"

func main() {
    pembilang := 5
    penyebut := 2
    
    // Kita ubah wujud kedua variabel menjadi float64 sebelum dibagi
    hasilTepat := float64(pembilang) / float64(penyebut)
    
    fmt.Println("Hasil 5 / 2 setelah casting adalah:", hasilTepat)
}

Output:


Hasil 5 / 2 setelah casting adalah: 2.5

Boom! Angka 2.5 berhasil diselamatkan. Sekarang komputermu sudah menghitung dengan akurasi yang tepat.

Mengenal Operator Modulo (%): Berburu Sisa Bagi

Jika operator garis miring (/) digunakan untuk mencari hasil bagi, maka Go-lang menyediakan operator persen (%) yang dinamakan Modulo. Fungsinya adalah untuk mencari sisa dari hasil pembagian.

Mari kita pakai analogi dunia nyata:

Kamu punya 5 buah kelereng dan ingin membagikannya secara adil kepada 2 orang temanmu. Masing-masing teman akan mendapatkan 2 kelereng secara rata. Nah, dari total 5 kelereng tadi, pasti tersisa 1 kelereng di tanganmu yang tidak bisa dibagi rata, kan? Angka 1 itulah yang disebut Modulo!

Mari kita praktekkan ke dalam kode Go:

package main

import "fmt"

func main() {
    sisaKelereng := 5 % 2
    fmt.Println("Sisa bagi dari 5 Modulo 2 adalah:", sisaKelereng)
}

Output:


Sisa bagi dari 5 Modulo 2 adalah: 1

Buat Apa Sih Modulo di Dunia Nyata?

Operator Modulo ini sering banget dipakai programmer untuk membuat logika cerdas, salah satu yang paling populer adalah mendeteksi bilangan ganjil atau genap.

  • Jika suatu angka di-modulo 2 hasilnya 0, maka angka itu pasti Genap (habis dibagi 2).

  • Jika suatu angka di-modulo 2 hasilnya 1, maka angka itu pasti Ganjil (ada sisa 1).

Kesimpulan & Penutup

Komputermu Sekarang Jauh Lebih Teliti! 🧠

Selamat! Kamu sudah menguasai salah satu trik paling krusial dalam dunia coding. Sekarang program Go kamu sudah jauh lebih teliti karena tidak akan lagi “kecolongan” kehilangan angka desimal lewat ilmu Casting, dan kamu juga sudah punya senjata rahasia Modulo untuk mendeteksi berbagai logika sisa pembagian.

Yuk, Nyicip Eksperimen Kecil! 🛠️

Biar makin paham, coba buat dua variabel angka bulat (int) bebas, lalu lakukan pembagian (/) tanpa menggunakan casting float64. Coba masukkan angka yang hasilnya pasti desimal (misalnya 7 dibagi 2).

Kira-kira apa hasil akhir yang dicetak oleh komputermu? Yuk, tulis hasilnya di kolom komentar!

🎯 Tantangan Untukmu (Challenge!):

Buatlah sebuah program Go yang meminta user memasukkan sebuah angka bulat secara interaktif melalui keyboard. Kemudian, gunakan operator Modulo (%) untuk mengecek sisa baginya jika dibagi 2. Cetak hasilnya di terminal! (Petunjuk: Jika output modulo-nya 0 berarti genap, jika 1 berarti ganjil).

Bisa ngerjainnya? Yuk, pamerkan kode hasil karyamu di kolom komentar di bawah! Kalau ada yang bingung atau ketemu error, tanyakan saja, kita selesaikan sama-sama.

Bocoran Artikel #06 🚀

Bisa mengubah tipe data dan mencari sisa bagi saja tentu belum cukup kalau program kita jalannya masih lurus-lurus saja dari atas ke bawah.

Di artikel Go From Zero to Hero #06 selanjutnya yang berjudul “Logika Percabangan Bagian 1 - Mengambil Keputusan dengan If-Else”, kita akan mulai memberikan “otak” kepada program kita agar bisa memilih jalur kodenya sendiri berdasarkan kondisi tertentu!

Sampai jumpa di artikel berikutnya, tetap semangat, dan happy coding!

Tags :
Share :
comments powered by Disqus

Related Posts

Go From Zero to Hero #03: Memahami Variabel, Data, dan Tipe Data Dasar pada Go

Go From Zero to Hero #03: Memahami Variabel, Data, dan Tipe Data Dasar pada Go

Halo Go Developers! Selamat datang kembali di seri Go From Zero to Hero. Di artikel kedua kemarin, kamu berhasil membuat program Hello World dan membedah kodenya. Gimana, seru kan? Nah, kalau kemarin …

Go From Zero to Hero #01: Pengenalan Golang dan Cara Setup Environment di Laptopmu

Go From Zero to Hero #01: Pengenalan Golang dan Cara Setup Environment di Laptopmu

Kenapa kamu harus belajar golang? Bayangkan kalau kamu bisa punya bahasa pemrograman yang punya kecepatan setara C++, tapi cara nulis kodenya segampang Python. Terdengar terlalu indah untuk jadi …

Go From Zero to Hero #04: Membuat Program Interaktif dan Mengolah Data dengan Operator Go

Go From Zero to Hero #04: Membuat Program Interaktif dan Mengolah Data dengan Operator Go

Halo Go Developers! Selamat datang kembali di seri Go From Zero to Hero. Di artikel ketiga kemarin, kita sudah berhasil memberikan “daya ingat” pada program kita lewat variabel dan tipe …