C++ Struktur Dengan Contoh
Apa itu Struktur di C++?
A STRUKTUR adalah C++ struktur data yang dapat digunakan untuk menyimpan bersama-sama elemen dari tipe data yang berbeda. Di dalam C++, struktur adalah tipe data yang ditentukan pengguna. Struktur ini membuat tipe data untuk mengelompokkan item dari tipe data berbeda dalam satu tipe data.
Sebagai contoh:
Misalkan Anda perlu menyimpan informasi tentang seseorang, nama, kewarganegaraan, dan usianya. Anda dapat membuat variabel seperti nama, kewarganegaraan, dan usia untuk menyimpan data secara terpisah.
Namun, Anda mungkin perlu menyimpan informasi tentang banyak orang di masa mendatang. Artinya, variabel untuk individu yang berbeda akan dibuat. Misalnya nama1, kewarganegaraan1, umur1 dll. Untuk menghindari hal ini, lebih baik membuat sebuah struct.
Kapan menggunakan Struktur?
Berikut adalah beberapa alasan menggunakan struktur di C++.
- Gunakan struct ketika Anda perlu menyimpan elemen dari tipe data berbeda dalam satu tipe data.
- C++ struct adalah tipe nilai dan bukan tipe referensi. Gunakan struct jika Anda tidak bermaksud mengubah data setelah pembuatan.
C++ Inisialisasi Struktur
Untuk membuat C++ struktur, kami menggunakan kata kunci struct, diikuti dengan pengenal. Pengidentifikasi menjadi nama struct. Berikut adalah sintaks untuk pembuatan a C++ struktur:
sintaks:
struct struct_name { // struct members }
Dalam sintaks di atas, kami telah menggunakan kata kunci struct. Struct_name adalah nama strukturnya.
Anggota struct ditambahkan dalam kurung kurawal. Anggota ini mungkin memiliki tipe data yang berbeda.
Sebagai contoh:
struct Person { char name[30]; int citizenship; int age; }
Dalam contoh di atas, Person adalah struktur dengan tiga anggota. Anggotanya meliputi nama, kewarganegaraan, dan usia. Satu anggota bertipe data char, sedangkan 2 sisanya berupa bilangan bulat. Ketika struktur dibuat, memori tidak dialokasikan. Memori hanya dialokasikan setelah variabel ditambahkan ke struct.
Membuat Instance Struktur
Pada contoh di atas, kita telah membuat sebuah struct bernama Person. Kita dapat membuat variabel struct sebagai berikut:
Person p;
P adalah variabel struct bertipe Person. Kita dapat menggunakan variabel ini untuk mengakses anggota struct.
Mengakses Anggota Struktur
Untuk mengakses anggota struct, kami menggunakan instance dari struct dan operator titik (.). Misalnya, untuk mengakses usia anggota struct Person:
p.age = 27;
Kita telah mengakses usia anggota struct Person menggunakan instance struct, p. Kami kemudian menetapkan nilai usia anggota menjadi 27.
Contoh 1:
#include <iostream> using namespace std; struct Person { int citizenship; int age; }; int main(void) { struct Person p; p.citizenship = 1; p.age = 27; cout << "Person citizenship: " << p.citizenship << endl; cout << "Person age: " << p.age << endl; return 0; }
Keluaran:
Berikut ini tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream dalam program kami untuk menggunakan fungsi yang ditentukan di dalamnya.
- Sertakan namespace std untuk menggunakan kelasnya tanpa memanggilnya.
- Buat struct bernama Person.
- Awal dari badan struct.
- Buat anggota struct bernama kewarganegaraan bertipe integer.
- Buat anggota struct bernama age bertipe integer.
- Akhir dari badan struct.
- Panggil fungsi main(). Logika program harus ditambahkan dalam isi fungsi ini.
- Buat sebuah instance dari struct Person dan beri nama p.
- Tetapkan nilai kewarganegaraan anggota struct menjadi 1.
- Tetapkan nilai umur anggota struct menjadi 27.
- Cetak nilai kewarganegaraan anggota struct di konsol bersama beberapa teks lainnya.
- Cetak nilai usia anggota struct di konsol bersama beberapa teks lainnya.
- Program harus mengembalikan nilai jika berhasil dijalankan.
- Akhir dari fungsi main().
Petunjuk ke Struktur
Dimungkinkan untuk membuat pointer yang menunjuk ke suatu struktur. Ini mirip dengan bagaimana pointer yang menunjuk ke tipe data asli seperti int, float, double, dll. dibuat. Perhatikan bahwa pointer di C++ akan menyimpan lokasi memori.
Contoh 2:
#include <iostream> using namespace std; struct Length { int meters; float centimeters; }; int main() { Length *ptr, l; ptr = &l; cout << "Enter meters: "; cin >> (*ptr).meters; cout << "Enter centimeters: "; cin >> (*ptr).centimeters; cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters"; return 0; }
Keluaran:
Berikut ini tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream dalam program kami untuk menggunakan fungsinya.
- Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat struct bernama Panjang.
- Mulai dari badan struct Panjang.
- Buat anggota struct bernama meter dengan tipe data integer.
- Buat anggota struct bernama sentimeter bertipe integer.
- Akhir dari badan struct Panjang.
- Panggil fungsi main().
- Awal dari isi fungsi main().
- Buat variabel pointer *ptr dan variabel normal l bertipe Panjang.
- Simpan alamat variabel l di kami variabel penunjuk.
- Tampilkan pesan di konsol, meminta pengguna memasukkan nilai meter variabel.
- Baca nilai yang dimasukkan pengguna melalui keyboard. Pengukur fungsi anggota di sini diakses menggunakan variabel penunjuk.
- Tampilkan pesan di konsol, meminta pengguna memasukkan nilai sentimeter variabel.
- Baca nilai yang dimasukkan pengguna melalui keyboard. Centimeter fungsi anggota di sini diakses menggunakan variabel pointer.
- Tampilkan nilai yang dibaca dari pengguna di konsol bersama beberapa teks lainnya.
- Program harus mengembalikan nilai setelah eksekusi berhasil.
- Akhir dari isi fungsi main().
Struktur sebagai Argumen Fungsi
Anda bisa meneruskan struct ke suatu fungsi sebagai argumen. Hal ini dilakukan dengan cara yang sama seperti menyampaikan argumen biasa. Variabel struct juga dapat diteruskan ke suatu fungsi. Contoh yang bagus adalah ketika Anda perlu menampilkan nilai anggota struct. Mari kita tunjukkan ini:
Contoh 3:
#include<iostream> using namespace std; struct Person { int citizenship; int age; }; void func(struct Person p); int main() { struct Person p; p.citizenship = 1; p.age = 27; func(p); return 0; } void func(struct Person p) { cout << " Person citizenship: " << p.citizenship<<endl; cout << " Person age: " << p.age; }
Keluaran:
Berikut ini tangkapan layar kodenya:
Penjelasan Kode:
- Sertakan file header iostream ke dalam file kami. Kami kemudian akan menggunakan fungsinya tanpa mendapatkan kesalahan.
- Sertakan namespace std dalam program kami untuk menggunakan kelasnya. Kita tidak perlu memanggil namespace untuk menggunakan kelasnya.
- Buat struct bernama Person.
- Mulai dari tubuh struct Person.
- Buat anggota struct Person. Anggota tersebut diberi nama kewarganegaraan dan bertipe integer.
- Buat anggota struct Person. Anggota tersebut diberi nama umur dan bertipe integer.
- Akhir dari tubuh struct Person.
- Buat fungsi yang menggunakan instance struct Person, p, sebagai argumen.
- Panggil fungsi utama. Tanda { menandai awal isi fungsi main().
- Buat sebuah instance dari struct Person dan beri nama p.
- Akses kewarganegaraan variabel anggota struct menggunakan instance struct, p, dan berikan nilai 1.
- Akses variabel anggota struct age menggunakan instance struct, p, dan berikan nilai 27.
- Panggil fungsi tersebut dan berikan instance dari struct Person, p, sebagai argumennya.
- Fungsi tersebut harus mengembalikan nilai setelah eksekusi berhasil.
- Akhir dari isi fungsi main().
- Buat isi fungsi.
- Awal dari isi fungsi.
- Akses nilai kewarganegaraan anggota struct dan cetak di konsol bersama teks lainnya.
- Akses nilai usia anggota struct dan cetak di konsol bersama teks lainnya.
- Akhir dari badan fungsi.
Batasan a C++ struktur
Berikut ini adalah keterbatasan struktur:
- Tipe data struct tidak dapat diperlakukan seperti tipe data bawaan.
- Operator seperti + -, dan lainnya tidak dapat digunakan variabel struktur.
- Struktur tidak mendukung penyembunyian data. Anggota suatu struktur dapat diakses oleh fungsi apa pun terlepas dari ruang lingkupnya.
- Anggota statis tidak dapat dideklarasikan di dalam badan struktur.
- Konstruktor tidak dapat dibuat di dalam struktur.
Kesimpulan
- Struct adalah struktur data yang menyimpan elemen data dengan tipe berbeda.
- Jika array menyimpan elemen data dengan tipe serupa, struct menyimpan elemen data dengan tipe berbeda.
- Sebuah struct harus digunakan ketika elemen data tidak diharapkan mengubah nilai.
- Anggota suatu struct diakses menggunakan operator titik (.).
- Kita harus membuat sebuah instance dari struct.
- Untuk membuat C++ struct, kita menggunakan kata kunci struct.
- Pointer yang menunjuk ke suatu struct dibuat mirip dengan bagaimana pointer yang menunjuk ke tipe reguler dibuat.
- Sebuah struct dapat diteruskan sebagai argumen ke suatu fungsi dengan cara yang sama seperti fungsi biasa diteruskan.