Cara membuat Channels di Golang

Channels adalah salah satu fitur kunci di Go yang digunakan untuk mengizinkan komunikasi antara goroutine. Channels digunakan untuk mengirim dan menerima data antara goroutine-goroutine yang berjalan konkuren. Mereka memungkinkan sinkronisasi dan koordinasi antara goroutine, menjadikannya alat yang kuat untuk mengelola konkurensi di Go.

Membuat Channels:

Untuk membuat channel di Go, Anda menggunakan operator make dengan menyertakan jenis data yang ingin Anda kirim melalui channel. Misalnya, untuk membuat channel yang dapat mengirim dan menerima nilai bertipe int, Anda dapat melakukannya seperti ini:

ch := make(chan int)

Channel ini sekarang dapat digunakan untuk mengirim dan menerima nilai bertipe int antara goroutine.

Mengirim Data ke Channel:

Untuk mengirim data ke channel, Anda menggunakan operator <-. Berikut adalah contoh cara mengirim nilai 42 ke channel ch:

ch <- 42

Menerima Data dari Channel:

Untuk menerima data dari channel, Anda juga menggunakan operator <-. Berikut adalah contoh cara menerima nilai dari channel ch dan menyimpannya dalam variabel nilai:

nilai := <-ch

Contoh Penggunaan Channel:

Berikut adalah contoh program sederhana yang menggunakan channel untuk mengirim dan menerima data antara dua goroutine:

package main

import "fmt"

func fungsiGoroutine(ch chan int) {
    ch <- 42 // Mengirim nilai 42 ke channel
}

func main() {
    // Membuat channel bertipe int
    ch := make(chan int)

    // Menjalankan goroutine dengan channel sebagai argumen
    go fungsiGoroutine(ch)

    // Menerima nilai dari channel dan mencetaknya
    nilai := <-ch
    fmt.Println("Nilai dari channel:", nilai) // Output: Nilai dari channel: 42
}

Pada contoh di atas, goroutine fungsiGoroutine mengirim nilai 42 ke channel ch, dan nilai tersebut kemudian diterima dan dicetak oleh fungsi main.

Channels memungkinkan goroutine berkomunikasi dengan aman tanpa memerlukan penguncian eksternal. Mereka adalah alat yang sangat berguna untuk mengkoordinasikan kerja antara goroutine-goroutine di dalam aplikasi Go.

Di bab berikutnya akan dibahas tentang bagaimana membuat WaitGroup di Golang

Last updated