ARRAY DAN RECORD


ARRAY
Suatu hari karena melihat kemajuan teknologi seorang guru ingin mengetahui bilangan prima yang ada pada bilangan antara 1 sampai dengan 200 tanpa harus menghitung manual,maka guru tersebut menyuruh anaknya yang seorang programmer untuk membuatkan program mencari bilangan prima antara 1 sampai 200, si programmer membuat program tersebut dengan turbo pascal,program tersebut dibuat dengan bagian dari pascal yaitu array, maka dibuatlah program tersebut :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses winCrt;
Var
  Prima : Array[1..200] of Integer;
  i,j : Integer;
  bil : Integer;
Begin
  ClrScr;
  For i := 2 to 200 Do
  Begin
    Prima[i]:=i;
    For j:= 2 to i-1 Do
    Begin
      bil := (i mod j); {* i dibagi j dicek apakah 0*}
      If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
    End;
    If Prima[i] 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
  End;
  Readln;
End.
Program tersebut mencari bilangan prima cara kerja dari program tersebut adalah mengecek apakah bilangan yang ada dapat dibagi dan habis atau tidak,jika bilangan tersebut habis dibagi maka bukan bilangan prima,tapi jika tidak habis dibagi berarti prima,terus berulangan sampai dengan angka 200.
RECORD
Pada kasus ini ada seorang kasir sebuah penginapan membutuhkan sebuah program untuk merecord data seorang wisatawan yang akan menginap pada sebuah hotel.Record tentang nama,Jenis Kelamin,Alamat,Umur.
Uses wincrt;
Type
  wisatawan = Record
  Nama              : string[30];
  JenisKelamin     : string[20];
  Alamat            : string[20];
  Umur              : real;
end;
Var
  Wstw:Wisatawan;
Begin
  ClrScr;
  write ('Nama:');ReadLn(Wstw.Nama);
  write ('Alamat:');Readln(Wstw.Alamat);
  write ('Jenis Kelamin:');Readln(Wstw.JenisKelamin);
  write ('Umur:');Readln(Wstw.Umur);
  Writeln;
  Writeln('Nama Anda:',Wstw.Nama);
  Writeln('Alamat Anda:',Wstw.Alamat);
  Writeln('Jenis Kelamin Anda:',Wstw.JenisKelamin);
  Writeln('Umur Anda:',Wstw.Umur:0:0);
End.



Array satu dimensi CONTOH PROGRAM.


uses wincrt;
var
 

nilai : array[1..5] of integer;
i,jumlahdata : integer;

begin
write('Masukan Jumlah data : ');readln(jumlahdata);

for i:=1 to jumlahdata do
begin
write('Nilai ke- ',i,' : '); readln(nilai[i]);
end; 


readln;

writeln('Data ke 3 adalah ',nilai[3]);
end. 




Di atas ini adalah program sederhana array saatu dimensi.

nilai : array[1..5] of integer;
i,jumlahdata : integer;
 
nilai : variabel arraynya
array[1..5] : data dari array variabel nilai dari 1 sampai 5
of integer : tipe data nilai yang nantinya di input integer atau bilangan bulat.
i : variabel untuk isi / value array dari 1 sampai 5 agar program bisa lebih dinamis.
jumlahdata : jumlah data array yang akan di input


write('Masukan Jumlah data : ');readln(jumlahdata);
jumlahdata : jumlah data array yang akan di input dari 1 sampai 5


for i:=1 to jumlahdata do
begin
write('Nilai ke- ',i,' : '); readln(nilai[i]);
end; 

i:=1 to jumlahdata : pengulangan dari 1 sampai jumlahdata yng di masukan
ke- ',i,' : menampilkan data ke -

nilai[i] : menyimpan nilai yang di masukan kedalam array


writeln('Data ke 3 adalah ',nilai[3]); 
nilai[3] : Data dari array ke 3.



Contoh Array Didalam record

uses wincrt;
type pegawai=record                                         
nik,nama:string;                                                 
gaji:real;                                                           
status:char;
totalgaji:real;
end;
    larikpeg=array[1..20] of pegawai;  
    var
    peg:larikpeg;
    n,i,j:byte;
    lagi:char;
    xx:pegawai;
