Dictionary pada C# merupakan salah
satu bentuk dari hash table.
Apa itu hash table ?
hash table adalam struktur data
semacam array, tiap elemen memiliki value dan sebuah key. Key disini seperti
indeks pada Array. Kompleksitas pencarian sebuah data pada hash table nyaris
mencapai O(1).
Lengkapnya untuk penjelasan hash
table baca disini.
Berikut ini contoh implementasi dari
Dictionary. Disini saya contohkan valuenya adalah string dan key-nya adalah
integer. tpe dari value dan key sendiri bebas... gak harus string dan integer.
![Description: http://azerdark.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif]()
kita buat class yang mengimplementasikan
Dictionary
class
DictionaryProgram
{
Dictionary<string, int>
d; // ini objek dictionarynya
int n; // buat counter key
public DictionaryProgram()
{
d = new Dictionary<string,
int>(); // kita inisiasi dulu
n = 0;
// masukkan beberapa data
dulu
AddData("monyet");
AddData("kambing");
AddData("kucing");
AddData("kodok");
AddData("ayam");
}
}
Nah, kita buat fungsi untuk menambahkan data
public void AddData(string data)
{
d.Add(data, n);
n++; // setiap data bertambah,
counter juga bertambah
}
Fungsi untuk mencari data
public string FindData(string toFind)
{
if (d.ContainsKey(toFind))
{
int value = d[toFind];
return "kata " + toFind
+ "ditemukan dengan indeks " + value;
}
return "kata " + toFind +
"tidak ditemukan";
}
Fungsi untuk mengecek apakah sebuah
data terdapat dalam Dictionary apa enggak
public bool isContain(string toFind)
{
if (d.ContainsKey(toFind))
return true;
return false;
}
Fungsi untuk mencetak semua data
dalam Dictionary (cara 1)
public void PrintAll()
{
foreach (KeyValuePair<string,
int> pair in d)
{
Console.WriteLine("{0},
{1}",pair.Key, pair.Value);
}
}
Fungsi untuk mencetak semua data
dalam Dictionary (cara 2)
public void PrintAll()
{
foreach (var pair in d)
{
Console.WriteLine("{0},
{1}", pair.Key, pair.Value);
}
}
Fungsi konversi Dictionary ke List
public List<string> StoreToList()
{
List<string> list = new
List<string>(d.Keys);
return list;
}
Fungsi menghapus sebuah data
public void Remove(string data)
{
d.Remove(data);
}
Fungsi untuk menghapus semua data
dalam dictionary
public void RemoveAll()
{
d.Clear();
}