Pointer dan Array dalam C

Halo, para programer yang sedang berkembang! Hari ini, kita akan memulai perjalanan menarik ke dunia pointer dan array dalam C. Jangan khawatir jika istilah ini terdengar menakutkan - setelah selesai tutorial ini, Anda akan bisa mengendalikan mereka seperti seorang pro!

C - Pointers and Arrays

Array dalam C

mari mulai dengan array. Bayangkan Anda punya sejumlah mobil mainan. Daripada menyebarkannya di seluruh kamar Anda, Anda memutuskan untuk menata mereka rapi di rak. Itu sebenarnya apa yang array dalam programming - cara untuk menyimpan banyak item dengan jenis yang sama dalam cara yang terorganisir.

Mengumumkan Array

Dalam C, kita mengumumkan array seperti ini:

int numbers[5];

Baris ini membuat sebuah array bernama numbers yang dapat menampung 5 integer. Itu seperti mengatakan, "Saya ingin sebuah rak yang dapat menampung 5 mobil mainan."

Kita juga dapat menginisialisasi array dengan nilai:

int numbers[5] = {1, 2, 3, 4, 5};

Ini seperti memasukkan 5 mobil mainan spesifik ke rak kita segera.

mari lihat contoh yang lebih praktis:

#include <stdio.h>

int main() {
int scores[5] = {85, 92, 78, 95, 88};

printf("Skor ketiga adalah: %d\n", scores[2]);

return 0;
}

Dalam contoh ini, kita menyimpan 5 skor ujian. Perhatikan bahwa kita mengakses skor ketiga menggunakan scores[2]. Ini karena indeks array di C dimulai dari 0, bukan 1. Itu mirip seperti bagaimana lantai dasar di beberapa negara dianggap lantai 0, bukan lantai 1.

Pointer dalam C

Sekarang, mari bicara tentang pointer. Jika array adalah seperti rak, pointer adalah seperti label atau tanda yang menunjukkan tempat hal-hal disimpan di memori.

Pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Itu seperti memiliki peta yang memberitahu Anda secara tepat dimana mencari sesuatu.

Ini adalah cara kita mengumumkan pointer:

int *ptr;

Baris ini membuat sebuah pointer bernama ptr yang dapat menyimpan alamat dari integer.

mari lihat contoh sederhana:

#include <stdio.h>

int main() {
int x = 10;
int *ptr = &x;

printf("Nilai x adalah: %d\n", x);
printf("Alamat x adalah: %p\n", (void*)ptr);

return 0;
}

Dalam contoh ini, kita membuat integer x dan pointer ptr yang menyimpan alamat x. Operator & digunakan untuk mendapatkan alamat variabel.

Operator Dereference dalam C

Operator dereference * digunakan untuk mengakses nilai yang disimpan di alamat yang dipegang pointer. Itu seperti menggunakan peta untuk benar-benar pergi ke lokasi dan melihat apa yang ada di sana.

Ini adalah contoh:

#include <stdio.h>

int main() {
int x = 10;
int *ptr = &x;

printf("Nilai x adalah: %d\n", x);
printf("Nilai yang dipointer ptr adalah: %d\n", *ptr);

*ptr = 20;  // Mengubah nilai x melalui pointer

printf("Nilai x yang baru adalah: %d\n", x);

return 0;
}

Dalam contoh ini, kita menggunakan *ptr untuk mengakses dan mengubah nilai x melalui pointer.

Pointer dan Array

Sekarang, ini adalah tempat yang benar-benar menarik. Dalam C, ada hubungan dekat antara pointer dan array. Sebenarnya, nama array adalah pointer ke elemen pertamanya!

mari lihat contoh:

#include <stdio.h>

int main() {
int numbers[5] = {1, 2, 3, 4, 5};
int *ptr = numbers;  // ptr sekarang menunjuk ke elemen pertama numbers

for(int i = 0; i < 5; i++) {
printf("Elemen %d: %d\n", i, *ptr);
ptr++;  // Pindah ke elemen berikutnya
}

return 0;
}

Dalam contoh ini, kita membuat array dan pointer yang menunjuk ke elemen pertama array. Kita kemudian menggunakan aritmetik pointer untuk bergerak melalui array dan mencetak setiap elemen.

Catatan Penting

Berikut adalah beberapa titik penting yang perlu diingat tentang pointer dan array dalam C:

Titik Deskripsi
Indeks Array Indeks array dimulai dari 0 di C
Pengumuman Pointer Gunakan * saat mengumumkan pointer (misal, int *ptr;)
Operator Address-of Gunakan & untuk mendapatkan alamat variabel
Operator Dereference Gunakan * untuk mengakses nilai dipointer
Hubungan Array-Pointer Nama array adalah pointer ke elemen pertamanya
Aritmetik Pointer Menambah 1 ke pointer membuatnya bergerak ke elemen berikutnya

Ingat, bekerja dengan pointer memerlukan perhatian yang seksama. Itu adalah fitur yang kuat dalam C, tetapi dengan kekuatan yang besar datang tanggung jawab besar!

Saya harap tutorial ini telah membantu Anda untuk mendemistifikasi pointer dan array. Terus berlatih, dan segera Anda akan dapat memanipulasi memori seperti seorang programer C yang sejati! Selamat coding!

Credits: Image by storyset