You are on page 1of 6

Universitas Langlangbuana Teknik Informatika

RECORD
A. Record dalam Bahasa Pascal Record merupakan kumpulan elemen data yang dikumpulkan menjadi satu kesatuan dengan tipe data sama ataupun berbeda. Meskipun field tersebut berada dalam satu kesatuan, namun masih dapat di akses secara individual. Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Cara pendeklarasian dari record adalah sebagai berikut: Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai) Mendefinisikan variabel untuk dilakukan operasi.

B. Cara Mendeklarasikan Record Bentuk umum deklarasi suatu variabel berjenis record adalah sbb : TYPE identifier = RECORD Nama_field_1 : jenis; Nama_field_2 : jenis; .. .. nama_field_n : jenis; END; Contoh : 1. VAR nilai : RECORD Nilai_1 : integer; Nilai_2 : integer; END; 2. TYPE date = RECORD Tanggal : 1..31; Bulan : 112; Tahun : 1900..2000; END; VAR event1,event2 : ARRAY [1..10] OF date; 3. TYPE account = RECORD cust_no : integer; cust_type : char; cust_balance : real; END; VAR customer : account; 1|Page

Universitas Langlangbuana Teknik Informatika

STRUCT
Struct adalah tipe data yang dapat melakukan penyimpanan beberapa data yang saling terkait (seperti Nama, NRP, Alamat), sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan menjadi suatu data tunggal. Pembuatan tipe data baru dalam C dilakukan dengan menggunakan kata kunci struct, yang merupakan kependekan dari structure (struktur). Fungsi dari struct adalah membuat tipe variabel ke dalam sebuah rekor tunggal, mirip dengan struktur union, hanya beda alokasi memori. Padanan dlm Pascal : record. Syntax : Struct [<struct type name>]{ [<type><variabel-name[,variabel-name, ...]>]; . . . } [<structure variabels>]; Contoh : typedef struct { int NIP ; char nama[30] } pegawai_t; Perbedaan dengan Tipe data lain : Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.

2|Page

Universitas Langlangbuana Teknik Informatika

POINTER
A. Pointer dalam Pascal Pointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori. Dalam penulisan pointer biasa digambar dengan panah, sedangkan bagian memori yang ditunjuk digambar dengan kotak, dan isinya ditulis di dalam kotak. Ada dua macam pointer: Typed (tertentu) : merupakan pointer yang menunjuk pada tipe data tertentu pada variable. Generic (umum) : merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.

Bentuk umum dari deklarasi tipe pointer: Untuk pointer bertipe: <nama_var> : ^<tipe_data>; Untuk pointer tidak bertipe: <nama_var> : pointer; Suatu pointer dapat menunjuk ke data bertipe elementer, terstruktur, pointer yang lain, atau tidak bertipe. Jika suatu pointer tidak menunjuk ke mana-mana, pointer itu dinamakan dangling, sedangkan bagian memori yang tidak dapat diakses karena tidak ada pointer yang menunjuk dinamakan garbage (sampah). Dalam Pascal, pointer dapat diisi dengan nilai yang berasal dari:\ 1. NIL 2. Fungsi Ptr 3. Operator @ 4. Prosedur New dan GetMem 5. Pointer yang lain Reserved word NIL NIL merupakan reserved word dalam Pascal, di mana pointer yang bernilai NIL dianggap tidak menunjuk alamat memori manapun.NIL biasa digambarkan dengan lambang ground.

3|Page

Universitas Langlangbuana Teknik Informatika Fungsi Ptr Sintaks: Function Ptr(Seg, Ofs : word) : pointer; dengan Seg Ofs : segmen memori. : offset memori.

Fungsi Ptr mengembalikan pointer dari segmen dan offset yang dimasukkan. Operator @ Sintaks: <nama_var>:=@<variabel_yang_alamatnya_diambil>; Operator ini digunakan untuk mengambil alamat variabel yang akan ditunjuk. Prosedur New dan GetMem Sintaks: New(var P : pointer); GetMem(var P : pointer, size : word); Dengan P Size : pointer yang akan diisi. : ukuran yang dipesan.

