Kamis, 05 Maret 2009

Tugas Kelompok Struktur Data untuk Pak Nur Cahyo

STRUCT



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
#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

Analisa Program:

Perhatikan instruksi struct pasien
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.

Dari contoh di atas, perhatikan bahwa kita menggunakan tanda titik untuk menggunakan variabel yang telah didefinisi dalam suatu struct.





UNION


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_bulat bil;



bil.di = 0x2345;



cout<



cout<<<”di : “<<



cout<<<”dc[0] : “<<



cout<<<”dc[1] : “<<



}





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)

1 komentar:

Anonim mengatakan...

1. struct lebih tepatnya adalah tipe data, bukan variabel.
2. tata tulis harap lebih dirapikan. jgn banyak baris kosong.
keep learning :)

Posting Komentar