Anda di halaman 1dari 47

Praktikum Teknik Komputasi Dasar (TEL 103P)

PENGENALAN SCILAB

Pendahuluan

Scilab merupakan paket software untuk komputasi numeris yang dikembangkan oleh
INRIA (Institut National de Recherche en Informatique et en Automatique) Prancis
pada tahun 1990. Sejak Mei 1993, pengembangan Scilab diserahkan kepada
Konsorsium Scilab. Kemudian, mulai tahun 1994 Scilab didistribusikan secara bebas
dan open source melalui internet.

Saat ini, Scilab sudah mulai digunakan secara luas pada dunia industri dan pendidikan.
Penerapan dari program Scilab banyak sekali terutama di bidang Teknik Elektro,
misalnya dalam hal kendali sistem, pemrosesan sinyal, perhitungan integral maupun
diferensial, statistika, dan masih banyak lagi.

Scilab berjalan pada hampir semua sistem Unix (termasuk GNU/Linux) dan Windows
(9X/2000/XP). Sampai saat ini (Agustus 2006), Scilab sudah mencapai versi 4.0.

Instalasi Scilab

Program Scilab dapat didownload dari alamat :

http://www.scilab.org
http://scilabsoft.inria.fr

Untuk praktikum kali ini, digunakan program Scilab 4.0 for GNU/Linux platforms.
Silahkan download versi binary-nya dari alamat di atas. Setelah itu, ekstrak dan install.

# tar -xzvf scilab-4.0.bin.linux-i686.tar.gz


# cd scilab-4.0
# make
# make install

Menjalankan Scilab

Untuk menjalankan Scilab cukup double-click icon Scilab 4.0 pada Desktop atau
ketikkan peritah berikut di konsole (terminal program) :

$ /path/to/scilab

Maka akan muncul jendela Scilex sebagai berikut :

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


1
Praktikum Teknik Komputasi Dasar (TEL 103P)

Tanda --> diikuti kursor adalah menyatakan prompt, yang siap menerima perintah-
perintah Scilab. Sebagai permulaan, cobalah memanggil fasilitas bantuan (help).
Bentuk umum perintahnya adalah :

--> help [topik]

Perintah tersebut akan membuka sebuah jendela baru berisi daftar beserta keterangan
dari perintah-perintah yang ada di Scilab.

Di dalam Scilab juga terdapat contoh program demonstrasi penggunaan fasilitas-


fasilitas Scilab. Semuanya terangkum dalam program demo. Untuk menjalankannya,
cukup klik menu Demo, atau berikan perintah :

--> exec('SCI/demos/alldems.dem');

Bila semua aktivitas yang berhubungan dengan Scilab sudah selesai dan ingin keluar
dari program, ketikkan perintah :

--> exit
atau
--> quit

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


2
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT I
OPERASI DASAR MATRIKS

Tujuan Praktikum
1. Mempelajari berbagai macam operasi dasar matriks dalam Scilab.
2. Mampu mengaplikasikan Scilab untuk penyelesaian perhitungan dengan
menggunakan operasi-operasi matriks.

Landasan Teori

Dalam Scilab semua operasi berbasis pada perhitungan matriks. Setiap elemen
perhitungan selalu diasumsikan sebagai matriks. Dalam penyajiannya, matriks ini
terdapat tiga macam, yaitu skalar, vektor dan matriks.

Matriks

Matriks dapat disusun dalam bentuk matriks persegi panjang atau matriks bujur
sangkar. Matriks yang hanya memiliki satu baris dan satu kolom dinamakan skalar.
Sedangkan matriks yang hanya terdiri dari satu baris saja disebut vektor baris, atau satu
kolom saja disebut vektor kolom.

2 4 5
Misalnya matriks A = 3 2 1 
9 6 4

Ketentuan penulisannya dalam Scilab yaitu antar elemen kolom dibatasi oleh spasi atau
koma (,) dan antar baris dibatasi oleh tanda titik koma (;) atau ganti baris. Sehingga
untuk matriks A di atas terdapat empat macam kombinasi penulisan pada Scilab, yaitu
:

-->A = [2 4 5; 3 2 1; 9 6 4] atau
-->A = [2,4,5; 3,2,1; 9,6,4] atau
-->A = [ 2 4 5
--> 3 2 1
--> 9 6 4 ] atau
-->A = [ 2,4,5
--> 3,2,1
--> 9,6,4 ]

Catatan :
Dalam pendefinisian matriks, kadangkala disertakan tanda titik koma (;), kadang juga
tidak. Pemberian titik koma dimaksudkan untuk tidak menampilkan isi matriks yang
didefinisikan tersebut.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


3
Praktikum Teknik Komputasi Dasar (TEL 103P)

Misalnya
-->T = [3 6 2] akan ditampilkan isi matriks T
T =

3. 6. 2.

-->T = [3 6 2]; isi matriks T tidak akan ditampilkan

Operasi Dasar Matriks

Perhitungan dasar menggunakan operator aritmatik antara lain :


+ penjumlahan ‘ transpose ^ pangkat
- pengurangan / pembagian kanan
* perkalian \ pembagian kiri

Operator-operator tersebut dapat digunakan pada skalar maupun vektor. Untuk matriks
mengikuti aturan-aturan yang ditentukan.

a. Operasi penjumlahan dan pengurangan matriks hanya dapat dilakukan pada


matriks-matriks yang memiliki ordo/ukuran yang sama.

b. Operasi perkalian matriks hanya dapat dilakukan bila jumlah kolom matriks kiri
sama dengan jumlah baris matriks kanan.

c. Operasi transpose merupakan operasi pengubahan baris menjadi kolom, dan


berlaku untuk semua jenis matriks.

d. Operasi pembagian matriks (pada dasarnya tidak ada) dalam Scilab ada dua macam,
yaitu pembagian kiri (\) dan pembagian kanan (/).

Pembagian kiri x = A\B adalah penyelesaian dari A*x=B, dan


Pembagian kanan x = B/A adalah penyelesaian dari x*A=B.

Terdapat hubungan antara pembagian kiri dan pembagian kanan, yaitu :


A\B = (B’/A’)’ dan B/A = (A’\B’)’

e. Operasi pangkat berlaku antara matriks dan skalar, dan matriks harus bujur sangkar.
Operasi ini sama dengan perkalian berulang, misalkan :
A^3 = A*A*A.

Operasi Array

Terdapat juga bentuk operasi lain yaitu operasi array atau sering disebut sebagai operasi
per elemen matriks (elementwise operation), dan hanya diterapkan pada perkalian,
pembagian dan pangkat. Yaitu, dengan memberikan tanda titik sebelum operator yang
bersangkutan.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


4
Praktikum Teknik Komputasi Dasar (TEL 103P)

a. Perkalian Array
Perkalian antar elemen matriks A dan dituliskan dengan A.*B

b. Pembagian Array
Pembagian antar elemen matriks ada dua macam, yaitu pembagian kiri (\) dan
pembagian kanan (/). Untuk pembagian kiri, dituliskan A.\B, sedangkan untuk
pembagian kanan dituliskan A./B. Pada pembagian ini, terdapat hubungan A./B =
B.\A

c. Perpangkatan Array
Untuk pangkat dituliskan dengan A.^n dengan n adalah skalar pangkatnya.

Langkah-langkah Percobaan

Terdiri atas perhitungan-perhitungan dasar matriks menggunakan operator-operator


dasar. Dari perhitungan yang dilakukan kemudian diamati dan dianalisa fungsi dan
kegunaannya serta membandingkannya dengan teori yang berkaitan.

A. Mendefinisikan Skalar, Vektor dan Matriks

Definisikan dalam Scilab :


a. Skalar B = 2,345;
0
− 3
b. Vektor R = [3 7 2] dan S =   ;
 28 
 
4
 2 − 4 5

c. Matriks A =  0 12 1  ;
− 20 6 4

Untuk skalar dianggap seperti operasi bilangan biasa.


-->B = 2.345

Bisa juga diperlakukan seperti matriks.


-->B = [2.345]

Untuk vektor, penulisannya persis seperti penulisan matriks.


-->R = [3 7 2]
-->S = [0; -3; 28; 4]

Penulisan matriks A.
-->A = [2 -4 5; 0 12 1; -20 6 4] atau
-->A = [2,-4,5; 0,12,1; -20,6,4] atau
-->A = [2 -4 5
--> 0 12 1

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


5
Praktikum Teknik Komputasi Dasar (TEL 103P)

--> -20 6 4] atau


-->A = [2,-4,5
--> 0,12,1
--> -20,6,4]

B. Operasi Dasar Matriks


Operator-operator aritmatik yang sebelumnya telah disebutkan dapat digunakan
pada skalar maupun vektor. Untuk matriks mengikuti aturan-aturan yang
ditentukan.

a. Operasi Penjumlahan dan Pengurangan Matriks

1 2 3 − 1 0 8 
A=  ; B=  . Dihitung A+B dan A-B.
 4 5 6  3 3 4

-->A = [1 2 3; 4 5 6];
-->B = [-1 0 8; 3 3 4];
-->A+B
-->A-B

b. Operasi Perkalian Matriks


5 6
0 1 
P = 7 − 2 10 9 ; Q =  . Dihitung P*Q.
− 1 3 
 
 3 − 7

-->P = [7 -2 10 9];
-->Q = [5 6; 0 1; -1 3; 3 -7];
-->P*Q

c. Operasi Transpose Matriks


