Cari Blog Ini

Diberdayakan oleh Blogger.

search

Flow -  Progress

Selasa, 05 Maret 2019

STRUCT ARRAY

by seftianhanafi.blogspot.com  |  in ALPRO 2 (2D) at  Maret 05, 2019


Array dan Struktur
Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur.  Misalnya array yang dipakai untuk menyimpan sejumlah data siswa (struct student).  Array struktur berdimensi satu ini membentuk suatu tabel, dengan barisnya menunjukkan elemen dari array-nya dan kolomnya menunjukkan elemen dari struktur.  Dalam hal ini maka deklarasi yang dibutuhkan adalah sebagai berikut : 
#define MAKS 20
                          .
  .    .
                     struct date {         /* definisi dari tipe date */
  int month;    int day;
                          int year;
}; 
struct student { /* definisi dari tipe student */
  char name[30];    struct date birthday;
};

/* deklarasi dari variabel array mhs */
struct student data_mhs[MAKS]; 

yang artinya, mendeklarasikan array data_mhs yang memiliki elemen yang bertipe struct student sebanyak MAKS.  Setelah array data_mhs dideklarasikan, maka ruang yang disediakan ditunjukkan dalam gambar di bawah ini. 

Elemen-elemen dari array stuktur tersebut bisa diakses dengan cara sebagai berikut :

for (i=0; i<MAKS; i++)  
 {
  printf("Name        : ");
  fgets(data_mhs[i].name,sizeof data_mhs[i].name,stdin);   printf("Birthday (mm-dd-yyyy): ");
  scanf("%d-%d-%d", &data_mhs[i].birthday.month, 
    &data_mhs[i].birthday.day,      &data_mhs[i].birthday.year);   printf("\n");

  /* hapus sisa data dalam penampung keyboard */
  fflush(stdin); 
 };

Selengkapnya perhatikan contoh program di bawah ini.  
/* File program : student2.c
Array struktur untuk menyimpan data-data student */

#include <stdio.h>

#define MAKS 20

struct date {   //definisi global dr tipe date  int month;  int day;  int year;
}; 
struct student {   //definisi global dr tipe student  char name[30];  struct date birthday;
};

//deklarasi global dari variabel student struct student data_mhs[MAKS]; 
 main() {
 int i=0, sudah_benar, jml;  char lagi;
 
 //memasukkan data  do    {
  printf("Name        : ");   fgets(data_mhs[i].name,sizeof data_mhs[i].name,stdin);
  
  printf("Birthday (mm-dd-yyyy): ");   scanf("%d-%d-%d", 
   &data_mhs[i].birthday.month, 
   &data_mhs[i].birthday.day,     &data_mhs[i].birthday.year);   printf("\n");
  
  i++;
  
  printf("Mau memasukkan data lagi [Y/T] ? ");   do    {
   lagi = getchar( );   //baca tombol    sudah_benar = (lagi == 'Y') || (lagi== 'y')||
    (lagi == 'T') || (lagi == 't');
  } while(! sudah_benar);
  
  //hapus sisa data dalam penampung keyboard
  fflush(stdin);    printf("\n");
 } while(lagi == 'Y' || lagi == 'y');
  jml = i;
 
 //menampilkan data  printf("DATA SISWA\n");
 for (i=0; i<jml; i++)
 {
  printf("%d. Name     : %s", i+1, data_mhs[i].name);   printf("   Birthday : %d-%d-%d\n\n",        data_mhs[i].birthday.month,    data_mhs[i].birthday.day,     data_mhs[i].birthday.year );
 };
}

Contoh eksekusi :
Name                 : Salsabila
Birthday (mm-dd-yyyy) : 10-25-1979

Mau memasukkan data lagi [Y/T] ? y 

Name                 : Wildan
Birthday (mm-dd-yyyy) : 4-16-1974

Mau memasukkan data lagi [Y/T] ? t

DATA SISWA
1.  Name   : Salsabila
 Birthday : 10-25-1979

2.  Name   : Wildan
 Birthday : 4-16-1974
  
Di samping cara pendeklarasian di atas, struktur juga dapat dideklarasikan dalam berbagai bentuk yang lain, di antaranya sbb :
struct date {    int month, day, year;
 } today, tomorrow;
   
 struct student {        
char name[30]; struct date birthday;
 } data_mhs[MAKS];
  
yaitu mendefinisikan struktur date, sekaligus mendeklarasikan variabel today dan tomorrow dengan tipe struktur date.  Demikian juga mendefinisikan struktur student, sekaligus mendeklarasikan variabel array data_mhs sebanyak MAKS elemen dengan tipe struktur student. Atau cara lainnya mendefinisikan, mendeklarasikan sekaligus menginisialisasi struktur, sebagai berikut : 

struct date {      int month, day, year;  } today = {5,14,2001};

 

Referensi


0 komentar:

Tugas Besar Pemrograman Visual

Proudly Powered by Blogger.