Minggu, 28 Desember 2014

Contoh Program Memakai Array dan Function Devpascal

biar gak bingun liat judulnya langsung deh baca..   

  sekarang kita akan mempelajari tentang bagai mana sih membuat sebuah program dengan menggunakan array dengan kombinasi function dan procedure yang di implementasikan dalam program mencari gaji pegawai pasti sodara penasarankan langsung aja deh...
  demi mempermudah pemahaman sodara langsung saja kita cekidot ke contoh programnya. 

====================================================================

program gaji_pegawai;
uses crt;
const
     maks = 50 ;
type
   larik1=array [1..maks] of string;
   larik2=array [1..maks] of integer;
   larik3=array [1..maks] of real;
var
   NIP,nama,status:larik1;
   gol,jmlanak:larik2;
   gatot,PPN:larik3;

 //program lokal function dan procedure
function temp_gaji(gapok:integer;tunjangan:real):real;
   {I.S.: gaji pokok dan tunjangan sudah terdefinisi}
   {F.S.: menampilkan rumus fungsi mencari gaji + tunjangan}
       begin
         temp_gaji:=gapok + tunjangan ;
       end;

function gajiTotal(gatot,PPN:real):real;
 {I.S.: nilai gajitotal dan PPN sudah terdefinisi}
 {F.S.: menampilkan rumus fungsi mencari gaji total}
       begin
         gajiTotal:=gatot - PPN;
       end;

function gajiPokok (gol : integer):integer;
   {I.S. : Golongan sudah terdefinisi}
   {F.S. : Menghailkan fungsi gaji pokok}
       begin
            case (gol) of
                1 : gajiPokok := 1250000;
                2 : gajiPokok := 1350000;
                3 : gajiPokok := 1500000;
                4 : gajiPokok := 1750000;
              end; {case}
       end;{function}

function tunjangan (gol,gapok : integer):real;
   {I.S. : Golongan dan Gaji Pokok sudah terdefinisi}
   {F.S. : Menghailkan fungsi Tunjangan}
       begin
            case (gol) of
               1 : tunjangan := 0.1*gapok;
               2 : tunjangan := 0.125*gapok;
               3 : tunjangan := 0.15*gapok;
               4 : tunjangan := 0.2*gapok;

            end;{case}
       end; {function}

function tunjanganAnak (jmlAnak : integer ) : integer;
   {I.S.: jumlah anak sudah terdefinisi}
   {F.S.: menhahasilan fungsi tunjangan anak}
       begin
           if (jmlAnak <= 3) and (jmlAnak > 0) then
               tunjanganAnak :=jmlAnak * 150000
               else
                   if (jmlAnak > 3 ) then
                      tunjanganAnak := 3 * 150000
                      else
                         if ( jmlAnak =0 )   then
                           tunjanganAnak := 0;
          end; {function}

function f_ppn(gatot:real):real;
   {I.S.: gaji total sudah terdefinisi}
   {F.S.: menghasilkan rumus mencari PPN}
        begin
          f_ppn:= 0.1*gatot
        end;
procedure tampilGtotPPN(gatot,PPN : real;i:integer);
    {I.S.: gaji total dan PPN sudah terdefinisi}
    {F.S.: menampilkan gaji total dan PPN}
          begin
          gotoxy(54,4+i);write(PPN:0:1);
          gotoxy(68,4+i);write(gatot:0:1);
          end; {procedure}

procedure header;
    {I.S.: membuat tabel header}
    {F.S.: menampilkan tabel header}
      begin
       gotoxy(31,1);textcolor(15);
       textcolor(yellow);  write('DAFTAR GAJI PEGAWAI');
       gotoxy(1,2);textcolor(15);
       textcolor(yellow); 
       write(' ------------------------------------------------------------------------------');
          gotoxy(1,3);textcolor(15);
    textcolor(white);  write('|   NIP   |     NAMA     |  GOL  |STATUS|JML ANAK|     PPN     |   GAJI TOTAL  |');
          gotoxy(1,4);textcolor(15);
          textcolor(yellow);
    write(' ------------------------------------------------------------------------------');
       end; {procedure}

