Home » , » membuat array struct pada pemrograman c

membuat array struct pada pemrograman c

Posted by Tutorial Programming on Jumat, 06 April 2012


       Setiap tipe data dapat dibuat dalam bentuk array. Begitu juga dengan tipe data yang dibuat dengan perintah struct.
      seperti yang sebelumnya disini yang membedakan hanya datanya berbentuk array. dan struct disini tidak hanya satu, tetapi banyak struct disini ditentukan oleh panjang array dari struct tersebut. kalau contoh dibawah ini banyak struct di pengaruhi oleh variabel "maks". untuk lebih jelasnya lihat contoh berikut.


Contoh program di bawah ini dapat menjelaskan cara penggunaan array yang bertipe data buatan.

#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;
}


Kalau program tersebut dijalankan maka jalannya program dalam dilihat di bawah ini :
Pengisian Data Mahasiswa Ke-1
NIM        : 10197025
NAMA       : Andri Heryandi
Nilai QUIZ : 70
Nilai UTS  : 80
Nilai UTAS : 90
Pengisian Data Mahasiswa Ke-2
NIM        : 10197024
NAMA       : Hery Dwi Yulianto
Nilai QUIZ : 12
Nilai UTS  : 56
Nilai UTAS : 90
Pengisian Data Mahasiswa Ke-3
NIM        : 10197001
NAMA       : Irmayanti
Nilai QUIZ : 80
Nilai UTS  : 90
Nilai UTAS : 100

Data yang telah dimasukan adalah :
-----------------------------------------------------------------------
|   NIM    |        NAMA          | QUIS | UTS | UAS |   N A  | INDEX |
-------------------------------------------------------------------------
| 10197025 | Andri Heryandi       |   70 |  80 |  90 |  83.00 |   A   |
| 10197024 | Hery Dwi Yulianto    |   12 |  56 |  90 |  64.20 |   B   |
| 10197001 | Irmayanti            |   80 |  90 | 100 |  93.00 |   A   |
      -----------------------------------------------------------------------


9 comments:

  1. mau tanya, gimana coding nya kalo menggunakan pointer di program tsb?
    misal struct TMhs *p;
    p = &mhs;
    makasih

    BalasHapus
  2. clrscr();
    masih belum di deklarasikan, jadi programmnya belum berjalan

    BalasHapus
  3. pada saat di run, program masih ada yang error

    BalasHapus
  4. sangat membantu gan..
    terimakasih banyak..

    BalasHapus