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