procedure inputData(var NIP,nama,status:larik1; var gol : larik2);
    {I.S.: memasukan data NIP, nama, status dan golongan gaji}
    {F.S.: menampilkan nilai PPN dan gaji total}
    var
       gapok,i,j:integer;
       begin
       i:=1;
       j:=10;

       //memasukan nip
       header;
       window(2,5,80,5);textbackground(j);
       clrscr;
       window(1,5,80,5);
       textcolor(15);
       textcolor(white); write('|         |              |       |      |        |Rp.          |Rp.           |');
       window(2,5,10,5);readln(NIP[i]);write(NIP[i]);
       while (NIP[i] <> 'stop' ) and (NIP[i] <> 'STOP' ) do
       begin

       //memasukan nama, golongan dan status         
                window(12,4+i,25,4+i);readln(nama[i]);write(nama[i]);
                window(30,4+i,33,4+i);readln(gol[i]);write(gol[i]);
                window(37,4+i,40,4+i);readln(status[i]);write(status[i]);

       //memasukan jumlah anak jika dudah menikah dan mempunyai anak
                if (status[i] = 'M') or (status[i] = 'm') then
       begin                                   window(45,4+i,46,4+i);readln(jmlAnak[i]);write(jmlAnak[i]);
                   end
                     else
                        begin
                            window(45,4+i,46,4+i);write('-');
                        end;

      



//hitung Gajipokok {gaji pokok + tunjangan gaji + tunjangan anak}
          gapok := gajiPokok(gol[i]); {function gajipokok}
  gatot[i] := temp_gaji(gapok,tunjangan(gol[i],gapok)) + tunjanganAnak(jmlAnak[i]);

       //hitung PPN  {10% dari gaji pokok}
          PPN[i] := f_ppn(gatot[i]);

       //hitung Gaji Total {Gajipokok - PPN}
          gatot[i] := gajiTotal(gatot[i],PPN[i]);

       //menampilkan gatot dan PPN
          tampilGtotPPN(gatot[i],PPN[i],i);

 //memasukan data selanjutnya
          i:=i+1;
          if i mod 2 = 0 then
             j := 14
             else
              j := 10;
          window(2,4+i,80,4+i);textbackground(j);
          clrscr;
          window(1,4+i,80,4+i);
          textcolor(15);
          textcolor(white); write('|         |              |       |      |        |Rp.          |Rp.           |');
          window(2,4+i,10,4+i);readln(NIP[i]);write(NIP[i]);
          end;{WHILE}

      //penutup
          i:=i+1;
          window(1,4+i,80,4+i);textbackground(11);
          textcolor(yellow);  write(' -----------------------------------------------------------------------------');
          readln;
end; {procedure}

//program utama
begin
window(1,1,80,24);textbackground(11);
clrscr;
inputData(NIP,nama,status,gol);

end.

     Nah nah jika sodara sudah membacanya atau mempelajari tulisan ini langasung saja di praktekan di program paccalnya supaya memperdalam pehaman sodara.

    Jika sodara sudah mencobanya ke dalam erogram paccal maka soda akan mendapatkan hasilnya seperti ini.

Gambar 1.2 ZoomOut

Gambar 1.1 Hasil program daftar gaji pegawai



saran
     jangan terlalu terpaku pada contoh, karna contoh hanya sebuah perbandingan belaka, alanakah baiknya kita punya maining tersendiri sebelum melihat kepada contoh agar kita nanatinya tau bahwa maining yang kita kelola saat ini dapat kita sempurnnakan kembali.

     terimakasih atas kunjungan sodara apabila ada kritik silahkan isi di kolom komentar, sekian salam programer. 

bab CSS klik link ini

http://afgansteep.blogdetik.com/2014/12/26/tutorial-layouting-css/


2 komentar:

silahkan di komentar mengenai postingan ini

GG parah jago banget kalo hasil sendiri

Posting Komentar