Mengenal Struktur

advertisement
Bab 5
Struktur
Mengenal Struktur
Struktur adalah tipe data yang dapat menyimpan sejumlah data yang memiliki tipe data berbeda.
Variabel yang menyusun Struktur dinamakan elemen struktur
Deklarasi Struktur
Struktur dapat dideklarasikan seperti berikut:
struct nama_struktur {
elemen1;
elemen2;
…
};
Atau bisa seperti ini:
typedef struct {
elemen1;
elemen2;
…
} nama_struct;
Contoh deklarasi struktur:
struct Buku {
char kode_buku[10];
char judul[50];
char isbn[20];
char pengarang[50];
int berat;
};
Mengenal Struktur
Pengaksesan elemen struct dilakukan
secara
individual
dengan menyebutkan nama
variabel struktur diikuti dengan tanda titik “.”. Perhatikan contoh berikut:
buku = Buku;
cout << buku.kode_buku;
cout << buku.judul;
Modul Praktikum Pemrograman Sistem
STMIK El Rahma Yogyakarta
Eding Muh. Saprudin, S.Kom
[email protected]
http://edokode.com
Contoh 1:
#include <iostream.h>
#include <conio.h>
float get_nilai(float a, float b) {
return (a + b) / 2;
}
void main() {
// definisi struktur
struct Mahasiswa {
char nim[10];
char nama[30];
float uts;
float uas;
};
Mahasiswa mhs;
// entri data
cout << "Masukkan NIM : ";
cin.getline(mhs.nim, 10);
cout << "Masukkan Nama : ";
cin.getline(mhs.nama, 30);
cout << "UTS : ";
cin >> mhs.uts;
cout << "UAS : ";
cin >> mhs.uas;
// tampil data
cout << "\nNIM
cout << "\nNama
cout << "\nNilai
getch();
: " << mhs.nim;
: " << mhs.nama;
: " << get_nilai(mhs.uts, mhs.uas);
}
Output:
Masukkan NIM : 12345676
Masukkan Nama : Edomaru
UTS : 89
UAS : 93
NIM
Nama
Nilai
: 12345676
: Edomaru
: 91
Struktur di dalam Struktur
Struktur di dalam Struktur artinya elemen yang berada dalam struktur bertipe data struktur lainnya.
Perhatikan contoh berikut:
Modul Praktikum Pemrograman Sistem
STMIK El Rahma Yogyakarta
Eding Muh. Saprudin, S.Kom
[email protected]
http://edokode.com
struct Mahasiswa {
char nim[10];
char nama[30];
};
struct Nilai {
float uts;
float uas;
};
struct NilaiMahasiswa {
Mahasiswa mhs;
Nilai nilai;
};
Contoh 2:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
float get_nilai(float a, float b) {
return (a + b) / 2;
}
void main() {
// definisi struktur
struct Mahasiswa {
char nim[10];
char nama[30];
};
struct Nilai {
float uts;
float uas;
};
struct NilaiMahasiswa {
Mahasiswa mhs;
Nilai nilai;
};
NilaiMahasiswa nm;
// entri data
cout << "Masukkan NIM : ";
cin.getline(nm.mhs.nim, 10);
cout << "Masukkan Nama : ";
cin.getline(nm.mhs.nama, 30);
cout << "UTS : ";
cin >> nm.nilai.uts;
Modul Praktikum Pemrograman Sistem
STMIK El Rahma Yogyakarta
Eding Muh. Saprudin, S.Kom
[email protected]
http://edokode.com
cout << "UAS : ";
cin >> nm.nilai.uas;
// tampil data
cout << "\nNIM
cout << "\nNama
cout << "\nNilai
getch();
: " << nm.mhs.nim;
: " << nm.mhs.nama;
: " << get_nilai(nm.nilai.uts, nm.nilai.uas);
}
Output:
Masukkan NIM : 12345786
Masukkan Nama : Dee Chozo
UTS : 90
UAS : 70
NIM
Nama
Nilai
: 12345786
: Dee Chozo
: 80
Struktur Array
Struktur juga dapat dikombinasikan dengan array, perhatikan contoh berikut:
struct Mahasiswa {
char nim[10];
char nama[30];
float uts;
float uas;
};
Mahasiswa mhs[10];
Contoh 3:
#include <iostream.h>
#include <conio.h>
#define MAX 5
float get_nilai(float a, float b) {
return (a + b) / 2;
}
char get_huruf(float nilai) {
char huruf;
if (nilai > 85) huruf = 'A';
else if (nilai > 70) huruf = 'B';
else if (nilai > 50) huruf = 'C';
else if (nilai > 40) huruf = 'D';
else huruf = 'E';
Modul Praktikum Pemrograman Sistem
STMIK El Rahma Yogyakarta
Eding Muh. Saprudin, S.Kom
[email protected]
http://edokode.com
return huruf;
}
void main() {
// definisi struktur
struct Mahasiswa {
char nim[10];
char nama[30];
float uts;
float uas;
};
Mahasiswa mhs[MAX];
// entri data
for (int i=0; i < MAX; i++) {
clrscr();
cout << "Mahasiswa ke " << i + 1 << endl;
cout << "Masukkan NIM : ";
cin.getline(mhs[i].nim, 10);
cout << "Masukkan Nama : ";
cin.getline(mhs[i].nama, 30);
cout << "UTS : ";
cin >> mhs[i].uts;
cout << "UAS : ";
cin >> mhs[i].uas;
}
// tampil data
for (int i=0; i < MAX; i++) {
float n_akhir = get_nilai(mhs[i].uts, mhs[i].uas);
cout << "\nNIM
: " << mhs[i].nim;
cout << "\nNama
: " << mhs[i].nama;
cout << "\nNilai : " << n_akhir;
cout << "\nGrade : " << get_huruf(n_akhir);
}
getch();
}
Modul Praktikum Pemrograman Sistem
STMIK El Rahma Yogyakarta
Eding Muh. Saprudin, S.Kom
[email protected]
http://edokode.com
Download