Pemrograman pascal

program statistika_deskriptif;
uses crt;
var n,i,j,k,tengah,q1,q3,modus:integer;
a,sum1,sum2,rata,varian,selisih:real;
data,angka,jumlah:array [0..100] of real;

begin
writeln('berapa jumlah data yang dimasukan? (max 100)');
readln(n);
writeln('masukan data');
{syntax untuk memasukkan data dalam array}
for i:=1 to n do
begin
write('data ke-',i,' ');
readln(a);
data[i]:=a;
end;

{syntax untuk menghitung rata-rata}
for i:=1 to n do
begin
sum1:=sum1+data[i];
end;
rata:=sum1/n;

{syntax untuk menghitung varian setelah diketahui rata-ratanya}
for i:=1 to n do
begin
selisih:=sqr(data[i]-rata);
sum2:=sum2+selisih;
end;
varian:=sum2/(n-1);

{syntax untuk mengurutkan data pada array}
for i:=1 to n do
for j:=i+1 to n do
begin
if data[i]>data[j] then
begin
data[0]:=data[j];
data[j]:=data[i];
data[i]:=data[0];
end;
end;

{syntax untuk mengetahui letak/posisi Q1, median, dan Q3 dalam array}
if n mod 2 = 1 then
begin
tengah:=(n+1) div 2;
if (tengah-1) mod 2 = 1 then
begin
q1:=(tengah+1) div 2;
q3:=tengah+((tengah+1) div 2);
end
else
begin
q1:=(tengah div 2);
q3:=tengah+(tengah div 2);
end;
end
else
begin
tengah:=(n div 2);
if tengah mod 2 = 1 then
begin
q1:=(tengah+1) div 2;
q3:=tengah+((tengah+1) div 2);
end
else
begin
q1:=(tengah div 2);
q3:=tengah+(tengah div 2);
end;
end;

{syntax untuk menghitung frekwensi setiap data dalam array yang sudah diurutkan}
k:=1;
for i:=1 to n-1 do
begin
if data[i]=data[i+1] then
begin
angka[k]:=data[i];
jumlah[k]:=j+1;
end
else
begin
inc(k);
j:=1;
angka[k]:=data[i+1];
jumlah[k]:=j;
end;
end;

{syntax untuk mengetahui letak/posisi modus dalam array yang sudah diurutkan}
for i:=1 to k-1 do
begin
if jumlah[i] else
if jumlah[i]>jumlah[i+1] then modus:=i
else modus:=0;
end;

{syntax menuliskan semua hasil statistika deskrpitif}
writeln;
writeln('hasilnya');
writeln('rata-rata ',rata:0:2);
writeln('varian ',varian:0:2);
writeln('nilai max ',data[n]:0:2);
writeln('nilai min ',data[1]:0:2);
if n mod 2 = 1 then writeln('nilai median ',data[tengah]:0:2)
else writeln('nilai median ',(data[tengah]+data[tengah+1])/2:0:2);
if n mod 2 = 1 then
begin
tengah:=(n+1) div 2;
if (tengah-1) mod 2 = 1 then
begin
writeln('nilai Q1 ',data[q1]:0:2);
writeln('nilai Q3 ',data[q3]:0:2);
end
else
begin
writeln('nilai Q1 ',(data[q1]+data[q1+1])/2:0:2);
writeln('nilai Q3 ',(data[q3]+data[q3+1])/2:0:2);
end;
end
else
begin
tengah:=(n div 2);
if tengah mod 2 = 1 then
begin
writeln('nilai Q1 ',data[q1]:0:2);
writeln('nilai Q3 ',data[q3]:0:2);
end
else
begin
writeln('nilai Q1 ',(data[q1]+data[q1+1])/2:0:2);
writeln('nilai Q3 ',(data[q3]+data[q3+1])/2:0:2);
end;
end;
writeln('nilai modus ',angka[modus]:0:2);

end.

0 Response to "Pemrograman pascal"