Tutorial Belajar Pascal Part 27: Pengertian dan Cara Penggunaan Tipe Data Pointer Pascal

Posted on

Kali ini saya akan membahas diantara tipe data khusus yang (bagi kebanyakan programmer pemula) lumayan rumit, yakni tipe data pointer.

Saya akan membahas pengertian dan cara penggunaan tipe data pointer di dalam bahasa pemrograman pascal.


Pengertian Tipe Data Pointer Pascal

Tipe data pointer ialah tipe data yang berisi domisili memory dari sebuah variabel. Untuk dapat memahami ini, saya akan membahas terlebih dahulu bagaimana pascal (dan bahasa pemrograman lain) menyimpan nilai dari sebuah variabel.

Ketika kita mendeklarasikan sebuah variabel (misalkan variabel ‘angka’), pascal akan menyiapkan sebuah tempat di memory komputer. Tempat ini mempunyai domisili, yang berfungsi untuk menandai lokasi variabel tersebut.

Untuk dapat memahami ini, bayangkan memory komputer selaku sebuah lemari besar. Variabel disimpan di di setiap laci lemari. Setiap laci pastinya mempunyai nomor agar gampang diakses. Nomor laci inilah yang akan disimpan selaku pointer.

Selaku contoh, variabel ‘angka’ dapat ditempatkan di domisili 10023 di memory komputer. Variabel lain, misalnya ‘huruf’, akan disimpan di domisili 19920, variabel ‘i’ dapat disimpan di domisili 10033, dst. Domisili memory inilah yang disimpan ke di tipe data pointer.

Pembahasan mengenai pointer dan domisili memory ini betul-betul luas sekiranya dibahas. Di jurusan ilmu komputer / teknik informatika, terdapat mata kuliah ‘struktur data’ yang secara khusus akan membahas cara penyimpanan data di di memory komputer, yang semuanya akan menggunakan pointer.


Cara Pemakaian Tipe Data Pointer Pascal

Kini, kita akan masuk ke praktek cara pemakaian tipe data pointer di di pascal.

Untuk dapat membangun pointer, di di pascal kita mesti menyesuaikannya dengan variabel yang ingin diakses. Maksudnya seperti ini, sekiranya saya mendeklarasikan sebuah variabel ‘angka’:

Disini variabel ‘angka’ disediakan untuk menampung tipe data integer.

Untuk dapat menampung domisili memory dari variabel ‘angka’ ini, saya mesti membangun pointer yang pun di-set untuk menampung tipe data pointer integer. Berikut cara penulisannya:

Perhatikan tanda ‘topi’ atau ‘caret’. Inilah cara pendeklarasian tipe data pointer di di pascal. ^integer berarti saya mempersiapkan sebuah pointer untuk variabel integer.

Apabila kita butuh pointer ke tipe data lain, penulisannya pun akan berbeda. Misalnya, untuk membangun pointer ke domisili variabel yang bertipe data char, dapat ditulis selaku berikut:

Baiklah, setelah deklarasi tipe data pointer selesai, lalu bagaimana cara penggunaannya?

Di di pascal, kita butuh karakter ‘@’ yang berfungsi untuk menampilkan domisili memory sebuah variabel.

Perhatikan potongan kode program pascal berikut ini:

Baris terakhir: pointer_angka:= @angka ialah kode yang ‘mengaitkan’ kedua variabel ini. Kini, variabel pointer_angka akan berisi domisili memory dari variabelangka’. Silahkan kamu pahami sebentar maksud kalimat ini.

Apabila di tampilkan, variabel pointer_angka akan berisi: 40960. Inilah domisili memory yang dipergunakan pascal untuk menyimpan variabel ‘angka’. Domisili ini sepenuhnya ditentukan oleh pascal, terserah akan menyimpan di domisili memory mana.

Baiklah, sekiranya kini variabel pointer_angka telah berisi ‘40960’, lalu bagaimana cara menampilkan isi dari domisili memory ini?

Apabila saya menggunakan command:

Yang akan ditampilkan ialah domisili memory, bukan isi dari domisili memory tersebut. Untuk hal ini kita kembali mesti menggunakan karakter topi ‘^’ tetapi letaknya di ahir variabel, seperti berikut:

Kali ini, command diatas akan menampilkan isi dari domisili memory yang terdapat di domisili ‘40960’.

Huff… kamu masih bersama saya? Sebelum terlanjur ngantuk, mari kita seketika masuk ke contoh kode program pascal:

Setelah penjelasan panjang sebelumnya, dapatkah kamu memahami maksud kode program ini?

Di kode program tersebut, saya membangun 2 buah variabel: angka dan pointer_angka. Variabel pertama-tama bertipe integer, sedangkan variabel kedua bertipe pointer integer. Berikutnya, saya memberikan nilai 99 kedalam variabel angka.

Dapatkah kamu menebak apa guna dari kode program berikut?

Yup, kode diatas akan membangun variabel pointer_angka berisi domisili memory dari variabel angka.

Apabila saya menulis kode:

Hasilnya ialah 99. Sekali lagi, dapatkah kamu memahami dari mana angka 99 ini berasal?

Command diatas berarti saya memerintahkan pascal untuk menampilkan isi dari variabel yang berada di domisili memory pointer_angka (perhatikan penambahan karakter ‘topi’).

Hingga disini, kedua variabel telah saling terhubung. Untuk memastikannya, saya mengubah nilai variabel angka menjadi 74. Dan, seperti yang dapat ditebak, hasil dari command writeln(pointer_angka^), pun akan ikut berubah.

Apabila di contoh diatas masih membangun kamu bingung, mari kita masuk ke contoh kedua:

Contoh diatas mirip dengan contoh sebelumnya, tapi kali ini saya menggunakan tipe data string. Perhatikan bahwa ketika saya mengubah isi dari variabel ‘nama’, nilai dari variabel pointer pun akan mengikuti. Dengan kata lain, variabel nama dan variabel pointer merujuk kepada nilai yang sama di domisili memory komputer.


Cara Menampilkan Domisili Memory dari Pointer

Untuk menampilkan domisili memory yang tersimpan di di pointer, kita mesti menggunakan command khusus. Apabila kamu seketika menggunakan command:

Pascal akan mengeluarkan error.

Untuk dapat menampilkan domisili memory ini, kita mesti mengubahnya ke di tipe data word (termasuk kedalam kelompok tipe data integer), dan menggunakan guna addr().

Berikut contohnya:

Di program diatas, saya menyiapkan sebuah variabel i dengan tipe data word. Untuk menampilkan domisili memory dari tipe data pointer, saya mesti menggunakan command:

Dan untuk menampilkannya pun diakses dengan tanda ‘i^’.


Tipe data pointer yang dibahas disini memang lumayan rumit, terutama untuk pemula. Namun saya betul-betul sarankan agar kamu dapat memahami konsep pointer ini. Karena di berjenis-jenis bahasa pemrograman lain, konsep pointer pun sering dibahas.


Sumber https://www.duniailkom.com/