KEMBAR78
Program queue dengan single linked list | DOCX
PROGRAM
KONSEP
Nama : Renny Dwi Yuni
NIM : 121080200076
Kelas : 2 B -Sore
Program Queue dengan Single Linked List
Program Queue_Single;
uses wincrt;
const max:byte=7;
type penunjuk=^data;
data=record
info:string;
berikut:penunjuk;
end;
var awal,akhir:penunjuk;
pil:char;
jml:byte;
cari,nama:string;
procedure inisialisasi;
begin
awal:=nil;
akhir:=nil;
jml:=0;
end;
procedure tambah_akhir;
var baru:penunjuk;
nama:string;
begin
if jml=max then
begin
write('Antrian Penuh');
readln;
end
else
begin
write('Nama:');readln(nama);
new(baru);
baru^.berikut:=nil;
baru^.info:=nama;
if awal=nil then
begin
awal:=baru;
akhir:=baru;
inc(jml);
end else
begin
akhir^.berikut:=baru;
akhir:=baru;
Deklarasi Sebuah Queue Dinamis dengan Single
Linked List
Penunjuk = Point
Data = RecPoint
Berikut = Next
Awal = Head
Akhir = Tail
Procedure Create
Awal := nil;
Akhir :=nil;
Procedure Insert
New(Baru);
Tail^.Next:=now;
Now^.Isi:=nil;
If head = nil then
Head := now;
Tail := now;
Type
Point = ^RecPoint;
RecPoint = Record
Isi : TipeData;
Next : Point;
End;
Var
Head, Tail, Now : Point;
Procedure Create;
Begin
Head := Nil;
Tail := Nil;
End;
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;
inc(jml);
end;
end;
end;
procedure hapus_awal;
var bantu:penunjuk;
begin
if awal=nil then
begin
write('Antrian Kosong');
readln;
end
else
begin
bantu:=awal;
awal:=awal^.berikut;
dispose(bantu);
dec(jml);
end;
end;
procedure hapus_tengah;
var bantu1,bantu2:penunjuk;
ketemu:boolean;
begin
if awal=nil then
begin
write('Antrian Kosong');
readln;
end
else
begin
write('Nama Pengantri Yang batal:');readln(cari);
if awal^.info=cari then
hapus_awal
else
begin
ketemu:=false;
bantu1:=awal;
while (bantu1<>nil) and not ketemu do
begin
if bantu1^.berikut^.info=cari then
ketemu:=true
else
bantu1:=bantu1^.berikut;
end;
if ketemu then
begin
bantu2:=bantu1^.berikut;
bantu1^.berikut:=bantu1^.berikut^.berikut;
dispose(bantu2);
end
Procedure Delete Head
If Head = nil then
Begin
Now:=Head;
Head:=Had^.Next;
Dispose (Now);
Prosedure Hapus Now
If Head = nil then
X:=head;
X:=X^.next;
X^.next:=head^.next;
Head:=Head^.next
Dispose(now);
Procedure DeleteHead;
Begin
If head <> nil then
Begin
Now := Head;
Head := Head^.Next;
Dispose(Now);
Now := Head;
End;
End;
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;
else
begin
write('Nama Pengantri Tidak Ada');
readln;
end; end;
end; end;
procedure tampil;
var bantu:penunjuk;
i:integer;
begin
if awal=nil then
write('Antrian Kosong')
else
begin
bantu:=awal;
i:=1;
while bantu<>nil do
begin
writeln(i,'.[',bantu^.info,']');
bantu:=bantu^.berikut;
inc(i);
end;
end;
readln;
end;
procedure menu;
begin
writeln('MENU PILIHAN ANDA');
writeln('=================');
writeln('1.Tambah Antrian');
writeln('2.Batal Antrian');
writeln('3.Memanggil Pengantri');
writeln('4.Tampil Antrian');
writeln('5.Exit');
writeln;
write('Pilihan Anda :');readln(pil);
end;
begin
inisialisasi;
repeat
menu;
case pil of
'1':tambah_akhir;
'2':hapus_tengah;
'3':hapus_awal;
'4':tampil;
end;
until pil='5';
end.
Procedure menampilkan Queue
Prosedure Membua tampilan Menu
Bagian Program Utama
Begin
Isi
End.

