Kode program range channel

Golang – Mengenal dan menggunakan range channel

Terkadang terdapat kasus dimana channel dikirim data secara terus menerus oleh pengirim nya, dan kadang tidak jelas kapan pengirim tersebut berhenti menerima data. Salah satu yang bisa kita lakukan adalah dengan menggunakan perulangan range ketika menerima data dari channel, ketika sebuah channel di close maka secara otomatis perulangan tersebut akan berhenti. Ini lebih sederhana dari pada kita melakukan pengecekan channel secara manual.

Kode program range channel

Untuk lebih jelas perhatikan contoh kode program berikut ini

package belajar_golang_goroutines

import (
	"fmt"
	"strconv"
	"testing"
	"time"
)

func TestRangeChannel(t *testing.T) {
	channel := make(chan string)

	go func() {
		for i := 0; i < 10; i++ {
			channel <- "Perulangan ke " + strconv.Itoa(i)
		}
		close(channel)
	}()

	for data := range channel {
		fmt.Println("Menerima Data", data)
	}

	fmt.Println("Selesai")
}
Kode program range channel
Kode program range channel

Pada baris kode diatas, seperti biasa kita membuat channel pada baris ke 11, kemudian pada baris 13 kita membuat sebuah anonymous function yang di dalam function tersebut kita melakukan perulangan mengirim data ke channel sebanyak 10x dan setelah melakukan perulangan kita juga akan close channel nya pada baris ke 17 agar tidak terjadi deadlock. Terakhir pada baris ke 20 kita juga melakukan perulangan dengan for range untuk mengambil data dari channel dan menampilkannya ke terminal.

Coba jalankan kode program diatas, maka outputnya kurang lebih akan seperti berikut

Output kode program range channel
Output kode program range channel

Penutup

Pada artikel kali ini kita telah belajar tentang range channel pada bahasa pemrogaman go. Dan pada artikel selanjutnya saya akan membahas select channel pada bahasa pemrogaman go.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook