Pointer
Pointer adalah sebuah variabel yang berfungsi untuk menyimpan address dari variabel lain, menggunakan simbol "*" dan "&"
Syntax:
<data_type> *ptr_name
* berarti menunjuk pada content dari suatu address
& berarti menunjuk pada address dari suatu content
Pointer to pointer
Adalah pointer yang menyimpan address dari pointer lain.
Syntax:
<data_type> **ptr_name
** berarti menunjuk pada content dari suatu address yang ditunjuk oleh pointer lain.
Contoh:
int i = 12, *p, *pp;
p = &i;
pp = &pp;
printf("%d",**pp);
Output: 12
Array
Array adalah suatu variabel yang menyimpan sekumpulan data yang tidak terpisahkan.
Ibarat jika menonton dalam bioskop bersama keluarga atau teman terdekat, tentunya tiket akan dipesan sederet untuk sekeluarga atau sekelompok teman. Demikian pula berlaku untuk array, data yang tersimpan dalam array berurut, sehingga dapat diakses secara random.( dalam scanf tidak memerlukan &)
Dalam array, semua tipe data adalah sama atau disebut juga homogenous
Array dapat dibagi menjadi banyak macam berdasarkan dimensinya, namun yang akan dibahas hanyalah 1D array dan 2D array
1. 1D Array (One Dimensional Array)
Syntax:
<data_type> array_name[value];
1D array memiliki index dari 0 sampai (value-1).
Inisialisasi array dapat dilakukan dengan 2 cara:
a. Inisialisasi variabel awal
Contoh: int a[4]: {1,2,3,4}
Sebuah array dapat tidak perlu diberikan nilai value, dengan syarat sudah terdapat inisialisasi content array.
Contoh:
int b[] :{1,2,3,4}
Sistem dapat mengenali bahwa value dari a adalah 4(terdapat 4 content dalam a)
b. Looping
Biasanya, looping pada array digunakan untuk memberi content dalam sebuah array, dengan cara sebagai berikut.
int i;
int c[3];
for(i=0;i<3;i++)
{
scanf("%d",&c[i]);
}
dapat juga ditulis:
int i;
int c[3];
for(i=0;i<3;i++)
{
scanf("%d",*(c+i));
}
Pointer Constant vs Pointer Variable
Pointer constant adalah array, tidak bisa diubah valuenya.
Sementara pointer variable adalah pointer seperti contoh di atas mengenai pointer, dapat diubah valuenya.
Cara mengakses sebuah array dengan pointer
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int *pointr;
pointr =arr; // or pointr = &arr[0]
printf("%d",*pointr);
Output: 1
2. 2D array( Two Dimensional Array)
Syntax:
<data_type>array_name[row][column];
Contoh tabel sebagai berikut:
1 2 3
4 5 6
Dalam kasus tersebut, row =3 dan column =2;
Oleh karena index array dari 0 sampai (n-1), maka:
array_name[0][0] = 1
array_name[0][1] = 2
array_name[0][2] = 3
array_name[1][0] = 4
array_name[1][1] = 5
array_name[1][2] = 6
Dapat diinisialisasikan sebagai berikut.
int a[3][2] = {1,2,3,4,5,6}
atau
int a[3][2] = {{1,2,3},
{4,5,6}} //untuk mempermudah melihat tabel yang diinginkan.
Array of pointer
Adalah suatu array yang berisi banyak pointer.
Contoh:
int a;
int *pointr[3];
int x = 1;y =3; z=5;
pointr[0] = &x;pointr[1] = &y; pointr[2] = &z;
for(int i=0;i<3;i++)
{
printf("%d ",*pointr[i]);
}
Output : 1 3 5
Array of character
Disebut juga string, yaitu kumpulan character dalam suatu array.
Dalam library <string.h>, dapat ditemukan berbagai fungsi string, antara lain sebagai berikut.
- strlen, menghitung panjang string
- strcpy(s2,s1), meng-copy s2 ke s1
- strncpy(s2,s1,n), meng-copy s2 ke s1 sebanyak n karakter pertama
- strcat(s2,s1), menambahkan string s1 pada akhir s2
- strncat(s2,s1,n), menambahkan string s1 pada akhir s2 sebanyak n karakter
- strcmp(s1,s2), membandingkan nilai s1 dan s2, jika sama nilainya 0
- dll.
No comments:
Post a Comment