Hai semua✋👋! Kali ini saya akan berbagi catatan saya sebagai mahasiswa "IT" tentang Pointer dan Arrays. Semoga artikel ini bermanfaat.
Pointer dan Arrays
Pada artikel operator yang sebelumnya, saya pernah membahas tentang pointer operator. Nah pada kali ini saya akan membahas
lebih dalam tentang pointer dan ditambah dengan array.
Pointer
Pointer adalah variabel yang menyimpan alamat dari variabel lain. Pointer ini tak lepas dengan pointer operator yang berupa "&"(alamat dari) dan "*"(konten dari/isi dari). Biasanya pointer akan dituliskan dengan cara sebagai berikut:
<type> *ptr_name;
Dimana type adalah tipe data dan ptr_name adalah sebuah variabel. Contohnya:
int i,*j,**k;
j= &i;
k=&j
Jika *j=15, maka nilai i juga adalah 15. Kemudian jika dalam kasus 'k' diatas, k adalah double pointer yaitu pointer yang menunjuk ke pointer. Perlu diingat double pointer hanya dapat menunjuk ke pointer biasa, berlaku juga triple pointer yang hanya bisa menunjuk ke double pointer dan seterusnya.
Jika *j=10 maka hanya nilai i yang menjadi 10, sedangkan jika **k=5, maka nilai i dan *j adalah 5.
Pointer terbagi menjadi 2 jenis yaitu :
- Pointer Variable yaitu pointer yang bisa di assign dengan nilai baru sewaktu dijalankan
- Pointer Constant yaitu pointer yang tidak bisa di assign dengan nilai baru sewaktu dijalankan
Array
Array adalah kumpulan dari beberapa data. Array dalam bahasa C bersifat homogen yang artinya semua data pada array memiliki tipe data yang sama. Array bisa diakses secara sembarang dengan mengakses kode index dari array tersebut. Array terbagi menjadi 3 yaitu:
- One Dimensional Array
- Two Dimensional Array
- Three Dimensional Array
One Dimensional Array
Array ini berbentuk sekumpulan data yang dijadikan 1. Penulisan one dimensional array adalah:
type array[value];contohnya seperti
int I[10];Dimana definisinya berupa 4 komponen:
- tipe data
- nama array
- operator indeks ([])
- angka indeks
Disini dapat dilihat bahwa angka indeks selalu dimulai dari 0. Namun array juga bisa diinisialisasi tanpa menggunakan nilai contohnya
int A[ ]={1,2,3,4,5}maka array A memiliki 5 elemen dan A[0] adalah 1, A[1] adalah 2 dan seterusnya. Lalu seperti yang saya tulis diatas, array bisa diakses secara sembarang yaitu dengan 2 cara
*(A+2) atau A[2] dengan contoh penggunaan
printf("%d",A[2]); atau printf("%d",*(A+2));maka dengan statement seperti diatas akan terprint angka 3 di layar. Kemudian array juga bisa di assign secara sembarang misalnya:
A[3] = 10;maka array A dengan nomor index 3 akan menjadi 10.
Dari pembahasan pointer diatas, array adalah pointer constant untuk elemen array pertamanya. Namun array juga bisa diisi oleh pointer loh.
Two Dimensional Array
Array ini berbentuk berbagai kumpulan dari kumpulan data atau bisa juga dikatakan array dari array 1 dimensi. Two dimensional array dapat ditulis sebagai:
type array[row][col];contohnya jika kita memiliki array int a[3][4]; maka dapat digambarkan sebagai berikut
Lalu cara untuk menginisialisasi two dimensional array adalah
int a[2][2] = {{10,20},{30,40}}
Three Dimensional Array
Array ini berbentuk sebagai berbagai kumpulan dari kumpulan-kumpulan data atau bisa juga dikatakan array dari array 2 dimensi. Three dimensional array dapat ditulis sebagai:type array[row][col][depth];dimana jika kita inisialisasi maka:
int x[2][2][4] = {{1,2,3,4},{5,6,7,8}} , {{9,10,11,12},{13,14,15,16}}
Array of Pointer
Seperti yang sudah saya tulis diatas, isi dari array dapat berupa pointer. Pengisian pointer kedalam array dapat ditulis sebagai:
type *array[value]contohnya
int i;
int *j[5]
int a=2, b=3, c=5, d=7, e=11;
j[0]=&a, j[1]=&b, j[2]=&c, j[3]=&d, j[4]=&e;
for(i=0;i<5;i++)
{printf("%d ",*j[i]);}maka outputnya adalah 2 3 5 7 11.
Array of Character / String
Untuk array of character bisa disebut juga dengan string. String adalah sekumpulan karakter yang diakhiri dengan \0 (null). String tidak diketahui sebagai tipe data di bahasa C. Dalam header <string.h> terdapat berbagai fungsi untuk memanipulasi string seperti
- strlen()
untuk menghitung panjang dari suatu array of character - strcpy(s1,s2)
untuk mengcopy string dari s2 ke s1 - strcpy(s1,s2,x)
untuk mengcopy x kata pertama dari s2 ke s1 contohnya jika x=5 maka 5 kata pertama s2 akan tercopy ke s1 - strcat(s1,s2)
untuk menambahkan s2 ke akhir dari s1 - strcat(s1,s2,x)
untuk menambahkan x kata dari s2 ke s1 contohnya jika x=3 maka 3 kata pertama dari s2 akan ditambahkan di akhir s1 - strcmp(s1,s2)
untuk mengcompare s1 dan s2. jika hasilnya sama maka nilainya 0. - dan lain sebagainya
Demikianlah catatan Pointer dan Array saya. Semoga bermanfaat 😁
Tidak ada komentar:
Posting Komentar