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 ; };
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;
unsigned int tahun;
};
struct
alamat{
char jalan[30];
char kota[20];
};
char jalan[30];
char kota[20];
};
struct{
char nama[40];
struct tanggal tgl_masuk;
struct alamat rumah;
float gaji;
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;
}
0 komentar:
Post a Comment