struct mhs {
int NPM;
char nama[20];
float IPK;
} data[20];
Contoh di atas menunjukkan bahwa dibuat struct bernama “mhs” dengan isian data NPM, nama dan IPK. Sedangkan nama variabelnya adalah data. Dalam kasus tsb variabel data dibuat berupa array dengan ukuran 20. Artinya kita akan membuat array untuk menampung data struct mhs sebanyak 20. Konsep struct seringkali dikaitkan dengan array karena logikanya penyimpanan data itu tidak cukup satu item saja, tetapi lebih dari itu.
Contoh Program Sederhana:
Dalam operasi struct yang umum digunakan adalah: penambahan data, penampilan data, pencarian data, edit serta hapus data. Berikut ini contoh sederhananya yang saya sarankan untuk dimodifikasi dengan menambahkan menu program yang bisa diulang-ulang. Selamat mencoba
#include “stdio.h”
struct mhs
{ int npm;
float ipk;
int terhapus; //untuk menyimpan status data. bernilai 0 jika masih ada, dan 1 jika sdh dihapus
}data[3]; //array of struct dengan 3 elemen
void main()
{ int i, cari, ketemu;
printf(“Isikan data\n”);
for(i=0;i<3;i++)
{ printf(“NPM = “); scanf(“%d”, &data[i].npm);
printf(“IPK = “); scanf(“%f”, &data[i].ipk);
data[i].terhapus = 0;
};
printf(“Isi data\n”); //menampilkan data
for(i=0;i<3;i++)
{ if (data[i].terhapus == 0) //tampilkan data yg belum terhapus
printf(“NPM = %d\tIPK = %f\n”, data[i].npm, data[i].ipk);
};
printf(“Cari NPM = “); scanf(“%d”, &cari); ketemu = 0; //awal pencarian data
for(i=0;i<3;i++)
{ if (cari == data[i].npm)
ketemu = 1;
}
if (ketemu == 1)
printf(“NPM ditemukan\n”);
else
printf(“NPM tidak ada\n”);
printf(“Cari NPM hapus = “); scanf(“%d”, &cari); //awal penghapusan data
for(i=0;i<3;i++) //cari dulu data yang akan dihapus. misal berdasar NPM
{ if ((cari == data[i].npm) && (data[i].terhapus == 0)) //cek juga status datanya
{ data[i].terhapus = 1; break; //sekali ketemu ubah status, keluar loop
}
}
printf(“Isi data\n”); //menampilkan data setelah dihapus
for(i=0;i<3;i++)
{ if (data[i].terhapus == 0) //tampilkan data yang statusnya belum terhapus
printf(“NPM = %d\tIPK = %f\n”, data[i].npm, data[i].ipk);
};
printf(“Cari NPM edit = “); scanf(“%d”, &cari); //awal edit data
for(i=0;i<3;i++) //cari dulu data yg akan di-edit. misal berdasar NPM
{ if (cari == data[i].npm && (data[i].terhapus == 0)) //cek juga status data
{ printf(“Masukkan data baru:\n”);
printf(“NPM = “); scanf(“%d”, &data[i].npm);
printf(“IPK = “); scanf(“%f”, &data[i].ipk);
data[i].terhapus = 0;
}
}
printf(“Isi data\n”); //tampilkan lagi isi data yg telah berubah
for(i=0;i<3;i++)
{ if ((data[i].terhapus == 0))
printf(“NPM = %d\tIPK = %f\n”, data[i].npm, data[i].ipk);
};
}
Tidak ada komentar:
Posting Komentar