1 / 12

POINTER

Struktur Data. POINTER. M. Haviz Irfani, S.Si. KONSEP POINTER. Pendahuluan.

giolla
Télécharger la présentation

POINTER

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Struktur Data POINTER M. Haviz Irfani, S.Si

  2. KONSEP POINTER 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. M. Haviz Irfani, S.Si

  3. KONSEP POINTER Definisi : Adalah suatu variabel yg menunjuk ke alamat memori yg digunakan untuk menampung data yg akan diproses. P 0100 P 0100 0200 Q 0200 0300 R 0300 ….. ….. FFF FFF Menunjukkan lokasi memori paling akhir M. Haviz Irfani, S.Si

  4. KONSEP POINTER Deklarasi variabel pointer Sintak : var <namaVar> : <^tipeData> Ex: Var JumlahData :^integer; NamaSiswa :^string[25]; NilaiSiswa :^real; {simbol topi menandakan bahwa variabel tsb menunjuk ke lokasi tertentu pd memori} M. Haviz Irfani, S.Si

  5. KONSEP POINTER Variabel pointer bertipe Record Sintak : type <namapointer> = <^namarecord> <Namarecord> = Record <item1> : <tipedata1>; <item2> : <tipedata2>; : <itemN> : <tipedataN>; end; {akhir record} Var <namaVar> : <NamaPointer>; M. Haviz Irfani, S.Si

  6. KONSEP POINTER Ex: Type pointMHS=^RecMHS; recMhs = record nama: string[25] ; Nim : string[10]; Alm : string[30]; IPK : real ; end; Var dataMhs : pointMhs; M. Haviz Irfani, S.Si

  7. KONSEP POINTER 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. lastname firstname Isi variabel lastname di copy ke variabel firstname JOKO SURYO lastname firstname JOKO SURYO variabel lastname diisi ‘Joko’ lastname firstname SURYO JOKO M. Haviz Irfani, S.Si

  8. KONSEP POINTER Perbedaan variabel Biasa dan variabel Pointer Pointer lastname menunjuk ke alamat memori tertentu dan mengisinya dg SURYO Variabel Pointer : Var firstname,lastname : ^string; Begin firstname^:=‘JOKO’; lastname^:=‘SURYO’; firstname^ := lastname^; lastname^ := ‘JOKO’; writeln(firstname^,lastname^); end. lastname firstname Pointer firstname menunjuk ke lokasi memori yg ditunjuk lastname JOKO SURYO JOKO SURYO Lokasi yg ditunjuk oleh lastname diisi ‘JOKO’ lastname firstname JOKO JOKO M. Haviz Irfani, S.Si

  9. KONSEP POINTER Sintak : New(variabel); Statemen yg digunakan utk mengalokasikan simpul. Ex: new(P1); new(P2); Bagian Statis M. Haviz Irfani, S.Si

  10. KONSEP POINTER Contoh : writeln(' ',P1^.nama,' ',P1^.alamat); P2^ := P1^ ; writeln(' ',P2^.nama,' ',P2^.alamat); writeln;readkey; end. RUN : JAMIL Plaju-Palembang JAMIL Plaju-Palembang 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'; M. Haviz Irfani, S.Si

  11. KONSEP POINTER 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. M. Haviz Irfani, S.Si

  12. KONSEP POINTER Pada saat simpul ditunjuk oleh pointer murid1, maka simpul digunakan oleh murid1. dispose(murid1) sehingga pointer murid1 tidak digunakan lagi M. Haviz Irfani, S.Si

More Related