Suatu struktur dinyatakan dengan kata kunci struct, daftar pernyataan variable yang disebut anggota, yang terlampir dalam tanda kurung { }. Tiap pernyataan anggota dan struktur harus berakhir dengan semicolon ( ; ).
Bentuk deklarasi struktur :
Struct nama_struct
{
anggota_struktur ;
} ;
Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk mendefinisikan suatu varibel, misalnya :
nama_struct variabel_struktur;
merupakan pendefinisian varibel variabel_struktur dengan tipe structur nama_struct.
Anggota struktur dapat diakses dengan menggunakan bentuk :
variabel_struktur.anggota
Contoh :
#include <iostream.h>
void main()
{
struct keluarga
struct keluarga
{
char suami[15];
char istri[15];
int jumlah_anak;
};
keluarga Andi = {“Andi”,”Nina”,3};
keluarga Budi = {“Budi”,”Ana”,5};
cout<<”Jumlah anak Bapak Andi “<<Andi.jumlah_anak<<endl;
cout<<”Istri Bapak Budi ialah “<<Budi.istri<<endl;
}
Keluarannya :
Jumlah anak Bapak Andi 3
Istri Bapak Budi ialah Ana
Perhatikan bahwa pada akhir dari struct diberi tanda semicolon.
Array dari Struktur
Array dari struktur dapat dideklarasikan seperti halnya pendeklarasian array biasa.
Bentuk : nama_array[index]. anggota_struktur;
Contoh :
#include <iostream.h>
void main()
{
struct mahasiswa
struct mahasiswa
{
long nim;
int nilai;
};
mahasiswa teknik[3];
teknik[0].nim = 19500376;
teknik[0].nilai = 78;
teknik[1].nim = 19500378;
teknik[1].nilai = 71;
teknik[2].nim = 19500276;
teknik[2].nilai = 76;
cout<<”NIM NILAI \n”;
for(int n=0;n<3;n++)
{
cout<<teknik[n].nim<<”\t\t”<<teknik[n].nilai<<endl;
}
}
Keluarannya :
NIM NILAI
19500376 78
19500378 71
19500276 76
Pointer Sebagai Anggota Struktur
Anda dapat mempunyai karakter, integer, float bahkan pointer untuk dapat dijadikan sebagai tipe data anggota struktur.
Contoh :
#include <iostream.h>
void main()
{
struct kuliah
{
char kuliah1[30];
char kuliah2[30];
struct kuliah *ptr;
};
kuliah semester[3] =
{{"Komputer 207","Matematika 217",&semester[1]},
{"Electronic 210","Sistem Kendali 303",&semester[2]},
{"Analisis Numerik 301","Telekomunikasi 367",&semester[0]}};
int n;
for(n=0; n<3;n++)
{
cout<<"Isi sedang menujuk ke : ";
cout<<semester[n].ptr->kuliah1<<endl;
}
}
Keluarannya :
Isi sedang menunjuk ke : Electronic 210
Isi sedang menunjuk ke : Analisis Numerik 301
Isi sedang menunjuk ke : Komputer 207
Struktur Sebagai Anggota Struktur
Struktur juga dapat menjadi anggota struktur lain. Contoh diatas juga salah satu contoh struktur sebagai anggota contoh. Untuk dapat lebih memahami dibawah ini diberikan sebuah contoh :
Contoh :
#include <iostream.h>
void main()
{
struct anak
struct anak
{
char pria[15];
char wanita[15];
};
struct keluarga
{
char suami[15];
char istri[15];
struct anak ;
}
struct anak Andi = {“Tedi”,”Lisa”}
struct keluarga Budi = {“Budi”,”Ana”,”Ryu”,”Caecilia”};
cout<<”Anak laki-laki Andi “<<Andi.pria<<endl;
cout<<”Putri Bapak Budi “<<Budi.wanita<<endl;
}
Keluarannya :
Anak laki-laki Andi Tedi
Putri Bapak Budi Caecilia
UNION
Union menyerupai struktur, namun mempunyai perbedaan yang nyata. Union biasa dipakai untuk menyatakan suatu memori dengan nama lebih dari satu. Sebagai gambaran, sebuah union dideklarasikan sebagai berikut :
union bila_bulat
{
unsigned int di;
unsigned char dc[2];
}
Pada pendeklarasian seperti ini, di dan dc menempati memori yang sama. Untuk lebih jelasnya, perhatikan contoh berikut :
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
bil_bulat bil;
bil.di = 0x2345;
cout<<setiosflags(ios::showbase);
cout<<hex<<”di : “<<bil.di<<endl;
cout<<hex<<”dc[0] : “<<bil.dc[0]<<endl;
cout<<hex<<”dc[1] : “<<bil.dc[1]<<endl;
}
Keluarannya :
di : 0x2345
dc[0] : 0x45
dc[1] : 0x23
Keterangan :
setiosflags(ios::showbase) mengembalikan basis hitung yang digunakan. Hex membuat basis hitung menjadi heksadesimal.
Contoh 1a Struct lain:
// struct dg cara pertama
#include<iostream.h>
#include<conio.h>
#include<string.h>
struct TypeNilai
{
float praktek;
float teori;
};
struct Mahasiswa
{
char nim[5];
char nama[20];
char angkt[5];
TypeNilai nilai;
};
void main()
{
Mahasiswa mhs;
//inisialisasi
strcpy(mhs.nim,"none");
strcpy(mhs.nama,"none");
strcpy(mhs.angkt,"none");
mhs.nilai.praktek = 0;
mhs.nilai.teori = 0;
//output dari inisialisasi
cout << "Data mahasiswa sebelum diinput \n";
cout << "Nim mahasiswa : " << mhs.nim << endl;
cout << "Nama mahasiswa : " << mhs.nama << endl;
cout << "Angkatan : " << mhs.angkt << endl;
cout << "Nilai Teori : " << mhs.nilai.teori << endl;
cout << "Nilai Praktek : " << mhs.nilai.praktek << endl;
cout << endl << endl;
cout << "Press any key to continue...";
getch();
clrscr();
//input data mahasiswa
cout << "Masukan data mahasiswa : \n";
cout << "Nim : ";
cin.getline(mhs.nim,sizeof(mhs.nim));
cout << "Nama : ";
cin.getline(mhs.nama,sizeof(mhs.nama));
cout << "Angkatan : ";
cin.getline(mhs.angkt,sizeof(mhs.angkt));
cout << "Nilai teori : ";
cin >> mhs.nilai.teori;
cout << "Nilai praktek : ";
cin >> mhs.nilai.praktek;
//output
clrscr();
cout << "Data mahasiswa yang diinput : \n";
cout << "Nim : " << mhs.nim << endl;
cout << "Nama : " << mhs.nama << endl;
cout << "Angkatan : " << mhs.angkt << endl;
cout << "Nilai Teori : " << mhs.nilai.teori << endl;
cout << "Nilai Praktek : " << mhs.nilai.praktek << endl;
}
Contoh 1b Struct lain :
/ struct dg cara pertama
#include<iostream.h>
#include<conio.h>
#include<string.h>
struct Mahasiswa
{
char nim[5];
char nama[20];
char angkt[4];
}mhs;
void main()
{
//inisialisasi
strcpy(mhs.nim,"none");
strcpy(mhs.nama,"none");
strcpy(mhs.angkt,"none");
//output dari inisialisasi
cout << "Data mahasiswa sebelum diinput \n";
cout << "Nim mahasiswa : " << mhs.nim << endl;
cout << "Nama mahasiswa : " << mhs.nama << endl;
cout << "Angkatan : " << mhs.angkt << endl;
cout << endl << endl;
cout << "Press any key to continue...";
getch();
clrscr();
//input data mahasiswa
cout << "Masukan data mahasiswa : \n";
cout << "Nim : ";
cin.getline(mhs.nim,sizeof(mhs.nim));
cout << "Nama : ";
cin.getline(mhs.nama,sizeof(mhs.nama));
cout << "Angkatan : ";
cin.getline(mhs.angkt,sizeof(mhs.angkt));
clrscr();
cout << "Data mahasiswa yang diinput : \n";
cout << "Nim : " << mhs.nim << endl;
cout << "Nama : " << mhs.nama << endl;
cout << "Angkatan : " << mhs.angkt << endl;
}
Posting Komentar