Anda di halaman 1dari 33

BAB I

Pengantar Software Matlab

1.1 Apa itu Matlab ?


Matlab atau Matrix Laboratory adalah perangkat lunak (software) produksi The
MathWorks,Inc, yang memadukan kemampuan perhitungan, pencitraan, dan pemograman
dalam satu paket. Matlab dapat digunakan untuk analisis dan komputasi numerik. Hal ini
dikarenakan bahasa pemrograman dibentuk dengan dasar pemikiran menggunkan sifat dan
bentuk matriks (berbasis pada matriks) . Pada awalnya, program ini merupakan interface
untuk koleksi rutin-rutin numerik dari proyek LINPACK dan EISPACK, dan dikembangkan
menggunkan bahasa FORTRAN. Namun The MathWorks,Inc kemudian
mengembangankannya dengan menggunakan bahasa C++ dan assembler (utamanya untuk
fungsi-fungsi dasar Matlab).
Matlab telah berkembang menjadi sebuah environment pemrograman yang canggih
yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan
kalkulasi matematis lainnya. Matlab juga berisi toolbox yang berisi fungsi-fungsi tambahan
untuk aplikasi khusus. Matlab bersifat extensible, artinya seorang user atau pengguna dapat
menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang
tersedia tidak dapat melakukan tugas tertentu. Matlab sering digunakan untuk teknik
komputasi numerik, yang digunakan untuk menyelesaikan masalah-masalah yang melibatkan
operasi matematika elemen, matrik, optimasi, aproksimasi dll. Sehingga Matlab banyak
digunakan pada :
• Matematika dan Komputansi • Pengembangan dan Algoritma
• Pemrograman modeling, simulasi, dan pembuatan • Analisa Data , eksplorasi dan
prototipe visualisasi
• Analisis numerik dan statistik • Pengembangan aplikasi teknik

1.2 Lingkungan Kerja Matlab


Secara garis besar lingkungan kerja Matlab terdiri atas beberapa unsur seperti pada
Gambar 1. Adapun penjelasannya sebagai berikut.
1. Command window
Command window atau dapat disebut layar kendali, merupakan window yang
dibuka pertama kali setiap kali Matlab dijalankan. Pada command window dapat
dilakukan akses-akses ke command-command Matlab dengan cara mengetikkan barisan-
barisan ekpresi Matlab, seperti mengakses help window dan lain-lainnya. Selain itu,
command windows juga digunakan untuk memanggil toolMatlab seperti editor, debugger
atau fungsi. Ciri dari window ini adalah adanya prompt (>>) yang menyatakan matlab
siap menerima perintah. Perintah dapat berupa fungsi-fungsi pengaturan file (seperti
perintah DOS/UNIX) maupun fungsi-fungsi bawaan/toolbox MATLAB sendiri. Berikut
ini beberapa fungsi pengaturan file dalam MATLAB :
dir / ls : untuk melihat isi dari sebuah direktori aktif.
cd : untuk melakukan perpindahan dari direktori aktif.
pwd : untuk melihat direktori yang sedang aktif
mkdir : untuk membuat sebuah direktori
what : untuk melihat nama file m dalam direktori aktif
who : untuk melihat variabel yang sedang aktif
whos : untuk menampilkan nama setiap variabel
delete : untuk menghapus file
clear : untuk menghapus variabel
clc : untuk membersihkan layar
doc : untuk melihat dokumentasi The MathWorks, Inc. dalam forma html secara
online.
demo : untuk mencoba beberapa tampilan demo yang disediakan oleh Matlab
2. Workspace
Workspace biasa disebut rak data yang berfungsi sebagai tempat untuk menyimpan
secara otomatis harga dari variabel yang telah didefinisikan pada command window.

Menu
Icon

Workspace
Tempat yang
menyimpan otomatis
harga variabel
Command Window
Jendela utama Matlab, untuk mengetikkan
perintah dan menampilkan hasilnya.

Command History
Tempat yang
menyimpan otomatis
yang sudah diketikkan
di command window

Gambar 1 Ruang Lingkup Matlab

3. Command history
Command history dapat disebut sebagai layar pengingat. Fungsin command history
sebagai tempat untuk menyimpan secara otomatis perintah-perintah yang telah
didefinisikan/diketikkan pada command window.
4. M-file atau MATLAB Editor/Debugger (Editor Pencarian Kesalahan)
Window ini merupakan tool yang disediakan oleh Matlab (minimal seri 5 keatas).
M-file berfungsi sebagai editor script Matlab. Walaupun sebenarnya script ini untuk
pemrograman Matlab, namun M-file juga dapat diganti menggunakan editor yang lain
seperi notepad, wordpad atau microsoft word. M-file akan dibahas lebih lanjut pada
subbab selanjutnya.

1.2 Memulai Matlab


Memulai Matlab dapat dilakukan dengan mengklik shortcut pada dekstop
Windows komputer. Gambar 1 merupakan tampilan awal pada Matlab yang baru saja di buka.
Gambar 1 merupakan tampilan Matlab yang dipakai pada operating system Windows.
Beberapa hal yang perlu diperhatikan sebelum memulai menggunakan Matlab. Hal-hal
tersebut antara lain :
>>  Tanda ini adalah default Matlab prompt. Semua perintah yang akan dieksekusi
Pada command windows ditulis sesudah tanda prompt ini.
…  Tanda titik tiga yang terletak pada akhir baris suatu perintah menunjukkan bahwa
perintah selanjutnya akan dilanjutkan pada baris berikutnya.
;  Tanda semicolon (titik koma) diakhir baris perintah digunakan untuk tidak
menampilkan hasil perintah pada command window
%  Apabila teks ditulis setelah tanda ini, maka teks tersebut tidak akan dieksekusi
(semua teks hanya dianggap sebagai komentar saja). Hal ini juga dibutuhkan,
khusunya dalam hal pemrograman, karena komentar dapat berfungsi untuk
memberitahu apa maksud dari suatu command (sebagai keterangan untuk program
yang sudah ditulis). Apabila berganti baris, untuk memberi komentar tambahan
harus diawali dengan tanda ini terlebih dahulu.
^C  Biasanya disebut dengan Control C dan berfungsi untuk menghentikan eksekusi
Matlab dan akan kembali lagi pada prompt >>.
Selain empat tanda penting di atas, terdapat pula hal-hal yang perlu diketahui, yakni :
a. Matlab merupakan software yang sensitif (case sensitive). Hal sensitif tersebut terletak
pada pemberian nama pada variabel atau fungsi. Penggunakan huruf kapital (besar) dan
huruf kecil harus diperhatikan karena huruf kecil a dengan huruf kapital A akan
didefinisikan berbeda.
b. Matlab tidak membutuhkan pernyataan dimensi untuk menuliskan suatu variabel.
c. Nama pada variabel harus dimulai dengan huruf, tidak lebih dari 31 karakter, termasuk
didalamnya huruf, angka, dan tanda underscore ( _ ).
d. Matlab sudah memiliki beberapa nama variabel dan fungsi yang sudah terdefinisi (built-
in variable and function). Oleh karena itu, hindari menggunakan nama yang sama.
e. Notasi angka scientific (penulisan 10n) diekspresikan dengan huruf e, sebagai contoh
10e-03 (merupakan penulisan untuk 10-3).

1.3 Vektor dan Matrik pada Matlab


Matlab adalah singkatan dari Matrix Laboratory, sehingga pemahaman terhadap konsep
matrik harus memadai agar dapat memanfaatkan Matlab sebagai bahasa komputasi dengan
maksimal. Definisi dari vektor yakni matrik yang hanya terdiri atas satu kolom atau satu baris
saja. Sedangkan matrik terdiri dari beberapa kolom dan beberapa baris.

Penulisan Vektor dan Matrik pada Matlab


Gambar 4 akan dicontohkan beberapa vektor dan matrik. Pada Gambar 4 terdapat 5
matrik. A, D dan E merupakan vektor, sedangkan B dan C merupakan matrik. A dan D bisa
disebut sebagai vektor baris, karena hanya terdiri dari satu baris saja. Berbeda halnya dengan
vektor E yang disebut sebagai vektor kolom, karena hanya memiliki satu kolom saja. Matrik
B berukuran 2 x 3 karena memiliki 2 baris dan 3 kolom. Sedangkan C berukuran 3 x 3, karena
memiliki jumlah kolom dan baris yang sama, yakni tiga (3). Matrik C juga dapat disebut
sebagai matrik simetris, karena jumlah kolom sama dengan jumlah baris. Perhatikan Gambar
2, nampak bahwa ada tanda pisah antar elemen matrik. Tanda pisah tersebut adalah tanda
koma (,), titik koma (;) dan tanda titik dua (:). Tanda koma (,) juga bisa diganti dengan spasi
digunakan untuk memisahkan elemen-elemen pada satu baris. Sedangkan tanda titik koma (;)
digunakan untuk memisahkan elemen-elemen pada satu kolom. Tanda titik dua (:) digunakan
untuk memisahkan nilai minimum elemen matrik, nialai selisih antar elemen matrik dan nilai
maksimum elemen matrik. Ambil contoh pada matrik D angaka 1 adalah nilai minimum dan
angka 5 adalah nilai maksimum, sedangkan angka 2 adalah selisih antar elemen matrik. Oleh
karena itu matrik D berisikan angka 1, 3 dan 5.

Gambar 2 Penulisan Matrik dan Vektor

Matrik Transisi

Menentukan Ukuran Vektor dan Matrik

Determinan Matrik
Invers Matrik

Perlu diperhatikan, pada saat perhitungan invers matrik menggunakan Matlab


terkadang memunculkan peringatan yang menyatakan bahwa matrik tersebut singular (tak
wajar). Hal ini menandakan bahwa determinan matrik tersebut adalah nol. Apabila matrik
singular, maka untuk mencari invers matrik tersebut menggunakan Singular Value
Decompotition (SVD).

Matrik Khusus
Matlab menyediakan berbagai command untuk membuat dan memanipulasi matriks
secara efisien. Di antaranya ialah command untuk membuat matriks-matriks khusus, seperti
matriks Identitas (I), Matrik nol (0), Matrik satuan (1). Berikut ini adalah syntax beberapa
matrik khusus pada Matlab.
ones(n) membuat matriks satuan (semua elemennya berisi angka 1) berukuran n×n
ones(m,n) membuat matriks satuan (semua elemennya berisi angka 1) berukuran m×n
zeros(n)  membuat matriks nol (semua elemennya berisi angka 0) berukuran n×n
zeros(m,n)membuat matriks nol berukuran m×n
eye(n) membuat matriks identitas berukuran n×n (semua elemen diagonal
bernilai 1, sementara lainnya bernilai 0).
rand(n) membuat matriks n×n, atau m×n, berisi bilangan random terdistribusi
rand(m,n) uniform pada selang 0 s.d. 1.
randn(n), membuat matriks n×n, atau m×n, berisi bilangan random terdistribusi
randn(m,n) normal dengan mean = 0 dan varians = 1.
[] matriks kosong, atau dengan kata lain matriks 0×0; biasa digunakan untuk
mendefinisikan variabel yang belum diketahui ukurannya.

Aljabar Matrik
Operasi aljabar matrik maupun skalar menggunakan simbol yang tidak jauh berbeda.
Berikut ini hirarki operasi aljabar dalam Matlab:
^  Pangkat +  Penambahan
*  Perkalian -  Pengurangan
/  Pembagian matrik kanan (mis: B/A = B*inv(A))
\  Pembagian matrik kiri (mis: A\B = inv(A)*B)
Operasi penjumlahan dan pengurangan pada matrik hanya dapat dilakukan jika matrik-
matrik yang akan dijumlahkan atau dikurangkan memiliki orde sama (berukuran sama).
Untuk perkalian matrik syaratnya adalah jumlah kolom harus sama dengan jumlah baris. Pada
perkalian matrik tidak berlaku asumsi (AB≠BA). Untuk pembagian ada dua perhitungan,
yakni pembagian matrik kanan dan matrik kiri. Pembagian matrik kanan berlaku aturan
sebagai berikut.
xA=c
x=cA-1
x=c/A
Pembagian matrik kiri berlaku aturan sebagai berikut.
Ax=c
x=A-1c
x=A\c

Menyimpan perintah dan output pada Command Diary


Apabila perintah-perintah yang sudah diketikkan dan hasil yang ditampilkan pada layar
command window akan disimpan, maka dapat dilakukan dengan menggunkan command
diary. Sebagai contoh apabila output dari matrik A akan disimpan di direktori c:\backup
dengan nama file mydata.txt, maka pada command window diketikkan
» diary 'c:\backup\mydata.txt'
dan jika ingin menutup file ini maka ketikkan perintah di bawah pada command window.
» diary off

Latihan:
Diberikan data variabel Y, X1 dan X2 sebagai berikut :
X1 130 174 134 191 165 194 143 186 139 188 175 156 190 178 132 148

X2 190 176 205 210 230 192 220 235 240 230 200 218 220 210 208 225

Y 35.0 81.7 42.5 98.3 52.7 82.0 34.5 95.4 56.7 84.4 94.3 44.3 83.3 91.4 43.5 51.7

Apabila data tersebut dimodelkan menggunakan parameter regresi, hitunglah taksiran


parameter model regresi tersebut !
Langkah-langkah :
a. Membuat Matrik X dan Y
b. Membuat matrik XT
c. Membuat matrik XTX dan XTY
d. Membuat matrik (XTX)-1
e. Membuat matrik (XTX)-1 XTY

1.4 Matlab help window


Matlab menyediakan sistem help yang dapat diakses dengan perintah help. Misalnya,
untuk memperoleh informasi mengenai fungsi elfun yaitu fungsi untuk trigonometri,
eksponensial, complex dan lain-lain, maka hanya perlu mengetikkan perintah berikut :
» help elfun
dan kemudian menekan enter maka di layar akan muncul informasi dalam bentuk teks pada
layar Matlab yaitu :
Elementary math functions.
Trigonometric.
sin - Sine.
sinh - Hyperbolic sine.
asin - Inverse sine.
asinh - Inverse hyperbolic sine.
cos - Cosine.
cosh - Hyperbolic cosine.
acos - Inverse cosine.
acosh - Inverse hyperbolic cosine.
tan - Tangent.
tanh - Hyperbolic tangent.
atan - Inverse tangent.
atan2 - Four quadrant inverse tangent.
atanh - Inverse hyperbolic tangent.
sec - Secant.
sech - Hyperbolic secant.
asec - Inverse secant.
asech - Inverse hyperbolic secant.
csc - Cosecant.
csch - Hyperbolic cosecant.
acsc - Inverse cosecant.
acsch - Inverse hyperbolic cosecant.
cot - Cotangent.
coth - Hyperbolic cotangent.
acot - Inverse cotangent.
acoth - Inverse hyperbolic cotangent.

Exponential.
exp - Exponential.
log - Natural logarithm.
log10 - Common (base 10) logarithm.
log2 - Base 2 logarithm and dissect floating
point number.
pow2 - Base 2 power and scale floating point number.
sqrt - Square root.
nextpow2 - Next higher power of 2.

Complex.
abs - Absolute value.
angle - Phase angle.
complex - Construct complex data from real and imaginary
parts.
conj - Complex conjugate.
imag - Complex imaginary part.
real - Complex real part.
unwrap - Unwrap phase angle.
isreal - True for real array.
cplxpair - Sort numbers into complex conjugate pairs.
Rounding and remainder.
fix - Round towards zero.
floor - Round towards minus infinity.
ceil - Round towards plus infinity.
round - Round towards nearest integer.
mod - Modulus (signed remainder after division).
rem - Remainder after division.
sign - Signum.

Selain fungsi elfun terdapat pula beberapa fungsi statistik seperti mean, median, varian, dan
standar deviasi. Adapun perintahnya adalah sebagai berikut.
mean  perintah untuk mengetahui rata-rata data
median  perintah untuk mengetahui nilai tengah data yang sudah diurutkan
mode  perintah untuk mengetahui nilai yang sering muncul pada data (modus)
var  perintah untuk mengetahui varians data
std  perintah untuk mengetahui standar deviasi data

1.5 Membuat Grafik


