Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

dokumen-dokumen yang mirip
POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer;

POINTER. Altien Jonathan Rindengan, S.Si, M.Kom

Lab. Teknik Informatika Struktur Data 1

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

BAB IX LINKED LIST (SENARAI BERANTAI)

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

BAB IX LINKED LIST (SENARAI BERANTAI)

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

STRUKTUR DATA. Literatur

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

KERUGIAN DAN KEUNTUNGAN LINKED LIST

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

QUEUE (ANTRIAN) Struktur Data - Queue

STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom.

BAB III QUEUE (ANTRIAN)

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

MODUL PRAKTIKUM STRUKTUR DATA

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

Single Linked List (1)

RENCANA PEMBELAJARAN

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

MODUL 6 SINGLE & DOUBLE LINKED LIST

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

LOGO STRUKTUR DATA QUEUE

BAB IV MATRIKS (ARRAY MULTI DIMENSI)

Variasi List Linier. Nisa ul Hafidhoh, MT

SINGLE LINKED LIST (NON CIRCULAR)

STRUKTUR DATA Pertemuan 1 s.d 8

(3) BAHAN KAJIAN (materi ajar)

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

4. STACK / TUMPUKAN TEORI PENUNJANG

KONSEP POINTER DAN LINKED LIST

BAB II STACK Atau TUMPUKAN

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

Algoritma dan Struktur Data STACK

ALGORITMA & PEMROGRAMAN

LAPORAN PRAKTIKUM IX. Oleh:

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

BAB II Senarai Berantai (Linked List)

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

Pendahuluan Struktur Data. Nisa ul Hafidhoh

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

Algoritma Dan Struktur Data II

Algoritma dan Struktur Data. Linked List

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Praktikum Stuktur Data [MODUL]

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Algoritma dan Struktur Data

STRUKTUR DATA Pertemuan 1 s.d 8

Pointer. Pengertian. Struktur Data Pascal

ALGORITMA DAN STRUKTUR DATA

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack.

Struktur Data. Pertemuan 2

Struktur Data Array. Rijal Fadilah S.Si

Linked List. Bandung 2013

A. TUJUAN PEMBELAJARAN

BAB II STACK (TUMPUKAN)

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

KONSEP POINTER DAN LINKED LIST

Algoritma dan Struktur Data. Ramos Somya

Algoritma Pemrograman & Struktur Data

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

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

Struktur Data. Queue (Antrian)

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

STRUKTUR BAHASA PEMROGRAMAN

6. TREE / BINARY TREE

BAB IV Antrian(Queue)

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Struktur & Organisasi Data 2 LINKED LIST. LINKED LIST ATAU ONE-WAY LIST Adalah koleksi linier dari elemen data yang disebut Simpul atau Node.

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

SATUAN ACARA PENGAJARAN

Pertemuan 7. REVIEW dan QUIS

Struktur Data II. Single Linked List - Non circular

A. TUJUAN PEMBELAJARAN

LIST BERKAIT(LINKED LIST)

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

S T A C K ( T U M P U K A N )

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

MODUL PRAKTIKUM STRUKTUR DATA

Transkripsi:

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM 1. Mengerti dalam penggunaan pointer. 2. Dapat membuat larik dinamik dan daftar berkait TEORI PENUNJANG Pointer Tipe pointer adalah data yang berisi suatu alamat yang menunjuk ke lokasi tertentu. Bila pointer berisi alamat dirinya sendiri maka pointer tidak menunjuk ke manapun disebut nil. 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

Bab 4 Pointer dan Struktur Data Dinamik 17 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. Fungsi Ptr Sintaks: Function Ptr(Seg, Ofs : word) : pointer; dengan Seg : segmen memori. Ofs : 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 : pointer yang akan diisi. Size : 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.

Bab 4 Pointer dan Struktur Data Dinamik 18 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. Contoh: Type PenunjukKaryawan = ^CatatanKaryawan Catatankaryawan=Record Kode : string[5]; Nama : string[25]; Gaji : Real; End; Var Datakaryawan : Penunjukkaryawan; Pada deklarasi ini, tipe data PenunjukKaryawan adalah tipe data pointer yang menunjuk ke suatu record CatatanKaryawan dan deklarasi dari record ini dapat diletakkan dibawahnya. Variabel dinamik dapat dihapus dari heap menggunakan prosedur standar Dispose dan prosedur standar Mark dan Release. Prosedur standar Mark hanya akan memberi tanda saja dan yang digunakan untuk menghapusnya adalah prosedur standar Release. Larik Dinamik Larik dinamik bentuknya seperti larik statik biasa, hanya dialokasikan ke heap dengan prosedur standar New. Daftar Berkait Suatu daftar Berkait (linked list) adalah suatu simpul(node) yang menunjuk ke simpul berikutnya di dalam suatu urutan. Suatu simpul dapat berupa struktur data record. Suatu node minimal harus mempunyai dua buah komponen., yaitu:

Bab 4 Pointer dan Struktur Data Dinamik 19 1. Satu atau lebih field yang berisi data didaftar berkait. 2. Satu atau lebih field berupa pointer yang menunjuk ke node lainnya. Field yang berupa pointer ini disebut dengan kait(link). Untuk mendefinisikan linked list biasa digunakan record, dengan sintaks: Type <nama_pointer> = ^<nama_rec>; <nama_rec> = record data1 : <tipe_data1>; data2 : <tipe_data2>;.... next : <nama_pointer>; end; 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. Membuat daftar berkait. Suatu daftar berkait harus mempunyai ujung awal dari simpul (node) dan ujung akhir dari node. Ujung awal diperlukan supaya dapat mengetahui awal dari node dan unjung akhir diperlukan supaya mengetahui sampai dimana daftar berkait berakhir. Ada beberapa cara menunjukkan akhir dari node, yaitu :

Bab 4 Pointer dan Struktur Data Dinamik 20 1. Memberikan suatu nilai data yang unik yang tidak pernah terjadi pada data sesungguhnya. Data ini disebut dengan data sentinel dan simpulnya disebut dengan simpul boneka (dummy node). Bila node berisi dengan data ini, maka dianggap sebagai akhir dari daftar berkait. 2. Menetapkan pointer di node yang terakhir dengan nilai Nil. Kata cadangan Nil ini menunjukkan suatu nilai ponter yang tidak menunjuk ke mana pun. Bila pointer di node berisi nilai Nil maka berarti merupakan akhir dari daftar berkait. Ada berbagai jenis linked list, contoh diatas merupakan seranai beranai tunggal (Single Link List). Adapun jenis-jenis link list antara lain adalah : 1. Single Link List / Link list satu arah (One Way List) Disebut demikian karena pada setiap simpul hanya memiliki satu buah field yang berhubungan dengan simpul berikutnya. Dalam pembuatan Single Link List dapat menggunakan 2 metode, yaitu: LIFO (Last In First Out), aplikasinya : Stack (Tumpukan) LIFO adalah suatu metode pembuatan Link List dimana data yang masuk paling akhir adalah data yang keluar paling awal. FIFO (First In First Out), aplikasinya : Queue (Antrian) LIFO adalah suatu metode pembuatan Link List dimana data yang masuk paling awal adalah data yang keluar paling awal juga. Link list ini memiliki beberapa variasi lain diantaranya : a. Header Single Link List : Jenis single link list yang memiliki simpul tambahan pada awal simpul yang berguna untuk informasi tambahan. Contoh dibawah ini merupakan header single link list yang pada simpul header-nya berisi informasi mengenai banyaknya simpul di dalam list b. Circular Single Link List : Jenis single link list yang tidak pernah mempunyai tail atau tidak pernah NIL selalu berputar Head = Tail;

Bab 4 Pointer dan Struktur Data Dinamik 21 c. Header Circular Single Link List : Jenis circular single link list yang memiliki simpul tambahan di awal sebagai informasi tambahan. Contoh dibawah ini merupakan circular header single link list yang pada simpul headernya berisi informasi mengenai banyaknya simpul di dalam list. 2. Double Link List / Link list dua arah (Two Way List) Link List ini memiliki dua buah field yang digunakan untuk menunjuk ke simpul sebelumnya dan ke simpul sesudahnya. Banyak digunakan untuk mempermudah proses pencarian simpul dalam suatu seranai beranai. Link list ini memiliki beberapa variasi lain diantaranya : a. Header Double Link List : Jenis double link list yang memiliki simpul tambahan pada awal simpul yang berguna untuk informasi tambahan. b. Circular Double Link List : Jenis double link list yang tidak pernah mempunyai tail atau tidak pernah NIL selalu berputar Head = Tail; c. Header Circular Double Link List : Jenis circular double link list yang memiliki simpul tambahan di awal sebagai informasi tambahan.