Kuliah Ke-9
Kuliah Ke-9
int tanggal
}
2
Apabila suatu struktur telah dideklarasikan, struktur ini
dapat digunakan utk mendefinisikan suatu variabel
Misalnya : data_tanggal tanggal_lahir;
Merupakan pendefinisian variabel struktur bertipe struktur
data_tanggal
Dgn adanya pendefinisian ini tanggal_lahir memiliki tiga
buah anggota yaitu :
◦ Tahun
◦ Bulan
◦ tanggal
3
Suatu struktur juga bisa mengandung struktur yg
lain
Struct data_pegawai
{
int nip;
char nama[25];
data_tanggal tanggal_lahir
} rec_peg;
4
Anggota struktur diakses dengan menggunakan bentuk :
Variabel_struktur.nama_anggota
5
Pemberian nilai terhadap suatu struktur dpt
dilakukan dgn bentuk :
Var1 = var2
Sepanjang kedua variabel adalah variabel
struktur bertipe sama
Data_tanggal tgl1, tgl2; penugasan tgl2 =
tgl1
Dalam hal ini, seluruh anggota pd variabel
tgl2 diisi dgn anggota terkait yg ada pd tgl1,
merupakan penyederhanaan dari tiga
pernyataan berikut :
◦ tgl2.bulan = tgl1.bulan;
◦ tgl2.tahun = tgl1.tahun;
◦ tgl2.tanggal = tgl1.tanggal;
6
Pembandingan dua buah struktur tidak dapat
dilakukan secara langsung
Misalnya terdpt pendefinisian sbb:
Data_tanggal tgl1,tgl2;
Permbadingan sbb tdk akan diterima sewaktu
kompilasi:
If (tgl1 == tgl2)
pernyataan;
Seharusnya dilakukan perbandingan secara
sendiri-sendiri
If ((tgl1.tahun == tgl2.tahun) &&
(tgl1.bulan == tgl2.bulan) &&
(tgl1.tanggal == tgl2.tanggal))
7
Suatu struktur juga dpt berkedudukan sebagai
argumen fungsi
Tanda & di depan nama argumen pada
pendefinisian fungsi meyatakan bahwa argumen
akan dilewatkan sebagai referensi
Dengan menyatakan sebagai referensi, nilai
anggota struktur dpt diubah
Selain sebagai fungsi, struktur juga bisa menjadi
nilai balik fungsi
Contoh : data_tanggal tgl_kini()
Tipe nilai balik fungsi tgl_kini() berupa struktur
data_tanggal
8
// nama program : struktur2
// contoh penugasan struktur
# include <iostream.h>
void main()
{
struct data_tanggal //pendefinisian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tgl1,tgl2;//pendefinisian
struktur
// pengaksesan per anggota struktur
tgl1.tanggal = 1;
tgl1.bulan = 9;
tgl1.tahun = 1964;
//penugasan antar variabel struktur
tgl2 = tgl1;
cout<<tgl2.tanggal<<'/'
<<tgl2.bulan<<'/'
<<tgl2.tahun<<endl;
}
9
//contoh utk melewatkan struktur ke fungsi
# include <iostream.h>
//deklarasi struktur
struct koordinat
{
int x;
int y;
};
void tampilkan_posisi(koordinat posisi); //prototipe fungsi
void main()
{
koordinat posisi; //definisi variabel struktur
posisi.x = 27;
posisi.y = 55;
tampilkan_posisi(posisi);
}
void tampilkan_posisi(koordinat posisi)
{
cout<<"posisi x = " <<posisi.x<<endl;
cout<<"posisi y = "<<posisi.y<<endl;
}
10
Struct mahasiswa ...
{ For (i=0;i<35;i++)
string nama; {
int NIM; ..
int nilai; cin>>mhsTI[i].nama;
char grade; cin>>mhsTI[i].NIM;
} mhsTI; .....
}
11
Buatlah program untuk mengolah data nilai mahasiswa kelas
Algoritma & Pemrograman I. Program ini mampu membaca
setiap data mahasiswa (jumlah 35), dan dapat menentukan
indeks kelulusannya (seperti dalam latihan materi
conditional/pencabangan).
Data mahasiswa disimpan dalam tipe data Array of Struct,
yang berisi komponen Nama, Nim, Nilai, Indeks. Nilai sudah
berisi nilai akhir (dari perhitungan rata-rata). Lengkapi
program tsb dengan fungsi-fungsi sbb :
1. Fungsi membaca data dan menyimpan dalam Array
2. Fungsi menentukan indeks nilai setiap mahasiswa dan sismpan dalam
array
3. Fungsi untuk menentukan mahasiswa dengan nilai tertinggi dan indeks
tertinggi
4. Fungsi untuk mencetak nama-nama mahasiswa dengan indeks
kelulusannya
12