Menggunakan Pointer pada Bahasa Pascal

baca 2 menit
Menggunakan Pointer pada Bahasa Pascal

Setelah sebelumnya kita membahas tentang ARRAY dan RECORD pada Pascal, kali ini kita akan membahas tentang pengunaan tipe data POINTER pada Pascal.

Apa itu Pointer?

Pointer merupakan fitur yang kebanyakan ada pada bahasa pemrograman lawas. Pointer berfungsi untuk mendapatkan address variable dalam memory.

Semua variable yang kita buat dalam bahasa Pascal ini pasti akan disimpan dalam RAM pada komputer. Namun penyimpanan ini tidak langsung berupa nama variable, melainkan mengunakan alamat yang terdiri dari bilangan biner.

Sebenarnya dalam RAM sendiri masih ada lokasi memori yaitu stack dan heap. Tetapi mungkin akan kita bahas lain waktu, karena bisa panjang hehe...

Lalu apa kegunaan pointer?

Pointer berguna dalam pembuatan program yang kompleks untuk alokasi memori dinamis dan efisiensi penggunaan memori. Karena kita masih belajar dasar, sekarang kita cukup menggunakan pointer sebagai referensi variable saja.

Mendeklarasikan Pointer pada Pascal

Untuk menggunakan pointer kita harus mendeklarasikannya sebagai tipe data. Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.

Deklarasi pointer dapat dilakukan dengan memberi tanda pangkat (^) didepan tipe variable yang kita deklarasikan.

var
  nama-pointer: ^tipe-data;

Contoh:

pascal
var
  strptr: ^string;  // pointer untuk tipe data string
  intptr: ^integer; // pointer untuk tipe data integer

Mendapatkan Alamat Variable

Karena pointer hanya dapat diisi dengan alamat variable, kita harus mengetahui alamat dari variable yang akan kita masukkan ke pointer.

Untuk mendapatkan alamat dari variable bisa digunakan tanda @ sebelum nama variable.

Yuk langsung kita coba buat program sederhananya.

pascal
program Pointer;
uses crt;
var
  strptr: ^string; // buat pointer dengan tipe string
  kata: string;
begin
  clrscr;
  strptr := @kata; // strptr berisi alamat variable kata
  writeln(kata);
  readln;
end.

Sip, kalau dijalankan memang tidak muncul apa-apa, tetapi sekarang variable strptr sudah berisi alamat dari variable kata.

Selanjutnya kita bisa mengubah variable kata secara tidak langsung menggunakan pointer. Yuk lanjut..

Mengakses Nilai Pointer

Untuk mengubah nilai variable kata melalui pointer kita bisa mengakses nilainya dengan tanda pangkat (^) yang dituliskan setelah nama variable.

pascal
program Pointer;
uses crt;
var
  strptr: ^string; // buat pointer dengan tipe string
  kata: string;
begin
  clrscr;
  strptr := @kata; // strptr berisi alamat variable kata
  strptr^ := 'Belajar pointer di invasikode'; // mengakses nilai pointer
  writeln(kata);
  readln;
end.

Jika kalian jalankan maka kira-kira akan keluar output sebagai berikut:

Belajar pointer di invasikode

Pada program tersebut sama sekali tidak ada pengaksesan variable kata secara langsung. Kita menggunakan pointer sebagai referensi ke variable kata dan mengubahnya secara tidak langsung.

Ini juga bisa dilakukan pada semua tipe data. Termasuk RECORD, SUBRANGE, dan ENUM.

Penutup

Mungkin sekarang penggunaan pointer terlihat kurang peting ya. Tunggu saja nanti saat menggunakan FUNCTION dan PROCEDURE, pointer ini bisa sangat berguna untuk memanipulasi data. Dengan konsep yang sama tentunya.

Sekian untuk tutorial kali ini, semoga bermanfaat

Selanjutnya kita akan membahas tentang konsep pemrograman prosedural pada bahasa Pascal