Perbedaan Antara Struktur dan Serikat di C
Apa itu Struktur?
Struktur adalah tipe data yang ditentukan pengguna dalam bahasa pemrograman C yang menggabungkan item data yang terkait secara logis dari tipe data berbeda menjadi satu.
Semua elemen struktur disimpan di lokasi memori yang berdekatan. Variabel tipe struktur dapat menyimpan lebih dari satu item data dari berbagai tipe data dalam satu nama.
Apa itu Persatuan
Union adalah tipe data yang ditentukan pengguna, sama seperti struktur. Union menggabungkan objek dari berbagai jenis dan ukuran menjadi satu. Variabel gabungan mengalokasikan ruang memori yang sama dengan ruang untuk menampung variabel gabungan terbesar. Ini memungkinkan berbagai jenis objek untuk berbagi lokasi yang sama.
Sintaks Struktur Deklarasi
struct [name of the structure] { type member1; type member2; type member3; };
Struktur dideklarasikan menggunakan kata kunci “struct” dan nama struktur. Nomor 1, nomor 2, nomor 3 adalah individu anggota struktur. Bagian badan diakhiri dengan titik koma (;).
Contoh Struktur pada Pemrograman C
#include <stdio.h> struct student { char name[60]; int roll_no; float marks; } sdt; int main() { printf("Enter the following information:\n"); printf("Enter student name: "); fgets(sdt.name, sizeof(sdt.name), stdin); printf("Enter student roll number: "); scanf("%d", & sdt. roll_no); printf("Enter students marks: "); scanf("%f", & sdt.marks); printf("The information you have entered is: \n"); printf("Student name: "); printf("%s", sdt.name); printf("Student roll number: %d\n", sdt. roll_no); printf("Student marks: %.1f\n", sdt.marks); return 0; }
Dalam program di atas, sebuah struktur yang disebut siswa dibuat. Struktur ini memiliki tiga anggota data: 1) nama (string), 2) roll_no (integer), dan 3) tanda (float).
Setelah ini, variabel struktur sdt dibuat untuk menyimpan informasi siswa dan menampilkannya di layar komputer.
Keluaran:
Masukkan informasi berikut:
Masukkan nama siswa: James
Masukkan nomor daftar siswa: 21
Masukkan nilai siswa: 67
Informasi yang Anda masukkan adalah:
Nama Siswa: John
Nomor daftar siswa: 21
Nilai siswa: 67.0
Sintaks Deklarasi Persatuan
union [name of union] { type member1; type member2; type member3; };
Persatuan dideklarasikan menggunakan kata kunci “union” dan nama serikat. Nomor 1, nomor 2, nomor 3 adalah perseorangan anggota serikat pekerja. Bagian badan diakhiri dengan titik koma (;).
Contoh Union pada Pemrograman C
#include <stdio.h> union item { int x; float y; char ch; }; int main( ) { union item it; it.x = 12; it.y = 20.2; it.ch = 'a'; printf("%d\n", it.x); printf("%f\n", it.y); printf("%c\n", it.ch); return 0; }
Keluaran:
1101109601
20.199892
a
Pada program di atas, Anda dapat melihat bahwa nilai x dan y rusak. Hanya variabel ch yang mencetak hasil yang diharapkan. Hal ini karena, secara gabungan, lokasi memori dibagi di antara semua tipe data anggota.
Oleh karena itu, satu-satunya anggota data yang nilainya disimpan saat ini, akan menempati ruang memori. Nilai variabel ch disimpan terakhir, sehingga nilai sisanya variabel hilang.
Struktur Vs. Persatuan
Inilah perbedaan penting antara struktur dan persatuan:
Structure | Serikat |
---|---|
Anda dapat menggunakan kata kunci struct untuk mendefinisikan struktur. | Anda dapat menggunakan kata kunci gabungan untuk mendefinisikan gabungan. |
Setiap anggota dalam struktur diberi lokasi memori yang unik. | Secara gabungan, lokasi memori dibagikan oleh semua anggota data. |
Mengubah nilai salah satu anggota data tidak akan mempengaruhi anggota data lainnya dalam struktur. | Mengubah nilai salah satu anggota data akan mengubah nilai anggota data lainnya dalam gabungan. |
Ini memungkinkan Anda untuk menginisialisasi beberapa anggota sekaligus. | Ini memungkinkan Anda untuk menginisialisasi hanya anggota pertama dari serikat pekerja. |
Ukuran total struktur adalah jumlah dari ukuran setiap anggota data. | Ukuran total gabungan adalah ukuran anggota data terbesar. |
Ini terutama digunakan untuk menyimpan berbagai tipe data. | Ini terutama digunakan untuk menyimpan salah satu dari banyak tipe data yang tersedia. |
Ini menempati ruang untuk setiap anggota yang ditulis dalam parameter dalam. | Ini menempati ruang untuk anggota yang memiliki ukuran tertinggi yang ditulis dalam parameter dalam. |
Anda dapat mengambil anggota mana pun dalam satu waktu. | Anda dapat mengakses satu anggota pada satu waktu di serikat pekerja. |
Ini mendukung array yang fleksibel. | Itu tidak mendukung array yang fleksibel. |
Keuntungan struktur
Berikut kelebihan/manfaat menggunakan struktur:
- Struktur mengumpulkan lebih dari satu bagian data tentang subjek yang sama secara bersamaan di tempat yang sama.
- Ini berguna ketika Anda ingin mengumpulkan data dengan tipe data dan parameter serupa seperti nama depan, nama belakang, dll.
- Pemeliharaannya sangat mudah karena kami dapat mewakili keseluruhan rekaman dengan menggunakan satu nama.
- Secara struktur, kita dapat meneruskan kumpulan rekaman lengkap ke fungsi apa pun menggunakan satu parameter.
- Anda dapat menggunakan struktur array untuk menyimpan lebih banyak catatan dengan tipe serupa.
Keuntungan dari persatuan
Berikut ini kelebihan/manfaat menggunakan serikat pekerja:
- Ini menempati lebih sedikit memori dibandingkan dengan struktur.
- Saat Anda menggunakan gabungan, hanya variabel terakhir yang dapat diakses langsung.
- Union digunakan ketika Anda harus menggunakan lokasi memori yang sama untuk dua atau lebih anggota data.
- Ini memungkinkan Anda menyimpan data hanya dari satu anggota data.
- Ruang yang dialokasikan sama dengan ukuran maksimum anggota data.
Kekurangan struktur
Berikut adalah kekurangan/kekurangan dalam menggunakan struktur:
- Jika kompleksitas proyek TI melampaui batas, maka akan sulit dikelola.
- Perubahan satu struktur data dalam suatu kode memerlukan perubahan di banyak tempat lainnya. Oleh karena itu, perubahan menjadi sulit dilacak.
- Struktur lebih lambat karena memerlukan ruang penyimpanan untuk semua data.
- Anda dapat mengambil anggota mana pun dalam satu waktu dalam struktur sedangkan Anda dapat mengakses satu anggota pada satu waktu di serikat pekerja.
- Struktur menempati ruang untuk setiap anggota yang ditulis dalam parameter dalam sedangkan gabungan menempati ruang untuk anggota yang memiliki ukuran tertinggi yang ditulis dalam parameter dalam.
- Struktur mendukung susunan yang fleksibel. Union tidak mendukung susunan yang fleksibel.
Kerugian dari persatuan
Berikut ini kekurangan/kekurangan menggunakan union:
- Anda hanya dapat menggunakan satu anggota serikat pekerja dalam satu waktu.
- Semua variabel gabungan tidak dapat diinisialisasi atau digunakan dengan nilai yang bervariasi dalam satu waktu.
- Union memberikan satu ruang penyimpanan umum untuk semua anggotanya.
PERBEDAAN UTAMA:
- Setiap anggota dalam struktur diberi lokasi memori yang unik, sedangkan dalam gabungan, lokasi memori digunakan bersama oleh semua anggota data.
- Mengubah nilai salah satu anggota data tidak akan mempengaruhi anggota data lainnya dalam struktur sedangkan mengubah nilai satu anggota data akan mengubah nilai anggota data lainnya dalam gabungan.
- Struktur terutama digunakan untuk menyimpan berbagai tipe data sedangkan gabungan terutama digunakan untuk menyimpan salah satu dari banyak tipe data.
- Secara struktur, Anda dapat mengambil anggota mana pun pada satu waktu, sebaliknya secara gabungan, Anda dapat mengakses satu anggota pada satu waktu.
- Struktur mendukung susunan fleksibel sedangkan gabungan tidak mendukung susunan fleksibel.
Periksa juga Tutorial C kami untuk Pemula: - Klik disini