Pointer & Linked List.

Slides:



Advertisements
Presentasi serupa
Pointer Struktur Data.
Advertisements

STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
Single linked list.
STRUKTUR DATA (7) single linked list circular
LINKED LIST.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Rahmat Deddy Rianto Dako, ST, M.Eng
STRUKTUR DATA.
Senarai Berantai Dua Arah
Senarai Berantai Adalah salah satu struktur data dinamis yang paling sederhana (linked list) atau juga disebut senarai satu arah ( one way list).
Pertemuan 3 RECORD.
LINKED LIST (List linier)
LINKED LIST Single Linked List.
Algoritma dan Pemrograman
Struktur Data M. Haviz Irfani, S.Si LINKED LIST.
STRUKTUR DATA (6) single linked list non circular
Selamat datang Di Prosedur dan Fungsi. Sub Program “Adl Program kecil yg dpt di panggil berulang-ulang sesuai dg kebutuhan”  Manfaatnya: 1.Memudahkan.
LINKED LIST by Yohana N.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Struktur Data M. Haviz Irfani, S.Si. Pada garis besarnya, data dapat kita kategorikan menjadi : Type Data Sederhana atau Data Sederhana yang terdiri atas.
LOGO UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) – Fax (0711) BAB II STRUKTUR.
SET/HIMPUNAN PADA PASCAL
Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data.
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
Chapter 7 Linked List December 2015.
STRUKTUR DATA Linked List
Tim struktur data IF UNIKOM
Pointer Jamaludin malik.
Single Linked List.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
STRUKTUR DATA STACK.
Dynamic Array and Linked List
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Chapter 9 Linked List (Senarai Bertaut)
Tim struktur data IF UNIKOM
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Struktur Data Tipe data & Struktur Data
Algoritma & Pemrograman 1
Double Linked List.
LINKED LIST Circular Linked List.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
BAB IV – ARRAY DINAMIS DAN LINKED LIST (1)
Linked List.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
STRUKTUR DATA STACK.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
Senarai Berantai Ika Menarianti.
Double Linked List.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Circular Linked List.
Menghapus Simpul dan Travelsal
ARRAY.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
STRUKTUR DATA PERTEMUAN 8
STRUKTUR DATA TUMPukAN (STACK).
Algoritma & Pemrograman 1
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
SENARAI BERANTAI (LINKED LIST)
REKAMAN Rekaman atau record adalah sekumpulan data yang disusun dari tipe data yang sama atau tipe data yang berbeda. Pada prinsipnya rekaman sama dengan.
Tim struktur data IF UNIKOM
STRUKTUR DATA PERTEMUAN 4
Tim struktur data IF UNIKOM
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
LINKED LIST (SENARAI BERANTAI)
Tim struktur data IF UNIKOM
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
Pointer.
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Pointer & Linked List

Pemakaian larik tidak selalu tepat untuk program-program terapan yang kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut. Untuk mengatasi hal tersebut dibutuhkan sebuah tipe data yang sifatnya adalah dinamis yaitu penggunaan memori dilakukan sesuai dengan kebutuhan dan akan dibebaskan jika sudah selesai walapun pada saat itu program masih sedang berjalan. S Budi 10 Budi D 10 Variabel Statis Variabel Dinamis

A M I K B P P M I A K B NIL 7 6 8 2 4 Info Next Start 1 2 Data 3 4 5 6 1 2 3 4 5 6 7 8 9 P M I A K B NIL 7 6 8 2 4 Data

A M I K B P Data : array[1..7] of char Data

P M I A K B NIL 7 6 8 2 4 Simpul Info Next Start 1 2 Point = ^Data 1 2 3 4 5 6 7 8 9 NIL 7 6 8 2 4 Point = ^Data Data = Record Info : char Next : point end Simpul Info Next

Simpul =^Data Data = record info : type data Next :Simpul end Simpul Peg Peg =^data Data= Record Nama : string[20] Nip : string[10] Jabatan : String[10] Gapok : Real Next : Peg; end Peg^.Nama Peg^.Next Peg^.Nip Peg^.Jabatan Peg^.Gapok

Operasi Pointer OS Nama Membentuk simpul dalam memori Nip Jabatan New(Var Pointer) Cth : New (Pegawai) OS Nama Nip Jabatan gapok Fisik Logika

Deklarasi Variabel Var P1,P2 : Peg New(p1) P1 ? New(p2) P2 ?

? P1.Nama = Budi P1.Nip = 100 P1.Jabatan=staf P1.Gapok = 100000 1000000 P1.Nama = Budi P1.Nip = 100 P1.Jabatan=staf P1.Gapok = 100000 (Variabel Statis) P1^.Nama = Budi P1^.Nip = 100 P1^.Jabatan=staf P1^.Gapok = 100000 P1^.Next = nil (Variabel Dinamis) P2 ?

Deklarasi Variabel Var P1,P2 : Peg Peg =^data Data= Record Nama : string[20] Nip : string[10] Jabatan : String[10] Gapok : Real Next : Peg; end Deklarasi Variabel Var P1,P2 : Peg P1 Budi 100 staf 1000000 P2 ?

