Array adalah data terstruktur yang didukung oleh bahasa C. Array dapat digunakan untuk menyimpan elemen data dari tipe yang sama. Jika ada pernyataan sebagai tanda int [10]; maka mark adalah array yang dapat menyimpan sepuluh mark dan semuanya adalah integer. Terkadang diperlukan menyimpan elemen data dari berbagai jenis di lokasi memori yang sama. Sebagai contoh, seorang karyawan dapat memiliki ID karyawan, nama, departemen, usia dll. Mereka adalah tipe data yang berbeda. Oleh karena itu, perlu memiliki metode untuk menyimpan berbagai elemen data sebagai satu unit. Struktur dan Serikat di C digunakan untuk menyimpan elemen data dari berbagai jenis di lokasi memori yang sama. Struktur dan gabungan adalah serupa tetapi mereka terutama membedakan karena alokasi memori. Memori yang diperlukan untuk menyimpan variabel struktur adalah penjumlahan dari ukuran memori semua anggota. Memori yang diperlukan untuk menyimpan variabel union adalah memori yang diperlukan untuk elemen terbesar dalam union. Itu adalah perbedaan utama antara struktur dan penyatuan dalam C. Artikel ini membahas perbedaan antara struktur dan penyatuan dalam C.
1. Ikhtisar dan Perbedaan Utama
2. Apa itu Struktur dalam C
3. Apa yang dimaksud dengan Union dalam C
4. Kesamaan Antara Struktur dan Serikat di C
5. Perbandingan Berdampingan - Struktur vs Union dalam C dalam Bentuk Tabular
6. Ringkasan
Struktur adalah tipe data yang ditentukan pengguna dalam C. Ini membantu untuk menggabungkan item data dari tipe yang berbeda. Struktur dapat mewakili rekaman. Seorang siswa dapat memiliki student_id, student_name dll. Daripada menyimpan setiap variabel secara terpisah, semua item data yang berbeda ini dapat dipadatkan menjadi satu unit menggunakan struktur. Ini didefinisikan menggunakan kata kunci 'struct'. Dalam suatu struktur, semua anggotanya dapat diakses kapan saja. Berikut ini membuat tipe data struct yang diturunkan Siswa.
Mahasiswa terstruktur
intstudent_id;
char student_name [20];
;
Untuk struktur di atas, variabel dapat dideklarasikan sebagai berikut.
Student pelajar struct1, student2, student3;
Ada dua metode untuk mengakses anggota struktur. Yaitu dengan menggunakan operator anggota (.) Dan operator penunjuk struktur (->). Anggota dapat diakses menggunakan structure_variable_name. nama anggota. Jika programmer ingin mengakses nama siswa 2, maka ia dapat menulis pernyataan sebagai printf (student2.student_namename);
Rujuk program di bawah ini dengan sebuah struktur.
Gambar 01: Program C dengan struktur
Menurut program di atas, Siswa adalah sebuah struktur. Berisi student_id dan student_name. Dua variabel tipe struktur dinyatakan dalam program utama. Mereka disebut student1 dan student2. Id student1 ditetapkan dengan nilai 1 menggunakan operator anggota sebagai student1.student_id = 1. Nama "Ann" adalah string. Oleh karena itu, ini disalin ke anggota student_name menggunakan fungsi salin string strcpy. Id dan nama diberikan kepada student2 dengan cara yang sama. Akhirnya, nilai-nilai tersebut dicetak menggunakan operator anggota.
Jumlah memori yang diperlukan untuk menyimpan variabel struktur adalah jumlah dari ukuran memori semua anggota. The student_id berisi 4 byte dan student_name berisi 20 byte (masing-masing satu byte untuk sebuah karakter). Total 24 byte adalah jumlah ukuran memori yang diperlukan oleh struktur.
Serikat adalah tipe data yang ditentukan pengguna dalam C. Ini membantu untuk menyimpan berbagai tipe data di lokasi memori yang sama. Buku dapat memiliki properti seperti book_name, harga dll. Alih-alih membuat variabel untuk masing-masingnya, serikat pekerja dapat digunakan untuk memadatkan semua tipe data yang berbeda menjadi satu unit menggunakan serikat pekerja. Ini didefinisikan menggunakan kata kunci 'gabungan'. Berikut ini membuat buku data serikat yang diturunkan.
unionBook
nama char [20];
harga ganda;
;
Untuk penyatuan di atas, variabel dapat dideklarasikan sebagai berikut.
Buku Serikat Buku1, buku2;
Ada dua metode untuk mengakses anggota serikat. Yaitu dengan menggunakan operator anggota (.) Dan operator penunjuk struktur (->). Anggota dapat diakses menggunakan union_variable_name. nama anggota. Jika programmer ingin mengakses nama book1, maka ia dapat menulis pernyataan sebagai printf (book1.name);
Rujuk program di bawah ini dengan serikat pekerja.
Gambar 02: Program C menggunakan gabungan
Menurut program di atas, Buku itu adalah persatuan. Book1 adalah variabel tipe union. Nama dan harga adalah nilai yang diberikan. Dalam serikat pekerja, hanya satu anggota yang dapat diakses secara bersamaan dan semua anggota lainnya akan memiliki nilai sampah. Nilai id tidak dicetak dengan benar tetapi nilai harga dicetak dengan benar.
Gambar 03: Program C yang dimodifikasi dengan serikat pekerja
Menurut program di atas, Book adalah gabungan. Book1 dan book2 adalah variabel tipe union. Pertama, nilai untuk nama book1 ditetapkan dan dicetak. Kemudian nilai untuk nama book2 ditetapkan dan dicetak. Semua anggota mencetak dengan benar karena satu anggota digunakan pada satu waktu. Memori yang diperlukan untuk menyimpan serikat adalah memori yang diperlukan untuk elemen terbesar dari serikat. Dalam program di atas, variabel nama adalah 20 byte. Itu lebih besar dari harga. Jadi, alokasi memori untuk serikat adalah 20 byte.
Struktur vs Serikat dalam C | |
Struktur adalah tipe data yang ditentukan pengguna dalam bahasa C yang memungkinkan menggabungkan data dari berbagai jenis secara bersamaan. | Union adalah tipe data yang ditentukan pengguna dalam bahasa C yang memungkinkan menggabungkan data dari berbagai jenis secara bersamaan. |
Aksesibilitas | |
Dalam suatu struktur, semua anggotanya dapat diakses kapan saja. | Dalam serikat pekerja, hanya satu dari anggotanya yang dapat diakses secara bersamaan dan semua anggota lainnya akan mengandung nilai sampah. |
Alokasi memori | |
Memori yang diperlukan untuk menyimpan variabel struktur adalah penjumlahan dari ukuran memori semua anggota. | Memori yang diperlukan untuk menyimpan variabel union adalah memori yang diperlukan untuk elemen terbesar dalam union. |
Kata kunci | |
Kata kunci yang digunakan untuk mendefinisikan struktur adalah 'struct'. | Kata kunci yang digunakan untuk mendefinisikan serikat adalah 'gabungan'. |
Array digunakan untuk menyimpan elemen data dari tipe yang sama. Kadang-kadang perlu untuk menyimpan elemen data dari berbagai jenis di lokasi memori yang sama. Bahasa pemrograman C menyediakan struktur dan gabungan untuk menyelesaikan tugas ini. Keduanya adalah tipe data yang ditentukan pengguna. Memori yang diperlukan untuk menyimpan variabel struktur adalah penjumlahan dari ukuran memori semua anggota. Memori yang diperlukan untuk menyimpan variabel union adalah memori yang diperlukan untuk elemen terbesar dalam union. Ini adalah perbedaan antara struktur dan penyatuan dalam C.
1. Point, Tutorial. "Structures in C.", Tutorials Point, 15 Agustus 2017. Tersedia di sini
2.Point, Tutorial. "Serikat pekerja di C." , Poin Tutorial, 15 Agustus 2017. Tersedia di sini