Structures - risdawati

advertisement
Structures
Data structures
Struct merupakan suatu struktur data yang menggabungkan beberapa data dengan
berbagai tipe data yang memiliki ukuran yang berbeda (heterogen) di kelompokan
dalam satu deklarasi unik dan saling berkaitan, dengan format sbb
:
struct model_name {
type1 element1;
type2 element2;
type3 element3;
.
.
} object_name;
dimana model_name adalah nama untuk model tipe stukturnya dan parameter optional
object_name merupakan identifier yang valid untuk objek struktur. Diantara kurung
kurawal { } berupa tipe dan sub-identifier yang mengacu ke elemen pembentuk
struktur. Jika pendefinisian stuktur menyertakan parameter model_name (optional),
maka parameter tersebut akan menjadi nama tipe yang valid ekuivalen dengan
struktur. Contoh :
struct products {
char name [30];
float price;
};
products apple;
products orange, melon;
Didefinisikan model struktur products dengan dua field : name dan price, dengan
tipe yang berbeda. Kemudian tipe struktur tadi (products) digunakan untuk
mendeklarasikan tiga objek : apple, orange dan melon.
Ketika dideklarasikan, products menjadi nama tipe yang valid seperti tipe dasar int,
char atau short dan dapat mendeklarasikan objects (variables) dari tipe tersebut.
Optional field yaitu object_name dapat dituliskan pada akhir deklarasi struktur untuk
secara langsung mendeklarasikan object dari tipe struktur. Contoh :
struct products {
char name [30];
float price;
} apple, orange, melon;
Sangat penting untuk membedakan antara structure model, dan structure object.
model adalah type, dan object adalah variable. Kita dapat membuat banyak objects
(variables) dari satu model (type).
Struct dapat dideklarasikan secara bertingkat, yaitu salah satu field struct bertipe
struct lainnya (nested Structure) . Selain itu struct juga dapat digabungkan dengan
array, struct yang field-nya berupa array atau array yang setiap elemennya berupa
structure.
AP3/TI/Ayuliana,ST/2009
1
Structure sebagai parameter
Structure dapat dikirim ke function sebagai parameter, jika structure ini hanya
merupakan data masukan, maka dapat dikirimkan dengan call by value, tetapi bila
structure yang dikirimkan akan mengalami perubahan nilai maka pengiriman
parameter harus dengan call by reference dengan mengirimkan pointer to struct.
Struct juga dapat menjadi return type sebuah function.
Contoh struct1 (pass by reference):
#include<stdio.h>
#include<conio.h>
struct t_hitung{
int x;
int y;
};
int Hitung(struct t_hitung *Nilai){
int y;
y=Nilai->y*5+2;
Nilai->x=25;
return y;
}
int main(){
struct t_hitung *Angka;
int m;
Angka->x=5, Angka->y=10;
m = Hitung(Angka);
printf("x= %d\ny= %d\nm= %d",Angka->x,Angka->y, m);
return 0;
}
Contoh struct2 (array structures) :
#include<stdio.h>
#include<conio.h>
#define X 5
struct products{
char name[30];
float price;
};
int main(){
int i, j, jml;
struct products Apple[X];
char temp[30];
float Harga;
printf("Berapa jenis apel [Max %d]: ", X);
scanf("%d", &jml);
for(i=0;i<jml;i++){
printf("Masukkan nama buah ke-%d: ", i+1);
flushall();gets(temp);strcpy(Apple[i].name, temp);
printf("Masukkan harga buah : ");
scanf("%f", &Harga);Apple[i].price=Harga;
}
printf("\n\nHasil :\n");
for(j=0;j<jml;j++)
printf("%s Rp %.2f\n",Apple[j].name, Apple[j].price);
return 0;
}
AP3/TI/Ayuliana,ST/2009
2
Operasi File
File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri
dari satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.
MEMBUKA FILE
Untuk membuka atau mengaktifkan file, fungsi yang digunakan adalah fungsi
fopen(). File dapat berupa file biner atau file teks. File biner adalah file yang pola
penyimpanan di dalam disk dalam bentuk biner, yaitu seperti bentuk pada memori
(RAM) computer. File teks adalah file yang pola penyimpanan datanya dalam bentuk
karakter.
Penambahan yang perlu dilakukan untuk menentukan mode teks atau biner
adalah “t” untuk file teks dan “b” untuk file biner. Prototype fungsi fopen() ada di
header fungsi “stdio.h”
Bentuk umum :
file *fopen(char *namafile, char *mode);
Keterangan :
♦ namafile adalah nama dari file yang akan dibuka/diaktifkan.
♦ mode adalah jenis operasi file yang akan dilakukan terhadap file.
Jenis-jenis operasi file :
♦r
:
menyarakan file hanya dapat dibaca (file harus sudah ada)
♦w :
menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan
dihapus)
♦a
:
untuk membuka file yang sudah ada dan akan dilakukan proses
penambahan data (jika file belum ada, otomatis akan dibuat)
♦ r+ :
untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan
dan penulisan.
♦ w+ :
untuk membuka file dengan tujuan untuk pembacaan atau penulisan.
Jika file sudah ada, isinya akan dihapus.
♦a+ :
untuk membuka file, dengan operasi yang akan dilakukan berupa
perekaman maupun pembacaan. Jika file sudah ada, isinya akan dihapus.
Contoh :
pf = fopen(“COBA.TXT”, “w”);
MENUTUP FILE
Untuk menutup file, fungsi yang digunakan adalah fclose(). Prototype fungsi
fclose() ada di header file “stdio.h”. Bentuk Umum :
int fclose(FILE *pf); atau
int fcloseall(void);
MELAKSANAKAN PROSES FILE
♦ Menulis Karakter, untuk menulis sebuah karakter, bentuk yang digunakan adalah :
putc(int ch, file *fp)
Dimana : fp adalah pointer file yang dihasilkan oleh fopen() dan ch adalah karakter
yang akan ditulis.
AP3/TI/Ayuliana,ST/2009
3
Contoh :
#include “stdio.h”
#include “conio.h”
#define CTRL_Z 26
void main() {
file *pf;
/* pointer ke file */
char kar;
/* ciptakan file */
if((pf = fopen(“COBA.TXT”, “w”)) == NULL){
cputs(“File tak dapat diciptakan !\r\n”);
exit(1); }
/* selesai */
while((kar=getche()) != CTRL_Z)
putc(kar, pf);
fclose(pf);
}
/* tulis ke file */
/* tutup file */
♦ Membaca Karakter, untuk membaca karakter dari file, fungsi yang digunakan
adalah:
getc(file *fp);
Dimana fp adalah pointer file yang dihasilkan oleh fopen() dan fungsi feof(),
digunakan untuk mendeteksi akhir file. Pada saat membaca data foef(file *fp)
Contoh :
#include “stdio.h”
#include “conio.h”
void main(){
file *pf;
char kar;
/* pointer ke file */
/* buka file */
if((pf = fopen(“COBA.TXT”, “r”)) == NULL) {
cputs(“File tak dapat dibuka !\r\n”);
exit(1); }
/* selesai */
while((kar=getc(pf)) != EOF)
putch(kar);
/* tampilkan ke layar */
fclose(pf);
/* tutup file */
}
AP3/TI/Ayuliana,ST/2009
4
Download