Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu.
Elemen-elemen array tersusun secara sekuensial di dalam memori sehingga memiliki alamat yang berdekatan.
Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.
Array adalah deretan variabel yang berjenis sama dan mempunyai nama sama. Pada bahasa C, array mempunyai lokasi yang bersebelahan. Alamat terkecil menunjuk keelemen pertama dan alamat terbesar menunjuk ke alamat terakhir. Sebuah elemen pada array diakses melalui indeksnya.
Bentuk umum deklarasi array :
type nama_array[ukuran]
tipe : menyatakan tipe dasar array
ukuran : menyatakan banyaknya elemen pada array
Kelebihan ARRAY :
1. Struktur data paling mudah
2. Memori ekonomis, bila semua elemen terisi
3. Waktu akses sama ke setiap elemen
Kekurangan ARRAY :
1. Boros memori jika banyak elemen yang tidak digunakan
2. Struktur data statis
POINTER
Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu lokasi memori tertentu.
Jadi pointer tidak berisi nilai data, melainkan berisi suatu alamat memori atau null jika tidak berisi data.
Pointer yang tidak diinisialisasi disebut dangling pointer Lokasi memori tersebut bisa diwakili sebuah variabel atau dapat juga berupa nilai alamat memori secara langsung.
Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer tertentu. Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double, atau single, dan bahkan tipe-tipe data lain yang didukung oleh bahasa C. Variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat lebih fleksibel. Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL, dan disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.
Pendeklarasian variabel pointer menggunakan tanda * sebelum nama variabelnya, sedangkan untuk menampilkan nilai yang ditunjuk oleh suatu variabel pointer, juga digunakan operator * (tanda asterisk). Jika diinginkan untuk menampilkan alamat tempat penyimpanan nilai yang ditunjuk oleh suatu variabel pointer, digunakan operator & (tanda ampersand).
Pada suatu tipe data array, variabel pointer hanya perlu menunjuk pada nama variabel arraynya saja tanpa perlu menggunakan tanda ampersand, atau menunjuk pada nama variabel array pada indeks yang ke nol nya.
Bentuk Umum : tipe_data *nama_pointer;
Contoh : int *nilai;
char *huruf;
Operator pointer ada dua, yaitu :
Operator &
Operator & bersifat unary (Hanya memerlukan satu operand saja)
Operator & menghasilkan alamat dari operandnya
Operator *
Operator * bersifat unary (Hanya memerlukan satu operand saja)
Operator * menghasilkan nilai yang berbeda pada sebuah alamat
Operasi Pointer
a. Operasi Penugasan
Suatu variabel pointer seperti hal nya variable yang lain, juga bias mengalami operasi penugasan. Nilai dari suatu variable pointer dapat disalin ke pointer yang lain.
Contoh program
#include “stdio.h”
#include “conio.h”
void main(){
float *x1, *x2, y;
clrscr();
y = 13.45;
x1 = &y; /* Alamat dari y disalin ke variabel x1 */
x2 = x1; /* Isi variabel x1 disalin ke variabel x2 */
printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x1);
printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x2);
getch();
}
b. Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan.
Contoh Program
#include “stdio.h”
#include “conio.h”
void main(){
int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
printf(“Nilai %i ada di alamat memori %p\n”, *penunjuk, penunjuk);
printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+1),
penunjuk+1);
printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+2),
penunjuk+2);
getch();
}
Untuk Download Artikel Klik Gambar
Tidak ada komentar:
Posting Komentar