pertemuan 3 ok
TRANSCRIPT
![Page 1: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/1.jpg)
Pertemuan 3
![Page 2: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/9.jpg)
![Page 10: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/13.jpg)
![Page 14: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/14.jpg)
![Page 15: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/15.jpg)
![Page 16: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/16.jpg)
![Page 17: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/17.jpg)
![Page 18: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/18.jpg)
MENAMBAH SIMPUL DI BELAKANG
AWAL = AKHIR = BARU
D
BARU
D
AWAL
A B C
AKHIR
![Page 19: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/19.jpg)
![Page 20: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/20.jpg)
![Page 21: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/21.jpg)
MENAMBAH SIMPUL DI DEPAN
AWAL = BARU
A
BARU
A
AWAL AKHIR
B D C
![Page 22: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/22.jpg)
![Page 23: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/23.jpg)
![Page 24: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/24.jpg)
MENAMBAH SIMPUL DI TENGAH
AWAL
A B D
AKHIR
BARU C
BANTU
E
![Page 25: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/25.jpg)
![Page 26: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/26.jpg)
![Page 27: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/27.jpg)
![Page 28: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/28.jpg)
MENGHAPUS SIMPUL PERTAMA
D
AWAL
B C A
AKHIR
HAPUS
![Page 29: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/29.jpg)
![Page 30: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/30.jpg)
MENGHAPUS SIMPUL TENGAH
D
AWAL
B C A
AKHIR
BANTU
HAPUS
![Page 31: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/31.jpg)
![Page 32: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/32.jpg)
MENGHAPUS SIMPUL AKHIR
D
AWAL
B C A
AKHIRBANTU
HAPUS
AWAL
B D C A
AKHIRBANTU
HAPUS
![Page 33: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/33.jpg)
![Page 34: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/34.jpg)
MEMBACA SIMPUL MAJU
D
AWAL
B C A
AKHIR
BANTU
A B C D
![Page 35: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/35.jpg)
![Page 36: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/37.jpg)
MEMBACA SIMPUL MUNDUR
D
AWAL
B C A
AKHIR
BANTU
A B C D
AWAL
BANTU_1
AKHIR
![Page 38: Pertemuan 3 ok](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042514/5598771c1a28ab4e058b45fe/html5/thumbnails/41.jpg)
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;