Belajar C++ #11 : STRUCTURE

Himtika Avatar

·

·

Structure

Struktur adalah kumpulan variabel dari tipe data yang berbeda dalam satu nama. Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe data yang berbeda. Masing-masing tipe elemen struktur dapat berbeda. Adapun variabel struktur menyatakan bahwa variabel struktur yang dideklarasikan bisa lebih dari satu dan dipisahkan dengan tanda titik koma.

Cara mendeklarasikan struktur

Kata kunci struct mendefinisikan tipe struktur kemudian diikuti dengan nama struktur. Kemudian di dalam kurung kurawal dapat mendeklarasikan satu atau lebih anggota. Sebagai contoh:

Copied!
struct Mahasiswa { string nama; int umur; char jk; }; Catatan: Pada saat struktur dibuat, tidak ada memori yang dialokasikan. Definisi struktur hanyalah cetak biru untuk pembuatan variabel.

Cara mendefinisikan variabel struktur

Setelah mendeklarasikan struktur mahasiswa, anda dapat mendefinisikan variabel struktur sebagai berikut:

Copied!
Mahasiswa mhs1;

Perhatikan disitu variabel struktur mhs1 didefinisikan yang bertipe struktur Mahasiswa. Ketiika variabel struktur didefinisikan, barulah memori yang diperlukan dialokasikan oleh compiler.

Cara mengakses anggota struktur

Untuk mengakses anggota variabel struktur menggunakan operator dot (.). Misalkan kita ingin mengakses umur pada struktur mahasiswa dan ingin memberikan nilai. Kita dapat menggunakan cara sebagai berikut:

Copied!
mhs1.umur = 19;

Contoh 1:

#include <iostream>
using namespace std;

struct Mahasiswa
{
    string nama;
    int umur;
    char jk;
};

int main()
{
    Mahasiswa mhs1;
    cout << "Masukkan Nama Lengkap: ";
    getline(cin, mhs1.nama);

    cout << "Masukkan Umur: ";
    cin >> mhs1.umur;
    cout << "Masukkan Jenis Kelamin (p/l): ";
    cin >> mhs1.jk;
    cout << "\nInformasi." << endl;
    cout << "Nama: " << mhs1.nama << endl;
    cout <<"Umur: " << mhs1.umur << endl;

    if(mhs1.jk == 'p' || mhs1.jk == 'P'){
        cout << "Jenis Kelamin: Perempuan" << endl;
    }else if(mhs1.jk == 'l' || mhs1.jk == 'L'){
        cout << "Jenis Kelamin: Laki-Laki" << endl;
    }
    
 return 0;
}

Output :

Copied!
Masukkan Nama Lengkap: Abizar Masukkan Umur: 17 Masukkan Jenis Kelamin (p/l): l Informasi. Nama: Abizar Umur: 17 Jenis Kelamin: Laki-Laki

Structure dan Fungsi

Variabel struktur dapat diteruskan ke fungsi dan dikembalikan dengan cara yang sama seperti argument pada umumnya.

Contoh 2:

#include <iostream>
using namespace std;

struct Warnet {
    string name;
    int hours;
    int price;
};

void displayData(Warnet);

int main() {
    Warnet w;

    int const ONEHOURS = 5000;
    cout << "Masukkan Nama Lengkap: ";

    getline(cin, w.name);
    cout << "Masukkan Jam: ";
    cin >> w.hours;

    w.price = w.hours * ONEHOURS;

    displayData(w);
 return 0;
}
void displayData(Warnet w) {
    cout << "\nInformation" << endl;
    cout << "Nama: " << w.name << endl;
    cout <<"Jam: " << w.hours << endl;
    cout << "Harga: " << w.price;
}

Output :

Copied!
Masukkan Nama Lengkap: Abizar Masukkan Jam: 5 Information Nama: Abizar Jam: 5 Harga: 25000

Contoh 3:

#include <iostream>
using namespace std;

struct Warnet {
 string name;
 int hours;
 int price;
};

Warnet getData(Warnet);

void displayData(Warnet);

int main() {
    Warnet w, temp;
    temp = getData(w);
    w = temp;
    displayData(w);
 return 0;
}

Warnet getData(Warnet w) {
    int const ONEHOURS = 5000;
    cout << "Masukkan Nama Lengkap: ";
    getline(cin, w.name);
    cout << "Masukkan Jam: ";
    cin >> w.hours;
    w.price = w.hours * ONEHOURS;
 return w;
}

void displayData(Warnet w) {
    cout << "\nInformation" << endl;
    cout << "Nama: " << w.name << endl;
    cout <<"Jam: " << w.hours << endl;
    cout << "Harga: " << w.price;
}

Output :

Copied!
Masukkan Nama Lengkap: Abizar Masukkan Jam: 3 Information Nama: Abizar Jam: 3 Harga: 15000

Structure dan Pointer

Variabel pointer dapat dibuat tidak hanya untuk tipe data bawaan seperti (int, float, double, dll) tetapi juga dapat dibuat untuk tipe yang ditentukan pengguna seperti struktur.

Contoh 4:

#include <iostream>
using namespace std;

struct Jarak {
    int kaki;
    float inci;
};

int main() {
    Jarak *ptr, d;
    ptr = &d;

    cout << "Masukkan kaki: ";
    cin >> (*ptr).kaki;
    cout << "Masukkan inci: ";
    cin >> (*ptr).inci;
    cout << "Informasi" << endl;
    cout << "Jarak = " << ptr->kaki << " kaki " << ptr->inci << " kaki";
    
 return 0;
}

Output :

Copied!
Masukkan kaki: 42 Masukkan inci: 12 Informasi Jarak = 42 kaki 12 kaki

Leave a Reply

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