• Tidak ada hasil yang ditemukan

L "variable yang mempengaruhi ","About Forecasting",JOptionPane.INFORMATION_MESSAGE); }

N/A
N/A
Protected

Academic year: 2021

Membagikan "L "variable yang mempengaruhi ","About Forecasting",JOptionPane.INFORMATION_MESSAGE); }"

Copied!
31
0
0

Teks penuh

(1)

"variable yang mempengaruhi ","About Forecasting",JOptionPane.INFORMATION_MESSAGE);

}

if(e.getSource()==mi[0]||e.getSource()==b2){ //ketika menekan tombol process RegresiBerganda RB = new RegresiBerganda(RB_Tgl,RB_TdkBebas,RB_Bebas1,RB_Bebas2,RB_Bebas3,jmlData Perbandingan,jumlah,jmlColumnRB); RB_Hasil = RB.peramalanRB(); fungsiTransfer TF = new fungsiTransfer(TF_Tgl,TF_Output,TF_Input,jmlDataPerbandingan,jumlah); TF_Hasil = TF.cariHasilPeramalan(); if(flag==false){ mi[3].setEnabled(true); } b2.setEnabled(false); RB_Multikolinearitas = RB.cekMultikolinearitas(); if(RB_Multikolinearitas==true){

temp2 = "[ Terjadi Multikolinearitas ]"; }

if(RB_Multikolinearitas==false){

temp2 = "[ Tidak Terjadi Multikolinearitas ]"; }

RB_F = RB.cekFTest(); if(RB_F==true){

temp1 = "[ Significant F-Test = Valid ]"; }

if(RB_F==false){

temp1 = "[ Significant F-Test = Tidak Valid ]"; } TF_Model = TF.tampilModel(); ta.setText(""); columns1.clear(); columns2.clear(); rows1.clear();

(2)

rows2.clear();

tampilanProcess(); }

}

/*--- Function actionEvent End ---*/

/*---

Function ambil semua data dari database di hal view ---*/

