Struct Of Array pada C++

Melanjutkan postingan saya yang sebelumnya tentang struct, kali ini saya akan memberikan tutorial tentang cara pembuatan struct of array. Struct of array merupakan pembuatan array pada struct, terkadang kita membutuhkan array pada objek yang dibuat oleh struct.



Contoh kasusnya:
semisal kita mendeklarasikan struct orang yang didalamnya terdapat atribut nama dan alamat, struct orang ini akan kita buat objek yang nantinya akan menyimpan data dari banyak orang. katakanlah struct orang ini akan kita gunakan untuk menyimpan data dari 3 orang. Jika kita menggunakan pendeklarasian tanpa array maka akan seperti ini:

struct orang
{
   char nama[30,alamat[30];
}obj1,obj2,obj3;

akan sangat merepotkan bukan? kita harus mendeklarasikan objek-objek tersebut satu persatu. Mungkin untuk kasus diatas masih bisa ditolerir karena hanya untuk 3 orang. Namun jika kita membutuhkan tempat untuk 100 orang apa yang terjadi? kita akan sangat kerepotan mendeklarasikan objek-objek tersebut.



Nah, disinilah fungsi struct of array. dengan struct of array kita tidak perlu mendeklarasikan struct tersebut satu persatu. Sama halnya saat kita mendeklarasikan array pada variabel primitif. berikut adalah caranya:


struct orang
{
   char nama[30],alamat[30];
}obj[3];

atau bisa juga ditulis seperti ini:

struct orang
{
   char nama[30,alamat[30];
};

orang obj[3];
akan sangat efisien bukan?
dalam pemanggilannya pun sama dengan pemanggilan pada struct biasa, hanya saja perlu ditambahkan indeks objeknya. berikut contoh pemanggilannya:

printf("%s",obj[0].nama);

untuk memantapkannya, berikut saya berikan contoh program yang didalamnya ada penggunaan struct of array:

 #include <stdio>
#include <conio>

main()
{
    struct orang
   {
       char nama[30],alamat[40];
   };
   orang org[3];
   printf("Masukan data : \n==================\n\n");
   for (int i=0;i<3;i++)
   {
       printf("Nama\t= ");gets(org[i].nama);
      printf("Alamat\t= ");gets(org[i].alamat);
      printf("===================\n");
   }
   clrscr();
   printf("Data yang telah dimasukan : \n==============================\n\n");
printf("| No. |          Nama                |               Alamat                   |\n");
   for (int i=0;i<3;i++)
   {
      printf("|%5d|",i+1);
       printf("%30s|",org[i].nama);
      printf("%40s|",org[i].alamat);
      printf("\n");
   }
   getch();
}

Anda bisa mendownload program tersebut pada link di bawah ini:


Screenshot program:

2 comments: