Definisi Struktur (struct)
sendiri
adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama , dengan sifat
setiap variabel dapat memiliki tipe yang berlainan.
Dalam pemrograman C++, jika kita membuat suatu program
yang memerlukan berbagai tipe data yang akan digunakan. Tentunya dengan nama
variable yang banyak pula. Dalam program yang sederhana, jika kita manggunakan
sedikit variable tentu tidak jadi masalah. Akan tetapi jika kita akan membuat
sebuah program yang lebih kompleks, dengan berbagai macam nama dan tipe
variable dalam pendeklarasianya. Dengan struct, kita bisa mengelompokkan
berbagai nama dan tipe variable tersebut sesuai dengan kelompoknya. Hal ini
tentunya bisa berguna untuk memudahkan dalam mengelompokkan sebuah variable.
Sebagai contoh umum, ada terdapat berbagai nama variable : nama, npm, alamat,
dll. Variabel – variable tersebut dapat kita kelompokkan menjadi satu dengan
nama data_mahasiswa. Kemudian jika terdapat variable mata_kuliah,
nilai, sks, kelas, dll dapat kita kelompokkan menjadi satu dengan nama krs.
Itulah sebagian gambaran umum tentang struct. Masih bingung karena bahasa yang
terlalu beribet? Klo gitu, Langsung saja ke teori. Okey..
Dalam mendeklarasikan struct, ada beberapa cara
penulisan yang biasa digunakan.
Pertama :
struct nama_struct {
tipe_data_1 nama_var_1;
tipe_data_2 nama_var_2;
tipe_data_3 nama_var_3;
……
};
Yang kedua adalah dengan deklarasi menggunakan
typedef.
typedef struct {
tipe_data_1 nama_var_1;
.
.
tipe_data_n nama_var_n;
} nama_struct;
Kemudian untuk mendeklarasikan sebuah variable dengan
tipe data struct yang telah dibuat sebelumnya adalah :
struct tipe_struct nama_variabel;
Jika pendeklarasian struct sebelumnya menggunakan
typedef, maka untuk mendeklarasikan sebuah variable dengan tipe data struct
adalah :
tipe_struct nama_variabel;
Dan untuk mengakses sebuah struct adalah dengan
menggunakan operator titik (.)
nama_var_struct . nama_var_elemen;
NESTED STRUCT
Di dalam sebuah struct dapat dimungkinkan terdapat
sebuah struct lagi. Jadi hal ini dapat diartikan struct di dalam struct. Hampir
mirip nested loop, yaitu for di dalam for.
Contoh :
struct
tanggal {
int hari;
int bulan;
int tahun;
};
struct
karyawan {
char NIP
[10];
char nama
[20];
float gaji;
};
STRUCT OF ARRAY
Sebuah struct yang di dalamnya tedapat variable dengan
tipe data array.
Contoh :
struct data {
char
nama[20];
char
alamat[100];
};
ARRAY OF STRUCT
Sebuah array
yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan
object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang,
dsb.
Contoh :
typedef
struct {
char npm [10];
char nama [20];
char alamat [30];
unsigned
angkatan;
float ipk;
} mahasiswa
;
mahasiswa data[100];
// deklarasi var, menyiapkan 100 data dengan tipe data mahasiswa (struct yang
telah dibuat sebelumnya).
CONTOH PROGRAM
Program untuk memasukkan data mahasiswa.
Source code :
#include
“stdio.h”
#include
“string.h”
#include
“conio.h”
typedef
struct {
char npm [10];
char nama [20];
char alamat [30];
int
angkatan;
float ipk;
} mhs ;
void main()
{
mhs student[100];
char lagi = ‘y’; int i;
for( i = 0; lagi == ‘y’; i++)
{
printf(“nNPM = “); gets(student[i].npm);
printf(“Nama = “); gets(student[i].nama);
printf(“Alamat = “); gets(student[i].alamat);
printf(“Angkatan = “); scanf(“%i”, &student[i].angkatan);
printf(“IPK = “); scanf(“%f”, &student[i].ipk);
printf(“nMasukkan Lagi (y/t) ? “); lagi = getche(); flushall();
}
printf(“nnData yang sudah dimasukkan adalah:n”);
for( int j = 0; j < i; j++)
{
printf(“nNPM : %s”, student[j].npm);
printf(“nNama : %s”, student[j].nama);
printf(“nAlamat : %s”, student[j].alamat);
printf(“nAngkatan : %i”, student[j].angkatan);
printf(“nIPK
: %f n”, student[j].ipk);
}
}
OUTPUT PROGRAM
Contoh
Program
ANALISA PROGRAM
Dalam program di atas, kita mendeklarasikan sebuah
struct dengan nama mhs. Dalam struct mhs, terdapat lima variable yang
dideklarasikan, yaitu array npm, nama, alamat dengan tipe char, kemudian
angkatan dengan tipe integer, serta ipk dengan tipe float.
Setelah mendeklarasikan sebuah struct, masuk ke fungsi
main. Di dalam fungsi main, terlebih dahulu mendeklarasikan sebuah array student
dengan tipe mhs dengan ukuran 100. Maksudnya kita bisa menginput sampai
dengan 100 data mahasiswa ke dalam array student. Inilah yang disebut
dengan array of struct seperti yang telah dijelaskan sebelumnya.
Kemudian program masuk ke dalam looping untuk
memasukkan data. Maksud dari script gets(student[i].npm); adalah perintah untuk memasukkan
seduah data ke array student yang mengakses variabel npm yang ada di dalam
struct dengan urutan data ke i.
Looping akan berhenti jika user menginputkan karakter
selain ‘y’ yang artinya keluar dari looping. Kemudian program akan menampilkan
data yang sudah diinputkan.
UNION
Union
memungkinkan suatu lokasi memori ditempati oleh 2 atau lebih variabel dengan
tipe data berlainan. Jumlah memory yang diperlukan untuk menampung sebuah
variabel union ditentukan oleh field terbesar. Jika elemen-elemen sebuah union
terdiri dari data bertipe integer dan char maka memory yang dibutuhkan adalah
sebesar int. Jika elemen-elemen sebuah union berupa int, float, dan char maka
memory yang diperlukan adalah sebesar float.
Dalam
pendeklarasian union, sama dengan cara mendeklarasikan sebuah struct. Cara
mengakses union juga sama seperti struct.
Contoh :
union bil_bulat
{
unsigned int no;
unsigned char nama[2];
} ;
Sumber : https://gakpaketelor.wordpress.com/2009/03/06/struct-dalam-c/
Tidak ada komentar:
Posting Komentar