− 1 0 7 
Diberikan matriks M =   , tentukan MT.
 5 10 − 3

-->M = [-1 0 7; 5 10 -3];


-->M’

d. Operasi Pembagian Matriks : pembagian kiri (\) dan pembagian kanan (/)
Pembagian kiri x = A\B adalah penyelesaian dari A*x=B, dan
Pembagian kanan x = B/A adalah penyelesaian dari x*A=B.

 2 3 4  2
Diberikan matriks A = 2 6 7  ; B = 4 ; C = BT.
 
0 1 4 1 
Hitung x dan y jika A*x = B dan y*A = C.

-->A = [2 3 4; 2 6 7; 0 1 4]

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


6
Praktikum Teknik Komputasi Dasar (TEL 103P)

-->B = [2; 4; 1]
-->x = A\B
-->C = B’
-->y = C/A

e. Operasi Pangkat
 2 3 4
Diberikan matriks A = 2 6 7  , tentukan A3.
0 1 4

-->A = [2 3 4; 2 6 7; 0 1 4]
-->A^3

C. Operasi Array
Operasi ini berlaku pada semua jenis matriks, dan perhitungannya dilakukan elemen
per elemen. Sehingga ukuran pasangan matriks yang dihitung harus sama.

− 1 2  10 2 
Diberikan A =   ; B= 
 9 − 3  4 − 5
Definisikan matriksnya :
-->A = [-1 2; 9 -3]
-->B = [10 2; 4 -5]

a. Perkalian Array
Perkalian antar elemen matriks A dan B :
-->A.*B

b. Pembagian Array
Untuk pembagian kiri :
-->A.\B

Sedangkan untuk pembagian kanan :


-->A./B

Tunjukkan bahwa terdapat hubungan A./B = B.\A


-->A./B
-->B.\A
Apakah kedua hasilnya sama?

c. Perpangkatan Array
Untuk pangkat A.^2 dan B.^3
-->A.^2
-->B.^3

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


7
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT II
FUNGSI-FUNGSI SCILAB

Tujuan Praktikum
1. Mempelajari perintah-perintah dan fungsi-fungsi pengolahan matriks.
2. Memahami setiap kegunaan fungsi-fungsi tersebut dan mampu menerapkannya
dalam penyelesaian suatu kasus komputasi sederhana.

Landasan Teori

Dalam Scilab banyak ragam perintah-perintah dan fungsi-fungsi matriks, yang


kegunaannya bersesuaian dengan metode-metode komputasi analisis dalam matematika
terutama yang menggunakan matriks. Penggunaan fungsi-fungsi skalar pada matriks
akan berlangsung elemen per elemen. Dan hasil keluaran dari fungsi-fungsi tersebut
tetap berupa matriks yang ukurannya sama dengan ukuran matriks yang diproses.

A. Fungsi Pembulatan Angka


Dipergunakan dalam hal pembulatan angka dari hasil perhitungan maupun angka-
angka pecahan, baik itu pembulatan ke bawah atau ke atas.

floor(x) : pembulatan ke bawah


− 1.09 4,56  − 2 4 
A=  ; floor(A) =  
0.119 − 3,42  0 − 4

round(x) : pembulatan ke angka bulat terdekat


− 1 5 
round(A) =  
 0 − 3

fix(x) : pembulatan ke angka bulat terdekat menuju angka nol


− 1 4 
fix(x) =  
 0 − 3

ceil(x) : pembulatan x ke atas


− 1 5 
ceil(A) =  
 1 − 3

B. Fungsi-fungsi Dasar Matematika


Terdiri dari fungsi-fungsi nilai mutlak, penentu tanda, bilangan natural, logaritma,
dan fungsi menghitung akar kuadrat.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


8
Praktikum Teknik Komputasi Dasar (TEL 103P)

abs(x) : harga mutlak dari x


B = [3,89 0,0000 -386,2] ; abs(B) = [3,89 0 386,2]

sign(x) : menghasilkan tanda x, 1 jika positif, -1 jika negatif, dan 0 jika nol
sign(B) = [1 0 -1]

exp(x) : menghitung harga ex


0 1 − 1   1 2,7182818 0,3678794
E=   ; exp(E) = 7,3890561 0,0003355 95,58348 
2 − 8 4,56  

log(x) : logaritma natural dari x, yaitu ln x. Jika dikenakan pada bilangan negatif
akan menghasilkan bilangan kompleks.
 1 3   0 1,0986123 
L=   ; log(L) =  
0,56 − 1,2 - 0,5798185 0,1823216 + 3,1415927i

sqrt(x) : akar kuadrat dari x, menghasilkan angka imajiner untuk x negatif


Q = [0 4 19 -2 -3,86] ; sqrt(Q) = [0 2 4,3588989 1,4142136i 1,9646883i]

C. Fungsi-fungsi Kompleks
Untuk perhitungan yang melibatkan bilangan kompleks, terdapat beberapa fungsi
untuk itu antara lain:
abs(Z) : modulus dari Z, yaitu |Z| = a 2 + b 2
Z = [3 + 4i 0,234 - 1,535i] ; abs(Z) = [5 1,5527334]

conj(Z) : konjugat kompleks dari Z, yaitu Z


conj(Z) = [3 - 4i 0,234 + 1,535i]

real(Z) dan imag(Z) : bagian nyata dan khayal dari Z

real(Z) = [3 0,234] ; imag(Z) = [4 1,535]

D. Fungsi-fungsi Trigonometri
Dalam perhitungan-perhitungan trigonometri disediakan fungsi-fungsi seperti:
sin(x) cos(x) tan(x) asin(x) acos(x) atan(x)

Pada fungsi sin, cos dan tan, x dalam satuan radian. Bilangan π = 3,14159265...
didefinisikan dalam variabel pi.

sin(%pi/6) = 0,5 ; tan(%pi/4) = 1

Dan untuk nilai tan(%pi/2) = 1,633E+16 adalah angka terbesar sehingga dapat
dianggap tak terhingga (~). Sedangkan, cos(%pi/2) = 6,123E-17 adalah nilai yang
hampir mendekati nol sehingga dapat dianggap 0.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


9
Praktikum Teknik Komputasi Dasar (TEL 103P)

Untuk asin dan acos, apabila parameter x memiliki harga pada |x| > 1,0; akan
menghasilkan angka imajiner. Dan juga untuk parameter x berupa matriks,
perhitungan akan dilakukan elemen per elemen matriks x sehingga akan
menghasilkan matriks dengan ukuran yang sama dengan x.

asin(1) = 1,5707963 ; acos(0,5) = 1,0471976 ; acos(2) = 1.3169579i ; atan(1) =


0,7853982 ; atan(%inf) = 1,5707963 ; di mana inf menyatakan bilangan tak
terhingga.

Catatan : Penulisan konstanta dalam Scilab (seperti pi, inf dan i) selalu diawali
dengan tanda %.

E. Matriks Khusus
Yaitu fungsi-fungsi untuk membangkitkan matriks, perhitungan-perhitungan
umum dan perhitungan khusus, antara lain:

eye(m,n) : matriks identitas


1 0 0
1 0 0
eye(3,3) = 0 1 0 ; eye(2,3) = 0 1 0 
0 0 1  

zeros(m,n) : matriks nol


0 
0 0
zeros(2,2) =   ; zeros(3,1) = 0
0 0
0

ones(m,n) : matriks satuan


1 1
1 1 1 1 1
ones(3,3) = 1 1 1 ; ones(4,2) = 
1 1
1 1 1  
1 1

Matriks-matriks khusus ini juga bisa dibuat dengan ukuran matriks tertentu yang
telah didefinisikan. Misalnya diberikan matriks A sebagai berikut:
− 3 4 1 
A=  
 4 − 1 9

a. Matriks identitas dengan ukuran yang sama dengan A


1 0 0
eye(A) =  
0 1 0 

b. Matriks nol dengan ukuran yang sama dengan A

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


10
Praktikum Teknik Komputasi Dasar (TEL 103P)

0 0 0 
zeros(A) =  
0 0 0 

c. Matriks satuan dengan ukuran yang sama dengan A


1 1 1
ones(A) =  
1 1 1

F. Operasi Matriks
max(x [,argument]) dan min(x [,argument]) : nilai terbesar dan terkecil dari
matriks.

 5 − 1 9
A =  10 0 4 
− 2 − 3 1

max(A) = 10 ; min(A) = -3
max( A, ' r ' ) = 10 0 9 ; min( A, ' r ' ) = − 2 − 3 1
9  − 1
max( A, ' c' ) = 10 ; min( A, ' c' ) =  0 
 1  − 3

sum(x [,argument]) dan prod(x [,argument]) : jumlah dan produk elemen matriks.

sum(A) = 23 ; prod(A) = 0
sum( A, ' r ' ) = 13 − 4 14 ; prod ( A, ' r ' ) = − 100 0 36
 13  − 45
sum( A, ' c' ) =  14  ; prod ( A, ' c' ) =  0 
− 4  6 

G. Fungsi-fungsi Perhitungan Matriks


det(x) : determinan matriks bujursangkar x
det(A) = -192

diag(x) : vektor berisi elemen-elemen diagonal dari matriks x


5 
diag(A) = 0
1 

inv(x) : kebalikan (invers) matriks x

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


11
Praktikum Teknik Komputasi Dasar (TEL 103P)

− 0,0625 0,1354167 0,0208333


inv(A) =  0,09375 - 0,1197917 - 0.3645833
 0,15625 - 0.0885417 - 0.0520833

