Pertemuan 5 - Single Linked List, LIFO, FIFO 

Embed Size (px)

Citation preview

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII

LINKEDLIST

Pertemuan5 Waktu :135menit :Mahasiswamampumenjelaskanteknikpemrograman menggunakanLinkedList. :SingleLinkedList,LIFO,FIFO TujuanPembelajaran SubstansiMateri No1

TabulasiKegiatanPerkuliahan Tahap KegiatanPendahuluan 1. 2. Penyajian Materi 1. 2. 3. 1. 2. 3.

KegiatanPengajarMembukapertemuan Mengulangmateripertemuan sebelumnya SingledLinkedList Lastinfirstout Firstinfirstout Menyimpulkanmateripertemuan Memberikantugaskecil Menutuppertemuan

Kegiatan MahasiswaMenyimak Bertanya Menyimak Bertanya Menjawab Pertanyaan Menyimak

Media& AlatPapanTulis

Waktu20Menit

2

PapanTulis

80Menit

3

Penutup

Papantulis

35Menit

MAT ERIKULIAH SingleLinkedList

Gambar berikut menunjukan sebuah data terletak pada sebuah lokasi memory. Tempat yangdisediakanpadasuatuareamemorytertentuuntukmenyimpandatadikenaldengan sebutan node / simpul. Pada setiap node memiliki pointer(penunjuk) yang menunjuk ke simpul berikutnya sehingga terbentuk suatu untaian dan dengan demikian hanya diperlukan sebuah variable pointer. Susunan berupa untaian ini disebut dengan Single LinkedList.Niltidakmemilikinilaiapapun.Setiaplinkedlistpadaakhirnyaakanmenunjuk keNil. V3/20092010 1

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII Memory P 0100 0200 0300 FFFF Aku Aku Belajar Pointer NIL

LINKEDLIST

DalampembuatanSingleLinkedListdapatmenggunakan2Metoda: LIFO(LastInFirstOut) LIFO adalah suatu metoda pembuatan Linked List dimana data yang masuk paling akhir adalah data yang keluar paling awal. Hal ini dapat dianalogikan dengan menumpukan barang pada kehidupan seharihari. Pembuatan simpul pada suatu linked list disebut dengan istilah INSERT. Jika linked list dibuat dengan Metoda LIFO maka penambahan/insertsimpuldilakukandiBELAKANG. ProcedureInsert Istilah INSERT berarti menambahkan sebuah simpul baru ke dalam suatu linked list. Berikut adalah deklarasi tipe data dan variabel yang dapat digunakan sebagai deklarasi awaldanpenggalanprocedureinsert. V3/20092010 2

LIFO(LastInFirstOut),aplikasinya:Stack(Tumpukan) FIFO(FirstInFirstOut),aplikasinya:Queue(Antrian)

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII

LINKEDLIST

Type Point=^RecPoint; RecPoint=Record Isi:TipeData; Next:Point; End; Var Head,Tail,Now:Point;

ProcedureINSERT(elemen:TipeData); VarNow:Point; Begin New(Now); Now^.Isi:=Elemen; IfHead=NilThen Now^.Next:=Nil; Else Now^.Next:=Head; Head:=Now; End;

FirstInFirstOut FIFO adalah suatu metoda pembuatan Linked List dimana data yang masuk paling awal adalahdatayangkeluarpalingawaljuga.JikalinkedlistdibuatdenganmenggunakanFIFO, makaterjadipenambahan/Insertsimpuldidepan.

V3/20092010 3

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII ProcedureINSERT(elemen:TipeData); VarNow:Point; Begin New(Now); IfHead=NilThen Head:=Now; Else Tail^.Next:=now; Tail:=Now; Tail^.Next:=Nil; Now^.Isi:=Elemen; End;

LINKEDLIST

ProceduredanfunctionLinkedListlainnya Selain procedure insert diatas, pada linked list juga masih terdapat procedure serta functionlainnya.Dibawahinidiberikanprocedureproceduresertafunctionumumdalam linkedlist. Create Membuat sebuah linked list yang baru dan masih kosong. Procedure ini wajib dipanggiluntukmenggunakanlinkedlist. V3/20092010 4 ProcedureCreate; Begin Head:=Nil; Tail:=Nil; End;

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII

LINKEDLIST

Empty Functionuntukmenentukanapakahlinkedlistkosongatautidak. FindFirst Mencarielemenpertamadarilinkedlist FindNext MencarielemensesudahelemenyangditunjukNow ProcedureFind_Next; Begin IfNow^.NextNilthen Now:=Now^.next; End; ProcedureFind_First; Begin Now:=Head; End; FunctionEmpty:Boolean; Begin Ifhead=nilthen Empty:=true else Empty:=false; End;

Retrieve Mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu ditampung pada suatuvariabel,dalampotonganprocedureiniditampungdalamvariabelr. ProcedureRetrieve(varr:TipeData); Begin R:=Now^.Isi; End; V3/20092010 5

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII

LINKEDLIST

Update Mengubah elemen yang ditunjuk oleh now dengan isi dari suatu variabel (dalam contohinidigunakanvariabelu). DeleteNow Menghapuselemenyangditunjukolehnow.Jikayangdihapusadalahelemenyang pertamadarilinkedlist(head),makaheadakanberpindahkeelemenberikutnya. V3/20092010 6 ProcedureDeleteNow; Varx:point; Begin IfNowHeadthen Begin X:=head; Whilex^.nextnowdo X:=x^.next; X^.next:=now^.next; End Elsehead:=head^.next; Dispose(now); Now:=head; End; ProcedureUpDate(u:TipeData); Begin Now^.Isi:=U; End;

DIKTATKULIAH ALGORITMAdanSTRUKTURDATAII

LINKEDLIST

DeleteHead Menghapus elemen yang ditunjuk oleh head. Head akan berpindah ke elemen sesudahnya. Clear Untukmenghapuslinkedlistyangsudahada.Wajibdilakukanbilainginmengakhiri programyangmenggunakanlinkedlist.Jikatidakadadatadata yangdialokasikan kememorypadaprogramsebelumnyaakantetaptertinggaldidalammemory. ProcedureClear; Begin Whileheadnildo Begin Now:=head; Head:=head^.next; Dispose(now); End; End; ProcedureDeleteHead; Begin Ifheadnilthen Begin Now:=Head; Head:=Head^.Next; Dispose(Now); Now:=Head; End; End;

V3/20092010 7