Sunday, December 2, 2012

Array of struct : Jobsheet 1

Lanjutan dari postingan sebelumnya tentang array, di sini kita akan membicarakan tentang modifikasi dari struktur data yaitu tentang struct dan kombinasinya dengan array. Jadi singkatnya kita disini akan belajar membuat sebuah kumpulan data (struct). 

Struct dapat menyimpan beberapa tipe data yang berbeda. array hanya dapat menyimpan data dengan bertipe data sama. Jika kita kombinasikan maka akan menghasilkan sebuah struktur data yang memiliki field data yang berbeda yang terkumpul dalam satu struct yang sama, dalam artian memiliki field yang sama dengan struct yang lain dan dapat di isi data yang berbeda. dan field-field tersebut memiliki kaitan satu sama yang lain.
bentuk umum dari struct :
typedef struct nama_struct{
tipe_data nama_variabel;
tipe_data nama_variabel;
....
};

Untuk mendeklarasikan sebuah struct ada beberapa cara yang sering saya gunakan adalah sebagai berikut, contoh:
  1. typedef struct siswa{
  2. int no_induk;
  3. char nama[30];
  4. }siswa;
atau dapat juga seperti di bawah ini :
  1. struct{
  2. int no_induk;
  3. char nama[30];
  4. }siswa;
PENGAKSESAN
Untuk mengakses data yang telah tersimpan dalam struct kita secara umum dapat ditulis
nama_struct.nama_field;
Contoh program struct yang memiliki field nama dan umur:
  1. #include <stdio.h>
  2. #include <conio.h>

  3. typedef struct orang{
  4. int umur;
  5. char nama[30];
  6. }orang;

  7. main(){
  8. printf("Masukkan nama orang : ");fflush(stdin);
  9. gets(orang.nama);
  10. printf("Berapa umurnya : ");scanf("%d",&orang.umur);
  11. getch();system("cls");
  12. printf("Nama\t: %s",orang.nama);
  13. printf("Umur\t: %d",orang.umur);

  14. return 0;
  15. }
Contoh program di atas merupakan program yang menggunakan sebuah struct yang memiliki field "nama" dan "umur" dan struct tersebut bernama "orang". karena hanya satu struct maka struct tersebut hanya dapat menyiman satu paket data, dimana paket data tersebut menyimpan data nama dan umur.
Setelah kita faham tentang struct kita lanjut ke modifikasi dengan array, yang kita namakan array of struct. Sehingga kita tidak hanya menyimpan satu paket data saja namun kita dapat menyimpan beberapa paket data pada struct orang lebih dari satu. karena dengan array maka data tersimpan dengan ditandai pada indeks seperti pada pembahasan array sebelumnya.
Ada beberapa cara untuk mendeklarasikan array of struct yang sering saya gunakan adalah syntaxnya seperti berikut :

  1. typedef struct nama_struct{
  2. tipe_data nama_field;
  3. tipe_data nama_field;
  4. tipe_data nama_field;
  5. . . .
  6. }nama_struct[indeks];
oke langsung saja kita keimplementasi pada programnya. Pada intinya array of struct ini sama dengan array seperti biasanya. Struct dianalogikan dengan sebuah tipe data dan diberi indeks.
Namun struktur data tipe ini memiliki kelemahan pada alokasi memori dan penghapusan data. Pengalokasian memori hanya terbatas pada banyaknya indeks yang kita definisikan pada saat pembentukan array-nya. Sedangkan untuk penghapusan tidak dapat dilakukan secara real karena masih ada alokasi memori yang sudah kita alokasikan pada saat pendeklarasian. Sehingga alokasi memori untuk array dapat dikatakan tidak dinamis. Misalnya kita mengalokasikan indeks dengan nilai 10 dan kita hanya menggunakan 5 alokasi memori, maka untuk sisanya akan mubazdir. Begitu pula pada saat kita membutuhkan lebih dari 10 alokasi memori maka alokasi memori kita kurang karena sejak awal pendeklarasian kita hanya mengalokasikan 10 tempat.
Berikut adalah contoh program sederhana untuk Array of struct :
  1. #include <stdio.h>
  2. #include <conio.h>

  3. typedef struct orang{
  4. int umur;
  5. char nama[30];
  6. }orang[1000];

  7. main(){
  8. int i,awal;
  9. printf("Berapa data yang akan anda masukkan?");
  10. scanf("%d",&awal);

  11. for (i=0;i<awal;i++){
  12. system("cls");
  13. printf("\n\t\tData ke %d",i+1);
  14. printf("Masukkan nama orang : ");fflush(stdin);
  15. gets(orang[i].nama);
  16. printf("Berapa umurnya : ");scanf("%d",&orang[i].umur);
  17. }
  18. printf("\n\nTekan sembarang tombol Untuk Melihat Data anda");
  19. getch();system("cls");


  20. for (i=0;i<awal;i++){
  21. printf("\n\t\tData Ke %d",i+1);
  22. printf("Nama\t: %s",orang[i].nama);
  23. printf("Umur\t: %d",orang[i].umur);
  24. }

  25. return 0;
  26. }
  1. Download materi Jobsheet 1 Free
  2. Download latihan 1 Jobsheet 1 Free
  3. Download latihan 2 Jobsheet 1 Free
  4. Password MF : imhere | Password .rar : imhere
  5. Download Tugas Jobsheet 1
  6. Password MF : imhere | Password .rar

No comments:

Post a Comment