10 July 2014

VB6: Array


Array adalah sebuah kumpulan item (nilai) dengan tipe data yang sama. Semua item memiliki nama yang sama dan diidentifikasikan dengan index (urutan). Saat kita berkerja dengan banyak data dengan tipe data yang sama dapat  menggunakan array dari pada mendeklarasikan banyak variable.

Sebagai contoh jika kita perlu memasukan 100 nama maka akan report jika kita harus mendeklarasikan variable satu per satu. Mendeklarasikan dalam bentuk array akan jauh lebih efisien dan sistematis. Kita mendeklarasikan satu array dengan pembeda berupa nilai index untuk setiap item (contoh: nama(1), nama(2), nama(3), ... dst.

Dimensi Array
Array bisa berbentuk satu dimensi ataupun multi dimensi. Array satu dimensi seperti item table berkolom 1 dan memiliki banyak baris. Sementara Array multi dimensi seperti table dengan banyak kolom dan baris.
Format array :
- satu dimensi -> NamaArray(x)
- Dua dimensi -> NamaArray(x,y)
- Tiga dimensi NamaArray(x,y,z)

Normalnya yang digunakan adalah array satu dimensi atau array 2 dimensi. Kita hanya akan menggunakan array yang lebih dari 2 dimensi hanya digunakan dalam kasus yang lebih kompleks.

Contoh Array 1 Dimensi:
Name(1), Name(2), Name(3), Name(4), Name(5), Name(6)

Contoh Array 2 Dimensi:

Name(1,1), Name(1,2), Name(1,3), Name(1,4)
Name(2,1), Name(2,2), Name(2,3), Name(2,4)
Name(3,1), Name(3,2), Name(3,3), Name(3,4)

Mendeklarasikan array
Sintaks:
Dim|Public|Private ArrayName(Subscript) As DataType

  • Dim, Public, dan Private mendeklarasikan array berdasarkan scope-nya.
  • ArrayName adalah nama array.
  • Subscript adalah dimensi array.
  • DataType adalah tipe data yang valid.
Contoh:
Dim NoUrut(10) As Integer  '11 item mulai dari index 0
Dim Bulan(1 to 12) As Integer  '12 item mulai dari index 1 sampai
12
Dim Nama(5,5) As String 'multi dimensi array table ukuran 5x5

Ukuran array sudah ditentukan di awal disebut fixed size array. Kita juga dapat mendeklarasikan array secara dynamic yaitu ukuran array dapat diubah setelah deklarasi awal dengan sintaks ReDim.
Sintaks:
ReDim [Preserve] ArrayName(Subscript) As DataType
  • ReDim adalah kata kunci yang mengindikasikan perubahan ukuran array.
  • Preserve bersifat opsional yang berfungsi untuk mempertahankan nilai array yang sudah ada saat melebarkan ukuran array. Tanpa menggunakan Preserve, nilai array yang sudah diinput sebelumnya akan hilang dan kembali ke nilai defaultnya.
  • ArrayName adalah nama array.
  • Subscript adalah dimensi (ukuran array).
  • DataType adalah tipe data yang valid. Tipe data tidak dapat diubah dari pendeklarasian awal saat menggunakan ReDIm, kecuali di awal dideklarasikan sebagai variant.
Contoh: Tanpa Preserve
Dim strCity() As String
ReDim strCity(0 to 2) As String
strCity(0) = "Bandung"
strCity(1) = "Jakarta"
strCity(2) = "Surabaya"


Contoh: dengan Preserve
Dim strCity() As String
ReDim strCity(0 to 2) As String
strCity(0) = "Bandung"
strCity(1) = "Jakarta"
strCity(2) = "Surabaya"
     
ReDim Preserve strCity(0 to 3) As String
strCity(3) = "Medan"


Contoh: Multi dimensi hanya dapat mengubah dimensi terakhir
ReDim strGroup(0 to 1, 0 to 3) As String
'Mata pelajaran IPA
strGroup(0, 0) = "Kalkulus"
strGroup(0, 1) = "Kimia Dasar"
strGroup(0, 2) = "Fisika"
strGroup(0, 3) = "Biologi"
'Mata pelajaran IPS
strGroup(1, 0) = "Sosiologi"
strGroup(1, 1) = "Akuntansi"
strGroup(1, 2) = "Sejarah"
strGroup(1, 3) = "Geografi"

ReDim Preserve strGroup(0 to 1, 0 to 4) As String
strGroup(0, 4) = "Aritmatika"
strGroup(1, 4) = "Ekonomi"



Fungsi LBound dan UBound
Fungsi LBound adalah untuk mengembalikan nilai batas bawah dari sebuah array sementara UBound mengembalikan nilai batas atas.
Contoh:
Dim arr(10) As Integer
a = LBound(arr)
b = UBound(arr)

MsgBox "Lower bound = " & a & "  Upper bound = " & b


Membuat dan Menggunakan Array
Code berikut menggambarkan contoh pembuatan dan penggunaan array.
Dim arrNama(3) As String

Private Sub Form_Load()
arrNama(0) = "Aqila"
arrNama(1) = "Beno"
arrNama(2) = "Chantika"
arrNama(3) = "Demian"
End Sub

Private Sub Command1_Click()
Dim i As Integer
For i = 0 To 3
    Print arrNama(i)
Next
End Sub


Click here if you like this article.


0 comments: