id (Indonesia):

C - Character Pointers and Functions

Apa itu Character Pointer di C?

Imajinasi Anda memiliki rak buku magis yang dapat menunjuk ke huruf mana saja di dalam sebuah buku. Itu hampir sama dengan apa yang character pointer adalah di C – itu adalah variabel khusus yang menyimpan alamat memori dari sebuah karakter.

Pada awal tahun mengajar saya, saya biasa memberi tahu siswiku untuk mengira memori sebagai sebuah pemukiman besar, dan setiap rumah (lokasi memori) memiliki alamat yang unik. Character pointer adalah seperti mengetahui alamat rumah tertentu tempat karakter itu tinggal.

Mendeklarasikan Character Pointer

Mendeklarasikan character pointer adalah mudah. Ini cara Anda melakukannya:

char *ptr;

Baris ini mengatakan kepada komputer, "Hai, saya ingin membuat sebuah pointer bernama 'ptr' yang akan menunjuk ke sebuah karakter."

Menginisialisasi Character Pointer

Sekarang bahwa kita telah mendeklarasikan pointer kita, mari kita memberi itu sesuatu untuk menunjuk ke:

char ch = 'A';
char *ptr = &ch;

Disini, kita membuat karakter 'A' dan kemudian memberi tahu pointer kita untuk mengingat tempat 'A' tinggal di memori.

Contoh Character Pointer

Mari kita gabungkan apa yang kita pelajari dengan contoh sederhana:

#include <stdio.h>

int main() {
    char ch = 'B';
    char *ptr = &ch;

    printf("Karakter adalah: %c\n", *ptr);
    printf("Alamat karakter adalah: %p\n", (void*)ptr);

    return 0;
}

Ketika Anda menjalankan kode ini, Anda akan melihat:

Karakter adalah: B
Alamat karakter adalah: [alamat memori tertentu]

Mari kita pecahkan ini:

  1. Kita membuat karakter 'B' dan menyimpannya di 'ch'.
  2. Kita membuat pointer 'ptr' dan membuatnya menunjuk ke 'ch'.
  3. Kita menggunakan '*ptr' untuk mendapatkan nilai yang ditunjuk oleh ptr (yaitu 'B').
  4. Kita mencetak alamat yang disimpan di 'ptr', tempat 'B' tinggal di memori.

Memahami Character Pointer

Sekarang, mari kita wujud lebih dalam. Character pointer memiliki hubungan khusus dengan string di C. Lihat contoh ini:

char *str = "Hello, World!";
printf("%s\n", str);

Kode ini akan mencetak "Hello, World!". Tetapi bagaimana? Di C, string adalah hanya array karakter yang diakhiri dengan karakter null ('\0'). Ketika kita menggunakan character pointer dengan string literal seperti ini, itu menunjuk ke karakter pertama dari string.

Mengakses Character Array

Mari lihat bagaimana kita dapat menggunakan character pointer untuk mengakses elemen di dalam array karakter:

#include <stdio.h>

int main() {
    char str[] = "Pemrograman C";
    char *ptr = str;

    for(int i = 0; ptr[i] != '\0'; i++) {
        printf("%c", ptr[i]);
    }

    return 0;
}

Kode ini akan mencetak "Pemrograman C". Disini, kita menggunakan pointer untuk mengakses setiap karakter di dalam array sampai kita menemui karakter null.

Fungsi Character Pointer

Sekarang, mari kita eksplor beberapa fungsi umum yang bekerja dengan character pointer. Saya akan menampilkan ini dalam tabel untuk mudah referensi:

Fungsi Deskripsi Contoh
strlen() Menghitung panjang sebuah string size_t len = strlen(str);
strcpy() Menyalin satu string ke string lain strcpy(dest, src);
strcat() Menggabungkan dua string strcat(str1, str2);
strcmp() Membandingkan dua string int result = strcmp(str1, str2);

Mari lihat ini dalam aksi:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello";
    char str2[] = " World!";
    char str3[20];

    printf("Panjang str1: %lu\n", strlen(str1));

    strcpy(str3, str1);
    printf("str3 setelah strcpy: %s\n", str3);

    strcat(str1, str2);
    printf("str1 setelah strcat: %s\n", str1);

    if(strcmp(str1, "Hello World!") == 0) {
        printf("String adalah sama\n");
    }

    return 0;
}

Kode ini menunjukkan cara menggunakan fungsi string umum ini dengan character pointer.

Dan itu sudah! Kita telah mencakup dasar-dasar character pointer dan fungsi di C. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan konsep ini. Happy coding!

Credits: Image by storyset