pertemuan 3 ok

41
Pertemuan 3

Upload: eli-priyatna-spd

Post on 05-Jul-2015

1.411 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Pertemuan 3 ok

Pertemuan 3

Page 2: Pertemuan 3 ok

RECORDMerupakan 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;

Page 3: Pertemuan 3 ok

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)

Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Page 4: Pertemuan 3 ok

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.

Page 5: Pertemuan 3 ok

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 :

Page 6: Pertemuan 3 ok

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 :

Page 7: Pertemuan 3 ok

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;

Page 8: Pertemuan 3 ok

MENGHAPUS POINTERPointer 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 :

Page 9: Pertemuan 3 ok
Page 10: Pertemuan 3 ok

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.

Page 11: Pertemuan 3 ok

Linked List (Senarai Berantai) disebut juga dengan Senarai Satu Arah (One-Way List). Masing-masing komponen dinamakan dengan Simpul (Node).

Setiap simpul dalam suatu Linked List terbagi menjadi dua bagian,yaitu :1. Medan Informasi

Berisi informasi yang akan disimpan dan diolah.2. Medan Penyambung (Link Field)

Berisi alamat berikutnya. Bernilai 0, Jika Link tersebut tidak menunjuk ke Data (Simpul) lainnya. Penunjuk ini disebut Penunjuk Nol.

Page 12: Pertemuan 3 ok

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.

Page 13: Pertemuan 3 ok
Page 14: Pertemuan 3 ok
Page 15: Pertemuan 3 ok
Page 16: Pertemuan 3 ok
Page 17: Pertemuan 3 ok
Page 18: Pertemuan 3 ok

MENAMBAH SIMPUL DI BELAKANG

AWAL = AKHIR = BARU

D

BARU

D

AWAL

A B C

AKHIR

Page 19: Pertemuan 3 ok
Page 20: Pertemuan 3 ok
Page 21: Pertemuan 3 ok

MENAMBAH SIMPUL DI DEPAN

AWAL = BARU

A

BARU

A

AWAL AKHIR

B D C

Page 22: Pertemuan 3 ok
Page 23: Pertemuan 3 ok
Page 24: Pertemuan 3 ok

MENAMBAH SIMPUL DI TENGAH

AWAL

A B D

AKHIR

BARU C

BANTU

E

Page 25: Pertemuan 3 ok
Page 26: Pertemuan 3 ok
Page 27: Pertemuan 3 ok
Page 28: Pertemuan 3 ok

MENGHAPUS SIMPUL PERTAMA

D

AWAL

B C A

AKHIR

HAPUS

Page 29: Pertemuan 3 ok
Page 30: Pertemuan 3 ok

MENGHAPUS SIMPUL TENGAH

D

AWAL

B C A

AKHIR

BANTU

HAPUS

Page 31: Pertemuan 3 ok
Page 32: Pertemuan 3 ok

MENGHAPUS SIMPUL AKHIR

D

AWAL

B C A

AKHIRBANTU

HAPUS

AWAL

B D C A

AKHIRBANTU

HAPUS

Page 33: Pertemuan 3 ok
Page 34: Pertemuan 3 ok

MEMBACA SIMPUL MAJU

D

AWAL

B C A

AKHIR

BANTU

A B C D

Page 35: Pertemuan 3 ok
Page 36: Pertemuan 3 ok

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;

Page 37: Pertemuan 3 ok

MEMBACA SIMPUL MUNDUR

D

AWAL

B C A

AKHIR

BANTU

A B C D

AWAL

BANTU_1

AKHIR

Page 38: Pertemuan 3 ok

Latihan Soal Struktur Data (Pertemuan 3)

1. Perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi, disebut :a. Static variable c. Arrayb. Dinamic variable d. Record

5. Statemen yang digunakan untuk menghapus Pointer adalah :a. Delete c. Disposeb. New d. Create

Page 39: Pertemuan 3 ok

1. Statemen yang digunakan untuk menghapus Pointer adalah :a. Delete c. Disposeb. New d. Create

3. Setiap simpul dalam suatu Linked List terbagi menjadi dua bagian,yaitu :a. Medan informasi dan penyambungb. Medan informasi dan datac. Medan penyambung dan alamatd. Medan penyambung dan node

Page 40: Pertemuan 3 ok

3. Setiap simpul dalam suatu Linked List terbagi menjadi dua bagian,yaitu :a. Medan informasi dan penyambungb. Medan informasi dan datac. Medan penyambung dan alamatd. Medan penyambung dan node

6. Berikut ini yang tidak termasuk dalam operasi pada linked list adalah :a. Membaca linked list c. Menghapus linked listb. Menambah linked list d. Mengubah linked list

Page 41: Pertemuan 3 ok

1. Berikut ini yang tidak termasuk dalam operasi pada linked list adalah :a. Membaca linked list c. Menghapus linked listb. Menambah linked list d. Mengubah linked list

5. Penulisan deklarasi pointer yang benar adalah :a. Type ^Simpul = Data;b. Type Simpul = ^Data;c. Type Simpul = Data^;d. Type Simpul ^ = Data;