Senin, 17 Desember 2018


Structure and Memory Allocation
Salam Programmers!

Kali ini saya akan membahas mengenai structure dan juga fungsi dari Memory Allocation.

Structure
Structure merupakan fungsi yang dapat digunakan untuk mengumpulkan atau menyatukan beberapa tipe data yang berbeda menjadi satu kesatuan. Structure mirip dengan array namun, array hanya bisa memasukkan satu tipe data saja sedangkan structure dapat menyimpan tipe data yang berbeda. Berikut syntax dari structure :

#include<stdio.h>

struct mahasiswa{
            char nama[50]; //disebut dengan nama field
            char NIM[20]; //disebut dengan nama field
            int umur; //disebut dengan nama field
};

int main(){
            return 0;
}

Struct dibuat di luar int main dan umumnya diletakkan di atas int main agar ketika kita memanggil struct tersebut di dalam int main dapat dikenali. Ini juga berhubungan dengan sifat scoping. Cara memanggil struct adalah kita harus membuat variabel terlebih dahulu sebagai bagian dari struct. Kita dapat mengandaikan bahwa struct adalah sebuah template, dan kita harus membuat variabel baru sebagai tempat yang dapat diisikan data namun memiliki struktur yang sama dengan structnya. Cara membuatnya adalah sebagai berikut :

Int main(){

            struct mahasiswa x;
            return 0;
}

Format penulisannya adalah “struct (nama struct) (nama variabel yang kita inginkan)”. X merupakan nama variabel biasa jadi kita bisa menggantinya dengan apa saja. Setelah itu, di dalam variabel x terkandung nilai yang bercabang-cabang  yang disebut field sesuai dengan struct mahasiswa yang telah kita buat. Cara kita untuk memasukkan data-datanya ke dalam tempat yang sesuai adalah sebagai berikut :

x.nama = “Budi”;
x.NIM = “22012232132”;
x.umur = 18;

maka secara otomatis data tersebut akan masuk sesuai dengan fieldnya masing-masing. Data tersebut juga dapat diisi melalui inputan user menggunakan scanf dan disimpan dengan cara yang sama juga seperti kodingan di atas yaitu dengan format :
(nama variabel struct).(nama field yang dituju)

Selain itu, struct juga dapat dibentuk menjadi sebuah array sehingga dapat menampung lebih banyak lagi data. Formatnya adalah sebagai berikut:

struct mahasiswa x[50];

Dengan begitu, maka kita dapat menampung semua field sebanyak array yang telah kita tentukan tersebut. Formatnya pun juga sama hanya perlu ditambahkan kurung saja setelah “x”. berikut contoh inputannya :
X[1].nama = “Budi”;
X[1].NIM = “22012232132”;
X[1].umur = 18;

Maka data-data tersebut akan masuk ke array 1. Selain itu, structure juga mempunyai nested structure seperti nested if yang di mana di dalam struct terdapat struct. Kalian dapat memvariasikan sendiri untuk mengambil inputan dari user menggunakan for dan sebagainya.

Memory Allocation(malloc)
Memory allocation merupakan cara di mana kita bisa membooking jumlah memory yang akan kita gunakan untuk keperluan kita. Tujuannya adalah agar tidak ada memory yang terbuang sia-sia atau ketika kita sedang input data tidak ada data yang kepenuhan dan sebagainya. Berikut syntax untuk malloc :

Int main(){

struct mahasiswa *x = (struct mahasiswa*) malloc(sizeof(struct mahasiswa));
return 0;

}

Maka, kita akan membooking memory dengan ukuran sesuai dengan struct mahasiswa kita. Tanda “*” menunjukkan bahwa variabel x itu sebagai pointer karena agar memory dapat terus mengikuti ukuran dari memory ketika data x berubah. Malloc juga dapat digunakan untuk semua tipe data kecuali void karena void tidak ada nilai yang dikembalikan.

Demikianlah pembahasan singkat tentang structure dan juga malloc. Semoga pembahasan ini dapat bermanfaat bagi kalian.

Salam Programmers!


Tidak ada komentar:

Posting Komentar