size(x) : ukuran matriks baris dan kolom


size(A) = [3 3]

Langkah-langkah Percobaan

A. Fungsi Pembulatan Angka : floor, round, fix, ceil


Menghitung pembulatan angka menggunakan fungsi-fungsi tersebut untuk :
− 1,09 4,56 
3,5675; -12,457; -3,1007; 5,30, kemudian matriks P =  
0,119 − 3,42

1. Untuk menentukan hasil pembulatan angka dari skalar, langsung masukkan


angka tersebut ke dalam fungsi yang dikehendaki, yaitu:
a. Pembulatan ke bawah
--> floor(3.5675)

b. Pembulatan ke angka bulat terdekat


--> round(3.5675)

c. Pembulatan ke angka bulat terdekat menuju nol


--> fix(3.5675)

d. Pembulatan ke atas
--> ceil(3.5675)

Angka skalar yang lain juga dilakukan dengan cara yang sama.

2. Pembulatan pada matriks P. Pertama tentukan dulu matriksnya. Lalu panggil


fungsinya secara bergantian.
a. Definisikan matriks P
--> P = [-1.09 4.56 0.119 -3.42]

b. Hitung untuk masing-masing fungsi tersebut terhadap matriks P


--> floor(P)
--> round(P)
--> fix(P)
--> ceil(P)

Amati perbedaan dari keempat fungsi tersebut dan bandingkan!

B. Fungsi-fungsi Dasar Matematika


Menghitung dengan menggunakan fungsi-fungsi dasar matematika, seperti abs,
sign, exp, log, dan sqrt.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


12
Praktikum Teknik Komputasi Dasar (TEL 103P)

1. Hitung menggunakan fungsi abs dan sign pada skalar 3,89; 0,0000; -386,2 dan
matriks P diatas.
a. Nilai mutlak skalar
--> abs(3.89)

b. Tanda bilangan
--> sign(3.89)

Untuk angka yang lain caranya tetap sama.

c. Pada matriks P, definisikan dulu matriksnya kemudian hitung menggunakan


fungsi tersebut.
--> P = [-1.09 4.56 0.119 -3.42]
--> abs(P)
--> sign(P)

2. Lakukan perhitungan dengan fungsi exp untuk skalar 0; 1; -1; 2; -1; 10; 4,56
dan matriks P di atas.
a. Untuk skalar, langsung hitung
--> exp(4.56)

b. Untuk matriks, definisikan matriksnya dulu kemudian hitung nilai


eksponennya
--> P = [-1.09 4.56 0.119 -3.42]
--> exp(P)

Bisa juga dihitung langsung pada fungsinya


--> exp([-1.09 4.56 0.119 -3.42])

3. Hitung dengan fungsi log pada skalar 1; 3; 10; 0,56 dan matriks P tersebut.
a. Untuk skalar, hitung secara langsung
--> log(3)

b. Untuk matriks, seperti juga pada perintah exp


--> P = [-1.09 4.56 0.119 -3.42]
--> log(P)
atau
--> log([-1.09 4.56 0.119 -3.42])

Amati perbedaan hasil perhitungan terhadap angka x > 1 dan x < 1.

C. Fungsi-fungsi Kompleks
Menghitung nilai modulus bilangan kompleks 3 + 4i; 0,234 – 1,535i dan matriks
kompleks Z di bawah ini menggunakan fungsi abs dan bandingkan dengan
rumusnya yaitu |Z| = a 2 + b 2 . Pisahkan bagian nyata dan khayalnya dengan
fungsi real dan imag serta konjugatnya dengan fungsi conj.

 5i 7 + 8i 

Z =  1 − 3i 0 
0,78 −1,23i − 21 

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


13
Praktikum Teknik Komputasi Dasar (TEL 103P)

a. Menghitung modulus kompleks serta pemisahan bagian nyata dan khayal pada
skalar, dilakukan secara langsung
--> abs(3 + %i*4)
--> abs(0.234 – %i*1.535)

Bandingkan dengan rumus asalnya:


--> sqrt(3^2 + 4^2)
--> sqrt(0.234^2 + 1.535^2)

Memisahkan bagian nyata dan khayal


--> real(3 + %i*4)
--> imag(3 + %i*4)
--> real(0.234 – %i*1.535)
--> imag(0.234 – %i*1.535)

b. Untuk perhitungan matriks kompleks, definisikan matriknya


--> P = [%i*5 7+%i*8; 1-%i*3 0; 0.78-%i*1.23 -21]
--> abs(P)

Pemisahan matriks nyata dan khayal dari matriks komplek


--> real(P)
--> imag(P)

c. Menghitung konjugatnya dengan fungsi conj


--> conj(3 + %i*4)
--> conj(0.234 – %i*1.535)
--> conj(P)

D. Fungsi-fungsi Trigonometri
Hitung nilai sin(π/6), cos(π/2), tan(π/4) dan bandingkan dengan teorinya. Hitung
juga asin(1), asin(2), acos(0), acos(-3), atan(sqrt(3)), dan atan(~). Tunjukkan kalau
hasil perhitungan untuk asin dan acos bila |x| > 1,0 hasilnya akan imajiner.

--> sin(%pi/6)
--> cos(%pi/2)
--> tan(%pi/4)
--> asin(1)
--> asin(2)
--> acos(-3)
--> atan(sqrt(3))
--> atan(%inf)

E. Matriks Khusus
Beberapa fungsi dalam Scilab digunakan untuk komputasi yang diterapkan pada
matriks, antara lain untuk membangkitkan matriks dan menghitungnya.

1. Buatlah berturut-turut : matriks identitas, matriks nol, dan matriks satuan


dengan ukuran bujursangkar 4 x 4 dan ukuran persegi 6 x 3.
a. Matriks identitas
--> eye(4,4)
--> eye(6,3)

b. Matriks nol
--> zeros(4,4)
--> zeros(6,3)

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


14
Praktikum Teknik Komputasi Dasar (TEL 103P)

c. Matriks satuan
--> ones(4,4)
--> ones(6,3)

2. Buat juga matriks-matriks tersebut yang ukurannya sama dengan ukuran


matriks K berikut.

 3 10 − 2 
8 3 12 

K =  −1 0 1 
 
 − 9 3 25
− 18 5 0 

a. Matriks identitas : --> eye(K)


b. Matriks nol : --> zeros(K)
c. Matriks satuan : --> ones(K)

F. Operasi Matriks
Hitung nilai terbesar dan terkecil serta jumlahan dan produk dari matriks B.

 12 − 9 8 5
 0 19 − 34 17
B=  
− 2 6 20 11
 
 12 − 44 2 1

1. Definisikan dulu matriks B tersebut


2. Nilai terbesar dan terkecil
--> max(B)
--> max(B,‘r’)
--> max(B,‘c’)
--> min(B)
--> min(B,‘r’)
--> min(B,‘c’)

3. Hasil jumlahan dan produk perkalian


--> sum(B)
--> sum(B,‘r’)
--> sum(B,‘c’)
--> prod(B)
--> prod(B,‘r’)
--> prod(B,‘c’)

G. Fungsi-fungsi Perhitungan Matriks

3 5 6 
A = − 1 2 − 9
 4 1 1 

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


15
Praktikum Teknik Komputasi Dasar (TEL 103P)

Carilah nilai determinan serta diagonal dari matriks A. Inverskan matriks A dan
simpan di B dengan fungsi inv. Tunjukkan bahwa perkalian A dan inversnya B akan
menghasilkan matriks identitas.
1. Definisikan matriks A
2. Hitung determinan dan diagonalnya
--> det(A)
--> diag(A)

3. Inverskan A kemudian hasilnya simpan di B dan peroleh hasil perkalian


A*A-1 = A*B

--> B = inv(A)
--> A*B

Amati apakah hasil perkaliannya menghasilkan matriks identitas? Jelaskan!!

TUGAS :
1. Apa yang terjadi ketika anda menjalankan perintah eye(4)? Mengapa demikian?
2. Jelaskan kegunaan sekaligus perbedaan dari parameter ‘r’ dan ‘c’ pada fungsi
max(), min(), sum() serta prod()?

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


16
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT III
MENGGAMBAR GRAFIK

Tujuan Praktikum
1. Mengenal cara penggambaran grafik di dalam Scilab.
2. Mampu membuat grafik dari berbagai macam fungsi matematis

Landasan Teori

Penggambaran grafik dalam Scilab dilakukan berdasarkan rumus matematis yang


diberikan dalam perhitungan. Terdapat beberapa macam fungsi-fungsi penggambaran
grafik sesuai dengan kebutuhan, misalnya plot kurva linear, kurva semilogaritmik atau
logaritmik, diagram polar, serta atribut-atribut dalam penggambaran grafik
bersangkutan misalnya penulisan teks dalam grafik, label, judul grafik, pemberian kisi
atau grid.

Perintah-perintah grafik antara lain:


1. plot
Memplot kurva dengan menggunakan sistem koordinat kartesian berskala linear.
Sistem koordinat ini yang biasanya sering dipakai dalam analisis matematis secara
umum. Penggunaan perintah ini ada bermacam-macam antara lain:
a. plot (x,y) atau plot2d (x,y) adalah penggambaran kurva paling sederhana,
yaitu berdasarkan pasangan data antara x dan y, di mana x dan y dinyatakan
dalam vektor baris. Pada urutan elemen yang sama saling berpasangan antara x
dan y, dan akan menghasilkan kurva tunggal.

