STRUKTUR KOMPOSISI (RECORD)
Algoritma dan Struktur Data
//Program pengantar ke materi struct
#include <stdio.h>
void main()
{
char nama1[20], nama2[20], nama3[20];
char nim1[8], nim2[8], nim3[8];
float ipk1, ipk2, ipk3;
printf("Nama 1: ");
scanf("%s",&nama1);
printf("NIM 1: ");
scanf("%s",&nim1);
printf("IPK 1: ");
scanf("%f",&ipk1);
printf("Nama 2: ");
scanf("%s",&nama2);
printf("NIM 2: ");
scanf("%s",&nim2);
printf("IPK 2: ");
scanf("%f",&ipk2);
printf("Nama 3: ");
scanf("%s",&nama3);
printf("NIM 3: ");
scanf("%s",&nim3);
printf("IPK 3: ");
scanf("%f",&ipk3);
return 0;
}
Definisi
Struktur komposisi adalah sekumpulan variabel yang masing-
masing tipe datanya bisa berbeda, dan dikelompokkan ke
dalam satu nama.
Inisialisasinya menggunakan kata kunci struct.
Membuat sebuah struktur komposisi, berarti membuat
sebuah record (rekaman data).
Kegunaan
Struktur Komposisi digunakan untuk menampung sekumpulan
data dari suatu objek.
Misalkan:
Ada 1000 mahasiswa di STMIK Amikom
Setiap mahasiswa pasti memiliki data diri, seperti: nama, nim, ipk.
Maka, untuk menyimpan ketiga data diri mahasiswa tadi, setiap data diri
mahasiswa harus disimpan dalam satu kesatuan.
Nama;
NIM;
IPK
Mahasiswa 1
Nama;
NIM;
IPK
Nama;
NIM;
IPK
Mahasiswa 2
Mahasiswa 3
Memiliki atribut/ variabel yang sama
Nama;
NIM;
IPK
Mahasiswa
Nama;
NIM;
IPK
Mahasiswa 4
Deklarasi Struktur Komposisi
struct mahasiswa
{
char nama[20];
char nim[8];
float ipk;
}
Menggunakan Struktur Komposisi
Jika struktur komposisi “mahasiswa” sudah didefinisikan,
berarti kita sudah mempunyai sebuah record yang bernama
“mahasiswa”.
Selanjutnya, record “mahasiswa” ini bisa digunakan untuk
membuat variabel-variabel baru.
Menggunakan Struktur Komposisi
Syntax untuk membuat variabel baru dengan record
“mahasiswa” yang sudah dibuat tadi adalah:
struct <nama record> <nama variabel>
Contoh:
struct mahasiswa dataMhs;
Sehingga sekarang kita sudah memiliki sebuah variabel
bernama “dataMhs” yang berisi data nama, nim, dan ipk.
Pengaksesan Struktur
Untuk mengakses anggota dari struktur, digunakan salah satu
dari dua operator:
Titik (.), jika tipe variabel yang diakses adalah variabel
tunggal.
2. Panah (->), jika tipe variabel yang diakses adalah pointer.
1.
Pengaksesan Struktur (2)
Contoh cara mengisi nilai ke dalam variabel dataMhs:
scanf(“%s”, &dataMhs.nama);
scanf(“%s”, &dataMhs.nim);
scanf(“%f”, &dataMhs.ipk);
Contoh cara manampilkan nilai dari variabel dataMhs:
printf(“%s”, dataMhs.nama);
printf(“%s”, dataMhs.nim);
printf(“%f”, dataMhs.ipk);
//Program menggunakan STRUCT
#include "stdio.h"
void main()
{
struct mahasiswa
{
char nama[20];
char nim[7];
float ipk;
};
struct mahasiswa dataMhs;
//Mengisi data mahasiswa
printf("Nama Mahasiswa: ");
scanf("%s",&dataMhs.nama);
printf("NIM: ");
scanf("%s",&dataMhs.nim);
printf("IPK: ");
scanf("%f",&dataMhs.ipk);
//Menampilkan data mahasiswa
printf("Nama Mahasiswa: %s \n", dataMhs.nama);
printf("NIM: %s \n", dataMhs.nim);
printf("IPK: %f \n", dataMhs.ipk);
return 0;
}
Alternatif Mendeklarasikan
Struktur Komposisi
Menggunakan keyword typedef.
Dengan menggunakan typedef, maka berarti kita menjadikan
record tersebut sebagai sebuah tipe data baru (user defined
type).
Syntax:
typedef struct
{
<deklarasi variabel>
} <nama tipe data>;
Penggunaan Typedef
Contoh penggunaannya:
typedef struct
{
char nama[20];
char nim[7];
float ipk;
}mahasiswa;
mahasiswa mhs;
//inisialisasi variabel mhs tidak perlu
menggunakan “struct” lagi
Struktur Komposisi dan Array
Jika ada 1000 mahasiswa yang datanya ingin disimpan, maka
kita bisa mendefinisikan sebuah array yang bertipe
“mahasiswa” yang telah dibuat sebelumnya.
Contoh:
mahasiswa dataMhs[1000];
Maka, kita sudah mempunyai sebuah array bernama “dataMhs” yang
berisi data nama, nim, dan ipk.
Pengaksesan Struktur Komposisi
dengan Array
Cara pengaksesan struktur komposisi dengan array mirip
dengan cara pengaksesan struktur komposisi biasa.
Contoh cara mengisi nilai ke dalam variabel dataMhs:
scanf(“%s”, &dataMhs[i].nama);
scanf(“%s”, &dataMhs[i].nim);
scanf(“%f”, &dataMhs[i].ipk);
Pengaksesan Struktur Komposisi
dengan Array
Contoh cara manampilkan nilai dari variabel dataMhs:
printf(“%s”, dataMhs[i].nama);
printf(“%s”, dataMhs[i].nim);
printf(“%f”, dataMhs[i].ipk);
//Program menggunakan TYPEDEF STRUCT
#include "stdio.h"
void main()
{
typedef struct
{
char nama[20];
char nim[7];
float ipk;
} mahasiswa;
int i; //pencacah array
mahasiswa dataMhs[3];
//Mengisi data mahasiswa
for(i=0;i<=2;i++)
{
printf("Nama Mahasiswa: ");
scanf("%s",&dataMhs[i].nama);
printf("NIM: ");
scanf("%s",&dataMhs[i].nim);
printf("IPK: ");
scanf("%f",&dataMhs[i].ipk);
}
//Menampilkan data mahasiswa
for(i=0;i<=2;i++)
{
printf("Nama Mahasiswa: %s
\n",dataMhs[i].nama);
printf("NIM: %s \n",dataMhs[i].nim);
printf("IPK: %f \n",dataMhs[i].ipk);
}
return 0;
}
Untuk Dibawa Pulang
Buatkan sebuah program untuk menyimpan dan
menampilkan data dari 5 buah buku. Data yang dimiliki oleh
setiap buku yakni:
1. Judul buku
2. Pengarang (satu orang saja)
3. Penerbit
4. Jumlah halaman
5. Harga buku
Kumpulkan HANYA KODE PROGRAMNYA SAJA dalam
format .txt. Sertakan juga nama, nim, dan kelas dalam file
.txt tersebut.
Dikirimkan ke [email protected], paling
lambat satu pekan setelah praktikum ini dilaksanakan.
Subjek email: prak-06-<kelas>