1 Gambaran Operasi Golang

Dalam bahasa Go, operator digunakan untuk melakukan operasi kode program, termasuk operasi aritmatika, perbandingan relasional, operasi logis, dan lain-lain. Berbagai operator berkorespondensi dengan fungsionalitas dan skenario penggunaan yang berbeda. Memahami dan menguasai operator-operator ini merupakan dasar untuk pemrograman yang efektif.

2 Operator Aritmatika

Bahasa Go menyediakan serangkaian operator aritmatika:

  • Penambahan (+): Operasi penambahan
  • Pengurangan (-): Operasi pengurangan
  • Perkalian (*): Operasi perkalian
  • Pembagian (/): Operasi pembagian
  • Sisa bagi (%): Operasi modulo

Contoh:

package main

import "fmt"

func main() {
    // Operasi penambahan
    sum := 10 + 5
    fmt.Println("10 + 5 =", sum) // Output 15

    // Operasi pengurangan
    diff := 10 - 5
    fmt.Println("10 - 5 =", diff) // Output 5

    // Operasi perkalian
    prod := 10 * 5
    fmt.Println("10 * 5 =", prod) // Output 50

    // Operasi pembagian
    quot := 10 / 5
    fmt.Println("10 / 5 =", quot) // Output 2

    // Operasi modulo
    rem := 10 % 5
    fmt.Println("10 % 5 =", rem) // Output 0
}

3 Operator Logis

Operator logis dalam bahasa Go digunakan untuk menghubungkan beberapa kondisi (umumnya digunakan untuk nilai boolean). Ini mencakup tiga jenis: DAN (&&), ATAU (||), dan TIDAK (!).

3.1 DAN (&&)

Ketika semua kondisi benar, hasil dari operasi "AND" adalah benar.

Contoh:

package main

import "fmt"

func main() {
    fmt.Println(true && true)   // Output benar
    fmt.Println(true && false)  // Output salah
    fmt.Println(false && false) // Output salah
    // Hasilnya benar hanya jika kedua kondisi benar
}

3.2 ATAU (||)

Jika setidaknya satu kondisi benar, hasil dari operasi "OR" adalah benar.

Contoh:

package main

import "fmt"

func main() {
    fmt.Println(true || true)   // Output benar
    fmt.Println(true || false)  // Output benar
    fmt.Println(false || false) // Output salah
    // Hasilnya benar jika setidaknya satu kondisi benar
}

3.3 TIDAK (!)

Digunakan untuk membalikkan nilai boolean dari suatu kondisi.

Contoh:

package main

import "fmt"

func main() {
    fmt.Println(!true)  // Output salah
    fmt.Println(!false) // Output benar
    // Membalikkan nilai boolean
}

4 Operator Perbandingan

Operator perbandingan dalam bahasa Go digunakan untuk membandingkan dua variabel atau nilai:

  • Sama dengan (==)
  • Tidak sama dengan (!=)
  • Lebih besar dari (>)
  • Kurang dari (<)
  • Lebih besar dari atau sama dengan (>=)
  • Kurang dari atau sama dengan (<=)

Hasil dari operasi perbandingan adalah nilai boolean: true atau false.

5 Operator Bitwise

Di Go, operator bitwise memungkinkan kita untuk langsung memanipulasi bit biner data:

  • Bitwise AND (&)
  • Bitwise OR (|)
  • Bitwise XOR (^)
  • Bitwise left shift (<<)
  • Bitwise right shift (>>)

Operator bitwise terutama digunakan dalam pemrograman tingkat rendah, seperti operasi langsung perangkat keras, enkripsi, dan skenario lainnya.

6 Operator Penugasan

Operator penugasan digunakan untuk memberikan nilai ke variabel. Dalam bahasa Go, terdapat berbagai bentuk operator penugasan:

  • Penugasan sederhana (=)
  • Penugasan penambahan (+=)
  • Penugasan pengurangan (-=)
  • Penugasan perkalian (*=)
  • Penugasan pembagian (/=)
  • Penugasan modulus (%=)

Operator-operator ini membuat kode lebih ringkas. Sebagai contoh, x += 1 ekuivalen dengan x = x + 1.

7 Operator Khusus

7.1 Operator Peningkatan (++) dan Pengurangan (--)

Operator peningkatan (++) dan operator pengurangan (--) digunakan untuk menambahkan 1 dan mengurangkan 1 dari nilai variabel, secara berturut-turut. Mereka merupakan satu-satunya operator dalam bahasa Go yang dapat langsung berinteraksi dengan variabel itu sendiri (bukan pada suatu ekspresi).

package main

import "fmt"

func main() {
    x := 1
    x++
    fmt.Println("x++ =", x) // Menghasilkan 2

    y := 10
    y--
    fmt.Println("y-- =", y) // Menghasilkan 9
}

Perlu diingat bahwa dalam bahasa Go, x++ atau x-- tidak dapat menjadi bagian dari suatu ekspresi. Contohnya, z := x++ tidak diijinkan.

7.2 Konversi Tipe Data

Bahasa Go memiliki tipe data statis, yang berarti setelah sebuah variabel dideklarasikan, tipe datanya tidak dapat diubah. Oleh karena itu, terkadang perlu untuk mengonversi variabel dari satu tipe ke tipe lainnya. Go tidak memiliki konversi tipe data otomatis; konversi tipe eksplisit diperlukan.

Contoh:

package main

import (
	"fmt"
)

func main() {
	var i int = 42
	fmt.Println(float64(i)) // Mengonversi int ke float64

	var f float64 = 3.14
	fmt.Println(int(f)) // Mengonversi float64 ke int, bagian desimal akan diabaikan
}

Saat melakukan konversi tipe data, penting untuk memastikan bahwa data aman selama proses konversi, seperti potensi kehilangan presisi saat mengonversi angka floating-point menjadi integer.