Bagikan melalui


Struktur dan Elemen Pemrograman Lainnya (Visual Basic)

Anda dapat menggunakan struktur bersama dengan array, objek, dan prosedur, serta dengan satu sama lain. Interaksi tersebut menggunakan sintaks yang sama seperti yang digunakan elemen-elemen ini secara tersendiri.

Catatan

Anda tidak dapat menginisialisasi elemen struktur apa pun dalam deklarasi struktur. Anda hanya dapat menetapkan nilai ke elemen variabel yang telah dideklarasikan sebagai jenis struktur.

Struktur dan Array

Struktur dapat berisi satu atau beberapa array di elemennya. Contoh berikut mengilustrasikan langkah-langkah 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 langkah-langkah ini:

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

Anda juga dapat mendeklarasikan array struktur. Contoh berikut mengilustrasikan langkah-langkah ini:

Dim allSystems(100) As systemInfo  

Anda mengikuti aturan yang sama untuk mengakses komponen arsitektur data ini. Contoh berikut mengilustrasikan langkah-langkah ini:

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

Struktur dan Objek

Struktur dapat berisi satu atau beberapa objek di elemennya. Contoh berikut mengilustrasikan langkah-langkah 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, daripada Object.

Struktur dan Prosedur

Anda dapat meneruskan struktur sebagai argumen prosedur. Contoh berikut mengilustrasikan langkah-langkah 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 berdasarkan referensi, yang memungkinkan prosedur untuk memodifikasi elemennya sehingga perubahan berlaku dalam kode panggilan. Jika Anda ingin melindungi struktur dari modifikasi tersebut, teruskan berdasarkan nilainya.

Anda juga dapat mengembalikan struktur dari prosedur Function. Contoh berikut mengilustrasikan langkah-langkah 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 langkah-langkah 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 di satu modul dalam struktur yang ditentukan di modul yang berbeda.

Struktur dapat berisi struktur lain, hingga kedalaman arbitrer.

Lihat juga