April 21, 2012

LOGIKA PROGRAM REGRESI


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