METODE NUMERIK
PRAKTIKUM I
Materi : Pengenalan MATLAB 6.1
Dasar Teori
Pada awalnya MatLab hanya dikenal sebagai Matrik Laboratory, tetapi sesuai dengan
perkembangannya MatLab adalah bahasa yang canggih untuk komputasi teknik. Di dalamnya
terdapat kemampuan penghitungan, visualisasi, dan pemograman dalam suatu lingkungan yang
mudah untuk digunakan karena permasalahan dan pemecahannya dinyatakan dalam notasi
matematika biasa. Kegunaan MatLab secara umum adalah sebagai berikut:
a) Matematika dan komputasi,
b) Perkembangan algoritma,
c) Pemodelan, simulasi, dan pembuatan prototype,
d) Analisa data, eksplorasi dan visualisasim
e) Pembuatan aplikasi, termasuk pembuatan antaramuka grafis.
Matlab bukan merupakan compiler tetapi mempunyai sifat compiler. Ada dua file yang dapat
dibuat :
1. .mat
2. .m
Semua perintah pada MATLAB ditulis dengan huruf kecil dan variabel pada MATLAB bersifat
case sensitive.
Page 1
Command Window
Merupakan window yang digunakan untuk mengeksekusi
Matlab
Toolbox
Prompt
command
window
Variabel2 yang
tersimpan di
1. >> help
Menunjukkan semua help topic di Matlab.
Modul Metode Numerik
Page 2
2. >>what general
Menunjukkan instruksi-instruksi yang tersedia di direktori general, salah satunya adalah
instruksi clear.
3. >>help general
Menunjukkan instruksi-instruksi yang tersedia di direktori general , dan fungsinya secara
umum.
4. >>help clear
Menunjukkan penjelasan detail untuk instruksi clear. (Fungsinya untuk apa, syntaxnya untuk
apa, fungsi lain yang terkait apa)
6. >> x=5;
>>y=6
Instruksi pertama diakhiri dengan ; artinya nilai x akan disimpan di memori.
Instruksi kedua tidak diakhiri dengan ; artinya nilai y akan disimpan di memori sekaligus
ditampilkan ke layer.
7. >>clc;
>>x
>>y
clc digunakan untuk membersihkan layar, tetapi nilai variable yang tersimpan dimemori tidak
akan hilang sehingga dapat ditampilkan kembali ke layer dengan memanggil nama
variabelnya.
8. >>clear;
>>x
>>y
clear digunakan untuk menghapus variable dari memori sehingga kita tidak dapat
menampilkan nilai variable ke layer. (muncul pesan ??? Undefined function or variable 'x'.)
9. >> x=4;
Modul Metode Numerik
Page 3
>> y=5;
>> z=x+y;
>> z
Merupakan contoh barisan instruksi untuk melakukan penjumlahan
10.
MENGINPUTKAN MATRIK.
1 2 3
Cara 2 :
>>a=[1 2 3 enter
5 5 6 enter
7 8 9];
Cara 3:
>>a1=[1 2 3];
>>a2=[4 5 6];
>>a3=[7 8 9];
>>a=[a1;a2;a3;];
>>a
Cara 4:
Dengan input.
>>a=input(Masukkan matrik= );
>>Masukkan matrik=[1 2 3;4 5 6;7 8 9]
>>disp(a)
Cobalah keempat cara diatas.
Modul Metode Numerik
Page 4
11. >>x=5;
>> y=[1 2 3;4 5 6;7 8 9];
>> x.*y
Akan muncul sbb:
ans =
5
10
15
20
25
30
35
40
45
13. >>x-y
Akan muncul sbb :
ans =
0
-1
14. >>x*y;
Akan muncul sbb:
ans =
Modul Metode Numerik
Page 5
Page 6
PRAKTIKUM II
Bekerja dengan M-File
Pengenalan Matrik
Teori
Editor M-File bisa dilihat dari menu File New M-File
Menjalankan program dari menu Debug Run, dan outputnya akan muncul di Command
Window.
Beberapa hal yang harus diperhatikan pada saat menyimpan m-file :
a. Nama file tidak boleh ada spasinya
b. Nama file tidak boleh merupakan reserved word (instruksi)
c. Nama file tidak boleh diawali dengan angka.
Pada Matlab tidak dikenal adanya deklarasi variable.
Komentar ditandai dengan karakter %
Instruksi untuk input data dari keyboard :
Sintaksnya :
nama_var =input('Teks yang muncul dilayar '); %data numerik
nama_var =input('Teks yang muncul dilayar ',s); %data
string
Instruksi untuk menampilkan output di layer :
Sintaksnya :
disp('Teks output');
disp(nama_var);
fprintf('Teks output ');
fprintf('Teks = ',nama_var);
Variabel yang akan ditampilkan dilayar, jika menggunakan instruksi fprintf harus diformat
terlebih dahulu, seperti halnya pada C.
Penggunaan \n dapat ditambahkan seperti halnya pada C.
Langkah Kerja :
1. Cobalah contoh berikut:
% Contoh 1
% menjumlahkan dua angka
clc;clear;
a1=input('Masukkan angka pertama: ');
Page 7
: ');
a3=a1+a2;
disp('Hasilnya');
disp(a3);
Untuk program diatas inputkan matrik-matrik berikut:
2 3 6
3 6 9
a. a1=
dan a2 =
4 1 4
1 2 5
Bagaimana outputnya?
4 7 1
b. a1 =
dan a2 =
9 2 5
1 4 3
4 0 6
1 8 3
Bagaimana outputnya ?
Agar kasus tersebut bisa kita handle maka ubah program diatas menjadi seperti berikut:
% Contoh 3
% menjumlahkan dua matrik
clc;clear;
a1=input('Masukkan matrik pertama: ');
a2=input('Masukkan matrik kedua
: ');
[b1,k1]=size(a1);
[b2,k2]=size(a2);
if (b1==b2)&(k1==k2)
Modul Metode Numerik
Page 8
a3=a1+a2;
disp('Hasilnya');
disp(a3);
else
disp('Matrik tidak dapat dijumlahkan');
end
3. Mencari determinan
% Contoh 4
% mencari determinan matrik
clc;clear;
a=input('Matrik a = ');
a1=det(a);
disp('Determinan a = ');
disp(a1);
a. a= 7
6
8 9 Bagaimana outputnya?
11 12
5
1 3 5
b. a =
Bagaimana outputnya?
7 9 11
Agar kasus point b dapat kita tangani maka cobalah contoh berikut :
% Contoh 5
% mencari determinan matrik
clc;clear;
a=input('Matrik a = ');
[b,k]=size(a);
if (b==k) a1=det(a);
disp('Determinan a = ');
Modul Metode Numerik
Page 9
disp(a1);
else
disp('Tidak dapat dicari determinannya');
disp('karena bukan matrik bujur sangkar');
end
4. Pembuktian determinan = 0
a. Minimal dua baris/ kolom nilainya sama.
%mencari determinan matrik, baris 1 = baris 2
clc;clear;
a=input('Matrik a = ');
a1=det(a);
clc;
disp('Matrik a =');
disp(a);
fprintf('Determinan matrik a = %3.0f \n',a1);
[br,k]=size(a);
b=a;
for i=1:br
b(1,i)=a(2,i);
end
disp('Matrik a dengan baris pertama = baris kedua');
disp(b);
b1=det(b);
fprintf('Determinan matrik a dengan baris pertama 0 = %3.0f',b1);
Page 10
disp('Matrik a =');
disp(a);
fprintf('Determinan matrik a = %3.0f \n',a1);
[br,k]=size(a);
b=a;
for i=1:br
b(1,i)=0;
end
disp('Matrik a dengan baris pertama = 0');
disp(b);
b1=det(b);
fprintf('Determinan matrik a dengan baris pertama 0 = %3.0f',b1);
1. Buat program untuk membuktikan sifat bahwa determinan = 0 jika salah satu baris/kolom
merupakan kelipatan dari baris/kolom lainnya.
2. Buat program untuk membuktikan bahwa determinan akan berubah tanda jika dua
baris/kolom ditukar.
Page 11
PRAKTIKUM III
Materi : Penyelesaian Sistem Persamaan Linier dengan metode Crammer
Persamaan linear.
jika digambar merupakan garis lurus
Syarat :
Jumlah pers > = jml var.
Penyelesaian (mencari titik yang dilalui oleh semua persamaan) :
1. tepat satu penyelesaian.
2. banyak penyelesaian
3. tdk ada penyelesaian
Cara menyelesaikan :
1. substitusi.
2. eliminasi
3. determinan (cramer)
Aj
, j 1,2,..., n
Page 12
Untuk mencoba contoh-contoh program yang ada dapat digunakan soal berikut:
3x + 5y = 21
x+ y=5
3x + 2y + z = 0
2x + y + 3z = 2
x + 3y + 2z = 4
x +y + 2z = 9
2x + 4y 3z = 1
3x + 6y 5z = 0
x1+x2+3x4=4
2x1+x2-x3+x4=1
3x1-x2-x3+2x4=-3
-x1+2x2+3x3-x4=4
Langkah Kerja :
a. Cobalah program berikut:
Contoh program 1:
%penyelesaian spl dengan metode left division & input matrik
%langsung
clc;
clear;
a=input('Matrik a = ');
b=input('Matrik b = ');
clc;
disp('Matrik a =');
disp(a);
disp('Matrik b =');
disp(b);
x=a\b;
disp('Penyelesaiannya =');
disp(x);
Program diatas digunakan untuk mencari penyelesaian persamaan linear dengan operator
left division. Tetapi jika matrik yang diinputkan untuk program diatas tidak sesuai
dengan aturan, program belum bisa mengatasinya.
Tambahkan instruksi untuk pengecekan matrik a dan b.
Tambahkan pula pengecekan bahwa SPL hanya mempunyai penyelesaian jika
determinan 0
b. Cobalah program berikut:
Contoh program 2:
%Metode left division dengan input matrik tdk langsung
Page 13
Pada program diatas kesalahan penginputan matrik tidak akan terjadi karena sudah
dibatasi dengan jumlah variable yang tidak diketahui..
Tambahkan pengecekan bahwa spl hanya mempunyai penyelesaian jika determinan 0
c. Buat program untuk penyelesaian persamaan linear dengan Metode Cramer (determinan).
Algoritma:
1. Inputkan jumlah variabelnya, misal kita sebut n.
2. Inputkan matrik yang menunjukkan koefisien variabelnya, misal kita sebut matrik A
(harus sesuai dengan jumlah variabelnya, sehingga matrik yang diinputkan nxn)
3. Inputkan matrik yang menunjukkan konstantanya, misal kita sebut matrik C (harus
sesuai dengan jumlah variabelnya, sehingga matriknya nx1)
Ket: no 1 s.d 3 lihat program contoh 2.
4.
5.
6.
Cari determinan A, untuk mengecek apakah SPL ada penyelesaian atau tidak.
Ganti kolom pertama matrik A dengan C. Cari Determinannya. Cari penyelesaian
yang pertama.
Ganti kolom kedua matrik A dengan C. Cari Determinannya. Cari penyelesaian yang
kedua.
TUGAS
Modifikasi program terakhir pada langkah c untuk menampilkan semua penyelesaian dari sistem
persamaan linear.
Page 14
PRAKTIKUM IV
Materi : Penyelesaian Sistem Persamaan Linier dengan eliminasi gauss.
ELIMINASI GAUSS
Cth :
4x + 3y + z = 0
2x + 2y + 3z = 3
x + 2y + 3z = 4
4 3 1
Matrik A = 2 2 3 dan matrik B =
1 2 3
0
3
4
2 3 4
Matrik baru ini selanjutnya kita ubah menjadi matrik segitiga atas/bawah (untuk komponen
matrik A), dengan menggunakan operasi baris elementer terhadap matrik baru tersebut.
Operasi elementer baris :
Menambah/mengurangi suatu baris dengan k kali baris lainnya.
Mengalikan/membagi suatu baris dengan k;
Matrik baru menjadi :
e11 e12 e13 e14
E = 0 e22 e23 e24
0
0 e33 e34
Agar nilai elemen matrik yang sudah nol tidak terpengaruh kembali maka urutan untuk
melakukan operasi baris elementer adalah:
e11 e12 e13 e14 e15 e16
Page 15
Keterangan :
s.d n-1,
TUGAS
Cobalah program diatas untuk menyelesaikan sistem persamaan berikut :
6 x1 12
3 9
4 12 12 x2 = 12
1 1 1 x3
1
1. Bagaimana outputnya? Mengapa hal itu terjadi. Tuliskan
menggambarkan eksekusi program untuk setiap perulangan.
alasannya
dengan
Page 16
PRAKTIKUM V
Materi : Penyelesaian Sistem Persamaan Linier dengan eliminasi gauss-jordan
ELIMINASI GAUSS
Cth :
3x + 2y + z = 0
2x + y + 3z = 2
x + 3y + 2z = 4
3 2 1
Matrik A = 2 1 3 dan matrik B =
3 2
0
2
4
3 2 4
Matrik baru ini selanjutnya kita ubah menjadi matrik segitiga atas/bawah (untuk komponen
matrik A), dengan menggunakan operasi baris elementer terhadap matrik baru tersebut.
Operasi elementer baris :
Menambah/mengurangi suatu baris dengan k kali baris lainnya.
Mengalikan/membagi suatu baris dengan k;
Matrik baru menjadi :
e11 e12 e13 e14
E = 0 e22 e23 e24
0
0 e33 e34
Agar nilai elemen matrik yang sudah nol tidak terpengaruh kembali maka urutan untuk
melakukan operasi baris elementer adalah:
e11 e12 e13 e14 e15 e16
Page 17
e11 IX VIII
e22 IX
IV
III VII e33
IX
II VI
I
V VIII
VI
II
VII
III
e16
e26
e36
e44 IV e46
X e55 e56
LANGKAH KERJA :
Membuat program untuk penyelesaian SPL dengan Eliminasi Gauss:
1. Buka kembali file program terakhir yang ada di praktikum 4
2. Tambahkan instruksi penukaran baris untuk proses pembuatan matrik segitiga atas.
3. Tambahkan instruksi untuk membuat matrik segitiga bawah, sehingga menjadi matrik
diagonal
4. Tambah instruksi untuk membuat matrik identitas.
Keterangan : langkah no 2 s.d 4 lihat algoritma yang sudah dibuat di kelas
5. Hasil yang harus ditampilkan ke layar : Matrik segitiga bawah, matrik diagonal dan
matrik identitasnya.
TUGAS
Tuliskan programnya seperti apa untuk menghasilkan langkah 5
Page 18
PRAKTIKUM VI
Materi : Penyelesaian Sistem Persamaan Linier dengan Faktorisasi LU
FAKTORISASI LU
Langkah-langkah:
1. Input matrik A dan b
2. Cari matrik L dan U sedemikian hingga A= LU, dengan L adalah matrik segitiga bawah
satuan dan matrik U adalah matrik segitiga atas.
3. Cari y sedemikian hingga Ly=b
4. Penyelesaian x di dapat dari Ux=y
menggunakan
Didefinisikan suatu matrik A dengan notasi (a i,j) dimana i adalah baris matrik A dan j adalah
kolom matrik A
Langkah ke-1:
untuk k=1,
u1,j = a1,j (untuk j = k, k+1, ....n)
lj,1 = aj,1/u1,1 (untuk j = k, k+1, ....n)
Langkah ke-2:
untuk k = 2,3, ....... (n-1),
k 1
u k , j a k , j l k ,i u i , j
i 1
k 1
i 1
Langkah ke-3:
untuk k=n,
n 1
u n ,n a n ,n l n,i u i ,n
i 1
ln,n = 1
Page 19
Membuat Fungsi
FUNGSI
Syntax :
Jika output fungsi lebih dari satu:
function [v_out1,v_out2,] = nama_fungsi (v_in1,v_in1,....)
instruksi
Jika output fungsi hanya satu:
function v_out = nama_fungsi (v_in1,v_in1,....)
instruksi
atau boleh juga menggunakan variabel ans yang disediakan oleh Matlab sbb:
function nama_fungsi (v_in1,v_in1,....)
instruksi
Khusus untuk fungsi:
nama file = nama fungsi
Pada Matlab, fungsi dapat dipanggil secara mandiri melalui command prompt.
Jika output fungsi lebih dari satu:
>>[v_out1,v_out2,] = nama_fungsi (v_in1,v_in1,....)
Jika output fungsi hanya satu:
>> v_out = nama_fungsi (v_in1,v_in1,....)
>> nama_fungsi (v_in1,v_in1,....)
Jika kita ingin memanggil fungsi di dalam program, caranya sama seperti jika kita menggunakan
fungsi built in di dalam matlab.
Langkah Kerja Praktikum:
1. Buka editor M-file dan tuliskan instruksi berikut:
function c=jumlah(a,b)
c=a+b;
2. Jalankan fungsi diatas dari command prompt dengan cara sbb:
>>jumlah(6,9)
>>z=jumlah(6,9)
3. Ganti file no 1 menjadi
function jumlah(a,b)
c=a+b
Modul Metode Numerik
Page 20
4. Jalankan kembali fungsi diatas dari command prompt dengan cara sbb:
>>jumlah(6,9)
>>z=jumlah(6,9)
5. Jalankan program berikut, dengan terlebih dahulu mengembalikan fungsi seperti pada no 1:
% menjumlahkan dua angka dg memanggil fungsi jumlah
clc;clear;
a1=input('Masukkan angka pertama: ');
a2=input('Masukkan angka pertama: ');
a3=jumlah(a1,a2);
fprintf('Hasilnya = %d\n',a3);
6. Buat fungsi untuk menyelesaikan SPL dengan eliminasi gauss jordan. Gunakan program
yang sudah ada.
7. Buat fungsi untuk mencari matrik L dan U dari suatu matrik bujursangkar. Gunakan program
yang sudah ada.
TUGAS
Page 30