0% menganggap dokumen ini bermanfaat (0 suara)
118 tayangan26 halaman

M5 - Single Linked List

Dokumen tersebut membahas tentang struktur data single linked list, yang menjelaskan konsep pointer dan linked list, dua metode utama yaitu LIFO dan FIFO, beberapa procedure dasar untuk mengolah linked list seperti insert, find first, find next, serta contoh ilustrasi penggunaannya.

Diunggah oleh

Noviant Ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
118 tayangan26 halaman

M5 - Single Linked List

Dokumen tersebut membahas tentang struktur data single linked list, yang menjelaskan konsep pointer dan linked list, dua metode utama yaitu LIFO dan FIFO, beberapa procedure dasar untuk mengolah linked list seperti insert, find first, find next, serta contoh ilustrasi penggunaannya.

Diunggah oleh

Noviant Ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 26

SINGLE LINKED LIST

Struktur Data

RA2020 1
PENGERTIAN
 Pointer : Setiap kali menambahkan data
selalu menggunakan variabel pointer yang
baru, otomatis akan membutuhkan banyak
variabel pointer (penunjuk)

 Linked list : Menggunakan satu variabel


pointer untuk menyimpan banyak data

RA2020 2
RA2020 3
2 METODE
 LIFO : Stack(Tumpukan)
 FIFO : QUEUE (Antrian)

RA2020 4
LIFO / Last In First Out
 LIFO adalah suatu metode pembuatan linked list, dimana
data yang masuk paling akhir adalah data yang keluar
paling awal. Hal ini dapat dianalogikan (dalam kehidupan
sehari-hari) pada saat anda menumpuk barang, seperti
digambarkan di bawah ini :

RA2020 5
Procedure Insert
 Procedure INSERT(elemen:TipeData);
 Var Now : Point;
 Begin
 New(Now);
 Now^.Isi:=elemen;
 If Head=Nil then
 Now^.Next:=Nil;
 Else
 Now^.Next:=Head;
 Head:=Now;
 End;

RA2020 6
 Insert (TV)
 new (now)
 now^ .isi = elemen  now^.isi = ‘TV’

Head = Nil then


 now^.isi = Nil
 Head = TV

RA2020 7
 Insert (VCD)
 new(now)
 now^.isi = ‘VCD’

 Head <> Nil


 Head := VCD

RA2020 8
 Insert COMPO
 new (now)
 now^.isi = ‘COMPO’

 Head < > Nil


 Head := COMPO

RA2020 9
Procedure Find First
 Procedure find_first;
Begin
◦ Now := head;
◦ Write(now^,isi);
end;

 now := Head
now = COMPO
write(COMPO)

RA2020 10
Procedure Find Next
 Procedure find_next;
Begin
◦ If now^.next < > nil then
◦ Now := now^.next;
◦ Write(now^,isi);
end;

 now^.isi < > Nil  COMPO < > Nil


now := now^.next
now : = VCD
write (VCD)
RA2020 11
FIFO / First In First Out

 Contoh : Antrian diloket

 Penambahan / Insert simpul di depan

RA2020 12
 Insert (TV)
 new (now)
 now^.isi = elemen  now^.isi = ‘TV’

 Head = Nil then


 Head = TV

RA2020 13
 Insert (VCD)
 new (now)
 Head < > Nil then
 Tail^.next = now

 Tail := now

RA2020 14
 Now^.isi = VCD

RA2020 15
 Insert (COMPO)
 new(now)
 Head< > Nil then
 Tail^.next = now

 Tail := now
 Tail^.next=Nil

RA2020 16
 now^.isi = COMPO

RA2020 17
Procedure Find First
 Procedure find_first;
Begin
◦ Now := head;
◦ Write(now^,isi);
end;

 now := TV
write(TV)

RA2020 18
Procedure Find Next
 Procedure find_next;
Begin
◦ If now^.next < > nil then
◦ Now := now^.next;
◦ Write(now^,isi);
end;

 now^isi.<> Nil  TV <> Nil


now := now^.next
now := VCD
write(VCD)
RA2020 19
Procedure dan Function Linked List
Lainnya
 Create : Membuat sebuah linked list yang baru dan masih kososng.
(ket: procedure ini wajib dilakukan sebelum menggunakan linked
list)
 Procedure Create;
Begin
Head:=nil;
Tail:=nil;
End;
 Head Tail

RA2020 20
 Empty : Function untuk menentukan apakah linked list kosong atau
tidak
 Function Empty : Boolean;
Begin
If head = nil then
Empty:= true
else
empty:= false;
end;
 Retrieve : Mengambil elemen yang ditunjuk oleh now. Elemen
tersebut lalu ditampung pada suatu variabel (di bawah dicontohkan
variabel r).
 Procedure Retrieve(var r: TipeData );
Begin
R:= Now^.isi;
End;
RA2020 21
 Update : Mengubah elemen yang ditunjuk
oleh now dengan isi dari suatu variabel (di
bawah dicontohkan variabel u).
 Procedure Update(u: TipeData );
Begin
Now^.isi:=u;
End;

RA2020 22
 Delete Now : Menghapus elemen yang ditunjuk oleh now. Jika yang dihapus
adalah elemen pertama dari linked list(head), maka head akan berpindah ke
elemen berikut
 Procedure DeleteNow;
Var x : point;
Begin
If now<>head then
Begin
x:=head;
while x^.next<>now do
x:=x^.next;
x^.next:=now^.next;
end
else head:= head^.next;
dispose(Now);
Now:= head;
End;

RA2020 23
 Delete Head : Menghapus elemen yang ditunjuj head.
Head berpindah ke elemen sesudahnya.
 Procedure DeleteHead;
Begin
If head<>nil then
Begin
Now:=head;
Head:=Head^.next;
Dispose(Now);
Now:=Head;
End;
End;

RA2020 24
 Clear : Untuk menghapus linked list yang sudah
ada.wajib dilakukan bila ingin mengakhiri program yang
menggunakan linked list. Jika tidak data-data yang
dialokasikan ke memori pada program sebelumnya akan
tetap tertinggal di dalam memori.
 Procedure Clear;
Begin
While head <> nil do
Begin
Now:=head;
Head:=head^.next;
Dispose(Now);
End;
End;
RA2020 25
 Latihan :
Buatlah ilustrasi untuk procedure insert,
find first dan find next untuk data Antrian :
Alya, Alby, Shaina
Tugas :
Buat program tumpukan dengan
menggunakan procedure Insert dan
update !

RA2020 26

Anda mungkin juga menyukai