Tipe Data Struct (Structure) dalam Bahasa C

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.

14 comments:

  1. Pak, ini alamat blog saya untuk tugas membuat Artikel Sturct.
    Nophee.Blog.com
    Dilihat ya pak....
    Makaciiih.....

    ReplyDelete
  2. Cmlikum pak....
    Pak Tugas saya yang membuat Artikel Struct sudah saya tulis di blog, ini alamat blog saya Nophee.blog.com...
    Mohon diperiksa,, makaciiiih pak....

    ReplyDelete
  3. Asalamualaikum wr wb
    tugas dari bapak ada di
    dadangme7an.blog.friendster.com
    terimakasih
    walaikumsalam wr wb

    ReplyDelete
  4. Assalamualaikum wr wb
    Bapak yang terhormat
    kami telah mencoba menyelesaikan tugas Bapak yang kami tulis di
    dadangme7an.blog.friendster.com
    terimakasih
    hormat kami
    walaikumsalam wr wb

    ReplyDelete
  5. Pak ini tugas kelompok buat Artikel Struct di matakuliah BP2, kelas TF Malam. Makasih pak.

    Alamat : http://partaihumor.wordpress.com/2009/03/09/struct/

    ReplyDelete
  6. MaKasIh Pak'e AtaS ComMEnTNya

    ITu BeRGUna BaGi KItA SeMUa Ber6

    LaIn KaLi KaMi AKan PerBaiki

    UntUK Tugas SeLanjutNya

    TaPi JaNGan SusAH Ya Pak'E. . . . .

    Thx BefOre. . . .

    ReplyDelete
  7. 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
  8. makasih pak buat materi tipe data struct nya :)

    ReplyDelete
  9. sama2, riz. semoga bermanfaat :)

    ReplyDelete
  10. Itu kalau kiri semua, orang awam bacanya bakal bingung bos

    ReplyDelete
  11. ketika di editor wordpressnya, muncul tab-nya. tapi begitu di-save, hilang semua jadi rata kiri semua :(

    ReplyDelete
  12. maap, pak,,
    itu kan bahasa C,, bukan C++

    ReplyDelete
  13. iya benar. klo C++ cenderung ke OOP, pakai cin, cout. namun, cript C masih bisa running di C++. terima kasih :)

    ReplyDelete