Selasa, 21 Mei 2013

Contoh program entri via pointer pada Pascal


Berikut listing progam entri data mengunakan pointer pada pascal:

program entriviapointer;
uses crt;
type psiswa=^tsiswa; {deklarasi pointer bertipe tsiswa}
     tsiswa=record
     nim:string[4];
     nama:string[15];
     umur:integer;
     alamat:string[20];
     kota:string[20];
end;
procedure tampilkanmenu(var pilihan:integer);
begin
 clrscr;
 writeln('pilih salah satu menu berikut.');
 writeln('[1] tambah data');
 writeln('[2] lihat data');
 writeln('[3] keluar program');
 writeln;
 write('masukkan pilihan anda:');readln(pilihan);
end;
label awal;
var
 a:array[1..100] of tsiswa; {variabel array bertipe tsiswa}
 p:psiswa;
 i,n,pilih:integer;
begin
 awal:
 tampilkanmenu(pilih);
 clrscr;
 case pilih of
  1:begin
   write('masukkan banyak data: ');readln(n);
   for i:=1 to n do begin
    p:=@a[i];      {mendapatkan alamat memori pada variabel a[i]}
    writeln ('data ke-',i);
    with P^ do begin   {mengisikan nilai ke variabel yg ditunjuk pointer}
    write('nim      : ');readln(nim);
    write('nama     : ');readln(nama);
    write('umur     : ');readln(umur);
    write('alamat   : ');readln(alamat);
    write('kota     : ');readln(kota);
    end;
   end;
  end;
  2:begin
   if n<>0 then begin
    write('nim':4, ' ':2,'nama':15, ' ':2,'umur':2);
    writeln('alamat':20,' ':2,'kota':12);
    for i:=1 to n do begin
     p:=@a[i];  {mendapatkan alamat variabel}
     with p^ do begin {membaca isi dari variabel yg ditunjuk pointer}
     writeln(nim:4,' ':2,nama:15, ' ':2,umur:2,alamat:20,' ':2,kota:12);
     end;
    end;
   end;
  end;
  3:halt(0);
  end;
 writeln;
 write('press anykey for back '+'to menu...');
 readln;
 goto awal;
end.

1 komentar: