samuelsimanungkalit. Powered by Blogger.

Collection pada C#

Meskipun array pada C# dapat menyimpan banyak nilai sekaligus, mereka tidak dapat mengubah ukurannya secara dinamis. Class-class collection pada C# mirip dengan Array, tetapi dapat diubah ukurannya secara dinamis. Ada banyak class yang tersedia Collections pada C#. Di bawah ini adalah beberapa contoh program yang menggunakan Collections. Akan tetapi, sebelum itu, Saya ingin memperkenalkan perulangan foreach pada C# yang sangat berguna ketika digabungkan dengan Collection. Struktur perulangan foreach adalah:
?
1
2
3
4
foreach ([Tipe data item] [IdentifierItem] In [Collection]) {
  //Hal yang dilakukan
  //Contoh: Console.WriteLine([IdentifierItem]);
}

List pada C#

Di bawah ini adalah contoh suatu program yang menggunakan List pada C#. Method yang penting pada List adalah Add, Remove, RemoveAt, dan Contains. Untuk method Remove dan Contains, kita perlu mengoverride method Equals.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
class Program {
  static void Main(string[] args) {
    Sales oSales = new Sales(1);
    oSales.AddItem("Coca Cola", 3);
    oSales.AddItem("Sprite", 3);
    oSales.AddItem("Fanta", 5);
    oSales.RemoveLast();
    oSales.AddItem("Coca Cola", 5);
    oSales.AddItem("Fanta", 3);
    oSales.RemoveItem(new Sales.SalesItem() { Name = "Sprite" });
    oSales.RemoveItem(new Sales.SalesItem() { Name = "Sprite" });
    oSales.ShowItems();
    Console.ReadKey();
  }
}
public class Sales {
  public int ID { get; set; }
  public DateTime TanggalBeli { get; set; }
  public List<SalesItem> Items { get; private set; }
  public Sales(int newid) {
    this.ID = newid;
    TanggalBeli = DateTime.Now;
    Items = new List<SalesItem>();
  }
  public bool AddItem(string name, int jumlah) {
    SalesItem itemBaru = new SalesItem() { Nama = name, Jumlah = jumlah };
    if (!Items.Contains(itemBaru)) {
      Items.Add(itemBaru);
      Console.WriteLine(itemBaru.Nama + " telah ditambahkan");
      return true;
    } else {
      Console.WriteLine(itemBaru.Nama + " telah ditambahkan sebelumnya");
      return false;
    }
  }
  public bool RemoveItem(SalesItem item) {
    if (!Items.Contains(item)) {
      Console.WriteLine("Item tidak ditemukan");
      return false;
    }
    Items.Remove(item);
    Console.WriteLine(item.Nama + " telah diremove");
    return true;
  }
  public bool RemoveLast() {
    if (Items.Count == 0) {
      Console.WriteLine("Tak ada item");
      return false;
    }
    Console.WriteLine(Items[Items.Count - 1].Nama + " telah diremove");
    Items.RemoveAt(Items.Count - 1);
    return true
  }
  public void ShowItems() {
    Console.WriteLine("------- Daftar Item ----------");
    foreach (SalesItem i in Items) {
      Console.WriteLine(i.Nama + ": " + i.Jumlah);
    }
    Console.WriteLine("--------------------------------");
  }
  public class SalesItem {
    public string Nama { get; set; }
    public int Jumlah { get; set; }
    //Digunakan untuk Contains dan Remove, untuk membandingkan objek
    public override bool Equals(object obj) {
      //Dengan var, C# akan otomatis mengetahui bahwa Other adalah SalesItem
      var Banding = obj as SalesItem;
      if (Banding.Nama == this.Nama) return true;
      return false;
    }
  }
}

Dictionary pada C#

Dictionary (kamus) pada C# berisi pasangan-pasangan key dan value. Tipe item pada Dictionary adalah KeyValuePair<tipeKey, tipeValue>. Berikut adalah contoh program yang menggunakan Dictionary:
?
1
2
3
class Program {
  static void Main(string[] args) {
    Dictionary<string, string> InggrisIndonesia <span style="font-family:sans-serif,arial,verdana,trebuchet ms; line-height:1.6em">= new Dictionary<string, string>();</span>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    InggrisIndonesia.Add("Get", "Ambil");
    InggrisIndonesia.Add("Like", "Seperti");
    InggrisIndonesia.Add("Book", "Buku");
    InggrisIndonesia.Add("I", "Saya");
    InggrisIndonesia.Add("Code", "Kode");
    InggrisIndonesia.Add("For", "Untuk");
    InggrisIndonesia.Add("Money", "Uang");
    foreach (KeyValuePair<string, string> kv in InggrisIndonesia) {
      Console.WriteLine(kv.Key + " = " + kv.Value);
    }
    Console.WriteLine("---------------------------");
    Console.Write("Bahasa Indonesia dari: ");
    string cari = Console.ReadLine();
    if (InggrisIndonesia.ContainsKey(cari)) {
      Console.WriteLine(InggrisIndonesia[cari]);
    } else {
      Console.WriteLine("Kata tidak ditemukan");
    }
    Console.ReadKey();
  }
}

Queue pada C#

Ada 2 class Queue pada C#. Satu berada di bawah namespace System.Collections, yang lain berada di bawah namespace System.Collections.Generic. Pada program di bawah, kita menggunakan class Queue Generic:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Program {
    static void Main(string[] args) {
      Queue<Pelanggan> antrian = new Queue<Pelanggan>();
      antrian.Enqueue(new Pelanggan("Fandi", "62852 XXXX YYY"));
      antrian.Enqueue(new Pelanggan("Susanto", "62813 XXXX YYY"));
      antrian.Enqueue(new Pelanggan("Billy", "62819 XXX YYYY"));
      Pelanggan Dilayani;
      for (int i = 1; i <= 3; i++) {
        Dilayani = antrian.Dequeue();
        Console.WriteLine("Antrian No." + Dilayani.NoAntrian + ", Tuan." + Dilayani.Nama + " sedang dilayani");
      }
      Console.ReadKey();
    }
  }
  class Pelanggan { //Access modifier tidak ditulis = internal
    public static int NoAntrianBerikutnya = 1;
    public string Nama { get; set; }
    public string Telepon { get; set; }
    public int NoAntrian { get; set; }
    public Pelanggan(string nama, string telp) {
      this.Nama = nama;
      this.Telepon = telp;
      this.NoAntrian = NoAntrianBerikutnya++;
      //Berarti: NoAntrian = NoAntrianBerikutnya
      //Kemudian: NoAntrianBerikutnya++
    }
  }
Masih ada banyak class Collection pada C#. Tetapi kita tidak akan membahas semuanya di sini. Untuk daftar class Collection pada C# yang lengkap, kunjungi MSDN.

0 komentar