Home » , » penjelasan struct pada pemrograman c

penjelasan struct pada pemrograman c

Posted by Tutorial Programming on Jumat, 06 April 2012


      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.
Kalau digambarkan, maka struktur Mhs1 dan Mhs2 dapat dilihat seperti berikut :

MHS1
MHS2
NIM
NAMA
NILAI
UTS
NILAI
UAS
NILAI
QUIZ
NILAI AKHIR
INDEX
NIM
NAMA
NILAI
UTS
NILAI
UAS
NILAI
QUIZ
NILAI AKHIR
INDEX

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.NilaiUAS;
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();
}


1 comments:

  1. terimakasih banyak min...
    semuanya sangat - sangat membantu..
    sukses selalu min.. :)

    BalasHapus