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
Reviewed by Mia
on
09:05:00
Rating:
cin.getline saya coba tidak dapat di loop dengan compiler code block
ReplyDelete