teoribuku

Menggunakan Struct/Record Untuk Menyimpan Data Dalam Memori



Structure (Struktur) adalah kumpulan elemen data yang digabungkan menjadi satu kesatuan. Dengan kata lain, structure merupakan bentuk struktur data yang dapat menyimpan variabel-variabel dalam satu nama. Masing-masing elemen data dikenal dengan sebutan sebuah field. Masing-masing field dapat memiliki tipe data yang sama ataupun berbeda. Variabel-variabel tersebut memiliki kaitan satu sama lain. Walaupun field-field tersebut berada dalam satu kesatuan, namun masing-masing field tersebut tetap dapat diakses secara individual atau satu per satu. Field-field digabungkan menjadi satu dnegan tujuan untuk kemudahan dalam operasinya. Struktur membantu mengatur data yang rumit, khususnya dalam program besar, karena struktur akan membuat sekelompok elemen data diperlakukan sebagai suatu unit.

Deklarasi Structure
Pendeklarasian structure selalu diawali kata baku struct diikuti nama structure dan deklarasi field-field yang membangun structure di antara pasangan tanda kurung kurawal bukan dan kurung kurawal tutup yang diakhiri dengan tanda titik koma ( ; ). Jika terdapat field dengan tipe data yang sama, dapat dideklarasikan bersama dengan dipisahkan oleh tanda koma ( , ) sehingga tidak perlu menulisan tipe datanya berulang-ulang.

Bentuk umum:

struct nama_struct
{
     <tipe_data> nama_field_1;
     <tipe_data> nama_field_2;
     ...
     <tipe_data> nama_field_n;
}

Contoh:

struct Mahasiswa {
     char NIM[9];
     char Nama[25];
     char Alamat[30];
     float Ipk;
};

Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk mendeklarasikan suatu variabel. Untuk mendeklarasikan suatu variabel struktur dapat dilakukan dengan:

     nama_struct nama_var_struct;

Contoh:
     Mahasiswa Mhs;

Merupakan pendeklarsian variabe bertipe struktur Mhs. Dengan pendeklarasian di atas, maka Mhs memiliki 4 (empat) anggota /field, yaitu Nim, Nama, Alamat, dan Ipk.

Pemakaian Structure
Untuk menggunakan structure dapat dilakukan dengan menuliskan nama structure yang diikuti dengan nama fieldnya yang dipisahkan dengan tanda titi ( . ) atau tanda panah ( -> ). Jika variabel tunggal maka digunakan tanda titik sebagai pemisah, tetapi jika variabel pointer maka digunakan tanda panah sebagai pemisah. Misalnya dari structure Mahasiswa di atas, kita akan mencetak biodata seorang mahasiswa ke layar maka penulisannya dapat dilakukan seperti berikut.

            cout<< Mhs.NIM;      cout<< Mhs->NIM;
     cout<< Mhs.Nama;     cout<< Mhs->Nama;
     cout<< Mhs.Alamat;   cout<< Mhs->Alamat;
     cout<< Mhs.Ipk;      cout<< Mhs->Ipk;

Contoh 1:
Buatlah program untuk membaca biodata yang meliputi Nim, Nama, Alamat, dan Umur kemudian cetak.

/* Program structure dengan penggunaan tanda titik */

#include<stdio.h>
#include<conio.h>
#include<iostream.h>

struct Mahasiswa
{
     char Nim[9];
     char Nama[25];
     char Alamat[40];
     short Umur;
};

main()
{
     mahasiswa Mhs;
     cout<<“Nim :  ”;
     cin.getline(Mhs.Nim,9);
     cout<<"Nama :  ";
     cin.getline(Mhs.Nama,25);
     cout<<"Alamat :  ";
     cin.getline(Mhs.Alamat,40);
     cout<<"Umur :  ";
     cin>> Mhs.Umur;
     cout<<"\n\n\nNIM     : "<< Mhs.Nim;
     cout<<"\n\n\nNama    : "<< Mhs.Nama;
     cout<<"\n\n\nAlamat  : "<< Mhs.Alamat;
     cout<<"\n\n\nUmur    : "<< Mhs.Umur;
     getch();
}

