Gaya Hidup

Pointer dan Array apakah mereka sama?

Pengantar Penunjuk dan Larik

Pointer merupakan tipe data yang menyimpan referensi ke lokasi memori (yaitu variabel pointer menyimpan alamat lokasi memori tempat beberapa data disimpan).

Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen.

Sebagian besar bahasa pemrograman menyediakan metode untuk mendeklarasikan array dengan mudah dan mengakses elemen dalam array.

Apa itu Penunjuk?

Pointer adalah tipe data yang menyimpan alamat lokasi memori tempat beberapa data disimpan.

Dengan kata lain, pointer memegang referensi ke lokasi memori.

Mengakses data yang disimpan di lokasi memori yang direferensikan oleh pointer disebut dereferencing.

Saat melakukan operasi berulang seperti melintasi pohon/string, pencarian tabel, dll., menggunakan penunjuk akan meningkatkan kinerja.

Ini karena dereferensi dan menyalin pointer lebih murah daripada benar-benar menyalin dan mengakses data yang ditunjuk oleh pointer.

Pointer null adalah pointer yang tidak menunjuk ke apapun.

Di Jawa, mengakses penunjuk nol akan menghasilkan pengecualian yang disebut NullPointerException.

Apa itu Array?

Ditampilkan pada gambar 1, adalah potongan kode yang biasanya digunakan untuk mendeklarasikan dan memberikan nilai ke array.

Gambar 2 menggambarkan bagaimana sebuah array akan terlihat di dalam memori.

int nilai[5];

nilai[0]=100;

nilai[1]=101;

nilai[2]=102;

nilai[3]=103;

nilai[4]=104;

Gambar 1: Kode untuk mendeklarasikan dan menugaskan nilai ke array

100

101

102

103

104

Indeks: 0

1

2

3

4

Gambar 2: Array disimpan dalam memori

Kode di atas mendefinisikan array yang dapat menyimpan 5 bilangan bulat dan diakses menggunakan indeks 0 hingga 4.

Salah satu properti penting dari array adalah , seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruangnya sendiri di dalam array.

Setelah array didefinisikan, ukurannya tetap.

Jadi jika Anda tidak yakin tentang ukuran array pada waktu kompilasi, Anda harus menentukan array yang cukup besar agar aman.

Tapi, seringkali, kita sebenarnya akan menggunakan jumlah elemen yang lebih sedikit dari yang telah kita alokasikan.

Jadi sejumlah besar memori sebenarnya terbuang sia-sia.

Di sisi lain jika “array yang cukup besar” sebenarnya tidak cukup besar, program akan macet.

Apa perbedaan antara Pointer dan Array?

Pointer adalah tipe data yang menyimpan alamat lokasi memori tempat beberapa data disimpan, sedangkan Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen.

Dalam bahasa pemrograman C, pengindeksan array dilakukan dengan menggunakan aritmatika penunjuk (yaitu elemen ke-i dari array x akan setara dengan *(x+i)).

Oleh karena itu di C, sekumpulan pointer yang menunjuk ke sekumpulan lokasi memori yang berurutan, dapat dianggap sebagai sebuah array.

Selanjutnya, ada perbedaan dalam cara operator sizeof beroperasi pada pointer dan array.

Saat diterapkan ke array, operator sizeof akan mengembalikan seluruh ukuran array, sedangkan saat diterapkan ke pointer, itu hanya akan mengembalikan ukuran pointer.