Grafik adalah bentuk visualisasi dari sebuah data. Grafik ada yang dua dimensi
(visualilasi antara dua variabel) dan grafik tiga dimensi (visualilasi antara tiga variabel).
Syntax untuk grafik dua dimensi (2D) adalah plot(x,y)dan untuk tiga dimensi (3D)
syntaxnya adalah surf(x,y,z). Setiap grafik/gambar tersebut akan muncul pada figure
window. Grafik tersebut bisa dicetak (diprint) melalui menu FilePrint (Ctrl+P), atau
disimpan sebagai file FIG melalui menu FileSave (Ctrl+S), ataupun mengekspornya
sebagai file JPG, EMF, BMP, dsb dengan memilih menu FileExport. Untuk menambahkan
judul, label, dan grid ke dalam hasil plot dapat digunakan command sebagai berikut.
Xlabel(‘…’)  memberi label pada sumbu-x
ylabel(‘…’)  memberi label pada sumbu-y
zlabel(‘…’)  memberi label pada sumbu-z
title (‘…’)  memberi judul di atas area plot
grid on  memunculkan grid di dalam area plot
grid off  menghapus grid
Ketika menggunakan command plot, gambar sebelumnya pada figure window akan terhapus.
Lalu bagaimana jika kita ingin memplot beberapa fungsi dalam satu figure sekaligus? Dalam
hal ini kita bisa digunkan command hold.
hold on  untuk ‘menahan’ gambar sebelumnya supaya tak terhapus
ketika ditimpa gambar baru
hold off  untuk menonaktifkan command hold
Seperti contoh di bawah ini :
>> clear
>> x=linspace(0,5,500);
>> y1=exp(-x); plot(x,y1);
>> grid on
>> hold on
>> y2=exp(-0.5*x); plot(x,y2);
>> y3=exp(-0.25*x); plot(x,y3);
>> y4=exp(-0.1*x); plot(x,y4);
>> xlabel('sumbu-x'), ylabel('sumbu-y')
>> title('Perbandingan fungsi eksponensial negatif')

Gambar 3 Hasil Plot

Anda mungkin ingin memplot beberapa fungsi dalam beberapa figure window yang terpisah,
atau membagi satu window menjadi sejumlah area plot, ataupun mengatur properties dari plot
yang akan digambar. Beberapa command di bawah ini bisa digunakan untuk tujuan tersebut.
Figure  menciptakan figure window baru yang kosong dan siap
untuk di-plot
figure(k)  untuk ‘menduduki’ figure window nomor-k
subplot(m,n,k)  membagi figure window menjadi m-baris × n-kolom
area plot yang terpisah, dan menduduki area ke-k
clf  “clear figure”, mengosongkan figure window yang sedang
‘diduduki’
plot(x,y,’string’) menciptakan plot 2-dimensi dari vektor x versus vektor y,
dengan property yang ditentukan oleh string, sebagai
berikut:
Warna Jenis Garis Jenis Point
b  biru -  utuh .  titik
g  hijau :  titik-titik o  lingkaran
r  merah -.  titik-strip x  tanda x
c  biru muda --  putus-putus +  tanda +
m  ungu *  tanda *
y  kuning s  bujur sangkar
k  hitam d  permata
w  putih v  segitiga ke bawah
^  segitiga ke atas
<  segitiga ke kiri
>  segitiga ke kanan
p  segilima
h  segienam
Sebagai contoh :
plot(x,y,’r-’)  memplot x versus y dengan garis utuh warna merah
plot(x,y,’k*’)  menempatkan tanda * warna hitam untuk setiap titik x versus y.
plot(x,y,’g--s’) memplot dengan garis putus-putus warna hijau dan menempatkan
tanda bujur sangkar di setiap titik x versus y.
Perlu diingat bahwa ‘string’ dalam plot bersifat opsional. Apabila tidak dituliskan maka
digunakan garis utuh warna biru.

plot(x1,y1,’string1’,x2,y2,’string2’,x3,y3,’string3’, ... )
menciptakan sejumlah plot sekaligus dalam satu area plot: x1 versus y1 dengan
property string1, x2 versus y2 dengan property string2, dan seterusnya
legend(‘ket1’,’ket2’,’ket3’, ...)
menambahkan legenda ke dalam plot yang telah dibuat; ket1 untuk plot pertama, ket2
untuk plot kedua, dan seterusnya
Sebagi contoh perhatikan syntax berikut ini ;
>> figure
>> t=0:0.05:10;
>> sinus=sin(2*pi*0.25*t);
>> cosinus=cos(2*pi*0.25*t);
>> kotak=square(2*pi*0.25*t);
>> gigi=sawtooth(2*pi*0.25*t);
>> subplot(2,2,1);
>> plot(t,sinus), title('sinus 1/4 Hz')
>> subplot(2,2,2);
>> plot(t,cosinus), title('cosinus 1/4 Hz')
>> subplot(2,2,3);
>> plot(t,kotak), title('kotak 1/4 Hz')
>> subplot(2,2,4);
>> plot(t,gigi), title('gigi gergaji 1/4 Hz')

Gambar 4 Hasil Plot dengan 4 plot yang berbeda


1.6 Flow Control pada Matlab
Seperti halnya bahasa program pada umumnya, kita bisa mengendalikan arah program
dengan berbagai cara, berupa percabangan arah program berdasarkan kondisi tertentu,
ataupun loop (perhitungan berulang) ketika kita melakukan iterasi.

Statement if … elseif … else … end


Merupakan statement untuk percabangan program berdasarkan satu/beberapa kondisi
tertentu. Sintaks yang digunakan dalam Matlab meliputi:

Selain itu, dimungkinkan pula membuat pernyataan if di dalam pernyataan yang lain (disebut
nested-if), misalkan:

Statement switch … case


Merupakan alternatif dari statement if … elseif … else … end. Sintaksnya ialah:

Statement for … end

Statement while … end

Statement break dan return


Ketika kita sudah berada dalam suatu loop, kita bisa keluar dengan break tanpa
menunggu nilai_akhir tercapai, atau tanpa menunggu kondisi loop tidak dipenuhi lagi.
Sementara, return digunakan untuk keluar dari fungsi yang sedang berjalan. Berikut ini
gambarannya dalam kasus penentuan apakah suatu bilangan bersifat prima atau tidak.
Algoritma yang akan digunakan ialah sebagai berikut:
• User memasukkan satu bilangan bulat positif N sebagai argumen input.
• Apabila N bukan bilangan bulat positif, maka perhitungan tidak dilanjutkan, dan
digunakan return untuk keluar.
• N kita coba-coba bagi dengan 2, 3, 4, 5, … dst. dengan loop. Apabila satu waktu
ditemukan N habis terbagi, berarti N bukan bilangan prima. Selanjutnya kita langsung
keluar loop dengan break dan menampilkan hasilnya di layar.
• Apabila N tidak pernah habis dibagi oleh 2, 3, 4, … , N/2 (sampai loop selesai), maka N
pasti bilangan prima. Selanjutnya kita tampilkan di layar dan program selesai.
• Untuk mengetahui apakah N habis terbagi atau tidak, kita bisa menggunakan fungsi
rem(N,pembagi).

1.7 M-file
Untuk mengakses window M-file ini dapat dilakukan seperti pada Gambar 5.
Adapun penjelasan Gambar 5 sebagai berikut:
1. Pilih Menu File kemudian pilih New
2. Pilih M-file, maka MATLAB akan menampilkan editor window seperti Gambar 6.

Gambar 5 Tahapan mengakses windows M-file

Selain dengan cara di atas, untuk menampilkan editor M-file juga dilakukan dengan
menuliskan “edit” pada command window atau dengan cara mengklik shortcut/icon pada
pojok kiri desktop Matlab.

Icon de-buging
Icon editing
Print
Mencari teks

Memulai, membuka
dan menyimpan File

Gambar 3 Tampilan Windows M-File (Matlab Editor)


Sementara itu, untuk menyimpan M-file, dapat dilakukan dengan memilih menu: FileSave
atau FileSave As; ataupun dengan mengklik ikon yang ada.

M-File sebagai Skrip Program


Pada bagian ini, M-file digunakan untuk menjalankan sederetan command yang kita
tuliskan sebagai skrip. Mari kita mulai dengan skrip sederhana untuk menghitung rata-rata
dari lima
bilangan. File ini kita namakan rata.m.
Bukalah M-file baru lalu ketikkan skrip berikut ini.
% Program sederhana untuk menghitung
% rata-rata 5 bilangan:
% rata_rata.m
a = 50;
b = 100;
c = 150;
d = 200;
e = 250;
% Menghitung dan menampilkan rata-rata
hasil = (a + b + c + d + e)/5;
hasil

Simpanlah file ini di dalam direktori Matlab\work dengan nama rata.m. Sekarang cobalah
jalankan dari command window. Sebelumnya pastikan bahwa direktori menunjuk ke
Matlab\work dengan merlihat pada “Current Directory” yang ada di jendela utama Matlab.
Kita bisa mengubah direktori yang sedang aktif melalui drop-down menu ataupun melalui
browse seperti pada Gambar 7.

Drop-
browse
Menunjukkan down
directory yang sedang menu
aktif

Gambar 7 Memilih directory untuk menjalankan M-file

Pada saat menjalankan M-file pada command window jangan lupa mengetikkan perintah
“clear” dan “clc”. Hal ini bertujuan untuk menghapus history variabel sebelumnya.
>> clear
>> clc
>> rata_rata
hasil =
150

