2. RECORD M erupakan koleksi satuan data yang heterogen. Satuan data tersebut sering disebut sebagai field dari record. Contoh penggunaan record dalam program PASCAL : Type Siswa = record Nama : string[25]; Kelas : 1..6; Nilai : real; end;
3. KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut dengan perubah dinamis (Dinamic variable) P erubah D inamis (Dinamic variable) S uatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.
4. Perbedaan Peubah Statis & Dinamis Pada perubah statis , isi Memory pada lokasi tertentu (nilai perubah) adalah data sesungguhnya yang akan diolah. Pada perubah dinamis , nilai perubah adalah alamat lokasi lain yang menyimpan data sesungguhnya. Dengan demikian data yang sesungguhnya dapat dimasukkan secara langsung. Dalam hal cara pemasukkan data dapat diilustrasikan seperti dibawah ini.
5. Tanda ^ di depan nama Simpul menunjukkan bahwa pengenal adalah suatu Type Data Pointer. DEKLARASI POINTER DAN ALOKASI TEMPAT Dalam bahasa pemrograman Pascal , Type Data Pointer dideklarasikan pada bagian Deklarasi Type. Bentuk Umum Deklarasi Pointer :
6. Type Str30 = String[30]; Point = ^Data; Data = Record; Nama_peg : Str30; Alamat : Str30; Pekerjaan : Str30; End; Type Data Simpul yang dinyatakan dalam Tipe dapat berupa sembarang Type Data, misalnya Char, Integer dan Real. Contoh :
7. Operasi Pada Pointer Pertama kali yang harus dilakukan adalah mendeklarasikan Type Pointernya, yaitu : Type Simpul = ^Data; Data = Record; Nama : String; Alamat : String; Berikut : Simpul; End; Var T1,T2 : Simpul;
8. MENGHAPUS POINTER Pointer yang telah dialokasikan (dibentuk) dapat di dealokasikan (dihapus) kembali pada saat program dieksekusi. Setelah suatu Pointer dihapus, maka lokasi yang semula ditempati oleh simpul yang ditunjuk oleh Pointer tersebut akan bebas, sehingga dapat digunakan oleh perubah lain. Statemen untuk menghapus Pointer adalah : Dispose (perubah ) Dengan perubah adalah sembarang perubah yang bertype Pointer. Contohnya adalah sebagai berikut :
9.
10. Pada suatu saat, simpul yang ditunjuk oleh Pointer Murid1 tidak digunakan lagi, maka dapat dihapus dengan menggunakan statemen : Dispose (Murid1); LINKED LIST (LINKED LIST) Salah satu Struktur Data Dinamis yang paling sederhana adalah Linked List atau Struktur Berkait atau Senarai Berantai, yaitu suatu kumpulan komponen yang disusun secara berurutan dengan bantuan Pointer .
11. Linked List (Senarai B e rantai) disebut juga dengan Senarai Satu Arah (One-Way List). Masing-masing komponen dinamakan dengan Simpul (Node). S etiap simpul dalam suatu Linked List terbagi menjadi dua bagian ,yaitu : 1. Medan Informasi B erisi informasi yang akan disimpan dan diolah. 2. Medan Penyambung (Link Field) B erisi alamat berikutnya. Bernilai 0, Jika Link tersebut tidak menunjuk ke Data (Simpul) lainnya. Penunjuk ini disebut Penunjuk Nol.
12. Selain jenis struktur terkait yang telah disebutkan diatas ada beberapa jenis Struktur Berkait yang lain seperti Linked-Stack, Linked-Queue, Doubly Linked-List, Linked Centralize-List dan sebagainya.
13.
14.
15.
16.
17.
18. MENAMBAH SIMPUL DI BELAKANG AWAL = AKHIR = BARU BARU AKHIR D D AWAL A B C
36. Procedure Balik_Pointer(Var Awal,Akhir : Simpul); Var Bantu,Bantu : Simpul; Begin Bantu := Awal; Awal := Akhir; {* Proses membalik Pointer *} Repeat Bantu_1:= Bantu; {* Mencari simpul sebelum simpul yang di tunjuk oleh Pointer Akhir *} While Bantu_1^.Berikut<> Akhir Do Bantu_1:= Bantu_1^.Berikut; Akhir ^.Berikut := Bantu_1; Akhir := Bantu_1; Until Akhir = Bantu; Akhir^.Berikut := Nil; End;