Anda di halaman 1dari 17

Array [larik]

Array
Array merupakan struktur dengan data yang seluruh elemennya mempunyi tipe data
sama. Terdiri atas:
Fixed size array (Dim)
Array dengan ukuran/dimensi yang tetap
Dynamic sized array ()
Array yang ukuran/dimensinya bisa berubah saat program berjalan (run-time)
Variabel Array
 Menyimpan elemen-elemen dengan tipe data sama
 Bisa mempunyai beberapa dimensi (1, 2, atau lebih)
 Masing-masing elemen bisa dipanggil berdasarkan alamatnya (indeks)

x(1) x(2) x(3) …………………………….. …….. …….. … x(MAX)


Array
x

Dim x(1 To Max) As Type


Contoh deklarasi variabel
Dim nama(12) As String
‘13 elemen untuk karakter /kata

Public x(5) as Integer


‘ 6 integer bisa diakses secara global

Bisa ditentukan batas bawah bilangan negatif (-). Secara default batas bawah
adalah nol (0)
Dim cdegrees(-273 to 1000) as Single
Contoh program

Soal
Simpan 4 bilangan bulat (integer) di dalam array x, dan:
▫ Jumlahkan semua nilainya
▫ Cari nilai reratanya
▫ Jumlahkan semua hasil kuadratnya
Contoh program
Private Sub Jumlah_Click()
Dim x(1 To 4), sum, sum2, i As Integer
Dim rerata As Single
x(1) = 5
x(2) = 3
x(3) = 10
x(4) = 21
sum = 0
sum2 = 0
For i = 1 To 4
sum = sum + x(i)
sum2 = sum2 + x(i) * x(i)
Next i
average = sum / 4
op.Print “Jumlah Bilangan = “; sum
op.Print “Jumlah Kuadrat Bilangan = “; sum2
op.Print “Rerata Bilangan = “; rerata
End Sub
Matrik
Sebuah matrik merupakan sekumpulan elemen yang tergabung dalam array (larik) persegi
panjang. Elemen-elemen tersebut dapat berupa variabel atau angka. Sebagai contoh matrik
[A] dapat dinyatakan dengan:

a11 a12 a13 a14


a 21 a 22 a 23 a 24
[ A] 
a 31 a 32 a 33 a 34
a 41 a 42 a 43 a 44

Secara umum matrik memiliki baris dan kolom yang dikenal dengan orde matrik. Pada
keadaan di atas, [A] memiliki m baris dan n kolom sehingga orde matrik [A] adalah mxn. Di
dalam mengakses semua elemen matrik digunakan struktur pengulangan For … Next
Penjumlahan Matrik
Contoh: Jumlahkan dua matrik berikut:
dan
Penyelesaian:

Private Sub JumMatrik_Click()


Dim i, j As Integer
Dim A(1 To 2, 1 To 3) As Integer
Dim B(1 To 2, 1 To 3) As Integer
Dim C(1 To 2, 1 To 3) As Integer
A(1, 1) = 5: A(1, 2) = 2: A(1, 3) = 3
A(2, 1) = 1: A(2, 2) = 2: A(2, 3) = 7
B(1, 1) = 6: B(1, 2) = 7: B(1, 3) = -2
B(2, 1) = 3: B(2, 2) = 5: B(2, 3) = 9
For i = 1 To 2
For j = 1 To 3
C(i, j) = A(i, j) + B(i, j)
op.Print "C(" & i & "," & j; ")=" & C(i, j)
Next j
Next i
End Sub
Perkalian matrik
Perkalian pada dua buah matrik dapat dilakukan apabila jumlah kolom pada matrik pertama
[A] sama dengan jumlah baris pada matrik kedua [B].Jika matrik [A] berorde m x n dan matrik
[B] berorde n x p maka akan menghasilkan matrik [C] dengan orde m x p.

Contoh: selesaikan
dan
untuk mencari matrik [C] pada elemen C12:

selanjutnya dengan cara yang sama semua elemen pada matrik [C] dapat dicari, dan akan
menghasilkan:
Perkalian Matrik
Private Sub KaliMatrik_Click()
Dim i, j, k As Integer
Dim A(1 To 2, 1 To 3) As Integer
Dim B(1 To 3, 1 To 2) As Integer
Dim C(1 To 2, 1 To 2) As Integer
A(1, 1) = 5: A(1, 2) = 2: A(1, 3) = 3
A(2, 1) = 1: A(2, 2) = 2: A(2, 3) = 7
B(1, 1) = 3: B(1, 2) = -2
B(2, 1) = 5: B(2, 2) = -8
B(3, 1) = 9: B(3, 2) = -10

For i = 1 To 2
For j = 1 To 2
For k = i To 3
C(i, j) = C(i, j) + A(i, k) * B(k, j)
Next k

op.Print "C(" & i & "," & j; ")=" & C(i, j)


Next j
Next i
End Sub
Object berkaitan dengan matrik
Untuk menampilkan elemen matrik pada program kita bisa menggunakan komponen VB yaitu
MSFlexgrid.ocx, komponen ini dapat dimunculkan dengan menu
Project:: Components::Controls::Microsoft Flexgrid Control x.x, sehingga akan muncul icon
pada Toolbox Window.
Properties Keterangan
Cols Jumlah Kolom