M-File sebagai Fungsi Program


Sebagai skrip program, jika kita ingin mengubah/mengatur parameter masukan
program, maka harus kita lakukan di dalam editor. Padahal seringkali kita harus menjalankan
satu program/algoritma berulang kali dengan nilai masukan yang berbeda-beda, misalkan
dalam proses iterasi atau optimasi. Untuk keperluan ini, kita bisa menuliskan M-file sebagai
suatu fungsi spesifik sesuai kebutuhan kita.
Dalam setiap fungsi terdapat tiga unsur yakni ;
1. Parameter masukan, dalam hal ini kita sebut sebagai argument input. Jumlah parameter
(argumen) tersebut bisa sebarang (satu, dua, sepuluh, atau tidak ada argumen input sama
sekali). Jenis argumen pun sebarang (variabel, bilangan ataupun teks).
2. Proses di dalam program, berupa sederetan command untuk menjalankan suatu algoritma
tertentu.
3. Parameter keluaran; atau argument output yang jumlah dan jenisnya sebarang.
Deklarasi fungsi di M-file harus dilakukan pada baris awal dengan sintaks:

%Fungsi untuk menghitung segi-3 siku-siku: segitiga.m


%Untuk menghitung sisi miring, luas, dan keliling
function [Sisi_C,Luas,Kll] = segitiga(Sisi_A,Sisi_B)
% Menghitung sisi miring
Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2);
% Menghitung luas segitiga
Luas = 1/2* Sisi_A * Sisi_B;
% Menghitung keliling
Kll = Sisi_A + Sisi_B + Sisi_C;
Lalu simpan dengan nama “segitiga.m”.
Sekarang Anda panggil fungsi tersebut.
>> clear
>> [Hyp,Area,Circum]=segitiga(12,16)
Hyp =
20
Area =
96
Circum =
48

1.7 Display dan Input


Adakalanya kita membutuhkan interaksi dengan pengguna program untuk memasukkan
parameter tertentu di awal/tengah program. Dalam hal ini kita bisa pergunakan cara sederhana
dengan command input. Sementara command disp digunakan untuk menampilkan teks di
layar. Misalkan kita akan membuat program untuk menghitung jumlah kombinasi team basket
yang mungkin dari sejumlah mahasiswa.
% Program menghitung kombinasi : hit_komb.m
% untuk menghitung jumlah kombinasi
% dari sejumlah populasi
% Menampilkan judul program
clc;
disp(‘Menghitung Kombinasi’);
disp(‘---------------------‘);
% Meminta masukan dari user
n = input(‘Berapa jumlah mahasiswa yang ada? : ‘);
r = input(‘Berapa jumlah personel satu team? : ‘);
% Menghitung kombinasi
kombinasi = factorial(n)/factorial(r)/factorial(n-r);
% Menampilkan keluaran
disp(‘Jumlah kombinasi yang ada = ‘,kombinasi);

Kita coba jalankan program tersebut:


>> hit_komb
Menghitung Kombinasi
---------------------
Berapa jumlah mahasiswa yang ada? : 8
Berapa jumlah personel satu team? : 5
Jumlah kombinasi yang ada =
56
BAB II
Pengantar Software SAS

SAS (Statistical Analysis System) adalah program komputer untuk analisis statistika yang
dikembangkan oleh perusahaan SAS Institute. SAS dapat digunakan untuk melakukan analisis
statistika, manipulasi data, serta membuat tabel dan grafik untuk meringkas data. Beberapa
analisis statistika yang dapat dilakukan pada SAS meliputi analisis varians, regresi, analisis
data kategori, analisis multivariat, analisis cluster, analisis nonparametrik, model linier umum,
analisis korespondensi, dan persamaan struktural. Manipulasi data pada SAS meliputi
recoding data, menghitung variabel baru dari variabel-variabel lama, menggabungkan dan
mengumpulkan himpunan data, himpunan bagian (subset), dan melakukan pemrosesan
dengan kondisi tertentu.

2.1. Memulai SAS


Terdapat dua cara untuk memulai SAS, yaitu pertama klik start kemudian klik SAS atau
dengan cara yang kedua yaitu double klik icon SAS pada desktop sehingga akan muncul
window utama dari SAS, seperti berikut.

Gambar 2.1. Window Utama SAS

Window utama SAS terdiri dari lima window, yaitu:


1. Window result, untuk melihat, menyimpan atau mengapus output SAS
2. Window explorer untuk mengatur library dan file SAS
3. Window editor atau enhanced program editor, untuk menulis, meng-edit dan submit
program SAS.
4. Window output untuk melihat output dari program SAS. Jendela ini akan aktif setelah
program telah dijalankan dan ada hasil yang ditampilkan
5. Window Log untuk melihat tempat jalannya program yang di-running, serta
menampilkan pesan (message) seperti error dan warning messages

2.2. Bahasa Pemrograman SAS


Perlu diingat bahwa semua command atau perintah SAS harus diakhiri dengan semicolon
(;) sebagai command terminator dalam SAS untuk menandai akhir suatu command. Jika tidak
ada (;) maka SAS akan menggabungkan syntax baris berikutnya dengan syntax baris
sebelumnya sebagai satu command. Hal ini merupakan sumber kesalahan yang sering terjadi
dalam pemrograman SAS. Perintah SAS dikatagorikan menjadi empat, tergantung kegunaan
dari program tersebut, yaitu:
1. Data step yaitu tahapan pengorganisasian data dengan membaca atau membuat sebuah
gugus data dalam SAS
2. Proc step yaitu tahapan analisis yang terdiri atas satu atau lebih statement SAS
3. Perintah atau statement yang dapat digunakan pada data dan proc step.
4. Global statement yang dapat diaplikasikan di semua step, seperti title.
Tahap data dan proc, umumnya perintah diawali dengan data dan proc serta diakhiri
dengan run. Pada window editor, biasanya terdapat indikator visual untuk awal dan akhir dari
step (data, proc, dan run) yaitu biru tua. Sedangkan warna biru juga digunakan pada kata
kubci lainnya. Global statement dapat diletakkan dimana saja.

2.3. Membaca dan Menyusun Data dalam SAS


Terdapat beberapa cara untuk memanggil dan menyusun data, yaitu membaca data
melalui statemen in-stream data (terdapat dalam program editor), serta membaca dan
memasukkan data melalui menu SAS. Berikut ini penjelasan dari tiga cara tersebut.

2.3.1. Memasukkan dan Membaca Data Melalui Editor


Salah satu cara yang umum digunakan untuk memasukkan data dalam SAS adalah
dengan mengetik data secara langsung dalam syntax SAS. Pendekatan ini memadai untuk data
berukuran relatif kecil. Terdapat tiga cara untuk menginput, yaitu:
1. List input
Biasanya digunakan ketika data yang akan di-input dipisahkan minimal satu, contoh 3.1.
data scores;
input Name$ Test_1 Test_2 Test_3;
datalines;
Bill 187 97 103
Carlos 156 76 74
Monique 99 102 129
;
RUN;
title "score class 2-5";
PROC print DATA=scores;
run;

Syntax diatas menunjukkan statemen data digunakan untuk membuat data set yang diberi
nama scores. Jika data set tersebut ingin disimpan pada library work, maka statemennya
ialah data work.scores. Jika menambahkan library, maka data scores tersebut disimpan
dalam library work. Terdapat tiga library pada SAS yaitu SASHELP, SASUSER, dan
WORK. Selain itu dapat juga membuat library sendiri dengan statemen LIBNAME
nama_library. Statemen input mendefinisikan variabel yang akan dibaca dalam tiap baris
data, pada contoh diatas, variabel yang digunakan adalah name, Test_1, Test_2, dan
Test_3. Tanda dolar ($) setelah variabel name menunjukkan bahwa tipe data ialah text.
Statemen datalines menunjukkan bahwa statemen tahapan data telah selesai dan baris
berikutnya akan berisi data. Selain menggunakan statemen datalines, dapat digunakan
juga statemen cards. Kemudian untuk memberi judul maka menggunakan statemen
title, dalam contoh title-nya ialah score class 2-5. Statemen PROC print digunakan
untuk menprint data scores. Untuk merunning maka klik run > submit atau klik icon
pada toolbar.

Gambar 2.2. Langkah Me-running pada SAS

Sehingga di window output akan tampil seperti berikut.

score class 2-5

Obs Name Test_1 Test_2 Test_3

1 Bill 187 97 103


2 Carlos 156 76 74
3 Monique 99 102 129

