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 barisanbarisan 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

: untuk membuat sebuah direktori : untuk melihat nama file m dalam direktori aktif : untuk melihat variabel yang sedang aktif : untuk menampilkan nama setiap variabel : untuk menghapus file : untuk menghapus variabel : untuk membersihkan layar : 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

mkdir what who whos delete clear clc doc

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 (builtin 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 nn ones(m,n) membuat matriks satuan (semua elemennya berisi angka 1) berukuran mn zeros(n) membuat matriks nol (semua elemennya berisi angka 0) berukuran nn zeros(m,n)membuat matriks nol berukuran mn eye(n) membuat matriks identitas berukuran nn (semua elemen diagonal bernilai 1, sementara lainnya bernilai 0). rand(n) membuat matriks nn, atau mn, berisi bilangan random terdistribusi rand(m,n) uniform pada selang 0 s.d. 1. randn(n), membuat matriks nn, atau mn, berisi bilangan random terdistribusi randn(m,n) normal dengan mean = 0 dan varians = 1. [] matriks kosong, atau dengan kata lain matriks 00; 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 matrikmatrik 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 (ABBA). 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 X2 Y 130 190 35.0 174 176 81.7 134 205 42.5 191 210 98.3 165 230 52.7 194 192 82.0 143 220 34.5 186 235 95.4 139 240 56.7 188 230 84.4 175 200 94.3 156 218 44.3 190 220 83.3 178 210 91.4 132 208 43.5 148 225 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 FilePrint (Ctrl+P), atau disimpan sebagai file FIG melalui menu FileSave (Ctrl+S), ataupun mengekspornya sebagai file JPG, EMF, BMP, dsb dengan memilih menu FileExport. 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 -. titik-strip x tanda x r merah c biru muda -- putus-putus + tanda + m ungu * tanda * y kuning s bujur sangkar k hitam d permata v segitiga ke bawah w putih ^ 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: FileSave atau FileSave 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.

Menunjukkan directory yang sedang aktif

Dropdown menu

browse

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 1 2 3 Name Bill Carlos Monique Test_1 187 156 99 Test_2 97 76 102 Test_3 103 74 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: Membaca data yang telah dimasukkan seperti yang dijelaskan sebelumnya. 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

1. 2.

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 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> ;

4.

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

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 Contoh PACF Lag yang memiliki nilai ialah 1, 11, 12, dan 13, ARIMA(0,0,[1,12,13]) dengan 1 11 12 13 , dan = 0, = yang lainnya

Model Subset SARIMA

Multiplicative SARIMA Additive SARIMA

Lag yang memiliki nilai ialah 1, 11, 12, dan 13, ARIMA(0,0,1)(0,0,1)12 dengan 1 11 12 , 11 = 13 , dan = 0, = yang lainnya ARIMA(0,0,[1,12])

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

Lag yang memiliki nilai ialah 1, 11, 12, dengan 1 11 12 , dan = 0, = yang lainnya

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, format date monyy.; datalines; 112 118 132 129 121 135 148 148 136 119 115 126 141 135 125 149 170 170 158 133 145 150 178 163 172 178 199 199 184 162 171 180 193 181 183 218 230 242 209 191 196 196 236 235 229 243 264 272 237 211 204 188 235 227 234 264 302 293 259 229 242 233 267 269 270 315 364 347 312 274 284 277 317 313 318 374 413 405 355 306 315 301 356 348 355 422 465 467 404 347 340 318 362 348 363 435 491 505 404 359 360 342 406 396 420 472 548 559 463 407 417 391 419 461 472 535 622 606 508 461 ;

_n_ ); 104 114 146 172 180 203 237 271 305 310 362 390 118 140 166 194 201 229 278 306 336 337 405 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 Mean of Working Series Standard Deviation Number of Observations Observation(s) eliminated by differencing 1,12 0.000291 0.045673 131 13

