Langsung ke konten utama

StruktuR Data Modul 08


MODUL 8

FIFO (First In First Out)

 

            FIFO adalah suatu metoda pembuatan Linked List dimana data yang masuk paling awal adalah data yang keluar paling awal juga. Hal ini dapat dianalogikan (dalam kehidupan sehari-hari) misalkan saat sekelompok orang yang datang (ENQUEUE) mengantri hendak membeli tiket di loket.

Jika Linked List dibuat dengan metode FIFO, maka terjadi penambahan/Insert simpul di depan.

 

PROCEDURE INSERT

Procedure INSERT(elemen:TipeData);

Var Now:Point;        

         Begin

             New(Now);

             If head = nil then

                     Head:=now

             else

                     Tail^.next:=now;

             Tail:=Now;

              Tail^.next:=nil;

               Now^.isi:=elemen;

End;  




Procedure dan Function Linked List Lainnya

            Selain procedure insert di atas, pada linked list juhga terdapat procedure serta function lainnya.

            Di bawah ini diberikan procedure-procedure serta function umum dalam aplikasi Linked List.

v      Create : Membuat sebuah linked list yang baru dan masih kososng. (ket: procedure ini wajib dilakukan sebelum menggunakan linked list)




 

v      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;

 

 

v      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;



 

v      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.

 

 

Latihan Soal beserta jawaban (Listing Program) dan penjelasan

Buatlah sebuah program untuk mendeteksi password/ kata sandi. Gunakan metode single linked list. Jika passwordnya benar, program akan selesai, jika salah maka user akan diminta memasukkan password kembali. (passw.pas)



 

Jawaban :

Uses crt;

Type

  Point  = ^Rec;

  Rec    = record          

                   Isi : char;

                   Next : point;

                 End;

Const

  Password = ‘pascal’; {password yang harus dimasukkan}

Var

  i                                 : byte;

  Tekan                         : char;

  Passwd                      : Boolean;

  Head, Tail, Now         : Point;

 

 

Procedure Create;

 Begin

            Head:=nil;

            Tail:=nil;

 End;

Procedure Push(isi:char);

Var Now:point;

 Begin

            New(now);                   {membuat simpul baru}

            If Head=Nil then           {mendeteksi simpul awal}

            Begin

              Head:=Now;

              Tail:=Head;

            end else

            begin    {menyambung simpul yang baru pada simpul yang sudah ada}

              Tail^.next:=Now;

              Tail:=Tail^.Next;

              end;

            Now^.isi:=isi; {mengisi simpul yang baru}

            Now^.next:=Nil;

 end;

Function Check:Boolean; {function untuk mencheck input}

Var Temp : string[15];

 Begin

 Temp:=’ ‘; Now:=Head;

 While Now <> nil do

            Begin

              Temp:=temp + Now^.isi;

              Now:=Now^.next;

            End;

 If temp <> Password then check:=False;

 End;

Procedure BuatBingkai(x1,y1,x2,y2:byte); {tampilan aplikasi}

Var i : byte;

 Begin

   GotoXY (x1,y1); write(‘   ’); GotoXY (x2,y1); write (‘   ‘);

   GotoXY (x1,y2); write(‘   ’); GotoXY (x2,y2); write (‘    ’);

   For i := x1+1 to x2-1 do

     Begin

            GotoXY (i,y1); write (‘-‘);

            GotoXY (i,y2); write (‘-’);

     End;

   For i := y1+1 to y2-1 do

     Begin

            GotoXY(x1, i); write(‘   ‘);

            GotoXY(x2, i); write (‘  ‘);

     End;

 End;

 

Procedure Pop; {procedure penghapus simpul}

 Begin

  Now:=head;

  head:=head^.next;

  While Now <> nil do

     Begin

            Dispose(Now);

            Now:=head;

            Head:=head^.next;

     End;

 End;

Begin {program utama}

 Repeat

   Create; I:=0;

   Repeat

            Tekan:=ReadKey;

            Write(Tekan);

            If Tekan <>#13 then Push(Tekan); inc(i);

    Until (Tekan= #13) or (I=10); {enter ditekan atau panjang = 10}

  Passwd:=check; Pop;

  Until Passwd;

End.

 



Komentar

Posting Komentar

Give Comment dunk...
jangan just numpang lewat doank...
key...

Postingan populer dari blog ini

untitle

Satu kata yang terucap Mengguncang gelora hati Satu Kata yang kau ucap Gemuruh hati tanpa henti Kau ucap kata perih untukku Tak dapat kau mengerti aku Kau jauh Tinggalkan ku tanpa jejakmu Ku takut kehilanganmu Kehilangan cinta darimu masih bisakah aku menjaga ragamu Masih bisakah aku sentuh jiwamu Ku kan simpan cinta ini Untuk jiwa yang mengertiku created by : Ferika W FMIPA MI UR

Winstep Xtreme 11.6 Free & Full Version

Mau tampilan desktop kamu keren? kebetulan sekali karena saya ingin share aplikasi yaitu Winstep Xtreme 11.6.Winstep Xtreme 11.6 digunakan untuk mengubah tampilan desktop kamu mulai dari icon,start button,taskbar,theme dan juga ada penambahan dock untuk shortcut & widget tambahan.Memudahkan Kontrol di windows kamu karena semua fitur tersedia di desktop kamu. Dijamin setelah install Winstep Xtreme 11.6, desktop di PC kamu pasti jadi keren. Gak percaya? Cekidot aja gan. System Requirements Windows 2000/2003 Server/XP/Vista/7 32 bit. 500 Mhz processor. 256 MB of RAM. 50 MB of free hard disk space. Screen resolution 800x600 or higher. Silakan Download Disini Via Rapid Share Winstep Xtreme 11.6 Free & Full Version [33 Mb] NB : Buat kamu yang mau download tema Winstep Xtreme yang lebih banyak lagi,silakan lihat disini Themes Winste p Xtreme