package main

import (
	"fmt"
	"strings"
)

func main() {
	// strings.Cut memisah pada kemunculan pemisah pertama.
	before, after, found := strings.Cut("NAMA=Budi Santoso", "=")
	fmt.Println("Cut    :", before, "|", after, "| ditemukan:", found)

	// Pemisah tidak ada: seluruh teks menjadi bagian pertama.
	before, after, found = strings.Cut("teks-polos", "=")
	fmt.Println("Cut    :", before, "|", after, "| ditemukan:", found)

	// strings.Fields memotong whitespace bertumpuk sekaligus.
	log := "  galat:   koneksi   basisdata   gagal  "
	kata := strings.Fields(log)
	fmt.Println("Fields :", kata, "(", len(kata), "kata )")
	fmt.Println("level  :", kata[0], "pesan:", strings.Join(kata[1:], " "))

	// strings.SplitN membatasi jumlah potongan yang dihasilkan.
	path := "/go/string-dan-text-processing/parsing-text"
	bagian := strings.SplitN(path, "/", 3)
	fmt.Println("SplitN :", bagian)

	// Pipeline Cut + TrimSpace untuk baris konfigurasi.
	for _, baris := range []string{"user = Siti", "kota=Bandung"} {
		kunci, nilai, _ := strings.Cut(baris, "=")
		fmt.Printf("[%s] = [%s]\n", strings.TrimSpace(kunci), strings.TrimSpace(nilai))
	}
}
