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:
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.
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.
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