Belajar Golang #27 : Menggunakan Select pada Channel

Tutorial golang yang membahas mengenai Select pada Channel Golang.

Seri tutorial golang yang ke-27 ini merupakan lanjutan dari seri tutorial golang yang ke 26 yaitu mengenai cara penggunaan channel.

Sudah di ketahui sebelumnya bahwa channel digunakan untuk menghubungkan antar gorouitne satu dengan goroutine lainnya.

Apa itu Select ?

Select image bukannya seperti select query MySQL. Kita mulai dari pengertian select, Select adalah proses untuk menvalidasi kondisi ketika mempunyai lebih dari satu channel dalam satu goroutine yang jalan. Bisa di katakan select pemilihan terhadap channel.

Ketika menggunakan 2 channel konsep sudah di ketahui bahwa proses nya kirim dan menerima. Select berperan untuk memilih channel yang di terima di dalam goroutine.

Cara kerjanya seperti ini, asumsikan kita punya 2 channel yang jalan, nah ketika data sudah terkirim beberapa data, tugas select ini memilih penerimaan channel yang jalan.

Cara kerja select sebenarnya sama seperti suatu kondisi switch, dimana switch digunakan untuk melakukan seleksi terhadap kondisi.

Contoh Penggunaan Select

Mari kita buat contoh penggunaan channel select.

main.go

Hasilnya :

Belajar Golang #27 : Menggunakan Select pada Channel
Menggunakan Select untuk Channel di Golang

Perhatikan kode di atas, terdapat 2 function, fungsi kedua function itu sama-sama mencetak string teks yang berisi teks yang berbeda.

Di dalam function utama(main()), berisi kode untuk membuat goroutine dan memanggil 2 goroutine.

Kemudian terdapat perintah select yang berguna untuk memilih gorotuine yang sudah selesai. Hasilnya hanya tercetak satu, karena ada 2 goroutine dan 2 nilai channel yang jalan sedangkan perintah select tidak di lakukan perulanga.

Tugas dari c1 digunakan untuk menerima channel dari channel cHuruf1, sedangkan c2 untuk menerima channel dari cHuruf2.

Biasa ketika kita tidak menggunakan random channel maka channel yang di cetak yaitu channel yang kedua.

Penggunaan Random Channel Select

Contoh kedua digunakan untuk mencetak hasil channel secara acak.

Berikut ini contohnya :

main.go

Hasilnya :

Belajar Golang #27 : Menggunakan Select pada Channel
Menggunakan Select untuk Channel di Golang

Perhatikan kode di atas, Saya mencoba menjalankan program golang 2 kali. Hasilnya berbeda-beda karena nilai channel akan di cetak, karena terdapat penambahn sintaks waktu yang digunakan untuk menjeda proses bekerja.

Contoh di atas yaitu terdapat 2 goroutine yang di panggil yaitu lamarPT1() dan lamarPT2(). Implementasi di atas ketika di analogikan secara nya maka siapa yang menerima lamaran kerja pertama kali itu yang akan di ambil nilainya.

Perulangan dengan Channel Select

Kenyataan sesungguhnya bahwa data yang di kirim via channel akan di cetak semuanya yang jalan di goroutine.

Nah contoh sebelumnya hanya mencetak satu nilai dari isi channel saja. Kita dapat melakukan cetak isi channel dengan melakukan perulangan.

Berikut ini contohnya.

main.go

Hasilnya :

Belajar Golang #27 : Menggunakan Select pada Channel
Menggunakan Select untuk Channel di Golang

Perhatikan contoh kode golang di atas, terdapat perulangan panjang maksimal yaitu 2, karena goroutine yang jalan sejumlah 2. Di dalam perulangan maka akan di pilih channel mana yang lebih dulu kirim, maka itu yang di cetak. Dengan menggunakan perintah select dapat memilih channel mana yang datang duluan.

Sekian tutorial yang membahas Menggunakan Select untuk Channel di Golang. Terima Kasih.

Selanjutnya Mau Belajar Apa ?

Anda bisa melanjutkan seri tutorial golang ke 28 yaitu : Belajar Golang #28 : Menggunakan WaitGroup.

Leave a Reply