{$APPTYPE CONSOLE}
uses
SysUtils;
type point = ^tpoint;
tpoint = record
nim : String [10];
nama : String [15];
next,prev : point;
end;
var
head, tail, now : point;
pil, insert : Integer;
j,k :string;
procedure insertafter(inim, inama : String);
begin
new(now);
now^.nim := inim;
now^.nama := inama;
if head = nil then
begin
head:= now;
tail:= now;
now^.next:= nil;
now^.prev := nil;
end
else
begin
tail^.next:= now;
now^.prev:= tail;
tail := now;
tail^.next:= nil;
end;
end;
Procedure InsertBefore(inim, inama : String);
Begin
New(now);
now^.nim := inim;
now^.nama := inama;
If Head=Nil then
Begin
Head := Now;
Now^.Next := Nil;
Now^.Prev := Nil;
End
Else
Begin
Head^.prev := now;
Now^.next := head;
Head := Now;
Head^.Prev := Nil;
End;
End;
procedure update;
var inim : String;
a,b : String;
begin
Write('Masukkan NIM : '); Readln (inim);
now:= head;
while now <> nil do
begin
if now^.nim = inim then
begin
Writeln('NIM : ',now^.nim);
Writeln('NAMA : ',now^.nama);
Writeln ('..:: Masukkan Data Baru ::..');
Write('NIM : '); Readln(a);
Write('NAMA : '); Readln(b);
now^.nim := a;
now^.nama := b;
end
else
Writeln('Data Tidak Ditemukan ');
now:=now^.next;
end;
end;
procedure deldata;
var inim : String;
begin
Write('Masukkan NIM : '); Readln(inim);
now := head;
while now <> nil do
begin
if now^.prev^.nim = inim then
begin
now^.prev^.next := now^.next;
now^.next^.prev := now^.prev;
Writeln('Data ',inim,' Terhapus');
end;
end;
end;
procedure view;
begin
now:= head;
Writeln('Daftar Data Mahasiswa STMIK Kadiri');
Writeln('__________________________________');
Writeln('NIM':5, 'NAMA':15);
Writeln('__________________________________');
while now <> nil do
begin
Writeln(now^.nim:5, now^.nama:15);
now:=now^.next;
end;
Writeln('__________________________________');
end;
procedure deletepoint;
begin
now := head;
while now <> nil do
begin
now := now^.next;
Dispose(now^.prev);
end;
end;
{Program Utama}
begin
while pil<>6 do
begin
Writeln;
Writeln(' ..:: Menu ::..');
Writeln;
Writeln('1. Insert Data 4. View Data');
Writeln('2. Edit Data 5. Delete Pointer');
Writeln('3. Delete Data 6. Exit');
Writeln;
Write('Masukkan Plihan Anda : ');
Readln(pil);
if pil = 1 then
begin
Writeln('1. Insert Data After');
Writeln('2. Insert Data Before');
Write('Masukkan Pilihan'); Readln(insert);
case insert of
1: begin
write('NIM : ');readln(j);
write('NAMA : ');readln(k);
insertafter(j,k);
end;
2 : begin
write('NIM : ');readln(j);
write('NAMA : ');readln(k);
InsertBefore(j,k);
end;
end;
end
else if pil = 2 then
update
else if pil = 3 then
deldata
else if pil = 4 then
view
else if pil = 5 then
deletepoint
else
exit;
end;
- end.
Tidak ada komentar:
Posting Komentar