Apakah Struct (record)?

Turbo C tidak selalu menyediakan tipe data yang sesuai dengan tipe data
yang diinginkan. Contoh kasus yaitu ketika kita ingin membuat suatu program mengolah   data   mahasiswa   dimana   data   mahasiswa   terdiri   dari   NIM,   Nama,NilaiUTS,   NilaiUAS,   NilaiQuiz,   NilaiAkhir   dan   Index   Prestasinya.   Turbo   C   tidak menyediakan   tipe  data   untuk  data  tersebut.   Oleh  karena   itu  maka  kita  harus membuat suatu tipe data baru yang cocok dengan keperluan kita. Caranya adalah dengan menggunakan perintah struct.

Deklarasi   tipe   data   baru   (struct)   untuk   data   mahasiswa   dapat   dilihat

sebagai berikut :

struct TMhs

{

char NIM[11];

char Nama[21];

int NilaiUTS,NilaiUAS,NilaiQuiz;

float NilaiAkhir;

char index;

};

Deklarasi diatas berarti kita telah membuat suatu tipe data yang bernama TMhs dimana setiap data bertipe TMhs mempunyai field NIM, Nama, NilaiUTS, NilaiUAS, NilaiQuiz, NilaiAkhir dan index.

Untuk mendeklarasikan sebuah variable yang bertipe TMhs caranya adalah

seperti berikut :

TMhs Mhs1,Mhs2;

Deklarasi   tersebut   berarti   bahwa   kita   membuat   suatu   variable bernama Mhs1 dan Mhs2 dimana tiap variable tersebut mempunyai field sesuai dengan TMhs.

Untuk mengisi Nilai UTS dari Mhs1 maka perintahnya adalah :

Mhs1.NilaiUTS=50;

scanf(“%i”,&Mhs1.NilaiUTS);//membaca data dari keyboard

Contoh program yang menggunakan variable yang bertipe bentukan dapat

dilihat di halaman berikutnya.

#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.N

ilaiUAS;

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();

}

Selamat mencoba.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: