import
java.util.Scanner;
class
Regresi {
Scanner input = new Scanner(System.in);
double[] x;
double[] y;
double[] x2;
double[] y2;
double[] xy;
int n;
double a1,a0,b1,b0;
Listing
diatas menjelaskan tentang kelas regresi. import java.util.Scanner; ini berguna untuk mengimport
library atau fasilitas yang sudah ada pada java itu sendiri agar program dapat
menerima inputan dari user. Type data yang
digunakan adalah double dan integer. Scanner input = new Scanner(System.in);
berfungsi sebagai pencetak input dan untuk memasukkan input.
public void
menu(){
System.out.println("------------------");
System.out.println("|
Menu Utama |");
System.out.println("|
1. Input |");
System.out.println("|
2. Regresi Y-X |");
System.out.println("|
3. Regresi X-Y |");
System.out.println("|
4. X-it |");
System.out.println("------------------");
System.out.print("Masukkan
Pilihanmu : " );
int
pil = input.nextInt();
switch(pil){
case
1:
clean();
try{
input();
}catch(IndexOutOfBoundsException
ex){
System.out.println("Ada
Kesalahan pada proses IO");}
clean();
menu();
case 2:
clean();
regresiYX();
menu();
case 3:
clean();
regresiXY();
menu();
default:
System.exit(0);}}
Listing program
procedure menu diatas akan menjalankan perintah repeat (perulangan), kemudian
clrscr digunakan untuk membersihkan layar dan juga akan mencetak menu pilihan,
yaitu 1. input, 2. Regresi y terhadap x, 3. Regresi x terhadap y, 4. Keluar.
Dan juga menampilkan tulisan Masukkan pilihan anda :. Kemudian memasukan
pilihan user ke var pil. Repeat (perulangan) di sini di gunakan agar menu tidak
akan keluar atau berakhir sampai user memilih menu pil 4. Pada program
procedure menu ini menggunakan case of,dimana menu pertama hanya sebagai
penulisan input dan selanjutnya adalah memperlihatkan regresi y terhadap x dan
juga regresi x terhadap y.
public void
clean(){
for
(int i=0;i<=20;i++){
System.out.println("\n");}
}
public void
input(){
System.out.print("masukan
jumlah data :");
n
= input.nextInt();
x=
new double[n];
y=
new double[n];
x2
= new double[n];
y2=new
double[n];
xy=new
double[n];
System.out.print("\nmasukkan
data x :\n");
for(int
i=0;i<n;i++){
System.out.print("data
ke-"+(i+1)+":");
x[i]=
input.nextInt();}
System.out.println("\nmasukkan
data y :");
for(int
i=0;i<n;i++){
System.out.print("data
ke-"+(i+1)+":");
y[i]=
input.nextInt();}
for(int i=0 ; i<n;i++) {
x2[i]=Math.pow(x[i],2);
y2[i]=Math.pow(y[i],2);
xy[i]=
x[i] * y[i] ;}}
Listing
diatas menjelaskan Procedure yang digunakan untuk
memasukkan input dari data. Pada procedure input ini kita akan diminta untuk
menginput nilai x dan nilai y, dimana pada masing-masing inputan dari nilai x
dan y ini kita diminta untuk menginput atau memasukkan data x dan y tersebut
melalui keyboard. Setelai itu kita diminta looping sesuai jumlah yang kita
input sebelumnya. Selain itu juga kita menghitung nilai dari x2, y2, dan xy.
Untuk menghitung nilai x2 kita menggunakan rumus x2[i]:=x[i]*x[i];, untuk
menghitung y2 kita menggunakan rumus y2[i]:=y[i]*y[i];, sedangkan
untuk menghitung xy kita menggunakan rumus xy[i]:=x[i]*y[i];.
Disini juga terdapat kelas clean berguna untuk membersihkan sebanyak 20 baris.
public
double sigma(double k[]){
double data = 0;
for(int i=0; i<n;i++) {
data
= data + k[i]; }
return(data); }
public void
regresiYX(){
a1 = ((n*sigma(xy)) - (sigma(x) *
sigma(y))) / ((n*sigma(x2))-Math.pow(sigma(x),2));
a0 = ((sigma(y) * sigma(x2)) - (sigma(x) *
sigma(xy))) / ((n*sigma(x2))-Math.pow(sigma(x),2));
System.out.println("Persamaan Regrsi
Y terhadap X");
if (a1> 0)
System.out.println("Y =
"+a0+" + "+a1+"x");
else
System.out.println("Y = "+a0+a1+
"x"); }
Listing diatas menjelaskan tentang kelas
double sigma dan regresiYX. Kelas double sigma berguna untuk pendeklarasian
dari regresi xy dan yx. Kelas sigma ini akan
melakukan perulangan sebanyak data yang kita masukkan atau input. Procedure selanjutnya yakni procedure
statis.regresi_yx. Procedure tersebut digunakan untuk menampilkan regresi y
terhadap x. Program tersebut pertama-tama akan mencetak Regresi y terhadap x.
Untuk menghitung nilai a menggunakan rumus :=((sigma(y)*sigma(x2)) - (
sigma(x)*sigma(xy))) / ((n*sigma(x2) - sigma(x)*sigma(x)));. Sedangkan untuk menghitung nilai
bmenggunakan rumus b:=(n*(sigma(xy))-(sigma(x)*sigma(y))) /
((n*sigma(x2))-(sigma(x)*sigma(x)));. Nilai a akan ditampilkan sebagai nilai
dari x, sedangkan nilai b akan ditampilkan sebagai nilai dari y apabila
perhitungan dari rumus tersebut telah selesai.
public void
regresiXY(){
b1 = ((n*sigma(xy)) - (sigma(y) *
sigma(x))) / ((n*sigma(y2))-Math.pow(sigma(y),2));
b0 = ((sigma(x) * sigma(y2)) - sigma(y) *
sigma(xy)) / (n* sigma(y2)-Math.pow(sigma(y),2));
System.out.println("Persamaan
Regresi X terhadap Y");
if (b1>0)
System.out.println("X =
"+b0+" + "+b1+"x");
else
System.out.println("X =
"+b0+b1+"x"); }
public
static void main(String[] args) {
new
Regresi();}}
Listing procedure
statis.regresi_xy. Procedure tersebut digunakan untuk menampilkan regresi x
terhadap y. Program tersebut pertama-tama akan mencetak Regresi x terhadap y.
Untuk menghitung nilai a menggunakan rumus a:=((sigma(x)*sigma(y2))-(sigma(y)*sigma(xy)))
/ ((n*sigma(y2))-(sigma(y)*sigma(y)));, sedangkan untuk menghitung nilai b
menggunakan rumus b:=(n*(sigma(xy))-(sigma(x)*sigma(y))) /
((n*sigma(y2))-sigma(y)*sigma(y));. Seperti halnya program diatas, pada
program ini nilai a juga akan ditampilkan sebagai nilai dari x, sedangkan nilai
b akan ditampilkan sebagai nilai dari y apabila perhitungan dari rumus tersebut
telah selesai. Setelah melakukan pilihan dan menjalankan program tersebut lalu
akan melakukan regresi yang baru.
Tidak ada komentar:
Posting Komentar