Modul 7
TYPE DATA RECORD
Record Type merupakan type ciptaan yang dibuat oleh pemakai
sesuai dengan tuntutan program. Record Type merupakan type
variabel yang terdiri dari kumpulan type-type standar Quick
Basic.
Mendeklarasikan suatu Record Type
Pada QBasic Record Type dapat dideklarasikan dengan penulisan
berikut :
Syntax :
Type nama
<nama elemen 1> AS <typedata>
<nama elemen 2> AS <typedata>
...
End Type
Contoh :
Type PESERTA
Nomor AS String*10
Nama AS String*20
Email AS String*30
Umur AS Integer
End Type
Mendeklarasikan type data PESERTA yang merupakan kumpulan dari
data Nomor, Nama, Email, dan Umur.
Mendeklarasikan Variabel Record Type
Untuk mendeklarasikan variabel berdasarkan Record Type tertentu
dengan menggunakan perintah DIM.
Contoh :
Dim DataPeserta As PESERTA
Mendeklarasikan variabel DataPeserta yang memiliki type PESERTA,
sehingga variabel DataPeserta memiliki komponen Nomor, Nama,
Email dan Umur.
Menggunakan Variabel Record Type
Pemakaian variabel Record Type sama saja dengan variabel biasa,
dan kita juga dapat menyatakan masing-masing komponennya.
Contoh :
Dim Peserta1 As PESERTA
Dim Peserta2 As PESERTA
Dim Temp As PESERTA
Peserta1.Nomor = 9224 'komponen Nomor
Peserta1.Nama = "Hendra" 'komponen Nama
Peserta1.Email = "hendra@indoprog.com" 'Komponen Email
Peserta1.Umur = 27 'Komponen Umur
Peserta2.Nomor = 9241 'komponen Nomor
Peserta2.Nama = "Limada" 'komponen Nama
Peserta2.Email = "limada@hsbc.com" 'Komponen Email
Peserta2.Umur = 26 'Komponen Umur
Record Type banyak digunakan dalam pengolahan data, dan random
file karena menawarkan fleksibilitas dan kemudahan dalam
pemakaiannya.
Contoh :
Temp = Peserta1
Peserta1 = Peserta2
Peserta2 = Temp
atau
SWAP Peserta1, Peserta2
Menukar data Peserta1 dengan Peserta2 dan sebaliknya, tanpa perlu
menyebutkan sub komponennya. Dapatkah saudara bayangkan kalau hal
tersebut tidak menggunakan Record Type ?
Contoh :
'Program isi data siswa dan sortir
'DEKLARASI RECORD TYPE SISWA
Type SISWA
NOINDUK AS STRING * 10
NAMA AS STRING * 15
TEORI AS SINGLE
PRAKTEK AS SINGLE
RATA AS SINGLE
End Type
Input "Masukkan jumlah siswa ";JS
Dim DSiswa(JS) AS SISWA 'Deklarasi Array DSiswa
'berdasarkan Record Type SISWA
'MENGISI DATA
For I = 1 TO JS STEP 1
Print "RECORD KE -";I
Input "NO.INDUK :",DSISWA(I).NOINDUK
Input "NAMA :",DSISWA(I).NAMA
Input "TEORI :",DSISWA(I).TEORI
Input "PRAKTEK :",DSISWA(I).PRAKTEK
DSISWA(I).RATA = (DSISWA(I).TEORI+DSISWA(I).PRAKTEK)/2
NEXT I
'MENGURUT DATA BERDASARKAN NILAI RATA-RATA
For I = (JS-1) TO 1 STEP -1
Sempurna = 1
For J = 1 TO I
If DSISWA(J).RATA < DSISWA(J+1).RATA THEN
SWAP DSISWA(J),DSISWA(J+1)
Sempurna = 0
End If
Next J
If Sempurna = 1
I = 0
End If
Next I
CLS
Print " HASIL UJIAN SISWA"
Print " BASIC PROGRAMMING MEI 2001"
Print
Print "-------------------------------------------------------------------"
Print "NO.INDUK NAMA TEORI PRAKTEK RATA-RATA LULUS "
Print "-------------------------------------------------------------------"
POLA$="\ \ \ \ ###.## ###.## ###.## \ \ "
VIEW PRINT 4 TO 23
For I = 1 TO JS
IF DSISWA(I).RATA < 60 THEN LULUS$="TIDAK" ELSE LULUS$ = "YA"
PRINT USING POLA$;DSISWA(I).NOINDUK;DSISWA(I).NAMA;DSISWA(I).TEORI;
DSISWA(I).PRAKTEK;DSISWA(I).RATA;LULUS$
Next I
END