Coding 24 Jun 2025

Golang Concurrency: Bikin Kode Lebih Ngebut Tanpa Bikin Pusing

Golang Concurrency: Bikin Kode Lebih Ngebut Tanpa Bikin Pusing

Halo, saya Zona Sosmed, expert di bidang bikin kode yang gak bikin ngantuk. Kali ini kita bakal ngobrolin Golang concurrency, alias gimana caranya bikin program kamu ngerjain banyak hal sekaligus tanpa bikin CPU jebol.

Kenapa Concurrency Penting?

Bayangin kamu lagi masak. Kalo kamu cuma masak satu menu, ya udah, selesai satu baru mulai yang lain. Tapi kalo kamu punya banyak tamu, kamu bisa sambil rebus air, potong sayur, dan goreng ayam sekaligus. Nah, concurrency di kode itu kayak gitu. Daripada nunggu satu proses selesai baru mulai yang lain, kita bisa jalanin beberapa proses barengan.

Golang dan Concurrency: Jodoh yang Pas

Golang itu dirancang khusus buat concurrency. Dia punya dua senjata ampuh: Goroutines dan Channels.

  • Goroutines: Anggap aja ini kayak thread tapi lebih ringan. Bikin goroutine itu gampang banget, tinggal tambahin keyword go di depan fungsi. Misalnya: go hitungCepat(). Voila! Fungsi kamu udah jalan di goroutine baru.
  • Channels: Ini kayak pipa buat ngirim data antar goroutine. Jadi, goroutine bisa saling komunikasi dan berbagi informasi.

Contoh Sederhana


package main

import (
 "fmt"
 "time"
)

func cetak(pesan string) {
 for i := 0; i < 5; i++ {
  fmt.Println(pesan, i)
  time.Sleep(time.Millisecond * 100)
 }
}

func main() {
 go cetak("Halo dari Goroutine 1")
 go cetak("Halo dari Goroutine 2")

 // Biar program gak langsung selesai
 time.Sleep(time.Second * 1)
}

Kode di atas nunjukkin gimana kita bisa jalanin dua fungsi cetak secara bersamaan pake goroutine. Hasilnya? Dua-duanya jalan tanpa saling nunggu.

Manfaat Concurrency

  • Performa Lebih Baik: Program jadi lebih responsif dan cepat.
  • Pemanfaatan Sumber Daya: CPU dan memori dipake lebih efisien.
  • Skalabilitas: Program lebih gampang ditingkatkan kapasitasnya.

Statistik Menarik

Menurut beberapa studi kasus, penggunaan concurrency di Golang bisa meningkatkan performa aplikasi web hingga 30-50%. Lumayan banget kan?

Hati-Hati dengan Race Condition

Concurrency itu keren, tapi ada satu hal yang perlu diwaspadai: race condition. Ini terjadi kalo beberapa goroutine akses dan ubah data yang sama secara bersamaan. Akibatnya, data bisa jadi kacau balau. Solusinya? Pake mutex atau channel buat sinkronisasi.

Kesimpulan

Golang concurrency itu tool yang powerful buat bikin kode yang lebih cepat dan efisien. Tapi, jangan lupa buat hati-hati sama race condition. Dengan pemahaman yang baik, kamu bisa manfaatin concurrency buat bikin aplikasi yang super ngebut.

Semoga artikel ini bermanfaat! Jangan ragu buat eksplorasi lebih jauh dan coba-coba sendiri. Selamat ngoding!

golang concurrency
Bagikan: