Record/Struct adalah sejumlah elemen yang disebut field. Kalau semua elemen array harus mempunyai tipe data yang sama, maka tiap-tiap elemen pada Record/Struct dapat memiliki tipe data yang berbeda.
A. RECORD/STRUCT
Bentuk umum deklarasi Record/Struct
Algoritma :
namaVar : record< namaField1 : tipeField1 ,namaField2 : tipeField2 ,… …namaFieldn : tipeFieldn ,> |
Atau namavar dapat dipisah dari deklarasi tiperecordnya, sehingga menjadi :
Type namaTipeRecord : record< namaField1 : tipeField1 ,namaField2 : tipeField2 ,… …namaFieldn : tipeFieldn ,>namaVar : namaTipeRecord |
Bahasa C++ :
struct namaTipeStruct{tipeField1 namaField1;tipeField2 namaField2;… …tipeFieldn namaFieldn;} namaVar; |
Atau namavar dapat dipisah dari deklarasi tiperecordnya, sehingga menjadi :
typedef struct{tipefield1 namafield1;tipefield2 namafield2;… …tipefieldn namafieldn;} namatipestruct;namatipestruct namavar; |
Catatan : namaVar bisa lebih dari satu
Contoh record/struct :
Algoritma :
Deklarasi
Type Mahasiswa : Record < NIM : integer,
Nama : string,
KodeMK : string,
NilaiHuruf : char >
Mhs1,Mhs2 : Mahasiswa
Bahasa C++ :
//deklarasi
typedef struct { int NIM;
char Nama[20];
char KodeMK[10];
char NilaiHuruf;
} Mahasiswa;
Mahasiswa Mhs1,Mhs2;
Cara mengakses elemen record/structur :
namavar.namafield
Contoh Program :
#include <iostream>#include <string.h>typedef struct{ int tanggal, bulan, tahun;} data_tanggal tgl_lahir;typedef struct{ char nama[30];data_tanggal tgl_lahir;{ data_rekan;data_rekan info_rekan;Main(){strcpy(info_rekan.nama,”Budi”);info_rekan.tgl-lahir.tanggal = 30;info_rekan.tgl_lahir.bulan = 4;info_rekan.tgl_lahir.tahun = 2002;cout << “Nama : “ <<info_rekan.nama;cout << “\nTanggal Lahir :”;cout << “-“ << info_rekan.tgl_lahir.bulan;cout << “-“ << info_rekan.tgl_lahir.tahun;} |
Contoh Variasi program Cara Mendeklarasikan Structur :
#include<iostream.h>#include<string.h>main(){struct data_tanggal{ int tanggal, bulan, tahun; };struct data_rekan{ char nama[30];struct data_tanggal tgl_lahir;};struct data_rekan info_rekan;strcpy(info_rekan.nama,”Hanif”);info_rekan.tgl_lahir.tanggal = 30;info_rekan.tgl_lahir.bulan = 4;info_rekan.tgl_lahir.tahun = 2002;cout<<“Nama : “<<info_rekan.nama;cout<<“\nTanggal lahir :”;cout<<info_rekan.tgl_lahir.tanggal;cout<<“-“<<info_rekan.tgl_lahir.bulan;cout<<“-“<<info_rekan.tgl_lahir.tahun;} |
B. ARRAY OF RECORD
Algoritma :
namaVar : record< namaField1 : tipeField1 ,namaField2 : tipeField2 ,… …namaFieldn : tipeFieldn ,>namaVar : array[rangeindex] of namaTipeRecord |