Sebuah STRUCT adalah struktur data C++ yang dapat digunakan untuk menyimpan bersama elemen dengan tipe data yang berbeda. Dalam C++, struktur adalah tipe data yang ditentukan pengguna. Struktur menciptakan tipe data untuk mengelompokkan item dengan tipe data yang berbeda di bawah satu tipe data tunggal.
Misalnya:
Misalkan Anda perlu menyimpan informasi tentang seseorang, nama, kewarganegaraan, dan usia. 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 depan. Ini berarti variabel untuk individu yang berbeda akan dibuat. Misalnya, nama1, kewarganegaraan1, usia1, dll. Untuk menghindari ini, lebih baik membuat struct.
Dalam tutorial C++ ini, Anda akan mempelajari:
Apa itu Struct dalam C++?
Kapan menggunakan Struktur?
Inisialisasi Struct C++
Membuat Instance Struct
Mengakses Anggota Struct
Pointer ke Struktur
Struct sebagai Argumen Fungsi
Keterbatasan Struktur C++
Kapan Menggunakan Struktur?
Berikut beberapa alasan menggunakan struktur dalam C++.
Gunakan struct ketika Anda perlu menyimpan elemen dengan tipe data yang berbeda di bawah satu tipe data.
Struct C++ adalah tipe nilai bukan tipe referensi. Gunakan struct jika Anda tidak bermaksud mengubah data setelah pembuatan.
Inisialisasi Struct C++
Untuk membuat struktur C++, kita menggunakan kata kunci struct diikuti dengan pengidentifikasi. Pengidentifikasi menjadi nama struct. Berikut adalah sintaks untuk pembuatan struct C++:
Sintaks:
struct struct_name { // struct members }
Dalam sintaks di atas, kita telah menggunakan kata kunci struct. struct_name adalah nama struktur.
Anggota struct ditambahkan dalam kurung kurawal. Anggota ini kemungkinan besar milik tipe data yang berbeda.
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. Salah satu anggota berupa tipe data char, sementara 2 lainnya adalah integer saat struktur dibuat, memori tidak dialokasikan. Memori hanya dialokasikan setelah variabel ditambahkan ke struct.
Membuat Instance Struct
Dalam contoh di atas, kita telah membuat struct bernama Person. Kita dapat membuat variabel struct sebagai berikut:
Person p;
p adalah variabel struct tipe Person. Kita dapat menggunakan variabel ini untuk mengakses anggota struct.
Mengakses Anggota Struct
Untuk mengakses anggota struct, kita menggunakan instance struct dan operator titik (.). Misalnya, untuk mengakses anggota usia dari struct Person:
p.age = 27;
Kita telah mengakses anggota usia dari struct Person menggunakan instance struct, p. Kita kemudian menetapkan nilai anggota usia ke 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; }
Output:
Berikut adalah screenshot kode:
Penjelasan Kode:
Sertakan file header iostream dalam program kami untuk menggunakan fungsi yang didefinisikan di dalamnya.
Sertakan namespace std untuk menggunakan kelasnya tanpa memanggilnya.
Buat struct bernama Person.
Awal tubuh struct.
Buat anggota struct bernama citizenship dengan tipe integer.
Buat anggota struct bernama age dengan tipe integer.
Akhir tubuh struct.
Panggil fungsi main(). Logika program harus ditambahkan dalam tubuh fungsi ini.
Buat instance struct Person dan beri nama p.
Setel nilai anggota struct citizenship ke 1.
Setel nilai anggota struct age ke 27.
Cetak nilai anggota struct citizenship di konsol bersama teks lain.
Cetak nilai anggota struct age di konsol bersama teks lain.
Program harus mengembalikan nilai jika berjalan dengan sukses.
Akhir fungsi main().
Pointer ke Struktur
Mungkin untuk membuat pointer yang menunjuk ke struktur. Mirip dengan cara pointer yang menunjuk ke tipe data asli seperti int, float, double, dll. dibuat. Perhatikan bahwa pointer dalam C++ akan menyimpan lokasi memori.
Sertakan file header iostream dalam program kami untuk menggunakan fungsinya.
Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
Buat struct bernama Length.
Awal tubuh struct Length.
Buat anggota struct bernama meters dengan tipe data integer.
Buat anggota struct bernama centimeters dengan tipe integer.
Akhir tubuh struct Length.
Panggil fungsi main().
Awal tubuh fungsi main().
Buat variabel pointer *ptr dan variabel biasa l tipe Length.
Simpan alamat variabel l dalam variabel pointer kami.
Tampilkan pesan di konsol, meminta pengguna memasukkan nilai untuk variabel meters.
Baca nilai yang dimasukkan pengguna melalui keyboard. Fungsi anggota meters diakses di sini menggunakan variabel pointer.
Tampilkan pesan di konsol, meminta pengguna memasukkan nilai untuk variabel centimeters.
Baca nilai yang dimasukkan pengguna melalui keyboard. Fungsi anggota centimeters diakses di sini menggunakan variabel pointer.
Tampilkan nilai yang dibaca dari pengguna di konsol bersama teks lain.
Program harus mengembalikan nilai setelah eksekusi sukses.
Akhir tubuh fungsi main().
Struct sebagai Argumen Fungsi
Anda dapat melewatkan struct ke fungsi sebagai argumen. Ini dilakukan dengan cara yang sama seperti melewatkan argumen biasa. Variabel struct juga dapat dilewatkan ke fungsi. Contoh yang baik adalah ketika Anda perlu menampilkan nilai anggota struct. Mari kita demonstrasikan 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; }
Output:
Berikut adalah screenshot kode:
Penjelasan Kode:
Sertakan file header iostream ke dalam file kami. Kita 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.
Awal tubuh struct Person.
Buat anggota struct Person. Anggota bernama citizenship dan bertipe integer.
Buat anggota struct Person. Anggota bernama age dan bertipe integer.
Akhir tubuh struct Person.
Buat fungsi yang mengambil instance struct Person, p, sebagai argumen.
Panggil fungsi main. { menandai awal tubuh fungsi main().
Buat instance struct Person dan beri nama p.
Akses variabel anggota struct citizenship menggunakan instance struct, p, dan tetapkan nilai 1.
Akses variabel anggota struct age menggunakan instance struct, p, dan tetapkan nilai 27.
Panggil fungsi dan berikan instance struct Person, p, sebagai argumen.
Fungsi harus mengembalikan nilai setelah eksekusi sukses.
Akhir tubuh fungsi main().
Buat tubuh fungsi.
Awal tubuh fungsi.
Akses nilai anggota struct citizenship dan cetaknya di konsol bersama teks lain.
Akses nilai anggota struct age dan cetaknya di konsol bersama teks lain.
Akhir tubuh fungsi.
Keterbatasan Struktur C++
Berikut adalah keterbatasan struktur:
Tipe data struct tidak dapat diperlakukan seperti tipe data bawaan.
Operator seperti + -, dan lainnya tidak dapat digunakan pada variabel struktur.
Struktur tidak mendukung penyembunyian data. Anggota struktur dapat diakses oleh fungsi apa pun terlepas dari cakupannya.
Anggota statis tidak dapat dideklarasikan di dalam tubuh struktur.
Konstruktor tidak dapat dibuat di dalam struktur.
Ringkasan:
Struct adalah struktur data yang menyimpan elemen data yang tergolong ke tipe yang berbeda.
Sedangkan array menyimpan elemen data dengan tipe yang sama, struct menyimpan elemen data dengan tipe yang berbeda.
Struct harus digunakan ketika elemen data tidak diharapkan berubah nilai.
Anggota struct diakses menggunakan operator titik (.).
Kita harus membuat instance struct.
Untuk membuat struct C++, kita menggunakan kata kunci struct.
Pointer yang menunjuk ke struct dibuat dengan cara yang sama seperti pointer yang menunjuk ke tipe reguler.
Struct dapat dilewatkan sebagai argumen ke fungsi dengan cara yang sama seperti fungsi biasa dilewatkan.