begin
     {mengisi Data Pegawai}
     Repeat       
     clrscr;
     lagi:='y';
     while lagi='y' do
     begin
          inc(n);
          writeln(' mengisi data pegawai ke ',n);                                     
          write(' masukan nik ==> ');readln(peg[n].nik);
          write(' masukan nama ==> ');readln(peg[n].nama);
          write(' gaji pokok ==> ');readln(peg[n].gaji);
     write(' status ? <menikah=k, tidak=t> ');readln(peg[n].status);
      if peg[n].status='k' then peg[n].totalgaji:= peg[n].gaji+(0.2*peg[n].gaji)
          else peg[n].totalgaji:=peg[n].gaji+(0.1*peg[n].gaji);
          writeln;
          write(' apakah akan mengisi lagi y/t? ');readln(lagi);
          writeln;
     end;
     clrscr;
     writeln(' ':10,'Daftar gaji pegawai PT. Maju Terus');
     writeln(' ========================================================= ');
     writeln(' | no |   nik  |   nama    |   gaji pokok  |   gaji bersih | ');
     writeln(' ========================================================= ');
     for i:=1 to n do
         writeln(i:4,peg[i].nik:9,peg[i].nama:12,'    Rp',peg[i].gaji:10:2,'    Rp',peg[i].totalgaji:10:2);
         writeln(' ======================================================= ');
     {mengurutkan}
     writeln;
     for i:=1 to n-1 do
     begin
          for j:=i+1 to n do
          begin
               if (peg[i].totalgaji<peg[j].totalgaji) then
               begin
                    xx:=peg[i];peg[i]:=peg[j];peg[j]:=xx;
               end;
          end;
   end;  
writeln(' ':3,'Daftar gaji pegawai PT. Maju Terus Sesudah Diurutkan');
     writeln(' ========================================================= ');
     writeln(' | no |   nik  |   nama    |   gaji pokok  |   gaji bersih | ');
     writeln(' ========================================================= ');
     for i:=1 to n do
         writeln(i:4,peg[i].nik:9,peg[i].nama:12,'    Rp',peg[i].gaji:10:2,'    Rp',peg[i].totalgaji:10:2);
         writeln(' ====================================================== ');
         writeln;
               write(' Apakah Ingin Menambah Data Karyawan lagi y/t? ');readln(lagi);
              until(lagi='t');
end.











Contoh Prgoram Pascal Gabungan Procedure dan If Then Tentang Bangun Datar


program cnth_function_deir;
uses wincrt;
var pil:integer; luas:real;

procedure bujur_sangkar;
var sisi:integer;

    begin
    clrscr;
    gotoxy(14,5);write('###___Mencari Luas Bujur Sangkar___###');
    gotoxy(20,6);write('Input Sisi Panjang : ');
    gotoxy(20,7);write('Luas Bujur Sangkar adalah : ');
    gotoxy(41,6);readln(sisi);

    luas:=sisi*sisi;
    gotoxy(47,7);write(luas:6:1);
    repeat until keypressed;
    end;

procedure siku_siku;
var alas,tinggi:integer;
    begin
    clrscr;
    gotoxy(10,5);write('Mencari Luas Segitiga Siku-siku');
    gotoxy(14,6);write('Input Panjang Alas : ');
    gotoxy(14,7);write('Input Tinggi Segitiga : ');
    gotoxy(14,8);write('Luas Segitiga adalah : ');
    gotoxy(35,6);readln(alas);
    gotoxy(38,7);readln(tinggi);
    luas:=0.5*alas*tinggi;
    gotoxy(36,8);write(luas:6:1);
    repeat until keypressed;
    end;

    begin
    clrscr;
    gotoxy(14,2);write('Program Menghitung Luas Bangun');
    gotoxy(14,7);write('*** Bujur Sangkar dan Segitiga Siku-Siku ***');
    gotoxy(14,9);write('1. Luas Bujur Sangkar');
    gotoxy(14,10);write('2. Luas Segitiga Siku-siku');
    gotoxy(14,14);write('Selesai');
    gotoxy(14,3);write('Input Pilihan [1-2] : ');
    gotoxy(36,3);readln(pil);

    if pil=1 then
       bujur_sangkar
    else if pil=2 then
         siku_siku;
         repeat until keypressed;
end.

Komentar

Postingan populer dari blog ini

Object primitif dalam grafika komputer

IP Address

Makalah Integrasi Sistem