2. Column input
Pada cara ini, akan ditentukan berapa karakter yang digunakan untuk masuk kedalam
setiap variabelnya. Contoh 3.2.
data scores;
input Name$ 1-7 Test_1 9-11 Test_2 13-15 Test_3 17-19;
datalines;
Bill 187 97 103
Carlos 156 76 74
Monique 99 102 129
;
RUN;
title "score class 2-5";
PROC print DATA=scores;
run;

Pada contoh 3.2, setelah nama variabel diberikan range karakter yang digunakan.
Variabel nama merupakan dari karakter ke 1 sampai ke 9, variabel test_1 merupakan data
pada karakter ke 9 sampai ke 11, dan seterusnya untuk variabel test_2 dan test_3.
Tampilan output contoh 3.2, akan sama dengan contoh 3.1.
3. Formatted input
Biasanya digunakan ketika membaca angka yang terdapat simbol seperti tanggal. Contoh
3.3.
data total_sales;
input Date mmddyy10. +2 Amount comma5.;
datalines;
09/05/2000 1,382
10/19/2000 1,235
11/30/2000 2,391
;
RUN;
title "total sales in April 2013";
PROC print DATA=total_sales;
run;

pada contoh 3.3, mmddyy10 merupakan format untuk tanggal dimana tidak dipedulikan
tanda slash. +2 merupakan pinter control yang memerintahkan SAS untuk melihat item
selanjutnya.

Sedangkan untuk membaca file, SAS dapat membaca file pada empat lokasi, yaitu:
1. Membaca data yang telah dimasukkan seperti yang dijelaskan sebelumnya.
2. Membaca file yang telah ditetapkan menggunakan statemen INFILE
Jika telah ada data yang disimpan dalam bentuk .dat, maka tidak perlu membawa data
tersebut ke dalam file stream atau menginput sesuai dengan yang telah dijelaskan
sebelumnya. Gunakan statemen INFILE untuk memanggil data tersebut. Selain
menggunakan INFILE, dapat menggunakan statemen FILE ataupun FILENAME.
Terdapat beberapa format statemen INFILE yang tergantung oleh operating environment
dari komputer atau PC yang dapat ditabelkan seperti berikut.

Tabel 2.1. Format Statemen INFILE

Contoh 3.4.
data scores;
infile 'your-input-file';
input Name$ 1-7 Test_1 9-11 Test_2 13-15 Test_3 17-19;
run;
PROC print DATA=scores;
run;

pada contoh diatas, statemen 'your-input-file' setelah statemen infile menunjukkan


bahwa telah kita input sebelumnya. Sedangkan jika telah ada maka dapat langsung di
panggil.
3. Membaca data dari data yang telah ada pada SAS
Terdapat 4 statemen yang dapat digunakan untuk memanggil data yang telah ada pada
SAS, yaitu
 SET statemen
 MERGE statemen
 MODIFY statemen
 UPDATE statemen

4. Membaca data dalam bentuk database management system (DBMS).


Jika data telah diinput kedalam file dbms. Salah satu syntax yang dapat digunakan ialah
proc import, berikut ini format syntax
PROC IMPORT
DATAFILE="filename" | TABLE="tablename"
OUT=<libref.>SAS-data-set <(SAS-data-set-options)>
<DBMS=identifier><REPLACE> ;

Sedangkan data dapat disimpan dari beberapa sumber yang dapat ditabelkan seperti
berikut:

Tabel 2.2. Sumber File dan Identifier


Identifier Input Data Source Extension Host Availability
Microsoft Access 2000 or 2002
ACCESS .mdb Microsoft Windows *
table
ACCESS97 Microsoft Access 97 table .mdb Microsoft Windows *
ACCESS2000 Microsoft Access 2000 table .mdb Microsoft Windows *
ACCESS2002 Microsoft Access 2002 table .mdb Microsoft Windows *
ACCESSCS Microsoft Access table .mdb UNIX
delimited file (comma-separated OpenVMS Alpha, UNIX, Microsoft
CSV .csv
values) Windows
dBASE 5.0, IV, III+, and III
DBF .dbf UNIX, Microsoft Windows
files
delimited file (default delimiter OpenVMS Alpha, UNIX, Microsoft
DLM .*
is a blank) Windows
EXCEL Excel 2000 or 2002 spreadsheet .xls Microsoft Windows *
EXCEL4 Excel 4.0 spreadsheet .xls Microsoft Windows
EXCEL5 Excel 5.0 or 7.0 (95) spreadsheet .xls Microsoft Windows
EXCEL97 Excel 97 or 7.0 (95) spreadsheet .xls Microsoft Windows *
EXCEL2000 Excel 2000 spreadsheet .xls Microsoft Windows *
EXCELCS Excel spreadsheet .xls UNIX
JMP JMP table .jmp UNIX, Microsoft Windows
PCFS Files on PC server .* UNIX
delimited file (tab-delimited OpenVMS Alpha, UNIX, Microsoft
TAB .txt
values) Windows
Lotus 1-2-3 Release 2
WK1 .wk1 Microsoft Windows
spreadsheet
Lotus 1-2-3 Release 3
WK3 .wk3 Microsoft Windows
spreadsheet
Lotus 1-2-3 Release 4 or 5
WK4 .wk4 Microsoft Windows
spreadsheet

Berikut ini contoh 3.5 memanggil data dari excel yang tersimpan pada D:\BELAJARSAS\
dengan nama file DAFTAR_PEGAWAI_1.xls.
Proc import datafile="D:\BELAJARSAS\DAFTAR_PEGAWAI_1.xls"
out=DaftarPegawai dbms=excel2000 replace;
run;

2.3.2. Membaca Dan Memasukkan Data Melalui Menu SAS


Langkah-langkah untuk memasukkan data memalui menu SAS ialah klik menu solutions
> analyze > Interactve data Analysis, seperti gambar beriku.

Gambar 2.3. Langkah-langkah Memasukkan Data Melalui Menu SAS

Kemudian akan muncul window SAS/INSIGHT: Open, seperti berikut

Gambar 2.4. Window SAS/INSIGHT: Open

Pada window tersebut, terdapat pilihan open atau new, jika ingin membuka file yang sudah
ada maka klik open, jika ingin memasukkan data baru maka klik new sehingga muncul
window WORK.A seperti pada Gambar 2.5. Kemudian memasukkan data.

Gambar 2.5. Window WORK.A


Kemudian cara menyimpannya ialah klik file> save > data, seperti pada gambar berikut.

Gambar 2.6. Langkah-langkah Menyimpan Data dari SAS


Kemudian muncul window Save Data seperti pada Gambar 2.7. Masukkan nama file kedalam
data set:, dan klik OK.

Gambar 2.7. Window Save Data


2.4. Menyimpan Data Dalam Format Lain
Salah satu syntax yang dapat digunakan untuk menyimpan data dalam bentuk lain ialah
proc export, dimana format statemennya seperti berikut.
PROC EXPORT DATA=<libref.>SAS-data-set <(SAS-data-set-options)>
OUTFILE="filename" | OUTTABLE="tablename"
<DBMS=identifier> <REPLACE>;

2.5. Menyimpan Editor, Output, dan Grafik


Untuk menyimpan editor, hal pertama yang perlu diperhatikan ialah aktifkan window
editor. Tidak semua versi SAS dapat menyimpan editor. Editor pada SAS 9.1, dapat disimpan
dengan mengklik file > save sehingga muncul kotak dialog Save as seperti pada Gambar 2.8.
Kemudian isilah nama file pada file name dan klik Save.

Gambar 2.8. Kotak dialog Save As dari Editor


Untuk menyimpan output, pertama lakukan klik window output untuk mengaktifkan
window. Kemudian klik file > save pada menu SAS. Sehingga akan muncul kotak dialog
Save As seperti berikut.

Gambar 2.9. Kotak dialog Save As dari Output

Pada gambar diatas dapat diketahui bahwa output dapat disimpan dalam berbagai tipe yang
meliputi list file, SAS file, Log Files, Data Files, dan RTF file. Disarankan untuk menyimpan
dalam RTF file karena dapat dibuka menggunakan Ms.Word.
Sedangkan untuk menyimpan gambar, dapat dilakukan klik kanan pada gambar kemudian
file > save as. Kemudian isikan nama file pada kotak file name dan klik save. Atau dapat pula
dengan mengaktifkan window graph dan klik file > save as image pada menu SAS. Kemudian
isikan nama dan klik save.
BAB III
ARIMA dengan SAS

Salah satu analisis data yang sering menggunakan SAS ialah ARIMA. Hal tersebut
dikarenakan SAS memiliki kelebihan dibandingkan dengan program lainnya, yaitu SAS dapat
mengestimasi lag-lag tertentu pada model ARIMA atau model additif pada ARIMA yang
mengandung lag reguler dan lag musiman. Secara umum, model ARIMA(p, d, q)(P, D, Q)S
dapat ditulis sebagai berikut.
𝜙𝑝 (𝐵) Φ𝑃 (𝐵 𝑆 ) (1 − 𝐵)𝑑 (1 − 𝐵 𝑆 )𝐷 𝑦𝑡 = 𝜃0 + 𝜃𝑞 (𝐵) Θ𝑄 (𝐵 𝑆 ) 𝜀𝑡
dengan:
𝑝 = orde dari autoregressive
𝑑 = orde dari differencing
𝑞 = orde dari moving average
𝑆 = periode musiman
𝑃 = orde dari autoregressive musiman
𝐷 = orde dari differencing musiman
𝑄 = orde dari moving average musiman
𝜙𝑝 (𝐵) = 1 − 𝜙1 𝐵 − 𝜙2 𝐵2 − ⋯ − 𝜙𝑝 𝐵𝑝
𝜃𝑞 (𝐵) = 1 − 𝜃1 𝐵 − 𝜃2 𝐵2 − ⋯ − 𝜃𝑞 𝐵𝑞
Φ𝑃 (𝐵 𝑆 ) = 1 − Φ1 𝐵 𝑆 − Φ2 𝐵2𝑆 − ⋯ − Φ𝑃 𝐵𝑃𝑆
Θ𝑄 (𝐵 𝑆 ) = 1 − Θ1 𝐵 𝑆 − Θ2 𝐵2𝑆 − ⋯ − Θ𝑄 𝐵𝑄𝑆

Terdapat empat langkah untuk mendapatkan nilai peramalan menggunakan metode ARIMA
yang sesuai dengan metodologi Box-Jenkins, meliputi identifikasi, estimasi parameter, uji
diagnostik, dan peramalan. Langkah-langkah tersebut dapat digambarkan seperti berikut:

Gambar 3.1. Langkah-langkah ARIMA

Contoh model ARIMA pada lag-lag tertentu ialah ARIMA([8],0,0), dengan catatan data
tidak memiliki pola musiman. Sedangkan pada data yang memiliki pola musiman, terdapat
tiga jenis model SARIMA (Seasonal ARIMA), yaitu subset SARIMA, multiplicative
SARIMA, dan Additive SARIMA. Berikut ini merupakan contoh dan besarnya PACF untuk
membedakan ketiga model SARIMA yang dapat ditabelkan seperti berikut:

Tabel 3.1. Perbedaan Tiga Model SARIMA


Model Contoh PACF
Lag yang memiliki nilai ialah 1, 11, 12, dan 13,
Subset SARIMA ARIMA(0,0,[1,12,13]) dengan 𝜌1 ≠ 𝜌11 ≠ 𝜌12 ≠ 𝜌13 , dan 𝜌𝑘 = 0,
𝑘 = yang lainnya
Lag yang memiliki nilai ialah 1, 11, 12, dan 13,
Multiplicative
ARIMA(0,0,1)(0,0,1)12 dengan 𝜌1 ≠ 𝜌11 ≠ 𝜌12 , 𝜌11 = 𝜌13 , dan
SARIMA
𝜌𝑘 = 0, 𝑘 = yang lainnya
Additive Lag yang memiliki nilai ialah 1, 11, 12, dengan
ARIMA(0,0,[1,12])
SARIMA 𝜌1 ≠ 𝜌11 ≠ 𝜌12 , dan 𝜌𝑘 = 0, 𝑘 = yang lainnya

Procedure ARIMA pada SAS dapat melakukan identifikasi, estimasi parameter, dan
peramalan model ARIMA (Box-Jenkins), model ARIMA dengan pola musiman, model fungsi
transfer, dan model intervensi. Prosedure ARIMA pada SAS memiliki beberapa komponen
yaitu:
• Model ARIMA (Box-Jenkins) yang seutuhnya dengan tidak ada batasan orde dari
proses autoregressive atau moving average
• Model identifikasi meliputi:
o autocorrelation function (ACF)
o partial autocorrelation function (PACF)
o inverse autocorrelation function (IACF)
o cross-correlation function (CCF), digunakan pada transfer function
o extended sample autocorrelation function
o minimum information criterion for model identification
o squared canonical correlations
• Uji stasionaritas ialah unit root test
• Deteksi outlier
• intervention analysis
• regresi dengan eror ARMA
• model fungsi transfer dengan fully general rational transfer functions
• model ARIMA musiman
• model ARIMA yang berdasarkan interpolasi dari missing values
• beberapa metode estimasi parameter, yaitu exact maximum likelihood, conditional
least squares, dan exact nonlinear unconditional least squares
• peramalan kedepan dan ramalan interval untuk semua model
• forecasting tied to parameter estimation methods: finite memory forecasts for models
estimated by maximum likelihood or exact nonlinear least squares methods and
infinite memory forecasts for models estimated by conditional least squares
• beberapa statistika diagnosa model yang meliputi: Akaike's information criterion
(AIC), Schwarz's Bayesian criterion (SBC or BIC), Box-Ljung chi-square test
statistics for white noise residuals, autocorrelation function of residuals, partial
autocorrelation function of residuals, inverse autocorrelation function of residuals, dan
automatic outlier detection

Berikut ini merupakan pembahasan model ARIMA dari data penumpang airline pada Series G
in Box and Jenkins (1976) yang meliputi identifikasi, estimasi parameter, uji diagnostik, dan
peramalan. Berikut ini merupakan syntax untuk menginput data penumpang airlines.
title1 'International Airline Passengers';
title2 '(Box and Jenkins Series-G)';
data seriesg;
input x @@;
xlog = log( x );
date = intnx( 'month', '31dec1948'd, _n_ );
format date monyy.;
datalines;
112 118 132 129 121 135 148 148 136 119 104 118
115 126 141 135 125 149 170 170 158 133 114 140
145 150 178 163 172 178 199 199 184 162 146 166
171 180 193 181 183 218 230 242 209 191 172 194
196 196 236 235 229 243 264 272 237 211 180 201
204 188 235 227 234 264 302 293 259 229 203 229
242 233 267 269 270 315 364 347 312 274 237 278
284 277 317 313 318 374 413 405 355 306 271 306
315 301 356 348 355 422 465 467 404 347 305 336
340 318 362 348 363 435 491 505 404 359 310 337
360 342 406 396 420 472 548 559 463 407 362 405
417 391 419 461 472 535 622 606 508 461 390 432
;

3.1. Identifikasi
Tahap identifikasi merupakan tahap untuk mengetahui apakah memerlukan transformasi,
untuk menentukan menggunakan 𝜃0 ketika 𝑑 ≥ 1, dan menentukan orde 𝑝, 𝑞, 𝑃, 𝑄, dan 𝑆 pada
model ARIMA. Pertama yang akan dilakukan ialah melihat bagaimana plot time series.
Berikut ini sytax yang digunakan.
symbol1 i=join v=dot;
proc gplot data=seriesg;
plot x * date = 1 / haxis= '1jan49'd to '1jan61'd by year;
run;

kemudian di-running sehingga akan muncul gambar berikut

Gambar 3.2. Plot Time Series dari Data Penumpang Airlines


Berdasarkan Gambar 3.2, dapat diketahui bahwa data penumpang airline tidak stasioner
dalam mean (musiman dan reguler) serta tidak stasioner terhadap varian. Data penumpan
airline tampak kenaikan setiap bulan dalam satu tahun selama 12 tahun, hal tersebut
membuktikan bahwa data tidak stasioner dalam mean reguler. Sedangkan ketidakstasioneran
dalam mean musiman ditunjukkan bahwa adanya kenaikan disetiap januari selama 12 tahun.
Serta ketidakstasioneran dalam varian ditunjukkan dengan semakin melebarnya data.
Secara umum, langkah pertama untuk mengatasi ketidakstasioneran ialah menggunakan
transformasi Box-Cox (mengatasi ketidakstasioneran dalam varian). Ketidakstasioneran
dilakukan terlebih dahulu karena uji Box-Cox tidak dapat dilakukan jika terdapat data yang
negatif, mengingat differencing untuk mengatasi ketidakstasioneran dalam mean dapat
menghasilkan data yang negatif. Akan tetapi transformasi Box-Cox tidak merubah pola data,
sehingga seringkali tidak digunakan. Langkah kedua ialah melakukan differensing baik pada
reguler maupun musiman.
Setelah stasioner dalam mean dan varian, maka dapat diidentifkasi orde 𝑝, 𝑞, 𝑃, dan 𝑄
(𝑆 = 12) pada model ARIMA menggunakan plot ACF dan PACF. Berikut ini syntax yang
digunakan untuk memunculkan ACF dan PACF.
proc arima data=seriesg;
identify var=x(1,12) nlag=36;
run;

