• Tidak ada hasil yang ditemukan

Makalah Collection C#

N/A
N/A
Protected

Academic year: 2021

Membagikan "Makalah Collection C#"

Copied!
13
0
0

Teks penuh

(1)

COLLECTION

Pada bab ini akan dibahas tentang C# collection. .NET framework menyediakan class khusus untuk pengambilan dan penyimpanan data. Ada dua jenis collection yang berbeda di C#. Collection standar, yang dapat ditemukan dibawah namespace System.Collection dan collection generik, dibawah system.collection.generic. collection generic lebih flexible dan cara yang lebih diterapkan untuk bekerja dengan data.

ArrayList

ArrayList adalah collection dari standard System.Collection namespace. Atau kita bisa menyebut generasi selanjutnya array di C#. Sebuah array yang dinamis. Menyediakan akses acak pada elementnya. Sebuah ArrayList akan otomatis melebar saat data ditambahkan. Tidak seperti array, ArrayList dapat menyimpan data dari beberapa type data. Element dari ArrayList di akses via index integer. alokasi ArrayList dapat dicapai melalui properti TrimToSize.

Metode pada ArrayList:

Add:

Metode Add ini digunakan untuk menambahkan object ke ArrayList. Element apapun yang kita tambahkan pada ArrayList akan dianggap sebagai sebuah object. Bentuk Umum :

ArrayListObject.Add(element);

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add("Jaka"); oArrayList.Add("Stephen"); oArrayList.Add(99); oArrayList.Add("@"); oArrayList.Add("55.55"); oArrayList.Add(oStack);

(2)

beberapa element yang telah ditambahakan tersebut dianggap sebagai object. Element dapat di duplikasi atau bisa menambahkan null pada ArrayList.

Add Range:

Metode Add Range akan menambahkan element dari collection lainnnya. Disini element dapat null, tapi Range collection yang ditambahkan tidak dapat null.

Contoh:

Stack oStack = new Stack(); oStack.Push(1);

oStack.Push(2); oStack.Push(3); oStack.Push(4);

ArrayList oArrayList = new ArrayList();

oArrayList.Add("Stephen");

oArrayList.Add("Gerrard");

oArrayList.AddRange(oStack);

yang terjadi adalah, ketika kita menambahkan stack, object stack akan dianggap element pada ArrayList. Tapi ketika menggunakan metode AddRange itu akan menyimpan element pada stack satu-persatu menjadi element pada ArrayList. Element akan ditambahkan di akhir ArrayList.

Hasil dari contoh diatas : Stephen Gerrard 1 2 3 4

Clear:

Metode clear digunakan untuk menghapus/mengosongkan element pada ArrayList.

ArrayListObject.Clear();

ArrayList oArrayList = new ArrayList(); oArrayList.Add("c#");

(3)

oArrayList.Add("PHP");

total element pada ArrayList diatas adalah 3, dan menggunakan metode clear:

oArrayList.Clear();

sekarang total element pada ArrayList adalah 0, namun kapasitas tetap sama seperti saat di set.

Binarysearch:

Metode beinarysearch di gunakan untuk mendapatkan lokasi dari object pada ArrayList. Metode ini menggunakan algoritma binary search untuk menemukan element. Metode ini akan mengembalikan posisi element pada ArrayList.

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add(1);

oArrayList.Add(3); oArrayList.Add(5); oArrayList.Add(7);

int iPos = oArrayList.BinarySearch(3);

akan mengembalika lokasi dari nilai index menjadi variable integer.

Insert:

Metode insert digunakan untuk menyisipkan element pada ArrayList yang tersedia. Fitur baru yang lebih specific dari ArrayList jika dibandingkan array.

Bentuk Umum:

ArrayListObject.Insert(Position,Object);

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add(1);

oArrayList.Add(3); oArrayList.Add(4);

(4)

element akan tersimpan seperti ini: 1 3 4

Kita sisip element baru pada posisi 2:

oArrayList.Insert(2,2);

setelah penyisipan, hasilnya akan seperti ini: 1 2 3 4

InsertRange:

metode InsertRange digunakan untuk menyisipkan element collection dari collection yang lain dari posisi index yang lebih specific. Disini akan menyisipkan individual object dari collection object.

Bentuk umum:

ArrayListObject.InsertRange(Position,CollectionObject);

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add(1);

oArrayList.Add(5); oArrayList.Add(6);

Output dari ArrayList tersebut: 1 5 6

Menyisipkan collection object:

Stack oStack = new Stack(); oStack.Push(2);

oStack.Push(3); oStack.Push(4);

oArrayList.InsertRange(2,oStack);

(5)

1 2 3 4 5 6

Remove:

Metode remove digunakan untuk menghapus element dari ArrayList. Jika ada beberapa object yang mempunyai nama sama ketika di remove, maka akan di remove element yang pertama mengalami remove pada ArrayList.

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add("Jaka");

