Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling. Konsep yang lebih lanjut dapat juga dalam sebuah struct terdapat struct lagi (nested struct). Contoh deklarasinya sbb:
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 :D
#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);
};
}
NB: please, remember my last words in my last slide yesterday. Good Luck.
Thank u,sir!
ReplyDeletePak, ini alamat blog saya untuk tugas membuat Artikel Sturct.
ReplyDeleteNophee.Blog.com
Dilihat ya pak....
Makaciiih.....
Cmlikum pak....
ReplyDeletePak Tugas saya yang membuat Artikel Struct sudah saya tulis di blog, ini alamat blog saya Nophee.blog.com...
Mohon diperiksa,, makaciiiih pak....
Asalamualaikum wr wb
ReplyDeletetugas dari bapak ada di
dadangme7an.blog.friendster.com
terimakasih
walaikumsalam wr wb
Assalamualaikum wr wb
ReplyDeleteBapak yang terhormat
kami telah mencoba menyelesaikan tugas Bapak yang kami tulis di
dadangme7an.blog.friendster.com
terimakasih
hormat kami
walaikumsalam wr wb
MaKasIh Pak'e AtaS ComMEnTNya
ReplyDeleteITu BeRGUna BaGi KItA SeMUa Ber6
LaIn KaLi KaMi AKan PerBaiki
UntUK Tugas SeLanjutNya
TaPi JaNGan SusAH Ya Pak'E. . . . .
Thx BefOre. . . .
waduh pak punya saya saya kirim ke email bapak kok blom di cek yak ? email bapak yang bluejundi@yahoo.com weleh2 anak2 kirimnya ke sini semua ,baca emailnya pak :D
ReplyDelete