Struct Beserta Contoh Pemogramannya



A.      Pengertian Struct

Struct (struktur) terdiri dari beberapa variabel yang dikelompokkan di dalam satu nama yang sama. Tipe data yang ada dalam suatu struct berbeda dalam setiap variabelnya dalam satu nama tetapi masih berkaitan antar variabel yang ada. Misalnya data mengenai nama, nomor pegawai, jabatan, gaji seorang pegawai. Dari keempat variabel tersebut mempunyai tipe data yang berbeda tetapi masih ada kaitannya antar variabel yakni data pegawai.
Variabel-variabel yang membentuk suatu struktur ini selanjutnya disebut dengan elemen atau anggota struktur. Dengan demikian suatu struktur dimungkinkan dapat berisi dengan elemen-elemen data bertipe int, float, char dan lainnya. Dengan menggunakan struktur maka data ini dapat diolah per elemen (field) atau secara keseluruha (per struktur, per-record).

B.       Pendeklarasian Struct

Bentuk umum dari pendeklarasian program struct dapat dituliskan sebagai berikut:
struct nama_tipe_struktur {
tipe_data identifier;
….
Identifier_n;
}nama_variabel_struktur;
Contoh :
struct data pegawai
{  char nama[20];
   char nomor pegawai[12];
   char jabatan[12];
int jam kerja;
float gaji;
};

Program struct tersebut memiliki lima variabel, yakni nama[20] dengan tipe data char, nomor pegawai[12] dengan tipe data char, jabatan[12] dengan tipe data char, jam kerja dengan tipe data int, dan gaji dengan tipe data float. Data pegawai di bagian atas meupakan nama dari tipe data struct, bukan nama dari variabel struct.
Variabel struct dapat dideklarasikan dengan tipe data data pegawai, dengan diawali dengan memasukkan struct data pegawai sebagai berikut:
Struct data pegawai masuk_kantor, keluar_kantor;
Dengan demikian,  masuk_kantor dan keluar_kantor merupakan variabel-variabel yang mempunyai tipe data data pegawai.
Ada cara lain untuk mendeklarasikan variabel-variabel struct dengan menggabungkan kedua deklarasi yang terpisah menjadi satu deklarasi saja sebagai berikut:
 struct data pegawai
{  char nama[20];
   char nomor pegawai[12];
   char jabatan[12];
int jam kerja;
float gaji;
} masuk_kantor, keluar_kantor;

C.       Mengakses Elemen Struct

Pengaksesan elemen-elemen struct dari suatu variabel struct dapat dilakukan secara individual dengan menyebutkan nama variabel struct-nya yang diikuti dengan operator titik (.) dan nama dari elemen struct-nya. Contoh pengaksesan elemen struct dapat dilihat listing program dibawah ini.

#include <stdio.h>
#include<stdlib.h>
struct koord{ int x, y ; };
void main()
{ struct koord A, B;
printf("A(x, y)? "); scanf("%d %d", &A.x, &A.y); //akses elemen x dan y dari A
printf("B(x, y)? "); scanf("%d %d", &B.x, &B.y); //akses elemen x dan y dari B
printf("\nKoordinat selisih Titik A dan B: ");
printf("(%d, %d)", abs(A.x-B.x), abs(A.y-B.y));
}



D.      Struct Bertingkat
Struktur dapat dideklarasikan secara bertingkat, maksudnya salah satu elemen suatu struktur merupakan sebuah struktur juga. Manipulasi elemen seperti ini memerlukan dua buah operator titik. Jika suatu elemen dari struktur dapat diakses dengan sebagai berikut:
nama_variabel.nama_elemen;
Maka sub-elemen dari struktur dapat diakses dengan menuliskan berikut:
nama_variabel.nama_elemen.nama_sub_elemen;
untuk lebih jelasanya dapat dilihat pada listing program dibawah ini:

#include <stdio.h>
void main()
{
struct tanggal{
unsigned int hari;
unsigned int bulan;
unsigned int tahun;
};
struct alamat{
char jalan[30];
char kota[20];
};
struct{
char nama[40];
struct tanggal tgl_masuk;
struct alamat rumah;
float gaji;
}pegawai={"Nana Sutrisna", 16, 12, 1985, "Joglo Raya No.52", "Jakarta Barat", 2500000};
printf("Nama Pegawai = %s", pegawai.nama);
printf("\nTanggal masuk = %d-%d-%d", pegawai.tgl_masuk.hari, pegawai.tgl_masuk, pegawai.tgl_masuk.tahun);
printf("\nAlamat rumah = Jalan %s, %s", pegawai.rumah.jalan, pegawai.rumah.kota);
printf("\nGaji Pokok = %5.2f", pegawai.gaji);
}



Berikut ini merupakan contoh dari kode pemograman sederhana dari struct :

#include <iostream>
#include <stdio.h>
#include <stdlib.h> //baris 1-4 disebut directive
#include <conio.h>

using namespace std;

struct data_mahasiswa
{
    char nim [12];
    char nama [100];
    char fakultas [100];
};
 // utk mendeklarasikan variabel struct
main(){
//input struct data mahasiswa
data_mahasiswa m[10];
for (int i=0; i<10; i++){
    cout<<" Data mahasiswa ke-"<<i+1<<endl;
    cout<<"-------------------------\n";
    cout<<" NIM      : "; cin>>m[i].nim;
    cout<<" Nama     : "; fflush(stdin); gets(m[i].nama); //fflush(stdin) utk membersihkan memori dari data-data yang tidak perlu, kemudian dimasukkan ke dalam nama
    cout<<" Fakultas : "; fflush(stdin); gets(m[i].fakultas);
    cout<<"\n\n";
}

main();
for (int i=0; i<10; i++){
//output struct data mahasiswa
cout<<" Data mahasiswa ke-\n"<<i+1<<endl;
cout<<"-------------------------\n";
cout<<" NIM      : "<< m[i].nim<<endl;
cout<<" Nama     : "<< m[i].nama<<endl;
cout<<" Fakultas : "<< m[i].fakultas<<endl;
cout<<"\n\n";
}
    return 0;
}
Share on Google Plus

About BOCAH ALPRO

Kami adalah Sekumpulan Bocah yang ingin Berbagi Ilmu kepada Anda. Jadi Manfaatkanlah Website ini untuk Media Belajar. Karena "Ilmu tanpa Amal bagaikan Pohon tak Berbuah."

0 komentar:

Post a Comment