oArrayList.Add("Septian"); oArrayList.Add("Jaka"); oArrayList.Remove("Jaka");

Akan meremove element pertama pada ArrayList.

RemoveAt:

Metode RemoveAt digunakan untuk menghapus lokasi yang diinginkan pada element ArrayList.

Bentuk umum:

ArrayListObject.RemoveAt(ArrayListIndex);

Contoh:

ArrayList oArrayList = new ArrayList(); oArrayList.Add("Jaka");

oArrayList.Add("Septian"); oArrayList.Add("Jaka"); oArrayList.RemoveAt(1);

Akan meremove element kedua dari ArrayList.

(6)

Metode RemoveRange digunakan untuk meremove collection object pada ArrayList. Akan meremove Range dari posisi index sampai jumlah element yang diinginkan pada metode RemoveRange .

Bentuk umum:

ArrayListObject.RemoveRange(Starting Index, Number of objects);

Contoh:

ArrayList oArrayList = new ArrayList(); For(int i=1;i<10;i++)

{

oArrayList.Add(i); }

10 element telah ditambahkan sebagai object pada ArrayList. Akan dihapus 3 element dimulai dari index ke 5:

Hasilnya akan seperti ini: 1 2 3 4 8 9 10

Sort:

Metode sort digunakan untuk mengurutkan object dalam urutan ascending. Menggunakan algoritma QuickSort untuk mengurutkan element pada ArrayList.

Contoh:

oArrayList.Add("B"); oArrayList.Add("A"); oArrayList.Add("Z"); oArrayList.Sort();

outputnya akan seperti ini: A B Z

(7)

Metode reverse digunakan untuk menyusun object dalam urutan yang berlawanan. Contoh: oArrayList.Add("A"); oArrayList.Add("B"); oArrayList.Add("C"); oArrayList.Reverse();

sebelum metode reverse A B C

Setelah metode reverse C B A

GetEnumerator:

Metode GetEnumerator digunakan untuk mendapatkan collection dari object pada ArrayList sebagai iterator. Dapat di implementasikan dengan interface yang lebih cocok. Bagaimanapun element ArrayList dapat di iterasi melalui foreach atau loop statements.

Contoh:

oArrayList.Add("B"); oArrayList.Add("A"); oArrayList.Add("Z");

IEnumerator OIEnum = oArrayList.GetEnumerator();

Contains:

Metode ini digunakan untuk memeriksa sebuah element apakah ada atau tidak. Akan mengembalikan nilai Boolean sebagai hasil.

(8)

Properti pada ArrayList

1. Capcity : properti ini digunakan untuk mengeset atau mendapatkan ukuran dari ArrayList. Seperti yang diketahui ukuran penyimpanan akan bertambah sebanyak yang dibutukan. Ukuran default adalah 16.

2. Count : akan mengembalikan jumlah total dari element ArrayList.

3. IsFixedSize : akan mengembalikan apakah ArrayList fixed size atau tidak, dikembalikan dalam nilai Boolean.

4. IsReadOnly : akan mengembalikan apakah ArrayList read only atau tidak, dikembalikan dalam nilai Boolean.

Kelebihan dan kekurangan ArrayList: Kelebihan:

 ArrayList bukan penyimpanan type data yang spesifik, akan menyimpan apapun sebagai object.

 Tidak dibutukan alokasi dan de-alokasi untuk menyimpan data.

 Mempunyai metode pengurutan yang jelas.

 Dapat menyisipkan dan menghapus element di posisi manapun di ArrayList.

 Menyimpan object sebagai element. Kekurangan:

 ArrayList tidak begitu tangguh. Harus melakukan sesuatu dengan type casting ketika anda mengambil data, ketika kita selalu melakukan type casting, akan mempengaruhi performa.

 Menggunakan pendekatan penyimpanan LinkedList, karena ketika anda menyisipkan atau menghapus posisi yang specific harus melakukan forward/backward dalam alamat penyimpanan.

 Kadang-kadang menuntun pada runtime error. Sebagai contoh, ketika kita menyimpanan id dari employee pada ArrayList dan kita ingin mengambil element untuk operasi yang lain. Jelas kita perlu melakuan type casting, pada saat itu jika ada element string apa yang akan terjadi? Pasti akan error.

(9)
(10)

LinkedList

LinkedList membuat penyisipan dan penghapusan dapat berjalan cepat. Mengimplementasikan linked list. Setiap object di alokasikan secara terpisah, beberapa operasi tidak membutuhkan semua collection untuk disalin. Dalam beberapa kasus umum LinkedList menghalangi kinerja. Kelebihan utama LinkedList pada array adalah link menyediakan kita dengan kemampuan untuk menyusun element dengan efisien.