b. plot (x1,y1,x2,y2,...) atau plot2d (x1,y1,x2,y2,...) yaitu memplot


beberapa kurva sekaligus dalam satu sistem koordinat yang sama. Data-data
yang diplot adalah pasangan-pasangan data antara x1 dan y1, x2 dan y2, dan
seterusnya.

c. plot (x1,y1,‘bentuk garis’,...) atau plot2d (x1,y1,‘bentuk


garis’,...) di mana bentuk garis adalah jenis garis yang digunakan untuk
penggambaran kurva dari pasangan data x dan y. Masing-masing kurva dapat
ditentukan jenis garis yang berbeda, beserta juga warna garisnya. Pilihan jenis
garis tersebut terdiri dari pola garis, penanda titik (marker), dan warna garis.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


17
Praktikum Teknik Komputasi Dasar (TEL 103P)

Pola garis Penanda titik Warna garis


- Garis tebal . Titik r Merah
-- Putus-putus + Tanda plus g Hijau
: Titik-titik * Bintang b Biru
-. Garis-garis o Lingkaran w Putih
x Silang y Kuning
s Kotak m Magenta
d Diamond c Cyan
v Segitiga bawah k Hitam
^ Segitiga Atas
< Segitiga kiri
> Segitiga kanan
p Pentagram

Ketiga jenis pilihan di atas dapat saling digabungkan sebagai string.


Misalnya : plot(x,y,’go’) berarti memplot kurva dengan penanda lingkaran
tanpa garis diberi warna hijau.

2. polar
Penggambaran perintah polar ini sama dengan perintah plot. Namun dalam
penggambarannya, sistem koordinat yang digunakan adalah koordinat polar.
Sehingga pasangan data antara x dan y misalnya, diterjemahkan sebagai jari-jari
untuk x dan sudut pada y. Contoh perintahnya adalah polarplot(x,y);

3. Kurva logaritmik dan semilogaritmik


Penggambaran perintah polar ini tetap sama persis dengan perintah plot dan
polarplot. Untuk kurva semilogaritmik digunakan perintah plot2d1(“abc”,x,y).
“a” diisi e, o atau g
“b” dan “c” diisi n atau l
“N” artinya sumbu x atau y berupa sumbu non logaritmik
“L” artinya sumbu x atau y berupa sumbu logaritmik
• plot2d1(“eln”,x,y) berarti menggambar kurva yang semilogaritmik di
sumbu x sedangkan sumbu y tetap linear.
• plot2d1(“enl”,x,y) berarti kurva linear di sumbu x dan semilogaritmik di
sumbu y.
• Sedangkan untuk kurva logaritmik, perintahnya plot2d1(“ell”,x,y) yang
berarti kurva akan logaritmik di kedua sumbu x dan y.
Skala logaritmik ini bila disetarakan skalanya dengan skala linear, maka pada skala
1,2,3 di skala linear akan menjadi skala 101, 102, 103, di skala logaritmik, baik pada
plot2d1 (“eln”,x,y), plot2d1 (“enl”,x,y), maupun plot2d1 (“ell”,x,y).

4. Atribut-atribut grafik

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


18
Praktikum Teknik Komputasi Dasar (TEL 103P)

Terdapat bermacam-macam juga untuk atribut grafik ini. Antara lain berupa kisi,
teks, judul, label sumbu, label kurva.
a. xgrid, berfungsi untuk menampilkan grid/kisi pada sistem koordinat tempat
menggambar kurva.
b. xstring(x,y,’teks’), untuk memberikan tulisan label pada kurva tepat
pada posisi (x,y) berdasarkan koordinat kurva yang digambar.
c. xtitle(‘judul’,xlabel,ylabel), bagian judul berguna untuk
menuliskan judul pada kurva yang digambar dengan tulisan ‘judul’. Bagian
xlabel memberi label pada sumbu x sedangkan ylabel digunakan pada
sumbu y.

Pada penggambaran kurva yang telah dijabarkan di atas, akan ditampilkan pada jendela
tersendiri yaitu jendela gambar (Scilab Graphic). Dari jendela gambar ini dapat
dilakukan pencetakan maupun menyalin gambar untuk diekspor ke editor dokumen
anda, misalnya Open Office dan KWrite.
1. Pencetakan Gambar
Pada jendela gambar pilih menu File → Print. Akan muncul dialog print
halaman grafik yang akan dicetak. Disini bisa kita tentukan bentuk cetakan
grafik pada kertas yang akan digambar/dicetak. Terlebih dahulu, pilih color atau
black&white untuk warna grafik, dan bisa juga ditentukan Orientation pada
potrait untuk arah pencetakan ke bawah, atau landscape pada arah melebar.
Kemudian tekan OK.

2. Mengekspor Gambar
Pada jendela gambar, Pilih menu File → Export. Akan muncul jendela export,
pilih ekstensi yang sesuai kemudian ketik nama file grafik yang akan diexport,
kemudian tekan OK. Lewat Word Processor (seperti OpenOffice dll), grafik
ditambahkan dengan cara memilih menu Insert → Picture dan pilih grafik yang
sudah diekspor / disimpan tadi.

Langkah-langkah Percobaan

A. Membuat grafik sederhana


Grafik fungís ini dibuat pada koordinat kartesian dengan skala linear. Fungsi-fungsi
yang akan digambar yaitu : y = sin (x);

Langkah-langkah membuatnya yaitu sebagai berikut:


1. Tentukan interval skala di sumbu x menggunakan fungsi linspace. Misalnya
dibuat 0 ≤ x ≤ 10.

--> x=linspace(0,10);

Perintah ini berarti membuat vektor yang berisi angka mulai 0 sampai dengan
10 sebanyak 100 elemen.
2. Hitung nilai di sumbu vertical yaitu sumbu y

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


19
Praktikum Teknik Komputasi Dasar (TEL 103P)

--> y=sin(x)

3. Plot kurva dari pasangan data yang dihasilkan dari perhitungan di atas, yaitu x
dan y.
--> plot(x,y)

Maka Scilab akan membuka frame baru untuk gambar yang dihasilkan.

Selanjutnya pada jendela gambar ini dapat diberikan perintah-perintah gambar yang
lain, misalnya memberi judul grafik yang dibuat, label sumbu, atau label kurva.

4. Memberi judul dan label sumbu x dan y pada grafik yang dibuat,
--> xtitle (‘Grafik fungsi trigonometri’,’x’,’y’)

5. Memberi label pada kurva. Posisi label teks ini terserah, lebih bagus jika berada
berdekatan dengan kurva
--> xstring (3, sin(3), ‘sin (x)’)

Grafik setelah diberi atribut judul, label dan teks yaitu sebagai berikut.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


20
Praktikum Teknik Komputasi Dasar (TEL 103P)

Dalam satu frame gambar bisa dibuat gabungan dari beberapa kurva dalam satu
sistem koordinat. Misalnya di sini digambar kurva y = sin(x) dan y = cos(x). Cuma
di sini kedua variabel hasil harus dibuat berbeda, seperti y1 dan y2 sehingga menjadi
y1 = sin(x) dan y2= cos(x).

Langkah-langkahnya :
1. Penentuan interval bisa dibuat sama untuk kedua kurva, misalnya 0 ≤ x ≤ 10.
2. Hitung kedua untuk y1 dan y2.
--> y1=sin(x)
--> y2=cos(x)

3. Memplot kedua kurva


--> plot (x, y1, x, y2)

Pemberian atribut judul, label dan yang lainnya, caranya tetap sama seperti
langkah 4 sampai 5.
Hasilnya yaitu:

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


21
Praktikum Teknik Komputasi Dasar (TEL 103P)

Pola grafik juga bisa dibuat dalam bentuk yang lain, misalnya garisnya putus-
putus atau menggunakan penanda titik, serta diberi warna tertentu. Misalnya
grafik di atas akan diberi warna hijau dengan pola garis titik-titik, sedangkan
satunya diberi warna magenta dan garisnya putus-putus.
Perintah penggambarannya :
--> plot (x, y1, ‘:g’, x, y2, ’--m’ )

Untuk menghapus grafik sebelumnya agar penggambaran grafik baru tidak


menumpuk digunakan perintah:
--> clf

Untuk membuat grafik dengan menggunakan penanda titik (marker), misalnya:


--> plot (x, y1, ‘og’, x, y2, ‘+b’)

Digambarkan grafik pertama dengan penanda lingkaran (o) berwarna hijau,


sedangkan grafik kedua dengan penanda plus (+) berwarna biru. Hasilnya :

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


22
Praktikum Teknik Komputasi Dasar (TEL 103P)

B. Membuat grafik di koordinat polar


Yaitu dengan memplot harga kuadrat dari harga sudut di koordinat polar. Fungsi-
fungsi yang umumnya digambarkan adalah fungsi-fungsi trigonometri.
❖ Misalnya: y = sin(x); y = cos(x); y = sin(x) + cos(x); y = sin(2*x).
Langkah-langkah untuk membuatnya yaitu :
1. Tentukan interval sudut penggambaran, misalnya : 0 ≤ x ≤ 2π.
--> x = linspace(0,2*%pi);

2. Hitung y dengan fungsi yang dikehendaki.


--> y = sin(x);

3. Gambar grafik di koordinat polar.


--> polarplot(x,y);

Maka akan didapat hasilnya seperti berikut ini:

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


23
Praktikum Teknik Komputasi Dasar (TEL 103P)

4. Begitu juga untuk y = cos (x), perintahnya tetap sama.


--> clf
--> y = cos(x);
--> polarplot(x,y);
Gambar yang dihasilkan:

5. Untuk y = sin(x) + cos(x) akan didapatkan grafik sebagai berikut:


--> clf
--> y = sin(x) + cos(x);
--> polarplot(x,y);

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


24
Praktikum Teknik Komputasi Dasar (TEL 103P)

6. Kemudian buat grafik y = sin (2*x); dan beri judul “Grafik fungsi y = sin
(2*x)”.
--> y = sin (2*x);
--> polarplot (x, y);
--> xtitle (‘Grafik fungsi y = sin (2*x)’,’x’,’y’);
Gambar yang dihasilkan:

C. Menggambar grafik logaritmik


Yaitu menggambar kurva atau grafik pada sistem koordinat kartesian dengan skala
logaritmik baik di sumbu x, sumbu y, atau kedua sumbu x dan y.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


25
Praktikum Teknik Komputasi Dasar (TEL 103P)

❖ Misalnya akan digambarkan grafik y = log (x) dalam ketiga macam variasi di
atas.
Langkah-langkahnya:
1. Tentukan interval sumbu mendatar yaitu sumbu x, misalkan range 0 ≤ x ≤
100.
--> x = linspace(1,100);
2. Hitung fungsi logaritmiknya, y = log (x).
--> y = log (x);
3. Plot grafiknya pada sistem semilogaritmik sumbu x.
--> plot2d1(“eln”,x,y)

4. Hidupkan tampilan kisi (grid) pada layar grafik.


--> xgrid
Hasilnya adalah sebagai berikut:

5. Dan pada sistem koordinat logaritmik sumbu y.


--> clf
--> plot2d1(“enl”,x,y)
--> xgrid
Grafik menjadi seperti di bawah ini:

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


26
Praktikum Teknik Komputasi Dasar (TEL 103P)

6. Dan juga pada sistem koordinat logaritmik di kedua sumbu x dan y.


>> clf
>> plot2d1(“ell”,x,y)
>> xgrid
Grafik menjadi seperti di bawah ini:

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


27
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT IV
GRAFIK REGRESI

Tujuan Praktikum
1. Mampu menerapkan penggambaran grafik di Scilab untuk membuat grafik
regresi.
2. Memahami cara perhitungan regresi dari sejumlah data untuk mendapatkan
grafik regresi dari data yang diberikan.

Landasan Teori

Dari analisis data mempergunakan metode kuadrat terkecil (least square) dari sepasang
data misal x dan y, didapat suatu model persamaan regresi. Dari persamaan ini
didapatkan juga grafik regresinya.

Regresi yang akan dipraktekkan di sini ada dua macam :


1. Regresi linear
2. Regresi polinomial

Dari kedua regresi tersebut akan dihitung koefisien regresinya dari data-data yang
diberikan.

A. Regresi Linear
Model persamaan regresi linear dari pasangan data (x,y) yaitu y = a0 + a1x. Bila
diberikan sepasang data x dan y.
x x0 x1 x2 …………………… xN
y y0 y1 y2 ……………………. yN

Maka dapat dihitung koefisien a0 dan a1 dengan rumus sebagai berikut:

 1 x1   y1 
1 x  y 
... 1  
2 
1 1 1 a   1 1 1 ... 1   2 
x   1 x3   0  =   y3 
 1 x2 x3 ... x N     a1   x1 x2 x3 ... x N   
... ...   ... 
1 x   y N 
 N 

Model di atas disederhanakan menjadi XXTa = XyT, dan penyelesaiannya:


a = (XXT)-1 XyT = XT*yT, di mana XT* = (XXT)-1X
Dalam Scilab untuk mencari a digunakan pembagian kiri : a = A\B dimana A =
X*X’ dan B = X*y’.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


28
Praktikum Teknik Komputasi Dasar (TEL 103P)

B. Regresi Polinomial
Model persamaan regresi polinomial dari pasangan data (x,y) yaitu y = a0 + a1x +
a2x2. Bila diberikan sepasang data x dan y,
x x0 x1 x2 ……………….… xN
y y0 y1 y2 ………………….. yN

Maka dapat dihitung koefisien a0 dan a1 dengan rumus sebagai berikut:

 1 x1 x12   y1 
 
1 1 1 ... 1   1 x 2 x 22  a 0   1 1 1 ... 1   y 2 
x ... x N   1 x3    ... x N   y 3 
 1 x2 x3 x32   a1  =  x1 x2 x3
   
 x12 x 22 x32 ... x N2  ... ... ...  a 2   x1
2
x 22 x32 ... x N2   ... 
1 x x N2   y N 
 N

Model diatas disederhanakan menjadi XXTa = XyT, dan penyelesaiannya:


a = (XXT)-1 XyT = XT*yT, dimana XT* = (XXT)-1X
Dalam Matlab untuk mencari a digunakan pembagian kiri : a = A\B dimana A =
X*X’ dan B = X*y’.

Langkah-langkah Percobaan

A. Regresi Linear
Sebagai contoh untuk perhitungan diberikan data misalnya :

x 36,9 46,7 63,7 77,8 84,0 87,5


y 181 197 235 270 283 292

Langkah-langkah perhitunga regresi dari data yang diberikan dapat diselesaikan


dengan langkah-langkah sebagai berikut:
1. Buatlah berturut-turut vector dari kedua variable yang dihitung persamaan
regresinya.

--> x=[36.9 46.7 63.7 77.8 84.0 87.5]


--> y=[181 197 235 270 283 292]

2. Bentuklah matriks X berukuran dua baris dan kolomnya sebanyak jumlah


kolom vektor data dengan susunan baris pertama angka satu semua kemudian
baris kedua adalah vektor data x.

--> X=[ones(x);x]

3. Bentuklah matriks koefisien A dan matriks hasil B, di mana A = XXT dan B =


XyT.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


29
Praktikum Teknik Komputasi Dasar (TEL 103P)

--> A=X*X'
--> B=X*y'
a 
4. Menghitung koefisien persamaan regresi a0 dan a1, di mana vektor a =  0 
 a1 
didapatkan sebagai penyelesaian dari A*a = B. Untuk mencari nilai a bisa
digunakan pembagian kiri.
--> a=A\B

5. Tentukan dua variabel plot xa dan ya di mana ditentukan x0 ≤ xa ≤ xN, N jumlah


data. Misalkan xa dibuat antara 35 sampai 90 dengan selang 0,1. Sedangkan ya
merupakan hasil perhitungan persamaan regresi yang telah ditemukan koefisien
regresinya. Yaitu ya = a0 + a1xa yang bisa dihitung sebagai operasi matriks
menjadi :
 1 1 1 ... 1 
ya = a 0 a1  
 x1 x 2 x3 ... x N 

Perintahnya :
--> xa=35:0.1:90
--> ya=a'*[ones(xa);xa]

6. Kemudian plot grafik dari pasangan data (x,y) sebagai titik-titik data dan (xa,ya)
sebagai kurva.

--> plot(x,y,'o',xa,ya,'-r')

Tanda ‘o’ menentukan pasangan data (x,y) diplot sebagai titik-titik data,
sedangkan tanda ‘-‘ sebagai kurva garis atau lengkung sesuai dengan pasangan
data (xa,ya) yang ditandai garis merah.

Hasil akhir perhitungan, didapatkan koefisien regresi a0 dan a1, sehingga


terbentuklah persamaan regresi y = a0 + a1x, beserta kurva regresinya.

Hasil keluaran perhitungan:

X =

1. 1. 1. 1. 1. 1.
36.9 46.7 63.7 77.8 84. 87.5

A =

6. 396.6
396.6 28365.28

B =

1458.
101176.3

a =

95.35242
2.2337002

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


30
Praktikum Teknik Komputasi Dasar (TEL 103P)

Dari nilai a dibentuklah persamaan regresi y = 95,35242 + 2,2337002x. Kurva yang


dihasilkan adalah :

B. Regresi Polinomial

Dengan data yang sudah ada sebelumnya, akan dihitung persamaan regresi
polinomialnya. Langkah-langkah perhitungannya hampir sama persis dengan
regresi linear, namun ada yang harus disesuaikan yaitu matriks X dan vektor ya
hasil perhitungan regresinya dari data xa.

1. Langkah pertama menentukan data x dan y.


2. Matriks X sekarang dibuat terdiri dari tiga baris dan jumlah kolom sama dengan
jumlah data, baris pertama yaitu vektor satuan, baris kedua adalah data x,
kemudian baris ketiga adalah kuadrat dari nilai data x.

--> X=[ones(x);x;x.^2]

Untuk mencari vector kuadrat dari nilai data x adalah x.^2, sebelum tanda
pangkat diawali dengan titik (.).

3. Langkah ketiga sama seperti pada perhitungan regresi linear. Untuk langkah
keemapat, mencari a dapat digunakan perintah:
--> a=inv(A)*B

4. Langkah kelima, nilai xa bisa dibuat sama tapi untuk nilai ya :

--> ya=a'*[ones(xa);xa;xa.^2]

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


31
Praktikum Teknik Komputasi Dasar (TEL 103P)

5. Untuk plot grafiknya sama seperti sebelumnya.

--> plot(x,y,'og',xa,ya,'-b')

Didapatkan perhitungan sebagai berikut:

X =

1. 1. 1. 1. 1. 1.
36.9 46.7 63.7 77.8 84. 87.5
1361.61 2180.89 4057.69 6052.84 7056. 7656.25

A =

6. 396.6 28365.28
396.6 28365.28 2144102.7
28365.28 2144102.7 1.681E+08

B =

1458.
101176.3
7496383.7

a =

121.69088
1.3042131
0.0074247

Sehingga persamaan regresinya adalah y = 121,69088 + 1,3042131x + 0,0074247x2.


Kurva yang dihasilkan yaitu :

Bandingkan dengan kurva regresi linear. Tampak tidak jauh berbeda, dapat dilihat dari
koefisien x2 memiliki nilai yang cukup kecil sehingga dapat diabaikan. Namun
lengkungan yang dihasilkan masih dapat diamati.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


32
Praktikum Teknik Komputasi Dasar (TEL 103P)

TUGAS DAN LATIHAN

Carilah Model Persamaan Regresi Linear dan Polinomial dari pasangan data berikut
x 1.2 2.8 4.3 5.4 6.8 7.9
y 2.1 11.5 28.1 41.9 72.3 91.4
Dengan disertai parameter-parameter pembentuknya (A, B dan a) yang menggunakan:
a. Perhitungan Scilab.
b. Perhitungan matematis manual.

Untuk mencari model gambar yang paling bagus gunakan range (selang) plot yang
paling sesuai.

-----oooOOOooo-----

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


33
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT V
DASAR PEMROGRAMAN SCILAB

Tujuan Praktikum
3. Mampu membuat program sederhana dengan Scilab untuk melakukan
perhitungan tertentu dengan nilai-nilai masukan yang berbeda-beda.
4. Bisa mempergunakan fasilitas SciPad untuk membuat program Scilab.
5. Memahami kegunaan fungsi dan peranannya dalam pemrograman, terutama
dalam penentuan parameter dan hasil keluaran fungsi sebagai hasil perhitungan.

Landasan Teori

Adalah bagian terpenting dan banyak peranannya dalam penguasaan Scilab itu sendiri,
yaitu tentang pemrograman. Untuk penguasaan tentang pemrograman Scilab kita perlu
memahami perintah-perintah yang akan digunakan dalam program, dan menyusun
perintah-perintah tersebut sedemikian rupa sesuai dengan algoritma perhitungannya.

A. Membuat Program Sederhana

Kadangkala setiap melakukan perhitungan dalam Scilab, dituliskan perintah-


perintah yang berulang-ulang atau perintah-perintah tertentu yang memiliki fungsi
perhitungan yang sama namun parameter nilai atau matriksnya berbeda. Begitu pula
jika perintah-perintah yang harus dituliskan cukup banyak, akan menyulitkan untuk
dituliskan semuanya setiap kali akan melakukan perhitungan yang sama pada nilai-
nilai masukan yang berbeda.

Untuk itu, perintah-perintah tersebut dapat disusun sebagai program. Dan tinggal
menentukan parameter atau variabel masukannya saja, kemudian memanggil
program bersangkutan, akan didapatkan hasilnya.

Misalnya untuk menghitung koefisien regresi linear, perintah-perintahnya yaitu :

X=[ones(x);x]
A=X*X'
B=X*y'
a=A\B

Maka dibuatlah program yang berisi perintah-perintah di atas, lalu disimpan dalam
file berekstensi *.sci, misal regresi.sci.

Setelah itu di Scilab bisa dijalankan, misalnya seperti berikut :

--> x=[1 3 4 6 8 12];


--> y=[12 15 20 23 25 30];
--> exec regresi.sci

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


34
Praktikum Teknik Komputasi Dasar (TEL 103P)

Maka akan didapatkan matriks koefisien regresi a yang menyusun persamaan


regresi linear dari data yang diberikan.

Untuk melihat direktori aktif Scilab digunakan perintah :

--> pwd
ans =
/home/novice/scilab_work

Jadi, ketika mengetikkan perintah exec regresi.sci maka Scilab akan mengeksekusi
file /home/novice/scilab_work/regresi.sci. Jika anda menyimpan file tersebut di
tempat yang berbeda, maka nama direktori lengkap harus ditulis. Misal, disimpan
di /home/novice/praktikum_tkd maka perintahnya adalah :

--> exec ~/praktikum_tkd/regresi.sci


atau
--> exec /home/novice/praktikum_tkd/regresi.sci

Untuk mempermudah, anda dapat mengganti direktori aktif sehingga tidak perlu
lagi menulis ulang nama direktori tempat menyimpan file. Gunakan perintah
chdir(‘path’). Contoh :

--> chdir(‘~/praktikum_tkd’);
--> exec regresi.sci

B. Mengedit Program

Scilab telah menyediakan fasilitas editor sendiri untuk membuat program-program


perhitungan Scilab, baik yang sederhana maupun yang rumit. Cara pemanggilannya
sangat mudah, yaitu pada prompt Scilab ketikkan perintah :

--> scipad

Maka akan ditampilkan jendela editor program dengan fasilitas editor seperti editor
teks pada umumnya, seperti Notepad pada Windows. Perbedaannya, di dalam
SciPad disertakan fasilitas Debugging, yaitu untuk menelusuri kesalahan pada
perintah-perintah program yang mungkin terjadi.

Proses pengeditan program adalah semudah mengedit teks atau dokumen biasa.
Setelah program disimpan dengan memilih menu File → Save, dan tentukan nama
filenya.

Dalam SciPad ini, dapat dilakukan pengeditan lebih dari satu file program, karena
dia memiliki banyak jendela editor. Nama file program SciLab adalah berekstensi
*.sce atau *.sci, misalnya contoh.sce atau contoh.sci.

Untuk mengedit file program yang sudah ada misalnya contoh.sci, maka
perintahnya :

--> scipad contoh.sci

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


35
Praktikum Teknik Komputasi Dasar (TEL 103P)

Maka secara otomatis SciPad akan membaca kembali file ~/contoh.sci dan
membukanya di jendela SciPad baru untuk diedit, baik itu diubah, dihapus,
ditambahkan perintah-perintah tertentu dan sebagainya.

Apabila hendak menyimpan file program ke dalam file yang baru dengan nama
yang berbeda, pilih menu File → Save as kemudian tentukan nama file yang baru.

C. Mendefinisikan fungsi

Dengan menggunakan Scilab, kita bisa mendefinisikan fungsi sendiri yang


memberikan perhitungan tertentu sesuai dengan kebutuhan. Pada dasarnya, fungsi
ini adalah program yang apabila dijalankan membutuhkan parameter dari luar dan
bisa menghasilkan output dari hasil perhitungan serta dapat langsung disimpan
dalam variabel tertentu. Bentuk umum definisi fungsi dalam Scilab yaitu :

function [variabel] = nama_fungsi(parameter,...)


... <pernyataan>...
... <pernyataan>...
... <pernyataan>...
endfunction

Pernyataan adalah merupakan segala bentuk perintah dalam Scilab, baik pernyataan
bersyarat, perulangan, perhitungan-perhitungan, dan lainnya.

Misalkan kita akan buat program untuk mencari akar persamaan kuadrat sehingga
dibutuhkan parameter berupa koefisien persamaan kuadrat, dan keluarannya berupa
akar dari persamaan kuadrat tersebut. Maka definisinya adalah :

function [x1,x2]=akar_kuadrat(a,b,c)
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
endfunction

Langkah-langkah Percobaan
Sebelum memulai percobaan, buatlah sebuah folder pada direktori /home/user. Buka
console terminal, lalu ketikkan perintah :

$ mkdir ~/scilab_work/NIM_anda

Jalankan program Scilab. Pada jendela Scilex/Scilab yang telah terbuka, gantilah
direktori aktif ke folder yang baru saja dibuat. Mulailah pembuatan program dengan
menjalankan Scipad.

--> chdir(‘~/scilab_work/NIM_anda’);
--> scipad

1. Membuat Program Sederhana


Untuk percobaan ini, ketiklah program berikut menggunakan SciPad. Kemudian

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


36
Praktikum Teknik Komputasi Dasar (TEL 103P)

simpanlah dengan nama zlas.sci di dalam direktori yang telah anda buat
sebelumnya.

// Nama file : zlas.sci


// Program untuk membangkitkan matriks khusus dengan
// dimensi n
// Nilai n harus diinputkan lebih dahulu

s=[2 1;1 1];


for k=3:n,
v=s(1,:); w=s(:,1);
t=[k v;w s];
clear s; s=t;
end

Jalankan program tersebut dengan urutan perintah sebagai berikut :

--> n = 5;
--> exec zlas.sci;
--> s

Amati hasilnya yaitu matriks yang tersimpan dalam variabel s. Bagaimana jika n
diganti dengan harga lain, misalkan n = 7, n = 4, atau n = 9. Terangkan hasilnya. Apa
yang dapat anda pelajari dari program di atas.

2. Program Mencari Akar


Buka kembali console terminal anda, buat sebuah folder baru di dalam direktori
sebelumnya.

$ mkdir ~/scilab_work/NIM_anda/percobaan_5b

Kemudian, buatlah kedua program berikut dengan menggunakan Scipad, dan


simpanlah sesuai dengan nama masing-masing yaitu berturut-turut zfungsi.sci dan
znewton.sci di folder yang baru saja dibuat.

a. Program pertama

// Nama file : zfungsi.sci


// Program untuk menghitung f(x) dan f’(x), dengan x diketahui
// digunakan sebagai bagian dari algoritma Newton untuk
// menetapkan f(x);
// f(x) dan f’(x) harus didefinisikan secara eksplisit dalam
// file ini.

function [f,ff] = zfungsi(x)


