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: <keyword> 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 4 6 8 10 bil_genap(0)=2 bil_genap(2)=6 bil_genap(4)=10 bil_genap(1)=4 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: <keyword> 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