• Tidak ada hasil yang ditemukan

LAMPIRAN-LAMPIRAN. Lampiran 1. Tabel Hasil Pengumpulan Data (dalam ton)

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN-LAMPIRAN. Lampiran 1. Tabel Hasil Pengumpulan Data (dalam ton)"

Copied!
48
0
0

Teks penuh

(1)

LAMPIRAN-LAMPIRAN

Lampiran 1. Tabel Hasil Pengumpulan Data (dalam ton)

Tahun Penjualan Besi As ST41 Putih ukuran 7mm x 6m

Bulan

1999 2000 2001 2002 2003 2004 2005 2006

Januari

- 264 324 322 285 275 295 301

Februari

- 269 266 283 275 331 304 302

Maret

- 268 317 267 301 322 328 292

April

- 276 342 269 266 289 344 301

Mei

- 272 334 277 327 313 326 300

Juni

- 280 336 280 328 311 322 317

Juli

- 282 340 318 338 317 306 312

Agustus

- 329 315 327 299 288 284 320

September

- 333 270 289 355 276 277 282

Oktober 225 336 267 332 311 296 293 280

November 231 283 278 340 302 311 310 311

Desember 244 354 292 313 289 289 312

Sumber : PT. Batraja Rona Steel

Lampiran 2a. Perhitungan Koefisien

Autokorelasi

Rata-rata penjualan

300.662

86

311

...

231

225

+

+

+

=

=

Y

ton

Batas signifikan tidak berbeda dari nol

untuk autokorelasi dan autokorelasi parsial :

)

86

/

1

(

96

,

1

)

86

/

1

(

96

,

1

)

(

)

(

+

=>

Z

α

Sd

r

k

Z

α

Sd

r

k

0.2113

0.2113

-

r

k

Autokorelasi

:

Time lag

1 :

2 2 2 1

)

66

.

300

311

...(

)

66

.

300

231

(

)

66

.

300

225

(

)

662

.

300

