Algoritma dan Struktur Data
STRUKTUR KOMPOSISI (RECORD)
//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;
}
DefinisiStruktur 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).
KegunaanStruktur Komposisi digunakan untuk
menampung sekumpulan data dari suatu objek.
Misalkan:Ada 1000 mahasiswa di STMIK AmikomSetiap 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.
Mahasiswa 1
Nama;NIM;IPK
Mahasiswa 2
Nama;NIM;IPK
Mahasiswa 3
Nama;NIM;IPK
Mahasiswa 4
Nama;NIM;IPK
Nama;NIM;IPK
Mahasiswa
Memiliki atribut/ variabel yang sama
Deklarasi Struktur Komposisi
struct mahasiswa{
char nama[20];char nim[8];float ipk;
}
Menggunakan Struktur KomposisiJika 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 KomposisiSyntax 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 StrukturUntuk mengakses anggota dari struktur,
digunakan salah satu dari dua operator:1. Titik (.), jika tipe variabel yang diakses
adalah variabel tunggal.2. Panah (->), jika tipe variabel yang diakses
adalah pointer.
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 KomposisiMenggunakan 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 TypedefContoh 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 ArrayJika 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 ArrayCara 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 ArrayContoh 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 buku2. Pengarang (satu orang saja)3. Penerbit4. Jumlah halaman5. 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>