Selasa, 18 Desember 2018


Structure
Pendahuluan
Di bab sebelumnya, kita pernah membahas array dan cara penggunaannya namun hanya terbatas untuk satu data type saja. Maka, sekarang kita akan membahas data type yang bisa menampung berbagai macam data type sekaligus yang disebut structure.

Structure
kegunaan kedua data type ini sama tapi Beda array dan structure misalnya, kita pergi membeli es krim dan ditawarkan single flavor dan mixed flavor dengan harga Satu flavor 5.000. Array itu bagaikan single flavor sehingga kita hanya mendapat satu rasa sedangkan structure itu seperti mixed flavor sehingga kita bisa mendapat berbagai macam rasa lebih dari satu.

Selain itu, bayangkan jika harga es krim yang kita beli sesuai pilihan kita sebagai besar data typenya. Jika kita membeli single flavor, maka array hanya 5 byte saja, tapi jika kita membeli mixed flavor 3 rasa maka sebesar 15.000 rupiah maka besar structure sama dengan 15 byte. Maka dari itu, kita juga bisa menyimpulkan bahwa ukuran data type structure lebih besar daripada array.
Syntax model structure sebagai berikut:
Struct <name>
{
<data type 1> <variable>;
<data type 2> <variable>;
............
};
Dari syntax diatas, kita harus tau bahwa data type structure adalah struct dan perlu diingat bahwa setiap kali struct selesai dibuat, harus di akhiri dengan tanda (;) semicolon.
Contoh struct yaitu:
Struct form
{
char nama[100];
char nomor[10];
int usia;
float gaji;
};

Selanjtnya, Untuk mengakses structure di function yang akan kita buat, kita memerlukan variabel internal pointer sebagai penghubung structure dengan function program kita. Misalnya:
#include<stdio.h>
struct form
{
char nama[100];
char nomor[10];
int usia;
float gaji;
};
int main()
{
struct form W;
scanf(“%d”,&W.usia);
printf(“%d”,W.usia);
}

Pada program diatas, kita akan mencoba untuk menginput usia form misalnya 23. Untuk itu, pertama-tama, kita perlu memasukkan input ke dalam scanf di int main. Pada “scanf(“%d”,&W.usia)”,terdapat W sebagai internal variable pointer diikuti dengan “.” untuk memberi akses ke usia milik structure. Hal yang sama juga terjadi di “printf(“%d”,W.usia)” sehingga hasil output adalah 23. Dengan begitu, kita dapat memasukkan dan mengakses value di structure dari function.

Local and Global
Berikutnya, perlu diketahui bahwa struct ada dua jenis berdasarkan posisi dan skalanya yaitu Local structure dan Global structure.

Local structure adalah structure yang berada dalam suatu function dan hanya bisa diakses dalam function itu tersendiri. Skema nya sebagai berikut:
Function
{
Structure A
{
<Data type> <variable>;
};
}

Sedangkan Global structure adalah structure yang bisa diakses oleh semua function karena posisinya di luar semua function. Skema nya sebagai berikut:
Structure A
{
<Data type> <variable>;
};
Function 1
{
          Struct A <variable pointer>
}

Function 2
{
          Struct A <variable pointer>
}

Nested Structure
Sekarang kita akan membahas tentang susunan structure yang ada dalam structure lain yang disebut dengan Nested Structure. Hal ini bisa dilakukan karena selama elemen dalam structure adalah data type, maka structure masih bisa bekerja. Skema nested structure adalah seperti berikut:
First layer
First Structure
Second layer
Second Structure
Third layer
Third Structure
Main layer
Int Main

Supaya lebih jelas, perhatikan contoh nested structure berikut:

#include<stdio.h>  
struct address   
{  
    char city[20];  
    int pin;  
    char phone[14];  
};  

struct employee  
{  
    char name[20];  
    struct address add;  
};  

void main ()  
{  
    struct employee emp;  
    printf("Enter employee information?\n");  
    scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);  
    printf("Printing the employee information....\n");  
    printf("name: %s\nCity: %s\nPincode: %d\nPhone: %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);  
}  

Pada program di atas, untuk mengakses structure address dari structure employee, maka di syntax scanf dan printf, di tambah tanda titik(.) sebagai pintu akses seperti “emp.add.city”, ” emp.add.pin” , dan “emp.add.phone”. Maka dengan begitu, kita dapat mengakses nested structure.

Dengan begitu, sampai sini lah penjelasan bab ini.

Tidak ada komentar:

Posting Komentar