311

)(

66

.

300

280

..(

)

66

.

300

244

)(

66

.

300

231

(

)

66

.

300

231

)(

66

.

300

225

(

+

+

+

+

=

r

0.503011 62365.22 31370.36 1= = r

(2)

Time lag

2 :

2 2 2 2

)

66

.

300

311

...(

)

66

.

300

231

(

)

66

.

300

225

(

)

662

.

300

311

)(

66

.

300

282

..(

)

66

.

300

264

)(

66

.

300

231

(

)

66

.

300

244

)(

66

.

300

225

(

+

+

+

+

=

r

0.2388

62365.22

14894.94

2

=

=

r

Time lag

3 :

2 2 2 3 ) 66 . 300 311 ...( ) 66 . 300 231 ( ) 66 . 300 225 ( ) 662 . 300 311 )( 66 . 300 320 ..( ) 66 . 300 269 )( 66 . 300 231 ( ) 66 . 300 264 )( 66 . 300 225 ( − + − + − − − + − − + − − = r

0.139684

62365.22

8711.45

3

=

=

r

.

.

.

Time lag

10 :

2 2 2 10 ) 66 . 300 311 ...( ) 66 . 300 231 ( ) 66 . 300 225 ( ) 662 . 300 311 )( 66 . 300 301 ..( ) 66 . 300 333 )( 66 . 300 231 ( ) 66 . 300 329 )( 66 . 300 225 ( − + − + − − − + − − + − − = r

-0.13276

62365.22

8279.73

-10

=

=

r

timelag 1

2 3 4 5 6 7 8 9 10

Autokorelasi

0.5 0.24 0.14 0.07 -0.04 -0.02 0.06 0.04 -0.03

-0.1

Lampiran 2b. Perhitungan Koefisien

Autokorelasi Parsial

Autokorelasi Parsial

:

Time lag

1 :

0.503011

1 11

=

ρ

=

φ

Time lag

2 :

(3)

-0.01899

0.503011

-1

0.503011

-0.238834

1

2 2 2 1 2 1 2 22

=

=

=

ρ

ρ

ρ

φ

Time lag

3 :

0.0302

0.503011)

x

0.01899

-0.238834

x

(0.512563

-1

0.503011)

x

0.01899

-0.238834

x

(0.512563

-0.139684

)

(

1

)

(

1 22 2 21 1 22 2 21 3 33

+

=

=

+

=

ρ

φ

ρ

φ

ρ

φ

ρ

φ

ρ

φ

x

x

x

x

.

.

.

timelag 1

2 3 4 5 6 7 8 9 10

Autokorelasi

parsial

0.5 -0.02 0.03 -0.01

-0.07

0.03 0.07 -0.02 -0.04

-0.1

Lampiran 2c. Perhitungan Koefisien Parameter Model AR, MA, dan ARMA

Untuk parameter AR

0.503011

1

=

φ

μ

= 300.662

t t t t t

Y

Y

Y

=

μ

(

1

φ

1

)

+

φ

1 1

+

ε

=

300

,

662

(

1

0

.

503

)

+

0

,

503

1

+

ε

Jadi persamaannya menjadi :

Y

t

=

149

,

426

+

0

.

503

Y

t−1

+

ε

t

Untuk parameter MA

( )

2 2 2 2 1 1 1 −

+

=

t t t t

Y

Y

Y

Y

θ

θ

θ

σ

2 2 1 1

0.503011

0.238834

=

θ

+

θ

θ

0.2515

2

0.503011

1

=

=

θ

(4)

0.17557

)

0.2515

(

)

0.2515

(

0.503011

0.238834

2 2

=

+

=

θ

2 1

0.1755

0.251

662

.

300

+

=

t t t t

Y

ε

ε

ε

Untuk parameter ARMA

1

φ

=

1 2

r

r

=0.47481

2 1 1

0

.

2374

0

.

0179

47481

.

0

905

.

157

+

+

=

t t t t t

Y

Y

ε

ε

ε

(5)

Lampiran 3. Kode Program Aplikasi

{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} {$MINSTACKSIZE $00004000} {$MAXSTACKSIZE $00100000} {$IMAGEBASE $00400000} {$APPTYPE GUI} unit ARMA_singleMovingAverage; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DB, ADODB, Grids, DBGrids, Chart, TeEngine, Series, TeeProcs, DbChart , Jpeg;

type TForm1 = class(TForm) Plogin: TPanel; Label1: TLabel; Label2: TLabel; NamaUser: TEdit; PasswordUser: TEdit; Bmasuklogin: TButton; Bubahpass: TButton; Pkeluarlogin: TPanel; Byakinkeluarlogin: TButton; Label3: TLabel; Bbatalkeluarlogin: TButton; Pdata: TPanel; Bstatsioner: TButton; Bkeluarlogin: TButton; Pstasioner: TPanel; Bpemilihanmetode: TButton; Pbanding: TPanel; Pperamalan: TPanel; Bselesai: TButton; Pperamalan1: TPanel; Label21: TLabel; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; ADOStoredProc1: TADOStoredProc; ADOCommand1: TADOCommand; ADOTable1: TADOTable; ADODataSet1: TADODataSet; Pgantipassword: TPanel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; namaganti: TEdit; passlama: TEdit; passbaru: TEdit;

(6)

konfirmasipassbaru: TEdit; Bgantipassbaru: TButton; Bbatalganti: TButton; DataSource1: TDataSource; Memo1: TMemo; Bkel3: TButton; Pautokorelasiparsial: TPanel; Bestimasiparameter: TButton; Pautokorelasiparsial1: TPanel; Memo2: TMemo; Pdata1: TPanel; DBGrid1: TDBGrid; Label4: TLabel; Pstasioner1: TPanel; Memo3: TMemo; Pdugaparameter: TPanel; Pdugaparameter1: TPanel; Memo4: TMemo; Bdiagnosa: TButton; Phasildiagnosis: TPanel; Phasildiagnosis1: TPanel; BsinglemovingAvg: TButton; Memo5: TMemo; PsingleMA: TPanel; PSingleMA1: TPanel; Bkeputusan: TButton; Memo6: TMemo; Memo7: TMemo; Bkel1: TButton; Bbantuan1: TButton; Bkembalikeeditdata: TButton; Bbantuan2: TButton; Bkel2: TButton; Bbantuan3: TButton; Bkembalipilih: TButton; Bbantuan4: TButton; Bkel4: TButton; Bkembali4: TButton; Bkembali5: TButton; Bbantuan5: TButton; Bkeluar5: TButton; Bkembali6: TButton; Bbantuan6: TButton; Bkeluar6: TButton; Bbantuan7: TButton; Bkeluar7: TButton; Chart1: TChart; Series2: TFastLineSeries; Chart2: TChart; Series3: TFastLineSeries; Chart3: TChart; Series4: TFastLineSeries; Chart4: TChart; varabelramal: TEdit; Bramalpenjualan: TButton; Bkembali8: TButton;

(7)

Bmasukramal: TButton; PArma: TPanel; Pratageraktunggal: TPanel; Plogo: TPanel; Image1: TImage; Label27: TLabel; Series6: TFastLineSeries; Series7: TFastLineSeries; Series5: TFastLineSeries; Series8: TFastLineSeries; Series10: TFastLineSeries; PBantuan: TPanel; Btentangkami: TButton; Button3: TButton; BOk: TButton; PBantuan2: TPanel; Memo8: TMemo; Bliatdetail: TButton; Pview2: TPanel; Pview: TPanel; Bsel: TButton; Bview: TButton; Phasilkeptsan: TPanel; Phasilkeptsan1: TPanel; Memo9: TMemo; Bokkeptsan: TButton; Bkembali9: TButton; Bbantuan9: TButton; Bkeluar9: TButton; DBChart1: TDBChart; Series1: TLineSeries;

procedure BbatalkeluarloginClick(Sender: TObject); procedure FormCreate(Sender: TObject);

procedure BkeluarloginClick(Sender: TObject); procedure ByakinkeluarloginClick(Sender: TObject); procedure BmasukloginClick(Sender: TObject); procedure BstatsionerClick(Sender: TObject); procedure BpemilihanmetodeClick(Sender: TObject); procedure BarmaClick(Sender: TObject);

procedure BselesaiClick(Sender: TObject); procedure BubahpassClick(Sender: TObject); procedure BbatalgantiClick(Sender: TObject); procedure BgantipassbaruClick(Sender: TObject); procedure Bkel3Click(Sender: TObject);

procedure BbandingClick(Sender: TObject);

procedure BestimasiparameterClick(Sender: TObject); procedure BsinglemovingAvgClick(Sender: TObject); procedure BkeputusanClick(Sender: TObject); procedure Bkel1Click(Sender: TObject);

procedure BkembalikeeditdataClick(Sender: TObject); procedure Bkel2Click(Sender: TObject);

procedure BkembalipilihClick(Sender: TObject); procedure Bkel4Click(Sender: TObject); procedure Bkembali4Click(Sender: TObject); procedure Bkembali5Click(Sender: TObject);

(8)

procedure Bkeluar5Click(Sender: TObject); procedure Bkeluar6Click(Sender: TObject); procedure Bkembali6Click(Sender: TObject); procedure Bkeluar7Click(Sender: TObject); procedure Bkembali7Click(Sender: TObject); procedure BkembaliputusClick(Sender: TObject);

procedure NamaUserKeyPress(Sender: TObject; var Key: Char); procedure PasswordUserKeyPress(Sender: TObject; var Key: Char); procedure namagantiKeyPress(Sender: TObject; var Key: Char); procedure passbaruKeyPress(Sender: TObject; var Key: Char);

procedure konfirmasipassbaruKeyPress(Sender: TObject; var Key: Char); procedure passlamaKeyPress(Sender: TObject; var Key: Char);

procedure varabelramalKeyPress(Sender: TObject; var Key: Char); procedure BramalpenjualanClick(Sender: TObject);

procedure BmasukramalClick(Sender: TObject); procedure Bkembali8Click(Sender: TObject); procedure BdiagnosaClick(Sender: TObject); procedure BtentangkamiClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure BOkClick(Sender: TObject); procedure Bbantuan2Click(Sender: TObject); procedure Bbantuan3Click(Sender: TObject); procedure Bbantuan6Click(Sender: TObject); procedure Bbantuan7Click(Sender: TObject); procedure Bbantuan4Click(Sender: TObject); procedure Bbantuan5Click(Sender: TObject); procedure BliatdetailClick(Sender: TObject); procedure BselClick(Sender: TObject); procedure BviewClick(Sender: TObject); procedure Bbantuan1Click(Sender: TObject); procedure autokorelasipar();

procedure Bkeluar9Click(Sender: TObject); procedure BokkeptsanClick(Sender: TObject); procedure Bkembali9Click(Sender: TObject); procedure Bbantuan9Click(Sender: TObject); private { Private declarations } SqlTemp: String; public { Public declarations } end; var Form1: TForm1;

var blnpenjualan,thnpenjualan,nopenjualan : array of Integer;

errorARMAduga,errorduga,autokorelasi,datapenjualan,datasimpanbaru,errorsimpanbaru,autokorelasiparsi al,parameterAR,parameterMA,parameterMA1,parameterARARMA,parameterMAARMA,SMA,hasilrama lanMA,hasilramalanARMA,hasilramalanAR : array of Double;

totaldatapenjualan,meandatapenjualan,batasbawahsignifikanNol,batasatassignifikanNol,miu0AR,miu0M A,miu0ARMA,MAEARMA,MAPEARMA,MSEARMA,MAESMA,MAPESMA,MSESMA : real; banyakdata,timelagautokorelasi,timelagautokorelasiparsial,metode,sign,tandaARMA,tanda : Integer; anu : string;

(9)

implementation {$R *.dfm}

procedure TForm1.BbatalkeluarloginClick(Sender: TObject); begin

Pkeluarlogin.Visible:=false end;

procedure TForm1.FormCreate(Sender: TObject); begin Phasilkeptsan.Visible:=false; Pview.Visible:=false; PBantuan.Visible:=false; PsingleMA.Visible:=false; Phasildiagnosis.Visible:=false; Pautokorelasiparsial.Visible:=false; Pdugaparameter.Visible:=false; Pgantipassword.Visible:=false; Pperamalan.Visible:=false; Pbanding.Visible:=false; Pstasioner.Visible:=false; Pdata.Visible:=false; Pkeluarlogin.Visible:=false; end;

procedure TForm1.BkeluarloginClick(Sender: TObject); begin

pkeluarlogin.Visible:=true end;

procedure TForm1.ByakinkeluarloginClick(Sender: TObject); begin

Application.Terminate; end;

procedure TForm1.BmasukloginClick(Sender: TObject); begin

if trim(NamaUser.Text)='' then begin

ShowMessage('tolong masukkan username anda!'); NamaUser.SetFocus;

end else

if Trim(PasswordUser.Text)='' then begin

ShowMessage('tolong masukkan password anda!'); PasswordUser.SetFocus;

end else begin

SqlTemp := 'SELECT * FROM login'; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text := SqlTemp +' WHERE Nama ='''+ NamaUser.Text+ ''' AND Password = '''+PasswordUser.Text+'''';

ADOQuery1.Open; if not ADOQuery1.Eof then begin

(10)

ADOQuery1.SQL.Clear; Plogin.Visible:=false; Pdata.Visible:=true; end else begin ADOQuery1.Close;

MessageBox(Self.Handle,'nama atau password tidak cocok','Validasi',MB_OK); NamaUser.SetFocus;

end; end; end;

procedure TForm1.BstatsionerClick(Sender: TObject); var i,a,step:integer; var pembagiautokorelasi:Real; begin i:=0; timelagautokorelasi:=0; pembagiautokorelasi:=0; totaldatapenjualan:=0; Pstasioner.Visible:=true; Pdata.Visible:=false;

//simpan data penjualan ke suatu variabel di delphi ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:= 'select * from Data_penjualan_BesiAsPutih7mmx6m'; ADOQuery1.Open; SetLength(nopenjualan,ADOQuery1.RecordCount); SetLength(blnpenjualan,ADOQuery1.RecordCount); SetLength(thnpenjualan,ADOQuery1.RecordCount); SetLength(datapenjualan,ADOQuery1.RecordCount); ADOQuery1.First;

while not ADOQuery1.Eof do begin

nopenjualan[i] := ADOQuery1.Fields[0].AsInteger; blnpenjualan[i] := ADOQuery1.Fields[1].AsInteger; thnpenjualan[i] := ADOQuery1.Fields[2].AsInteger; datapenjualan[i] := ADOQuery1.Fields[3].AsVariant; totaldatapenjualan:=totaldatapenjualan + datapenjualan[i]; i:=i+1; ADOQuery1.Next; end; ADOQuery1.Close; //hitung autokorelasi data SetLength(autokorelasi,11); autokorelasi[0]:=1;

banyakdata:=i;

meandatapenjualan := (totaldatapenjualan / i); for a:=1 to i do

begin

pembagiautokorelasi := pembagiautokorelasi + (datapenjualan[a-1]-meandatapenjualan)*(datapenjualan[a-1]-meandatapenjualan); end; for a:=1 to 10 do begin autokorelasi[a]:= 0; step:=0;

(11)

while step<(i-a) do begin autokorelasi[a]:=autokorelasi[a]+ ((datapenjualan[step]-meandatapenjualan)*(datapenjualan[step+a]-meandatapenjualan)) ; step:=step+1; end; autokorelasi[a]:=(autokorelasi[a] / pembagiautokorelasi); end; Series2.Clear; Series2.AddArray(autokorelasi); batasbawahsignifikanNol := ((0-1.96) / sqrt(i)); batasatassignifikanNol := (1.96 / sqrt(i)); Memo3.Clear;

Memo3.Lines.Add('Cek Data dengan Test Kestasioneran pada data penjualan Besi As putih PT.Brataja Rona Steel');

Memo3.Lines.Add('============================================'); Memo3.Lines.Add('');

Memo3.Lines.Add('Nilai Autokorelasi(hubungan antar variabel dengan variabel/"data penjualan" sendiri) dengan selisih waktu: ');

Memo3.Lines.Add(''); for a:=1 to 10 do begin

Memo3.Lines.Add('time lag '+ IntToStr(a) +' = '+ FloatToStr(autokorelasi[a]) +'.');

if (autokorelasi[a]<batasatassignifikanNol) and (autokorelasi[a]>batasbawahsignifikanNol) then begin timelagautokorelasi:=timelagautokorelasi; end else begin timelagautokorelasi:=a; end; end; Memo3.Lines.Add('');

Memo3.Lines.Add('Batas signifikan nyata Null (kondisi/batas dimana suatu nilai autokorelasi bisa dinyatakan null): ');

Memo3.Lines.Add('');

Memo3.Lines.Add(FloatToStr(batasbawahsignifikanNol)+' < bts < '+FloatToStr(batasatassignifikanNol)+'.');

Memo3.Lines.Add('');

Memo3.Lines.Add('Setelah melakukan analisis/cek data pada data penjualan Besi As putih, maka dapat disimpulkan bahwa:');

if timelagautokorelasi < 4 then begin

Memo3.Lines.Add('Data penjualan tersebut mempunyai kestasioneran.'); end else

begin

Memo3.Lines.Add('Data penjualan tersebut tidak mempunyai kestasioneran'); end;

end;

procedure TForm1.BpemilihanmetodeClick(Sender: TObject); begin tanda:=0; Pbanding.Visible:=true; Pstasioner.Visible:=false; autokorelasipar(); Bestimasiparameter.Click; Bdiagnosa.Click;

(12)

BsinglemovingAvg.Click; Bkeputusan.Click; Bokkeptsan.Click; Memo1.Clear;

memo1.Lines.Add('Silakan Anda lanjutkan ke peramalan data penjualan Besi As ST41 putih ukuran 7mmx6m untuk masa mendatang dengan menekan tombol "Peramalan".');

memo1.Lines.Add('');

memo1.Lines.Add('Untuk melihat secara detail mengenai perbandingan metode Autoregressive Moving Average dan metode Rata-rata Bergerak Tunggal dapat dilakukan dengan menekan tombol "Lihat Analisis Data".');

memo1.Lines.Add(''); end;

procedure TForm1.BarmaClick(Sender: TObject); begin

Pbanding.Visible:=false; Pperamalan.Visible:=true; varabelramal.SetFocus; end;

procedure TForm1.BselesaiClick(Sender: TObject); begin

Application.Terminate; end;

procedure TForm1.BubahpassClick(Sender: TObject); begin Pgantipassword.Visible:=true; Plogin.Visible:=false; namaganti.SetFocus; namaganti.Text:=''; passlama.Text:=''; passbaru.Text:=''; konfirmasipassbaru.Text:=''; end;

procedure TForm1.BbatalgantiClick(Sender: TObject); Begin Pgantipassword.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.BgantipassbaruClick(Sender: TObject); begin

if trim(namaganti.Text)='' then begin

ShowMessage('tolong masukkan username anda!'); namaganti.SetFocus;

end else

if Trim(passlama.Text)='' then begin

ShowMessage('tolong masukkan password yang anda ingin ganti!'); passlama.SetFocus;

end else

(13)

ShowMessage('tolong masukkan password baru yang anda inginkan!'); passbaru.SetFocus;

end else

if Trim(konfirmasipassbaru.Text)='' then begin

ShowMessage('tolong masukkan konfirmasi password sesuai password baru!'); konfirmasipassbaru.SetFocus;

end else begin

SqlTemp := 'SELECT * FROM login'; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text := SqlTemp +' WHERE Nama ='''+ namaganti.Text+ ''' AND Password = '''+passlama.Text+'''';

ADOQuery1.Open; if not ADOQuery1.Eof then begin

if CompareStr(UpperCase(passbaru.Text),UpperCase(konfirmasipassbaru.Text))=0 then begin

ADOQuery1.Close; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='UPDATE login SET Password = ''' + passbaru.Text + ''' WHERE Nama ='''+ namaganti.Text+ ''' AND Password = '''+passlama.Text+'''';

ADOQuery1.ExecSQL; Pgantipassword.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end else begin

MessageBox(Self.Handle,'konfirmasi password tidak sama dengan password baru','Validasi',MB_OK); end;

end else begin

MessageBox(Self.Handle,'nama atau password salah','Validasi',MB_OK); namaganti.SetFocus;

end end; end;

procedure TForm1.Bkel3Click(Sender: TObject); begin Pbanding.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.BbandingClick(Sender: TObject); var t,a,I,J,p,k,hu: Integer;

var matriksparsial,matriksinvers : array of array of Real; var penampungautokorelasiparsial : array of Real; begin

if tanda=1 then begin

(14)

Pbanding.Visible:=false; Pautokorelasiparsial.Visible:=true; end else begin Pbanding.Visible:=false; Pautokorelasiparsial.Visible:=false; end; SetLength(matriksparsial,10); SetLength(matriksinvers,10);

for I := Low(matriksparsial) to High(matriksparsial) do begin

SetLength(matriksparsial[I],10); SetLength(matriksinvers[I],10); end;

for I:=Low(matriksparsial) to High(matriksparsial) do begin for J:=0 to 9 do begin matriksparsial[I,J] := autokorelasi[abs(J-I)]; if I=J then begin matriksinvers[I,J]:=1; end else begin matriksinvers[I,J]:=0; end; end; end; SetLength(autokorelasiparsial,11); autokorelasiparsial[0]:=1; SetLength(penampungautokorelasiparsial,10); for p:=0 to 9 do begin for k:=0 to p do begin for I:=k to (p+k) do begin if k=I then begin for J:=0 to p do begin matriksparsial[k,J]:=(matriksparsial[k,J] / matriksparsial[k,k]); matriksinvers[k,J]:=(matriksinvers[k,J] / matriksparsial[k,k]); end; end else begin for J:= 0 to p do begin hu:= I mod (p+1); matriksparsial[hu,J]:=matriksparsial[hu,J]-(matriksparsial[hu,J]*matriksparsial[k,J]); matriksinvers[hu,J]:=(matriksinvers[hu,J]-(matriksinvers[hu,J]*matriksparsial[k,J])); end; end; end; end; autokorelasiparsial[p+1]:=0;

(15)

for t:=0 to 9 do begin autokorelasiparsial[p+1]:=autokorelasiparsial[p+1]+ (matriksinvers[p,t]*autokorelasi[t+1]); end; end; Memo2.Clear; Memo2.Lines.Add('Autokorelasi parsial : '); for a:=1 to 10 do begin

Memo2.Lines.Add('time lag '+ IntToStr(a) +' = '+ FloatToStr(autokorelasiparsial[a]) +'.');

if (autokorelasiparsial[a]<batasatassignifikanNol) and (autokorelasiparsial[a]>batasbawahsignifikanNol) then begin timelagautokorelasiparsial:=timelagautokorelasiparsial; end else begin timelagautokorelasiparsial:=a; end; end; Series3.Clear; Series3.AddArray(autokorelasiparsial); Memo2.Lines.Add('');

Memo2.Lines.Add('Tes signifikan berbeda dari Null');

Memo2.Lines.Add('autokorelasi pada time lag :'+IntToStr(timelagautokorelasi));

Memo2.Lines.Add('autokorelasi parsial pada time lag :'+IntToStr(timelagautokorelasiparsial)); Memo2.Lines.Add('');

Memo2.Lines.Add('Jadi model AR yang cocok untuk peramalan adalah AR('+IntToStr(timelagautokorelasiparsial)+') ');

Memo2.Lines.Add('');

Memo2.Lines.Add('Jadi model MA yang cocok untuk peramalan adalah MA('+IntToStr(timelagautokorelasi)+') ');

Memo2.Lines.Add('');

Memo2.Lines.Add('Jadi model ARMA yang cocok untuk peramalan adalah

ARMA('+IntToStr(timelagautokorelasiparsial)+','+IntToStr(timelagautokorelasi)+') '); end;

procedure TForm1.BestimasiparameterClick(Sender: TObject); var i,h,jlhdataerror,a,tempAR,j: integer;

var o,p,q,penampung,totalerror : real; var persamaan:string;

var parameteryo,parameterMAtemp:array of array of real; var parameterMAtemp1:array of array of real;

var parametery1,parameteryoy1,Absduga:array of real;

var errorduga,errorARMAduga,hasilramalanduga,hasilramalanARMAduga: array of Double; begin tempAR:=0; miu0MA:=meandatapenjualan; if tanda =1 then begin Pautokorelasiparsial.Visible:=false; Pdugaparameter.Visible:=true; end else begin Pautokorelasiparsial.Visible:=false; Pdugaparameter.Visible:=false; end;

(16)

SetLength(parameterAR,11); SetLength(parameterARARMA,11); SetLength(parameterMAARMA,11); SetLength(parameterMA,11); SetLength(parameterMA1,11); SetLength(parameterMAtemp,1); SetLength(parameterMAtemp[0],2); SetLength(parameterMAtemp1,1); SetLength(parameterMAtemp1[0],2); SetLength(Absduga,2); SetLength(errorduga,(banyakdata-timelagautokorelasiparsial)); SetLength(hasilramalanduga,(banyakdata-timelagautokorelasiparsial)); //duga parameterAR for a:=1 to 10 do

if a< (timelagautokorelasiparsial+1) then begin parameterAR[a-1]:=autokorelasiparsial[a]; tempAR:=tempAr+1; end else begin parameterAR[a-1]:=0; tempAR:=tempAr+1; end; parameterAR[tempAr]:=0; SetLength(parameteryo,2); //duga miu0 AR miu0AR:=1;

for a:=1 to timelagautokorelasiparsial do begin

miu0AR:= miu0AR- parameterAR[a-1]; end;

miu0AR:= (miu0AR*meandatapenjualan); //duga parameterMA

parameterMAtemp1[0,0]:=0; parameterMAtemp1[0,1]:=0; for a:=1 to timelagautokorelasi do begin

if timelagautokorelasi=1 then begin

parameterMA[a-1]:=(autokorelasi[a])/(-autokorelasi[a-1]); end else if timelagautokorelasi=2 then

begin if a=1 then begin parameterMA[a-1]:= -autokorelasi[a]/(2*autokorelasi[a-1]); end else begin parameterMA[a-1]:=(autokorelasi[a-2]*parameterMA[a-2]*parameterMA[a-2]+autokorelasi[a-1]*parameterMA[a-2]+autokorelasi[a])/(-autokorelasi[a-2]); end; end; end; //duga parameteryo for a:=1 to 2 do begin SetLength(parameteryo[a-1],11);

(17)

end; SetLength(parametery1,11); for a:=1 to 1 do begin for j:=1 to 11 do begin if ((a+j)-3) < 0 then begin parameteryo[a-1,j-1]:=0; end else begin parameteryo[a-1,j-1]:=-parameterAR[(a+j)-3]; end; if a=j then begin parameteryo[a-1,j-1]:=parameteryo[a-1,j-1]+1; end else begin parameteryo[a-1,j-1]:=parameteryo[a-1,j-1]; end; end; end; if timelagautokorelasi=1 then begin for a:=2 to 2 do begin for j:=1 to 11 do begin parameteryo[a-1,j-1]:=-parameterAR[(a+j)-3]; if a=j then begin parameteryo[a-1,j-1]:=parameteryo[a-1,j-1]+1; end; end; end;

end else if timelagautokorelasi>1 then begin for a:=2 to 2 do begin for j:=1 to 11 do begin if ((a+j)-(4+timelagautokorelasi)) < 0 then begin if j=1 then begin parameteryo[a-1,j-1]:=-parameterAR[1]; end else if j=2 then

begin parameteryo[a-1,j-1]:=-parameterAR[2]-parameterAR[0]; end else begin parameteryo[a-1,j-1]:=1-parameterAR[3]; end; end else begin parameteryo[a-1,j-1]:=-parameterAR[(a+j)-2];

(18)

end; end; end; end; //duga parametery1 for a:=1 to 11 do begin if (a-2)<0 then begin parametery1[a-1]:=1; end else begin parametery1[a-1]:=autokorelasi[a-1]; end; end; //duga parameteryoy1 SetLength(parameteryoy1,2); for a:=1 to 2 do begin parameteryoy1[a-1]:=0; for j:=1 to 11 do begin parameteryoy1[a-1]:=parameteryoy1[a-1]+ (parameteryo[a-1,j-1]*parametery1[j-1]); end; end;

//duga parameter ARARMA tempAR:=0;

for a:=1 to 9 do

if a< (timelagautokorelasiparsial+1) then begin parameterARARMA[a-1]:=autokorelasi[a+1]/autokorelasi[a]; tempAR:=tempAr+1; end else begin parameterARARMA[a-1]:=0; tempAR:=tempAr+1; end; parameterARARMA[tempAr]:=0; //duga miu0 ARARMA

miu0ARMA:=1;

for a:=1 to timelagautokorelasiparsial do begin

miu0ARMA:= miu0ARMA- parameterARARMA[a-1]; end; miu0ARMA:= (miu0ARMA*meandatapenjualan); //initialisasi parameterMAARMA for a:=0 to 9 do begin parameterMAARMA[a]:=0; end; //duga parametermA penampung:=parameteryoy1[1]; for a:=1 to timelagautokorelasi do begin

(19)

begin parameterMAARMA[a-1]:=(parameterARARMA[a-1]/2); penampung:=penampung - parameteryoy1[1]*(parameterARARMA[a-1]-parameterMAARMA[a-1])*parameterMAARMA[a-1]; end else begin parameterMAtemp[0,0]:=(-(parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a- 1])+sqrt((parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a-1])*(parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a-1])-4*parameteryoy1[1]*penampung))/(2*parameteryoy1[1]); parameterMAtemp[0,1]:=(-(parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a-1])- sqrt((parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a-1])*(parameteryoy1[0]-parameteryoy1[1]*parameterARARMA[a-1])-4*parameteryoy1[1]*penampung))/(2*parameteryoy1[1]); end; end; for h:=1 to 2 do begin if timelagautokorelasiparsial=0 then begin

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin

errorduga[i-timelagautokorelasiparsial]:= 0; end;

end else begin

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin hasilramalanduga[i-timelagautokorelasiparsial]:=miu0ARMA; for j:=1 to timelagautokorelasiparsial do begin hasilramalanduga[i-timelagautokorelasiparsial]:=hasilramalanduga[i-timelagautokorelasiparsial]+(parameterARARMA[j-1]*datapenjualan[i-j]); end; end; //hitung et

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin

errorduga[i-timelagautokorelasiparsial]:= datapenjualan[i]-hasilramalanduga[i-timelagautokorelasiparsial];

end; end;

//cek apakah ada pengaruh MA

SetLength(errorARMAduga,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); if timelagautokorelasi=0 then

begin

for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do begin //set error ARMA duga parameter

errorARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]:= errorduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]; //jlhdataerror:=jlhdataerror+1; end; end else begin SetLength(hasilramalanARMAduga,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); //duga hasil ramalan ARMA dan parameter MA

for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do begin

(20)

hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]:=errorduga[i-1]+hasilramalanduga[i-1]; parameterMAARMA[timelagautokorelasi-1]:=parameterMAtemp[0,h-1]; for j:=1 to timelagautokorelasi do begin hasilramalanARMAduga[i- (timelagautokorelasi+timelagautokorelasiparsial)]:=hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]-(parameterMAARMA[j-1]*errorduga[i-j-1]); end; end; Absduga[h-1]:=0;

for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do begin errorARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]:= datapenjualan[i]-hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]; //jlhdataerror:=jlhdataerror+1; Absduga[h-1]:=Absduga[h-1]+abs(errorARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]); end; end; end;

//perbandingan untuk mendapatkan minimum absolut error utk pendugaan parameter Ma if Absduga[0] < Absduga[1] then

begin parameterMAARMA[timelagautokorelasi-1]:=parameterMAtemp[0,0]; end else begin parameterMAARMA[timelagautokorelasi-1]:=parameterMAtemp[0,1]; end; Memo4.Clear;

Memo4.Lines.Add('Estimasi Parameter dari Model AR, MA, dan ARMA'); Memo4.Lines.Add('===========================');

Memo4.Lines.Add('');

Memo4.Lines.Add('Bentuk matematis AR('+IntToStr(timelagautokorelasiparsial)+') : '); persamaan := 'Xt = '+FloatToStr(miu0AR);

for a:=1 to timelagautokorelasiparsial do begin

persamaan:= persamaan +' + '+ Format('%.5f', [parameterAR[a-1]]) +' * Xt-'+ IntToStr(a); end;

persamaan:=persamaan + ' + et'; Memo4.Lines.Add(persamaan); Memo4.Lines.Add('');

Memo4.Lines.Add('Bentuk matematis MA('+IntToStr(timelagautokorelasi)+') : '); persamaan := 'Xt = '+FloatToStr(meandatapenjualan);

persamaan:=persamaan + ' + et'; for a:=1 to timelagautokorelasi do begin if parameterMAARMA[a-1]<0 then begin persamaan:= persamaan + ' + '; end else begin persamaan:= persamaan + ' - '; end;

persamaan:= persamaan + FloatToStr(abs(parameterMA[a-1])) +' * et-'+IntToStr(a); end;

(21)

Memo4.Lines.Add('');

Memo4.Lines.Add('Bentuk matematis

ARMA('+IntToStr(timelagautokorelasiparsial)+','+IntToStr(timelagautokorelasi)+') : '); persamaan := 'Xt = '+FloatToStr(miu0ARMA) +' + ';

for a:=1 to timelagautokorelasiparsial do begin

persamaan:= persamaan + Format('%.5f', [parameterARARMA[a-1]]) +' * Xt-'+ IntToStr(a); end;

persamaan:=persamaan + ' + et'; for a:=1 to timelagautokorelasi do begin if parameterMA[a-1]<0 then begin persamaan:= persamaan + ' + '; end else begin persamaan:= persamaan + ' - '; end;

persamaan:= persamaan + FloatToStr(abs(parameterMAARMA[a-1])) +' * et-'+IntToStr(a); end;

Memo4.Lines.Add(persamaan); end;

procedure TForm1.BsinglemovingAvgClick(Sender: TObject); var SMA1,SMA2,SMA3:array of real;

var i,j,cekdata,flag:Integer; var PESMA1,PESMA2,PESMA3,APESMA1,APESMA2,APESMA3,abserrorSMA1,abserrorSMA2,abserror SMA3,squareerrorSMA1,squareerrorSMA2,squareerrorSMA3 : real; begin if tanda = 1 then begin PsingleMA.Visible:=true; Phasildiagnosis.Visible:=false; end else begin PsingleMA.Visible:=false; Phasildiagnosis.Visible:=false; end; SetLength(SMA1,banyakdata+1); SetLength(SMA2,banyakdata+1); SetLength(SMA3,banyakdata+1); SetLength(SMA,banyakdata+1); PESMA1:=0; PESMA2:=0; PESMA3:=0; APESMA1:=0; APESMA2:=0; APESMA3:=0; squareerrorSMA1:=0; squareerrorSMA2:=0; squareerrorSMA3:=0; abserrorSMA1:=0; abserrorSMA2:=0; abserrorSMA3:=0; cekdata:=0;

(22)

flag:=0;

if banyakdata > 10 then begin

for i:=1 to banyakdata+1 do begin SMA3[i-1]:=0; if i<11 then begin SMA3[i-1]:=0; end else begin if i=(banyakdata+1) then begin for j:=1 to 10 do begin SMA3[i-1]:=SMA3[i-1]+datapenjualan[j+i-12]; end; SMA3[i-1]:=SMA3[i-1]/10; end else // utk i= banyakdata+1 begin for j:=1 to 10 do begin SMA3[i-1]:=SMA3[i-1]+datapenjualan[j+i-12]; end; SMA3[i-1]:=SMA3[i-1]/10; abserrorSMA3:=abserrorSMA3+ abs(datapenjualan[i-1]-SMA3[i-1]); squareerrorSMA3:=squareerrorSMA3+ ((datapenjualan[i-1]-SMA3[i-1])*(datapenjualan[i-1]-SMA3[i-1])); PESMA3:=PESMA3+(100*(datapenjualan[i-1]-SMA3[i-1])/SMA3[i-1]); APESMA3:=APESMA3+abs(100*(datapenjualan[i-1]-SMA3[i-1])/SMA3[i-1]); end; end; end; cekdata:=cekdata+1; end; if banyakdata >7 then begin

for i:=1 to banyakdata+1 do begin SMA2[i-1]:=0; if i<8 then begin SMA2[i-1]:=0; end else begin if i=(banyakdata+1) then begin for j:=1 to 7 do begin SMA2[i-1]:=SMA2[i-1]+datapenjualan[j+i-9]; end; SMA2[i-1]:=SMA2[i-1]/7; end else // utk i= banyakdata+1 begin

for j:=1 to 7 do begin

(23)

SMA2[i-1]:=SMA2[i-1]+datapenjualan[j+i-9]; end; SMA2[i-1]:=SMA2[i-1]/7; abserrorSMA2:=abserrorSMA2+ abs(datapenjualan[i-1]-SMA2[i-1]); squareerrorSMA2:=squareerrorSMA2+ ((datapenjualan[i-1]-SMA2[i-1])*(datapenjualan[i-1]-SMA2[i-1])); PESMA2:=PESMA2+(100*(datapenjualan[i-1]-SMA2[i-1])/SMA2[i-1]); APESMA2:=APESMA2+abs(100*(datapenjualan[i-1]-SMA2[i-1])/SMA2[i-1]); end; end; end; cekdata:=cekdata+1; end; if banyakdata >5 then begin

for i:=1 to banyakdata+1 do begin SMA1[i-1]:=0; if i<6 then begin SMA1[i-1]:=0; end else begin if i=(banyakdata+1) then begin for j:=1 to 5 do begin SMA1[i-1]:=SMA1[i-1]+datapenjualan[j+i-7]; end; SMA1[i-1]:=SMA1[i-1]/5; end else // utk i= banyakdata+1 begin for j:=1 to 5 do begin SMA1[i-1]:=SMA1[i-1]+datapenjualan[j+i-7]; end; SMA1[i-1]:=SMA1[i-1]/5; abserrorSMA1:=abserrorSMA1+ abs(datapenjualan[i-1]-SMA1[i-1]); squareerrorSMA1:=squareerrorSMA1+ ((datapenjualan[i-1]-SMA1[i-1])*(datapenjualan[i-1]-SMA1[i-1])); PESMA1:=PESMA1+(100*(datapenjualan[i-1]-SMA1[i-1])/SMA1[i-1]); APESMA1:=APESMA1+abs(100*(datapenjualan[i-1]-SMA1[i-1])/SMA1[i-1]); end; end; end; cekdata:=cekdata+1; end; if cekdata=1 then begin

for i:=1 to banyakdata+1 do begin

SMA[i-1]:=SMA1[i-1]; end;

flag:=1;

end else if cekdata=2 then begin

(24)

if squareerrorSMA1 < squareerrorSMA2 then begin

for i:=1 to banyakdata+1 do begin SMA[i-1]:=SMA1[i-1]; end; flag:=1; end else begin

for i:=1 to banyakdata+1 do begin

SMA[i-1]:=SMA2[i-1]; end;

flag:=2; end;

end else if cekdata=3 then begin

if (squareerrorSMA1 < squareerrorSMA2) and (squareerrorSMA1 < squareerrorSMA3) then begin

for i:=1 to banyakdata+1 do begin

SMA[i-1]:=SMA1[i-1]; end;

flag:=1;

end else if (squareerrorSMA2<squareerrorSMA1) and (squareerrorSMA2<squareerrorSMA3) then begin

for i:=1 to banyakdata+1 do begin SMA[i-1]:=SMA2[i-1]; end; flag:=2; end else begin

for i:=1 to banyakdata+1 do begin SMA[i-1]:=SMA3[i-1]; end; flag:=3; end; end; Memo6.Clear;

Memo6.Lines.Add('Rata-rata Bergerak Tunggal'); Memo6.Lines.Add('======================'); Memo6.Lines.Add('');

Memo6.Lines.Add('Interval : '); Memo6.Lines.Add('i=5 ');

Memo6.Lines.Add('Absolute error: '+FloatToStr(abserrorSMA1)); Memo6.Lines.Add('Squared error: '+FloatToStr(squareerrorSMA1)); Memo6.Lines.Add('');

Memo6.Lines.Add('i=7 ');

Memo6.Lines.Add('Absolute error: '+FloatToStr(abserrorSMA2)); Memo6.Lines.Add('Squared error: '+FloatToStr(squareerrorSMA2)); Memo6.Lines.Add('');

Memo6.Lines.Add('i=10 ');

Memo6.Lines.Add('Absolute error: '+FloatToStr(abserrorSMA3)); Memo6.Lines.Add('Squared error: '+FloatToStr(squareerrorSMA3));

(25)

Memo6.Lines.Add('');

Memo6.Lines.Add('Berdasarkan ukuran absolute error'); if flag = 1 then

begin

Memo6.Lines.Add('Interval yang digunakan dalam model rata-rata bergerak tunggal adalah : 5.'); MSESMA := squareerrorSMA1/(banyakdata-5);

MAESMA := abserrorSMA1/(banyakdata-5); MAPESMA:= APESMA1/(banyakdata-5); end else if flag=2 then

begin

Memo6.Lines.Add('Interval yang digunakan dalam model rata-rata bergerak tunggal adalah : 7.'); MSESMA := squareerrorSMA2/(banyakdata-7);

MAESMA := abserrorSMA2/(banyakdata-7); MAPESMA:= APESMA2/(banyakdata-7); end else if flag=3 then

begin

Memo6.Lines.Add('Interval yang digunakan dalam model rata-rata bergerak tunggal adalah : 10.'); MSESMA := squareerrorSMA3/(banyakdata-10); MAESMA := abserrorSMA3/(banyakdata-10); MAPESMA:= APESMA3/(banyakdata-10); end; Series4.Clear; Series4.AddArray(SMA); Series10.Clear; Series10.AddArray(datapenjualan); end;

procedure TForm1.BkeputusanClick(Sender: TObject); begin

metode:=0; Memo9.Clear;

Memo9.Lines.Add('MAE ARMA : '+FloatToStr(MAEARMA)); Memo9.Lines.Add('MSE ARMA : '+FloatToStr(MSEARMA)); Memo9.Lines.Add('MAPE ARMA : '+FloatToStr(MAPEARMA)); Memo9.Lines.Add('');

Memo9.Lines.Add('MAE rata-rata bergerak tunggal : '+FloatToStr(MAESMA)); Memo9.Lines.Add('MSE rata-rata bergerak tunggal : '+FloatToStr(MSESMA)); Memo9.Lines.Add('MAPE rata-rata bergerak tunggal : '+FloatToStr(MAPESMA)); Memo9.Lines.Add('');

if MAPESMA=MAPEARMA then begin

Memo9.Lines.Add('kesimpulan: ');

Memo9.Lines.Add('tidak dapat menolak Ho ( Tidak ada perbedaan antara metode Autoregressive-Moving Average dan metode Rata-rata Bergerak Tunggal). ');

Memo9.Lines.Add(''); end else

begin

Memo9.Lines.Add('kesimpulan: ');

Memo9.Lines.Add('dapat menolak Ho (ada perbedaan antara metode Autoregressive-Moving Average dan metode Rata-rata Bergerak Tunggal). ');

Memo9.Lines.Add('');

if MAPESMA <MAPEARMA then begin

(26)

Memo9.Lines.Add('Dari hasil MAE, MSE serta MAPE yang dihasilkan, maka dapat disimpulkan bahwa : Rata-rata bergerak tunggal lebih akurat dalam meramalkan penjualan besi As ST41 putih ukuran 7mm x 6m. ');

metode:=2; end else begin

Pratageraktunggal.Font.Color:=clBtnShadow;

Memo9.Lines.Add('Dari hasil MAE, MSE serta MAPE yang dihasilkan, maka dapat disimpulkan bahwa : metode Autoregressive Moving Average lebih akurat dalam meramalkan penjualan besi As ST41 putih ukuran 7mm x 6m. '); metode:=1; end; end; PsingleMA.Visible:=false; Phasilkeptsan.Visible:=true; end;

procedure TForm1.Bkel1Click(Sender: TObject); begin Pdata.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.BkembalikeeditdataClick(Sender: TObject); begin

Pdata.Visible:=true; Pstasioner.Visible:=false; end;

procedure TForm1.Bkel2Click(Sender: TObject); begin Pstasioner.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.BkembalipilihClick(Sender: TObject); begin

Pstasioner.Visible:=true; Pbanding.Visible:=false; end;

procedure TForm1.Bkel4Click(Sender: TObject); begin PsingleMA.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

(27)

procedure TForm1.Bkembali4Click(Sender: TObject); begin

Phasildiagnosis.Visible:=true; PsingleMA.Visible:=false; end;

procedure TForm1.Bkembali5Click(Sender: TObject); begin

Phasildiagnosis.Visible:=false; Pdugaparameter.Visible:=true; end;

procedure TForm1.Bkeluar5Click(Sender: TObject); begin Phasildiagnosis.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.Bkeluar6Click(Sender: TObject); begin Pdugaparameter.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.Bkembali6Click(Sender: TObject); begin

Pdugaparameter.Visible:=false; Pautokorelasiparsial.Visible:=true; end;

procedure TForm1.Bkeluar7Click(Sender: TObject); begin Pautokorelasiparsial.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.Bkembali7Click(Sender: TObject); begin Pautokorelasiparsial.Visible:=false; Pbanding.Visible:=true; Bmasukramal.Visible:=false; Bkembalipilih.Visible:=true; end;

procedure TForm1.BkembaliputusClick(Sender: TObject); begin

(28)

PsingleMA.Visible:=true; end;

procedure TForm1.NamaUserKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then

BmasukloginClick(Sender); end;

procedure TForm1.PasswordUserKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then

BmasukloginClick(Sender); end;

procedure TForm1.namagantiKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then

BgantipassbaruClick(Sender); end;

procedure TForm1.passbaruKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then

BgantipassbaruClick(Sender); end;

procedure TForm1.konfirmasipassbaruKeyPress(Sender: TObject; var Key: Char);

begin

if key = #13 then

BgantipassbaruClick(Sender); end;

procedure TForm1.passlamaKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then

BgantipassbaruClick(Sender); end;

procedure TForm1.varabelramalKeyPress(Sender: TObject; var Key: Char); begin

if key = #13 then BramalpenjualanClick(sender); if ((key <#58) and (key >#47)) or (key=#8) then begin end else begin key:=#0; end; end;

procedure TForm1.BramalpenjualanClick(Sender: TObject); var j,i,x,penurun : integer;

var ramalan,databaru,errorMAbaru : array of Double; begin

(29)

begin

MessageBox(Self.Handle,'silakan masukkan bulan sebelum meramal','Validasi',MB_OK); end else

begin

Memo7.clear;

Memo7.Lines.Add('Hasil peramalan Besi As ST41 putih ukuran 7mmx6m PT.Batraja Rona Steel'); Memo7.Lines.Add('Untuk '+varabelramal.Text+' bulan ke depan adalah :');

x:=StrToInt(varabelramal.Text); if metode=1 then begin if tandaARMA=1 then begin SetLength(ramalan,x); SetLength(databaru,x+timelagautokorelasiparsial); penurun:=timelagautokorelasiparsial;

for i:=1 to timelagautokorelasiparsial do begin databaru[i-1]:=datapenjualan[banyakdata-penurun]; penurun:=penurun-1; end; for i:= 1 to x do begin ramalan[i-1]:=miu0AR; for j:=1 to timelagautokorelasiparsial do begin ramalan[i-1]:=ramalan[i-1]+parameterAR[j-1]*databaru[i+timelagautokorelasiparsial-j-1]; end; databaru[timelagautokorelasiparsial+i-1]:=ramalan[i-1]; end; Memo7.Lines.Add(FloatToStr(ramalan[x-1])); end else if tandaARMA=2 then

begin

SetLength(ramalan,x);

SetLength(errorMAbaru,x+timelagautokorelasi); penurun:=timelagautokorelasi;

for i:=1 to timelagautokorelasi do begin errorMAbaru[i-1]:=datapenjualan[banyakdata-penurun]-hasilramalanMA[banyakdata-penurun]; penurun:=penurun-1; end; for i:= 1 to x do begin ramalan[i-1]:=miu0MA; for j:=1 to timelagautokorelasi do begin ramalan[i-1]:=ramalan[i-1]-(parameterMA[j-1]*errorMAbaru[i-1+timelagautokorelasi-j]); end; errorMAbaru[i-1+timelagautokorelasi]:=0; end; Memo7.Lines.Add(FloatToStr(ramalan[x-1])); end else if tandaARMA=3 then

begin

SetLength(ramalan,x);

SetLength(databaru,x+timelagautokorelasiparsial); SetLength(errorMAbaru,x+timelagautokorelasi); penurun:=timelagautokorelasiparsial;

(30)

for i:=1 to timelagautokorelasiparsial do begin databaru[i-1]:=datapenjualan[banyakdata-penurun]; penurun:=penurun-1; end; penurun:=timelagautokorelasi+1; for i:=1 to timelagautokorelasi do begin errorMAbaru[i-1]:=errorduga[banyakdata-penurun]; penurun:=penurun-1; end; for i:=1 to x do begin ramalan[i-1]:=miu0ARMA; for j:=1 to timelagautokorelasiparsial do begin ramalan[i-1]:=ramalan[i-1]+(parameterARARMA[j-1]*databaru[i+timelagautokorelasiparsial-j-1]); end; errorMAbaru[i-1+timelagautokorelasi]:= 0; for j:=1 to timelagautokorelasi do begin ramalan[i-1]:=ramalan[i-1]-(parameterMAARMA[j-1]*errorMAbaru[i-1+timelagautokorelasi-j]); end; end; Memo7.Lines.Add(FloatToStr(ramalan[x-1])+' ton'); end;

end else if metode=2 then begin

Memo7.Lines.Add(FloatToStr(SMA[banyakdata])+' ton'); end;

end; end;

procedure TForm1.BmasukramalClick(Sender: TObject); begin Pbanding.Visible:=false; Pperamalan.Visible:=true; varabelramal.SetFocus; varabelramal.Text:=''; Memo7.Clear; end;

procedure TForm1.Bkembali8Click(Sender: TObject); begin

Pperamalan.Visible:=false; Pbanding.Visible:=true; end;

procedure TForm1.BdiagnosaClick(Sender: TObject); var

errorARARMA,errortes,error,errorARMA,errorAR,errorMA,hasilramalan,hasilramalanduga,hasilramalan ARMAduga : array of Double;

var hint1,hint2,hint3,i,j,jlhdataerror,turun:Integer; var

totalerrorARMA,Abs1,Abs2,Abs3,SE1,SE2,SE3,PE1,PE2,PE3,APE1,APE2,APE3,MAE1,MAE2,MAE3, MAPE1,MAPE2,MAPE3,MSE1,MSE2,MSE3:Real;

(31)

begin

Memo5.Clear;

hint1:=0; hint2:=0; hint3:=0; jlhdataerror:=0;

Abs1:=0; abs2:=0; Abs3:=0; SE1:=0; SE2:=0; SE3:=0; PE1:=0; PE2:=0; PE3:=0; APE1:=0; APE2:=0; APE3:=0; MSE1:=0; MSE2:=0; MSE3:=0; MAPE1:=0; MAPE2:=0; MAPE3:=0; MAE1:=0; MAE3:=0; miu0MA:=meandatapenjualan; Memo5.Clear; if tanda =1 then begin Pdugaparameter.Visible:=false; Phasildiagnosis.Visible:=true; end else begin Pdugaparameter.Visible:=false; Phasildiagnosis.Visible:=false; end; SetLength(errorduga,(banyakdata-timelagautokorelasiparsial)); SetLength(hasilramalanduga,(banyakdata-timelagautokorelasiparsial)); SetLength(error,(banyakdata-timelagautokorelasiparsial)); SetLength(errorAR,(banyakdata-timelagautokorelasiparsial)); SetLength(errorARARMA,(banyakdata-timelagautokorelasiparsial)); SetLength(errorMA,(banyakdata)); SetLength(errortes,(banyakdata+timelagautokorelasi+3)); SetLength(hasilramalanAR,(banyakdata-timelagautokorelasiparsial)); SetLength(hasilramalanMA,(banyakdata)); SetLength(hasilramalan,(banyakdata-timelagautokorelasiparsial)); SetLength(Datasimpanbaru,100); SetLength(errorsimpanbaru,100); if timelagautokorelasiparsial>0 then begin hint1:=1; for i:=1 to 100 do begin errorsimpanbaru[i-1]:=0; end; //hitung errorar if timelagautokorelasiparsial=0 then begin

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin

errorAR[i-timelagautokorelasiparsial]:= 0; end;

end else begin

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin

hasilramalanAR[i-timelagautokorelasiparsial]:=miu0AR; for j:=1 to timelagautokorelasiparsial do

(32)

hasilramalanAR[i-timelagautokorelasiparsial]:=hasilramalanAR[i-timelagautokorelasiparsial]+parameterAR[j-1]*datapenjualan[i-j]; end;

//Memo5.Lines.Add('AR ke '+IntToStr(i)+' = '+FloatToStr(hasilramalanAR[i-timelagautokorelasiparsial]));

end; //hitung et

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin errorAR[i-timelagautokorelasiparsial]:= datapenjualan[i]-hasilramalanAR[i-timelagautokorelasiparsial]; Abs1:=Abs1+abs(errorAR[i-timelagautokorelasiparsial]); SE1:=SE1+(errorAR[i-timelagautokorelasiparsial]*errorAR[i-timelagautokorelasiparsial]); PE1:=PE1+(100*(errorAR[i-timelagautokorelasiparsial]/hasilramalanAR[i-timelagautokorelasiparsial])); APE1:=APE1+abs(100*(errorAR[i-timelagautokorelasiparsial]/hasilramalanAR[i-timelagautokorelasiparsial])); end; MAE1:=abs1/(banyakdata-timelagautokorelasiparsial); MSE1:=SE1/(banyakdata-timelagautokorelasiparsial); MAPE1:=APE1/(banyakdata-timelagautokorelasiparsial); end; end; //duga errorMA if timelagautokorelasi>0 then begin hint2:=1;

for i:=1 to (banyakdata+timelagautokorelasi) do begin

errortes[i-1]:=0; end;

for i:= 1 to (banyakdata) do begin hasilramalanMA[i-1]:=miu0MA+errortes[i-1+timelagautokorelasi]; for j:=1 to timelagautokorelasi do begin hasilramalanMA[i-1]:=hasilramalanMA[i-1]-(parameterMA[j-1]*errortes[i-1+timelagautokorelasi-j]); end; errortes[i-1+timelagautokorelasi]:=datapenjualan[i-1]-hasilramalanMA[i-1]; end;

for i:= timelagautokorelasi to (banyakdata-1) do begin errorMA[i-timelagautokorelasi]:= datapenjualan[i]-hasilramalanMA[i]; Abs2:=Abs2+abs(errorMA[i-timelagautokorelasi]); SE2:=SE2+(errorMA[i-timelagautokorelasi]*errorMA[i-timelagautokorelasi]); PE2:=PE2+(100*(errorMA[i-timelagautokorelasi]/hasilramalanMA[i])); APE2:=APE2+abs(100*(errorMA[i-timelagautokorelasi]/hasilramalanMA[i])); end; MAE2:=abs2/(banyakdata); MSE2:=SE2/(banyakdata); MAPE2:=APE2/(banyakdata); end;

//hasil ramalan dari ARARMA

if (timelagautokorelasi>0) and (timelagautokorelasiparsial>0) then begin

hint3:=1;

if (timelagautokorelasiparsial=0) and (timelagautokorelasi=0) then begin

(33)

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin errorduga[i-timelagautokorelasiparsial]:= 0; end; end else begin

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin hasilramalanduga[i-timelagautokorelasiparsial]:=miu0ARMA; for j:=1 to timelagautokorelasiparsial do begin hasilramalanduga[i-timelagautokorelasiparsial]:=hasilramalanduga[i-timelagautokorelasiparsial]+(parameterARARMA[j-1]*datapenjualan[i-j]); end; end; //hitung et

for i:= timelagautokorelasiparsial to (banyakdata-1) do begin

errorduga[i-timelagautokorelasiparsial]:= datapenjualan[i]-hasilramalanduga[i-timelagautokorelasiparsial];

end; end;

//cek apakah ada pengaruh MA

SetLength(errorARMAduga,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); if timelagautokorelasi=0 then

begin

for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do begin //set error ARMA duga parameter

errorARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]:= errorduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]; jlhdataerror:=jlhdataerror+1; end; end else begin SetLength(hasilramalanARMAduga,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); //duga hasil ramalan ARMA dan parameter MA

for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do begin hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]:=errorduga[i-1]+hasilramalanduga[i-1]; for j:=1 to timelagautokorelasi do begin hasilramalanARMAduga[i- (timelagautokorelasi+timelagautokorelasiparsial)]:=hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]-(parameterMAARMA[j-1]*errorduga[i-j-1]); end; end; SetLength(hasilramalanARMA,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); SetLength(errorARMA,(banyakdata-timelagautokorelasi-timelagautokorelasiparsial)); for i:= (timelagautokorelasi+timelagautokorelasiparsial) to (banyakdata-1) do

begin hasilramalanARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]:=hasilramalanARMAduga[i-(timelagautokorelasi+timelagautokorelasiparsial)]; errorARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]:= datapenjualan[i]-hasilramalanARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]; Abs3:=Abs3+abs(errorARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]);

(34)

SE3:=SE3+(errorARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]*errorARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]); PE3:=PE3+(100*(errorARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)]/hasilramalanARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)])); APE3:=APE3+abs(100*(errorARMA[i- (timelagautokorelasi+timelagautokorelasiparsial)]/hasilramalanARMA[i-(timelagautokorelasi+timelagautokorelasiparsial)])); end; MAE3:=abs3/(banyakdata-(timelagautokorelasi+timelagautokorelasiparsial)); MSE3:=SE3/(banyakdata-(timelagautokorelasi+timelagautokorelasiparsial)); MAPE3:=APE3/(banyakdata-(timelagautokorelasi+timelagautokorelasiparsial)); end; end;

Memo5.Lines.Add('Hasil Diagnosis Model'); Memo5.Lines.Add(''); if hint1=1 then begin Memo5.Lines.Add('Model AR('+IntToStr(timelagautokorelasiparsial)+') / ARMA('+IntToStr(timelagautokorelasiparsial)+',0) adalah :'); Memo5.Lines.Add('MAE = ' +FloatToStr(MAE1)); Memo5.Lines.Add('MSE = ' +FloatToStr(MSE1)); Memo5.Lines.Add(''); end; if hint2=1 then begin Memo5.Lines.Add('Model MA('+IntToStr(timelagautokorelasi)+') / ARMA(0,'+IntToStr(timelagautokorelasi)+') adalah :'); Memo5.Lines.Add('MAE = ' +FloatToStr(MAE2)); Memo5.Lines.Add('MSE = ' +FloatToStr(MSE2)); Memo5.Lines.Add(''); end; if hint3=1 then begin Memo5.Lines.Add('Model ARMA('+IntToStr(timelagautokorelasiparsial)+','+IntToStr(timelagautokorelasi)+') adalah :'); Memo5.Lines.Add('MAE = ' +FloatToStr(MAE3)); Memo5.Lines.Add('MSE = ' +FloatToStr(MSE3)); Memo5.Lines.Add(''); end; turun:=timelagautokorelasiparsial; for j:=1 to timelagautokorelasiparsial do begin Datasimpanbaru[j-1]:=datapenjualan[banyakdata-turun]; turun:=turun-1; end; if hint3=1 then begin

if (MAE1 < MAE2) and (MAE1<MAE3) then begin

tandaARMA:=1; MAPEARMA:=MAPE1; MAEARMA:=MAE1; MSEARMA:=MSE1;

Memo5.Lines.Add('Jadi berdasarkan MAE dan MSE yang diperoleh, maka model yang terpilih adalah Model AR('+IntToStr(timelagautokorelasiparsial)+') /

(35)

end else if (MAE2 < MAE1) and (MAE2<MAE3) then begin tandaARMA:=2; MAPEARMA:=MAPE2; MAEARMA:=MAE2; MSEARMA:=MSE2;

Memo5.Lines.Add('Jadi berdasarkan MAE dan MSE yang diperoleh, maka model yang terpilih adalah Model MA('+IntToStr(timelagautokorelasi)+') / ARMA(0,'+IntToStr(timelagautokorelasi)+')'); turun:=timelagautokorelasi; for j:=1 to timelagautokorelasi do begin errorsimpanbaru[j-1]:=errortes[banyakdata-turun]; turun:=turun-1; end;

end else if (MAE3 < MAE1) and (MAE3<MAE2) then begin tandaARMA:=3; MAPEARMA:=MAPE3; MAEARMA:=MAE3; MSEARMA:=MSE3; end;

end else if hint2=1 then begin

tandaARMA:=2; MAPEARMA:=MAPE2; MAEARMA:=MAE2; MSEARMA:=MSE2;

Memo5.Lines.Add('Jadi berdasarkan MAE dan MSE yang diperoleh, maka model yang terpilih adalah Model MA('+IntToStr(timelagautokorelasi)+') / ARMA(0,'+IntToStr(timelagautokorelasi)+')'); turun:=timelagautokorelasi; for j:=1 to timelagautokorelasi do begin errorsimpanbaru[j-1]:=errortes[banyakdata-turun]; turun:=turun-1; end;

end else if hint1=1 then begin

tandaARMA:=1; MAPEARMA:=MAPE1; MAEARMA:=MAE1; MSEARMA:=MSE1;

Memo5.Lines.Add('Jadi berdasarkan MAE dan MSE yang diperoleh, maka model yang terpilih adalah Model AR('+IntToStr(timelagautokorelasiparsial)+') / ARMA('+IntToStr(timelagautokorelasiparsial)+',0)'); end; Series5.Clear; Series6.Clear; Series7.Clear; Series8.Clear; Series6.AddArray(datapenjualan); for j:=1 to (timelagautokorelasi+timelagautokorelasiparsial) do begin series7.Add(hasilramalanARMA[0],'',clWindow); end; series7.AddArray(hasilramalanARMA); for j:=1 to (timelagautokorelasiparsial) do

(36)

begin series5.Add(hasilramalanAR[0],'',clWindow); end; series5.AddArray(hasilramalanAR); for j:=1 to (timelagautokorelasi) do begin series8.Add(hasilramalanMA[0],'',clWindow); end; series8.AddArray(hasilramalanMA); end;

procedure TForm1.BtentangkamiClick(Sender: TObject); begin

Memo8.Clear;

Memo8.Lines.Add('Program Aplikasi Perbandingan dan Peramalan Metode Autoregressive-Moving Average dengan Rata-rata Bergerak Tunggal');

Memo8.Lines.Add('============================================================= ============================');

Memo8.Lines.Add('');

Memo8.Lines.Add('Membandingkan metode ARMA dengan metode Rata-rata bergerak tunggal, kemudian meramalkan tingkat penjualan Besi As putih untuk periode mendatang berdasarkan metode yang memiliki keakuratan terbaik');

Memo8.Lines.Add(''); Memo8.Lines.Add('Oleh :');

Memo8.Lines.Add('Johan untuk PT. Batraja Rona Steel.'); Memo8.Lines.Add('');

Memo8.Lines.Add('Informasi lebih lanjut hubungi'); Memo8.Lines.Add('Email : joh4n_m4@yahoo.com'); end;

procedure TForm1.Button3Click(Sender: TObject); begin

Memo8.Clear;

Memo8.Lines.Add('Cara Pemakaian Program Aplikasi');

Memo8.Lines.Add('============================================================= ============================');

Memo8.Lines.Add('');

Memo8.Lines.Add('1. Login dengan menggunakan nama serta password yang spesifik (hanya yang berkepentingan yang memiliki akses menggunakan program aplikasi ini)');

Memo8.Lines.Add(' Dalam Menu Login, pengguna diberikan hak akses untuk mengganti password atau untuk keluar dari program aplikasi');

Memo8.Lines.Add('');

Memo8.Lines.Add('2. Masuk ke menu/tampilan Utama, terdapat 2 pilihan utama ke menu lainnya yakni menu Lihat Grafik Data serta menu Cek Data (kestasioneran)');

Memo8.Lines.Add(' Di menu/tampilan Utama ini disajikan data penjualan Besi As ST41 putih ukuran 7mmx6m PT.Batraja Rona Steel');

Memo8.Lines.Add('');

Memo8.Lines.Add('3. Apabila menu Lihat Grafik Data terpilih, akan muncul menu/tampilan grafik data penjualan Besi As ST41 putih ukuran 7mmx6m PT.Batraja Rona Steel.');

Memo8.Lines.Add('');

Memo8.Lines.Add('4. Cek Data (Kestasioneran) menunjukkan apakah data penjualan Besi As putih memiliki kestasioneran atau tidak.');

Memo8.Lines.Add('Dalam menu ini ditampilkan grafik serta nilai autokorelasi yang diperlukan untuk menunjukkan kestasioneran data. Apabila memiliki kestasioneran, maka dilanjutkan dengan pemilihan metode');

(37)

Memo8.Lines.Add('5. Pemilihan Metode peramalan, terdapat 2 pilihan menu yakni ke menu peramalan Besi As ST41 putih ukuran 7mmx6m dan ke menu Lihat Analisis Data. ');

Memo8.Lines.Add('');

Memo8.Lines.Add('6. Dalam Lihat Analisis Data, awal analisis yakni mencari autokorelasi parsial dari data penjualan untuk memperoleh model-model ARMA yang sesuai.');

Memo8.Lines.Add(' Dalam menu ini disajikan grafik serta nilai autokorelasi parsial. Tahap selanjutnya adalah estimasi parameter untuk model-model ARMA');

Memo8.Lines.Add('');

Memo8.Lines.Add('7. Tahap estimasi parameter menampilkan model matematis dari masing-masing model ARMA yang sesuai dengan data penjualan. Tahap selanjutnya adalah diagnosis model-model ARMA.');

Memo8.Lines.Add('');

Memo8.Lines.Add('8. Tahap diagnosis model menampilkan grafik perbandingan data aktual dengan model-model ARMA yang sesuai dengan data penjualan serta disajikan MAE dan MSE dari masing-masing model ARMA.');

Memo8.Lines.Add('Tahap selanjutnya adalah Analisis peramalan Rata-rata Bergerak Tunggal.'); Memo8.Lines.Add('');

Memo8.Lines.Add('9. Tahap peramalan Rata-rata Bergerak Tunggal menyajikan absolut dan squared error dari masing-masing model Rata-rata Bergerak tunggal. Tahap selanjutnya adalah keputusan pemilihan metode.');

Memo8.Lines.Add('');

Memo8.Lines.Add('10. Tahap keputusan. Dalam menu ini menampilkan keterangan metode mana yang lebih akurat.');

Memo8.Lines.Add('');

Memo8.Lines.Add('11. Dalam tahap peramalan, pengguna dapat memasukkan t periode kedepan yang ingin diprediksi hasil ramalannya berdasarkan metode yang terpilih sebelumnya.');

Memo8.Lines.Add('');

Memo8.Lines.Add('12. Dalam setiap menu terdapat menu Bantuan, Keluar serta Kembali.'); Memo8.Lines.Add(' Menu Bantuan : menampilkan cara pemakaian program aplikasi serta tentang kami');

Memo8.Lines.Add(' Menu Keluar : Keluar ke menu login (log out dari program aplikasi).'); Memo8.Lines.Add(' Menu Kembali : Kembali ke menu sebelumnya dari menu sekarang.'); end;

procedure TForm1.BOkClick(Sender: TObject); begin

PBantuan.Visible:=false; if sign=1 then

begin

Pdata.Visible:=true; end else if sign=2 then begin

Pstasioner.Visible:=true; end else if sign=3 then begin

Pbanding.Visible:=true; end else if sign=4 then begin

Pautokorelasiparsial.Visible:=true; end else if sign=5 then

begin

Pdugaparameter.Visible:=true; end else if sign=6 then begin

Phasildiagnosis.Visible:=true; end else if sign=7 then

(38)

begin

PsingleMA.Visible:=true; end else if sign=8 then begin

Phasilkeptsan.Visible:=true; end;

sign:=0; end;

procedure TForm1.Bbantuan2Click(Sender: TObject); begin Memo8.Clear; PBantuan.Visible:=true; Pstasioner.Visible:=false; sign:=2; end;

procedure TForm1.Bbantuan3Click(Sender: TObject); begin memo8.Clear; PBantuan.Visible:=true; Pbanding.Visible:=false; sign:=3; end;

procedure TForm1.Bbantuan6Click(Sender: TObject); begin Memo8.Clear; Memo8.Lines.Add(''); PBantuan.Visible:=true; Pdugaparameter.Visible:=false; sign:=5; end;

procedure TForm1.Bbantuan7Click(Sender: TObject); begin Memo8.Clear; Memo8.Lines.Add(''); PBantuan.Visible:=true; Pautokorelasiparsial.Visible:=false; sign:=4; end;

procedure TForm1.Bbantuan4Click(Sender: TObject); begin Memo8.Clear; Memo8.Lines.Add(''); PBantuan.Visible:=true; PsingleMA.Visible:=false; sign:=7; end;

procedure TForm1.Bbantuan5Click(Sender: TObject); begin

Memo8.Clear; Memo8.Lines.Add('');

(39)

PBantuan.Visible:=true; Phasildiagnosis.Visible:=false; sign:=6;

end;

procedure TForm1.BliatdetailClick(Sender: TObject); begin

tanda:=1; autokorelasipar(); end;

procedure TForm1.BselClick(Sender: TObject); begin

Pdata.Visible:=true; Pview.Visible:=false; end;

procedure TForm1.BviewClick(Sender: TObject); begin

Pdata.Visible:=false; Pview.Visible:=true; end;

procedure TForm1.Bbantuan1Click(Sender: TObject); begin memo8.Clear; Pdata.Visible:=false; PBantuan.Visible:=true; sign:=1; end; procedure TForm1.autokorelasipar; var a,I,q,r: Integer;

var nampung:Real;

var matriksparsial : array of array of Real; begin if tanda=1 then begin Pbanding.Visible:=false; Pautokorelasiparsial.Visible:=true; end else begin Pbanding.Visible:=false; Pautokorelasiparsial.Visible:=false; end; SetLength(matriksparsial,10);

for I := Low(matriksparsial) to High(matriksparsial) do begin SetLength(matriksparsial[I],10); end; for q :=0 to 9 do begin for r:=0 to 9 do begin matriksparsial[q,r]:=0;

(40)

end; end; setlength(autokorelasiparsial,11); for q:=0 to 9 do begin if q=0 then begin matriksparsial[q,q]:=autokorelasi[q+1]; end else if q=1 then

begin matriksparsial[q,q]:=(autokorelasi[q+1]-autokorelasi[q]*autokorelasi[q])/(1-autokorelasi[q]*autokorelasi[q]); end else begin for r:=1 to (q-1) do begin matriksparsial[q-1,r-1]:=matriksparsial[q-2,r-1]-matriksparsial[q-1,q-1]*matriksparsial[q-2,q-r-1]; end; nampung:=0; for r:=1 to q do begin nampung:=nampung + (matriksparsial[q-1,r-1]*autokorelasi[q-r+1]); end; matriksparsial[q,q]:=(autokorelasi[q+1]-nampung)/(1-nampung); end; end; autokorelasiparsial[0]:=1; for q:=1 to 10 do begin autokorelasiparsial[q]:= matriksparsial[q-1,q-1]; end; Memo2.Clear;

Memo2.Lines.Add('Autokorelasi parsial dari data penjualan Besi As ST41 putih ukuran 7mmx6m : '); Memo2.Lines.Add('');

for a:=1 to 10 do begin

Memo2.Lines.Add('time lag '+ IntToStr(a) +' = '+ FloatToStr(autokorelasiparsial[a]) +'.');

if (autokorelasiparsial[a]<batasatassignifikanNol) and (autokorelasiparsial[a]>batasbawahsignifikanNol) then begin timelagautokorelasiparsial:=timelagautokorelasiparsial; end else begin timelagautokorelasiparsial:=a; end; end; Series3.Clear; Series3.AddArray(autokorelasiparsial); Memo2.Lines.Add('');

Memo2.Lines.Add('Tes signifikan berbeda dari Null');

Memo2.Lines.Add('autokorelasi pada time lag :'+IntToStr(timelagautokorelasi));

Memo2.Lines.Add('autokorelasi parsial pada time lag :'+IntToStr(timelagautokorelasiparsial)); Memo2.Lines.Add('');

Memo2.Lines.Add('Jadi model AR yang cocok untuk peramalan adalah AR('+IntToStr(timelagautokorelasiparsial)+') ');

(41)

Memo2.Lines.Add('Jadi model MA yang cocok untuk peramalan adalah MA('+IntToStr(timelagautokorelasi)+') ');

Memo2.Lines.Add('');

Memo2.Lines.Add('Jadi model ARMA yang cocok untuk peramalan adalah

ARMA('+IntToStr(timelagautokorelasiparsial)+','+IntToStr(timelagautokorelasi)+') '); end;

procedure TForm1.Bkeluar9Click(Sender: TObject); begin Phasilkeptsan.Visible:=false; Plogin.Visible:=true; NamaUser.Text:=''; PasswordUser.Text:=''; NamaUser.SetFocus; end;

procedure TForm1.BokkeptsanClick(Sender: TObject); begin

Phasilkeptsan.Visible:=false; Pbanding.Visible:=true; end;

procedure TForm1.Bkembali9Click(Sender: TObject); begin

PsingleMA.Visible:=true; Phasilkeptsan.Visible:=false; end;

procedure TForm1.Bbantuan9Click(Sender: TObject); begin Memo8.Clear; Memo8.Lines.Add(''); PBantuan.Visible:=true; Phasilkeptsan.Visible:=false; sign:=8; end; end.

(42)

Lampiran 4.

Tampilan Layar Menu

Tampilan Layar Menu Login

Tampilan Layar Menu Login

Tampilan Layar Menu Ubah Password

(43)

Tampilan Layar Menu Utama

Tampilan Layar Menu Utama

Tampilan Layar Menu Lihat Grafik Data

(44)

Tampilan Layar Menu Cek Data (Kestasioneran)

Tampilan Layar Menu Cek Data (Kestasioneran)

Tampilan Layar Menu Pemilihan Metode

(45)

Tampilan Layar Menu Peramalan

Tampilan Layar Menu Peramalan

Tampilan Layar Menu Bantuan

(46)

Tampilan Layar Menu Lihat Analisis Data

Tampilan Layar Menu Lihat Analisis Data

Tampilan Layar Menu Estimasi Parameter

(47)

Tampilan Layar Menu Diagnosa Model

Tampilan Layar Menu Diagnosa Model

Tampilan Layar Menu Single MA

(48)

Tampilan Layar Menu Keputusan

Tampilan Layar Menu Keputusan

Referensi

Dokumen terkait

Pembuatan buku tutorial cara pembuatan karya seni rupa wayang beber dari bahan kertas koran pada kanvas ini adalah sebagai upaya dalam mendukung program pemerintah Surakarta

Salah satu alternatif yang dapat membantu menyelesaikan masalah tersebut adalah dengan menerapkan sistem komputerisasi sistem dalam suatu perusahaan atau instansi untuk

Algoritma Dijkstra adalah algoritma untuk menemukan jarak terpendek dari suatu vertex ke vertex yang lainnya pada suatu graph yang berbobot, dimana jarak antar vertex

Diajukan untuk memenuhi Sebagian Syarat Memperolah Gelar Sarjana Pendidikan Program Studi Pendidikan Guru Sekolah

Berdasarkan hal tersebut, sehingga diperlukan penelitian betimetri di Perairan Pulau Komodo menggunakan multibeam echosounder untuk melakukan pemetaan kedalaman

Golongan dan jenis obat darah pada pasien ulkus DM di instalasi rawat inap Rumah Sakit Panti Rapih Yogyakarta periode 2005 .... Golongan dan jenis obat kardiovaskular pada

(Muslim Awakening Party), Partai Kebangkitan Umat (Ummah Awakening Party), Partai Kesatuan Umat Indonesia (PKUI: United Indonesian People’s Party), Partai Kesatuan Wahdatul

Tujuan pelaksanaan suatu program atau kegiatan tidak akan dapat tercapai dengan maksimal apabila tidak didukung dengan kemampuan penanggung jawab, pengelola maupun