Autocorrelations Lag 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Covariance 0.0020860 -0.0007116 0.00021913 -0.0004217 0.00004456 0.00011610 0.00006426 -0.0001159 -1.5867E-6 0.00036791 -0.0001593 0.00013431 -0.0008065 0.00031624 -0.0001202 0.00031200 -0.0002898 Correlation 1.00000 -.34112 0.10505 -.20214 0.02136 0.05565 0.03080 -.05558 -.00076 0.17637 -.07636 0.06438 -.38661 0.15160 -.05761 0.14957 -.13894 -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.087370 0.097006 0.097870 0.101007 0.101042 0.101275 0.101347 0.101579 0.101579 0.103891 0.104318 0.104621 0.115011 0.116526 0.116744 0.118197

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

0.00014703 0.00003261 -0.0000221 -0.0002435 0.00008042 -0.0001906 0.00046574 -0.0000384 -0.0002092 0.00010131 -0.0000631 0.00009832 -0.0000376 -0.0001065 -0.0001122 0.00040829 -0.0002554 0.00016219 -0.0003180 -0.0000208

0.07048 0.01563 -.01061 -.11673 0.03855 -.09136 0.22327 -.01842 -.10029 0.04857 -.03024 0.04713 -.01803 -.05107 -.05377 0.19573 -.12242 0.07775 -.15245 -.01000

| | | | | | | | | | | | | | | | | | | |

. |* . . | . . | . . **| . . |* . . **| . . |****. . | . . **| . . |* . . *| . . |* . . | . . *| . . *| . . |****. . **| . . |** . . ***| . . | .

| | | | | | | | | | | | | | | | | | | |

0.119438 0.119755 0.119770 0.119777 0.120643 0.120737 0.121263 0.124362 0.124383 0.124998 0.125142 0.125198 0.125333 0.125353 0.125512 0.125688 0.127993 0.128884 0.129241 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 Correlation -0.34112 -0.01281 -0.19266 -0.12503 0.03309 0.03468 -0.06019 -0.02022 0.22558 0.04307 0.04659 -0.33869 -0.10918 -0.07684 -0.02175 -0.13955 0.02589 0.11482 -0.01316 -0.16743 0.13240 -0.07204 0.14285 -0.06733 -0.10267 -0.01007 0.04378 -0.08995 0.04690 -0.00490 -0.09638 -0.01528 0.01150 -0.01916 0.02303 -0.16488 -1 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 1 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *******| . . | . ****| . ***| . . |* . . |* . . *| . . | . . |***** . |* . . |* . *******| . .**| . .**| . . | . ***| . . |* . . |**. . | . ***| . . |*** . *| . . |*** . *| . .**| . . | . . |* . .**| . . |* . . | . .**| . . | . . | . . | . . | . ***| . | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

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,12],1,0)(0,1,0)12.

ARIMA(1,1,0)(1,1,0)12,

dan

model

additive

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
Parameter MA1,1 MA2,1 Estimate 0.39594 0.61331 Standard Error 0.08149 0.07961 t Value 4.86 7.70 0.001363 0.036921 -484.755 -479.005 131 Approx Pr > |t| <.0001 <.0001 Lag 1 12

Variance Estimate Std Error Estimate AIC SBC Number of Residuals

Hasil estimasi dan uji signifikansinya Kriteria kebaikan model berdasarkan data training

Autocorrelation Check of Residuals To Lag 6 12 18 24 30 36 ChiSquare 5.56 8.49 13.23 24.99 28.09 35.01 Pr > ChiSq 0.2349 0.5816 0.6560 0.2978 0.4598 0.4200

DF 4 10 16 22 28 34

