Mengenal Tipe Data Union

  


Pengertian

Union adalah tipe data yang berisi sekumpulan variabel yang dibungkus jadi satu dan memiliki alamat memori yang sama.

Mengapa kita membutuhkan union?

Untuk menjawab ini, kita akan pakai studi kasus..

Misalnya kita akan membuat game, lalu ingin menyimpan data senjata yang dimiliki pemain.

Anggap saja pemain punya dua senjata, yakni: pistol dan pisau.

Maka kita bisa membuat struct seperti ini:

typedef struct {
	char *nama;
	int jumlah_peluru;
	int ketajaman;
} Senjata;


Cara Membuat Union

Union bisa kita buat dengan kata kunci union kemudian diikuti dengan nama union-nya.

Setelah itu kita menggunakan kurung kurawal untuk mendefinisikan member dan tipe datanya.



Contoh:

union Product {
  char *name;
  unsigned int price;
  unsigned int stock;
  float weight;
};
Lalu cara menggunakannya:
union Product p;

Jika menggunakan typedef, kita tidak perlu mnulis union setiap kali menggunakannya.

Contoh:

// mendefinisikan union
typedef union {
  char *name;
  int price;
} Product;

//  menggunakan union
Product p;

Selain itu, Untion juga boleh tidak punya nama jika union tersebut berada di dalam struct.

Contoh:

struct Buku {
  char *title ;
  bool is_digital;
  union {
  	char *format;
    float weight;
  }
};


Perbedaan Union dengan Struct

Union sebenarnya sama seperti tipe data Struct. Namun, berbeda dalam metode alokasi memorinya.

Struct mengalokasikan memori untuk setiap membernya pada alamat memori yang berbeda-beda.

Sedangkan Union mengalokasikan memori di satu alamat memori dengan ukuran diambil dari ukuran member yang paling besar.

























Komentar

Postingan populer dari blog ini

IP

Scala

Variabel Dan Tipe Data