MINGGU X : COLLECTIONS

dokumen-dokumen yang mirip
*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

Arrays, Collections and Generics. Sisilia Thya Safitri, MT Agus Priyanto, MKom

Algoritma Dan Struktur Data II. Queue

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data STACK

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Pemrograman Berorientasi. Array dan Collections

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

Politeknik Elektronika Negeri Surabaya

MODUL 4. COLLECTIONS ARRAYS, QUEUE, dan STACK

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Algoritma Dan Struktur Data II

SATUAN ACARA PENGAJARAN

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

Algoritma Pemrograman [BS204]

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Stack. Gambar 1.1 Stack

Modul 3: Tipe Data Abstrak Dinamis List, LinkList dan Model Antrian Stack & Queue

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Algoritma Dan Struktur Data II

Gambar 1. Single Linked List

Struktur Data Array. Rijal Fadilah S.Si

IF PEMROGRAMAN LANJUT GENERIC. Oleh : Andri Heryandi, M.T.

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Algoritma dan Struktur Data. Queue

KOLEKSI OBJECT. Farah Zakiyah Rahmanti, M.T Universitas Dian Nuswantoro

Pendahuluan Struktur Data. Nisa ul Hafidhoh

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

(3) BAHAN KAJIAN (materi ajar)

Gambar 1. Single Linked List

TIF 4201 Algoritma Dan Struktur Data

Pertemuan 7. REVIEW dan QUIS

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Collections. Collections Framework

Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

ARNA FARIZA YULIANA SETIOWATI

STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom.

Gambar 1. Single Linked List

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

Tumpukan (Stack) Stack bersifat LIFO (Last In First Out) LIFO Data yang terakhir masuk ke dalam stack menjadi data yang pertama keluar dari stack

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritma Pemrograman & Struktur Data

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

Algoritma dan Struktur Data. Pertemuan 7 Linked List

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

LAPORAN PRAKTIKUM RESMI QUEUE

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

RENCANA PEMBELAJARAN

Materi 8 : STACK (TUMPUKAN) Dosen:

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian).

MODUL PEMROGRAMAN 2. Queue (Antrian)

Gambar 1. Single Linked List

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

BAB IV Antrian(Queue)

Algoritma dan Struktur Data. Ramos Somya

BAB 2 LANDASAN TEORI

RENCANA PEMBELAJARAN SEMESTER

KUM 5 IMPLEMENTASI QUEUE

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

S TA C K Sunu Wibirama

04. Single Linked List

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

GENERICS. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya. Topik

Lab. Teknik Informatika Struktur Data 1

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

1. E = a + 2b d + dh f g. Ubah ke dalam notasi postfix: a. Menggunakan Algoritma b. Secara manual c. Dari pohon biner menggunakan Stack

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

05. Double Linked List

PEMROGRAMAN BERORIENTASI OBJEK COLLECTION DAN MULTITHREADING. ADAM MUKHARIL BACHTIAR TEKNIK INFORMATIKA UNIKOM

RENCANA PEMBELAJARAN SEMESTER

Praktikum Algoritma dan Struktur Data 2010

Pemrograman Berorientasi Objek Collection dan Multithreading. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

STRUKTUR DATA Pertemuan 1 s.d 8

BAB III QUEUE (ANTRIAN)

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

SATUAN ACARA PERKULIAHAN MATA KULIAH : STRUKTUR DATA KODE / SKS : IK410 / 2 SKS

Materi 9 : QUEUE (ANTREAN) Dosen:

STRUKTUR DATA. Literatur

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

Politeknik Elektronika Negeri Surabaya

MODUL PRAKTIKUM STRUKTUR DATA

Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.

Operasi File. Chapter 13

Struktur Data dan Algoritma

BAB II STACK Atau TUMPUKAN

Jobsheet 16 String dan Collection (List, Set, Map)

BAB 2 LANDASAN TEORI

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

Transkripsi:

