Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang
berlainan. Perhatikan contoh struktur berikut ini:
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
Struktur di atas bernama data_tanggal, yang tersusun atas 3 unit penyusunnya
yaitu tahun, tanggal, dan bulan. Setelah dibuat struktur tanggal, selanjutnya
struktur tersebut dapat digunakan sebagai tipe data suatu variabel, dalam hal ini
disebut tipe data abstrak.
Berikut contoh programnya.
Contoh 1.
#include<iostream.h>
#include<conio.h>
void main()
{
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
data_tanggal tanggal_lahir;
tanggal_lahir.tanggal = 1;
tanggal_lahir.bulan = 9;
tanggal_lahir.tahun = 1979;
cout << tanggal_lahir.tanggal << ‘/’ << tanggal_lahir.bulan << ‘/’
<< tanggal_lahir.tahun;
}
Misalkan terdapat 2 buah variabel tgl1 dan tgl2 sama-sama bertipe data_tanggal. Selanjutnya diinginkan mengcopy isi dari tgl1 ke tgl2, maka dapat dilakukan dengan perintah assignment biasa. Contoh:
Contoh 2.
#include<iostream.h>
#include<conio.h>
void main()
{
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
data_tanggal tgl1, tgl2;
tgl1.tanggal = 1;
tgl1.bulan = 9;
tgl1.tahun = 1979;
tgl2 = tgl1; // atau
tgl2.tanggal = tgl1.tanggal;
tgl2.bulan = tgl1.bulan;
tgl2.tahun = tgl2.tahun;
cout << tgl1.tanggal << ‘/’ << tgl1.bulan << ‘/’ << tgl1.tahun << endl;
cout << tgl2.tanggal << ‘/’ << tgl2.bulan << ‘/’ << tgl2.tahun << endl;
}
Untuk membandingkan 2 buah struktur, masing-masing unit harus dibandingkan
sendiri-sendiri, contoh:
if ((tgl1.tanggal == tgl2.tanggal) && (tgl1.bulan == tgl2.bulan) &&
(tgl1.tahun == tgl2.tahun))
cout << “Isi strukturnya sama”;
else cout << “Isi struktur tak sama”;
Suatu struktur juga dapat digunakan untuk argumen/parameter suatu function.
Contoh 2.
#include<iostream.h>
#include<conio.h>
struct data
{
int x;
int y;
};
void tampilkan(data nilai)
void main()
{
data nilaiku;
nilaiku.x = 10;
nilaiku.y = 16;
tampilkan(nilaiku);
}
void tampilkan(data nilai)
{
cout << “Nilai x = “ << nilai.x << endl;
cout << “Nilai y = “ << nilai.y << endl;
}
Contoh soal latihan:
- Buatlah program menggunakan function untuk menentukan selisih antara dua waktu (jam). Misalkan selisih antara pukul 4.30 dengan 6.00 adalah 90 menit. Terdapat 2 argumen function yaitu jam pertama dan jam kedua (lebih besar dari jam pertama).
hint: buat struktur jam (dengan unit jam, dan menit). - Bilangan kompleks memiliki format a+b i, dengan a dan b adalah bilangan
real. Notasi a disebut juga bagian real, dan b disebut juga bagian imajiner.
Buatlah program menggunakan struktur untuk menjumlahkan,
mengurangkan, dan mengalikan 2 buah bilangan kompleks.
Contoh:
(2+3 i) + (-1 + 3i) = 1+6 i
(2+3 i) - (-1 + 6i) = 3 – 3i
(2+3 i) . (-1 + 3i) = -2 – 3i + 6i + 9 i2 = -2 – 3i + 6i – 9 = -11 + 3i
No comments :
Post a Comment