Rows Jumlah Baris


Fixcols Jumlah kolom fix
Fixrows Jumlah baris fix

Properties yang lain adalah textmatrix(i,j)=“string”, di


mana i dan j merupakan posisi dari sel pada msflexgrid
(indek dimulai dari 0 bukan satu), dan “string” adalah
tulisan yang muncul di sel tersebut. Berikut ini contoh
perkalian matrik yang ditampilkan di form dengan
bantuan msflexgrid
Perkalian Matrik
Private Sub KaliMatrik_Click()
Dim i, j, k As Integer
Dim A(1 To 2, 1 To 3) As Integer
Dim B(1 To 3, 1 To 2) As Integer
Dim C(1 To 2, 1 To 2) As Integer
A(1,1) = 5: A(1,2) = 2: A(1,3) = 3
A(2,1) = 1: A(2,2) = 2: A(2,3) = 7
B(1,1) = 3: B(1,2) = -2
B(2,1) = 5: B(2,2) = -8
B(3,1) = 9: B(3,2) = -10
MSFlexGrid1.Cols = 3
MSFlexGrid1.Rows = 3
For i = 1 To 2
For j = 1 To 2
For k = i To 3
C(i,j) = C(i,j) + A(i,k) * B(k,j)
Next k

Msflexgrid1.textmatrix(i,j)=C(i,j)
Next j
Next i
End Sub
Dinamik array
Beberapa Alasan
 Untuk beberapa aplikasi kadang tidak mungkin untuk menentukan seberapa besar
ukuran array yang harus ditetapkan.
 Pengguna mungkin juga ingin adanya kemungkinan untuk mengubah ukuran array pada
saat run-time.

Kelebihan
Dengan dinamik array yang bisa diubah-ubah ukurannya akan membatu dalam efisiensi
memory.

Deklarasi Dinamik Array


deklarasikan dinamik array mirip dengan fixed array:
 Diberi keyword Public untuk level global
 Diberi keyword Dim untuk level module
 Diberi keyword Dim atau Static untuk array`di dalam procedure
Array kemudian dideklarasikan dengan dimensi dalam posisi kosong ().

Contoh: Dim DynArray( ) As Integer


Dinamik array
Pada saat array hendak dioperasikan gunakan pernyataan ReDim.

Contoh: ReDim DynArray(N)

Pernyataan ReDim hanya boleh muncul di dalam procedure. Berbeda dengan


keyword Dim dan Static, ReDim berjalan pada saat run-time.
Contoh:
Dim Matrix() As Integer ' Level Module
………………
………………

Private Sub CalculateValues ()


ReDim Matrix (19,29)
………………
………………
………………
End Sub
Pernyataan ReDim mengalokasikan sebuah matrik 20 x 30 berisi bilangan
Integer dengan ukuran total 600 elemen.
Mempertahankan isi Dinamik Array
Setiap saat pernyataan ReDim dieksekusi nilai yang tersimpan pada array akan hilang.
Visual Basic akan me-reset nilai seperti berikut:
 Kosong untuk array bertipe variant
 Nol untuk array bertipe numerik
 String kosong untuk array bertipe string
Keyword Preserve dipergunakan jika kita perlu untuk mempertahankan isi array.

Sebagai contoh, anda bisa memperbesar array sebanyak satu elemen tanpa harus kehilangan
semua elemen yang ada dengan menggunakan function Ubound, contoh:
ReDim Preserve DynArray( Ubound ( DynArray ) + 1 )
Hanya upper bound (bagian batas atas) dari dimensi kerakhir (kolom) di dalam multi-dimensional
array dapat diubah pada saat keyword Preserve dipergunakan. Perubahan pada dimensi yang
lain akan menyebabkan run-time error.

Anda bisa melakukan: ReDim Preserve Matrix(10, UBound(Matrix, 2) + 1)

Tetapi anda tidak bisa melakukan:  ReDim Preserve Matrix(UBound(Matrix, 1) + 1, 10)


Control array
 Array yang dipergunakan untuk mengontrol button dan object lainnya
 Bisa dibuat saat desain Form
 Bisa dibuat saat run time (Load)
 Gunakan Index property 0 untuk elemen object pertama
 Gunakan Copy/Paste untuk melakukan kopi dari object berikutnya (Index
berubah menjadi 1, 2 3 dsb)

Contoh Papan Tombol Telepon


Disain sebuah form yang terdapat di dalamnya control array dari 12 command button,
0 - 9, C dan Dial menggunakan langkah di atas.

Jika CmdButton merupakan nama yang diberikan untuk control array, maka kode
yang terkait dengan event procedure untuk mengendalikan semua command button
seperti berikut ini.
Control array
Private Sub CmdButton_Click ( Index As Integer )
Select Case Index
Case 0 To 9
Display.Text = Display.Text & Format( Index, "0")
Case 10
Display.Text = ""
Case 11
Display.Text = "Dialing " & Display.Text
End Select
End Sub
SELESAI

Anda mungkin juga menyukai