public void getDataBaseView(int idx){ ctr = 0;

System.out.println("select * from DataPengamatan where DataID = "+idx); try{ // Connect Data Base

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con =

DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=DataBaseSkripsi.mdb");

ResultSet rs = con.createStatement().executeQuery("select * from DataPengamatan where DataID = '"+idx+"'");

ResultSet rs2 = con.createStatement().executeQuery("select * from Hasil where DataID = '"+idx+"'");

ResultSet rs3 = con.createStatement().executeQuery("select * from Error where DataID = '"+idx+"'");

ResultSet rs4= con.createStatement().executeQuery("select * from KetVariabel where DataID = '"+idx+"'");

ResultSet rs5 = con.createStatement().executeQuery("select count(DataID) from DataPengamatan where DataID = '"+idx+"'");

ResultSet rs6 = con.createStatement().executeQuery("select count(DataID) from Hasil where DataID = '"+idx+"'");

ResultSetMetaData rsmd = rs.getMetaData(); for (j=1; j<=rsmd.getColumnCount(); j++) { H_ColumnName[j-1] = rsmd.getColumnName(j); } jumlahColumnV = rsmd.getColumnCount()-1; rs3.next(); H_MapeRB = Double.parseDouble(rs3.getString(2)); H_MseRB = Double.parseDouble(rs3.getString(3)); H_MapeTF = Double.parseDouble(rs3.getString(4)); H_MseTF = Double.parseDouble(rs3.getString(5));

(3)

rs4.next(); H_VariabelRB = rs4.getString(2); H_VariabelTF = rs4.getString(3); rs5.next(); jumlahH = Integer.parseInt(rs5.getString(1)); rs6.next(); jmlDataBanding2 = Integer.parseInt(rs6.getString(1)); //System.out.println(jmlDataBanding2); while(ctr!=jumlahH){

rs.next(); // Ambil data disimpan di String array V_Tgl[ctr] = rs.getString(2); V_YangDiramal[ctr] = Double.parseDouble(rs.getString(3)); V_Variabel1[ctr] = Double.parseDouble(rs.getString(4)); V_Variabel2[ctr] = Double.parseDouble(rs.getString(5)); if(jumlahColumnV>4){ V_Variabel3[ctr] = Double.parseDouble(rs.getString(6)); } //System.out.println(""+V_Tgl[ctr]); ctr++; } ctr=0; while(ctr!=jmlDataBanding2){

rs2.next(); // Ambil data disimpan di String array H_Tgl[ctr] = rs2.getString(2); H_Pengamatan[ctr] = Double.parseDouble(rs2.getString(3)); H_RegresiBerganda[ctr] = Double.parseDouble(rs2.getString(4)); H_FungsiTransfer[ctr] = Double.parseDouble(rs2.getString(5)); ctr++; } con.close(); } catch(Exception err){

System.out.println(err); // pemberitahuan error }

}

/*---

(4)

---*/ /*---

Function ambil DataID dari database ---*/

public void getDataId(){ //ambilDataId terakhir dari DataBase int temp;

try{ // Connect Data Base

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con =

DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=DataBaseSkripsi.mdb");

ResultSet rs = con.createStatement().executeQuery("select DataID from Error"); while(rs.next()){ dataID = rs.getString(1); } if(dataID.equals(null)==true){ dataID = "0001"; }else{ temp = Integer.parseInt(dataID); temp = temp + 1; dataID = ""+temp; } System.out.println(""+dataID); con.close(); } catch(Exception err){

System.out.println(err); // pemberitahuan error }

}

/*--- Function ambil DataID dari database End ---*/ /*---

Function insert Data Base (SAVE) ---*/

(5)

String temp1=""; String temp2="";

try{ // Connect Data Base

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Statement st;

Connection con =

DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=DataBaseSkripsi.mdb");

con.setAutoCommit(false); for(i=0;i<jumlah;i++){ st = con.createStatement();

st.executeUpdate("insert into DataPengamatan

(DataID,Tanggal,YangDiramal,Variabel1,Variabel2,Variabel3) Values ('"+dataID+"','"+RB_Tgl[i]+"',"+RB_TdkBebas[i]+","+RB_Bebas1[i]+","+RB_Bebas2[i ]+","+RB_Bebas3[i]+")"); con.commit(); st.close(); } for(i=0;i<jmlDataPerbandingan;i++){ st = con.createStatement();

st.executeUpdate("insert into Hasil

(DataID,Tanggal,Pengamatan,RegresiBerganda,FungsiTransfer) Values ('"+dataID+"','"+RB_Tgl[(jumlah- jmlDataPerbandingan)+i]+"','"+RB_TdkBebas[(jumlah-jmlDataPerbandingan)+i]+"','"+RB_Hasil[i]+"','"+TF_Hasil[i]+"')"); con.commit(); st.close(); } for(i=1;i<jmlColumnRB;i++){

temp1 = temp1 + RB_ColumnName[i] + " "; }

for(i=1;i<3;i++){

temp2 = temp2 + TF_ColumnName[i] + " "; }

st = con.createStatement();

st.executeUpdate("insert into KetVariabel (DataID,VariabelRB,VariabelTF) Values ('"+dataID+"','"+temp1+"','"+temp2+"')");

con.commit(); st.close();

(6)

st.executeUpdate("insert into Error (DataID,MapeRB,MseRB,MapeTF,MseTF) Values ('"+dataID+"','"+RB_MAPE+"','"+RB_MSE+"','"+TF_MAPE+"','"+TF_MSE+"')"); con.commit(); st.close(); con.close(); } catch(Exception err){

System.out.println(err); // pemberitahuan error }

JOptionPane.showMessageDialog(null,"Data Berhasil Di Save ke DataBase dengan DataID = "+dataID,"Informasi",JOptionPane.INFORMATION_MESSAGE); }

/*--- Function insert Data Base (SAVE) End ---*/ /*---

Function ambil Data Base di awal ---*/

public void getDataBase(String metode){ ctr = 0;

if(metode.equals("Regresi Berganda")==true){ try{ // Connect Data Base

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con =

DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=DataBaseSkripsi.mdb");

ResultSet rs = con.createStatement().executeQuery("select * from RegresiBerganda");

ResultSet rs2 = con.createStatement().executeQuery("select count(Tanggal) from RegresiBerganda"); rs2.next(); jumlah = Integer.parseInt(rs2.getString(1)); ResultSetMetaData rsmd = rs.getMetaData(); for (j=1; j<=rsmd.getColumnCount(); j++) { RB_ColumnName[j-1] = rsmd.getColumnName(j); }

(7)

jmlColumnRB = j-1; while(ctr!=jumlah){

rs.next(); // Ambil data disimpan di String array RB_Tgl[ctr] = rs.getString(1); RB_TdkBebas[ctr] = Double.parseDouble(rs.getString(2)); RB_Bebas1[ctr] = Double.parseDouble(rs.getString(3)); RB_Bebas2[ctr] = Double.parseDouble(rs.getString(4)); if(jmlColumnRB>4){ RB_Bebas3[ctr] = Double.parseDouble(rs.getString(5)); } ctr++; } con.close(); } catch(Exception err){

System.out.println(err); // pemberitahuan error }

JOptionPane.showMessageDialog(null,"Data Berhasil diinput ke dalam metode Regresi Berganda ","Informasi",JOptionPane.INFORMATION_MESSAGE);

} // tutup if Regresi Berganda

if(metode.equals("Fungsi Transfer")){ try{ // Connect Data Base

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con =

DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=DataBaseSkripsi.mdb");

ResultSet rs = con.createStatement().executeQuery("select * from FungsiTransfer");

ResultSet rs2 = con.createStatement().executeQuery("select count(Tanggal) from FungsiTransfer"); rs2.next(); jumlah = Integer.parseInt(rs2.getString(1)); ResultSetMetaData rsmd = rs.getMetaData(); for (j=1; j<=rsmd.getColumnCount(); j++) { TF_ColumnName[j-1] = rsmd.getColumnName(j); } ctr = 0; while(ctr!=jumlah){

rs.next(); // Ambil data disimpan di String array TF_Tgl[ctr] = rs.getString(1);

(8)

TF_Input[ctr] = Double.parseDouble(rs.getString(3)); ctr++; } con.close(); } catch(Exception err){

System.out.println(err); // pemberitahuan error }

JOptionPane.showMessageDialog(null,"Data Berhasil diinput ke dalam metode Fungsi Transfer","Informasi",JOptionPane.INFORMATION_MESSAGE);

} // tutup if Fungsi Transfer }

/*--- Function ambil dataBase End

---*/ public static void main(String[] args){ new LayarUtama(); } } 1.2Class RegresiBerganda.Java import java.awt.*; import javax.swing.*; import java.sql.*; import java.lang.Math;

public class RegresiBerganda {

String RB_Tgl[] = new String[100];

double RB_TdkBebas[] = new double[100]; double RB_Bebas1[] = new double[100]; double RB_Bebas2[] = new double[100]; double RB_Bebas3[] = new double[100]; double RB_Bebas4[] = new double[100]; double Matrix_X1[][] = new double[100][100]; double Matrix_X2[][] = new double[100][100]; double Matrix_X3[][] = new double[6][6]; //X'X double Matrix_X4[][] = new double[6][6];

(9)

double Matrix_XY[] = new double[6]; //X'Y double Matrix_Final[] = new double[6]; double Matrix_Invers[][] = new double[6][12]; double K_X1X2; double K_X1X3; double K_X2X3; double K_YX1; double K_YX2; double K_YX3;

double Peramalan[] = new double[40]; int ctr=0,jumlah,jmlColumn;

int jmlDataPerbandingan; // data yang diambil untuk jadi perbandingan

RegresiBerganda(String[] a,double[] b,double[] c,double[] d,double[] e,int jmlDataBanding,int jml,int jmlClmn){ int i,j; RB_Tgl = a; RB_TdkBebas = b; RB_Bebas1 = c; RB_Bebas2 = d; RB_Bebas3 = e; jmlDataPerbandingan = jmlDataBanding; jumlah = jml; jmlColumn = jmlClmn; for(i=0;i<6;i++){ for(j=0;j<6;j++){ Matrix_X3[i][j] = 0; } Matrix_XY[i] = 0; Matrix_Final[i]=0; } for(i=0;i<6;i++){ for(j=0;j<12;j++){ Matrix_Invers[i][j] = 0; } }

(10)

for(i=0;i<jumlah;i++){ if((jmlColumn-1)==3){ Matrix_X1[i][0] = 1; Matrix_X1[i][1] = RB_Bebas1[i]; Matrix_X1[i][2] = RB_Bebas2[i]; Matrix_X2[0][i] = 1; Matrix_X2[1][i] = RB_Bebas1[i]; Matrix_X2[2][i] = RB_Bebas2[i]; } if((jmlColumn-1)==4){ Matrix_X1[i][0] = 1; Matrix_X1[i][1] = RB_Bebas1[i]; Matrix_X1[i][2] = RB_Bebas2[i]; Matrix_X1[i][3] = RB_Bebas3[i]; Matrix_X2[0][i] = 1; Matrix_X2[1][i] = RB_Bebas1[i]; Matrix_X2[2][i] = RB_Bebas2[i]; Matrix_X2[3][i] = RB_Bebas3[i]; } Matrix_Y[i] = RB_TdkBebas[i]; } perhitungan(); invers(); peramalanRB(); } // tutup constructor

public boolean cekMultikolinearitas(){ boolean flag=false; double hslKorelasi; hslKorelasi = korelasi(RB_Bebas1,RB_Bebas2,0); if(hslKorelasi>=0.75) { flag=true; } if(jmlColumn==5){ hslKorelasi = korelasi(RB_Bebas1,RB_Bebas3,0); if(hslKorelasi>=0.75) { flag=true; } hslKorelasi = korelasi(RB_Bebas2,RB_Bebas3,0);

(11)

if(hslKorelasi>=0.75) { flag=true; } }

return flag; }

public boolean cekFTest(){ boolean flag=false; double nilaiF,FTabel=0;

double y1[] = new double[100]; double y2[] = new double[100]; double y3[] = new double[100];

double rata2=0,jumlah1=0,jumlah2=0; int i;

for(i=0;i<(jumlah-jmlDataPerbandingan);i++){ rata2 = rata2 + RB_TdkBebas[i];

}

rata2 = rata2 / (jumlah-jmlDataPerbandingan); for(i=0;i<(jumlah-jmlDataPerbandingan);i++){

y1[i] = Matrix_Final[0] + (Matrix_Final[1]*RB_Bebas1[i]) + (Matrix_Final[2]*RB_Bebas2[i]) + (Matrix_Final[3]*RB_Bebas3[i]) ;

y2[i] = (RB_TdkBebas[i] - y1[i]) * (RB_TdkBebas[i] - y1[i]); y3[i] = (y1[i]-rata2) * (y1[i]-rata2);

}

for(i=0;i<(jumlah-jmlDataPerbandingan);i++){ jumlah1 = jumlah1 + y2[i];

jumlah2 = jumlah2 + y3[i]; }

nilaiF= (jumlah2/(jmlColumn-2)) / (jumlah1/((jumlah-jmlDataPerbandingan)-(jmlColumn-1))); if(jmlColumn==3){ if((jumlah-jmlDataPerbandingan)>0&&(jumlah-jmlDataPerbandingan)<=10){ FTabel = 5.41; } if((jumlah-jmlDataPerbandingan)>10&&(jumlah-jmlDataPerbandingan)<=20){ FTabel = 3.06; } if((jumlah-jmlDataPerbandingan)>20&&(jumlah-jmlDataPerbandingan)<=30){ FTabel = 2.99; } if((jumlah-jmlDataPerbandingan)>30){ FTabel = 2.84; }

(12)

} if(jmlColumn==2){ if((jumlah-jmlDataPerbandingan)>0&&(jumlah-jmlDataPerbandingan)<=10){ FTabel = 5.79; } if((jumlah-jmlDataPerbandingan)>10&&(jumlah-jmlDataPerbandingan)<=20){ FTabel = 3.68; } if((jumlah-jmlDataPerbandingan)>20&&(jumlah-jmlDataPerbandingan)<=30){ FTabel = 3.39; } if((jumlah-jmlDataPerbandingan)>30){ FTabel = 3.23; } } if(nilaiF>FTabel){ return true; }else{ return false; } }

public void perhitungan(){ int i,j,z;

for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){

for(z=0;z<jumlah-jmlDataPerbandingan;z++){

Matrix_X3[i][j] = Matrix_X3[i][j] + (Matrix_X1[z][i] * Matrix_X2[j][z]); } } } for(i=0;i<jmlColumn-1;i++){ for(z=0;z<jumlah-jmlDataPerbandingan;z++){

Matrix_XY[i] = Matrix_XY[i] + (Matrix_X2[i][z] * Matrix_Y[z]); }

} }

(13)

int i,j,z;

double temp[] = new double[6]; for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){ Matrix_Invers[i][j] = Matrix_X3[i][j]; if(i==j){ Matrix_Invers[i][j+(jmlColumn-1)] = 1; } } } if((jmlColumn-1)==3){ temp[0] = Matrix_Invers[0][0]; temp[1] = Matrix_Invers[1][0]; temp[2] = Matrix_Invers[2][0]; for(i=0;i<6;i++){ // tahap 1 Matrix_Invers[0][i] = Matrix_Invers[0][i]/temp[0]; } for(i=0;i<6;i++){ // tahap 2 Matrix_Invers[1][i] = Matrix_Invers[1][i]-(temp[1]*Matrix_Invers[0][i]); Matrix_Invers[2][i] = Matrix_Invers[2][i]-(temp[2]*Matrix_Invers[0][i]); } temp[0] = Matrix_Invers[1][1]; temp[1] = Matrix_Invers[0][1]; temp[2] = Matrix_Invers[2][1]; for(i=0;i<6;i++){ // tahap 3 Matrix_Invers[1][i] = Matrix_Invers[1][i]/temp[0]; } for(i=0;i<6;i++){ // tahap 4 Matrix_Invers[0][i] = Matrix_Invers[0][i]-(temp[1]*Matrix_Invers[1][i]); Matrix_Invers[2][i] = Matrix_Invers[2][i]-(temp[2]*Matrix_Invers[1][i]); } temp[0] = Matrix_Invers[2][2]; temp[1] = Matrix_Invers[0][2]; temp[2] = Matrix_Invers[1][2]; for(i=0;i<6;i++){ // tahap 5 Matrix_Invers[2][i] = Matrix_Invers[2][i]/temp[0]; } for(i=0;i<6;i++){ // tahap 6 Matrix_Invers[0][i] = Matrix_Invers[0][i]-(temp[1]*Matrix_Invers[2][i]);

(14)

Matrix_Invers[1][i] = Matrix_Invers[1][i]-(temp[2]*Matrix_Invers[2][i]); }

for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){

Matrix_X4[i][j] = Matrix_Invers [i][j+3]; }

}

for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){

Matrix_Final[i] = Matrix_Final[i] + (Matrix_X4[j][i] * Matrix_XY[j]); } } } if((jmlColumn-1)==4){ temp[0] = Matrix_Invers[0][0]; temp[1] = Matrix_Invers[1][0]; temp[2] = Matrix_Invers[2][0]; temp[3] = Matrix_Invers[3][0]; for(i=0;i<8;i++){ // tahap 1 Matrix_Invers[0][i] = Matrix_Invers[0][i]/temp[0]; } for(i=0;i<8;i++){ // tahap 2 Matrix_Invers[1][i] = Matrix_Invers[1][i]-(temp[1]*Matrix_Invers[0][i]); Matrix_Invers[2][i] = Matrix_Invers[2][i]-(temp[2]*Matrix_Invers[0][i]); Matrix_Invers[3][i] = Matrix_Invers[3][i]-(temp[3]*Matrix_Invers[0][i]); } temp[0] = Matrix_Invers[1][1]; temp[1] = Matrix_Invers[0][1]; temp[2] = Matrix_Invers[2][1]; temp[3] = Matrix_Invers[3][1]; for(i=0;i<8;i++){ // tahap 3 Matrix_Invers[1][i] = Matrix_Invers[1][i]/temp[0]; } for(i=0;i<8;i++){ // tahap 4 Matrix_Invers[0][i] = Matrix_Invers[0][i]-(temp[1]*Matrix_Invers[1][i]); Matrix_Invers[2][i] = Matrix_Invers[2][i]-(temp[2]*Matrix_Invers[1][i]); Matrix_Invers[3][i] = Matrix_Invers[3][i]-(temp[3]*Matrix_Invers[1][i]); }

(15)

temp[0] = Matrix_Invers[2][2]; temp[1] = Matrix_Invers[0][2]; temp[2] = Matrix_Invers[1][2]; temp[3] = Matrix_Invers[3][2]; for(i=0;i<8;i++){ // tahap 5 Matrix_Invers[2][i] = Matrix_Invers[2][i]/temp[0]; } for(i=0;i<8;i++){ // tahap 6 Matrix_Invers[0][i] = Matrix_Invers[0][i]-(temp[1]*Matrix_Invers[2][i]); Matrix_Invers[1][i] = Matrix_Invers[1][i]-(temp[2]*Matrix_Invers[2][i]); Matrix_Invers[3][i] = Matrix_Invers[3][i]-(temp[3]*Matrix_Invers[2][i]); } temp[0] = Matrix_Invers[3][3]; temp[1] = Matrix_Invers[0][3]; temp[2] = Matrix_Invers[1][3]; temp[3] = Matrix_Invers[2][3]; for(i=0;i<8;i++){ // tahap 7 Matrix_Invers[3][i] = Matrix_Invers[3][i]/temp[0]; } for(i=0;i<8;i++){ // tahap 8 Matrix_Invers[0][i] = Matrix_Invers[0][i]-(temp[1]*Matrix_Invers[3][i]); Matrix_Invers[1][i] = Matrix_Invers[1][i]-(temp[2]*Matrix_Invers[3][i]); Matrix_Invers[2][i] = Matrix_Invers[2][i]-(temp[3]*Matrix_Invers[3][i]); } for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){

Matrix_X4[i][j] = Matrix_Invers [i][j+4]; }

}

for(i=0;i<jmlColumn-1;i++){ for(j=0;j<jmlColumn-1;j++){

Matrix_Final[i] = Matrix_Final[i] + (Matrix_X4[j][i] * Matrix_XY[j]); }

} } }

