Sie sind auf Seite 1von 6

ARRAY

Array (larik) adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen yang bertipe
sama. Banyaknya elemen dalam suatu larik ditunjukkan oleh suatu indeks yang harus merupakan
tipe data yang menyatakan keterurutan, misalnya integer atau karakter (karena ia menyatakan
posisi data). Tiap-tiap elemen di larik dapat diakses langsung melalui indeksnya.

Larik dapat berupa larik satu dimensi ataupun lebih dari satu dimensi. Matriks merupakan contoh
larik yang memiliki dimensi lebih dari satu. Struktur penyimpanan matriks di dalam memori
utama yang setiap individu elemennya diakses dengan menggunakan dua buah indeks (yang
biasanya dikonotasikan dengan baris dan kolom). Karena matriks sebenarnya adalah larik,
konsep umum dari larik juga berlaku untuk matriks, yaitu:
Kumpulan elemen yang bertipe sama, dapat dapat berupa tipe dasar (integer, real,
boolean, char, dan string), atau tipe terstruktur seperti record.
Setiap elemen data dapat diakses secara langsung jika indeksnya (baris dan kolom)
diketahui.
Merupakan struktur data yang statik, artinya jumlah elemennya sudah dideklarasikan
terlebih dahulu di dalam bagian DEKLARASI dan tidak bisa diubah selama pelaksanaan
program
Elemen matriks diakses melalui indeks baris dan indeks kolomnya. Jika indeks baris
dinyatakan dengan i dan indeks kolom dinyatakan dengan j, maka notasi algoritmik untuk
mengakses elemen pada baris i dan kolom j adalah nama_matriks[i,j]

array 1 dimensi tersusun dari satu baria dengan syntak umum


Type = array[indexArray] of TipeData;

Array 2 dimensi tersusun dari baris dan kolom dengan syntak umum
Type = array[indexArray1, indexArray2] of TipeData;

Array banyak dimensi adalah array yang dimensinnya tidak dibatasi dengan bentuk
umumnya
Type = array[indexArray1, indexArray2, indexArray3] of TipeData;
Contoh Array 1
uses wincrt;
const N=10;
type int_array = ARRAY [1..N] of integer;
var bil : int_array;
indeks : integer;
BEGIN
writeln('masukkan sepuluh bilangan integer.');
for indeks := 1 to 10 do
begin
readln(bil[indeks]); { loop untuk memasukkan elemen array }
end;
writeln('Isi dari array ini adalah'); { tampilkan setiap elemen }
for indeks := 1 to 10 do
begin
writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
end;
READLN;
END.
POINTER

Pointer atau Penunjuk adalah tipe data yang digunakan untuk menyimpan alamat
memori sebuah variable, BUKAN menyimpan nilai datanya. Pointer bersifat dinamis yaitu
memori yang digunakan untuk variabel yang dideklarasikan akan dialokasikan jika diperlukan
dan dapat dibebaskan kembali bila sudah tidak digunakan.

Struktur data yang menggunakan variabel dinamis disebut dengan struktur data
dinamis. Variabel dinamis tidak dapat dideklarasian secara langsung seperti halnya variabel-
variabel statik. Variabel dinamis hanya ditunjukkan oleh variabel khusus yang berisi alamat
memori yang digunakan oleh variabel tersebut. Variabel khusus ini disebut dengan variabel
pointer. Suatu tipe data pointer dideklarasikan dengan menggunakan simbol ^.

Variabel Dinamis dengan tipe data Pointer yang telah dideklarasikan tidak dapat
langsung diisi dengan data selama belum ada perintah pengalokasian memori untuk variabel
tersebut. Begitu pula saat variabel dinamis sudah tidak digunakan lagi dapat dibebaskan.

Variabel Dinamis tidak dapat langsung dideklarasikan menggunakan tipe data pointer.
Tipe data pointer harus dideklarasikan terlebih dahulu. Tipe data pointer tidak dapat berdiri
sendiri, diperlukan tipe data lain, umumnya yang digunakan adalah record, karena record dapat
menyimpan beberapa elemen/field/variabel lain. Tipe data pointer dideklarasikan dengan
menggunakan simbol ^.

Format Tipe Data Pointer


Deklarasi Tipe data
Type nama_type_data_pointer = ^nama_type_data_record
pointer dengan adanya
nama_type_data_record = record symbol ^
variabel data : tipe data; Deklarasi Tipe data
variabel pointer : nama_type_data_pointer; record dengan 2 lemen
end; varibel yaitu variabel
data dan pointer

contoh pendeklarasian tipe data pointer :


Type simpul = ^data;
data = record
Info : string; {variabel data}
Berikut : simpul; {variabel pointer}
End;
Variabel data dan variabel pointer bisa lebih dari 1 (satu). Jika varibel pointer hanya 1 maka
disebut dengan pointer tunggal, sedangkan jika variabel data lebih dari 1 misal 2 disebut dengan
pointer ganda. Contoh :

Type simpul = ^data;


data = record
info : string; {variabel data}
kanan, kiri : simpul;
{variabel pointer, jumlahnya 2 end; (pointer ganda) }

Variabel Dinamis
Tipe data pointer yang sudah dideklarasikan tidak dapat digunakann untuk menyimpan data,
untuk itu perlu dideklarasikan variabel yang menggunakan tipe data pointer yaitu variabel
dinamis.

Type simpul = ^data;


data = record
Info : string;
Berikut : simpul;
End;

Var baru, awal : simpul {deklarasi variabel dengan tipe data simpul
(pointer)}

Operasi pada tipe data pointer :


Variabel dinamis yang sudah dideklarasikan belum dapat menyimpan data karena belum
dialokasikan memori. Untuk mengalokasikan memori digunakan beberapa perintah, yaitu :

1. New (variabel pointer)


Perintah untuk mengalokasikan/memesan ruang memori untuk 1 record atau masing-masing
variabel di dalam variabel dinamis

2. Dispose(variabel pointer)
Perintah untuk melepaskan/mengembalikan ruang memori yang sudah dialokasikan untuk
variabel dinamis kepada memori utama

Contoh langkah per langkah struktur data dinamis


fo rm a t ta b e l : "d a ta "
s im p u l
In fo : b e r ik u t :
s tr in g s im p u l

Type simpul = ^data;


data = record
Info : string;
T a b e l/v a r ia b e l " b a r u "
In fo : b e r ik u t :
s tr in g s im p u l
T a b e l/ v a r ia b e l " b a r u "

A lo k a s i m e m o r i k o s o n g u n tu k m a s in g - In fo : b e r ik u t :
m a s in g e le m e n d i d a la m p o in te r s t r in g s im p u l

Berikut : simpul;
End;

Var baru : simpul;

Begin
New(baru);
Write(masukkan data : );
Readln(baru^.info);
Baru^.berikut := nil; {sementara diisi dengan nil (kosong)}
End.

Buatlah beberapa contoh program di bawah :

Contoh 1 :

Program contoh_pointer1;
Uses crt;
Type simpul = ^data;
data = record
Info : string;
Berikut : simpul;
End;

Var t1,t2,t3,t4 : simpul;

Begin
clrscr;
writeln(Input Data);
new(t1);
write(masukkan t1 : );
readln(t1^.info);
t1^.berikut := nil;

writeln;
writeln(Cetak Hasil);
writeln(Isi memori t1 : ,t1^.info);
readln;
End.

Das könnte Ihnen auch gefallen