program atatistika_deskriptif;
uses wincrt;
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('SELAMAT DATANG DI PROGRAM STATISTIKA DESKRIPTIF');WRITELN('***=============================***');writeln;
writeln('Berapa jumlah data yang ingin anda dimasukan? (max 100)');
write('silahkan masukan data:');
READLN(N); WRITELN;
{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 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 data 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 modus dalam array}
for i:=1 to k-1 do
begin
if jumlah[i]>jumlah[i+1] then modus:=i
else modus:=0;
end;
{syntax menuliskan semua hasil statistika deskrpitif}
writeln;
writeln('**HASILNYA ADALAH SEBAGAI BERIKUT**');
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);
WRITELN;
end.
Tidak ada komentar:
Posting Komentar