Seri artikel Struktur Data Series
Postingan lainnya
Struktur Data Series - Pointer
Setelah mempelajari Array kita akan membahas Pointer, Pointer merupakan tipe data yang berisi alamat memori dari sebuah variabel, untuk lebih mudah me...
Setelah mempelajari Array kita akan membahas Pointer, Pointer merupakan tipe data yang berisi alamat memori dari sebuah variabel, untuk lebih mudah memahami ini, Kita akan coba membahas terlebih dahulu bagaimana bahasa pemrograman lain menyimpan nilai dari sebuah variabel. Ketika kita akan mendeklarasikan sebuah variabel (misalkan variabel angka’), bahasa pemrograman akan menyiapkan sebuah tempat di memory komputer. Tempat ini memiliki alamat, yang berfungsi untuk menandai lokasi variabel tersebut.
Contoh Ilustrasi tipe data pointer, bayangkan memory komputer sebagai sebuah lemari besar. Variabel disimpan di dalam setiap laci lemari. Setiap laci tentunya memiliki nomor agar mudah diakses. Nomor laci inilah yang akan disimpan sebagai pointer.
Cara Penggunaan Pointer
Untuk dapat membuat pointer, kita harus menyesuaikan dengan variabel yang ingin kita akses Maksudnya seperti ini, Jika kita mendeklarasikan sebuah variabel ‘angka’ :
Disini variabel ‘angka’ disiapkan untuk menampung tipe data integer.Disini variabel ‘angka’
Angka : integer
disiapkan untuk menampung tipe data integer.Untuk bisa menampung alamat memori dari variabel ‘angka’ ini, kita harus membuat pointer yang juga di-set untuk menampung tipe data pointer integer. Berikut cara penulisannya
pointer_angka : ^integer
Perhatikan tanda ‘topi’ atau ‘caret’. Inilah cara pendeklarasian tipe data pointer di dalam bahasa pemrograman. ^integer berarti kita mempersiapkan sebuah pointer untuk variabel integer.
Jika kita butuh pointer ke tipe data lain, penulisannya juga akan berbeda. Misalnya, untuk membuat pointer ke alamat variabel yang bertipe data char, bisa ditulis sebagai berikut:
pointer_kata : ^char
Di dalam Bahasa Pemrograman, biasanya kita membutuhkan karakter untuk memanggil alamat memori sebuah variabel, Pada bahasa Pascal menggunakan karakter ‘@’, atau pada bahasa C/C++ menggunakan ‘&’.
angka : integer
poiter_angka : ^integer
pointer_angka = @angka (pada Pascal)
pointer_angka = &angka (pada C/C++)
Baris terakhir: pointer_angka:= @angka adalah kode yang ‘mengaitkan’ kedua variabel ini. Sekarang, variabel pointer_angka akan berisi alamat memori dari variabel ‘angka’. Silahkan anda pahami sebentar maksud kalimat ini.
Apabila ditampilkan, variabel pointer_angka akan berisi: 40960. Inilah alamat memory yang dipergunakan pascal untuk menyimpan variabel ‘angka’. Alamat ini sepenuhnya ditentukan oleh pascal, terserah akan menyimpan di alamat memori mana.
Tipe pointer dideklarasikan pada bagian deklarasi type
Bentuk umum deklarasi pointer adalah :
Type
Pengenal = ^simpul;
Simpul = type;
(pengenal : nama pengenal yang menyatakan data bertipe pointer; simpul : nama simpul; tipe : tipe data dari simpul)
Deklarasi Pointer
Tanda ^ di depan nama impul harus ditulis seperti apa adanya menunjukkan bahwa pengenal adalah suatu tipe data pointer. Tipe data simpul yang dinyatakan dalam tipe bia berupa sembarang tipe data, misalnya char, integr, atau real.
Contoh :
Type Bulat : ^integer
Dalam contoh diatas Bulat menunjukkan tipe data baru, yaitu bertipe pointer. Dalam hal ini pointer tersebut akan menunjukkan ke suatu data yang bertipe integer. Misalnya,
X, K : Bulat
Implementasi Pointer Pada Record
Pada program-program terapan, biasanya terdapat sekumpulan data yang dikumpulkan dalam sebuah rekaman (record), maka akan banyak dijumpai tipe data pointer yang elemennya (data yang ditunjukkan) adalah sebuah rekaman.
Contoh :
type
text=string[30];
point=^data;
data=record
nama_peg : teks;
alamat : teks;
pekerjaan : teks;
berikut : point
End
Var
P1, P2 : point;
A,B,C : Teks
Simpul yang berisi medan bertipe pointer dapat digambarkan sbb:
(P1 pada bagian atas, dan P2 pada bagian bawah.)
Pada contoh di slide sebelumnya, P1 dan P2 adalah pointer yang akan menempati lokasi tertentu dalam pengingat. Kedua perubah ini masing-masing belum menunjuk ke suatu simpul nilai, dinyatakan sebagai nil. Untuk mengalokasikan simpul dalam pengingat, statemen yang digunakan adalah statemen new.
Bentuk Umum :
new(P1);
new(P2);
Operasi Pada Pointer
Secara umum ada dua operasi pada pointer dasar :
- Mengkopi pointer, sehingga sebuah simpul akan ditunjuk oleh lebih dari sebuah pointer.
- Mengkopi isi simpul, sehingga dua atau lebih simpul yang ditunjuk oleh pointer yang berbeda mempunyai isi yang sama.
Syarat-syarat operasi pointer adalah kedua pointer yang dioperasikan harus mempunai deklarasi yang sama.
Contoh :
Type Mahasiswa = ^Data;
^Data = record
nama : string;
alamat : string;
Brikut : Mahasiswa
End;
Var T1, T2 : Mahasiswa;
Pada deklarasi di atas, pointer T1 dan T2 mempunyai deklarasi simpul yang sama, sehingga memenuhi syarat untuk operasi pointer. Sekarang kita berikan statement
New (T1);
New (T2);
Artinya kita mempunyai dua simpul, yaitu :
Itu dia materi tentang Pointer, Selanjutnya kita akan belajar List.
Bagian dari artikel seri
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban