Upload
esi-oktavia
View
356
Download
1
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