STRUCT adalah TIPE DATA TURUNAN
1. Variabel bisa untuk menyimpan beberapa data yang bisa berbeda tipenya
2. Menggunakan operator titik (.) untuk mengakses tiap elemen datanya.
3. Seringkali dikombinasikan dengan ARRAY à ARRAY of STRUCT
Definisi :
o Berbentuk tipe data
o Berisi beberapa variabel yang bisa berbeda tipenya, masing-masing disebut elemen
o Mempunyai nama yang sama
Mirip representasi sebuah object beserta properties-nya
Struct merupakan salah satu tipe data yang merepresentasikan suatu tipe komposisi dalam algoritmik, yaitu sebuah tipe yang terdiri dari komponen-komponen bertipe tertentu (yang tentunya boleh rekursif, yaitu tipe seperti definisi tipe tersebut). Bisa dibilang komponen-komponen tersebut merupakan member dari tipe data struct tersebut
Yang membedakannya dengan tipe data yang lain adalah adanya tipe data-tipe data lain yang menjadi anggota dari type data struct tersebut, sedangkan tipe data yang lain hanya mampu untuk menampung satu jenis variabel ( dalam type yang sama ).
CONTOH PROGRAM
#include Analisa Program: Perhatikan instruksi struct pasien Dari contoh di atas, perhatikan bahwa kita menggunakan tanda titik untuk menggunakan variabel yang telah didefinisi dalam suatu struct. Memungkinkan suatu lokasi memori ditempati oleh dua atau lebih variabel yang bisa saja tipenya berlainan. Union menyerupai struktur, namun mempunyai perbedaan yang nyata. Union biasa dipakai untuk menyatakan suatu memori dengan nama lebih dari satu. Sebagai gambaran, sebuah union dideklarasikan sebagai berikut : union bila_bulat { unsigned int di; unsigned char dc[2]; } Pada pendeklarasian seperti ini, di dan dc menempati memori yang sama. Untuk lebih jelasnya, perhatikan contoh berikut : Contoh : #include #include void main() { union bil_bulat { unsigned int di; unsigned char dc[2]; }; bil.di = 0x2345; cout< cout< cout< cout< } Keluarannya : di : 0x2345 dc[0] : 0x45 dc[1] : 0x23 Keterangan : setiosflags(ios::showbase) mengembalikan basis hitung yang digunakan. Hex membuat basis hitung menjadi heksadesimal. #include main() { union { unsigned int di; unsigned char dc[2]; } bil_x; /* variabel union */ bil_x.di = 321; printf("di = %d\n”, bil_x.di); printf(“dc[0] = %d dc[1] = %d\n", bil_x.dc[0], bil_x.dc[1]); } ARRAY OF STRUCT Sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb. Indeks : #include "stdio.h" #include "string.h" #include "conio.h" typedef struct mhs { char npm [10]; char nama [20]; char alamat [30]; unsigned angkatan; float ipk; }; main() { mhs student[100]; // deklarasi var, menyiapkan 100 data mhs char lagi = 'y'; int i; for( i = 0; lagi == 'y'; i++) { printf("\nNPM = "); gets(student[i].npm); printf("Nama = "); gets(student[i].nama); printf("Alamat = "); gets(student[i].alamat); printf("Angkatan = "); scanf("%i", &student[i].angkatan); printf("IPK = "); scanf("%f", &student[i].ipk); printf("\nMasukkan Lagi (y/t) ? "); lagi = getche(); flushall(); } printf("\n\nData yang sudah dimasukkan adalah:\n"); for( int j = 0; j <> { printf("\nNPM : %s", student[j].npm); printf("\nNama : %s", student[j].nama); printf("\nAlamat : %s", student[j].alamat); printf("\nAngkatan : %i", student[j].angkatan); printf("\nIPK : %f \n", student[j].ipk); } } NAMA KELOMPOK: 1. Zandhi Yusrianto (0834010119) 2. Febrian Dwi.P (0834010127) 3. Bayu Deby.S (0834010145) 4. Rizka Agustin.W (0834010107) 5. Nurani Septi Wulan (0834010083) 6. Ratna Oktaviani (0834010059)
#define MAKS 20
struct date
{
//definisi global dr tipe date
int month, day, year;
};
struct student
{
//definisi global dr tipe student
char name[30];
struct date birthday;
};
main()
{
struct student data_mhs[MAKS];
int i=0, jml;
char lagi;
do //memasukkan data
{
printf("Name : ");
gets(data_mhs[i].name);
printf("Tanggal Masuk (mm-dd-yyyy): ");
scanf("%d-%d-%d", &data_mhs[i].birthday.month,
&data_mhs[i].birthday.day, &data_mhs[i].birthday.year);
i++;
fflush(stdin); //hapus sisa data dlm buffer keyboard
printf("\nMau memasukkan data lagi [Y/T] ? ");
lagi = getchar( ); //baca tombol
fflush(stdin); //hapus sisa data dlm buffer keyboard
}
while(lagi == 'Y' lagi == 'y');
jml = i;
printf("\nDATA PASIEN\n");
for (i=0; i
Kita mendefinisikan suatu struct yang telah didefinisi sebelumnya di luar fungsi main() dengan nama mahasiswa. Kita harus mendeklarasi dengan suatu nama baru untuk dapat menggunakan struct tersebut. Dalam hal ini dengan nama variabel student. Selanjutnya, variabel student mempunyai struktur persis seperti yang telah didefinisikan nama pasien.Dan ditambahkan dengan tanggal masuk. Dalam hal ini kita membedakan antara nama struktur dan nama variabel struktur. Nama struktur sering disebut type. Dalam contoh, type pasien adalah nama pasien.
bil_bulat bil;
1 komentar:
1. struct lebih tepatnya adalah tipe data, bukan variabel.
2. tata tulis harap lebih dirapikan. jgn banyak baris kosong.
keep learning :)
Posting Komentar