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")
}

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

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.