Struktur pada C++ - nblognlife

Struktur pada C++

A. Definisi Struktur
Struktur yaitu pengelompokan dari variabel-variabel yang bernaung dalam satu nama yang sama. Struktur biasa dipakai untuk mengelompokkan beberapa informasi  yang berkaitan dengan sebuah kesatuan, atau biasanya disebut dengan record.

B. Mendeklarasikan struktur
Cara mendeklarasikan struktur adalah dengan menggunakan kata kunci struct.
Contoh :

struct struktur _psd{
                        char kode[5];
                        char nama[30];
                        int unit;
                        float harga;
                    };
struct struktur _psd persediaan_pusat, persediaan cabang;

            Struktur tersebut diberi nama struktur_psd yang memepunyai lima buah elemen, yaitu kode [5] dan nama [30] bertipe char, sedangkan unit bertipe int dan harga bertipe float. Struktur_psd merupakan nama tipe data struktur dari lima elemen tersebut, bukan nama dari suatu variabel struktur. Sedangkan persediaan_pusat dan persediaan_cabang merupakan variabel-variabel yang mempunyai tipe data struktur_psd. Cara lain untuk mendeklarasikan struktur sebagai berikut:

struct struktur_psd{
                     char kode[5];
                     char  nama[30];
                     int unit;
                     float harga;
                    }
persediaan_pusat,persediaan_cabang;

Untuk deklarasi seperti di atas, sebenarnya kata struktur_psd dapat juga tidak dituliskan.

Contoh program :
#include<iostream.h>
#include<conio.h>
void main()
{
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
data_tanggal tgl1, tgl2;
tgl1.tanggal = 1;
tgl1.bulan = 9;
tgl1.tahun = 1979;
tgl2 = tgl1;
// atau
tgl2.tanggal = tgl1.tanggal;
tgl2.bulan = tgl1.bulan;
tgl2.tahun = tgl2.tahun;
cout << tgl1.tanggal << ‘/’ << tgl1.bulan << ‘/’ << tgl1.tahun << endl;
cout << tgl2.tanggal << ‘/’ << tgl2.bulan << ‘/’ << tgl2.tahun << endl;
}

C. Typedef
Ada juga penulisan struktur sperti di bawah ini :     
typedef struct{
             char kode[5];
             char nama[20];
             int jml;
             float harga;
            }psd;

psd persediaan_barang;     //pendefenisian nama variabel baru
       
        Dengan menggunakan “typedef”, struktur psd didefinisikan kembali dengan nama baru tanpa menggunakan kata “struct” di awal nama baru tersebut.

D. Struktur dalam Struktur
           Suatu struktur juga bisa mengandung struktur yang lain. Sebagai gambaran, ditunjukkan pada contoh di bawah ini : 

struct data_pegawai
{
int nip;
char nama[30];
data_tanggal tanggal_lahir;
}rec_peg;

        Pada contoh ini, terdapat pendeklarasian struktur bernama data_pegawai dan sekaligus pendefinisian variable struktur bernama rec_peg. Gambar di bawah ini menunjukkan anggota dari variable rec_peg.

E. Perbandingan 2 Buah Struktur
Untuk membandingkan 2 buah struktur, masing-masing unit harus dibandingkan sendiri-sendiri, Contoh:

if ((tgl1.tanggal == tgl2.tanggal) && (tgl1.bulan == tgl2.bulan) && (tgl1.tahun == tgl2.tahun))
cout << “Isi strukturnya sama”;
else
cout << “Isi struktur tak sama”;


F. Struktur dalam Fungsi
Suatu struktur juga dapat digunakan untuk argumen/parameter suatu fungsi (function).Contoh:

#include<iostream.h>
#include<conio.h>
struct data
{
int x;
int y;
};
void tampilkan(data nilai)
void main()
{
data nilaiku;
nilaiku.x = 10;
nilaiku.y = 16;
tampilkan(nilaiku);
}
void tampilkan(data nilai)
{
cout << “Nilai x = “ << nilai.x << endl;
cout << “Nilai y = “ << nilai.y << endl;
}

G. Struktur dalam Pointer
#include<iostream.h>
#include<conio.h>

//Deklarasi struktur
struct koordinat
{ int x, y; };

void ubah_posisi(koordinat *posisi) //prototipe
void main()
{
koordinat posisi; //Definisi variable struktur
posisi.x = 10;
posisi.y = 30;
cout << ”Isi semula : x = ” << posisi.x << “ y = ” << posisi.y << endl;
ubah_posisi(&posisi); //parameter berupa alamat
cout << ”Isi sekarang : x = ” << posisi.x << “ y = ” << posisi.y << endl;
}

//Definisi fungsi
void ubah_posisi(koordinat *posisi)
{
(*posisi).x = 100;
(*posisi).y = 300;
}

 [RS]


Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?

Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).

Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.

Terima kasih