Penjelasan singkat Structure (Struct) Pada C++
Pengertian
Structure (struct) merupakan kumpulan
variable-variable yang bertempat di suatu tempat yang sama. Berbeda
dengan array yang berisi kumpulan variable-variable yang bertipe sama
dalam satu nama, maka suatu structure dapat terdiri dari
variable-variable yang berbeda tipenya yang tersimpan dalam satu nama
structure.
- Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data
sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau
berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau
struct itu sendiri. - Variabel-variabel yang menjadi anggota struct disebut dengan elemen
struct.
typedef struct{
tipe_data <nama_var>;
tipe_data <nama_var>;
.... }
Struct bisa diumpamakan sebagai sebuah obyek, misalnya: obyek
Mahasiswa. Struct Mahasiswa memiliki property atau atribut atau variabel
yang melekat padanya:- NIM misal karakter sejumlah 8
- Nama yaitu karakter
- IPK yaitu bilangan pecahan
Struct tidak memiliki operasi (method) atau function. Struct dapat digunakan dengan cara membuat variabel yang bertipe struct tersebut.
Misalnya :
- variabel anton bertipe struct Mahasiswa
- variabel erick bertipe struct Mahasiswa
Ada dua cara untuk mendeklarasikan struct pada C yaitu:
Menggunakan keyword typedef:
typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; };//untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2
Mahasiswa mhs,mhs2;
//untuk menggunakan struct Mahasiswa dengan membuat variabel array m;
Mahasiswa m[100];
Menggunakan keyword struct:
struct { char NIM[8]; char nama[50]; float ipk; } mhs;Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas
Cara penggunaan struct dan pengaksesan elemen-elemennya:
- Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut
- Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)
- Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:
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.












