Bagikan melalui


Struktur dan Elemen Pemrograman Lainnya (Visual Basic)

Anda dapat menggunakan struktur bersama dengan array, objek, dan prosedur, serta antara satu dengan yang lainnya. Interaksi menggunakan sintaks yang sama seperti yang digunakan elemen-elemen ini satu per satu.

Nota

Anda tidak dapat menginisialisasi salah satu elemen struktur dalam deklarasi struktur. Anda hanya dapat menetapkan nilai ke elemen variabel yang telah dinyatakan sebagai jenis struktur.

Struktur dan Array

Struktur dapat berisi array sebagai satu atau beberapa elemennya. Contoh berikut mengilustrasikan hal ini.

Public Structure systemInfo  
    Public cPU As String  
    Public memory As Long  
    Public diskDrives() As String  
    Public purchaseDate As Date  
End Structure

Anda mengakses nilai array dalam struktur dengan cara yang sama seperti Anda mengakses properti pada objek. Contoh berikut mengilustrasikan hal ini.

Dim mySystem As systemInfo  
ReDim mySystem.diskDrives(3)  
mySystem.diskDrives(0) = "1.44 MB"  

Anda juga dapat mendeklarasikan sebuah array dari struktur. Contoh berikut mengilustrasikan hal ini.

Dim allSystems(100) As systemInfo  

Anda mengikuti aturan yang sama untuk mengakses komponen arsitektur data ini. Contoh berikut mengilustrasikan hal ini.

ReDim allSystems(5).diskDrives(3)  
allSystems(5).CPU = "386SX"  
allSystems(5).diskDrives(2) = "100M SCSI"  

Struktur dan Objek

Struktur dapat berisi objek sebagai satu atau beberapa elemennya. Contoh berikut mengilustrasikan hal ini.

Protected Structure userInput  
    Public userName As String  
    Public inputForm As System.Windows.Forms.Form  
    Public userFileNumber As Integer  
End Structure  

Anda harus menggunakan kelas objek tertentu dalam deklarasi seperti itu, bukan Object.

Struktur dan Prosedur

Anda dapat meneruskan struktur sebagai argumen prosedur. Contoh berikut mengilustrasikan hal ini.

Public currentCPUName As String = "700MHz Pentium compatible"  
Public currentMemorySize As Long = 256  
Public Sub fillSystem(ByRef someSystem As systemInfo)  
    someSystem.cPU = currentCPUName  
    someSystem.memory = currentMemorySize  
    someSystem.purchaseDate = Now  
End Sub  

Contoh sebelumnya meneruskan struktur secara referensi, yang memungkinkan prosedur untuk memodifikasi elemennya sehingga perubahan berlaku dalam kode pemanggil. Jika Anda ingin melindungi struktur dari modifikasi tersebut, berikan berdasarkan nilai.

Anda juga dapat mengembalikan struktur dari prosedur Function. Contoh berikut mengilustrasikan hal ini.

Dim allSystems(100) As systemInfo  
Function findByDate(ByVal searchDate As Date) As systemInfo  
    Dim i As Integer  
    For i = 1 To 100  
        If allSystems(i).purchaseDate = searchDate Then Return allSystems(i)  
    Next i  
   ' Process error: system with desired purchase date not found.  
End Function  

Struktur Dalam Struktur

Struktur dapat berisi struktur lain. Contoh berikut mengilustrasikan hal ini.

Public Structure driveInfo  
    Public type As String  
    Public size As Long  
End Structure  
Public Structure systemInfo  
    Public cPU As String  
    Public memory As Long  
    Public diskDrives() As driveInfo  
    Public purchaseDate As Date  
End Structure  
Dim allSystems(100) As systemInfo  
ReDim allSystems(1).diskDrives(3)  
allSystems(1).diskDrives(0).type = "Floppy"  

Anda juga dapat menggunakan teknik ini untuk merangkum struktur yang ditentukan dalam satu modul dalam struktur yang ditentukan dalam modul yang berbeda.

Struktur dapat berisi struktur lain hingga kedalaman yang tidak terbatas.

Lihat juga