MINGGU X : COLLECTIONS Pembahasan minggu ini adalah seputar collections. Pembahasan tentang collections adalah pembahasan tentang kegunaan collections dan beberapa jenis collections yang telah disediakan oleh C#. Kompetensi Khusus Setelah mengikuti perkuliahan ini, diharapkan mahasiswa memahami manfaat dan penggunaan collections. Materi Perkuliahan Array dapat digunakan sebagai media penyimpanan (storage) sekumpulan data namun array memiliki beberapa kekurangan. Salah satu kekurangan array dalam C# adalah jumlah item atau elemen array tersebut. Jumlah item atau elemen yang dapt ditampung dalam array tersebut bersifat tetap, tidak bisa berubah sesuai kebutuhan. Ada saatnya kita membutuhkan jumlah elemen yang harus disimpan dalam sebuah storage. Misalkan saja sebuah kita memiliki array bernama daftarpeserta untuk menyimpan objek peserta sebuah acara lari. Saat objek daftarpeserta tersebut dibuat, belum diketahui jumlah peserta yang akan mengikuti kegiatan. Jika menentukan ukuran array yang terlalu kecil maka ada kemungkinan jumlah peserta melebihi ukuran array yang ditentukan. Jika ukuran array ditetapkan terlalu besar, maka akan ada kemungkinan slot-slot array yang tidak terisi jika peserta yang mengikuti kegiatan tersebut sedikit jumlahnya. Hal ini tentu akan membuat penggunaan memori menjadi sia-sia. Kekurangan array lainnya adalah fleksibilitas. Setiap elemen dalam array hanya bisa diakses melalui indeks masing-masing elemen dalam array tersebut dan indeks tersebut hanya berupa angka. Kadang kita membutuhkan metode lain untuk mengakses elemen dalam array tersebut. Misalnya sebuah antrian, akses terhadap item dalam antrian membutuhkan urutan. Item yang diambil pertama sekali adalah item yang disimpan pertama sekali. Array tidak bisa memenuhi hal tersebut. Untuk mengatasi masalah diatas, C# menyediakan fasilitas yang disebut denga collections. Collections merupakan kelas-kelas yang disediakan oleh.net yang dapat digunakan untuk menyimpan dan mengambil data dengan berbagai cara. Terdapat 2 jenis collections yaitu standard collections dan generics collections. Standar collections terdapat dalam namespace System.Generics dan Generic Collection terdapat dalam namespace System.Data.Collections yang artinya untuk menggunakan collections tersebut, namespace yang bersangkutan harus disertakan dalam kode sumber. Standard collections dianjurkan untuk tidak digunakan lagi.

Microsoft menganggap standard collections sudah deprecated dan menyediakan Generics Collections sebagai penggantinya. Namun Microsoft masih menyediakan Collections tersebut untuk kebutuhan backward copatibality jika dibutuhkan. Berikut penjelasan singkat standard collection yang ada dalam C# dan penggantinya (collection yang setara) pada Generic Collections. ArrayList o Untuk menyimpan objek secara dinamis dan berkelanjutan o Digantikan oleh List<T> pada Generic Collections. Hashtable o Sekumpulan key-value objek, tidak terurut dan asosiatif. o Digantikan oleh Dictionary<TKey,TValue> pada Generic Collections. SortedList o Sekumpulan key-value objek,terurut dan asosiatif. o Digantikan oleh SortedList<T> pada Generic Collections. Queue o First-in-first-out (FIFO) collection. o Digantikan oleh Queue<T> pada Generic Collections. Stack o Last-in-first-out (LIFO) collection. o Digantikan oleh Stack<T> pada Generic Collections. Pembahasan pada subbab ini lebih difokuskan kepada Generic Collections. Secara umum generic collections dibagi menjadi 2 kategori yaitu : Associative Collections Merupakan collections yang menyimpan nilai dalam collection berikut dengan key yang digunakan sebagai referensi terhadap nilai yang disimpan. Artinya nilai yang disimpan diasosiasikan dengan key yang disediakan. Non-Associative Collections Collections yang menyimmpan nilai tanpa menyertakan key untuk nilai yang disimpan. Berikut ini adalah kelas-kelas collections yang disediakan dalam Generic Collections berikut dengan kegunaan masing-masing collections.

Pembahasan selanjutnya akan difokuskan kepada beberapa jenis collections saja List<T> Kelas List<T> merupakan struktur data yang memodelkan sebuah daftar. Fungsi dari list hampir sama dengan array. Perbedaan list dengan array adalah jumlah elemen pada list bersifat dinamis, dapat bertambah/berkurang pada saat program sedang berjalan. Beberapa method (operasi) yang terdapat dalam List adalah: Remove() RemoveAt() Add() Insert() Sort() Contoh Penggunaan List untuk membuat daftar nama peserta dapat dilihat dari kode sumber. List<string> daftariritology = new List<string>(); //Menambahkan item ke dalam daftar daftariritology.add("sujauh"); daftariritology.add("sudiman"); daftariritology.add("sukijan"); //Bisa juga dengan menggunakan notasi array daftariritology[3] = "Sudirman"; daftariritology.insert(1, "Sukirman"); Console.WriteLine("daftarIritology[1] : 0", daftariritology[1]);

//Menghapus item daftariritology.remove("sukirman"); daftariritology.removeat(1); foreach (String item in daftariritology) Console.WriteLine(item); Output dari program diatas adalah sebagai berikut LinkedList<T> LinkedList<T> merupakan struktur data yang juga digunakan untuk memodelkan sebuah daftar layaknya kelas List<T>. Hanya saja LinkedList tidak menggunakan indeks. Setiap item dalam LinkedList<T> memiliki referensi ke item selanjutnya dan item sebelumnya. Item-item yang ada dalam LinkedList<T> hanya dapat diambil dengan cara menelusuri item-item tersebut dari awal (atau dari posisi saat ini) sampai item yang diinginkan. Method-method yang dimiliki oleh LinkedList<T> adalah sebagai berikut: AddFirst() AddBefore() AddAfter() Remove() RemoveFirst() RemoveLast() Contoh penggunaan LinkedList dapat dilihat pada kode sumber berikut ini. LinkedList<string> gerbong; LinkedListNode<string> node;

