Array, dan Pointer dalam bahasa C
- Array
Array adalah kumpulan nilai-nilai yang memiliki tipe data yang sama dalam urutan tertentu (index)
Jadi kita bisa simpan banyak value dalam 1 variable yang sama. Data yang bisa disimpan dalam array bisa dalam bentuk int, char, double, float, dll.
Array akan sangat berguna jika dipakai untuk menyimpan data dengan tipe data yang sama yang lebih dari satu.
Cara membuat array :
data_type nama_array[ukuran]
Contoh :
int angka[10]
Jadi pada contoh diatas, kita membuat sebuah array dengan nama angka yang dapat menampung maksimal 10 data yang bertipe data int
Cara Inisialisasi Array :
angka[0] = 1
angka[1] = 10
dst..
Jadi pada contoh inisialisasi array diatas, kita memberi nilai untuk ditampung array pada index 0 dan 1, yaitu 1 dan 10. Alhasil sekarang index 0 dan 1 sudah terisi dan 2 sampai 9 masi kosong
Kita juga bisa langsung menginisialisasi array kita ketika kita sedang mendeklarasikannya :
int angka[] = {1,10,2,5,20};
Pada contoh diatas, berarti kita membuat array dengan nama angka yang menyimpan data int, dan kita langsung kasi tau data2nya apa aja.
Array dua dimensi
Array yang sebelumnya kita pelajari hanya merupakan array satu dimensi, dimana bisa di identifikasi dengan hanya memiliki satu tanda “[]” , berbeda dengan array dua dimensi, array dua dimensi memiliki 2 tanda “[]” . Biasanya array dua dimensi juga dapat dianalogikan sebagai “Array of Array” jadi setiap array merupakan array dan juga dapat kita visualisasikan mirip seperti sebuah tabel.
Cara membuat array dua dimensi :
data_type nama_array[baris][kolom];
Contoh
int matriks[3][3];
Cara menginisialisasi array dua dimensi :
int matriks[3][3] = {{1,2,3}, {4,5,6},{7,8,9}};
Untuk menampilkan isi dari array 2 dimensi, agak berbeda dengan cara menampilkan isi array satu dimensi yang hanya menggunakan 1 loopingan saja, disini kita akan menggunakan 2 loopingan.
Contoh :
#include<stdio.h>
int main(){
int i=0,j=0;
int angka[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(i=0;i < 3;i++){
for(j=0;j < 3;j++){
printf(“angka[%d] [%d] = %d \n”,i,j,angka[i][j]);
}
}
return 0;
}
2. Pointer
Pointer adalah sebuah variabel yang menyimpan alamat dari variabel lain.
Contoh :
int angka = 20;
int* ptr = &angka
Code diatas adalah code untuk membuat sebuah variable pointer yang kemudian menyimpan alamat dari sebuah variabel angka.
Cara membuat pointer :
int *a; // pointer untuk int
char *b; // pointer untuk char
Sesuai dengan gambar diatas, variabel ptr menyimpan alamat dari variabel var, yaitu 0x7fffa0757dd4, jadi isi dari variable ptr sekarang adalah 0x7fffa0757dd4, tetapi kita juga bisa mengakses nilai yang disimpan dalam alamat ini melalui variable ptr, yaitu dengan bantuan *(indirection operator). Jadi jika kita menambahkan * didepan sebuah variabel pointer, maka dia akan menampilkan nilai yang disimpan dalam alamat yang ada dalam pointer.
Contoh :
#include<stdio.h>
int main(){
int angka=10;
int *ptr;
ptr=&angka;//ptr menyimpan alamat dari angka
printf(“Isi dari variabel ptr adalah %x \n”,ptr); // isi dari variable ptr (alamat dari “angka”).
printf(“Value yang terdapat di alamat yang disimpan ptr adalah %d \n”,*ptr); // gunakan * untuk mendapatkan value yang terdapat di alamat yang disimpan ptr
return 0;
}
Selain menggunakan operator *, tadi kita juga menggunakan operator &, dimana operator ini berguna untuk mendapatkan alamat dari sebuah variable , contoh &angka, berarti kita mendapatkan alamat dari variable angka
Sekian untuk materi Array dan Pointer, jika ada pertanyaan jangan sungkan untuk contact saya. Terima kasih.
~~ Selamat Belajar ~~
Bonus :
Berikut contoh soal yang dapat kalian pakai untuk lebih memahami materi diatas