https://news.asosiasi-emiten.or.id/
https://www.deriheru-navigation.com/
https://blogceta.zaragoza.unam.mx/wp-content/-/buntut77/
https://blogceta.zaragoza.unam.mx/wp-content/app/
scatter hitam
depo 5000
scatter hitam
scatter hitam
sv388
Buntut77toto | Link Alternatif Login Buntut77 Resmi Menang Besar Terpecaya
Bizz77game: Situs Link Login Alternatif Menang Besar Bizz77 Terpecaya Online
bizz77
Tipe Data Union pada C – SMK Wahidin Arjawinangun

Sama seperti struct, union juga User Defined Data Type dalam bahasa C yang berarti union merupakan tipe data yang pengguna buat sendiri. Union juga bisa memiliki banyak anggota type data lain. Namun bedanya dengan struct adalah pada union, setiap anggotanya berada pada satu memori.

#include <stdio.h> 

//deklarasi union
union coba { 
    int x, y; 
}; 

int main() 
{ 
    union coba t; 
    t.x = 0, t.y = 0;
    
    t.x = 2;
    printf("x = %d, y = %d\n\n", t.x, t.y); 

    t.y = 6;
    printf("x = %d, y = %d",t.x, t.y); 
    return 0; 
} 

Perhatikan baris ke-11, pada struct nilai x dan y bernilai 0. Kemudian nilai x berubah menjadi 2 pada baris ke-13. Pada union karena tiap anggota berbagi memori yang sama, maka tiap mengubah satu nilai akan mengubah semuanya. Sehingga keluaran dari program tersebut adalah:

x = 2, y = 2
x = 6, y = 6

Karena berbagi memori yang sama, maka besar dari memori union bergantung pada memori terbesar dari anggotanya.

Pointer Dan Union

Seperti halnya struct, anggota dari union dapat kita akses dengan menggunakan (->).

#include <stdio.h> 

//deklarasi union
union coba { 
    int x; 
}; 

int main() 
{ 
    union coba t;
    
    union coba *ptr = &t;
    t.x = 10;
    
    printf("x = %d",ptr->x); 
    return 0; 
} 

Dengan keluaran:

10

Menggunakan Typedef

Terkadang typedef digunakan untuk mempersingkat penulisan program. Hal ini juga berlaku pada union.

#include <stdio.h> 

//deklarasi union
typedef union coba_u{ 
    int x; 
}coba; 

int main() 
{ 
    coba t;
    
    coba *ptr = &t;
    t.x = 10;
    
    printf("x = %d",ptr->x); 
    return 0; 
} 

Perbedaannya dengan potongan kode sebelumnya adalah pada baris ke-10 dan 12. Meskipun hasilnya sama, setidaknya tidak perlu menuliskan kata kunci union setiap kali ingin menggunakan 

coba.

Union Dan Struct

Struct dapat menyimpan banyak variabel dengan tipe data yang berbeda, termasuk union.

#include <stdio.h>
#include <string.h>

typedef struct {
  char make[20];
  int model_year;
  int id_type; /* 0 for id_num, 1 for VIN */
  union {
    int id_num;
    char VIN[20]; 
  } id;
} vehicle;

int main() {  
  vehicle car1;
  strcpy(car1.make, "Ford");
  car1.model_year = 2017;
  car1.id_type = 0;
  car1.id.id_num = 123098;
  
  printf("Car %s, %d", car1.make, car1.model_year);

  return 0;
}

code diambil dari sololearn.

Untuk mengaksesnya sendiri, gunakan (.) atau (->) sesuai tipe variabel. Jika pointer maka gunakan (->) dan (.) jika bukan. Pada contoh program tersebut, terdapat 

vehicle yang memiliki 

id dengan tipe union. Sehingga untuk mengakses 

id_num, harus terlebih dahulu mengakses 

id seperti pada baris 19.

Selain union yang menjadi anggota dari struct, bisa juga struct yang menjadi bagian (anggota) dari union.

Kenapa Menggunakan Union?

Mungkin timbul pertanyaan, jika sudah ada struct kenapa menggunakan union? Terlebih lagi union hanya dapat menyimpan satu nilai saja. Pertanyaan tersebut bisa kalian temukan jawabannya di Why do we need C Unions? – Stack Overflow.

Sumber : https://cahinfor.com/union-dalam-bahasa-c/

Leave a Reply

Your email address will not be published. Required fields are marked *