struktur dan pointer - E

advertisement
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>
Download