Pada var=x(1,12) menunjukkan bahwa variabel x didefferencing 1 dan 12. nlag=36


Menunjukkan bahwa lag yang akan dikeluarkan pada ACF dan PACF sebanyak 36 lag.
Terdapat output autocorrelation, inverse autocorrelation, partial autocorrelation dan
Autocorrelation Check for White Noise. Akan tetapi yang perlu diperhatikan hanya ACF dan
PACF. Berikut ini hasilnya.

The ARIMA Procedure

WARNING: The value of NLAG is larger than 25% of the series length. The asymptotic approximations
used for correlation based statistics and confidence intervals may be poor.

Name of Variable = xlog

Period(s) of Differencing 1,12


Mean of Working Series 0.000291
Standard Deviation 0.045673
Number of Observations 131
Observation(s) eliminated by differencing 13

Autocorrelations

Lag Covariance Correlation -1 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 1 Std Error

0 0.0020860 1.00000 | |********************| 0


1 -0.0007116 -.34112 | *******| . | 0.087370
2 0.00021913 0.10505 | . |** . | 0.097006
3 -0.0004217 -.20214 | ****| . | 0.097870
4 0.00004456 0.02136 | . | . | 0.101007
5 0.00011610 0.05565 | . |* . | 0.101042
6 0.00006426 0.03080 | . |* . | 0.101275
7 -0.0001159 -.05558 | . *| . | 0.101347
8 -1.5867E-6 -.00076 | . | . | 0.101579
9 0.00036791 0.17637 | . |**** | 0.101579
10 -0.0001593 -.07636 | . **| . | 0.103891
11 0.00013431 0.06438 | . |* . | 0.104318
12 -0.0008065 -.38661 | ********| . | 0.104621
13 0.00031624 0.15160 | . |*** . | 0.115011
14 -0.0001202 -.05761 | . *| . | 0.116526
15 0.00031200 0.14957 | . |*** . | 0.116744
16 -0.0002898 -.13894 | . ***| . | 0.118197
17 0.00014703 0.07048 | . |* . | 0.119438
18 0.00003261 0.01563 | . | . | 0.119755
19 -0.0000221 -.01061 | . | . | 0.119770
20 -0.0002435 -.11673 | . **| . | 0.119777
21 0.00008042 0.03855 | . |* . | 0.120643
22 -0.0001906 -.09136 | . **| . | 0.120737
23 0.00046574 0.22327 | . |****. | 0.121263
24 -0.0000384 -.01842 | . | . | 0.124362
25 -0.0002092 -.10029 | . **| . | 0.124383
26 0.00010131 0.04857 | . |* . | 0.124998
27 -0.0000631 -.03024 | . *| . | 0.125142
28 0.00009832 0.04713 | . |* . | 0.125198
29 -0.0000376 -.01803 | . | . | 0.125333
30 -0.0001065 -.05107 | . *| . | 0.125353
31 -0.0001122 -.05377 | . *| . | 0.125512
32 0.00040829 0.19573 | . |****. | 0.125688
33 -0.0002554 -.12242 | . **| . | 0.127993
34 0.00016219 0.07775 | . |** . | 0.128884
35 -0.0003180 -.15245 | . ***| . | 0.129241
36 -0.0000208 -.01000 | . | . | 0.130607

"." marks two standard errors

ACF menunjukkan Cut off after lag 1 dan 12, dimana lag yang keluar meliputi 1, 2 dan 12.

The ARIMA Procedure

Partial Autocorrelations

Lag Correlation -1 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 1

1 -0.34112 | *******| . |
2 -0.01281 | . | . |
3 -0.19266 | ****| . |
4 -0.12503 | ***| . |
5 0.03309 | . |* . |
6 0.03468 | . |* . |
7 -0.06019 | . *| . |
8 -0.02022 | . | . |
9 0.22558 | . |***** |
10 0.04307 | . |* . |
11 0.04659 | . |* . |
12 -0.33869 | *******| . |
13 -0.10918 | .**| . |
14 -0.07684 | .**| . |
15 -0.02175 | . | . |
16 -0.13955 | ***| . |
17 0.02589 | . |* . |
18 0.11482 | . |**. |
19 -0.01316 | . | . |
20 -0.16743 | ***| . |
21 0.13240 | . |*** |
22 -0.07204 | . *| . |
23 0.14285 | . |*** |
24 -0.06733 | . *| . |
25 -0.10267 | .**| . |
26 -0.01007 | . | . |
27 0.04378 | . |* . |
28 -0.08995 | .**| . |
29 0.04690 | . |* . |
30 -0.00490 | . | . |
31 -0.09638 | .**| . |
32 -0.01528 | . | . |
33 0.01150 | . | . |
34 -0.01916 | . | . |
35 0.02303 | . | . |
36 -0.16488 | ***| . |

PACF tersebut menunjukkan bahwa dies down untuk pola reguler dan musimannya.
Berdasarkan ACF dan PACF, dapat disimpulkan bahwa kemungkinan modelnya ialah model
additive ARIMA atau dapat ditulis ARIMA([1,12],1,0)(0,1,0)12. Akan tetepi pada modul ini
akan dicoba ketiga model seasonal ARIMA, yaitu model subset ARIMA([1,2,12],1,0)
(0,1,1)12, model multiplikative ARIMA(1,1,0)(1,1,0)12, dan model additive
ARIMA([1,12],1,0)(0,1,0)12.

3.2. Estimasi parameter


Beberapa metode estimasi parameter, yaitu exact maximum likelihood (ml), conditional
least squares (cls), dan exact nonlinear unconditional least squares (uls). Pada SAS, metode
estimasi parameter yang menjadi default ialah cls. Berikut ini merupakan syntax yang
digunakan untuk estimasi paramter model subset ARIMA([1,2,12],1,0) (0,1,1)12, model
multiplikative ARIMA(1,1,0)(1,1,0)12, dan model additive ARIMA([1,12],1,0)(0,1,0)12
menggunakan exact nonlinear unconditional least squares.

ARIMA([1,2,12],1,0) (0,1,1)12
estimate q=(1)(12) noconstant method=uls;
run;

ARIMA(1,1,0)(1,1,0)12
estimate q=(1,2,12) noconstant method=uls;
run;

ARIMA([1,12],1,0)(0,1,0)12
estimate q=(1,12) noconstant method=uls;
run;

Jika model arima ialah AR(1) maka q=(1)(12) diganti dengan p=(1). Serta data yang telah
didefferencing akan disekitar nol, sehingga tidak perlu konstanta dalam model (tidak
memakai sintax noconstant). Hasil tersebut dapat terdiri dari hasil estimasi dan pengujian
signifikansinya, kriteria kebaikan model berdasarkan data training dan Autocorrelation Check
of Residuals yang digunakan untuk uji white noise (pada uji diagnostik).

ARIMA(1,1,0)(1,1,0)12
Standard Approx
Parameter Estimate Error t Value Pr > |t| Lag
MA1,1 0.39594 0.08149 4.86 <.0001 1
MA2,1 0.61331 0.07961 7.70 <.0001 12

Variance Estimate 0.001363 Hasil estimasi dan uji


Std Error Estimate 0.036921
AIC -484.755 signifikansinya
SBC -479.005
Number of Residuals 131 Kriteria kebaikan model
berdasarkan data training
Autocorrelation Check of Residuals

To Chi- Pr >
Lag Square DF ChiSq --------------------Autocorrelations--------------------

6 5.56 4 0.2349 0.022 0.024 -0.125 -0.129 0.057 0.065


12 8.49 10 0.5816 -0.065 -0.042 0.102 -0.060 0.023 0.007
18 13.23 16 0.6560 0.022 0.039 0.045 -0.162 0.035 0.001
24 24.99 22 0.2978 -0.106 -0.104 -0.037 -0.027 0.219 0.040
30 28.09 28 0.4598 -0.020 0.056 -0.032 -0.069 -0.041 -0.085
36 35.01 34 0.4200 -0.055 0.117 -0.136 0.004 -0.060 -0.012

Uji White Noise


Approx Pr > |t| menunjukkan p-value, karena p-value < taraf signifikansi (5%) maka
parameter model ARIMA(1,1,0)(1,1,0)12 telah signifikan. Sehingga model ARIMA tersebut ialah
𝑥𝑙𝑜𝑔𝑡 = 𝑎𝑡 − 0.39594 𝑎𝑡−1 − 0.61331 𝑎𝑡−12 + 0.24283 𝑎𝑡−13
ARIMA([1,2,12],1,0) (0,1,1)12
The ARIMA Procedure

