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:

3 comments:

  1. Menangkan Jutaan Rupiah dan Dapatkan Jackpot Hingga Puluhan Juta Dengan Bermain di www(.)SmsQQ(.)com

    Kelebihan dari Agen Judi Online SmsQQ :
    -Situs Aman dan Terpercaya.
    - Minimal Deposit Hanya Rp.10.000
    - Proses Setor Dana & Tarik Dana Akan Diproses Dengan Cepat (Jika Tidak Ada Gangguan).
    - Bonus Turnover 0.3%-0.5% (Disetiap Harinya)
    - Bonus Refferal 20% (Seumur Hidup)
    -Pelayanan Ramah dan Sopan.Customer Service Online 24 Jam.
    - 4 Bank Lokal Tersedia : BCA-MANDIRI-BNI-BRI

    8 Permainan Dalam 1 ID :
    Poker - BandarQ - DominoQQ - Capsa Susun - AduQ - Sakong - Bandar Poker - Bandar66

    Info Lebih Lanjut Hubungi Kami di :
    BBM: 2AD05265
    WA: +855968010699
    Skype: smsqqcom@gmail.com

    ReplyDelete