Algorithm Session 21 Structure, Union and Memory Allocation

Structure
Structure adalah suatu kumpulan dari berbagai tipe data yang didalamnya dapat memuat suatu variable maupun array, kapasitas structure merupakan jumlah dari semua variable maupun array yang di definisikan.

Contoh Penggunaan:

struct mahasiswa{
      char nama[100];
      char nim[100];
      int umur;
}mahasiswa[100];

berarti struct mahasiswa memiliki 100 index dan didalam 1 index terdapat 100 index nama, 100 index nim dan 1 variabel umur.


Cara penggunaan:

struct mahasiswa{
      char nama[100];
      char nim[100];
      int umur;
}mahasiswa[100];

int main(){
    printf("%s %s %d\n",mahasiswa[0].nama,mahasiswa[0].nim,mahasiswa[0].umur);
}

menggunakan <nama struct>.<nama variable/nama array>

Union
Union merupakan hal yang sama dengan structure mulai dari pengaplikasiannya, assignnya, dan juga declarenya , yang membedakan adalah Union hanya memakai kapasitas dari variabel terbesar dari suatu union tersebut.

Contoh Penggunaan:

union mahasiswa{
      char nama[100];
      char nim[100];
      int umur;
}mahasiswa[100];

Berarti dalam 1 index union mahasiswa terdapat 100 index nama, 100 index nim dan 1 variabel umur.

Cara penggunaan:

union mahasiswa{
      char nama[100];
      char nim[100];
      int umur;
}mahasiswa[100];

int main(){
    printf("%s %s %d\n",mahasiswa[0].nama,mahasiswa[0].nim,mahasiswa[0].umur);
}

menggunakan <nama union>.<nama variable/nama array>

Memory Allocation

Memory Allocation merupakan suatu fungsi yang mengambil memori dari RAM untuk digunakkan ke program.

Memory De-Allocation merupakan suatu fungsi untuk mengembalikan memori dari program balik ke RAM.

Contoh penggunaan Memory Allocation:

struct Data{
char nama[100];
int age;
Data *next;
}*head,*tail;

void pushhead(int val,char nama[])
{
Data *temp = (Data*)malloc(sizeof(Data));
temp->age = val;
temp->next = NULL; //0
strcpy(temp->nama,nama);
if(head == NULL){
head = temp;
tail = temp;
// head = tail = temp;
}
else{
temp->next = head;
head = temp;
}
}

void printdata()
{
if(!head){
printf("Data not found!\n");
}
Data *temp = head;
while(temp != NULL){
printf("%d %s\n",temp->age,temp->nama);
temp = temp->next; //temp++;
}
}

int main(int argv,char** args){
pushhead(10,"zzz");
pushhead(3,"ccc");
pushhead(7,"ggg");
pushhead(4,"ddd");
pushhead(9,"lll");
pushhead(2,"aaa");
printdata();
}

Contoh penggunaan Memory De-Allocation:

struct Data{
char nama[100];
int age;
Data *next;
}*head,*tail;

Data* pophead()
{
if(!head){
return NULL;
}
Data* tobedeleted = head;
head =  head->next;
return tobedeleted;
}
int main(int argv,char** args){
pophead();
printdata();
}

Static Keyword
Static Variable:
Hanya dapat didefinisikan sebanyak 1 kali , kedua kali didefinisikan akan menyebabkan kerusakan / error pada suatu program.
Static Variable kegunaannya hampir sama dengan Constant Variable.

Enumeration
Merupakan penamaan dari suatu variabel maupun suatu struct.

Comments

Popular posts from this blog

Human Computer Interaction Redesign UI(User Interface) Cinepolis Indonesia