Rabu, 27 Juni 2012

TUGAS FINAL PEMROGRAMAN KOMPUTER


1. 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
clrscr;
writeln('Welcome to Statistics Description Program');
writeln('This program is used for measure description program');
writeln('====================================================');
writeln('Berapa jumlah data yang ingin anda dimasukan? (max 100)'); write('n= ');
readln(n);
writeln('silahkan masukkan data anda');
{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');
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.

Hasil Output :


2. program Perkalian_Matriks;
uses crt;
var a,b,c: array[1..10,1..10] of integer;
i,j,k1,k2,b1,b2,sum,r:integer;

begin
clrscr;
writeln;
writeln('MENGHITUNG PERKALIAN MATRIKS');
write('Masukkan jumlah baris Matrik A = ');readln(b1);
write('Masukkan jumlah kolom Matrik A = ');readln(k1);
write('Masukkan jumlah baris Matrik B = ');readln(b2);
write('Masukkan jumlah kolom Matrik B = ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
for i:=1 to b2 do
for j:=1 to k2 do
readln(b[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik B');
writeln('===================');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(b[i,j],' ');
writeln;

end;
writeln;
writeln('Matrik A*B');
writeln('================');
for i:=1 to b1 do
begin
for j:=1 to k2 do
begin
sum:=0;
for r:=1 to k1 do
sum:=sum+a[i,r]*b[r,j];
c[i,j]:=sum;
write(c[i,j]:2,' ');
end;
writeln;
end;
end.

Hasil Output :


3. program Kombinasi_Permutasi;
uses crt;
var
a,b,a_k,kombinasi,permutasi:real;
i,n,k:longint;
begin
clrscr;
writeln;
writeln('MENGHITUNG PERMUTASI DAN KOMBINASI');
write('masukkan bilangan n= ');readln(n);
write('masukkan bilangan k= ');readln (k);
a:=1;
b:=1;
a_k:=1;
for i:=2 to n do
a := a*i;
for i:=2 to k do
b :=b*i;
for i :=2 to (n-k) do
a_k := a_k * i;
kombinasi := a/(b*a_k);
permutasi :=a/ (a_k);
writeln ( n, ' Kombinasi ',k,' = ', kombinasi:4:1);
writeln (n, ' Permutasi ',k,' = ',permutasi :4:1);
end.

Hasil Output :


4. program Menu_final_Pemkom;
uses crt;
var
   pil :integer;
procedure statistika_deskriptif;
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('STATISTIKA DESKRIPTIF');
writeln;
writeln('Berapa jumlah data yang ingin anda dimasukan? (max 100)'); write('n= ');
readln(n);
writeln('silahkan masukkan data anda');

for i:=1 to n do
begin
write('data ke-',i,' ');
readln(a);
data[i]:=a;
end;

for i:=1 to n do
begin
sum1:=sum1+data[i];
end;
rata:=sum1/n;

for i:=1 to n do
begin
selisih:=sqr(data[i]-rata);
sum2:=sum2+selisih;
end;
varian:=sum2/(n-1);

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;

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;

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;

for i:=1 to k-1 do
begin
if jumlah[i]>jumlah[i+1] then modus:=i
else modus:=0;
end;

writeln;
writeln('hasilnya');
writeln('rata-rata ',rata:0:2);
writeln('varian ',varian:1: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;


procedure perkalian_matriks;
var a,b,c: array[1..10,1..10] of integer;
i,j,k1,k2,b1,b2,sum,r:integer;

begin
writeln;
writeln('MENGHITUNG PERKALIAN MATRIKS');
write('Masukkan jumlah baris Matrik A = ');readln(b1);
write('Masukkan jumlah kolom Matrik A = ');readln(k1);
write('Masukkan jumlah baris Matrik B = ');readln(b2);
write('Masukkan jumlah kolom Matrik B = ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
for i:=1 to b2 do
for j:=1 to k2 do
readln(b[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik B');
writeln('===================');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(b[i,j],' ');
writeln;

end;
writeln;
writeln('Matrik A*B');
writeln('================');
for i:=1 to b1 do
begin
for j:=1 to k2 do
begin
sum:=0;
for r:=1 to k1 do
sum:=sum+a[i,r]*b[r,j];
c[i,j]:=sum;
write(c[i,j]:2,' ');
end;
writeln;
end;
end;

procedure kombinasi_permutasi;
var
a,b,a_k,kombinasi,permutasi:real;
i,n,k:longint;
begin
writeln;
writeln('MENGHITUNG PERMUTASI DAN KOMBINASI');
write('masukkan bilangan n= ');readln(n);
write('masukkan bilangan k= ');readln (k);
a:=1;
b:=1;
a_k:=1;
for i:=2 to n do
a := a*i;
for i:=2 to k do
b :=b*i;
for i :=2 to (n-k) do
a_k := a_k * i;
kombinasi := a/(b*a_k);
permutasi :=a/ (a_k);
writeln ( n, ' Kombinasi ',k,' = ', kombinasi:4:1);
writeln (n, ' Permutasi ',k,' = ',permutasi :4:1);
end;


begin
     clrscr;
     gotoxy(24,2); writeln('NAMA              = MUH. SYAFAR KASIM');
     gotoxy(24,3); writeln('STAMBUK           = F1A1 11 010');
     gotoxy(24,4); writeln('JURUSAN           = MATEMATIKA B');
     gotoxy(24,5); writeln('________________________________________');
     gotoxy(32,8); writeln('MENU FINAL PEMKOM');
     gotoxy(24,9); writeln('________________________________________');
     gotoxy(24,11); writeln('(1) FINAL 1: Statistika Deskriptif');
     gotoxy(24,12); writeln('(2) FINAL 2: Perkalian Matriks');
     gotoxy(24,13); writeln('(3) FINAL 3: Kombinasi dan Permutasi');
     gotoxy(24,14); writeln('_______________________________________');
     gotoxy(24,16); write('Pilihan = ');readln(pil);
     clrscr;
     case pil of
     1 : begin
              statistika_deskriptif;

         end;
     2 : begin

              perkalian_matriks;
         end;
     3 : begin
              kombinasi_permutasi;

         end;

     end;
     readln;
end.

Hasil Output :