--------------------Autocorrelations-------------------0.022 -0.065 0.022 -0.106 -0.020 -0.055 0.024 -0.042 0.039 -0.104 0.056 0.117 -0.125 0.102 0.045 -0.037 -0.032 -0.136 -0.129 -0.060 -0.162 -0.027 -0.069 0.004 0.057 0.023 0.035 0.219 -0.041 -0.060 0.065 0.007 0.001 0.040 -0.085 -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 Parameters Estimated Termination Criteria Iteration Stopping Value Criteria Value Maximum Absolute Value of Gradient R-Square Change from Last Iteration Objective Function Objective Function Value Marquardt's Lambda Coefficient Numerical Derivative Perturbation Delta Iterations Warning Message Unconditional Least Squares 3 Maximum Relative Change in Estimates 0.001 0.122917 0.008162 0.035455 Sum of Squared Residuals 0.186993 1E-12 0.001 41 Estimates may not have converged.

Unconditional Least Squares Estimation Standard Error 0.08317 0.07863 0.07194 Approx Pr > |t| <.0001 0.0725 <.0001

Parameter MA1,1 MA1,2 MA1,3

Estimate 0.36631 0.14239 0.49130

t Value 4.40 1.81 6.83

Lag 1 2 12

Variance Estimate Std Error Estimate AIC SBC Number of Residuals

0.001461 0.038221 -474.527 -465.901 131

Autocorrelation Check of Residuals To Lag 6 12 18 24 30 36 ChiSquare 6.15 10.73 20.27 31.26 34.39 44.20 Pr > ChiSq 0.1044 0.2945 0.1617 0.0695 0.1551 0.0921

DF 3 9 15 21 27 33

--------------------Autocorrelations--------------------0.058 -0.074 0.153 -0.086 0.021 -0.094 0.127 -0.042 0.076 -0.115 0.098 0.120 -0.139 0.098 0.113 -0.021 0.019 -0.156 -0.076 -0.090 -0.144 -0.072 -0.013 0.006 0.025 0.018 0.019 0.206 -0.048 -0.087 -0.001 -0.082 -0.029 -0.001 -0.075 -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
Parameter MA1,1 MA1,2 Estimate 0.26253 0.52208 Standard Error 0.07252 0.07669 t Value 3.62 6.81 Approx Pr > |t| 0.0004 <.0001 Lag 1 12

Variance Estimate Std Error Estimate AIC SBC Number of Residuals

0.001455 0.038151 -477.575 -471.825 131

Autocorrelation Check of Residuals To Lag 6 ChiSquare 7.32 Pr > ChiSq 0.1200

DF 4

--------------------Autocorrelations--------------------0.110 0.022 -0.164 -0.095 0.063 0.035

12 18 24 30 36

11.27 20.22 31.00 33.91 43.29

10 16 22 28 34

0.3366 0.2105 0.0961 0.2039 0.1319

-0.074 0.133 -0.069 0.001 -0.065

-0.035 0.044 -0.099 0.081 0.153

0.108 0.068 -0.026 -0.010 -0.143

-0.071 -0.185 -0.061 -0.050 0.017

0.020 0.031 0.220 -0.052 -0.068

-0.061 0.013 0.001 -0.073 -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: H1: 1 = 2 = = = 0 (residual white noise) 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 = ( + 2) ( )1 =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 Shapiro-Wilk Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling --Statistic--W D W-Sq A-Sq 0.990478 0.066108 0.076018 0.453595 -----p Value-----Pr Pr Pr Pr < > > > W D W-Sq A-Sq 0.5117 >0.1500 0.2364 >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 145 146 147 148 149 150 151 152 153 154 155 156 Forecast 6.1099 6.0558 6.1781 6.1990 6.2312 6.3689 6.5047 6.5013 6.3258 6.2081 6.0644 6.1700 Std Error 0.0369 0.0431 0.0486 0.0534 0.0579 0.0620 0.0659 0.0696 0.0731 0.0764 0.0796 0.0827 95% Confidence Limits 6.0375 5.9712 6.0830 6.0943 6.1177 6.2473 6.3755 6.3649 6.1826 6.0583 5.9084 6.0079 6.1823 6.1403 6.2733 6.3037 6.3447 6.4905 6.6340 6.6377 6.4691 6.3578 6.2204 6.3320