package main

import (
	"fmt"
	"runtime"
	"sync"
	"time"
)

func main() {
	fmt.Println("goroutine di awal    :", runtime.NumGoroutine())

	hasil := make([]string, 3)
	var wg sync.WaitGroup
	wg.Add(3)

	for i := range 3 {
		go func() {
			defer wg.Done()
			time.Sleep(50 * time.Millisecond) // simulasi kerja
			hasil[i] = fmt.Sprintf("tugas %d selesai", i+1)
		}()
	}

	fmt.Println("goroutine saat kerja :", runtime.NumGoroutine())

	wg.Wait()

	for _, h := range hasil {
		fmt.Println(h)
	}
}
