Golang
  • Daftar isi
  • Pengenalan Golang
  • Cara instalasi Golang
  • Cara menjalankan Golang
  • Cara mendeklarasikan variabel di Golang
  • Apa saja tipe-tipe data di Golang
  • Cara Konversi Tipe Data di Golang
  • Apa saja operator-operator di Golang
  • Cara melakukan seleksi kondisi di Golang
  • Cara melakukan perulangan di Golang
  • Cara membuat Array di Golang
  • Cara membuat Slice di Golang
  • Cara membuat Slice dengan Operator Slice
  • Cara membuat Map di Golang
  • Cara membuat Pointer di Golang
  • Cara membuat Function di Golang
  • Cara membuat Package di Golang
  • Cara membuat multi return Function di Golang
  • Cara membuat Struct di Golang
  • Cara membuat method di Golang
  • Cara membuat Defer dan Scope di Golang
  • Cara membuat underscore(blank) di Golang
  • Cara membuat Goroutine di Golang
  • Cara membuat Channels di Golang
  • Cara membuat WaitGroup di Golang
  • Cara membuat Select statement di Golang
  • Cara membuat Http Server di Golang
  • Cara membuat Http Server di Golang part 2
  • Cara membuat Http Server di Golang part 3
  • Cara membuat Http Server di Golang part 4
  • Pengenalan Testing di Go
  • Membuat Unit Test di Go
Powered by GitBook
On this page

Cara membuat Select statement di Golang

Select Statement adalah konstruksi kontrol di Go yang digunakan untuk memilih (select) salah satu dari beberapa tindakan yang dapat dijalankan. Dalam konteks channels, select digunakan untuk menangani komunikasi dengan beberapa channels secara konkuren. select memungkinkan goroutine untuk mencoba melakukan pengiriman atau penerimaan pada beberapa channels dan melanjutkan eksekusi dengan channel pertama yang siap.

Berikut adalah contoh penggunaan select untuk meng-handle komunikasi melalui beberapa channels:

package main

import (
    "fmt"
    "time"
)

func main() {
    // Membuat dua channel bertipe int
    ch1 := make(chan int)
    ch2 := make(chan int)

    // Goroutine untuk mengirim data ke ch1
    go func() {
        time.Sleep(2 * time.Second) // Menunggu 2 detik
        ch1 <- 42
    }()

    // Goroutine untuk mengirim data ke ch2
    go func() {
        time.Sleep(1 * time.Second) // Menunggu 1 detik
        ch2 <- 100
    }()

    // Menggunakan select statement untuk menangani multiple channels
    select {
    case nilai := <-ch1:
        fmt.Println("Menerima dari ch1:", nilai) // Output: Menerima dari ch1: 42
    case nilai := <-ch2:
        fmt.Println("Menerima dari ch2:", nilai) // Output: Menerima dari ch2: 100
    }

    // Output: Menerima dari ch2: 100 (dalam contoh ini, ch2 adalah yang pertama kali siap)
}

Pada contoh di atas, kita membuat dua goroutine yang masing-masing mengirim nilai ke dua channel (ch1 dan ch2). Dengan menggunakan select, program mencoba menerima nilai dari kedua channel secara konkuren. Channel yang pertama kali siap akan mengaktifkan blok kode yang sesuai. Dalam contoh ini, ch2 siap lebih cepat, sehingga nilai dari ch2 yang diterima dan dicetak.

select sangat berguna dalam situasi di mana Anda ingin menunggu data dari beberapa goroutine atau channels dan mengambil tindakan berdasarkan channel yang pertama kali siap. Ini memungkinkan Anda menangani komunikasi konkuren dengan mudah dan efisien di Go.

Di bab berikutnya akan dibahas tentang bagaimana membuat http server di Golang

PreviousCara membuat WaitGroup di GolangNextCara membuat Http Server di Golang

Last updated 1 year ago