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 Goroutine di Golang

Goroutine adalah unit eksekusi ringan di Go yang dikelola oleh runtime Go. Mereka memungkinkan Anda menjalankan fungsi-fungsi secara konkuren (paralel) dan asinkron tanpa perlu membuat thread secara eksplisit. Goroutine membuat pemrogram bisa menulis kode konkuren dengan lebih mudah dan efisien.

Untuk membuat goroutine di Go, Anda hanya perlu menempatkan kata kunci go di depan pemanggilan fungsi. Berikut adalah contoh cara membuat goroutine:

package main

import (
	"fmt"
	"time"
)

func fungsiGoroutine() {
	for i := 1; i <= 3; i++ {
		fmt.Println("Goroutine - Iterasi", i)
		time.Sleep(time.Second)
	}
}

func main() {
	// Memanggil fungsiGoroutine sebagai goroutine
	go fungsiGoroutine()

	// Menjalankan iterasi di fungsi main
	for i := 1; i <= 3; i++ {
		fmt.Println("Main - Iterasi", i)
		time.Sleep(time.Second)
	}
}

Pada contoh di atas, kita membuat fungsi fungsiGoroutine yang mencetak pesan ke layar dengan jeda satu detik antara setiap pesan. Di dalam fungsi main, kita menggunakan go fungsiGoroutine() untuk menjalankan fungsiGoroutine sebagai goroutine. Kemudian, fungsi main juga menjalankan iterasi dengan jeda satu detik antara setiap pesan.

Ketika program dijalankan, outputnya bisa berbeda setiap kali dijalankan karena urutan eksekusi goroutine dan fungsi main adalah konkuren. Contoh outputnya bisa terlihat seperti berikut:

Main - Iterasi 1
Goroutine - Iterasi 1
Main - Iterasi 2
Goroutine - Iterasi 2
Main - Iterasi 3
Goroutine - Iterasi 3

Penting untuk diingat bahwa goroutine berjalan pada thread tunggal (untuk sebagian besar kasus), yang dikelola oleh runtime Go. Dengan menggunakan goroutine, Anda dapat meningkatkan efisiensi aplikasi konkuren Anda tanpa kompleksitas dari multithreading tradisional. Goroutine sangat berguna untuk menangani tugas-tugas konkuren seperti pemrosesan paralel, pemanggilan API, atau tugas I/O asinkron.

Di bab berikutnya akan dibahas tentang bagaimana membuat Channels di Golang

PreviousCara membuat underscore(blank) di GolangNextCara membuat Channels di Golang

Last updated 1 year ago