Collection pada Bahasa Pemrograman C#

Collection pada Bahasa Pemrograman C#
Photo by Kelly Sikkema / Unsplash

Dalam pemrograman, sering kali kita perlu menyimpan dan mengelola banyak data. Kalau pakai array, kapasitasnya statis dan kurang fleksibel. Nah, di sinilah Collection di C# berperan! Dengan Collection, kita bisa menyimpan, mengatur, dan memanipulasi data dengan cara yang lebih dinamis dan efisien.

C# punya banyak Collection bawaan yang bisa digunakan sesuai kebutuhan, mulai dari List, Dictionary, Queue, Stack, HashSet, dan masih banyak lagi. Yuk, kita bahas satu per satu!

1. Apa Itu Collection dalam C#?

Collection adalah sekumpulan objek yang bisa menyimpan data dalam jumlah fleksibel, berbeda dengan array yang ukurannya tetap.

Kenapa Harus Pakai Collection?

Mudah menambah dan menghapus data tanpa harus menentukan ukuran awal.
Memiliki fitur tambahan seperti pencarian, sorting, dan filtering.
Dapat menyimpan tipe data apapun (dengan atau tanpa generic).
Lebih efisien dibanding array dalam beberapa kasus.

Analoginya gampang! Bayangkan array itu kayak kotak es dengan slot tetap, sedangkan Collection itu seperti kantong plastik yang bisa mengembang sesuai isi. Fleksibel banget, kan?

2. Jenis-Jenis Collection di C#

C# punya beberapa jenis Collection yang bisa digunakan sesuai kebutuhan. Berikut adalah yang paling umum:

1. List – Koleksi yang Bisa Bertambah Dinamis

List<T> mirip dengan array, tapi ukurannya bisa bertambah atau berkurang sesuai kebutuhan.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        List<string> nama = new List<string>();
        nama.Add("Aldo");
        nama.Add("Budi");
        nama.Add("Cindy");
        
        Console.WriteLine("Jumlah item: " + nama.Count);
        Console.WriteLine("Nama kedua: " + nama[1]);
    }
}

Output:

Jumlah item: 3
Nama kedua: Budi

2. Dictionary<TKey, TValue> – Koleksi dengan Key-Value

Dictionary<TKey, TValue> cocok buat menyimpan data dengan pasangan kunci-nilai seperti kamus atau data JSON.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Dictionary<string, int> umur = new Dictionary<string, int>();
        umur["Aldo"] = 25;
        umur["Budi"] = 30;
        
        Console.WriteLine("Umur Aldo: " + umur["Aldo"]);
    }
}

Output:

Umur Aldo: 25

3. Queue – Struktur Data Antrian (FIFO)

Kalau butuh sistem antrian, misalnya untuk proses dalam antrean kasir, kita bisa pakai Queue<T>.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Queue<string> antrian = new Queue<string>();
        antrian.Enqueue("Orang 1");
        antrian.Enqueue("Orang 2");
        
        Console.WriteLine("Dipanggil: " + antrian.Dequeue());
    }
}

Output:

Dipanggil: Orang 1

4. Stack – Struktur Data Tumpukan (LIFO)

Berbeda dari Queue, Stack<T> mengikuti Last In, First Out (LIFO), mirip kayak tumpukan piring di restoran.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Stack<string> tumpukan = new Stack<string>();
        tumpukan.Push("Piring 1");
        tumpukan.Push("Piring 2");
        
        Console.WriteLine("Diambil: " + tumpukan.Pop());
    }
}

Output:

Diambil: Piring 2

5. HashSet – Kumpulan Data Unik

HashSet<T> digunakan untuk menyimpan data yang unik, misalnya buat mencegah duplikasi.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        HashSet<int> angka = new HashSet<int>() { 1, 2, 2, 3 };
        foreach (var item in angka) {
            Console.WriteLine(item);
        }
    }
}

Output:

1
2
3
HashSet<T> otomatis menghapus angka duplikat!

3. Kapan Harus Menggunakan Collection?

Gunakan Collection jika:

  • Data yang disimpan bisa berubah (bertambah/berkurang).
  • Butuh pencarian data cepat dengan Dictionary atau HashSet.
  • Butuh sistem FIFO (Queue) atau LIFO (Stack).

Jangan gunakan Collection jika:

  • Ukuran data sudah pasti dan tidak akan berubah (lebih baik pakai array!).
  • Tidak ingin overhead tambahan dari fitur Collection.

4. Kesimpulan

  • Collection di C# memudahkan pengelolaan data dibanding array.
  • Ada berbagai jenis Collection sesuai kebutuhan, seperti List, Dictionary, Queue, Stack, dan HashSet.
  • Memungkinkan manipulasi data secara efisien tanpa batasan ukuran seperti array.
  • Pilihan Collection tergantung pada struktur data yang dibutuhkan.

Dengan memahami Collection dalam C#, kamu bisa mengelola data dengan lebih efisien, fleksibel, dan rapi!

Read more