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

Cara Instal Appserv 2.5.10 di Wndows 7

hehe untuk kali nhe , sya mw coba share cara instal appserv d windows seven, walau ini info lama , tp mdah2an bsa membantu agan2 ,,, langkah2 nha yaitu : download appserv 2.5.10 nya di APPSERVNETWORK jalankan appserv.exe nya. pada tampilan form berikut, pada server name isikan dengan "localhost" (tanpa tanda kutip) dan pada administration email address isikan dengan email anda misalnya lawlietsan1302@gmail.com pada form password , pada enter root password , isikan dengan "root" dan re password , isikan dengan root. setelah itu , pilih instal... tunggu hingga finis.. lalu coba anda buka localhost pada web browser.. setelah muncul tampilan, pilih maka akan muncul form autentikasi, isikan pada username/nama pengguna dengan "root" dan pada password dengan "root"... lalu tekan ok... ok, dan selesai,, selamat mencoba :)