Visual Basic menyediakan perintah Structure untuk pembentukan tipe data
terstruktur, misalnya kita akan mengolah data ujian mahasiswa dengan tabel
sebagai berikut :
Nim
|
Nama
|
Tugas
|
Mid
|
Semester
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dimana dapat ditulis sebagai struktur berikut ini :
Structure Ujian <VBFixedString(10)> Public Nim As String <VBFixedString(30)> Public Nama As String Public Tugas, Mid, Semester As Single End Structure |
Catatan :
Sebagaimana telah dinyatakan sebelumnya bahwa secara default string pada
Visual Basic adalah variable length, dan untuk membentuk string dengan fixed
length kita membutuhkan vbFixedStringAttribute Class, dimana pada awal
deklarasi string kita mencantumkan <VBFixedString(ukuran)>
|
Salah satu keunggulan pada Structure di Visual Basic adalah kita dapat
menambahkan koding kedalamnya untuk membuat metoda dan property, contoh
misalnya kita akan menambah property Rata-rata untuk menghitung nilai rata-rata
Tugas, Mid dan Semester, sehingga deklarasi Structure dapat ditulis menjadi :
Option Explicit On
Imports System
Imports
Microsoft.VisualBasic
Public Module ModStruct
Structure
Ujian
<VBFixedString(10)> Public Nim As String
<VBFixedString(30)> Public Nama As String
Public
Tugas,Mid,Semester As Single
Public ReadOnly Property
RataRata() As Single
Get
Return
(Tugas+Mid+Semester)/3
End Get
End Property
End Structure
Dim
DaftarUjian As Ujian
Sub
DaftarUjian.Nim =
"920403024"
DaftarUjian.Nama = "Hendra Soewarno"
DaftarUjian.Tugas = 90
DaftarUjian.Mid = 90
DaftarUjian.Semester = 90
Console.WriteLine(DaftarUjian.RataRata)
End Sub
End Module
|
Contoh program membaca data ke array structure dan mencetak kembali :
Option Explicit On
Imports System
Imports
Microsoft.VisualBasic
Public Module ModStruct
Structure
Ujian
<VBFixedString(10)> Public Nim As String
<VBFixedString(30)> Public Nama As String
Public
Tugas,Mid,Semester As Single
Public ReadOnly Property
RataRata() As Single
Get
Return
(Tugas+Mid+Semester)/3
End Get
End Property
End Structure
Dim Jd As Integer = 0
Dim
DaftarUjian() As Ujian
Private Sub BacaData
Dim Nim
As String
Do
Console.WriteLine("Record ke
{0}",Jd+1)
Console.Write("Nim : ")
Nim = Console.ReadLine()
If
Nim.Trim.Length > 0
ReDim
Preserve DaftarUjian(Jd)
DaftarUjian(jd).Nim = Nim
Console.Write("Nama : ")
DaftarUjian(jd).Nama =
Console.ReadLine()
Console.Write("Tugas :
")
DaftarUjian(jd).Tugas =
Console.ReadLine()
Console.Write("Mid : ")
DaftarUjian(jd).Mid =
Console.ReadLine()
Console.Write("Semester :
")
DaftarUjian(jd).Semester =
Console.ReadLine()
Jd = Jd + 1
End If
Loop Until Len(Trim(Nim)) = 0
End Sub
Private Sub CetakData()
Dim
Record As Ujian
Console.WriteLine("Daftar Ujian
Mahasiswa")
Console.WriteLine
Console.WriteLine("Nim Nama T M
S R ")
Console.WriteLine("----------------------------------------------------------------------")
For Each Record In DaftarUjian
Console.WriteLine("{0} {1}
{2,6:f2} {3,6:f2} {4,6:f2} {5,6:f2}", _
Record.Nim.PadRight(10), _
Record.Nama.PadRight(30), _
Record.Tugas, _
Record.Mid, _
Record.Semester, _
Record.RataRata)
Next
End Sub
Sub
Call
BacaData
Call
CetakData
End Sub
End Module
|