0% menganggap dokumen ini bermanfaat (0 suara)
40 tayangan7 halaman

Program Antrian Pendaftaran Sederhana

Program ini membuat dan mengelola antrian pendaftaran menggunakan konsep pointer dan linked list. Program dapat membuat antrian baru, menambahkan pendaftar ke antrian, mengeluarkan pendaftar yang selesai, dan menutup loket pendaftaran. Informasi antrian disimpan dalam node yang dihubungkan menggunakan pointer.

Diunggah oleh

Risca anggreini
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
40 tayangan7 halaman

Program Antrian Pendaftaran Sederhana

Program ini membuat dan mengelola antrian pendaftaran menggunakan konsep pointer dan linked list. Program dapat membuat antrian baru, menambahkan pendaftar ke antrian, mengeluarkan pendaftar yang selesai, dan menutup loket pendaftaran. Informasi antrian disimpan dalam node yang dihubungkan menggunakan pointer.

Diunggah oleh

Risca anggreini
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

program antriann;

uses crt;

type antrian=^node;

node=record

isi:string[10];

next:antrian;

end;

var depan,belakang:antrian;

pointer:string;

x:string;

cr:string;

pil:char;

procedure baru(x:string; var tunjuk:antrian);

begin

new(tunjuk);

tunjuk^.isi:=x;

tunjuk^.next:=nil;

end;

function isempty(depan, belakang:antrian):boolean;

begin

isempty:=(depan=nil) and(belakang=nil)=true

end;
procedure tambahantri(var belakang:antrian);

var x:string;

tunjuk:antrian;

begin

write('Masakuna nama orang yang mau masuk antrian');

readln(x);

baru(x,tunjuk);

belakang^.next:=tunjuk;

belakang:=tunjuk;

end;

procedure hapusdepan(var depan, belakang:antrian);

var bantu:antrian;

begin

if isempty(depan, belakang) then

writeln('Antrian kosong')

else if depan=belakang then

begin

depan:=nil; belakang:=nil

end

else

begin

bantu:=depan^.next;

depan:=bantu;
end;

end;

procedure selesaiantri(var depan, belakang:antrian; var x:string);

begin

if depan= nil then

x:='antrian kosong'

else

begin

x:=depan ^.isi;

hapusdepan(depan,belakang);

end;

end;

procedure buatantrian(var depan,belakang:antrian);

var c:char; tunjuk:antrian; i:integer;

begin

i:=0;

depan:=nil; belakang:=nil;

repeat

i:=i+1;

write('masukan nama ke ',i,'='); readln(x);

baru(x,tunjuk);

if isempty(depan,belakang) then

begin
depan:=tunjuk;

belakang:=tunjuk;

end

else

begin

belakang^.next:=tunjuk;

belakang:=tunjuk;

end;

repeat

write('Tambah data yang antri [Y/T]= ');

readln(c);

until c in['T','t','y','Y'];

until c in['T','t'];

end;

procedure cetak(depan:antrian;var output:string);

var bantu:antrian; y:string;

begin

bantu:=depan;

output:='Loket Pendaftaran';

if isempty(depan,belakang) then output:='Antrian Kosong'

else

begin

while bantu<>nil do

begin
y:=bantu^.isi;

output:=y+'->>'+output;

bantu:=bantu^.next;

end;

output:='pintu masuk antrian->>'+output;

end;

end;

begin

clrscr;

buatantrian(depan,belakang);

repeat

repeat

writeln;

writeln('-----------------------');

writeln('[1] Buat Antrian Baru ');

writeln('[2] Tambah Antrian Pendaftar ');

writeln('[3] Ambil orang yang selesai daftar');

writeln('[4] Loket pendaftaran Ditutup');

writeln('--------------------------------------');

write('Pilihan anda : '); pil:=readkey;writeln(pil);

writeln;

until (pil>='1') and (pil<='4');

case pil of
'1' :begin

buatantrian(depan,belakang);

writeln;

writeln;

writeln;

end;

'2' :begin

tambahantri(belakang);

writeln;

writeln('setelah ditambah antrian menjadi : ');

cetak(depan,pointer);

writeln(pointer);

writeln;

writeln;

writeln;

end;

'3' : begin

selesaiantri(depan,belakang,x);

writeln(' ',x,' Telah selesai mendaftar, maka ia keluar dari antrian');

writeln;

writeln('Antrian menjadi :');

cetak(depan,pointer);

writeln(pointer);
writeln;

writeln;

writeln;

end;

'4' : begin

writeln('Loket telah ditutup ');

writeln('Antrian dilanjutkan hari berikutnya');

exit;

end;

end;

until (pil='8');

end.

end.

Anda mungkin juga menyukai