08 October 2015

VB.NET: Array


Dalam pembahasan tentang perulangan/loop kita menggunakan array dalam contoh kasus. Apa itu array?

  • Array merupakan kumpulan elemen dengan tipe yang sama.
  • Array biasanya menyimpan sekumpulan data, tetapi kita akan lebih mudah memahami jika melihat array sebagai sekumpulan variable.
  • Array bisa berbentuk 1 dimensi dan multi dimensi.
  • Kita bisa menentukan dimensi/ukuran array di awal ataupun membuatnya menjadi Dynamic Array.

Untuk memahami array mari kita lihat contoh berikut:
Dim intNumber(5) As Integer

Contoh diatas merupakan pendeklarasian array dengan 6 elemen. Penomoran elemen mulai dari angka 0 sampai 5.

Untuk mendekalarikan array dalam VB.NET kita menggunakan pernyataan Dim.
Contoh:
Dim intVar(4) As Integer      ' array dengan 5 elemen integer 
Dim strVar(10) As String      ' array dengan 10 elemen strings
Dim intDua (3, 4) As Integer  ' array dua dimensi bertipe integer
Dim strTiga(3,5,2) As String  ' array tiga dimensi bertipe strings

Kita juga dapat langsung memberi nilai pada array di awal deklarasi.
Contoh:
Dim strHari(6) As String = { "Senin", "Selasa", "Rabu", "Kamis", _
                             "Jumat", "Sabtu", "Minggu" }

Dim intTiga(3) As Integer = {1, 2, 3}
Dim intVar() As Integer = {2, 3, 5, 7, 13, 17} 
Dim strVar() As String = {"Andi", "Bani", "Cinta", "Doni", "Eka"} 
Dim miscVar() As Object = {"Welcome", 12d, 16ui, "R"c}

Nilai array bisa disimpan dan diakses dengan menggunakan index array tersebut.
Contoh:
UI:
Code:

Public Class Form1

  Private Sub Form1_Load(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles MyBase.Load
      Button1.Text = "Start Loop!"
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click


      Dim arr(4) As Integer
      arr(0) = 80
      arr(1) = 75
      arr(2) = 92
      arr(3) = 66
      arr(4) = 78
      For i As Integer = 0 To arr.GetUpperBound(0)
          ListBox1.Items.Add("Elemen " & i + 1 & " bernilai " & arr(i))
      Next


    End Sub

End Class


Runtime:

Seperti telah disinggung di awal artikel, array bisa memiliki ukuran yang fleksibel dengan Dynamic Array. Ukuran array dapat diubah dengan mengunakan sintaks ReDim.
Sintaks
ReDim [Preserve] namaarray(subscript)

Keterangan:
Preserve adalah kode untuk mempertahankan nilai array yang dideklarasikan dan diberi nilai sebelumnya, saat kita mengubah ukuran.

namaarray adalah nama array yang akan diubah ukurannya.

subscripts merupakan ukuran/dimensi baru.

Contoh:
UI:
Code:

Public Class Form1

  Private Sub Form1_Load(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles MyBase.Load
      Button1.Text = "Start Loop!"
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click


      Dim arr() As Integer
      ReDim arr(2)
      arr(0) = 85
      arr(1) = 75
      arr(2) = 90
      ReDim Preserve arr(8)
      arr(3) = 80
      arr(4) = 76
      arr(5) = 92
      arr(6) = 99
      arr(7) = 79
      arr(8) = 75
      For i As Integer = 0 To arr.GetUpperBound(0)
          ListBox1.Items.Add("Elemen " & i + 1 & " bernilai " & arr(i))
      Next i

    End Sub

End Class


Runtime:

Kita dapat menggunakan IndexOf untuk mendapatkan index dari array berdasarkan nilai (value) dari array tersebut.

Contoh:
UI:

Code:
Public Class Form1

  Private Sub Form1_Load(ByVal sender As System.Object, _
              ByVal e As System.EventArgs) Handles MyBase.Load
      Button1.Text = "Cari Index"
      TextBox1.Text = 5
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, _
              ByVal e As System.EventArgs) Handles Button1.Click
      Dim arr(5) As Integer
      arr(0) = 7
      arr(1) = 3
      arr(2) = 5
      arr(3) = 4
      arr(4) = 8
      arr(5) = 9

      Dim ind As Integer = Array.IndexOf(arr, 5)
      MsgBox("Indeks array nilai " & TextBox1.Text & " yaitu " & ind.ToString)
  End Sub

End Class



Runtime:


Click here if you like this article.


0 comments: