HashSet pada Bahasa Pemrograman C#
Dalam pemrograman, sering kali kita butuh menyimpan sekumpulan data unik tanpa adanya duplikasi. Misalnya, kita ingin menyimpan kumpulan ID pengguna, daftar kata dalam teks, atau angka acak yang tidak boleh berulang. Nah, di sinilah HashSet dalam C# berperan!
HashSet adalah struktur data berbasis hashing yang memungkinkan kita menyimpan data tanpa duplikasi dan dengan waktu pencarian yang sangat cepat.
Yuk, kita bahas lebih dalam apa itu HashSet dalam C#, cara menggunakannya, dan contoh implementasinya!
1. Apa Itu HashSet dalam C#?
HashSet<T>
adalah koleksi yang menyimpan kumpulan elemen unik menggunakan struktur data hash table. Ini membuat operasi penambahan, pencarian, dan penghapusan data menjadi lebih cepat dibandingkan List<T>
.
Ciri-Ciri HashSet
✅ Menyimpan elemen tanpa duplikasi (setiap elemen harus unik).
✅ Waktu pencarian lebih cepat dibandingkan List karena berbasis hashing.
✅ Tidak memiliki indeks seperti List, jadi tidak bisa diakses dengan list[i]
.
✅ Cocok untuk menyimpan kumpulan data unik seperti ID, tag, atau daftar item.
Bayangkan HashSet itu seperti daftar tamu eksklusif, di mana satu nama hanya boleh muncul sekali!
2. Cara Menggunakan HashSet
Untuk menggunakan HashSet<T>
, kita perlu menambahkan namespace System.Collections.Generic
.
Contoh HashSet Sederhana
using System;
using System.Collections.Generic;
class Program {
static void Main() {
HashSet<int> angka = new HashSet<int>();
angka.Add(10);
angka.Add(20);
angka.Add(30);
angka.Add(10); // Elemen ini tidak akan ditambahkan karena sudah ada
foreach (var item in angka) {
Console.WriteLine("Angka: " + item);
}
}
}
Output:
Angka: 10
Angka: 20
Angka: 30
Penjelasan:
Add(10)
menambahkan angka 10 ke dalam HashSet.Add(10)
kedua tidak akan ditambahkan karena elemen harus unik.foreach
digunakan untuk menampilkan semua elemen dalam HashSet.
3. Operasi Dasar dalam HashSet
Menambahkan Elemen ke HashSet (Add
)
HashSet<string> nama = new HashSet<string>();
nama.Add("Aldo");
nama.Add("Budi");
nama.Add("Cindy");
Menghapus Elemen dari HashSet (Remove
)
nama.Remove("Budi");
Mengecek Apakah Elemen Ada (Contains
)
if (nama.Contains("Aldo")) {
Console.WriteLine("Aldo ada dalam HashSet.");
}
Menghapus Semua Elemen dari HashSet (Clear
)
nama.Clear();
4. Operasi Set dalam HashSet
Karena HashSet<T>
adalah struktur data himpunan (Set), kita bisa melakukan operasi set matematika seperti Union, Intersect, dan Except.
Menggabungkan Dua HashSet (UnionWith
)
HashSet<int> setA = new HashSet<int> { 1, 2, 3 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5 };
setA.UnionWith(setB);
Output:
1 2 3 4 5
Mendapatkan Elemen yang Sama (IntersectWith
)
setA.IntersectWith(setB);
Output:
3
Mendapatkan Elemen yang Hanya Ada di Set Pertama (ExceptWith
)
setA.ExceptWith(setB);
Output:
1 2
Kenapa Pakai Operasi Set?
- Cocok untuk filtering data unik seperti tag, kategori, atau daftar nama.
- Berguna dalam pencarian cepat berdasarkan kumpulan data tertentu.
5. Kapan Harus Menggunakan HashSet?
✅ Gunakan HashSet jika:
- Butuh menyimpan data unik tanpa duplikasi.
- Ingin pencarian dan pengecekan cepat apakah suatu elemen ada atau tidak.
- Mengelola kumpulan data tanpa indeks.
❌ Jangan gunakan HashSet jika:
- Butuh mengakses elemen berdasarkan indeks (gunakan
List<T>
). - Urutan elemen sangat penting (gunakan
SortedSet<T>
jika ingin unik + urutan).
6. Kesimpulan
- HashSet adalah koleksi yang hanya menyimpan elemen unik.
- Menggunakan hashing untuk pencarian cepat dibandingkan List.
- Mendukung operasi set seperti Union, Intersect, dan Except.
- Cocok untuk menyimpan data unik seperti ID, tag, atau daftar nama.
Dengan memahami HashSet dalam C#, kamu bisa mengelola data dengan lebih efisien dan tanpa duplikasi!