Selasa, 29 Desember 2009

Korelasi

LISTING PROGRAM

uses crt;
type korelasi = object
pers_reg,a,r,jumx,jumy,jumxy,b:real;
s,jumy2,jumx2: real;
x,y,xy,x2,y2: array[1..20] of real;
procedure input;
procedure hitung;
procedure tampil;
end;
var i,n,pil:integer;
kor:korelasi;

procedure korelasi.input;
begin
clrscr;
write('masukkan banyak data : ');
readln(n);
for i:=1 to n do
begin
write('Masukkan nilai X[',i,'] : ');
readln(x[i]);
end;
for i:=1 to n do
begin
gotoxy(30,i+1);
write('Masukkan nilai y[',i,'] : ');
readln(y[i]);
end;
end;

procedure korelasi.hitung;
begin
clrscr;
for i:=1 to n do
begin
xy[i]:=x[i]*y[i];
x2[i]:=x[i]*x[i];
y2[i]:=y[i]*y[i];
jumx:=jumx+x[i];
jumy:=jumy+y[i];
jumxy:=jumxy+xy[i];
jumx2:=jumx2+x2[i];
jumy2:=jumy2+y2[i];
b:=((n*jumxy)-(jumx*jumy));
a:=(n*jumx2 - jumx*jumx) * ( n*jumy2 - jumy*jumy ) ;
s:=sqrt(a);
r:=b/s;
end;
end;

procedure korelasi.tampil;
begin
clrscr;
gotoxy(1,1); writeln('*********************************');
writeln(' x y x2 xy y2'); writeln('*********************************');
for i:= 1 to n do
begin
gotoxy(3,i+3);write(x[i]:2:1);
gotoxy(9,i+3);write(y[i]:2:1);
gotoxy(16,i+3);write(x2[i]:2:1);
gotoxy(22,i+3);write(xy[i]:2:1);
gotoxy(28,i+3);write(y2[i]:2:1);
end;
gotoxy(1,n+4);
writeln('--------------------------------');
gotoxy(3,n+5);write(jumx:2:1);
gotoxy(9,n+5);write(jumy:2:1);
gotoxy(16,n+5);write(jumx2:2:1);
gotoxy(22,n+5);write(jumxy:2:1);
gotoxy(28,n+5);write(jumy2:2:1);
writeln;
writeln;
writeln('b = ',b:2:2);
writeln('a = ',a:2:2);
write('persamaan korelasinya : ',r:2:2);
readln;
end;

{program utama}
begin
repeat
clrscr;
writeln('<<>>');
writeln('1.INPUT');
writeln('2.TAMPIL');
writeln('3.EXIT');
write('PILIHAN : ');readln(pil);
case pil of
1: kor.input;
2: begin
kor.hitung;
kor.tampil;
end;
end;
until pil=3;
end.


LOGIKA PROGRAM
Program diatas adalah program untuk mencari persamaan korelasi dari suatu data X dan Y yang akan ditampilkan dalam tabel. Bila program ini kita jalankan, maka program ini akan menampilkan suatu bentuk tampilan menu utama, dimana dalam menu ini kita harus menginput suatu nilai yang nantinya akan disimpan dalam variable pil. Bila kita memasukkan nilai 1, maka program akan menjalankan procedure korelasi.input, dimana kita akan memasukkan sejumlah data untuk masing-masing variable X dan Y. kemudian bila kita memasukkan nilai 2, maka program akan menjalankan procedure korelasi.hitung, dimana procedure akan melakukan sejumlah perhitungan untuk mencari nilai-nilai variable yang digunakan dalam mencari persamaan korelasi seperti a, b, s dan r. jika kita memasukkan nilai 3, maka program akan menampilkan semua nilai variabel-variabel yang telah di operasikan dalam bentuk tabel dan juga menampilkan nilai var a dan b, serta menampilkan nilai dari persamaan korelasinya.
:
procedure korelasi.input ; digunakan untuk memasukkan nilai-nilai masing-masing untuk var X&Y.
procedure korelasi.hitung ; digunakan untuk mencari nilai dari variable-variabel lain berdasarkan nilai X&Y yang telah diketahui.
procedure korelasi.tampil ; menampilkan semua nilai X&Y dalam bentuk tabel dan juga nilai dari kesalahan baku serta persamaan korelasinya.
PENJELASAN PROGRAM
uses crt;
type korelasi = object
pers_reg,a,r,jumx,jumy,jumxy,b:real;
s,jumy2,jumx2: real;
x,y,xy,x2,y2: array[1..20] of real;
procedure input;
procedure hitung;
procedure tampil;
end;
var i,n,pil:integer;
kor:korelasi;

Uses crt adalah header file yang digunakan pada program pascal. Kemudian kita mendefinisikan suatu type korelasi yang bertype objek. Dimana dalam objek ini kita mendefinisikan beberapa variabel dengan type-typenya seperti yang dapat kita lihat dalam program. Variabel-variabel ini dapat digunakan pada semua fungsi dan procedure yang juga termasuk dalam objek ini. Kemudian kita juga mendefinisikan beberapa procedure,seperti yang dapat dilihat dalam program, dimana procedure-procedure ini dapat dijalankan pada program utama dengan memanggil nama obyeknya. Kemudian Disini kita mendefinisikan suatu variabel yang bersifat global, dan suatu variabel objek bernama “kor”.
procedure korelasi.input;
begin
clrscr;
write('masukkan banyak data : ');
readln(n);
for i:=1 to n do
begin
write('Masukkan nilai X[',i,'] : ');
readln(x[i]);
end;
for i:=1 to n do
begin
gotoxy(30,i+1);
write('Masukkan nilai y[',i,'] : ');
readln(y[i]);
end;
end;