Prosedur New digunakan untuk memesan memori untuk pointer bertipe, sedangkan prosedur GetMem untuk pointer tidak bertipe. Kedua prosedur ini akan membentuk suatu variabel dinamik yang diletakkan dalam Heap. Heap adalah memori-memori di komputer yang belum dialokasikan, yaitu memori yang tidak digunakan oleh DOS, oleh program-program resident, oleh program Turbo Pascal, internal stack yang digunakan oleh Turbo Pascal dan variabelvariabel di data segmen. Pointer yang belum digunakan sebaiknya diisi dengan NIL, dan untuk pointer yang telah menunjuk sebuah alamat yang sudah dipesan memorinya, isinya dapat dimanipulasi melalui pointer.

Linked List Linked List (daftar berkait) adalah suatu node (simpul) yang menunjuk ke node (simpul) berikutnya dalam suatu urutan. Suatu node minimal harus mempunyai 2 komponen, yaitu: 1. Satu atau lebih field yang berisi data di daftar berkait. 2. Satu atau lebih field berupa pointer yang menunjuk ke node lainnya. Field yang berupa pointer ini disebut dengan link.

Untuk mendefinisikan linked list biasa NIL digunakan record, dengan sintaks: Type <nama_pointer> = ^<nama_rec>; 4|Page

Universitas Langlangbuana Teknik Informatika


<nama_rec> = record data1 : <tipe_data1>; data2 : <tipe_data2>; . end; . . . next : <nama_pointer>;

Masing-masing kotak pada linked list disebut node (simpul), node paling depan disebut head, node belakang disebut tail. Untuk mengisi linked list kosong maupun mengakhiri linked list biasanya digunakan nilai NIL. Operasi-operasi yang terdapat pada linked list antara lain: 1. Inisialisasi; yaitu mengisi variabel list dengan NIL. 2. Menambah node. 3. Menyisipkan node. 4. Menghapus node yang berisi data. 5. Membaca data dari node. 6. Menghapus seluruh isi list.

Contoh deklarasi pointer: var p : ^integer; Contoh di atas merupakan deklarasi variabel p sebagai pointer dari integer. Dengan menambahkan tanda caret (^) di depan nama tipe data variabel yang dideklarasikan. contoh : program contoh_pointer1; uses wincrt; var p : ^integer; m, n : integer; begin m:=10; n:=15; p:=@m; { p sekarang menunjuk ke m } p^:=12; { hal ini sama dengan m:=12; } p:=@n; { p sekarang menunjuk ke n } p^=m; { { hal ini sama dengan n:=m; } writeln(m = ,m,, n = ,n); { m = 12, n = 12 } end.

5|Page

Universitas Langlangbuana Teknik Informatika

B. Pointer dalam C Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double, atau single, dan bahkan tipe-tipe data lain yang didukung oleh bahasa C. Variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat lebih fleksibel. Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL, dan disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.

Deklarasi Pointer Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk Umum : tipe_data *nama_pointer; Contoh : int *nilai; char *huruf; Pendeklarasian variabel pointer menggunakan tanda * sebelum nama variabelnya, sedangkan untuk menampilkan nilai yang ditunjuk oleh suatu variabel pointer, juga digunakan operator * (tanda asterisk). Jika diinginkan untuk menampilkan alamat tempat penyimpanan nilai yang ditunjuk oleh suatu variabel pointer, digunakan operator & (tanda ampersand). Operasi pada Pointer * Operasi Penugasan Suatu variable pointer seperti halnya variable yang lain, juga bisa mengalami operasi penugasan. Nilai dari suatu variable pointer dapat disalin ke variable pointer yang lain Operator (&) dalam kaitannya dengan pointer adalah operator yang mengembalikan alamat memori dari operandnya.

6|Page

You might also like