Selasa, Maret 10, 2009

ABOUT STRUCT AND UNION

Ok sebelumnya anda yang awam belajar c++ memang agak susah memahi artikel di bawah ini ,mungkin anda harus belajar dahulu tentang apa itu flowcart dan apa itu algoritma selanjutnya anda bs melanjutkan ke tahap yang lebih .ok langsugn saja disini saya sedikit akan menjelaskan tentant STRUCT dan UNION,apakah itu??? Rujak cingurkah atau lontong balap hehehe  :)

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://elearning.upnjatim.ac.id/courses/FKK1002/document/Struct/STRUCT.doc?cidReq=FKK1002
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: