• Struct dalam C
• Pointer dalam C
Structure
Jika Array adalah sebuah struktur linier yang dapat
menyimpan beberapa data dengan tipe yang sama,
maka structure dapat menyimpan beberapa data
dengan tipe yang berbeda
Structure digunakan untuk menyimpan sebuah record
Contoh kasus penyimpanan data buku di
perpustakaan, atribut yang dicatat:
Judul
Penulis
Subyek
ID Buku
Mendefinisikan Structure
Menggunakan pernyataan struct. Bentuk umum:
struct [nama_structure] {
definisi_member_1;
definisi_member_2;
…
definisi_member_n;
};
struct [nama_structure] [nama_variabel_structure];
Contoh deklarasi structure Books:
struct Books {
char title[50];
char author[50];
char subject[30];
int bookID;
};
struct Books book;
Mengakses Member Structure
Menggunakan operator “dot” (.)
Format: strcpy(tujuan,sumber)
Output:
Library string.h
Pointer dalam C: Pendahuluan
Beberapa bagian pemrograman Contoh code untuk melihat
dalam C lebih mudah dikerjakan alamat memori:
jika menggunakan pointer
Beberapa bagian lain justru
hanya dapat dikerjakan dengan
pointer, misal: dynamic memory
allocation
Setiap variabel yang dibuat
dalam program sesungguhnya
berupa lokasi memori, yang
memiliki alamat
Alamat memori dapat diakses
dengan menggunakan operator Output:
ampersand (&) yang
menyatakan sebuah alamat pada
memori
Pointer dalam C
Output:
Pointer
Pointer adalah variabel yang isinya adalah alamat dari
variabel lain (alamat/lokasi di dalam memori)
Bentuk umum deklarasi variabel pointer:
type *var-name;
Contoh:
int *p1;
float *p2;
char *p3;
Nilai/isi dari variabel pointer, baik yang bertipe integer, float,
character, atau lainnya, adalah sama, yakni bilangan long
hexadecimal yang mewakili sebuah alamat memori
Perbedaannya hanyalah pada tipe data dari alamat variabel yang
ditunjuk oleh pointer
NULL Pointer
Memberikan nilai NULL kepada pointer ketika kita
tidak memiliki alamat apapun untuk dituliskan
merupakan kebiasaan yang baik
Biasanya hal ini dilakukan pada saat deklarasi variabel
di awal program
Cara lain Menginisialisasi Pointer
Menggunakan perintah malloc dalam library stdlib.h
Contoh: int *ptr=malloc(sizeof(int));
Kode di atas membuat variabel ptr untuk menunjuk ke alamat
memori sebesar ukuran tipe integer, sehingga menjadikan
alamat tersebut tidak dapat diakses oleh program lain
Seorang programmer yang baik tidak akan lupa untuk
“membebaskan” alamat memori tersebut setelah selesai
digunakan
Fungsi untuk membebaskan lokasi memori:
free(ptr);
Setelah membebaskan pointer, sebaiknya variabel di-reset
agar menunjuk ke 0, sehingga pointer menjadi null pointer
Operasi Aritmetik pada Pointer
Sebuah pointer menyimpan sebuah
alamat, yang merupakan sebuah nilai
numerik, sehingga pada pointer dapat
dilakukan operasi aritmetik
Operator yang dapat digunakan: ++, --,
+, dan -
Operasi Increment (++)
Output:
Operasi Decrement (--)
Output: