POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer;

dokumen-dokumen yang mirip
POINTER. Altien Jonathan Rindengan, S.Si, M.Kom

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

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IV MATRIKS (ARRAY MULTI DIMENSI)

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

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

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

Chapter 3.2 : Tipe, Nama dan Nilai

Lab. Teknik Informatika Struktur Data 1

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

Pointer. Pengertian. Struktur Data Pascal

BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL

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

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

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

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

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

DASAR PEMROGRAMAN. File

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

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

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

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

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

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

STRUKTUR BAHASA PEMROGRAMAN

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

SINGLE LINKED LIST (NON CIRCULAR)

ALGORITMA & PEMROGRAMAN

Indentifier, Keywords, Variable, Tipe Data dan Operator. Ramos Somya, S.Kom., M.Cs.

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks]

MODUL 1. Struktur Bahasa PASCAL secara umum

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

QUEUE (ANTRIAN) Struktur Data - Queue

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

Pertemuan 7. REVIEW dan QUIS

BAB II STACK Atau TUMPUKAN

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

STRUKTUR DATA. Deskripsi Mata Kuliah

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

MODUL 6 SINGLE & DOUBLE LINKED LIST

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

KERUGIAN DAN KEUNTUNGAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

ALGORITMA DAN STRUKTUR DATA

LAPORAN PRAKTIKUM IX. Oleh:

Daftar field MODUL 13 RECORD

Struktur Data. Pertemuan 2

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

STRUKTUR DATA. Literatur

Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM TEORI PENUNJANG

KONSEP POINTER DAN LINKED LIST

IF32222 STRUKTUR DATA TIPE DATA. Oleh : Andri Heryandi, M.T.

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Algoritma dan Struktur Data. Pertemuan 7 Linked List

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Algoritma dan Struktur Data. Linked List

LOGO STRUKTUR DATA QUEUE

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

Linked List. Bandung 2013

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

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

KONSEP POINTER DAN LINKED LIST

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

Review : Sifat Implementasi Linear List dengan Array

Algoritma dan Struktur Data. Ramos Somya

Pertemuan 3 RECORD. Contoh penggunaan record (dalam program PASCAL) : Type Siswa = record Nama : string[25]; Kelas : 1..6; Nilai : real; end;

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10] Nilai elemen array Index array Inelemen array

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

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

Pengantar dalam Bahasa Pemrograman Turbo Pascal

MATERI 4 PENYELEKSIAN KONDISI

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

STRUKTUR DATA. - Pendahuluan - Tipe Data. Altien Jonathan Rindengan, S.Si., M.Kom

MODUL PRAKTIKUM STRUKTUR DATA

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

PROSEDUR DAN FUNCTION

BAB XI Manipulasi Binary Tree

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

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

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

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

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

Algoritma dan Struktur Data

Pertemuan 4 KONSEP TIPE DATA

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

RECORD KONSEP. Type standar A. Var A:integer; { ada satu tempat penyimpanan yang bernama A }.

Struktur Data. Queue (Antrian)

Struktur Data II. Single Linked List - Non circular

Pendahuluan Struktur Data. Nisa ul Hafidhoh

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

Pertemuan 2 Operasi String

Tahapan Membuat Program

Teori Algoritma. Struktur Algoritma

Pengenalan Pascal. Sejarah Singkat Pascal

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

Membuat Berkas File Text Pada Pascal

PENGERTIAN adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah.

Transkripsi:

POINTER PADA PASCAL PEMBAHASAN : 1. Mengenal tipe data Pointer. 2. Manipulasi memori lewat Pointer bertipe dan tak bertipe. 3. Linked List; meliputi operasi inisialisasi, menambah node baru, menyisipkan node baru, menghapus node yang berisi data, membaca data dari node. 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. 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. 1

Fungsi Ptr Function Ptr(Seg, Ofs : word) : pointer; dengan Seg : segmen memori. Ofs : offset memori. Fungsi Ptr mengembalikan pointer dari segmen dan offset yang dimasukkan. Operator @ <nama_var>:=@<variabel_yang_alamatnya_diambil>; Operator ini digunakan untuk mengambil alamat variabel yang akan ditunjuk. Prosedur New dan GetMem 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 variabel-variabel 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

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 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. CONTOH PENGGUNAAN POINTER Deklarasi tipe data pointer: program deklarasi; uses crt; var p : ^integer; nilai : integer; begin clrscr; nilai:=12; p:=@nilai; writeln(p^); p^:=100; 3

writeln(p^); writeln(nilai); readln; end. Output: 12 100 100 Pembahasan: Pada contoh program deklarasi ini, pertama-tama dideklarasikan variabel p sebagai pointer yang bertipe integer. Dibuat sebuah variabel lagi yang diberi nama nilai dan bertipe integer. Variabel nilai diisi dengan nilai 12. Kemudian variabel p menunjuk alamat dari variabel nilai dengan operator @, sehingga variabel p berisi nilai 12, dan ditampilkan outputnya di layar. Kemudian variabel p diberi nilai 100, dan secara otomatis variabel nilai juga bernilai 100 karena sudah ditunjuk oleh variabel p. Kemudian isi dari variabel p yang baru dan variabel nilai ditampilkan di layar. Manipulasi memori lewat Pointer bertipe: uses wincrt; var p,q,r,s : ^string; nilai : string; begin clrscr; nilai:='ini string nilai!!!'; p:=@nilai; new(q); q^:='ini isi pointer q!!!'; r:=q; s^:=q^; writeln('alamat pointer p = ',seg(p^):4,':',ofs(p^):4,'; isi pointer p = ',p^); writeln('alamat pointer q = ',seg(q^):4,':',ofs(q^):4,'; isi pointer q = ',q^); writeln('alamat pointer r = ',seg(r^):4,':',ofs(r^):4,'; isi pointer r = ',r^); 4

writeln('alamat pointer s = ',seg(s^):4,':',ofs(s^):4,'; isi pointer s = ',s^); readln; end. Output program: alamat pointer p = 4446: 98; isi pointer p = ini string nilai!!! alamat pointer q = 5559: 0; isi pointer q = ini isi pointer q!!! alamat pointer q = 5559: 0; isi pointer r = ini isi pointer q!!! alamat pointer q = 0: 0; isi pointer s = ini isi pointer q!!! Pembahasan: Pada program ini dibuat 4 variabel pointer yang bertipe string, yaitu p, q, r, s. Dan sebuah variabel dengan nama nilai yang bertipe juga string (bukan pointer). Pertama-tama variabel nilai diisi dengan nilai ini string nilai!!!. Kemudian variabel p (pointer) menunjuk alamat dari variabel nilai dengan operator @, sehingga variabel p juga berisi ini string nilai!!!. Kemudian dipesan tempat pada heap dengan prosedur New untuk variabel q. Kemudian variabel q diisi ini isi pointer q!!!. Setelah itu variabel r menunjuk alamat dari variabel q, sehingga alamat maupun isinya sama. Kemudian variabel s diisi dengan nilai dari variabel q, tapi dalam hal ini hanya nilainya saja, sedangkan alamatnya tidak. 5