public double korelasi(double[] a,double[] b,int timeLag){ // cari korelasi double X=0,X2=0,Y=0,Y2=0,XY=0;

(16)

double K_nilai1,K_nilai2,K_nilai3; int i,jml; for(i=timeLag;i<jumlah-(jmlDataPerbandingan-1);i++){ XY = XY + (a[i]*b[i-timeLag]); X = X + a[i]; Y = Y + b[i-timeLag]; Y2 = Y2 + (b[i-timeLag]*b[i-timeLag]); X2 = X2 + (a[i]*a[i]); } jml = jumlah-jmlDataPerbandingan-timeLag; K_nilai1 = (jml*XY)-(X*Y); K_nilai2 = Math.sqrt((jml*X2)-(X*X))*Math.sqrt((jml*Y2)-(Y*Y)); K_nilai3 = K_nilai1/K_nilai2; return K_nilai3; }

public double[] peramalanRB(){ int i,j; for(i=jumlah-jmlDataPerbandingan;i<jumlah;i++){ Peramalan[i-jumlah+jmlDataPerbandingan] = Matrix_Final[0] + (Matrix_Final[1]*RB_Bebas1[i]) + (Matrix_Final[2]*RB_Bebas2[i]) + (Matrix_Final[3]*RB_Bebas3[i]) ; } return Peramalan; } } 1.3Class fungsiTransfer.Java import java.awt.*; import javax.swing.*; import java.sql.*; import java.lang.Math; public class fungsiTransfer{

String TF_Tgl[] = new String[100]; double TF_Input[] = new double[100]; double TF_Output[] = new double[100];

(17)

double xt[] = new double[100]; double yt[] = new double[100]; double nt[] = new double[100]; double alpha[] = new double[100]; double beta[] = new double[100]; double at[] = new double[100]; double hasil1[] = new double[40];

double hasil2[] = new double[40]; //hasil sebenarnya double tempHasil;

double bobotImpuls[] = new double[7]; double tetaAtas,tetaSamping;

double rata2Alpha,rata2Beta,ragamAlpha,ragamBeta; double omega0,omega1,omega2,delta1,delta2;

double k[] = new double[10]; //korelasi String a[] = new String[5];

int ctr=0,jumlah,i,j,b2; double r,s,b,p,q; int jmlDataPerbandingan; double p1,p2; boolean stationer=true,run=false; /*--- Constractor Fungsi Transfer ---*/

fungsiTransfer(String[] a,double[] b,double[] c,int jmlDataBanding,int jml){ TF_Tgl = a; TF_Output = b; TF_Input = c; jmlDataPerbandingan = jmlDataBanding; jumlah = jml; rata2Alpha = 0; rata2Beta = 0; nilai_xt();

(18)

nilai_yt(); pemutihanAplhaBeta(); cariRataRagam(); for(i=0;i<10;i++){ k[i] = korelasi(alpha,beta,i); } cariBobotImpuls(); nilaiNoise(); while(stationer==true){ cekModel(); cariParameter(); cariNilaiA(); cekStationerNilai(); } cariHasilPeramalan(); } /*--- Constractor Fungsi Transfer End ---*/

public void nilai_xt(){ // cari nilai xt xt[0] = 0;

for(i=0;i<jumlah;i++){ if(i!=0){

xt[i] = TF_Input[i] - TF_Input[i-1]; }

} }

public void nilai_yt(){ // cari nilai yt yt[0] = 0;

for(i=0;i<jumlah;i++){ if(i!=0){

yt[i] = TF_Output[i] - TF_Output[i-1]; }

} }

public void pemutihanAplhaBeta(){ // pemutihan untuk aplha dan Beta double p=0,q=0;

double z;

double temp1=0,temp2=0; boolean flag=true;

(19)

int ctr=0; p = korelasi(xt,xt,1); q = korelasi(xt,xt,1); z=1.96*(1/Math.sqrt(jumlah-jmlDataPerbandingan)); if(p>z&&q>z){ p=1; q=1; }else{ p=0; q=0; } if(p==1&q==1){ // arma(1,1); p1 = korelasi(xt,xt,1); p2 = korelasi(xt,xt,2); tetaAtas = p1/p2; tetaSamping = -0.99999; while(flag==true){ tetaSamping = tetaSamping + 0.00001; temp2 = ((1-(tetaAtas*tetaSamping))*(tetaAtas-tetaSamping))/(1+(tetaSamping*tetaSamping)-(2*tetaAtas*tetaSamping)); temp1 = tetaAtas; temp2 = temp2; if(temp1<=temp2+0.01&&temp1>=temp2-0.01){ flag=false; } ctr++; } System.out.println("temp1->"+temp1); System.out.println("temp2->"+temp2); System.out.println("tetaSamping->"+tetaSamping); System.out.println("counter->"+ctr);

alpha[0] = 0; // indexnya mulai dr 1 beta[0] = 0; // indexnya mulai dr 1

for(i=2;i<jumlah-jmlDataPerbandingan;i++){

alpha[i-1] = xt[i] + tetaAtas*xt[i-1] - tetaSamping*alpha[i-2]; // karena alpha mulai dari 1

beta[i-1] = yt[i] + tetaAtas*yt[i-1] - tetaSamping*beta[i-2]; // karena beta mulai dari 1

(20)

} }

if(p==0&q==0){ // arma(0,0); alpha[0] = 0; // indexnya mulai dr 1 beta[0] = 0; // indexnya mulai dr 1

for(i=2;i<jumlah-jmlDataPerbandingan;i++){ alpha[i-1] = xt[i]; // karena alpha mulai dari 1 beta[i-1] = yt[i]; // karena beta mulai dari 1 }

} }

public void cariRataRagam(){

for(i=0;i<jumlah-jmlDataPerbandingan;i++){ rata2Alpha = rata2Alpha + alpha[i]; rata2Beta = rata2Beta + beta[i];

}

rata2Alpha = rata2Alpha/(jumlah-(jmlDataPerbandingan+1)); rata2Beta = rata2Beta/(jumlah-(jmlDataPerbandingan+1)); for(i=0;i<jumlah-jmlDataPerbandingan;i++){

ragamAlpha = ragamAlpha + ((alpha[i]-rata2Alpha)*(alpha[i]-rata2Alpha)); ragamBeta = ragamBeta + ((beta[i]-rata2Beta)*(beta[i]-rata2Beta));

}

ragamAlpha = ragamAlpha/(jumlah-(jmlDataPerbandingan+1)); ragamBeta = ragamBeta/(jumlah-(jmlDataPerbandingan+1)); }

public void cariBobotImpuls(){ for(i=0;i<7;i++){

bobotImpuls[i] = k[i] * Math.sqrt(ragamBeta/ragamAlpha); }

}

public void nilaiNoise(){

for(i=7;i<jumlah-jmlDataPerbandingan;i++){ //nilai nt dimulai dari index ke 7 karena terdapat 7 impuls

nt[i-7] = yt[i]; for(j=0;j<7;j++){

nt[i-7] = nt[i-7] - (bobotImpuls[j]*xt[i-j]); }

(21)

} }

public void cekModel(){ double temp,z; int ctr=0; if(run==false){ z=1.96*(1/Math.sqrt(jumlah-(jmlDataPerbandingan+7))); for(i=0;i<10;i++){ if(Math.abs(k[i])>(z-0.2)){ ctr++; } } if(ctr>2){ r=2; s=2; }else{ r=1; s=1; } if(k[0]>z){ b=0; b2=0; }else if(k[1]>z){ b=1; b2=1; }else{ b=2; b2=2; } p = korelasi(nt,nt,1); q = korelasi(nt,nt,1); if(p>z&&q>z){ p=1; q=1; }else{ p=0; q=0; } }else if(run==true){

(22)

if(b==2){ b=0; b2=0; }else{ b=b+1; b2=b2+1; } } a[0] = ""+r; a[1] = ""+s; a[2] = ""+b; a[3] = ""+p; a[4] = ""+q; }

public String tampilModel(){ String temp2="";

temp2 = "Model ["+ a[0].substring(0,1) +","+ a[1].substring(0,1) +","+ a[2].substring(0,1) +","+ a[3].substring(0,1) +","+ a[4].substring(0,1) +"]"; return temp2;

}

public void cariParameter(){ double temp1,temp2,temp3; boolean flag=true; if(b==0){ temp1 = bobotImpuls[4]/bobotImpuls[3]*bobotImpuls[4]; temp2 = bobotImpuls[3]/bobotImpuls[3]*bobotImpuls[4]; temp3 = bobotImpuls[2]/bobotImpuls[3]*bobotImpuls[4]; delta2 = (temp1-bobotImpuls[5])/(temp3-bobotImpuls[3]); temp1 = bobotImpuls[4]/bobotImpuls[2]*bobotImpuls[3]; temp2 = bobotImpuls[3]/bobotImpuls[2]*bobotImpuls[3]; temp3 = bobotImpuls[2]/bobotImpuls[2]*bobotImpuls[3]; delta1 = (temp1-bobotImpuls[5])/(temp2-bobotImpuls[4]); omega0 = bobotImpuls[0];

(23)

omega2 = ((delta1*bobotImpuls[1]) + (delta2*bobotImpuls[0])) - bobotImpuls[2]; } if(b==1){ temp1 = bobotImpuls[5]/bobotImpuls[4]*bobotImpuls[5]; temp2 = bobotImpuls[4]/bobotImpuls[4]*bobotImpuls[5]; temp3 = bobotImpuls[3]/bobotImpuls[4]*bobotImpuls[5]; delta2 = (temp1-bobotImpuls[6])/(temp3-bobotImpuls[4]); temp1 = bobotImpuls[5]/bobotImpuls[3]*bobotImpuls[4]; temp2 = bobotImpuls[4]/bobotImpuls[3]*bobotImpuls[4]; temp3 = bobotImpuls[3]/bobotImpuls[3]*bobotImpuls[4]; delta1 = (temp1-bobotImpuls[6])/(temp2-bobotImpuls[5]); omega0 = bobotImpuls[1];

omega1 = (delta1*bobotImpuls[1]) - bobotImpuls[2];

omega2 = ((delta1*bobotImpuls[2]) + (delta2*bobotImpuls[1])) - bobotImpuls[3]; } if(b==2){ temp1 = bobotImpuls[5]/bobotImpuls[4]*bobotImpuls[5]; temp2 = bobotImpuls[4]/bobotImpuls[4]*bobotImpuls[5]; temp3 = bobotImpuls[3]/bobotImpuls[4]*bobotImpuls[5]; delta2 = (temp1-bobotImpuls[6])/(temp3-bobotImpuls[4]); temp1 = bobotImpuls[5]/bobotImpuls[3]*bobotImpuls[4]; temp2 = bobotImpuls[4]/bobotImpuls[3]*bobotImpuls[4]; temp3 = bobotImpuls[3]/bobotImpuls[3]*bobotImpuls[4]; delta1 = (temp1-bobotImpuls[6])/(temp2-bobotImpuls[5]); omega0 = bobotImpuls[2];

omega1 = (delta1*bobotImpuls[2]) - bobotImpuls[3];

omega2 = ((delta1*bobotImpuls[3]) + (delta2*bobotImpuls[2])) - bobotImpuls[4]; } if(p==1){ p1 = korelasi(nt,nt,1); p2 = korelasi(nt,nt,2); tetaAtas = p1/p2; tetaSamping = -0.99999;

(24)

while(flag==true){ tetaSamping = tetaSamping + 0.00001; temp2 = ((1-(tetaAtas*tetaSamping))*(tetaAtas-tetaSamping))/(1+(tetaSamping*tetaSamping)-(2*tetaAtas*tetaSamping)); temp1 = tetaAtas; temp2 = temp2; if(temp1<=temp2+0.01&&temp1>=temp2-0.01){ flag=false; } ctr++; } } }

public void cariNilaiA(){ if(p==0&&q==0){ for(i=0;i<7;i++){

at[i] = 0; }

for(i=7;i<jumlah-jmlDataPerbandingan;i++){

at[i] = yt[i] - (delta1*yt[i-1]) - (delta2*yt[i-2]) - (omega0*xt[i-b2]) + (omega1*xt[i-1-b2]) + (omega2*xt[i-2-b2]) + (delta1*at[i-1]) + (delta2*at[i-2]);

} for(i=jumlah;i<jumlah+jmlDataPerbandingan;i++){ at[i] = 0; } } if(p==1&&q==1){ for(i=0;i<7;i++){ at[i] = 0; } for(i=7;i<jumlah-jmlDataPerbandingan;i++){

at[i] = yt[i] - ((delta1*tetaAtas)*yt[i-1]) + (((delta1*tetaAtas)-delta2)*yt[i-2]) + (delta2*yt[i-3]) - (omega0*xt[i-b(((delta1*tetaAtas)-delta2)*yt[i-2]) + ((omega1+omega0)*xt[i-1-b(((delta1*tetaAtas)-delta2)*yt[i-2]) + ((omega2-(omega1*tetaAtas))*xt[i-2-b2]) - ((omega2*tetaAtas)*xt[i-3-b2]) +

((delta1+tetaSamping)*at[i-1]) + ((delta2-(delta1*tetaSamping))*at[i-2]) - ((delta2*tetaSamping)*at[i-3]);

(25)

for(i=jumlah;i<jumlah+jmlDataPerbandingan;i++){ at[i] = 0;

} } }

public void cekStationerNilai(){ double temp1,temp2,z;

double temp3[] = new double[100]; int ctr=0; for(i=7;i<jumlah-jmlDataPerbandingan;i++){ temp3[i-7] = at[i]; } z=1.96*(1/Math.sqrt(jumlah-(jmlDataPerbandingan+7))); for(i=0;i<10;i++){ temp1 = korelasi(alpha,temp3,i); if(temp1>z){ ctr++; } } if(ctr>9){ stationer = true; run = true; }else{ stationer = false; run = true; } }

public double[] cariHasilPeramalan(){

tempHasil = TF_Output[jumlah-(jmlDataPerbandingan+1)]; if(p==0&&q==0){

for(i=jumlah-jmlDataPerbandingan;i<jumlah;i++){

hasil1[i-(jumlah-jmlDataPerbandingan)] = (delta1*yt[i-1]) + (delta2*yt[i-2]) + (omega0*xt[i-b2]) - (omega1*xt[i-1-b2]) - (omega2*xt[i-2-b2]) + at[i] - (delta1*at[i-1]) - (delta2*at[i-2]);

yt[i] = hasil1[i-(jumlah-jmlDataPerbandingan)];

tempHasil = tempHasil + hasil1[i-(jumlah-(jmlDataPerbandingan))]; hasil2[i-(jumlah-jmlDataPerbandingan)] = tempHasil;

} }

(26)

if(p==1&&q==1){

for(i=jumlah-jmlDataPerbandingan;i<jumlah;i++){

hasil1[i-(jumlah-jmlDataPerbandingan)] = ((tetaAtas+delta1)*yt[i-1]) - (((delta1*tetaAtas)-delta2)*yt[i-2]) - (delta2*yt[i-3]) + (omega0*xt[i-b2]) - ((omega1+(omega0*tetaAtas))*xt[i-1-b2]) - ((omega2-(omega1*tetaAtas))*xt[i-2-b2]) - ((omega2*tetaAtas)*xt[i-3-b2]) + at[i] - ((tetaSamping+delta1)*at[i-1]) - ((delta2-(delta1*tetaSamping))*at[i-2]) + ((delta2*tetaSamping)*at[i-3]);

yt[i] = hasil1[i-(jumlah-jmlDataPerbandingan)];

tempHasil = tempHasil + hasil1[i-(jumlah-(jmlDataPerbandingan))]; hasil2[i-(jumlah-jmlDataPerbandingan)] = tempHasil;

} }

return hasil2; }

public double korelasi(double[] a,double[] b,int timeLag){ // cari korelasi double X=0,X2=0,Y=0,Y2=0,XY=0; double K_nilai1,K_nilai2,K_nilai3; int i,jml; for(i=timeLag;i<jumlah-(jmlDataPerbandingan+1);i++){ XY = XY + (a[i]*b[i-timeLag]); X = X + a[i]; Y = Y + b[i-timeLag]; Y2 = Y2 + (b[i-timeLag]*b[i-timeLag]); X2 = X2 + (a[i]*a[i]); } jml = jumlah-jmlDataPerbandingan-timeLag;; K_nilai1 = (jml*XY)-(X*Y); K_nilai2 = Math.sqrt((jml*X2)-(X*X))*Math.sqrt((jml*Y2)-(Y*Y)); K_nilai3 = K_nilai1/K_nilai2; return K_nilai3; } }

(27)

LAMPIRAN 3 :

LANGKAH PERHITUNGAN

3.1 Perhitungan Galat Fungsi Transfer

Pengamatan Fungsi Transfer Galat |PE| Galat kuadrat 2006 May 172,634,000 181,659,292 -9,025,292 5.227991962 8.14559E+13 2006 June 165,623,000 171,186,987 -5,563,987 3.359429114 3.0958E+13 2006 July 169,412,000 173,948,063 -4,536,063 2.677533744 2.05759E+13 2006 Aug 171,867,000 179,385,453 -7,518,453 4.374576295 5.65271E+13 2006 Sept 167,523,000 172,286,376 -4,763,376 2.843416019 2.26897E+13 847,059,000 878,466,171 -31,407,171 18.482947 2.12207E+14 MAPE MSE 3.69658% 4.24413E+13

3.2 Perhitungan Galat Regresi Berganda

Pengamatan Regresi Berganda Galat |PE| Galat kuadrat 2006 May 172,634,000 170,912,339 1,721,661 0.997289897 2.96412E+12 2006 June 165,623,000 162,487,032 3,135,968 1.8934375 9.8343E+12 2006 July 169,412,000 167,369,200 2,042,800 1.205817871 4.17303E+12 2006 Aug 171,867,000 173,589,648 -1,722,648 1.002314408 2.96752E+12 2006 Sept 167,523,000 163,526,949 3,996,051 2.385374504 1.59684E+13 847,059,000 837,885,167 9,173,833 7.484234 3.59074E+13 MAPE MSE 1.496846% 7.18148E+12

(28)

3.2 Perhitungan F-test

Tanggal Laba (Y) Kurs Dollar (X1) Penjualan (X2) Advertise (X3) Ŷi (Yi-Ŷi)2 (Ŷi-Ỹi)2 Jan-03 184002000 8864 12 73125000 176794460.8 5.19486E+13 1.80979E+13 Feb-03 188905000 8935 15 69550000 182354960.3 4.2903E+13 9.63276E+13 Mar-03 169259000 8910 9 64470000 167721691.4 2.36332E+12 2.3219E+13 Apr-03 174229000 8842 10 65650000 170812818.8 1.16703E+13 2.98419E+12 May-03 168178000 8451 9 66500000 171851258.4 1.34928E+13 4.74778E+11 Jun-03 189130000 8195 12 69600000 181451783.1 5.8955E+13 7.94145E+13 Jul-03 174636000 8220 12 64425000 180163330.1 3.05514E+13 5.81106E+13 Aug-03 169997000 8547 12 67525000 178176054.9 6.68969E+13 3.17617E+13 Sep-03 163989000 8455 11 64500000 175988376.6 1.43985E+14 1.18892E+13 Oct-03 177232000 8438 9 69650000 172617644 2.12923E+13 5982094336 Nov-03 174732000 8522 9 57500000 169388421.9 2.85538E+13 9.93434E+12 Dec-03 170786000 8483 10 75775000 175835523.9 2.54977E+13 1.08585E+13 Jan-04 181326000 8350 10 74350000 176609333.9 2.22469E+13 1.6557E+13 Feb-04 191625000 8399 15 78800000 188621972.6 9.01817E+12 2.5862E+14 Mar-04 179632000 8645 10 59250000 171058238.5 7.35094E+13 2.19651E+12 Apr-04 182871000 8618 12 54500000 174867968.4 6.40485E+13 5.41804E+12 May-04 172523000 8965 10 67525000 170214190.1 5.3306E+12 5.41079E+12 Jun-04 154501000 9400 8 71420000 162933117.2 7.11006E+13 9.2298E+13 Jul-04 168169000 8980 9 68850000 168076723 8515052111 1.99235E+13 Aug-04 161525000 9248 12 68520000 172729252.8 1.25535E+14 35703145512 Sep-04 182262000 9097 16 77250000 184959620.2 7.27715E+12 1.5424E+14 Oct-04 163742000 9102 11 52600000 168269303 2.04965E+13 1.82414E+13 Nov-04 157652000 9051 9 57950000 165214886.4 5.71973E+13 5.36617E+13 Dec-04 165635000 9350 12 68125000 171823354.5 3.82957E+13 5.14011E+11

Jan-05 181842000 9160 15 75625000 181815383.3 708449783.6 8.60272E+13 Feb-05 184314000 9250 17 78325000 186245643.1 3.73125E+12 1.87836E+14 Mar-05 179321000 9360 16 69520000 181214404.6 3.58498E+12 7.52401E+13 Apr-05 167825000 9525 12 57360000 168150783.5 1.06135E+11 1.92679E+13 May-05 160952000 9490 9 54050000 160853981.8 9607575373 1.3657E+14 Jun-05 164641000 9595 10 64745000 164547474.5 8747022891 6.38853E+13 Jul-05 169847000 9810 11 61250000 164373574 2.99584E+13 6.66954E+13 Aug-05 168312000 9830 11 67150000 165451211.6 8.18411E+12 5.02552E+13 Sep-05 161625000 10015 9 65250000 158970218.8 7.04786E+12 1.84147E+14 Oct-05 157978000 10140 8 62595000 155109458.4 8.22853E+12 3.03834E+14 Nov-05 158342000 10020 9 62545000 158361828.2 393155929 2.01029E+14 Dec-05 162875000 9815 9 71650000 161927842.8 8.97107E+11 1.12624E+14 Jan-06 181412000 9370 13 73523000 175090267.4 3.99643E+13 6.50233E+12 Feb-06 181412000 9215 12 79555000 175312850.7 3.71996E+13 7.68704E+12 Mar-06 178523000 9143 14 74125000 179342846 6.72147E+11 4.62746E+13 Apr-06 175853000 9010 11 71750000 173033070 7.95201E+12 2.42822E+11 Total 6901612000 362815 450 2696428000 6888335123 1.13972E+15 2.51831E+15 Rata-rata 172,540,300

F= 8.394E+14 = 26.5150585

(29)

LAMPIRAN 4 : DAFTAR TABEL

4.1 Tabel F

Tabel Sebaran F (v1=1-9)

(30)

Tabel Sebaran F (v1=10-∞)

(31)

Gambar

Tabel Sebaran F (v 1 =1-9)   f 0.05 (v 1 ,v 2 )
Tabel Sebaran F (v 1 =10-∞)  f 0.05 (v 1 ,v 2 )

Referensi

Dokumen terkait

dibandingkan dengan gaji pegawai organisasi lain pada jabatan atau pekerjaan yang sama (8) persepsi mengenai sistem honorarium dalam kegiatan kepanitiaan (9)

Variabel bebas atau independen variable (X), yaitu variable yang mempengaruhi variable lain yang tidak bebas atau suatu variable yang mendahului variable lain yang tidak

Perbedaan penelitian yang dilakukan Franklin Asido Rossevelt, Tjahjanulin Domai dan Suwondo dengan penelitian yang penulis kaji tentang Dinamika Fungsi Pengawasan

Sesuai dengan Surat Tugas (ST) Direktur Kapal Perikanan dan Alat Penangkap lkan Nomor I 8.17394/DJfi/Pl.430.D2lxllzolg tanggal 25 November 2019 perihal Pemeriksaan

Kedalaman muatan susunan mata pelajaran yang harus ditempuh oleh peserta didik dalam kegiatan kurikulum pada setiap mata pelajaran pada setiap satuan pendidikan dituangkan

efektif, karena pembelajarannya tepat digunakan untuk anak TK. Dapat dikatakan tepat karena belajar dilakukan melalui kegiatan bermain. Hal tersebut terbukti pada

1) Kesadaran diri, yaitu kemampuan untuk mengenali perasaan dan sejauh mana seseorang dapat merasakannya serta berpengaruh pada perilaku terhadap orang

Peningkatan keragaman genetik jeruk siam Pontianak melalui variasi somaklonal pada kalus embriogenik asal kultur protoplas yang dikombinasikan dengan perlakuan