Arrays, Collections and Generics Sisilia Thya Safitri, MT Agus Priyanto, MKom
ARRAYS
Apa itu Array? • Kumpulan data yang memiliki tipe data sama • Setiap data memiliki indeks sebagai petunjuk • Penulisan Array:
nama_var_array(x) As [tipe_data] • x menunjukkan jumlah elemen (indeks) yang dimiliki sebuah variabel array atau x menunjukkan jumlah data/elemen maksimal dari variabel pada array tersebut
Contoh 2
bil_genap(0)=2
4
6
8
bil_genap(2)=6 bil_genap(1)=4
10
bil_genap(4)=10
bil_genap(3)=8
INDEKS
Array Dinamis • Array dinamis adalah array yang jumlah elemen belum diketahui jumlahnya • Array dinamis dideklarasikan tanpa mendeskripsikan jumlah elemen nya • Contoh: Dim nama_mahasiswa() As String • Perubahan jumlah elemen pada Array, dapat dilakukan dengan perintah ReDim, contoh: Dim nama_mahasiswa() As String ReDim nama_mahasiswa(2)
Array Multi Dinamis • Array multi dinamis atau multi dimensi artinya array tersebut terdiri dari 2 dimensi indeks array, yaitu (x,y) • Sintaks array multidimensi adalah sebagai berikut: nama_var_array(x,y) As [tipe_data] • X: Jumlah Data (dihitung mulai dari data ke-0 sampai seterusnya) • Y: Indeks data (angka 0 sampai seterusnya)
Array Multi Dinamis (2) Dim nama_mahasiswa(2,3) As String • Jumlah elemen : 12 yang merupakan hasil perkalian antara jumlah elemen x=3 dan y=4 – nama_mahasiswa(0,0), nama_mahasiswa(0,1), nama_mahasiswa(0,2), nama_mahasiswa(0,3) – nama_mahasiswa(1,0), nama_mahasiswa(1,1), nama_mahasiswa(1,2), nama_mahasiswa(1,3) – nama_mahasiswa(2,0), nama_mahasiswa(2,1), nama_mahasiswa(2,2), nama_mahasiswa(2,3)
Peinrtah-perintah lain pada Array • Option Base 1: membuat nomor indeks dimulai dari 1, bukan 0. Contoh: Option Base 1 Dim nama_dosen(5) As String • To: cara lain untuk penentuan langsung jumlah elemen Dim nama_dosen(1 To 5) As String • Ubound(nama_array) Dim nama_dosen(1 To 5) As String Dim Jmlh_elemen As Int Jmlh_elemen = Ubound(nama_dosen) → hasil: 5
COLLECTIONS
Boxing • Proses ketika suatu tipe data value (seperti int) dikonversikan menjadi tipe reference/object. • Proses boxing dilakukan secara implisit • Contoh: Dim i As Int i=123 Dim o As Object = i → proses perubahan value ke objek o.ToString() → boxing
UnBoxing • Proses boxing dilakukan secara eksplisit • Harus tau tipe data ug ingin dikonversikan dari tipe obyek nya • Contoh: Dim i As Int Dim o As Int i=0 i.ToString()
Queue • • • •
Sebuah ANTRIAN Berbentuk FIFO (First In First Out) Merupakan Collections of Objects Terdapat di dalam namespace System.Collections namespace
Queue dengan Linier Array
• Membutuhkan variabel Head and Tail • Beberapa method yg dapat digunakan pada queue: – Enqueue : menambah item pada queue • Stack.Enqueue(Object)
– Dequeue : menghapus item paling awal pada queue • Stack.Dequeue()
– Peek : mendapatkan referensi pada item paling awal • Stack.Peek()
Contoh Dim queueList As New Queue queueList.Enqueue(“Andi”) queueList.Enqueue(“Budi”) queueList.Enqueue(“Nina”) queueList.Dequeue() If queueList.Contains(“Nina”) Then MsgBox(“Ditemukan”) Else MsgBox(“Tidak Ditemukan”) End If
Apakah hasilnya???
Stack • • • •
Sebuah TUMPUKAN Merupakan Collection of Objects Terdapat di dalam namespace System.Collection Memiliki sifat LIFO (Last In First Out) → kebalikan dari Queue • Memungkinkan terjadinya proses Boxing and Unboxing Dim myWishList As New Stack() myWishList.Push(“MPV Car") myWishList.Push(“Mansion") myWishList.Pop()
GENERICS
• Generics mengacu pada teknologi yang dibangun ke dalam .NET Framework (diperkenalkan awalnya dengan NET versi 2.0 Framework) yang memungkinkan Anda untuk menentukan template dan kemudian mendeklarasikan variabel menggunakan template tersebut.
Cara Menggunakan Generics • Ada banyak contoh template generik di Base Class Library NET (BCL) dan banyak dari mereka dapat ditemukan di namespace System.Collections.Generic • Generics sering ditulis dengan List (Of T)
Private Sub CustomList() Dim list As New SingleLinkedList(Of String) list.Add("Nikita") list.Add("Elena") list.Add("Benajmin") list.Add("William") list.Add("Abigail") list.Add("Johnathan") TextBoxOutput.Clear() TextBoxOutput.AppendText("Count: " & list.Count) TextBoxOutput.AppendText(Environment.NewLine) For index As Integer = 0 To list.Count - 1 TextBoxOutput.AppendText("Item: " & list.Item(index)) TextBoxOutput.AppendText(Environment.NewLine) Next End Sub