Modul Praktikum Metode Numerik Esti
-
Upload
mika-kadju-rapalangi -
Category
Documents
-
view
208 -
download
15
Transcript of Modul Praktikum Metode Numerik Esti
Modul Praktikum Metode Numerik Pengenalan Matlab PENDAHULUAN Variabel Nama yang diberikan untuk mewakili suatu data, baik berupa masukan data atau merupakan hasil perhitungan aturan penulisan variabel: 1. harus diawali dengan huruf 2. tidak boleh mengandung spasi dan tanda baca (karakter khusus)
3. tidak boleh menggunakan key words 4. dibedakan antara huruf besar dan huruf kecil, misalnya: Nama, NAMA,
NamA, NaMa, dsb. merupakan variabel yang berbeda.
Input Data Terdapat dua cara untuk memasukkan data yaitu: a. inisialisasi data, dimana data diberikan secara langsung pada saat
pembuatan program
Bentuk umum:
variabel = ekspresi
b. menggunakan perintah input, dimana data diberikan pada saat program
di-running.
Bentuk umum:
variabel = input(‘text’) numerik dan string
atau
variabel = input(‘text’, ‘s’) string
pada layar akan tampil apa yang tertulis di antara tanda petik (text),
menanti masukan data yang diikuti dengan menekan enter melalui keyboard. Contoh berikut ini menampilkan program perhitungan sederhana dimana
langkah memasukkan data dilakukan dengan menggunakan kedua cara: tersebut. Kedua contoh tersebut dijalankan pada layar utama Matlab yang disebut command window.
Contoh : Perhitungan luas segitiga L = 0.5 x a x t dengan cara inisialisasi data
Contoh Perhitungan luas Segi Tiga A = 0.5 x a x t dengan cara input data.
>> topik='segi tiga'
topik =
segi tiga
>> alas = 5
alas =
5
>> tinggi=10
tinggi =
10
>> luas_segitiga = 0.5 * alas * tinggi
luas_segitiga =
25
>> topik = input('masukkan bangun geometri yang akan dicari
luasnya: ')
masukkan bangun geometri yang akan dicari luasnya: 'segi tiga'
topik =
segi tiga
>> alas = input(' masukkan alas segi tiga: ')
masukkan alas segi tiga: 5
alas =
5
>> tinggi = input('masukkan tinggi segi tiga : ')
masukkan tinggi segi tiga : 10
tinggi =
10
>> luas_segitiga = 0.5 * alas * tinggi
luas_segitiga =
25
Bila ingin menampilkan nilai dari suatu variable disp(A) dimana A
adalah variabel; hasil yang ditampilkan adalah nilai yang tersimpan
dalam variabel A tersebut.
Contoh :
Bila ingin menampilkan teks atau string4hasil yang ditampilkan adalah
apa yang tertulis di antara tanda petik.
Contoh :
Bila ingin menampilkan gabungan teks dan nilai dari suatu variabel,
gunakan tanda kurung siku dimana nilai numerik harus dikonversi ke
bentuk string terlebih dahulu dengan menggunakan fungsi num2str (number to string).
Contoh :
>> A = 30
A =
30
>> disp(A)
30
>> disp('angkatan 45')
angkatan 45
>> x = 45
x =
45
>> disp ([ 'Nilai sudut salah satu segitiga adalah =',num2str(x)
,'disebut segitiga siku-siku'])
Nilai sudut salah satu segitiga adalah = 45 disebut segitiga siku-
siku
Penggabungan Input Data
Beberapa data yang dimasukkan yang ditulis dalam beberapa baris program dapat digabungkan dengan memberikan tanda koma (,) atau
titik koma (;) sebagai pemisah, tanda ; membuat data menjadi
tersembunyi. Contoh : Input data x, y, dan z pada contoh di atas yang ditulis dalam 3
baris program dapat digabungkan menjadi 1 baris program dengan salah
satu cara berikut:
Pemberian Komentar
Pemberian komentar diawali dengan tanda persen ‘%’ merupakan
pernyataan atau komentar atau keterangan atau catatan.
Tujuannya adalah untuk memberi keterangan agar lebih mudah memahami maksud suatu bagian program.
Sejauh ini, semua pekerjaan dilakukan melalui sebuah layar yang disebut command window dimana perintah dapat dieksekusi secara
langsung satu per satu. Ada pula layar lain yang dapat menyimpan
semua perintah yang dibuat untuk kemudian dieksekusi secara keseluruhan. Layar tersebut adalah layar M-File.
>> x = 1, y = 2, z = 3
x =
1
y =
2
z =
3
>> x = 1; y = 2; z = 3
z =
3
>> x = 1; y = 2; z = 3;
>>
Contoh :
Perhitungan Luas persegi panjang : L = p x l, L = Luas persegi panjang, l = lebar , p = panjang
Fungsi di atas diketik dalam layer m.file, harus disimpan sesuai nama
fungsinya yaitu “luassegitigasiku” dalam direktori.
Bila akan menjalankan fungsi tersebut m.file buka nama fungsi
“luassegitigasiku” kemudian klik menu debug > run, kemudian dalam command windows kita masukkan nilai alas dan tingginya. Misalnya
palas a = 10 dan tinggi t = 20, maka penulisan & hasil dalam command
windows adalah :
VEKTOR DAN MATRIKS VEKTOR MATRIKS
Vektor dan matriks merupakan konsep dasar perhitungan dalam Matlab. Berbagai perhitungan dapat diselesaikan dengan lebih mudah,
ringkas, dan cepat bila bentuknya dikonversi ke dalam bentuk
vektor/matriks. Untuk itu, harus dipahami benar dasar operasi dengan
menggunakan vektor/matriks.
1. Skalar
Di dalam Matlab, skalar adalah sebuah data dengan satu baris dan satu
kolom. Variabel-variabel yang memuat data skalar tersebut dapat
mengalami operasi penjumlahan, pengurangan, perkalian, dan pembagian.
2. Vektor Di dalam Matlab, vektor adalah sekumpulan data yang
membentuk hanya satu baris atau satu kolom.
% menghitung luas segi tiga siku-siku
% masukkan a = alas dan t = tinggi
% Luas = L = 0.5 * a * t
function L=luassegitigasiku(a,t);
L=0.5*a*t;
>> luassegitigasiku(10,20)
ans =
100
Penulisan elemen dilakukan di dalam kurung siku [ ] yang diantarai
dengan spasi atau titik koma. Pengecualian berlaku hanya untuk penulisan data yang berbentuk deret dengan pola tertentu.
Vektor dapat mengalami operasi dengan skalar atau dengan vektor lain
asalkan mempunyai dimensi yang sama.
Contoh : Vektor dan Operasinya
(i) Bentuk deret sederhana Bentuk umum penulisan data dengan pola tertentu atau deret yang
sederhana:
variabel = n : m dimana n = nilai awal, m = nilai akhir
(ii) Penggunaan increment
Bentuk umum penulisan data dengan pola tertentu atau deret:
variabel = n : i : m dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah; bila I tidak didefinisikan, maka Matlab akan
menggunakan default-nya yaitu 1.
>> a = 1:5
a =
1 2 3 4 5
>> a = [1:5]
a =
1 2 3 4 5
>> a = [1 2 3 4 5]
a =
1 2 3 4 5
>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10
>> 1:2:10
ans =
1 3 5 7 9
>> 0:2:10
ans =
0 2 4 6 8 10
Vektor dapat mengalami operasi penjumlahan, pengurangan, perkalian,
dan pembagian. Operasi penjumlahan dan pengurangan dapat dilakukan bila vektor-vektor yang akan dijumlahkan atau dikurangkan
mempunyai orde (dimensi) yang sama. Perkalian 2 buah vektor x dan y
mempunyai bentuk: Σ xi * yi dimana kedua vektor juga harus berde sama, tetapi 1 vektor
kolom dan yang lainnya vektor baris.
>> a = [1 2 3] % vector baris a
a =
1 2 3
>> b = [2 1 0] % vector baris b
b =
2 1 0
>> a + b % penjumlahan vector baris a dan vector baris b
ans =
3 3 3
>> a – b % pengurangan vector baris a dengan vector
baris b
ans =
-1 1 3
>> a * b % perkalian vector baris dengan vector baris
tidak bisa
??? Error using ==> *
Inner matrix dimensions must agree.
>> b=[2; 1; 0] % vector kolom b
b =
2
1
0
>> a * b % perkalian vector baris a denga vector kolom b
ans =
4
3. Matriks
Matriks merupakan himpunan data yang membentuk beberapa
baris dan kolom. Aturan operasi penjumlahan dan pengurangan yang
berlaku pada vektor juga berlaku untuk matriks apabila matriks mempunyai dimensi yang sama.
Perkalian antara 2 buah matriks misalkan matriks A dan matriks
B. Perkalian matriks A x B, harus memenuhi aturan bahwa banyaknya
kolom pada matriks A harus sama dengan benyaknya baris pada matriks B.
Contoh : Matriks dan Operasinya
>> A=[1 2 3;2 1 3] % Operasi penambahan dan pengurangan
matriks. Dimensi matriks harus sama
A =
1 2 3
2 1 3
>> B=[3 3 3;2 2 2]
B =
3 3 3
2 2 2
>> C=A+B
C =
4 5 6
4 3 5
>> D=A-B
D =
-2 -1 0
0 -1 1
>> E=A*B % perkalian matriks ukuran baris matriks A tidak
sama dengan ukuran kolom matriks B jadi error...
??? Error using ==> *
Inner matrix dimensions must agree.
>> B'
ans =
3 2
3 2
3 2
>> A*B' %perkalian dapat dilakukan
ans =
18 12
18 12
4. Pengalamatan
Merupakan cara penulisan yang digunakan untuk menampilkan atau mendefinisikan ulang suatu data atau sekumpulan data pada vector
atau matriks, ditulis dalam bentuk umum: variabel(i,j), dimana i
menunjukkan baris dan j menunjukkan kolom Vektor dan Matriks Contoh : Pengalamatan Vektor atau Matriks
x(2) menunjukkan elemen kedua vektor x
z(3) menunjukkan elemen ketiga vektor y12
r(2,1) menunjukkan elemen matriks r pada baris kedua kolom pertama
t(3,2) menunjukkan elemen matriks t pada baris ketiga kolom
kedua s(:,2) menunjukkan semua elemen matriks s pada kolom kedua
u(1,:) menunjukkan semua elemen matriks u pada baris pertama
PENGATURAN ALUR PROGRAM
Pengaturan alur program memungkinkan pengguna untuk mengulangi
perhitungan secara berulang-ulang ataupun memilih serta memutuskan kondisi-kondisi yang sesuai/diinginkan. Matlab menyediakan empat
bentuk pengaturan alur program yang akan dibahas berikut ini.
1. Loop for Loop for memungkinkan sekelompok perintah diulang sebanyak suatu
jumlah yang tetap. Bentuk umum: for loopvariable = loopexpression
perintah-perintah
end
Loopvariable merpakan nama variabel yang diberikan, sedangkan
loopexpression biasanya memiliki bentuk n:m atau n:i:m.
Perintah perintah di antara baris for dan end dikerjakan berulang-ulang dari nilai awal n sampai nilai akhir m, dengan increment (langkah)
sebesar i.
Contoh : Perhitungan pangkat 3 dari himpunan bilangan bulat dari 1
sampai 4
Contoh : Operasi perkalian 2 buah vector
2. Loop while
Bentuk umum: while while_expression
perintah-perintah
end
Operator relasi yang didefinisikan sebagai berikut: > lebih besar >= lebih besar atau sama dengan
< lebih kecil <= lebih kecil atau sama dengan
== sama -= tidak sama
>> for n = 1:4
x(n) = n^3
end
x =
1
x =
1 8
x =
1 8 27
x =
1 8 27 64
>> x = [1 2 3];
y = [4 5 6];
sum = 0;
for i = 1:3
sum = sum + x(i)*y(i)
end
sum =
4
sum =
14
sum =
32
contoh :
3. If-Statement
Bentuk umum: if if_ekspresi
perintah-perintah
end
Contoh :
Di sebuah toko kue, harga kue per toples adalah Rp. 25.000
Apabila membeli minimal 4 toples akan mendapatkan potongan 10%
Program ditulis dalam m.file, disimpan dengan nana kue.m
Apabila di_run hasilnya adalah:
n = 1;
x = 0;
while x <15
x(n) = n^2;
n = n+1;
end
>> x
x =
1 4 9 16
Harga = input('Harga 1 toples kue =');
Cacah_Kue = input('Berapa toples kue yang dibeli??? =');
if Cacah_Kue >= 4
bayar = ((Cacah_Kue*Harga)-(Cacah_Kue*Harga*0.01))
else
bayar =Cacah_Kue*Harga
end
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =3
bayar =
75000
Jika terdapat 3 atau lebih pilihan, konstruksi if-else-end mengambil
bentuk: if if_ekspresi1
perintah dikerjakan jika if_ekspresi1 benar
elseif if_ekspresi2 perintah dikerjakan jika if_ekspresi2 benar
elseif if_ekspresi3
perintah dikerjakan jika if_ekspresi3 benar elseif if_ekspresi4
perintah dikerjakan jika if_ekspresi4 benar
elseif
else perintah dikerjakan jika tidak ada if_ekspresi yang benar
end
Contoh:
Untuk menentukan nilai akhir mahasiswa, untuk setiap mata kuliah
diadakan ujian kompetensi dasar (KD) sebanyak 4 kali.
4
4321_
DKKDKDAkhirNilai , Jika Nilai akhir >80 memperoleh A,
jika 80_70 AkhirNilai , nilai B, Jika 70_60 AkhirNilai nilai C, jika
Nilai_Akhir < 60 nilai D
Contoh Program adalah :
Harga 1 toples kue =25000
Berapa toples kue yang dibeli??? =4
bayar =
99000
Program di atas disimpan dalam format m.file dengan nama nilai.m. apabila di run hasilnya adalah:
4. Switch-case-otherwise
Bentuk umum: switch ekspresi
case ekspresi1
perintah-perintah case ekspresi2
perintah-perintah
case …… .
.
KD1 = input('Masukkan nilai KD 1 sekala 100, KD 1 =');
KD2 = input('Masukkan nilai KD 2 sekala 100, KD 2 =');
KD3 = input('Masukkan nilai KD 3 sekala 100, KD 3 =');
KD4 = input('Masukkan nilai KD 4 sekala 100, KD 4 =');
NA = (KD1+KD2+KD3+KD4)/4
if NA >= 80
ket = 'A'
else if 70 <= NA & NA < 80
ket = 'B'
else if 60 <= NA & NA < 70
ket = 'C'
else if 50 <= NA & NA < 60
ket = 'D'
else
ket = 'E'
end
end
end
end
end
Masukkan nilai KD 1 sekala 100, KD 1 =80
Masukkan nilai KD 2 sekala 100, KD 2 =78
Masukkan nilai KD 3 sekala 100, KD 3 =79
Masukkan nilai KD 4 sekala 100, KD 4 =79
NA =
79
ket =
B
otherwise
perintah-perintah end
Program tersebut ditulis dalam m.file dan diberi nama pilihan.m, apabila di run hasilnya adalah :
disp('1. Newton')
disp('2. Regula Falsi')
disp('3. Newton Raphson')
n = input('Metoda yang dipilih (masukkan nomor urutnya saja) =
');
switch n
case (1), disp('Metode Newton')
case (2), disp('Metode Regula Falsi')
case (3), disp('Metode Newton Raphson')
otherwise
disp('Metode tersebut belum dimasukkan dalam daftar')
end
>> 1. Newton
2. Regula Falsi
3. Newton Raphson
Metoda yang dipilih (masukkan nomor urutnya saja) = 2
Metode Regula Falsi