Deklarasi Variabel Var P1,P2 : Peg P2 = P1 Peg =^data Data= Record Nama : string[20] Nip : string[10] Jabatan : String[10] Gapok : Real Next : Peg; end Deklarasi Variabel Var P1,P2 : Peg P1 Budi 100 staf 1000000 P2 = P1 P2 ?

Deklarasi Variabel Var P1,P2 : Peg P1^.next = P2 Peg =^data Data= Record Nama : string[20] Nip : string[10] Jabatan : String[10] Gapok : Real Next : Peg; end Deklarasi Variabel Var P1,P2 : Peg P1 P1^.next = P2 Budi 100 staf 1000000 P2 ?

P2 P1^.next = P2 P1 P1 Budi 100 staf 1000000 P2 ? P1^.Next Budi 100 P1^.Nama P1^.Nip P1^.Jabatan P1^.Gapok P2 P1^.Next^.Nama P1^.Next^.Nip P1^.Next^.Gapok P1^.Next^.Next P1^.Next^.Jabatan

Linked List/Senarai Berantai senarai berantai adalah kumpulan komponen yang disusun secara berurutan dengan bantuan pointer, dimana masing-masing kompoen dinamakan sebagai simpul. Pada dasarnya satu buah simpul terdiri dari dua bagian, dimana bagaian pertama dinamakan sebagai Informasi, dan bagian ke dua adalah penunjuk (pointer) untuk simpul yang berikutnya Senarai berantai dengan 4 simpul

Operasi Pada Senarai Menambah Simpul Menambah Simpul di Awal Menambah simpul di akhir Menambah Simpul di tengah Menghapus Simpul Menghapus Simpul Awal Menghapus Simpul di Akhir Menghapus Simpul Di Tengah Membaca isi Senarai (Travelsal)

Menambah Simpul Maka Nilai pointer adalah Awal = nil Akhir = nil Sebelum melakukan penambahan simpul, kita inisialisasi struktur datanya adalah Type Simpul =^data Data = record Info : char; Next : Simpul End; Var Elemen : char Awal, Akhir, Baru : Simpul Maka Nilai pointer adalah Awal = nil Akhir = nil Baru = nil

Menambah Simpul Awal New (baru) awal Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal New(Baru) Baru

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal 10 Baru^.info = elemen Baru

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal 10 Baru Awal = baru

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal 10 Baru Awal^.next = nil

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal New(Baru) 10 Baru

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal Baru^.info = elemen 10 20 Baru

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal 10 20 Baru Baru^.Next = Awal

Menambah Simpul Awal awal Procedure tambah1(elemen : tipedata) New (Baru0 Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi awal 10 20 Baru awal = baru awal 20 10 Baru

Procedure tambah1(elemen : tipedata) New(Baru) Baru^.info = elemen awal Procedure tambah1(elemen : tipedata) New(Baru) Baru^.info = elemen If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi 20 10 New(Baru) Baru^.info = elemen 30 Baru Baru^.Next = Awal awal = baru

Contoh 1: Buat Algoritma untuk menghasilkan Linked list sebagai berikut P M K M A B I awal

Algoritma Procedure Tambah( x : char) New (baru) Baru^.info = X If awal = nil Then Awal = baru Awal^.Next = nil Else Baru^.next = awal fi //Program Utama Read Kalimat I = 1 While I <= length(Kalimat) do Tambah(kalimat[i] I = I + 1 E-while

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal New (Baru) Baru

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal Baru^.info = X 10 Baru

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal 10 Baru^.Next = Nil Baru

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal 10 Baru Awal = Baru

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal New (Baru) Baru^.info = X 10 Baru^.Next = Nil akhir 20 Baru Akhir = awal Akhir^.Next = Baru

Menambah Di Akhir Procedure Tambah2(x : tipedata) New(baru) Baru^.info = X Baru^.Next = nil If awal = nil Then Awal = baru Else Akhir = awal While akhir^.next <> nil Do Akhir = Akhir^.next e-while akhir^.next = baru fi Awal New (Baru) Baru^.info = X 10 20 Baru^.Next = Nil akhir 30 Baru Akhir = awal Akhir =Akhir^.Nextl Akhir^.Next = Baru

Menambah Di Tengah New (Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru New (Baru) 10 60 Baru

Menambah Di Tengah New(Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru Baru^.info = x 10 60 30 Baru

Menambah Di Tengah New(Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru Bantu = awal 10 60 Bantu 30 Baru

Menambah Di Tengah New(Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru 10 60 Bantu 30 Baru Baru^.next = Bantu^.Next

Menambah Di Tengah New(Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru 10 60 Bantu 30 Baru Bantu^.next = baru

Menambah Di Tengah New(Baru) Baru^.Info = X Bantu = awal While Baru^.info > bantu^.Next^.info do Bantu = Bantu^.next E-while Baru^.next = Bantu^.Next Bantu^.next = baru Baru^.info = x Bantu = awal 10 30 60 Bantu Bantu = Bantu^.Next 40 Baru^.next = Bantu^.Next Baru Bantu^.next = baru

Menambah Di Akhir Kepala 10 20 akhir 30 Baru