gerbong = new LinkedList<string>(); gerbong.addfirst("parahiyangan"); gerbong.addfirst("sangkuni"); Console.WriteLine(gerbong.First.Value); node = gerbong.first; gerbong.addafter(node, "Jalaparang"); node = gerbong.last; gerbong.addbefore(node, "Baratayudha"); for (node = gerbong.first; node!= null; node = node.next) string namagerbong = node.value; Console.WriteLine(namaGerbong); Output dari program diatas adalah sebagai berikut. Queue<T> Kelas Queue<T> adalah struktur data yang digunakan untuk memodelkan antrian. Antrian memiliki karakteristik FIFO (First In First Out). Item yang pertama disimpan dalam antrian akan dikeluarkan/diproses pertama kali juga. Kelas Queue<T> memiliki 2 operasi yaitu: Enqueue() Dequeue() Contoh kode kelas Queue<T> dapat dilihat pada contoh berikut ini. Queue<string> antrianpeserta = new Queue<string>(); antrianpeserta.enqueue("amin"); antrianpeserta.enqueue("badu"); string peserta01 = antrianpeserta.dequeue(); Console.WriteLine(peserta01); antrianpeserta.enqueue("cica"); antrianpeserta.enqueue("dodi"); string peserta02 = antrianpeserta.dequeue(); Console.WriteLine(peserta02);

Console.WriteLine("-- Antrian tersisa"); foreach (string peserta in antrianpeserta) Console.WriteLine(peserta); Output dari program diatas adalah sebagai berikut. Stack<T> Kelas Stack<T> adalah struktur data generik yang memodelkan sebuah tumpukan. Tumpukan memiliki karakteristik LIFO (Last In First Out). Item yang terakhir disimpan dalam Stack<T> akan diproses terlebih dahulu. Hal ini mirip dengan tumpukan, item yang diambil atau diproses terlebih dahulu dalam tumpukan adalah item yang paling diatas (item yang diletakkan paling terakhir). Kelas Stack<T> memiliki 2 operasi utama yaitu Push dan Pop. Selain itu Stack juga memiliki method Peek() yang digunakan untuk melihat item yang akan diproses. Contoh penggunaan Kelas Stack dapat dilihat dari contoh berikut ini. Stack<string> karduses = new Stack<string>(); karduses.push("aqua"); karduses.push("bimoli"); karduses.push("coklat"); string kardus01 = karduses.pop(); Console.WriteLine("Kardus 1 : 0", kardus01); karduses.push("dodol"); karduses.push("empal Gentong"); string kardus02 = karduses.pop(); Console.WriteLine("Kardus 2 : 0", kardus02); Console.WriteLine("-- Kardus tersisa"); foreach (string kardus in karduses) Console.WriteLine(kardus);

Output dari program diatas adalah sebagai berikut. Dictionary<Tkey, TValue> Merupakan kelas yang digunakan untuk menyimpan data dalam bentuk pasangan key/value. Setiap data yang disimpan akan diidentifikasi melalui key yang disimpan, bukan menggunakan indeksnya. Pada dasarnya Dictionary<Tkey, TValue> sama saja seperti List<T>, hanya saja indek pada Dictionary lebih fleksibel dibandingkan List. Indeks yang digunakan dalam List berupa angka dan indeksnya terurut sedangkan pada Dictionary<Tkey, TValue> indeksnya dapat berupa tipe data lain. Hanya saja key atau indeks dalam Dictionary tidak boleh sama. Contoh penggunaan kelas Dictionary dapat dilihat pada contoh dibawah ini. Dictionary<string, double> ipks = new Dictionary<string, double>(); ipks.add("1310521001", 3.5); ipks.add("1310522001", 3.25); //Bisa juga dengan menggunakan notasi array ipks["1310521008"] = 2.99; foreach (KeyValuePair<string, double> ipk in ipks) Console.WriteLine("IPK 0 adalah 1", ipk.key, ipk.value); Output dari kode diatas adalah sebagai berikut. SortedList<TKey, TValue> SortedList<TKey, TValue> merupakan Dictionary yang selalu berada dalam kondisi terurut berdasarkan key-nya.

Collection Initializer Collection Initializer merupakan salah satu metode untuk inisialisasi collection yang mendefinisikan item awal collection pada saat inisialiasi. Metode ini hanya bisa digunakan pada collection yang memiliki method Add() seperti pada List dan Dictionary. Contoh penggunaan Collection Initializer pada List adalah sebagai berikut. List<string> daftariritology = new List<string> "Sujauh", "Sudiman", "Sukijan", "Sudirman" ; Collection Initializer pada Dictionary berbeda dengan List. Hal ini dikarenakan pada Dictionary terdapat Key. Collection Initializer pada Dictionary dapat dilihat pada contoh berikut ini. Dictionary<string, double> ipks = new Dictionary<string, double>() "1310521001", 3.5, "1310522001", 3.25, "1310521008", 2.99 ;