p12 record struck
TRANSCRIPT
RECORD/STRUCT dan ARRAY OF RECORD
Algoritma dan Pemrograman I
Record/Struct mempunyai 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.
Algoritma dan Pemrograman II
(algoritma) : namaVar : record
< namaField1 : tipeField1 , namaField2 : tipeField2 , … … namaFieldm : tipeFieldm ,
>(bahasa C) : struct namaTipeStruct
{ tipeField1 namaField1; tipeField2 namaField2;
… … tipeFieldm namaFieldm;
} namaVar;
namaVar bisa lebih dari satu
Namavar dapat dipisah dari deklarasi tiperecordnya, sehingga menjadi :
typedef struct {
tipeField1 namaField1;tipeField2 namaField2;… …tipeFieldm namaFieldm;
} namaTipeStruct;
namaTipeStruct namaVar;
Untuk mengakses elemen record/structur dilakukan dengan cara :
namaVar.namaField
Algoritma dan Pemrograman II
Contoh Algoritma
data_rekan:record
{
tanggal, bulan, tahun: int
nama:string
}
data_rekan info_rekan
#include<stdio.h>
#include<string.h>
typedef struct
{
int tanggal, bulan, tahun;
char nama[30];
} data_rekan;
data_rekan info_rekan;
Algoritma dan Pemrograman II
main(){ strcpy(info_rekan.nama,"Hanif"); info_rekan.tanggal = 30; info_rekan.bulan = 4; info_rekan.tahun = 2002; printf("Nama :%s “,info_rekan.nama); printf("\nTanggal lahir :“); printf(“%d”,
info_rekan.tanggal); printf("-%d“,info_rekan.bulan); printf("-%d"info_rekan.tahun); }
Algoritma dan Pemrograman II
*Menentukan nilai mahasiswa dengan cara record*/
#include <stdio.h>#include <string.h>typedef struct { int NIM; char Nama[20]; char KodeMK[10]; char NilaiHuruf; } Mahasiswa;Mahasiswa Mhs1,Mhs2;main(){ strcpy(Mhs1.Nama,"Hanif"); strcpy(Mhs1.KodeMK,"TIF2010"); Mhs1.NilaiHuruf= 'A'; strcpy(Mhs2.Nama,"Devvi"); strcpy(Mhs2.KodeMK,"TIF2010"); Mhs2.NilaiHuruf = 'B';
printf("-------------------------------------\n");
printf(" Mahasiswa 1 | Mahasiswa 2 |"); printf("\n-------------------------------------");
printf("\n %s %s ",Mhs1.Nama,Mhs2.Nama);
printf("\n %s %s ",Mhs1.KodeMK,Mhs2.KodeMK);
printf("\n %c %c ",Mhs1.NilaiHuruf,Mhs2.NilaiHuruf);
printf("\n-------------------------------------");
}
(algoritma) : Type namaTipeRecord : record < namaField1 : tipeField1 , namaField2 : tipeField2 , … … namaFieldm : tipeFieldm , > namaVar : array[rangeindex] of
namaTipeRecord
(bahasa C) : typedef struct
{ tipeField1 namaField1; tipeField2 namaField2; … … tipeFieldm namaFieldm;
} namaTipeStruct; namaTipeStruct namaVar[ukuran];
Untuk mengakses elemen record/structur dilakukan dengan cara :
Algo: namaVarindex.namaField
C : namaVar[index].namaField
(algoritma) : Deklarasi
Const Nmaks = 100;Type Mahasiswa : Record < NIM : integer,
Nama : string, IPK : real >
Mhs : MahasiswaArrayMhs : Array[1..Nmaks] of Mahasiswa
(bahasa C) : #define Nmaks 100
typedef struct { int NIM;
char Nama[25]; float IPK;
} Mahasiswa; Mahasiswa Mhs[Nmaks];
Algoritma dan Pemrograman
#include <stdio.h>
#include <string.h>
typedef struct
{
int nip;
char nama[30];
} rek_pegawai;
rek_pegawai peg[5];
main(){ int i; for(i=0;i<=4;i++){ printf("%d nama: ",i+1);scanf(" %s",&peg[i].nama);printf(" nip: ",i+1);scanf(" %d",&peg[i].nip);printf("\n");}
printf("-------------------------------");printf("\n No Nama NIP\n");
printf("-------------------------------\n");
for (i=0;i<=4;i++){printf(" %d %s %d\n",i+1,peg[i].nama,peg[i].nip);
}printf("--------------------------------");
}
Latihan
Buat program untuk menginput dan menampilkan 2 data mahasiswa.
NoMhs : 2345Nama : Hanif
Kode MKA Kelas NilaiUTS 1 A 95
Banyaknya mahasiswa = 2
Mhs[0].NoMhs = 2345Mhs[0].Nama = HanifMhs[0].BanyakMKA = 1 Mhs[0].MKA[0].KodeMKA = 1 Mhs[0].MKA[0].Kelas = A Mhs[0].MKA[0].NilaiUTS= 95
Mhs[1].NoMhs = 1230Mhs[1].Nama = FathimahMhs[1].BanyakMKA = 1 Mhs[1].MKA[0].KodeMKA = 3 Mhs[1].MKA[0].Kelas = A Mhs[1].MKA[0].NilaiUTS= 90
Input Data Output Data
No.Mhs : 1230Nama : Fathimah
Kode MKA Kelas NilaiUTS 3 A 90
Algoritma dan Pemrograman II