Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehArdy Darmawan Telah diubah "9 tahun yang lalu
1
POINTER Struktur Data M. Haviz Irfani, S.Si
2
Pendahuluan Pemakaian larik tdk selalu tepat utk program2x terapan yg kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut. Utk itu diperlukan tipe data yg digunakan utk alokasi dan dealokasi pengingat secara dinamis, yaitu sesuai dg kebutuhan pd saat program dijalankan dengan tipe data ‘POINTER’ {variabel dinamis},dan nilai data yg ditunjuk oleh suatu pointer disebut simpul/node. KONSEP POINTER M. Haviz Irfani, S.Si
3
Definisi : Adalah suatu variabel yg menunjuk ke alamat memori yg digunakan untuk menampung data yg akan diproses. AKU BELAJAR POINTER AKU 0100 0200 0300 ….. FFF 0100 0200 0300 ….. FFF P Q R P Menunjukkan lokasi memori paling akhir KONSEP POINTER M. Haviz Irfani, S.Si
4
Deklarasi variabel pointer Sintak : var : Ex: Var JumlahData :^integer; NamaSiswa :^string[25]; NilaiSiswa :^real; {simbol topi menandakan bahwa variabel tsb menunjuk ke lokasi tertentu pd memori} KONSEP POINTER M. Haviz Irfani, S.Si
5
Variabel pointer bertipe Record Sintak : type = = Record : ; : : ; end; {akhir record} Var : ; KONSEP POINTER M. Haviz Irfani, S.Si
6
Ex: Type pointMHS=^RecMHS; recMhs = record nama: string[25] ; Nim : string[10]; Alm : string[30]; IPK : real ; end; Var dataMhs : pointMhs; KONSEP POINTER M. Haviz Irfani, S.Si
7
Perbedaan variabel Biasa dan variabel Pointer Variabel Biasa : Var firstname,lastname :string; Begin firstname:=‘JOKO’; lastname:=‘SURYO’; firstname := lastname; lastname := ‘JOKO’; writeln(firstname,lastname); end. JOKOSURYO firstname lastname JOKOSURYO Isi variabel lastname di copy ke variabel firstname JOKOSURYO variabel lastname diisi ‘Joko’ firstname lastname firstname lastname KONSEP POINTER M. Haviz Irfani, S.Si
8
Perbedaan variabel Biasa dan variabel Pointer Variabel Pointer : Var firstname,lastname : ^string; Begin firstname^:=‘JOKO’; lastname^:=‘SURYO’; firstname^ := lastname^; lastname^ := ‘JOKO’; writeln(firstname^,lastname^); end. JOKOSURYO firstname lastname JOKOSURYO Pointer firstname menunjuk ke lokasi memori yg ditunjuk lastname JOKO Lokasi yg ditunjuk oleh lastname diisi ‘JOKO’ Pointer lastname menunjuk ke alamat memori tertentu dan mengisinya dg SURYO firstname lastname KONSEP POINTER M. Haviz Irfani, S.Si
9
Sintak : New(variabel); Statemen yg digunakan utk mengalokasikan simpul. Ex: new(P1); new(P2); A B C P1 P2 … … Bagian Statis KONSEP POINTER M. Haviz Irfani, S.Si
10
Contoh : uses crt; type simpul = ^Data; Data = record nama: string; alamat :string; berikut :simpul; end; var P1,P2: simpul; begin clrscr; new(P1);new(P2); P1^.nama := 'JAMIL'; P1^.alamat := 'Plaju-Palembang'; writeln(' ',P1^.nama,' ',P1^.alamat); P2^ := P1^ ; writeln(' ',P2^.nama,' ',P2^.alamat); writeln;readkey; end. RUN : JAMIL Plaju-Palembang KONSEP POINTER M. Haviz Irfani, S.Si
11
Menghapus POinter Sintak : Dispose(variabel); type mendaftar =(ya,tidak); tanggal =record bulan :1..12; tahun :0..99; end; siswa = record no_mhs :string[10]; nama_mhs : string[30]; tgl_mhs : Tanggal; case daftar :mendaftar of ya : (jum_mk : integer; jum_sks: integer; ipk_mhs:real); tidak :(tgl:tanggal; alasan :string[15]); end; daf_mhs = ^siswa; var murid,murid1:daf_mhs; begin new(murid); murid1:=murid; dispose(murid1); end. KONSEP POINTER M. Haviz Irfani, S.Si
12
Pada saat simpul ditunjuk oleh pointer murid1, maka simpul digunakan oleh murid1. dispose(murid1) sehingga pointer murid1 tidak digunakan lagi KONSEP POINTER M. Haviz Irfani, S.Si
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.