Senin, 28 November 2011

Program ATM menggunakan Pascal

Buat sebuah program aplikasi ATM yang memiliki fungsionalitas sebagai berikut :
a. Membuat Rekening Baru
b. Menabung (Debit)
c. Mangambil Uang (Withdraw)
d. Transfer ke nomor rekening lain
Catatan :
- Terdapat type bentukan nasabah yang berisi field nama, nomor rekening, dan saldo
- Data disimpan dalam file bertipe nasabah
- Data tidak hilang saat program ditutup
- Pada fungsionalitas debit, withdraw, dan transfer harus dicek apakah file yang berisi data nasabah sudah ada atau belum
- Pada fungsionalitas debit, withdraw, dan transfer harus dilakukan pengecekan apakah nomor rekening yang dimaksud terdapat dalam data atau tidak.
- Pada fungsionalitas withdraw dan transfer harus dilakukan pengecekan saldo apakah saldo cukup atau tidak

Jawaban : DOWNLOAD

program atm;
uses crt;
type nasabah=record
    nama:string;
    norek:string;
    saldo:real;
end;
var
    f:file of nasabah;
    nsb,nsb1,temp:nasabah;
    pil,i,i2:integer;
    jumtrans:integer;
begin
repeat
    clrscr;
    writeln('1.buat rekening baru');
    writeln('2.debit');
    writeln('3.withdraw');
    writeln('4.transfer');
    writeln('5.view data rekening');
    writeln('6.exit');
    write('pilihan : ');readln(pil);
    case pil of
        1:begin
                assign(f,'data.dat');
                {$i-}
                reset(f);
                {$i+}
                if IOresult<>0 then
                begin
                    rewrite(f);
                end
                else
                begin
                    seek(f,filesize(f));
                end;
                write('nomor rekening : ');readln(temp.norek);
                write('nama : ');readln(temp.nama);
                write('saldo :');readln(temp.saldo);
                write(f,temp);
                write('sukses.......');
 close(f);
                readln;
            end;
        2:begin
 assign(f,'data.dat');
                {$i-}
                reset(f);
                {$i+}
                if IOresult<>0 then
                begin
                    writeln('belum ada data');
                end
                else
                begin
                    writeln('nomor rekening : ');readln(temp.norek);
                    writeln('jumlah : ');readln(temp.saldo);
  i:=0;
                    while not eof(f) do
                    begin
                        read(f,nsb);
                        if(nsb.norek=temp.norek) then break;
   inc(i);
                    end;
  seek(f,i);
                    nsb.saldo:=nsb.saldo+temp.saldo;
                    write(f,nsb);
                end;
 close(f);
 write('sukses.......');
 readln;
           end;
3:begin
assign(f,'data.dat');
                {$i-}
                reset(f);
                {$i+}
                if IOresult<>0 then
                begin
                    writeln('belum ada data');
                end
                else
                begin
                    writeln('nomor rekening : ');readln(temp.norek);
                    writeln('jumlah : ');readln(temp.saldo);
  i:=0;
                    while not eof(f) do
                    begin
                        read(f,nsb);
                        if(nsb.norek=temp.norek) then break;
   inc(i);
                    end;
  seek(f,i);
                    nsb.saldo:=nsb.saldo-temp.saldo;
                    write(f,nsb);
 end;
 close(f);
 write('sukses.......');
 readln;
end;
4:begin
 assign(f,'data.dat');
                {$i-}
                reset(f);
                {$i+}
                if IOresult<>0 then
                begin
                    writeln('belum ada data');
                end
                else
                begin
                    writeln('nomor rekening anda: ');readln(nsb.norek);
  writeln('nomor rekening tujuan: ');readln(nsb1.norek);
                    writeln('jumlah : ');readln(jumtrans);
  i:=0;
                    while not eof(f) do
                    begin
                        read(f,temp);
                        if(nsb.norek=temp.norek) then break;
   inc(i);
                    end;
  seek(f,i);
                    temp.saldo:=temp.saldo-jumtrans;
                    write(f,temp);
  reset(f);
  i2:=0;
  while not eof(f) do
                    begin
                        read(f,temp);
                        if(nsb1.norek=temp.norek) then break;
   inc(i2);
                    end;
  seek(f,i2);
                    temp.saldo:=temp.saldo+jumtrans;
                    write(f,temp);
 end;
 write('sukses.......');
 close(f);
 readln;
end;
5:begin
assign(f,'data.dat');
                {$i-}
                reset(f);
                {$i+}
                if IOresult<>0 then
                begin
                    writeln('belum ada data');
                end
                else
                begin
                    writeln('nomor rekening : ');readln(temp.norek);
  i:=0;
                    while not eof(f) do
                    begin
                        read(f,nsb);
                        if(nsb.norek=temp.norek) then
   begin
    writeln('nama : ',nsb.nama);
    writeln('nomor rekening : ',nsb.norek);
    writeln('saldo : Rp.',nsb.saldo:0:2);
    break;
   end;
   inc(i);
                    end;

                end;
 close(f);
 readln;
end;
end;
until(pil=6);
end.