2. Struktur adalah sekumpulan variabel yang
masing-masing tipe datanya bisa berbeda,
dan dikelompokkan dalam satu nama.
Berbeda dengan suatu larik yang berisi
kumpulan elemen-lemen larik bertipe sama
dalam satu nama, struktur dapat terdiri dari
kumpulan variabel-variabel yang berbeda
tipenya dalam satu nama.
Variabel-variabel yang membentuk suatu
struktur selanjutnya disebut elemen-elemen
atau anggota struktur.
3. Struktur membantu mengatur data-data yang
rumit, khususnya dalam program yang besar,
karena struktur memberikan sekelompok
variabel yang diperlakukan sebagai satu unit.
Struktur dimungkinkan dapat berisi elemen-
elemen data bertipe int, float, char, dan
lainnya.
Pada Pascal, struktur ini juga dikenal sebagai
record).
Stuktur sering digunakan untuk mendefinisikan
suatu record data yang disimpan di dalam file.
Struktur termasuk ke dalam tipe data yang
dibangkitkan (derived data type), yang disusun
menggunakan obyek dengan tipe yang lain.
4. Struktur dapat dideklarasikan menggunakan kata
kunci struct, contohnya seperti berikut:
struct IP_Mhs{
int NIM[10];
char Nama[50];
int Semester;
float IP;
};
Struktur di atas memiliki nama IP_Mhs dan
memiliki empat buah elemen, yaitu NIM[10]
bertipe int, Nama[50] bertipe char, Semester
bertipe int, dan IP bertipe float.
5. IP_Mhs merupakan nama dari tipe data struktur
yang mempunyai empat buah elemen tersebut,
bukan nama dari suatu variabel struktur.
Variabel struktur selanjutnya dapat
dideklarasikan dengan nama tipe data IP_Mhs
yang diawali dengan kata kunci struct seperti
pada contoh berikut ini:
struct IP_Mhs IP_Semester, IP_Kumulatif;
IP_Semester dan IP_Kumulatif merupakan
variabel-variabel yang mempunyai tipe data
IP_Mhs.
6. Deklarasi variabe-variabel tipe data struktur
juga dapat dilakukan dengan menggabungkan
kedua deklarasi yang terpisah menjadi
sebuah deklarasi, seperti contoh berikut:
struct IP_Mhs {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester, IP_Kumulatif;
7. Nama dari tipe struktur, selanjutnya dapat
digunakan untuk mendeklarasikan variabel-
variabel yang lain dengan struktur tersebut.
Jika nama struktur tidak digunakan lagi untuk
mendeklarasikan variabel-variabel struktur yang
lain, maka nama dari tipe data ini dapat juga
tidak dituliskan, sehingga deklarasinya dapat
berbentuk seperti ini:
struct {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester, IP_Kumulatif;
8. Variabel-variabel struktur dapat juga langsung diberi
nilai awal. Misalnya variabel IP_Semester mempunyai
nilai awal NIM-nya adalah 3201416001, Nama
Mahasiswanya adalah “Danish”, semesternya adalah 2
dan IP-nya 3.15, maka dapat dituliskan sebagai
berikut:
struct {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester = {
3201416001, “Danish”, 2, 3.15 },
IP_Kumulatif;
9. Atau jika nama tipe data strukturnya telah
dideklarasikan sendiri dan variabel
strukturnya dideklarasikan terpisah, maka
dapat ditulis:
struct IP_Semester = {
3201416001, “Danish”, 2, 3.15 },
IP_Kumulatif;
10. Elemen-elemen struktur dapat diakses secara
individual dengan menyebutkan nama
variabel strukturnya diikuti oleh operator
titik (‘.’) dan nama dari elemen strukturnya,
seperti berikut ini:
X = IP_Semester.IP;
yang menunjukkan elemen dengan nama IP
dari variabel struktur IP_Semester dengan
nilai awal 3.15, diisikan ke variabel numerik
lain bernama X.
11. /* ------------------------------------------
Nama Program: ADP_Struktur_1.cpp
Struktur
------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct {
char Nama[20];
int NIM;
float IP;
}Mhs;
printf("Nama Mahasiswa: ");
scanf("%s", &Mhs.Nama);
printf("Nomor Induk Mahasiswa: ");
scanf("%d", &Mhs.NIM);
printf("Indeks Prestasi Semester: ");
scanf("%f", &Mhs.IP);
printf("n");
printf("Data Mahasiswa adalah %s, dengan NIM %d, dan IP %.2fn", Mhs.Nama, Mhs.NIM, Mhs.IP);
printf("n");
system("pause");
}
15. Pada contoh program ADP_Struktur_1.cpp
variabel struktur Mhs, elemen Nama dapat
diakses dengan menuliskan Mhs.Nama,
elemen NIM dapat diakses dengan
menuliskan Mhs.NIM, dan elemen IP dapat
diakses dengan menuliskan Mhs.IP.
Sedangkan pada contoh program
ADP_Struktur_2.cpp, elemen JariJari dapat
diakses dengan menuliskan
Lingkaran.JariJari, elemen Keliling dapat
diakses dengan menuliskan
Lingkaran.Keliling dan elemen Luas dapat
diakses dengan menuliskan Lingkaran.Luas.
16. Suatu struktur dapat berisi struktur yang lain
dengan elemn berupa struktur yang lain. Jika
suatu elemen dari struktur dapat diakses dengan
menuliskan sebagai berikut:
nama-variabel.nama-elemen;
maka sub-elemen dari struktur dapat diakses
dengan menuliskan:
nama-variabel.nama-elemen.nama-sub-elemen
17. /* -----------------------------------------
Nama Program: ADP_Struktur_3.cpp
Struktur berisi Struktur lain
----------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
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 Masuk;
struct Alamat Tinggal;
float Gaji;
}Karyawan = {
"Muhammad Fadly",
17,
11,
87,
“Jl. Adisucipto no.35",
"Pontianak",
1500000
};
//Menampilkan data karyawan
printf("Nama Karyawan : %sn",Karyawan.Nama);
printf("Tanggal Masuk : %2d-%2d-%2dn",Karyawan.Masuk.Hari,
Karyawan.Masuk.Bulan, Karyawan.Masuk.Tahun);
printf("Alamat : %s, %sn",Karyawan.Tinggal.Jalan,
Karyawan.Tinggal.Kota);
printf("Gaji per Bulan : Rp. %10.2fn",Karyawan.Gaji);
printf("n");
system("pause");
}
18.
19. Elemen-elemen dari suatu larik dapat juga
berbentuk suatu struktur. Larik struktur
dimensi satu membentuk suatu tabel (mirip
dengan larik dimensi dua) dengan barisnya
menunjukkan elemen dari lariknya dan
kolomnya menunjukkan elemen dari struktur.
Tiap-tiap elemen dari struktur dapat diakses
untuk tiap-tiap elemen larik dengan
menuliskan nama dari lariknya diikuti dengan
indeksnya, diikuti oleh operator titik dan
nama dari elemen strukturnya.
20. /* --------------------------------
Nama Program: ADP_Struktur_4.cpp
Larik Struktur
-------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct Psd{
char Kode[5];
char Nama[20];
int Unit;
float Harga;
};
struct Psd Persediaan[100] = {
"M123","Monitor",5,125000,
"D124","DVD",10,10000,
"P125","Printer",7,3000000
};
int I, N=3;
float Total=0;
21. //Tampilkan hasilnya dalam bentuk label
printf(" DATA PERSEDIAANnn");
printf("Kode Nama Unit Harga Totaln");
printf("_____________________________________________________n");
printf("n");
for(I=0;I<N;I++){
printf("%s %-5s %4d %10.2f %10.2fn",Persediaan[I].Kode,
Persediaan[I].Nama,Persediaan[I].Unit,Persediaan[I].Harga,
Persediaan[I].Unit*Persediaan[I].Harga);
Total += Persediaan[I].Unit*Persediaan[I].Harga;
}
printf("n ");
printf("Total %10.2f n",Total);
printf("n");
system("pause");
}
22.
23. Kristanto, Andri. (2009). Algoritma &
Pemrograman dengan C++ Edisi 2.
Yogyakarta. Graha Ilmu.
Hartono, Jogiyanto, MBA., Ph.D. (2002).
Konsep Dasar Pemrograman Bahasa C.
Yogyakarta. Andi.