f=x^5-2*x^4+3*x^3-4*x^2+5*x-6
ff=5*x^4-8*x^3+9*x^2-8*x+5
endfunction

b. Program kedua

// Nama file : znewton.sci


// Algoritma Newton untuk menyelesaikan f(x)=0;
// nilai taksiran awal x harus diinputkan lebih dahulu
function [x] = znewton(x)
k=0

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


37
Praktikum Teknik Komputasi Dasar (TEL 103P)

[f,ff]=zfungsi(x)
while abs(f) > 0.0001
k=k+1
y=f/ff
x=x-y
[f,ff]=zfungsi(x)
end

Jalankan program ini dengan urutan perintah sebagai berikut :

--> getd(‘percobaan_5b’);
--> x=0;
--> znewton(x)

Amati hasilnya yaitu berupa akar dari persamaan yang dinyatakan dalam
zfungsi.sci. Bagaimana jika x diganti dengan nilai lain, misalnya x = 5 atau x = -3,
apakah nilai x hasil perhitungan akan berubah atau tetap sama? Terangkan hasilnya.

3. Program Invers Matriks

Buatlah program untuk menghitung matriks sebagai berikut dan simpan filenya
dengan nama smw.sci pada folder ~/scilab_work/NIM_anda.

function [a]=smw(a)
// mencari invers matriks dengan sherman-morrison-woodbury
// matriks a harus diinputkan lebih dahulu
[m,n]=size(a)
c=a-eye(n,n)
a=eye(n,n)
for k=1:n,
z=1+a(k,:) * c(:,k)
a=a-a*c(:,k)*a(k,:) / z
end
endfunction

Definisikan matriks bujursangkar A sembarang (bebas), kemudian inverskan


dengan perintah inv(A), dan fungsi smw(A).

--> inv(A)
--> getf smw.sci
--> smw(A)

Bandingkan hasilnya, apakah sama? Jelaskan algoritma perhitungannya.

TUGAS :
1. Jelaskan kegunaan sekaligus perbedaan dari fungsi exec(), getf() dan getd()?
2. Buat flowchart dari masing-masing program di atas!

-----oooOOOooo-----

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


38
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT VI
ALGORITMA PEMROGRAMAN

Tujuan Praktikum
1. Memahami tentang algoritma pemrograman dan mampu menerapkannya dalam
pemrograman Scilab.
2. Mampu menerjemahkan algoritma proses komputasi tertentu menjadi program
dalam Scilab.

Landasan Teori

Scilab menyediakan fasilitas pemrograman yang dibangun dengan sintak-sintak yang


dimilikinya. Seperti dalam pemrograman lainnya, dalam Scilab pun eksekusi program
diatur dalam alur-alur dasar. Alur dasar tersebut antara lain urutan, percabangan dan
perulangan. Keunggulan pemrograman Scilab dari pemrograman dengan High Level
Language tentu saja adalah dukungan Scilab terhadap komputasi dan operasi matriks
yang sangat lengkap.

A. Alur Sekuensial

Merupakan bentuk alur paling dasar dalam pemrograman. Eksekusi perintah dijalankan
satu persatu urut dari atas ke bawah.

contoh :
a=[2 3 4;7 8 9];
b=[1;3;2];
x=a*b

Eksekusi program dijalankan urut satu-persatu dari atas ke bawah. Sehingga mula-mula
program membentuk matrik a yang berordo 2x3 dan kemudian membentuk matrix b
yang berordo 3x1. Kemudian program menghitung matrix x dari hasil perkalian matrik
19 
a dikali matrik b. Hasilnya adalah matrix x =  
49

B. Percabangan

Percabangan merupakan alur program yang berdasarkan syarat atau kondisi. Jalannya
program akan ditentukan oleh kondisi yang ditemui.

1. Pernyataan Bersyarat ( if… then… else…)

Mengandung pernyataan yang dilakukan hanya bila syarat yang ditentukan


terpenuhi. Bentuk umum pernyataan ini adalah :

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


39
Praktikum Teknik Komputasi Dasar (TEL 103P)

if <syarat> then
... <pernyataan benar> ...
[elseif <syarat> then
... <pernyataan benar selanjutnya> ... ]
[else
... <pernyataan salah> ... ]
end

contoh :

if a==5 then
x=x*a;
y=y-a;
b=[x y;x^2 y^2];
elseif a>5 then
b=[x x^2;y^2 x*y];
else
b=[x y];
end

Dalam penyusunan syarat untuk pernyataan bersyarat dibutuhkan operator


relasional. Operator relasional yang digunakan dalam scilab ini sama dengan
operator relasional yang digunakan oleh bahasa pemrograman lainnya yaitu :

== sama dengan <= kurang dari sama dengan


< kurang dari >= lebih dari sama dengan
> lebih dari ~= tidak sama dengan

Syarat yang dibentuk dari operator relasional di atas dapat pula digabung dengan
operator and (&) atau or (|).

2. Pernyataan Kondisional

Setiap pernyataan memiliki kondisi khusus dan akan dikerjakan apabila kondisi
tersebut ditemui.
Bentuk umum pernyataan ini:

select <kondisi>,
case <kondisi1> then <pernyataan1>
case <kondisi2> then <pernyataan2>
else <pernyataan default>
end

contoh penggunaannya :

select x,
case 1 then y=x+5;
case -1 then y=sqrt(x);
else y=a;
end

Pernyataan select sebenarnya mirip dengan pernyataan swicth…case… pada


beberapa bahasa pemrograman tingkat tinggi seperti C dan Java.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


40
Praktikum Teknik Komputasi Dasar (TEL 103P)

C. Perulangan / Iterasi

Perulangan sebagaimana namanya merupakan blok pernyataan yang dieksekusi secara


terus-menerus dan baru berhenti setelah mencapai kondisi yang telah ditentukan. Dalam
Scilab ada dua jenis perulangan yaitu for dan while. Perbadaannya adalah, dalam
perulangan for kita dapat menentukan berapa kali jumlah perulangan tersebut akan
dilakukan sehingga eksekusi blok perulangan akan berhenti setelah n kali yang telah
kita tentukan. Sedangkan while akan terus mengulang blok pernyataan sampai
menemui kondisi berhenti.

Contoh perulangan for :

x=1;
for k=1:4,
x=x*k;
end

Blok perulangan for di atas hanya memiliki satu pernyataan yang mengalikan x dengan
k lalu menyimpan hasilnya di x. Baris k=1:4 artinya perulangan akan dimulai dengan
nilai k mula-mula satu untuk eksekusi blok pertama kali. Selanjutnya nilai k bertambah
1 untuk setiap perulangan. Perulangan terakhir terjadi ketika k bernilai 4. Sehingga blok
di atas akan diulang sebanyak empat kali. Blok perulangan for diakhiri dengan end.

Contoh perulangan while :

x=1;
while x<14,
x=2*x;
end

Senada dengan perulangan for sebelumnya, blok while di sini juga hanya terdiri atas
satu pernyataan yaitu x = 2*x. Syarat yang digunakan untuk perulangan adalah x < 14.
Selama syarat tersebut terpenuhi perulangan akan terus dilaksanakan. Dalam
perulangan while, syarat juga disusun dengan operator relasional.

Langkah-langkah Percobaan
Dengan menggunakan editor dari Scilab ataupun text editor lainnya, ketiklah program-
program di bawah ini. Simpan dengan ekstensi *.sci (misal: programku.sci) kemudian
jalankan pada prompt Scilex/Scilab.

Untuk memanggil program dari script *.sci yang telah kita buat, gunakan perintah
getf('/direktori/program/program.sci') atau getd(‘/direktori/program/’).

1. Program Faktorisasi Doolitle

Buat program di bawah dan simpan dalam file berekstensi *.sci.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


41
Praktikum Teknik Komputasi Dasar (TEL 103P)

a. Program pertama

// nama program : mylu1


// program faktorisasi LU tanpa penukaran baris

function [l,u]=mylu1(a)
n=size(a,1)
a(2:n,1)=a(2:n,1)/a(1,1)

for k=2:n-1,
v=a(k,1:k-1)
for j=k:n,
w=a(1:k-1,j)
a(k,j)=a(k,j)-v*w
end
w=a(1:k-1,k)
for j=k+1:n,
v=a(j,1:k-1)
a(j,k)=(a(j,k)-v*w)/a(k,k)
end
end
a(n,n)=a(n,n)-a(n,1:n-1)*a(1:n-1,n)
l=tril(a,-1)+eye(n,n)
u=triu(a)
endfunction

b. Program kedua

// Nama program : mylu2


// Program faktorisasi Doolitle dengan penukaran baris
// sehingga l*u = p*a

function [l,u,p]=mylu2(a)
n=size(a,1)
r=1:n
[u,i]=max(abs(a(:,1)))

if i~=1,
x=a(1,:)
a(1,:)=a(i,:)
a(i,:)=x

s=r(1)
r(1)=r(i)
r(i)=s
end

a(2:n,1)=a(2:n,1)/a(1,1)
for k=2:n-1,
[u,i]=max(abs(a(k:n,k)))
j=i+k-1
if j~=k,
x=a(k,:); a(k,:)=a(j,:); a(j,:)=x;
s=r(k); r(k)=r(j); r(j)=s;
end
v=a(k,1:k-1)
for j=k:n,
w=a(1:k-1,j)
a(k,j)=a(k,j)-v*w
end
w=a(1:k-1,k)
for j=k+1:n,

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


