STRUCT
Dari definisi Struct atau struktur
User defined data type
Berisi beberapa variabel yang bisa berbeda tipenya masing-masing disebut elemen
Mempunyai nama yang sama
Mirip representasi sebuah object beserta properties-nya.
Contoh: struct MHS setidaknya punya elemen untuk NPM, Nama dan Alamat.
Struktur (struct) adalah koleksi dari variabel yang dinyatakan dengan sebuah nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Pendeklarasian struct biasanya dilakukan diawal, setelah pendeklarasian file header dan sebelum fungsi main
Cara pendeklarasian struct ada beberapa cara :
Deklarasi biasa
Deklarasi dengan tipedef
Deklarasi dalam linked list
Deklarasi struct dalam struct
Perbedaan dengan Tipe data lain :
Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.
Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk mengakses suatu element dari variabel struktur.
Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang (’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.
Contoh :
typedef struct
{
int NIP ;
char nama[30]
} pegawai_t, *peg_t;Pengaksesan dengan operator titik dan panah:
- p Pegawai_t.NIP
- p Pegawai_t.nama
- ( (*peg_t).NIP == peg_t -> NIP
DEKLARASI
Syntax:
struct nama_struct {
tipe_data_1 nama_var_1;
tipe_data_2 nama_var_2;
tipe_data_3 nama_var_3;
……
};
CARA PENGAKSESAN
Untuk mengakses tiap elemen di dalam sebuah struct digunakan operator titik (.)
Syntax: nama_var_struct . nama_var_elemen;
CONTOH PROGRAM
Berikut script program menghitung luas lingkaran dengan struct sederhana
# include "stdio.h"
struct lingkaran { // definisi struct dibuat global
int jari_jari;
float keliling;
float luas;
};
main()
{
struct lingkaran L; // deklarasi variable struct
printf("\nMasukkan jari-jari lingkaran = ");
scanf("%i", &L.jari_jari); // input
L.keliling = 2 * 3.14 * L.jari_jari; // proses
L.luas = 3.14 * L.jari_jari * L.jari_jari; // proses
printf("\nKelilingnya = %f", L.keliling); // output
printf("\nLuasnya = %f", L.luas); // output
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.
#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);
}
}
UNION
Union memungkinkan suatu lokasi memori ditempati oleh 2 atau lebih variabel dengan tipe data berlainan
Contoh cara mendefinisikan
union bil_bulat
{ unsigned int di ;
unsigned char dc[2] ;
} ;
Contoh pendeklarasian dan pengaksesan variabel union */
#include
main()
{
union{
unsigned int di;
unsigned char dc[2];
}bil_x; //varibel union
bil_x.di =321 ;
printf(“di=%d dc[0] =%d dc [1] = %d \n”,bil_x.di,
bil_x.dc , bil_x.dc[1]);
}
Di olah dari bebarapa sumber
http://lecturer.eepis-its.edu/~zenhadi/kuliah/Pertemuan9.ppt
http://actualtraining.wordpress.com/2008/04/28/penggunaan-struct
http://tutorialpemrograman.wordpress.com/2009/02/14/tipe-data-struct-struktur-dalam-bahasa-c/
Tidak ada komentar:
Posting Komentar