Menu
CoddyTech

Memeriksa keanggotaan

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 34 dari 68.

Sekarang kamu sudah bisa menambahkan elemen ke set, operasi penting berikutnya adalah memeriksa apakah elemen tertentu ada di dalam set. Di sinilah idiom "comma ok" Go menjadi sangat berguna.

Untuk memeriksa apakah suatu elemen ada di dalam set, kamu menggunakan sintaks yang sama seperti saat memeriksa key di dalam map:

_, ok := colors["red"]
if ok {
    fmt.Println("Red is in the set")
} else {
    fmt.Println("Red is not in the set")
}

Garis bawah _ digunakan karena kita tidak peduli dengan nilai sebenarnya (yang selalu berupa struct kosong). Kita hanya peduli dengan variabel boolean ok, yang memberi tahu kita apakah key tersebut ada.

Kamu juga bisa menggunakan pola ini langsung dalam pernyataan if agar kodemu lebih ringkas:

if _, exists := colors["blue"]; exists {
    fmt.Println("Blue is in the set")
}

Pengujian keanggotaan ini cepat dan efisien, memanfaatkan implementasi map Go yang telah dioptimalkan untuk memberimu manfaat performa dari struktur data set yang sesungguhnya.

challenge icon

Tantangan

Mudah

Buat sistem verifikasi anggota tim yang memeriksa apakah orang tertentu merupakan bagian dari tim proyek menggunakan idiom set Go. Tantangan ini menunjukkan cara menggunakan idiom comma ok untuk menguji keanggotaan dalam set.

Kamu akan menerima dua input:

  • String berisi anggota tim yang dipisahkan dengan koma (misalnya, "Alice,Bob,Charlie,Diana,Eve")
  • String berisi orang-orang yang perlu diperiksa, dipisahkan dengan koma (misalnya, "Bob,Frank,Alice,Grace,Charlie")

Tugasmu:

  1. Buat set menggunakan idiom Go map[string]struct{} untuk menyimpan anggota tim
  2. Parse string input pertama dengan memisahkannya berdasarkan koma untuk mendapatkan nama setiap anggota tim
  3. Tambahkan setiap anggota tim ke set-mu menggunakan literal struct kosong {} sebagai nilai
  4. Parse string input kedua dengan memisahkannya berdasarkan koma untuk mendapatkan daftar orang yang akan diverifikasi
  5. Untuk setiap orang yang perlu diperiksa, gunakan idiom comma ok _, ok := teamSet[person] untuk menguji keanggotaan
  6. Tampilkan hasil verifikasi untuk setiap orang yang diperiksa:
    • Jika orang tersebut anggota tim: "[person] is on the team"
    • Jika orang tersebut bukan anggota tim: "[person] is not on the team"
  7. Setelah memeriksa semua orang, tampilkan ringkasan:
    • "Team size: [team_member_count]"
    • "People checked: [people_checked_count]"
    • "Team members found: [found_count]"
    • "Non-team members: [not_found_count]"

Gunakan package strings untuk memisahkan string input berdasarkan koma. Tantangan ini menunjukkan cara idiom comma ok menyediakan cara yang aman dan efisien untuk memeriksa keanggotaan dalam set Go, dengan mengembalikan nilai sekaligus boolean yang menunjukkan apakah key tersebut ada.

Coba sendiri

package main

import (
	"fmt"
	"strings"
)

func main() {
	// Baca input
	var teamMembersInput string
	var peopleToCheckInput string
	fmt.Scanln(&teamMembersInput)
	fmt.Scanln(&peopleToCheckInput)
	
	// Uraikan string input
	teamMembers := strings.Split(teamMembersInput, ",")
	peopleToCheck := strings.Split(peopleToCheckInput, ",")
	
	// TODO: Tulis kodemu di bawah ini
	// Buat set menggunakan map[string]struct{}
	// Tambahkan anggota tim ke set
	// Periksa setiap orang menggunakan idiom comma ok
	// Tampilkan hasil verifikasi dan ringkasannya
	
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online