42
Praktikum Teknik Komputasi Dasar (TEL 103P)

v=a(j,1:k-1)
a(j,k)=(a(j,k)-v*w)/a(k,k)
end
end
a(n,n)=a(n,n)-a(n,1:n-1)*a(1:n-1,n)
l=tril(a,-1)+eye(n,n)
u=triu(a)
p=zeros(n,n)

for i=1:n,
p(i,r(i))=1
end
endfunction

Sekarang buat sembarang matriks bujursangkar A, kemudian faktorisasikan


dengan perintah [l,u,p]=lu(A), [l,u]=mylu1(A), dan [l,u,p]=mylu2(A). Amati
hasil ketiganya kemudian terangkan apa yang terpenting dalam faktorisasi LU
dalam hubungannya dengan perkalian l*u dan l*u*p.

2. Pemrograman Berdasarkan Algoritma

Untuk percobaan yang kedua ini kita akan membuat sebuah program dengan
terlebih dahulu menyusun algoritmanya terlebih dahulu.

Algoritma Gauss
Algoritma untuk menyelesaikan persamaan perkalian matrik Ax=B.
Input : Matrix A dan B
Output : Solusi x atau pesan error bila ternyata A merupakan matriks singular.

Menyusun algoritma:
Mendefinisikan sebuah matriks A sebagai matriks gandeng dua matriks masukan
dan n adalah jumlah baris matriks A

Untuk k=1 sampai n-1, kerjakan :


1. Tentukan j terkecil sehingga j ≥ k dan ajk ≠ 0.
2. Jika j demikian tidak ada, munculkan pesan error “Matriks singular, Solusi
tidak ada” dan stop.
3. Jika j ada, tukarkan baris j dengan baris k dari matriks A.
4. Untuk j=k+1 sampai n, kerjakan :
a. m = ajk/akk
b. Untuk p=k+1 sampai n+1, kerjakan :
1) ajp=ajp-m*akp
2) Selesai
c. Selesai
5. Jika ann=0, maka munculkan pesan kesalahan “Penyelesaian tunggal tidak ada”
dan Stop.
6. Jika ann ≠ 0, xn=an,n+1/ann.
7. Untuk i = n-1 sampai i = 1, kerjakan :
 n 
xi = 1 / aii *  ai ,n +1 −  aij x j 
 j =i +1 

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


43
Praktikum Teknik Komputasi Dasar (TEL 103P)

8. Selesai

Keluaran x=[xij]

Membuat program
Program berikut disusun berdasarkan alur di atas.

function [x]=gauss(a,b)
A=[a b]
n=size(A,1)
for k=1:n-1,
j=k
while j<n & A(j,k)==0,
j=j+1
end,
if A(j,k)==0 then
error('tidak ada penyelesaian tunggal')
else
T=A(j,:); A(j,:)=A(k,:); A(k,:)=T
end,
for j=k+1:n,
m=A(j,k)/A(k,k)
for p=k+1:n+1,
A(j,p)=A(j,p)-m*A(k,p)
end,
end,
end

if A(n,n)==0 then
error('tidak ada penyelesaian tunggal')
else x(n)=A(n,n+1)/A(n,n)
end

for i=n-1:-1:1,
s=0
for j=i+1:n,
s=s+A(i,j)*x(j)
end,
x(i)=1/A(i,i)*(A(i,n+1)-s)
end

endfunction

Ketik program di atas lalu simpan. Jalankan fungsi gauss dengan terlebih dahulu
membuat matriks A dan B dari persamaan Ax = B sembarang. Hitung nilai x secara
manual lalu bandingkan dengan hasil perhitungan program.

Tugas : buat flowchart yang tepat dan jelas dari ketiga program di atas.

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


44
Praktikum Teknik Komputasi Dasar (TEL 103P)

UNIT VII - TUGAS AKHIR


PEMROGRAMAN PERSAMAAN LINEAR

Tujuan Praktikum
1. Mampu menerapkan pemrograman Scilab pada perhitungan untuk menyelesaikan
persamaan linear simultan.
2. Memahami cara perhitungan persamaan linear dengan kedua metode yaitu metode
doolittle dan crout, dan dapat mengujinya dengan contoh persamaan linear
simultan.

Landasan Teori

Pada penyelesaian perhitungan persamaan linear simultan, terdapat bermacam-macam


cara. Metode yang paling sederhana dan paling mudah yaitu cara eliminasi dan
substitusi. Namun dengan cara itu menjadi lebih sulit jika diterapkan untuk persamaan
linear simultan dengan lebih dari tiga variabel. Terdapat metode lain yang lebih mudah
diterapkan dalam perhitungan, yaitu faktorisasi LU. Untuk metode ini kita akan coba
dua macam saja, yaitu metode doolittle dan metode crout.

A. Metode Doolittle

Penyelesaian persamaan linear menggunakan faktorisasi LU dengan metode ini adalah


memfaktorkan matriks koefisien A menjadi dua matriks segitiga bawah L dan segitiga
atas U, dengan ketentuan yaitu diagonal matriks segitiga bawah L memiliki diagonal
bernilai satu semuanya.

A = LU

Misalnya untuk matriks A berordo 3x3, maka :

 a11 a12 a13   1 0 0 u11 u12 u13 


a a 22 a 23  = l 21 1 0  0 u 22 u 23 
 21
 a31 a32 a33   l31 l32 1  0 0 u 33 

Dengan substitusi didapatkan nilai elemen-elemen matriks L dan U, yaitu :


a11 = u11 a12 = u12 a13 = u13
a21 = m21u11 a22 = m21u12 + u22 a23 = m21u13 + u23
a31 = m31u11 a32 = m31u12 + m32u22 a33 = m31u13 + m32u23 + u33

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


45
Praktikum Teknik Komputasi Dasar (TEL 103P)

Secara umum untuk matriks A yang berordo n akan difaktorkan menjadi matriks
segitiga bawah L = [mjk] dengan semua diagonal utamanya bernilai satu, dan matriks
segitiga atas U = [ujk]. Rumus-rumus untuk menghitung nilai-nilai mjk dan ujk yaitu :

u1k = a1k k = 1,…,n


j −1
u jk = a jk −  m js u sk k = j,…,n; j ≥ 2
s =1

a j1
m j1 = j = 2,…,n
u11
1  k −1

m jk =
u kk 

a jk − 
s =1
m js u sk 

j = k+1,…,n; k ≥ 2

Persamaan linear secara simultan dimodelkan bentuk matriksnya sebagai Ax = B.


Setelah matriks koefisien A difaktorkan menjadi LU, maka model tersebut berubah
menjadi LUx = B. Urut-urutannya setelah faktorisasi yaitu :
1. Mencari vektor y sebagai penyelesaian Ly = B.
2. Mencari penyelesaian akhir x dari Ux = y.

B. Metode Crout

Untuk metode ini tetap hampir sama seperti metode doolittle, namun perbedaannya
yaitu kalau doolittle diagonal matriks segitiga bawah L yang bernilai satu semuanya,
sedangkan untuk metode crout yang bernilai satu semua adalah diagonal matriks
segitiga atas U.

Jika diberikan matriks A berordo 3x3, maka :

 a11 a12 a13   l11 0 0  1 u12 u13 


a a 22 a 23  = l 21 l 22 0  0 1 u 23 
 21
 a31 a32 a33   l31 l32 l33  0 0 1 

Sehingga, rumus-rumus perhitungannya secara umum pada metode crout ini adalah :
m j1 = a j1 j = 1,…,n
k −1
m jk = a jk −  m js u sk j = k,…,n; k ≥ 2
s =1

a1k
u1k = k = 2,…,n
m11
1  j −1

u jk =  jk  m js u sk 
a − k = j+1,…,n; j ≥ 2
u jj  s =1 

Untuk selajutnya sama seperti metode doolittle.

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


46
Praktikum Teknik Komputasi Dasar (TEL 103P)

Langkah-langkah Percobaan

Untuk percobaan kali ini, terjemahkan algoritma metode doolittle dan crout di atas
menjadi program Scilab. Langkah-langkah perhitungan keduanya sama, yaitu sebagai
berikut.
1. Persiapkan matriks A dan vektor B dari persamaan linear yang akan dihitung.
2. Mulai menghitung matriks L dan U untuk metode bersangkutan sesuai rumus yang
diberikan pada landasan teori.
3. Hitung vektor y sebagai penyelesaian dari Ly = B. Gunakan cara mudah yaitu
dengan pembagian kiri.
4. Hitung penyelesaian akhir x sebagai penyelesaian dari Ux = y.

Buatlah program di atas sebagai fungsi doolittle(A,B) dan crout(A,B) dan menghasilkan
keluaran berupa vektor x.

Ujilah kedua program tersebut untuk menghitung penyelesaian dari persamaan linear
simultan yang disajikan di bawah ini.

a. 3x – y + z = 12 b. 2x + 6y – z = 0 c. x + y – 3z = 9
10x + 3y – 2z = –23 x – 8y + 3z = 0 2x + 2y – 6z = 18
x+ y– z= 6 x + 6y – 10z = 0 x – 9y + 2z = 3

Bandingkan hasilnya dengan menggunakan pembagian kiri (\), dan tunjukkan bahwa
untuk persamaan (b) adalah trivial atau penyelesaian nol, dan persamaan (c) tidak
mempunyai penyelesaian layak.

---oOo---

Laboratorium Komputer dan Informatika – Teknik Elektro UGM


47

Anda mungkin juga menyukai