Operasi pada LinkedList: Menambah data

Program ini menunjukan pemakaia dari type LinkedList. Pertama meminta LinkedList constructor dengan parameter type string. Kemudiam menggunakan instance method AddLast dan AddFirst untuk menambahkan element pada struktur data linked list internal.

using System;

using System.Collections.Generic; class Program

{

static void Main() {

//

// Membuat instance object LinkedList //

LinkedList<string> linked = new LinkedList<string>(); //

// menggunakan metode AddLast untuk menambahkan element diakhir. // menggunakan metode AddFirst untuk menambahkan element diawal. // linked.AddLast("cat"); linked.AddLast("dog"); linked.AddLast("man"); linked.AddFirst("first"); // } }

Outputnya seperti ini: First cat dog man

(11)

Ini adalah contoh pemanggilan pertama metode instance find. Setelah find, kita akan menggunakan penunjuk LinkedListNode variable untuk melakukan penyisipan posisi relatif ke LinkedList.

using System;

using System.Collections.Generic; class Program

{

static void Main() {

//

// Membuat Linked List baru //

LinkedList<string> linked = new LinkedList<string>(); //

// Menambah tiga element pada linked list //

linked.AddLast("one"); linked.AddLast("two"); linked.AddLast("three"); //

// Sisip node sebelum node kedua //

LinkedListNode<string> node = linked.Find("one"); linked.AddAfter(node, "inserted");

// } }

Outputnya aka seperti ini: One insert two three

Metode find pada LinkedList adalah instace method yang menerima satu parameter. Untuk LinkedList dengan parameter type string, metode ini menerima parameter string. Untuk LinkedList dengan type lain, instance type tersebut di butuhkan.

AddBefore dan AddAfter dalam LinkedList menyediakan cara untuk menyisipkan node pada linked list dengan cara yang relative. Untuk menggunakan metode ini kita harus melokasikan terlebih dahulu dengan metode Find node yang lain pada list.

Menghapus

Kita dapat menggunakan Remove untuk menghapus element dengan nilai terntentu. Terdapat juga overload yang menerima referensi parameter dari type

(12)

LinkedListNode. Pertama kita dapat menggunakan Find untuk menemukan node, dan kemudian menghapusnya dengan Remove.

Kita juga dapat menghapus node pertama atau terakhir pada LinkedList dengan metode RemoveFirst dan RemoveLast. Ketika ada node yang sama yang akan dihapus maka Remove akan menghapus node pertama yang ditemukan, maka node yang sama yang lain tidak akan terhapus.

Kelebihan dan kekurangan LinkedList Kelebihan

 Dalam penggunaan memori, LinkedList sering kali jauh lebih efisien daripada array atau List dari element.

 Dengan LinkedList waktu yang dibutuhkan untuk menyisipkan atau menghapus element pada collection dapat di minimalisir. Sedangkan pada array atau List, untuk menyisipkan element, kita harus menyalin seluruh element pada array tiap waktu.

Kekurangan

 Mengurangi level abstraksi, penting seperti mengurangi akses CPU dan memori pada program. Tiap kali referensi LinkedList ditemukan, level yang dari indireksi terjadi dan kinerja menurun.

(13)

Referensi

Dokumen terkait

Pengukuran waktu kerja (work measurement atau time study) merupakan suatu usaha-usaha untuk menetapkan waktu baku yang dibutuhkan guna menyelesaikan suatu pekerjaan untuk

Pada umumnya dibutuhkan waktu penyembuhan yang lebih lama untuk penanganan luka kronis, dibutuhkan juga perawatan yang bervariasi untuk menangani luka kronis. Hal

Memperlengkapi orang lain bias membebaskan kita secara pribadi untuk memiliki lebih banyak waktu mengerjakan hal-hal penting dalam hidup kita, meningkatkan efektivitas

Pada viscometer hoppler yang diukur adalah waktu yang dibutuhkan oleh sebuah bola untuk melewati cairan pada jarak atau tinggi tertentu, dikarenakan adanya gravitasi

Seperti pertumbuhan yang dibutuhkan untuk memasok metabolit yang diperlukan dalam memproduksi asam glutamat dan pada waktu yang sama meminimalkan jumlah gula yang

Bulan bersama-sama dengan planet bumi juga mengelilingi matahari. Seperti yang kita ketahui bahwa waktu yang dibutuhkan oleh bumi untuk beredar mengelilingi matahari adalah

Salah satu contoh viskometer Ostwald Pada viskositas Ostwald yang diukur adalah waktu yang dibutuhkan oleh sejumlah cairan tertentu untuk mengalir melalui

Waktu baku adalah waktu yang dibutuhkan seorang pekerja rata-rata untuk menyelesaikan suatu satuan pekerjaan secara wajar dalam suatu rancangan sistem kerja tertentu... Element