Ini adalah procedure yang bernama procedure korelasi.input, dimana procedure ini akan menjalankan suatu fungsi untuk memasukkan nilai inputan untuk variabel n, dimana variabel n adalah jumlah banyaknya data dalam proses korelasi. Kemudian, dilakukan suatu proses perulangan untuk memasukkan nilai bagi masing-masing nilai X dan Y yang akan digunakan dalam menentukan persamaan korelasi. Banyaknya x dan y yang dimasukkan adalah tergantung nilai n, sehingga banyaknya perulangan yang terjadi adalah sebanyak nilai n juga. Sehingga nilai untuk X dan Y dapat digunakan dalam program.
procedure korelasi.hitung;
begin
clrscr;
for i:=1 to n do
begin
xy[i]:=x[i]*y[i];
x2[i]:=x[i]*x[i];
y2[i]:=y[i]*y[i];
jumx:=jumx+x[i];
jumy:=jumy+y[i];
jumxy:=jumxy+xy[i];
jumx2:=jumx2+x2[i];
jumy2:=jumy2+y2[i];
b:=((n*jumxy)-(jumx*jumy));
a:=(n*jumx2 - jumx*jumx) * ( n*jumy2 - jumy*jumy ) ;
s:=sqrt(a);
r:=b/s;
end;
end;

Ini adalah suatu procedure yang bernama procedure korelasi.hitung. dalam procedure ini, akan dilakukan suatu proses untuk mncari nilai-nilai dari var X2, var XY, jumXY , jumX2, jumY2, jumX, dan jumY. Untuk mencari nilai-nilai tersebut, kita menggunakan suatu proses perulangan sebanyak n, dimana kita akan menghitung data-data tersebut berdasarkan variabel-variabel array. Untuk mencari nilai X2 yang berype array, kita akan mengalikan nilai nilai dari var X ke-i dengan var X ke-i juga, sehingga kita akan mendapatkan nilai kuadrat dari var X.
Hal ini berlaku juga untuk mencari nilai-nilai dari variabel yang lain, dimana kita menggunakan array ke- sesuai dengan nilai i dalam perulangan For...do.
Kemudian kita akan menghitung nilai dari variabel b dan a yang dicari berdasarkan rumus dari korelasi, kemudian nilai a akan diakarkan ke var s, kemudian nilai korelasi dicari dengan mncari nilai dari var r seperti dalam program.
procedure korelasi.tampil;
begin
clrscr;
gotoxy(1,1); writeln('*********************************');
writeln(' x y x2 xy y2'); writeln('*********************************');
for i:= 1 to n do
begin
gotoxy(3,i+3);write(x[i]:2:1);
gotoxy(9,i+3);write(y[i]:2:1);
gotoxy(16,i+3);write(x2[i]:2:1);
gotoxy(22,i+3);write(xy[i]:2:1);
gotoxy(28,i+3);write(y2[i]:2:1);
end;
gotoxy(1,n+4);
writeln('--------------------------------');
gotoxy(3,n+5);write(jumx:2:1);
gotoxy(9,n+5);write(jumy:2:1);
gotoxy(16,n+5);write(jumx2:2:1);
gotoxy(22,n+5);write(jumxy:2:1);
gotoxy(28,n+5);write(jumy2:2:1);
writeln;
writeln;
writeln('b = ',b:2:2);
writeln('a = ',a:2:2);
write('persamaan korelasinya : ',r:2:2);
readln;
end;

Ini adalah procedure yang bernama korelasi.tampil. dimana dalam procedure ini kita akan menampilkan hasil-hasil nilai variabel yang kita cari sebelumnya di procedure korelasi.hitung. dalam procedure ini kita akan menampilkan nilai-nilai tersebut dalam bentuk tabel.
Dalam menampilkan nilai-nilai tersebut, kita menggunakan perulangan dan perintah gotoxy(), yang dapat mengatur tampilan dalam layar. Kita dapat melihat bahwa nilai-nilai setiap variabel seperti var X ditampilkan memanjang kebawah, dan begitu juga dengan variabel-variabel yang lain, seperti tabel korelasi.
Setelah kita menampilkan nilai seluruh variabel, dibawah tabel tesebut kita akan menampilkan jumlah nilai dari masing-masing variabel. Dalam hal ini kita juga menggunakan perintah for..do dan gotoxy(), seperti yang kita lihat dalam program. Kemudian kita akan menampilkan nilai dari variabel a, b, s, serta r dan juga persamaan dari korelasinya yang berupa suatu nilai real.
{program utama}
begin
repeat
clrscr;
writeln('<<>>');
writeln('1.INPUT');
writeln('2.TAMPIL');
writeln('3.EXIT');
write('PILIHAN : ');readln(pil);
case pil of
1: kor.input;
2: begin
kor.hitung;
kor.tampil;
end;
end;
until pil=3;
end.

Ini adalah program utama dalam program ini. Disini kita akan menampilkan suatu menu yang akan terus ditampilkan karena digunakan statement repeat...until
Sehingga selama nilai var pil tidak sama dengan 3, menu ini akan ditampilkan terus. menu yang akan ditampilkan dapat kita lihat seperti didalam program.
Dalam bagian ini kita juga menggunakan perintah case...of untuk menentukan procedure mana yang akan dijalankan sesuai dengan pilihan menu. Dimana dalam case...of kita juga memanggil procedure dengan memanggil nama objeknya terlebih dahulu.

OUTPUT PROGRAM

Tampilan menu program.

Tampilan output program apabila kita memasukkan pilihan 1. INPUT.

Tampilan output program apabila kita memasukkan pilihan 2. TAMPIL.


Tidak ada komentar:

Posting Komentar