Sabtu, 08 Juni 2013

contoh coding list mahasiswa

program Project1;

{$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