Array mengijinkan Anda untuk mengaitkan sekumpulan variabel dengan nama yang sama dan menggunakan angka (index) untuk memisahkan antara elemen yang satu dengan yang lainnya.
Hal ini membantu Anda dalam menulis kode yang lebih sederhana dan lebih singkat dalam banyak situasi, karena Anda dapat melakukan perulangan secara efisien cukup hanya dengan menggunakan angka index dari array tersebut. Array memiliki batas paling bawah (lower) dan batas paling atas (upper), dan elemen-elemen array berada di antara batas-batas tersebut. Karena Visual Basic mengalokasikan ruang untuk setiap angka index, hindari pendeklarasian sebuah array yang lebih besar dari yang dibutuhkan.
Array yang sedang kita bahas ini merupakan array dari variabel, yang dideklarasikan di dalam kode Anda. Array ini berbeda dari array yang berlaku pada control (control array) yang dapat Anda buat dengan mengeset nilai property Index milik suatu control pada saat design-time. Variabel array selalu berdampingan; tidak seperti control array, Anda tidak dapat memuat dan membebaskan elemen-elemen dari tengah-tengah array.
Semua elemen di array memiliki tipe data yang sama. Tentu saja, ketika tipe datanya Variant, elemen-elemen secara individu dapat mengandung jenis data yang berbeda (object, String, angka, dan sebagainya). Anda dapat mendeklarasikan sebuah array dari tipe data umum, termasuk user-defined types dan object variables (akan kita bahas pada artikel yang lainnya).
Di Visual Basic, terdapat dua jenis array, yaitu:
- Array dengan ukuran tetap, yang selalu memiliki ukuran yang sama,
- Array Dinamis (dynamic array), yang ukurannya dapat diganti pada saat run-time.
Ada tiga cara mendeklarasikan array yang berukuran tetap, tergantung pada ruang lingkup yang Anda inginkan untuk array tersebut:
- Untuk membuat sebuah array public, gunakan pernyataan Public di bagian pendeklarasian dari module untuk mendeklarasikan array tersebut.
- Untuk membuat array level module, gunakan pernyataan Private di bagian pendeklarasian dari module untuk mendeklarasikan array tersebut.
- Untuk membuat sebuah array level local, gunakan pernyataan Private di dalam sebuah procedure untuk mendeklarasikan array tersebut.
Untuk mendeklarasikan sebuah array, ikuti nama array dengan batas teratas yang diapit oleh tanda kurung. Batas teratas tidak boleh melewati range dari sebuah tipe data Long (-2,147,483,648 sampai dengan 2,147,483,647). Sebagai contoh, pendeklarasian array-array berikut berada pada bagian pendeklarasian dari sebuah module:
Dim Counters(14) As Integer ' 15 elemen.Dim Sums(20) As Double ' 21 elemen.
Public Counters(14) As Integer Public Sums(20) As Double
Dim Counters(14) As Integer Dim Sums(20) As Double
Default batas terbawah array adalah 0. Untuk menentukan nilai batas bawah tertentu, gunakan secara eksplisit (sebagai tipe data Long) dengan menggunakan kata kunci To:
Dim Counters(1 To 15) As Integer Dim Sums(100 To 120) As String
Jika Anda ingin agar setiap index batas terbawah tidak selalu dimulai dari nol tapi dimulai dari satu, maka cukup tambahkan di bagian paling atas atau di bagian pendeklarasian dari sebuah module, pernyataan berikut:
Option Base 1'Setiap variabel harus dideklarasikan terlebih duluOption Explicit 'Setiap array index terbawah harus dimulai dengan 1Option Base 1 Private Sub Form_Load() Dim a(10) Dim i As Integer For i = 1 To 10 a(i) = i MsgBox a(i) Next i End Sub
Array yang Mengandung Array yang Lain
Sangat memungkinkan untuk membuat sebuah array yang tipe datanya berjenis Variant, lalu mengisinya dengan array lain yang memiliki tipe data yang berbeda. Kode berikut ini akan membuat dua buah array, yang satu mengandung Integer dan yang lainnya mengandung String. Setelah itu, mendeklarasikan sebuah array ketiga yang bertipe Variant, dan mengisinya dengan array Integer dan array String tadi.
Private Sub Command1_Click() ' Deklarasi variabel counter. Dim intX As Integer ' Deklarasi dan isi sebuah array Integer. Dim countersA(5) As Integer For intX = 0 To 4 countersA(intX) = intX MsgBox countersA(intX) Next intX ' Deklarasi dan isi sebuah array String. Dim countersB(5) As String For intX = 0 To 4 countersB(intX) = "hello-" & intX MsgBox countersB(intX) Next intX ' Deklarasi array dengan dua elemen. Dim arrX(2) As Variant ' Isi array dengan array lain. arrX(1) = countersA() arrX(2) = countersB() ' Tampilkan anggota index ke-2 dari array pertama. MsgBox arrX(1)(2) ' Tampilkan anggota index ke-3 dari array kedua. MsgBox arrX(2)(3) End Sub
Dari contoh di sebelumnya, maka untuk menampilkan batas terbawah dan teratas dari array yang bernama countersB, maka kodenya adalah:
MsgBox "LBound = " & LBound(countersB) MsgBox "UBound = " & UBound(countersB)
Kadang-kadang Anda ingin menyimpan jejak dari informasi yang terkait dalam sebuah array. Sebagai contoh, untuk menyimpan jejak dari setiap pixel di layar komputer Anda, Anda perlu mengaitkan ke koordinat X dan Y. Hal ini dapat dilakukan dengan menggunakan sebuah array multidimensional untuk menyimpan nilai-nilai tersebut.
Dengan Visual Basic, Anda dapat mendeklarasikan array yang multi-dimensi. Sebagai contoh, pernyataan berikut mendeklarasikan sebuah array dua dimensi 10-kali-10 di dalam sebuah procedure:
Static MatrixA(9, 9) As Double
Static MatrixA(1 To 10, 1 To 10) As Double
Static MatrixA(0 To 9, 0 To 9) As Double
Sebagai contoh:
Dim MultiD(3, 1 To 10, 1 To 15)
Ketika Anda mulai menambahkan dimensi ke sebuah array, total penyimpanan yang dibutuhkan oleh array naik secara dramatis. Oleh karena itu, gunakanlah array multidimensional dengan hati-hati. Khususnya juga dengan array Variant, karena lebih besar daripada tipe data lainnya.
Penggunaan Loop untuk Memanipulasi Array
Anda dapat memproses sebuah array multidimensional dengan efisien menggunakan perulangan (loop) For … Next. Sebagai contoh, pernyataan-pernyataan berikut menginisialisasi setiap elemen di MatrixA dengan nilai berdasarkan pada lokasinya di dalam array:
Dim I As Integer, J As Integer Static MatrixA(1 To 10, 1 To 10) As Double For I = 1 To 10 For J = 1 To 10 MatrixA(I, J) = I * 10 + J Next J Next I
(*)
Tidak ada komentar:
Posting Komentar