Anda di halaman 1dari 17

Definisi Record

Record adalah tipe data kompleks yang elemen-

elemennya boleh mempunyai tipe data yang berbeda. Record lebih kompleks daripada array karena record merupakan kumpulan beberapa variabel dengan tipe data yang berbeda. Berbeda dengan array yang tiap elemennya ditandai dengan nomer indeks maka record ditandai dengan nama variabel anggotanya.

Cara mengakses elemen dari record


Dilakukan dengan menyebutkan nama variabel

anggota setelah menyebutkan nama record yang akan diakses. Di antara nama record dan nama variabel anggota dipisahkan tanda titik (.).

Deklarasi Record
Bentuk umum pendeklarasian record seperti di bawah ini:

Type nama_record = record Field1 : tipe_data1 ; Field2 : tipe_data2 ; Field_n : tipe_data_n ; End; Var nama_variabel : nama_record;

Pendeklarasian record selalu diawali oleh nama record, tanda sama dengan (=) dan kata baku record serta diakhiri oleh kata baku end. Field-field dari record tersebut diletakkan diantara kata baku record dan end.

Contoh : Type Mahasiswa NIM Nama Alamat Nilai

= record : string[10]; : string[20]; : string[30]; : real; End;

Var Mhs : Mahasiswa

Jika di dalam suatu record terdapat field-field yang bertipe sama dapat dideklarasikan bersamaan dengan dipisahkan oleh tanda (,) sehingga anda tidak perlu menuliskan tipe datanya berulang-ulang. Perhatikan contoh di bawah ini! Type Volumebalok = record Panjang, Lebar, Tinggi : byte ; End;

Implementasi Record
Program Biodata_Mahasiswa; Uses crt; Type Mahasiswa = record NIM : string[10]; Nama : string[20]; Alamat : string[30]; Nilai : real; End; Var Mhs : Mahasiswa;

Record Dalam Bahasa C


Record dalam Bahasa C dikenal dengan STRUCT Deklarasi Struct dalam Bahasa C :

Struct Nama_Struct
{ Tipe_data1 field1; Tipe_data2 field2 } Main () { Pendeklarasian Struct dengan nama variabel yang berbeda

Contoh program Struct dalam C++


Tulis program berikut pada layar editornya. Nama File Program 30 #include <stdio.h> #include <conio.h> #include <string.h> struct TMhs { char NIM[11]; char Nama[21]; int NilaiUTS,NilaiUAS,NilaiQuiz; float NilaiAkhir; char index; }; main() { TMhs mhs1,mhs2; printf(Pengisian Data); printf(NIM : );gets(mhs1.NIM); printf(NAMA : );gets(mhs1.Nama);

printf(Nilai QUIZ : );scanf(%d,&mhs1.NilaiQuiz); printf(Nilai UTS : );scanf(%d,&mhs1.NilaiUTS); printf(Nilai UTAS : );scanf(%d,&mhs1.NilaiUAS); mhs1.NilaiAkhir=0.2*mhs1.NilaiQuiz+0.3*mhs1.NilaiUTS+0.5*mhs1.NilaiUA S; if(mhs1.NilaiAkhir>=80) mhs1.index=A;else if(mhs1.NilaiAkhir>=60) mhs1.index=B;else if(mhs1.NilaiAkhir>=40) mhs1.index=C;else if(mhs1.NilaiAkhir>=20) mhs1.index=D;else if(mhs1.NilaiAkhir>=00) mhs1.index=E; mhs2=mhs1; // mengisikan semua data di mhs1 ke mhs2 printf(Data yang telah dimasukan :); printf(NIM : %s\n,mhs2.NIM); printf(NAMA : %s\n,mhs2.Nama); printf(Nilai QUIZ : %i\n,mhs2.NilaiQuiz); printf(Nilai UTS : %d\n,mhs2.NilaiUTS); printf(Nilai UTAS : %d\n,mhs2.NilaiUAS); printf(Nilai Akhir: %.2f\n,mhs2.NilaiAkhir); printf(Index : %c\n,mhs2.index); getch(); }

LATIHAN 1. Buat struct/record untuk data buku yang berisi tentang : kode buku, nama buku, tahun terbit, pengarang, dan harga. Gunakan struct / record. 2. Cari 2 contoh kasus lain disekitar anda yang dapat menggunakan struct, selain KTP, KTM, SIM, buku.

Array Berisi Record


Type {mendefinisikan tipe data berupa record dengan nama TSiswa} TSiswa = record NIM : string[8]; Nama : string[25]; End;
{mendefinisikan tipe data berupa array dari tipe TSiswa} TKumpulanSiswa = array [1 . . 100] of TSiswa; Var A : TKumpulanSiswa;

memperlihatkan bahwa TKumpulanSiswa merupakan

tipe bentukan berupa array dimana setiap elemennya berisi record TSiswa. Selanjutnya tipe tersebut digunakan untuk mendeklarasikan variable A. Dengan demikian, variabel A itu akan dapat menampung 100 buah record yang berisi TSiswa. Berikut ini contoh program lengkap yang akan menunjukkan implementasi dari array yang di dalamnya berisi record.

Contoh Array Record dalam C


#include <stdio.h> #include <conio.h> #include <string.h> #define maks 3 struct TMhs { char NIM[9]; char Nama[21]; int NilaiUTS,NilaiUAS,NilaiQuis; float NilaiAkhir; char index; }; main() { TMhs mhs[maks]; // array struct int i;

for(i=0;i<maks;i++) { printf("Pengisian Data Mahasiswa Ke-%i\n",i+1); printf("NIM : ");fflush(stdin);gets(mhs[i].NIM); printf("NAMA : ");fflush(stdin);gets(mhs[i].Nama); printf("Nilai QUIZ : ");scanf("%d",&mhs[i].NilaiQuis); printf("Nilai UTS : ");scanf("%d",&mhs[i].NilaiUTS); printf("Nilai UTAS : ");scanf("%d",&mhs[i].NilaiUAS); mhs[i].NilaiAkhir=0.2*mhs[i].NilaiQuis+0.3*mhs[i].NilaiUTS +0.5*mhs[i].NilaiUAS; if(mhs[i].NilaiAkhir>=80) mhs[i].index='A';else if(mhs[i].NilaiAkhir>=60) mhs[i].index='B';else if(mhs[i].NilaiAkhir>=40) mhs[i].index='C';else if(mhs[i].NilaiAkhir>=20) mhs[i].index='D';else if(mhs[i].NilaiAkhir>=0) mhs[i].index='E'; };

clrscr(); printf("Data yang telah dimasukan adalah : \n"); printf("------------------------------------------------------------\n"); printf("| NIM | NAMA | QUIS | UTS | UAS | N A | INDEX |\n"); printf("------------------------------------------------------------\n"); for(i=0;i<maks;i++) { printf("| %-8s | %-20s | %3i | %3i | %3i | %6.2f | %c |\n", mhs[i].NIM,mhs[i].Nama,mhs[i].NilaiQuis,mhs[i].NilaiUTS, mhs[i].NilaiUAS,mhs[i].NilaiAkhir,mhs[i].index); } printf("------------------------------------------------------------\n"); getch(); return 0; }

Anda mungkin juga menyukai