Program queue dengan single linked list

  • 1.
    PROGRAM KONSEP Nama : RennyDwi Yuni NIM : 121080200076 Kelas : 2 B -Sore Program Queue dengan Single Linked List Program Queue_Single; uses wincrt; const max:byte=7; type penunjuk=^data; data=record info:string; berikut:penunjuk; end; var awal,akhir:penunjuk; pil:char; jml:byte; cari,nama:string; procedure inisialisasi; begin awal:=nil; akhir:=nil; jml:=0; end; procedure tambah_akhir; var baru:penunjuk; nama:string; begin if jml=max then begin write('Antrian Penuh'); readln; end else begin write('Nama:');readln(nama); new(baru); baru^.berikut:=nil; baru^.info:=nama; if awal=nil then begin awal:=baru; akhir:=baru; inc(jml); end else begin akhir^.berikut:=baru; akhir:=baru; Deklarasi Sebuah Queue Dinamis dengan Single Linked List Penunjuk = Point Data = RecPoint Berikut = Next Awal = Head Akhir = Tail Procedure Create Awal := nil; Akhir :=nil; Procedure Insert New(Baru); Tail^.Next:=now; Now^.Isi:=nil; If head = nil then Head := now; Tail := now; Type Point = ^RecPoint; RecPoint = Record Isi : TipeData; Next : Point; End; Var Head, Tail, Now : Point; Procedure Create; Begin Head := Nil; Tail := Nil; End; 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;
  • 2.
    inc(jml); end; end; end; procedure hapus_awal; var bantu:penunjuk; begin ifawal=nil then begin write('Antrian Kosong'); readln; end else begin bantu:=awal; awal:=awal^.berikut; dispose(bantu); dec(jml); end; end; procedure hapus_tengah; var bantu1,bantu2:penunjuk; ketemu:boolean; begin if awal=nil then begin write('Antrian Kosong'); readln; end else begin write('Nama Pengantri Yang batal:');readln(cari); if awal^.info=cari then hapus_awal else begin ketemu:=false; bantu1:=awal; while (bantu1<>nil) and not ketemu do begin if bantu1^.berikut^.info=cari then ketemu:=true else bantu1:=bantu1^.berikut; end; if ketemu then begin bantu2:=bantu1^.berikut; bantu1^.berikut:=bantu1^.berikut^.berikut; dispose(bantu2); end Procedure Delete Head If Head = nil then Begin Now:=Head; Head:=Had^.Next; Dispose (Now); Prosedure Hapus Now If Head = nil then X:=head; X:=X^.next; X^.next:=head^.next; Head:=Head^.next Dispose(now); Procedure DeleteHead; Begin If head <> nil then Begin Now := Head; Head := Head^.Next; Dispose(Now); Now := Head; End; End; 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;
  • 3.
    else begin write('Nama Pengantri TidakAda'); readln; end; end; end; end; procedure tampil; var bantu:penunjuk; i:integer; begin if awal=nil then write('Antrian Kosong') else begin bantu:=awal; i:=1; while bantu<>nil do begin writeln(i,'.[',bantu^.info,']'); bantu:=bantu^.berikut; inc(i); end; end; readln; end; procedure menu; begin writeln('MENU PILIHAN ANDA'); writeln('================='); writeln('1.Tambah Antrian'); writeln('2.Batal Antrian'); writeln('3.Memanggil Pengantri'); writeln('4.Tampil Antrian'); writeln('5.Exit'); writeln; write('Pilihan Anda :');readln(pil); end; begin inisialisasi; repeat menu; case pil of '1':tambah_akhir; '2':hapus_tengah; '3':hapus_awal; '4':tampil; end; until pil='5'; end. Procedure menampilkan Queue Prosedure Membua tampilan Menu Bagian Program Utama Begin Isi End.