WARNING: The model defined by the new estimates is unstable. The iteration process has been
terminated.

WARNING: Estimates may not have converged.

ARIMA Estimation Optimization Summary

Estimation Method Unconditional Least Squares


Parameters Estimated 3
Termination Criteria Maximum Relative Change in Estimates
Iteration Stopping Value 0.001
Criteria Value 0.122917
Maximum Absolute Value of Gradient 0.008162
R-Square Change from Last Iteration 0.035455
Objective Function Sum of Squared Residuals
Objective Function Value 0.186993
Marquardt's Lambda Coefficient 1E-12
Numerical Derivative Perturbation Delta 0.001
Iterations 41
Warning Message Estimates may not have converged.

Unconditional Least Squares Estimation

Standard Approx
Parameter Estimate Error t Value Pr > |t| Lag

MA1,1 0.36631 0.08317 4.40 <.0001 1


MA1,2 0.14239 0.07863 1.81 0.0725 2
MA1,3 0.49130 0.07194 6.83 <.0001 12

Variance Estimate 0.001461


Std Error Estimate 0.038221
AIC -474.527
SBC -465.901
Number of Residuals 131

Autocorrelation Check of Residuals

To Chi- Pr >
Lag Square DF ChiSq --------------------Autocorrelations--------------------

6 6.15 3 0.1044 -0.058 0.127 -0.139 -0.076 0.025 -0.001


12 10.73 9 0.2945 -0.074 -0.042 0.098 -0.090 0.018 -0.082
18 20.27 15 0.1617 0.153 0.076 0.113 -0.144 0.019 -0.029
24 31.26 21 0.0695 -0.086 -0.115 -0.021 -0.072 0.206 -0.001
30 34.39 27 0.1551 0.021 0.098 0.019 -0.013 -0.048 -0.075
36 44.20 33 0.0921 -0.094 0.120 -0.156 0.006 -0.087 -0.018

Model ARIMA([1,2,12],1,0) (0,1,1)12 memiliki satu parameter yang tidak signifikan yaitu
parameter MA pada lag 2.

ARIMA([1,12],1,0)(0,1,0)12
Standard Approx
Parameter Estimate Error t Value Pr > |t| Lag

MA1,1 0.26253 0.07252 3.62 0.0004 1


MA1,2 0.52208 0.07669 6.81 <.0001 12

Variance Estimate 0.001455


Std Error Estimate 0.038151
AIC -477.575
SBC -471.825
Number of Residuals 131

Autocorrelation Check of Residuals

To Chi- Pr >
Lag Square DF ChiSq --------------------Autocorrelations--------------------

6 7.32 4 0.1200 -0.110 0.022 -0.164 -0.095 0.063 0.035


12 11.27 10 0.3366 -0.074 -0.035 0.108 -0.071 0.020 -0.061
18 20.22 16 0.2105 0.133 0.044 0.068 -0.185 0.031 0.013
24 31.00 22 0.0961 -0.069 -0.099 -0.026 -0.061 0.220 0.001
30 33.91 28 0.2039 0.001 0.081 -0.010 -0.050 -0.052 -0.073
36 43.29 34 0.1319 -0.065 0.153 -0.143 0.017 -0.068 -0.011

Model ARIMA([1,12],1,0)(0,1,0)12 memiliki parameter yang siginifikan. Akan tetapi model


tersebut memiliki variance estimate dan standart eror estimate yang lebih besar dibandingkan
dengan model ARIMA(1,1,0)(1,1,0)12.

3.3. Uji diagnostik

Uji diagnostik meliputi uji white noise dan kenormalan pada residual. Residual yang
digunakan ialah residual dari ketiga model ARIMA. Hipotesis pada pengujian white noise
ialah
H0: 𝜌1 = 𝜌2 = ⋯ = 𝜌𝑘 = 0 (residual white noise)
H1: minimal terdapat satu 𝜌𝑖 ≠ 0, 𝑖 = 1, 2, … , 𝑘 (residual tidak white noise)
Lag dan p-value (Pr > ChiSq) pada pengujian white noise dari ketiga model ARIMA seperti
pada hasil estimasi. P-value setiap lag lebih besar dari pada 𝛼(0,05) sehingga gagal tolak H0
dengan kata lain residual white noise untuk ketiga model ARIMA. Selain itu, nilai Chi- Square
diperoleh menggunakan rumus yang ditemukan oleh Ljung dan Box (1978), seperti berikut:
𝐾

𝑄 = 𝑛(𝑛 + 2) �(𝑛 − 𝑘)−1 𝜌�𝑘2


𝑘=1

Statistik uji 𝑄 tersebut mengikuti distribusi 𝜒 2 (𝐾 − 𝑚) , dimana 𝑚 = 𝑝 + 𝑞 , 𝐾 ialah


banyaknya data, 𝑝 ialah banyak orde AR yang digunakan, dan 𝑞 ialah banyak orde MA yang
digunakan.
Terdapat beberapa cara untuk menguji residual apakah berdistribusi normal. Salah satu
cara untuk melihatnya ialah menggunakan tes normalitas oleh Kolmogorov-Smirnov.
Hipotesis pada pengujian ini yaitu
H0 : 𝐹(𝑥) = 𝐹0 (𝑥) (residual berdistribusi normal)
H1 : 𝐹(𝑥) ≠ 𝐹0 (𝑥) (residual tidak berdistribusi normal)
dimana taraf signifikansi atau 𝛼 = 0,05. Wilayah kritis ialah p-value < 𝛼 (tolak H0). Berikut
ini syntax dari proc arima sampai dengan mengimpan output forecast dan melakukan uji
residual berdistribusi normal.
proc arima data=seriesg;
identify var=xlog(1,12) nlag=36;
run;
estimate q=(1)(12) noconstant method=uls;
run;
forecast lead=12 out=out2;
run;
proc univariate data=out2 normal;
var residual;
run;
proc export data=out2
dbms=excel2000
outfile='D:\airline.xls';
sheet=arima11011012;
run;
Sintax tersebut menunjukkan peramalan kedepan sebanyak 12 (lead=12) dan keluaran
disimpan pada variabel out2 (out=out2). Output dari statemen forecast terdiri dari variabel
xlog, forecast (data training dan peramalan 12 kedepan), standart erorr (STD), lower 95%
(L95) dan upper 95% (U95), dan residual. Kemudian digunakan proc univariate untuk
menguji variabel residual (var residual) dari data out2 (data=out2) berdisribusi normal
(normal). Kemudian dengan menggunakan proc export untuk menyimpan data out2
(data=out2) dalam Ms.Excel 97-2000 yang tersimpan di drive d dan memiliki nama file
airline (outfile='D:\airline.xls'), serta pada sheet arima11011012 (sheet=arima11011012).
Berdasarkan sintax tersebut, berikut ini hasil output yang digunakan untuk uji residual
berdistribusi normal.

Tests for Normality

Test --Statistic--- -----p Value------

Shapiro-Wilk W 0.990478 Pr < W 0.5117


Kolmogorov-Smirnov D 0.066108 Pr > D >0.1500
Cramer-von Mises W-Sq 0.076018 Pr > W-Sq 0.2364
Anderson-Darling A-Sq 0.453595 Pr > A-Sq >0.2500

Dengan bantuan paket program SAS diperoleh nilai p-value pada Kolmogorov-smirnov lebih
besar dari taraf signifikansi, sehingga gagal tolak H0 atau residual tidak berdistribusi normal.

3.4. Peramalan
Sintax yang digunakan untuk meramalkan 12 bulan kedepan seperti sintax pada uji
diagnostik. Berikut ini merupakan hasil peramalan 12 bulan kedepan untuk data xlog.

The ARIMA Procedure

Forecasts for variable xlog

Obs Forecast Std Error 95% Confidence Limits

145 6.1099 0.0369 6.0375 6.1823


146 6.0558 0.0431 5.9712 6.1403
147 6.1781 0.0486 6.0830 6.2733
148 6.1990 0.0534 6.0943 6.3037
149 6.2312 0.0579 6.1177 6.3447
150 6.3689 0.0620 6.2473 6.4905
151 6.5047 0.0659 6.3755 6.6340
152 6.5013 0.0696 6.3649 6.6377
153 6.3258 0.0731 6.1826 6.4691
154 6.2081 0.0764 6.0583 6.3578
155 6.0644 0.0796 5.9084 6.2204
156 6.1700 0.0827 6.0079 6.3320

Anda mungkin juga menyukai