Monday, March 28, 2011

Pascal Syntax/Program For Descriptive Statistics Analysis

Posting kali ini akan saya tampilkan syntax untuk penghitungan statistika deskriptif menggunakan program turbo pascal. program-program statistika ini sangat membantu dalam proses pengolahan data dalam statistika deskriptif, dapat dipelajari dalam berbagai mata kuliah seperti Pengantar Ilmu Komputer, Program Komputer, dan Komputasi Statistika. berikut ini adalah syntax turbo pascal untuk statistika deskriptif :

program statistika_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('jumlah data yang akan 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.

No comments:

Post a Comment