Delete Before
Yaitu menghapus data di sebelah kanan dari simpul
program dlete;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
point = ^recKar ;
reckar = record
id_mhs : string ;
nama : string ;
prodi : string ;
semester : integer ;
next,prev : point;
end;
var
head,now,tail : point ;
jawab : char ;
no : byte ;
procedure insertAfter ; // insert After
begin
new(now) ;
if head =nil then
begin
head := now ;
tail := now ;
head^.prev := nil ;
tail^.prev := nil ;
end
else
begin
tail^.next := now ;
now^.prev := tail ;
tail := now ;
tail^.next := nil ;
end;
end;
procedure deleteBefore ;
begin
now := head ;
if now <> tail then
begin
head := now^.next ;
head^.prev := nil ;
end
else
begin
tail := nil ;
head := nil ;
end;
if now <> nil then Dispose(now) ;
end;
begin
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
repeat
insertAfter ;
write('ID MAHASISWA :'); readln(now^.id_mhs);
write('NAMA :'); readln(now^.nama);
write('PRODI :'); readln(now^.prodi);
write('SEMESTER :'); readln(now^.semester);
writeln ;
write('Apakah ingin isi data lagi (Y/T)? ');readln(jawab);
writeln ;
until upcase(jawab) ='T' ;
writeln ;
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
no := 1 ;
now := head ;
while now <> nil do
begin
writeln (No,'. ID MAHASISWA :',Now^.id_mhs) ;
writeln (' NAMA :',Now^.nama) ;
writeln (' PRODI :',Now^.prodi) ;
writeln (' SEMESTER :',Now^.semester) ;
writeln ;
inc(no) ;
now := now^.next ;
end;
write('Apakah anda ingin menghapus Data (Y/T)? : ');Readln(jawab);
if UpCase(jawab)='Y' then deleteBefore ;
writeln ;
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
no := 1 ;
now := head ;
while now <> nil do
begin
writeln (No,'. ID MAHASISWA :',Now^.id_mhs) ;
writeln (' NAMA :',Now^.nama) ;
writeln (' PRODI :',Now^.prodi) ;
writeln (' SEMESTER :',Now^.semester) ;
writeln ;
inc(no) ;
now := now^.next ;
end;
readln ;
end.
No comments:
Post a Comment