Structure dalam Structure
Suatu struktur juga dapat mengandung suatu struktur yang lain. Artinya field-field dalam suatu structure merupakan suatu structure juga. Misalkan biodata Mahasiswa yang terdiri dari NIM, Nama, Alamat, dan Tanggal Lahir. Alamat terdiri dari Nama Jalan, Kota, dan Kode Pos. Demikian juga halnya dengan Tanggal Lahir terdiri dari Tanggal, Bulan, dan Tahun. Dengan demikian maka struktur yang dibagi dalam tiga struktur, yaitu:

struct Tinggal
     {
           char Jalan[40];
           char Kota[15];
           char Pos[5];
     };

struct Tgl_lahir
     {
           int Tanggal;
           int Bulan;
           int Tahun;
     };

struct Mahasiswa
     {
           char Nim[9];
           char Nama[25];
           Tinggal Alamat;
           Tgl_Lahir;
     };

Kemudian deklarasikan suatu variabel struktur yang bertipe struktur Mahasiswa, seperti:

     Mahasiswa Mhs;

Perlu diingat bahwa jika suatu struktur dengan field bertipe struktur yang lain, maka struktur tersebut harus berada di atas struktur yang menggunakannya. Misalnya, perhatikan ketiga struktur di atas. Struktur Mahasiswa letaknya harus di bawah dari struktur Tinggal dan Tgl_Lahir. Sedangkan struktur Tinggal dan struktur Tgl_Lahir boleh saling dipertukarkan posisinya, karena kedua struktur tidak saling terkait.

Contoh2: Dengan menggunakan ketiga struktur di atas buatlah program untuk membaca dan mencetak nilai dari masing-masing field.

/*Program Struktur di dalam Struktur */

#include<stdio.h>
#include<iostream.h>
#include<conio.h>

struct Tinggal
     {
           char Jalan[40];
           char Kota[15];
           char Pos[5];
     };

struct Tgl_lahir
     {
           int Tanggal;
           int Bulan;
           int Tahun;
     };

struct Mahasiswa
     {
           char Nim[9];
           char Nama[25];
           Tinggal Alamat;
           Tgl_Lahir;
     };
void main()
{
     Mahasiswa Mhs;
     cout<<"NIM           : "; cin.getline(Mhs.Nim,9);
     cout<<"Nama          : "; cin.getline(Mhs.Nama,25);
     cout<<"Alamat        :\n";
     cout<<"\tJalan       : "; cin.getline(Mhs.Alamat.Jalan,40);
     cout<<"\tKota        : "; cin.getline(Mhs.Alamat.Kota,15);
     cout<<"\Kode Pos     : "; cin.getline(Mhs.Alamat.Pos,5);
     cout<<"Tanggal Lahir :\n";
     cout<<"\tTanggal     : "; cin>>Mhs.Lahir.Tanggal;
     cout<<"\tBulan       : "; cin>>Mhs.Lahir.Bulan;
     cout<<"\tTahun       : "; cin>>Mhs.Lahir.Tahun;
     cout<<"\n\nMencetak Kembali Nilai Anggota\n\n";
     cout<<"NIM           : "<<Mhs.Nim;
     cout<<"\nNama        : "<<Mhs.Nama;
     cout<<"\nAlamat      : "<<\n";
     cout<<"\n\tJalan     : "<<Mhs.Alamat Jalan;
     cout<<"\n\tKota      : "<<Mhs.Alamat.Kota;
     cout<<"\n\tKode Pos  : "<<Mhs.Alamat.Pos;
     cout<<"\nTanggal Lahir: "<<Mhs.Lahir.Tanggal<<"-";
     cout<<Mhs.Lahir.Bulan<<"-"<<Mhs.Lahir.Tahun;
     getch();
}

Menggunakan Struct/Record Untuk Menyimpan Data Dalam Memori Menggunakan Struct/Record Untuk Menyimpan Data Dalam Memori Reviewed by Mia on 09:05:00 Rating: 5

1 comment:

  1. cin.getline saya coba tidak dapat di loop dengan compiler code block

    ReplyDelete

Powered by Blogger.