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:
- typedef struct siswa{
- int no_induk;
- char nama[30];
- }siswa;
- struct{
- int no_induk;
- char nama[30];
- }siswa;
Untuk mengakses data yang telah tersimpan dalam struct kita secara umum dapat ditulis
nama_struct.nama_field;
- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang;
- main(){
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang.nama);
- printf("Berapa umurnya : ");scanf("%d",&orang.umur);
- getch();system("cls");
- printf("Nama\t: %s",orang.nama);
- printf("Umur\t: %d",orang.umur);
- return 0;
- }
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 :
- typedef struct nama_struct{
- tipe_data nama_field;
- tipe_data nama_field;
- tipe_data nama_field;
- . . .
- }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 :
- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang[1000];
- main(){
- int i,awal;
- printf("Berapa data yang akan anda masukkan?");
- scanf("%d",&awal);
- for (i=0;i<awal;i++){
- system("cls");
- printf("\n\t\tData ke %d",i+1);
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang[i].nama);
- printf("Berapa umurnya : ");scanf("%d",&orang[i].umur);
- }
- printf("\n\nTekan sembarang tombol Untuk Melihat Data anda");
- getch();system("cls");
- for (i=0;i<awal;i++){
- printf("\n\t\tData Ke %d",i+1);
- printf("Nama\t: %s",orang[i].nama);
- printf("Umur\t: %d",orang[i].umur);
- }
- return 0;
- }
- Download materi Jobsheet 1 Free
- Download latihan 1 Jobsheet 1 Free
- Download latihan 2 Jobsheet 1 Free
- Password MF : imhere | Password .rar : imhere
- Download Tugas Jobsheet 1
- Password MF : imhere | Password .rar
No comments:
Post a Comment