Deklarasi variabel Array


Sebagaimana yang telah disinggung pada bagian 1 bahwa tipe data pada Visual Basic terbagai atas dua kelompok yaitu Value Type dan Reference.
Suatu array merupakan Reference Type yang mengandung banyak variabel-variabel yang dapat diakses satu persatu sesuai dengan urutannya dalam array, dimana indexnya dimulai dari 0. Variabel-variabel yang terkandung dalam array disebut juga elemen dari array, dan semuanya harus memiliki tipe yang sama. Setiap tipe array mewarisi (inherits) semua member yang dideklarasikan pada System.Array.


Pada contoh berikut ini mendeklarasikan suatu array integer berdimensi tunggal, memberi nilai pada masing-masing elemen array, dan mencetak-nya.:
Module Test
   Sub Main()
      Dim arr(5) As Integer
      Dim i As Integer
      For i = 0 To arr.GetUpperBound(0)
         arr(i) = i * i
      Next i
      For i = 0 To arr.GetUpperBound(0)
         Console.WriteLine("arr(" & i & ") = " & arr(i))
      Next i
   End Sub
End Module
Program diatas akan menghasilkan output:
arr(0) = 0
arr(1) = 1
arr(2) = 4
arr(3) = 9
arr(4) = 16
Array dapat juga diberi nilai awal pada saat deklarasi dengan penulisan sebagai berikut:
Private a As Integer() = { 0, 2, 4, 6, 8 }
Atau penulisan yang sama adalah dengan :
Private a As Integer() = new Integer() { 0, 2, 4, 6, 8 }
Pada contoh berikut membuat array dua dimensi 5 x 2 :
Private b As Integer(,) = { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, { 8, 9 } }
Sama dengan deklarasi berikut:
Private b(4, 1) As Integer
Dan diikuti dengan pemberian nilai berikut :
b(0, 0) = 0 : b(0, 1) = 1
b(1, 0) = 2 : b(1, 1) = 3
b(2, 0) = 4 : b(2, 1) = 5
b(3, 0) = 6 : b(3, 1) = 7
b(4, 0) = 8 : b(4, 1) = 9
 

Member pada Class Array

Setiap array pada Visual Basic mewarisi member yang terdefinisi pada Class Array, adapun beberapa member tersebut adalah sebagai berikut ini :

Length
Mendapatkan jumlah elemen dalam Array (Integer 32-bit)
LongLength
Mendapatkan jumlah elemen dalam Array (Integer 64-bit)
Rank
Mendapatkan jumlah dimensi dalam Array

Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr(3,3) As Integer
    Sub Main()
        Console.WriteLine(Arr.Length())               '16
        Console.WriteLine(Arr.LongLength())           '16
        Console.WriteLine(Arr.Rank())                 '2
    End Sub
End Module


GetLength
Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 32-bit)
GetLongLength
Mendapatkan jumlah elemen dalam Array pada dimensi tertentu (Integer 64-bit)

Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr(3,3) As Integer
    Sub Main()
        Console.WriteLine(Arr.GetLength(0))           '4
        Console.WriteLine(Arr.GetLongLength(0))       '4
    End Sub
End Module


GetLowerBound
Mendapatkan nilai index batas bawah Array pada dimensi tertentu.
GetUpperBound

Mendapatkan nilai index batas atas Array pada dimensi tertentu.

Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr(3,3) As Integer
    Sub Main()
        Console.WriteLine(Arr.GetLowerBound(0))       '0
        Console.WriteLine(Arr.GetUpperBound(0))       '3
    End Sub
End Module

IndexOf

Mendapatkan index paling awal dari nilai tertentu pada Array 1 dimensi.
LastIndexOf

Mendapatkan index paling akhir dari nilai tertentu pada Array 1 dimensi.

Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr() As Integer = {0,1,2,3,4,3,2,1,0}
    Sub Main()
        Console.WriteLine(Array.IndexOf(Arr,3))       '3
        Console.WriteLine(Array.LastIndexOf(Arr,3))   '5
    End Sub
End Module

Reverse
Membalik urutan element dalam suatu Array 1 dimensi.


Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr() As Integer = {0,1,2,3,4}
    Sub Main()
        Dim I As Integer
        For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
            Console.Write(Arr(I))                           '01234
        Next I
        Console.WriteLine()
        Array.Reverse(Arr,0,4)
        For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
            Console.Write(Arr(I))                           '43210
        Next I
    End Sub
End Module

Sort
Mengurut elemen dalam suatu Array 1 dimensi.

Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr() As Integer = {0,4,3,1,2}
    Sub Main()
        Dim I As Integer
        For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
            Console.Write(Arr(I))                           '04312
        Next I
        Console.WriteLine()
        Array.Sort(Arr,0,4)
        For I = Arr.GetLowerBound(0) To Arr.GetUpperBound(0)
            Console.Write(Arr(I))                           '01234
        Next I
    End Sub
End Module

BinarySearch

Mencari Nilai tertentu pada suatu Array dengan algoritma Binary Search.

Option Explicit On
Imports System
Imports Microsoft.VisualBasic
Public Module ModArr
    Public Arr() As Integer = {0,4,3,1,2}
    Sub Main()
        Dim Nilai = 3
        Array.Sort(Arr,0,4)
        Console.WriteLine(Array.BinarySearch(Arr,Nilai))    '2
    End Sub
End Module