Tentang Penulis
Prof. Dr. SAHYAR, M.S. saat ini menjabat
sebagai Ketua Progaram Studi Magister
Pendidikan Fisika (S2) Pascasarjana Unimed
Medan. Beliau merupakan guru besar FMIPA
Unimed Medan bidang Ekonofisika sejak tahun
2010. Beliau Lahir di Langkat pada tanggal 26
April 1960. Pendidikan Dasar, Menengah Pertama
dan Menengah Atas masing-masing diselesaikan
di Kec. Hinai, Stabat dan Tanjung Pura Langkat.
Pendidikan Sarjana diselesaikan pada tahun 1984 dari Unimed
(IKIP) Medan bidang Pendidikan Fisika. Pendidikan Magister Sains
diselesaikan pada tahun 1991 dari Universitas Gajah Mada
Yogyakarta dalam bidang Fisika Komputasi. Pendidikan Doktor
diselesaikan tahun 2008 dari Universitas Padjadjaran Bandung
dalam bidang Ekonofisika.
Tentang Buku
Buku ini merupakan buku pendukung matakuliah pemrograman
dasar yang diajarkan pada berbagai jurusan di lingkungan
Perguruan Tinggi Fakultas Matematika dan Ilmu Pengetahuan Alam
(FMIPA) dan Teknik.
Kompetensi yang dapat dicapai setelah mempelajari buku ini adalah:
Memahami dasar-dasar pemrograman terstruktur menggunakan
MatLab.
Mengenal Operasi-operasi dasar dalam Matlab.
Menggunakan fungsi-fungsi standar dalam Matlab untuk aplikasi
dalam bidang Sains.
Menyusun progam komputer untuk komputasi berbagai model
matematika dalam bidang Sains dengan menggunakan MatLab.
Menyusun progam komputer untuk Visualisasi berbagai model
matematika dalam bidang Sains dengan menggunakan MatLab.
BAB 1
DASAR-DASAR PEMROGRAMAN
A.Tujuan Pembelajaran
1. Menjelaskan pengertian perogram komputer.
2. Menjelaskan pengertian algoritma.
3. Menjelaskan perbedaan algortima menggunakan flowchrt
menggunakan kalimat.
4. Menyusun algoritma untuk perhitungan sederhana.
5. Menjelaskan langkah-langkah penyusunan program komputer.
6. Menjelaskan standar program komputer yang baik.
7. Menjelaskan kriteria pemrograman terstruktur.
dan
masalah
dalam
3.
4.
5.
6.
E.Pengertian Algoritma
Algoritma adalah: langkah-langkah yang sistematis, logis dan lengkap
untuk penyelesaian suatu masalah.
Ada dua cara menyusun algoritma yaitu:
1. Menggunakan bagan-bagan/simbol-simbol tertentu yang membentuk
bagan alir (flowchart).
2. Menggunakan kata-kata atau kalimat matematis.
Simbol-simbol untuk menyusun algoritma mengguanakan flowchart:
Terminator
Proses
Predefined
proses
Predefined
data.
Seleksi
connect
er
Input/output
data
Off page
connector
Dokumen cetak
Display
read(a); read(b);
c. Proses
If a>b
then write(a)
else write(b)
end if
d. Stop
2. Contoh algoritma menggunakan flowchart untuk menentukan angka yang
lebih besar dari dua buah angka.
Mulai
Read(a);
read(b)
T
a>b
Disp(a)
N
Disp(b)
selesai
Mulai
Read(a);
read(t)
Luas=0.5*a*t
Luas
selesai
G.Pemrograman terstruktur.
Pemrograman terstruktur adalah pemrograman yang disusun dengan
menggunakan komponen-komponen berikut:
1. Rancangan atas bawah (top down design)
2. Rancangan bermodul (modular design)
3. Kodifikasi terstruktur (structured coding).
Program komputer yang dirancang dalam buku ini disusun dengan menggunakan
pendekatan pemrograman terstruktur menggunakan bahasa pemrogaram MatLab.
H.SOAL LATIHAN
1. Jelaskan pengertian perogram komputer.
2. Jelaskan pengertian algoritma.
3. Jelaskan perbedaan algortima menggunakan flowchrt dan
menggunakan kalimat.
4. Rancang algoritma untuk menghitung luas persegi panjang
menggunakan flowchart dan kalimat.
5. Rancang algoritma untuk menghitung luas trapesium menggunakan
flowchart dan kalimat.
6. Jelaskan langkah-langkah penyusunan program komputer.
7. Jelaskan standar program komputer yang baik.
8. Jelaskan kriteria pemrograman terstruktur.
BAB 2
TIPE DATA,VARIABEL, NILAI DAN EKSPRESI
A.TUJUAN PEMBELAJARAN
1.
2.
3.
4.
5.
B.TIPE DATA
Ada dua jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar
meliputi bilangan bulat (integer), bilangan pecahan (real), bilangan tetap (const),
data karakter (character), tipe data logik (logic atau boolean). Tipe data bentukan
adalah tipe data yang dibentuk dari kombinasi tipe data dasar, yang terdiri dari
tipe data larik (array), rekaman (record), dan tipe data string.
1.Tipe data dasar.
a. Bilangan bulat
Karekteristik bilangan bulat:
Bilangan bulat adalah angka yang tidak memiliki titik desimal
Jangkauan nilai bergantung pada implementasi perangkat keras komputer.
Operasi aritmatika: tambah(+), kurang(-), kali (*), bagi (/)
Operasi pembandingan: lebih kecil (<), lebih kecil atau sama (<=), lebih
besar (>), lebih besar atau sama (>=), sama (=), tidak sama (<>)
b. Bilangan real
Karekteristik bilangan real:
Bilangan yang mempunyai titik desimal atau pecahan.
Jangkauan nilai bergantung pada implementasi perangkat keras komputer.
Operasi aritmatika: tambah(+), kurang(-), kali (*), bagi (/)
Operasi pembandingan: lebih kecil (<), lebih kecil atau sama (<=), lebih
besar (>), lebih besar atau sama (>=), sama (=), tidak sama (<>)
c.Bilangan tetap (const)
Karakteristik bilangan tetap
Bilangan tipe integer atau real yang nilainya tidak berubah selama
algoritma dilaksanakan.
Jangkauan nilai meliputi semua bilangan yang mungkin
2.Tipe data karakter
Karakteristik data karakter:
Karakter adalah data tunggal yang memiliki semua huruf, simbol baca, dan
juga simbol angka yang tidak dapat dioperasikan secara matematis,
misalnya: A, B,...,Z, a, b,c,...,z, 0,1,...,9, ?, !, ;, dst.
Operasi pembandingan dapat dilakukan.
A
False
False
True
True
C.Variabel
Variabel adalah suatu pengenal yang digunakan untuk menampung data di
memory komputer.
10
11
p
p=
90
q
q=
30
Keterangan: nilai p dan q telah bertukar.
D.Pemberian Nilai
Pemberian nilai variabel dapat melalui proses penugasan (assignment) dan
pembacaan.
1.Melalui pembacaan.
Pemberian nilai melalui pembacaan dilakukan input data melalui
keyboard.
Contoh:
Menggunakan bahasa Pascal : read(variabel);
Menggunakan MatLab: variabel = input(Masukkan data = );
2.Melalui Penugasan.
Contoh:
Variabel nilai; luas25.89
Variabel1 variabel2 ; jarak70; xjarak;
Vaiabel ekspresi; y5*x + 6*z;
Contoh menggunakan MatLab
Memberikan nilai langsung ke variabel
a=30
a=
30
Memberikan nilai melalui variabel lain
a=20;
b=a;
b
b=
20
E.Ekspresi
Ekspresi adalah transformasi data dan variabel dalam bentuk persamaan
yang direlasikan oleh operator dan operand. Ada empat macam ekspresi yaitu:
ekspresi aritmatika, ekspresi relasional, ekspresi logik dan ekspresi string.
Ekspresi aritmatika
12
o Vt v0 + a*t;
o Gajigapok+tunjangan
o Luas0.5 * alas*tg;
Ekspresi relasional
o skorA>skorB
o (a+b)< c
o p<>q
Ekspresi Logik
o m(n) and (o)
o p(q) or (r)
o anot(b)
Ekspresi string
o AlamatJl W Iskandar no 8 Medan;
o NamaZakarni Yusuf;
o NilaiA;
F. Soal Latihan.
1. Jelaskan perbedaan tipe data dasar, tipe karakter, tipe logik dan tipe data
bentukan.
2. Jelaskan perbedaan variabel dan konstanta.
3. Jelaskan aturan membuat variabel dalam pemrograman.
4. Jelaskan dua cara memberi nilai variabel dengan memberikan contoh.
5. Jelaskan empat cara membuat ekspresi variabel dalam pemrograman
dengan memberikan contoh.
13
BAB 3
OPERATOR DAN FUNGSI STANDAR
A.Tujuan Pembelajaran
1.
2.
3.
4.
5.
B.Operator.
Di dalam Matlab dikenal tiga jenis operator yaitu : a) Operator aritmatika yang
digunakan untuk komputasi numerik, b) Operator relasional yang digunakan
untuk membandingkan operand-operand seacara kuantitatif dan c) Operator
logika.
1.Operator Aritmatika tipe data sederhana
Tabel 3.1. Operator Aritmatika
Operation
Symbol
Addition, a+b
+. Example: 5+3
Subtraction, a-b
-. Example: 7-2
Multiplication, a x b
*. Example : 3.24*4.56
Division, a:b
/ or \. Example: 75/3=3\75
Power, a
^. Example: 3^5
Contoh pemakaian:
a=20; b=5;
c=a+b;
d=a-b;
e=a*b;
f=a/b;
g=a\b;
h=a^2;
c (menampilkan nilai c hasil jumlah)
c=
25
d (menampilkan nilai d hasil pengurangan)
14
d=
15
e (menampilkan nilai e hasil perkalian)
e=
100
f (menampilkan nilai f hasil pembagian)
f=
4
g(menampilkan nilai g hasil pembagian)
g=
0.2500
h (menampilkan nilai h hasil pemangkatan)
h=
400
2.Operator Relasi
Tabel 3.2. Operator Relasi
Operator
Description
>
Greater than
>=
<
Less than
<=
==
Equal to
~=
not equal to
Contoh pemakaian:
Penjelasan: jawaban =0 berarti salah, 1 berarti benar
p=10;q=15;
%Operator kesamaan
p==q
ans =
15
0
%Operator lebih besar
p>q
ans =
0
%Operator lebih kecil
p<q
ans =
1
%Operator negasi
p~=q
ans =
1
3.Operator logika
Tabel 3.3. Operator Logika
Operator
Description
&
And
Or
Not
Contoh pemakaian:
x=1;y=0;
x&y (x dan y)
ans =
0
x|y (x atau y)
ans =
1
~x (tidak y)
ans =
0
~y
ans =
1
16
C.Fungsi Standar.
Fungsi standar adalah fungsi-fungsi dasar bawaan MatLab yang dapat
dipakai langsung dan dioperasikan pada suatu nilai atau variabel.
Tabel 3.4. Fungsi Dasar Matematika
No
1
2
3
4
5
6
7
8
9
10
11
12
Fungsi
abs
acos
acosh
asin
asinh
atan
atanh
cos
cosh
exp
fix
floor
Kegunaan
Nilai absolut
Invers kosinus
Invers hyperbolik kosinus
Invers sinus
Invers hyperbolik sinus
Invers tangen
Invers hyperbolik tangen
Kosinus
Kosinus hyperbolik
Eksponensial
Pembulatan ke arah nol
Pembulatan ke arah minus
No
13
14
15
16
17
18
19
20
21
22
23
24
Fungsi
imag
log
log10
real
rem
round
sign
sin
sinh
sqrt
tan
tanh
Kegunaan
Bagian imajiner bilangan kompleks
Logaritma natural
Logaritma umum
Bagian real bilangan kompleks
Sisa pembagian
Pembulatan ke arah bilangan bulat
Tanda fungsi (1 atau -1)
Sinus
Sinus hyperbolik
Akar pangkat 2
tangen
Tangen hyperbolik
Kegunaan
Memeriksa kesamaan dua data text. Output program type data logic
(benar atau salah). Contoh: hasil=strcmp(t1,t2);
strcat
Menggabungkan dua data text. Contoh: gabung(t1,t2);
isletter
Memeriksa karakter huruf atau lainnya. Bernilai 1 jika huruf dan nol jika
bukan huruf.
isspace Memeriksa apakah ada spasi atau tanda lain dalam data text, jika ada
maka akan bernilai 1 selainnya nol.
int2str
Merubah data integer atau array menjadi text
num2str Merubah data numerik atau array menjadi text
17
18
D.Konstanta
Konstanta adalah pengenal yang nilainya tetap selama program berjalan.
Dalam Matlab telah disiapkan beberapa konstanta yang dapat langsung dipakai
tanpa dideklarasikan terlebih dahulu. Konstanta tersebut adalah:
Konstanta pi nilai : 3.14152...
Konstanta eps nilai bilangan natural = 2.7...
Konstanta inf nilai tak berhingga
Konstanta i tau j, bilangan imajiner.
Konstanta nan hasil 0/0.
Konstanta jumlah argumen input: nargin
Konstanta jumlah argumen output: nargout
Konstantan bilangan ril positif terkecil: realmin.
Konstanta bilangan ril positif terbesar: realmax.
E. Soal Latihan.
1.
2.
3.
4.
19
BAB 4
INPUT OUTPUT DATA DALAM MATLAB
A.Tujuan Pembelajaran
1.
2.
3.
4.
Arti
Untuk input data melalui keyboard
Memberi baris komentar pada program komputer
Tanda desimal
Jika variabel diberi tanda ; maka nilai variabel tidak
ditampilkan ke layar
Menampilkan data atau variabel text
Menampilkan data numerik
Memesan satu baris kosong
Memesan 7 spasi dan tampilan variabel numerik 3 desimal
20
y=2.7658
z=17
21
clc;
disp('Output Text');
disp('1. Saya Belajar Fisika');
disp('2. Saya Belajar MatLab');
disp('3. Jarak tempuh GLBB');
% Output data Numeric
disp(' ');
disp('Output Numeric');
energy=3.784;
x=27.561;
y=12.34;
z=23.1323;
disp('Bentuk pertama ');
disp(['Nilai energy = ',num2str(energy),' joule']);
disp(['Nilai x = ',num2str(x)]);
disp(['Nilai y = ',num2str(y)]);
disp(['Nilai z = ',num2str(z)]);
disp(' ------------------------------');
disp('Bentuk kedua');
fprintf('\n Nilai energi = %6.3f',energy);disp( joule);
fprintf('\n value of x = %6.3f ',x);
fprintf('\n value of y = %5.3f ',y);
fprintf('\n value of z = %7.4f ',z);
fprintf('\n x= %6.3f y=%5.2f z=%7.4f ',x,y,z);
Output program
Output Text
1. Saya Belajar Fisika
2. Saya Belajar MatLab
3. Jarak tempuh GLBB
Output Numeric
Bentuk pertama
Nilai energy = 3.784 joule
Nilai x = 27.561
Nilai y = 12.34
Nilai z = 23.1323
-----------------------------Bentuk kedua
Nilai energi = 3.784 joule
22
value of x = 27.561
value of y = 12.340
value of z = 23.1323
x= 27.561 y=12.34 z=23.1323
Contoh 2.
Program Input Output data menggunakan MATLAB.
Coding program.
% Input output data text
clc;
disp('Input data Text');
name=input('Input your name =','s');
ad=input('Input your address=','s');
hs=input('Input your high school=','s');
disp(' ');
disp('Output data text');
disp(-------------------);
disp(['Your name =',name]);
disp(['Your address = ',ad]);
disp(['Your high school= ',hs]);
% Input Numeric
disp(' ');
disp('Input Data Numeric');
disp(---------------------- );
energy=input('Energy= ');
x=input('X = ');
y=input('Y = ');
z=input('Z = ');
disp('Output Bentuk petama ');
disp(----------------------------);
disp(['Nilai energy = ',num2str(energy),' joule']);
disp(' ');
disp(['Nilai x = ',num2str(x)]);
disp(['Nilai y = ',num2str(y)]);
disp(['Nilai z = ',num2str(z)]);
disp('Output Bentuk kedua');
disp('--------------------------');
fprintf('\n Nilai energi = %6.3f ',energy);disp( joule);
23
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
Ouput program:
Input data Text
Input your name =Sahyar
Input your address=Medan
Input your high school=SMA Tg. Pura
Output data text
-------------------Your name =Sahyar
Your address = Medan
Your high school= SMA Tg. Pura
Input Data Numeric
-----------------------Energy= 25.78
X = 12.3
Y = 89
Z = 13.789
Output Bentuk petama
--------------------------Nilai energy = 25.78 joule
Nilai x = 12.3
Nilai y = 89
Nilai z = 13.789
24
E.Soal Latihan
1. Buat program sederhana untuk proses input dan output data numerik untuk
data: gaya, usaha, gaji, pajak, nilai rata-rata. Ouput data menggunakan
statemen disp dan fprintf
2. Buatlah program sederhana untuk proses input dan output data teks untuk
data: alamat, nama, pangkat, pekerjaan, pendidikan.
25
BAB 5
PROGRAM DENGAN INSTRUKSI RUNTUN
(SEQUENTIAL)
A.Tujuan Pembelajaran
Menyusun program komputer dengan instruksi runtun
B.Teori
Instruksi runtun adalah instruksi yang dikerjakan secara beruntun atau
berurutan baris perbaris mulai baris pertama sampai baris terakhir, tanpa ada
lompatan atau perulangan.
Karakteristik instruksi runtun:
Tiap instruksi dikerjakan satu persatu sebanyak satu kali.
Urutan pelaksanaan instruksi sama dengan penulisan algoritma.
Instruksi terakhir merupakan akhir algoritma
Perubahan urutan akan menyebabkan hasil yang berbeda.
26
Variabel
a
t
luas
Type of data
Real/Numeric
Real/Numeric
Real/Numeric
Keterangan
Input data
Input data
Output data
3. Algorithm program
Start
a, t
luas
Stop
27
t = input('Tinggi = ');
%Proses
luas = 0.5*a*t;
%Output data
fprintf('\nLuas segitiga =%8.3f\n',luas);
5. Testing and Verification
Pengujian pertama.
Alas = 20
Tinggi = 30
Luas segitiga = 300.000
Pengujian kedua
Alas = 17
Tinggi = 10
Luas segitiga = 85.000
Pengujian ketiga.
Alas = 10
Tinggi = 47
Luas segitiga = 235.000
Contoh 2: Program Untuk menghitung Energi Kinetik
1. Problem definition
Menentukan Energi Kinetik
Rumus: Ek = 0.5 * m*v2
Data input: kecepatan, massa
Data output: energi kinetik.
2. Struktur Data
Unit /Besaran
Velocity
Mass
Kinetic Energy
Variabel
v
m
ke
Type of data
Real/Numeric
Real/Numeric
Real/Numeric
3. Algorithm program
28
Keterangan
Input data
Input data
Output data
Start
v, m
ke = 0.5 * m*v^2
ke
Stop
Gambar 5.2. Folwchart hitung Energi kinetik
Algoritma menggunakan kalimat:
a. Mulai
b. Input data:
v
m
c. Proses
ke 0.5*m*v^2
d. Output
ke
e. Stop
4. Coding dalam MatLab
%Computer program for calculating Kinetic Energy
%Input
v=input('velocity = ');
m=input('Mass = ');
29
%process
ke=0.5*m*v.^2;
%Output
fprintf('\Kinetic Energy=%8.2f\n',ke);disp(['joule ']);
5. Testing and Verification
Pengujian pertama
velocity = 10
Mass = 2.5
Kinetic Energy= 125.00joule
Pengujian kedua
velocity = 2.5
Mass = 15
Kinetic Energy= 46.88 joule
Pengujian ketiga
velocity = 125
Mass = 23
Kinetic Energy=179687.50joule
E.Latihan
1. Susun program komputer untuk menghitung jarak tempuh gerak lurus berubah
beraturan.
2. Susun program komputer untuk menghitung energi kinetik dan energi
potensial benda pada gerak jatuh bebas.
3. Susun program komputer untuk menghitung luas selimut permukaan selinder.
4. Susun program komputer untuk menghitung jauh dan tinggi tembakan peluru
pada bidang datar dengan sudut elevasi a dan kecepatan awal vo.
5. Susun pogram komputer untuk menghitung usaha.
6. Susun program komputer untuk menghitung modal akhir pada perhitungan
bunga majemuk. = (1 + ) ; Ma= modal akhir; Mo=modal awal;
b=bunga dalam persen; n=periode penyimpanan.
30
BAB 6
PROGRAM DENGAN INSTRUKSI
PILIHAN IF THEN
A.Tujuan Pembelajaran
1. Menyusun program komputer dengan instruksi if then
B.Teori
Instruksi pilihan adalah instruksi yang dipakai untuk memilih suatu proses
dari beberapa kemungkinan proses berdasarkan suatu persyaratan. Intruksi yang
sering digunakan untuk logika pengambilan keputusan atau pilihan adalah:
if/then/else. Persyaratan atau kondisi dalam logika ini pada umumnya bersifat
kompleks.
1.Instruksi bentuk satu kasus
if (kondisi)
then proses
end
F
kondisi
i
T
Proses
31
kondisi
T
Proses1
Proses2
Kondisi1
Kondisi2
T
Proses1
T
Proses2
Proses3
32
33
Variabel
a
b
c
x1 dan x2
x1c dan x2c
Type of data
Real/Numeric
Real/Numeric
Real/Numeric
Real/Numeric
Real/Numeric
3. Algoritma program
a.
Start
b.
Input data
Input a
Input b
Input c
c. Proses.
d b^2 4*a*c
If d> 0 then
x1(-b + sqrt(d))/(2*a);
x2(-b - sqrt(d))/(2*a);
elseif d=0
x1(-b)/(2*a);
34
Keterangan
Input data
Input data
Input data
Output data
Output data
x2x1;
else
x1c(-b + sqrt(d))/(2*a);
x2c(-b - sqrt(d))/(2*a);
end
d. Output data
if d>0 then
write ('Nilai X1 <> X2 dan real');
write(x1);
write(x2);
elseif d=0
write('Nilai X1 = X2 dan real');
write(x1);
write (x2);
else
write('Nilai X1 <> X2 dan kompleks');
write(x1c);
write(x2c);
end if
e. Stop
4. Coding dalam Matlab.
%Input
clc;
a=input('Coef a= ');
b=input('Coef b= ');
c=input('Coef c= ');
%Process
d=b^2 - 4*a*c;
if d>0
x1=(-b + sqrt(d))/(2*a);
x2=(-b - sqrt(d))/(2*a);
elseif d==0
x1=(-b)/(2*a);
x2=x1;
else
x1c=(-b + sqrt(d))/(2*a);
x2c=(-b - sqrt(d))/(2*a);
35
end
%Output
if d>0
disp('Nilai X1 <> X2 dan real');
fprintf('x1 =%5.2f \n',x1);
fprintf('x2 =%5.2f \n',x2);
elseif d==0
disp('Nilai X1 = X2 dan real');
fprintf('x1 =X2=%5.2f \n',x1);
else
disp('Nilai X1 <> X2 dan kompleks');
fprintf('x1 = ');disp(x1c);
fprintf('x2 = ');disp(x2c);
end
5. Testing and Verification.
Pengujian pertama
Coef a= 1
Coef b= 7
Coef c= 12
Nilai X1 <> X2 dan real
x1 =-3.00
x2 =-4.00
Pengujian kedua
Coef a= 1
Coef b= -6
Coef c= 9
Nilai X1 = X2 dan real
x1 =X2= 3.00
pengujan ketiga
Coef a= 5
Coef b= 3
Coef c= 2
Nilai X1 <> X2 and complex
x1 = -0.3000 + 0.5568i
x2 = -0.3000 - 0.5568i
Contoh .2. Program konversi nilai angka mejadi nilai huruf
36
1. Defenisi masalah
Konversi data skor menjadi nilai huruf.
Input data: data skor
Data Output: nilai huruf.
No
1
2
3
4
2. Struktur data
Unit
Nama
Skor
Nilai huruf
Skor
90 - 100
80 - 89
70 - 79
0- 69
Variabel
nm
sk
nh
Nilai huruf
A (Sangat kompeten)
B (Kompeten )
C (Cukup kompeten)
E (Tidak kompeten)
Type of data
Text
Real/Numerik
Text
3. Algorithm program
a.
Start
b.
Input data
Input nm
Input sk
c. Process
if sk>=90 then
nh'A (sangat kompeten )';
elseif sk>=80 then
nh'B (Kompeten )';
elseif sc>=70 then
nh'C (Cukup kompeten)';
else
nh'E (Tidak kompeten )';
end if
d. Output data
Write (nm);
Write (sk);
Write(nh);
e. Stop
4. Coding In MatLab
%Input skor
37
Keterangan
Input data
Input data
Output data
38
E.Latihan
1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
c
P a b2
bd
2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
c
a
P b2
bd d
3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P a b2 c - d
4. Rancang program komputer untuk menentukan besarnya gaya Coulomb dari
dua muatan dengan jarak r.
5. Rancang program komputer untuk menentukan besarnya kuat medan listrik
dan potensial listrik oleh muatan pada jarak tertentu dari muatan.
39
BAB 7
PROGRAM DENGAN INSTRUKSI
PILIHAN CASE
A.Tujuan Pembelajaran.
1. Menyusun program komputer dengan instruksi pilihan case.
B.Teori
Instruksi case digunakan sebagai instruksi pilihan yang dipakai untuk
memilih suatu proses dari beberapa kemungkinan proses berdasarkan nilai dari
variabel kontrol. Intruksi yang sering digunakan untuk logika pengambilan
keputusan atau pilihan case adalah:
Case variabel
Nilai_1 : proses1;
Nilai_2 : proses2;
Nilai_3 : proses3;
...
Nilai_n : prosesn;
End case
Keterangan:
Kemungkinan atau proses yang akan dikerjakan ada n pilihan, proses1,
proses2 sampai prosesn.
Jika nilai variabel 1 maka akan dikerjakan proses1, jika variabel bernilai 2
maka akan dikerjakan proses2 dan sterusnya sampai kemungkinan variabel
bernilai n.
40
Output program:
Pilihan
1.Jeruk;2.Mangga;3.Sirsak
Pilihan : 3
Pilihan anda:Sirsak
Gaji
2.500.000
3.500.000
4.500.000
5.500.000
2. Struktur Data
Unit
Nama
Golongan
Gaji
Variabel
nm
gol
gaji
Type of data
Text
Numeric
Numeric
3. Algoritma program
a.
b.
Start
Input data
Input nm
Input gol
c. Process
Case gol
Case 1
Gaji2500000;
Case 2
Gaji 3500000;
Case 3
Gaji 4500000;
41
Keterangan
Input data
Input data
Output data
Case 4
Gaji 5500000;
end
d. Output data
Write (nm);
Write (gol);
Write(gaji);
e. Stop
4. Coding In MatLab
%Input Golongan
nm=input(' Input nama anda =','s');
gol =input(' Golongan anda = ');
%Process
switch gol
case 1
gaji= 2500000;
case 2
gaji =3500000;
case 3
gaji =4500000;
case 4
gaji =5500000;
end
%Output
disp(['Nama anda = ',nm]);
fprintf('\n Golongan anda =%4.0f',gol);
fprintf(\n Gaji anda = Rp %9.2f,gaji);
42
E.Latihan
1. Rancanglah program komputer menu dengan pilihan menu sebagai berikut:
a. Pilihan=1, program akan menghitung luas segitiga
b. Pilihan=2, program akan menghitung luas persegi panjang.
c. Pilihan=3, pogram akan menghitung luas trapesium.
d. Pilihan=4, program selesai.
2. Rancanglah program komputer menu dengan pilihan menu sebagai berikut:
a. Pilihan=1, program akan menghitung usaha
b. Pilihan=2, program akan menghitung energi kinetik.
c. Pilihan=3, pogram akan menghitung energi potensial pegas.
d. Pilihan=4, program selesai.
3. Rancanglah program komputer menu dengan pilihan menu sebagai berikut:
a. Pilihan=1, program akan menghitung gaji pegawai tetap. Komponen
gaji: gaji pokok, tunjangan, potongan.
b. Pilihan=2, program akan menghitung gaji pegawai honor. Komponen
gaji: gaji pokok, gaji lembur, potongan.
c. Pilihan=3, pogram akan menghitung gaji pegawai borongan.
Komponen gaji: tarif borongan, jumlah borongan, potongan.
d. Pilihan=4, program selesai.
43
BAB 8
PROGRAM DENGAN INSTRUKSI
PERULANGAN FOR
A.Tujuan Pembelajaran
1. Menyusun program komputer dengan instruksi perulangan for
B.Teori
Instruksi perulangan for digunakan untuk mengulang suatu proses dengan
menggunakan variabel kendali dengan batas nilai awal dan nilai akhir variabel.
Jumlah perulangan dengan menggunkan kontrol for dapat diketahui.
Karakteristik perulangan for:
Proses perulangan stop jika nilai variabel kendali telah mencapai batas
nilai akhir.
Nilai variabel kedali berubah secara teratur.
Jumlah perulangan dapat diketahui.
Flowchart Perulangan For
Var = awal
Var<= akhir
?
T
F
Instruksi-instruksi
Var = var + n
44
Bentuk umum
for (var = awal to akhir step n )
.
Instruksi-instruksi
..
endfor
Keterangan :
1.
2.
3.
4.
Variabel perulangan (var ) harus bertipe dasar (integer, real, atau char )
Nilai awal harus lebih kecil dari akhir bila n > 0 ( positif )
Nilai awal harus lebih besar dari akhir bila n <0 ( negatif )
Mula-mula variabel var bernilai awal, kemudian setiap satu kali putaran
maka nilai var bertambah sebesar n.
5. Perulangan akan berhenti apabila nilai var sudah mencapai akhir.
45
9.Sukses
11.Sukses
13.Sukses
15.Sukses
Contoh 3.
clc;
for k=20:-3:0
disp([num2str(k),'.Sukses']);
end
output program:
20.Sukses
17.Sukses
14.Sukses
11.Sukses
8.Sukses
5.Sukses
2.Sukses
2.Perulangan berlapis (dua loop)
clc;
for k=1:5;
disp(['Nilai k= ',num2str(k)]);
for j=2:3:10;
disp([num2str(j),'.Sukses']);
end
end
output program:
Nilai k= 1
2.Sukses
5.Sukses
8.Sukses
Nilai k= 2
2.Sukses
5.Sukses
8.Sukses
Nilai k= 3
2.Sukses
5.Sukses
8.Sukses
46
Nilai k= 4
2.Sukses
5.Sukses
8.Sukses
Nilai k= 5
2.Sukses
5.Sukses
8.Sukses
Variabel
a
b
n
s
total
Type of data
Numeric
Numeric
Numeric
Numeric
Numeric
3. Algorithm program
a. Start
b.
Input data
Input a
Input b
Input n
c. Process
Total0;
sa;
for k1:n
totaltotal+s;
cetak(s)
ss+b
end
d. Output data
cetak(total)
e. Stop
47
Keterangan
Input data
Input data
Input data
Output data
Output data
4. Coding
%Deret Aritmatika
%Input
a=input('Suku awal =');
b=input('Beda suku =');
n=input('Banyak suku =');
%Process
disp('Suku-suku deret ');
total=0;
s=a;
for k= 1:n
total=total+s;
disp(['Suku ',num2str(k),'= ',num2str(s)]);
s=s+b;
end
%Output
disp(['Total = ',num2str(total)]);
5. Testing and Verification
Pengujian 1
Suku awal =5
Beda suku = 4
Banyak suku =5
Suku 1= 5
Suku 2= 9
Suku 3= 13
Suku 4= 17
Suku 5= 21
Total = 65
Pengujian 2.
Suku awal =6
Beda suku =-3
Banyak suku =5
Suku 1= 6
Suku 2= 3
48
Suku 3= 0
Suku 4= -3
Suku 5= -6
Total = 0
Pengujian 3
Suku awal =10
Beda suku =0
Banyak suku =5
Suku 1= 10
Suku 2= 10
Suku 3= 10
Suku 4= 10
Suku 5= 10
Total = 50
E.Latihan
1. Rancang program komputer untuk menampilkan suku deret dan jumlah total
suku deret ke n untuk deret: 3, 5, 8, 12, 17,...
2. Rancang program komputer untuk menampilkan suku deret dan jumlah total
suku deret ke n untuk deret: 4, 7, 17, 20, 30, 33,...
3. Rancang program komputer untuk menampilkan nilai variasi kecepatan dan
energi kinetik Ek= m v2 dalam bentuk tabel. Jika diketahui: massa
konstan, jumlah variasi n, interval kecepatan d, dan kecepatan awal v =0.
4. Rancang program komputer untuk menampilkan variasi nilai periode waktu,
modal awal, besar bunga, dan modal akhir dalam bentuk tabel. Jika diketahui
rumus bunga majemuk: M = Mo (1 + i)n. M= modal akhir ; Mo=modal awal,
i=bunga tiap periode dalam pesen, dan n=periode.
49
BAB 9
PROGRAM DENGAN INSTRUKSI
PERULANGAN WHILE
A.Tujuan Pembelajaran
1. Menyusun program komputer menggunakan instruksi perulangan while.
B.Teori
Instruksi perulangan while digunakan untuk mengulang suatu proses
dengan cara pengecekan nilai kondisi (benar atau salah), selagi kondisi benar
maka proses perulangan akan tetap berjalan dan stop jika kondisi salah.
Karakteristik perulangan while :
Kondisi bertipe boolean.
Proses perulangan akan berjalan selagi kondisi benar dan akan stop jika
kondisi salah.
Nilai variabel kondisi dikendalikan pada proses perulangan.
Jumlah perulangan tidak penting diketahui.
Flowchart perulangan While
kondisi
Instruksi-instruksi
50
Keterangan :
1. Instruksi-instruksi akan diulangi selagi kondisi benar, dan ketika kondisi
salah maka perulangan berhenti.
2. Intruksi-instruksi dikerjakan setelah kondisi diperikasa.
3. Harus ada satu instruksi yang mendahului while agar kondisi terpenuhi
sehingga perulangan bisa berlangsung.
4. Harus ada instruksi di antara instruksi yang diulang sehingga pada
akhirnya dapat mengubah kondisi menjadi tidak terpenuhi (salah) sehingga
perulangan dpat berhenti.
5. Apabila di awal pelaksanaan kondisi tidak terpenuhi (salah) maka
instruksi-instruksi tidak dikerjakan sama sekali.
51
Variabel
vo
a
lp
Type of data
Numeric
Numeric
Numeric
Keterangan
Input data
Input data
Input data
Interval waktu
Waktu
Kecepatan
d
t
v
Numeric
Numeric
Numeric
3. Algorithm program
a. Start
b.
Input data
Input vo
Input a
Input lp
Input d
c. Process and output
t0;
while t <= lp
vvo+ a*t;
cetak (k,t,v)
tt+d;
end
d. Stop
4. Coding
%Tabel Kecepatan glbb
%Input
clc;
vo =input('Kecepatan awal =');
a =input('Percepatan =');
lp =input ('Lama pengamatan =');
d =input ('Interval waktu = ');
%Process
disp('Nomor
Waktu
Kecepatan ');
disp(---------------------------------------);
t=0;
k=1;
while t<=lp
v=vo+ a*t;
fprintf('\n %4.0f %8.2f %8.2f ',k,t,v);
t=t+d;
k=k+1;
end
52
Input data
Output data
Output data
53
Interval waktu = 1
Nomor Waktu
Kecepatan
--------------------------------------1 0.00
2.80
2 1.00
4.30
3 2.00
5.80
4 3.00
7.30
5 4.00
8.80
6 5.00
10.30
7 6.00
11.80
Contoh Program 2
1. Defenisi masalah
Mengulang Esekusi progam komputer
2. Input and output data
Unit
Jawab
Program
Variabel
jb
Type of data
Text
3. Algorithm program
a.
b.
Start
Input data
Input jb
c. Process and output
jby
while (jb=y) or (jb=Y) do
Computer program
end
d. Stop
4. Coding
%Deret Aritmatik
jb='y';
while (jb=='y')|(jb=='Y')
clc;
a=input('Suku awal =');
54
Keterangan
Input data
Program komputer yang
akan diulang
55
Suku 5= 8
Total = 30
Dilanjutkan ? y/n =
E.Latihan
1. Rancang program komputer untuk menampilkan variasi nilai x dan y dalam
bentuk tabel dari rumus : y = a x3 + bx. Diketahui : a, b: konstan; interval x: d,
batas x: x1 sampai x2.
2. Rancang progam komputer untuk menampilkan variasi jarak tempuh glbb
dalam bentuk tabel. Jika diketahui: lama pengamatan t dan interval waktu d,
percepatan a, dan kecepatan awal vo
3. Rancang program komputer untuk menampilkan suku deret dan jumlah total
suku deret ke n untuk deret: 4, 6, 9, 13, 18,.... Program akan berhenti setelah
jumlah total suku >300.
56
BAB 10
FUNGSI
A.Tujuan Pembelajaran
1. Menyusun program komputer dengan menggunakan fungsi buatan.
B. Teori.
Fungsi adalah bagian dari program yang dibuat terpisah untuk
mengerjakan fungsi tertentu, sehingga menghasilkan satu nilai untuk
dikembalikan ke program utama.
Dalam MatLab fungsi merupakan m-file yang menerima argumen input
dan menghasilkan argumen output. Nama fungsi matlab secara default sama
dengan nama variabelnya.
Deklarasi Fungsi dalam MatLAb.
function hasil = nama (x,y,z)
Keterangan:
function = keyword (kata kunci Matlab)
hasil = argumen output.
nama = nama fungsi.
x,y,z = argumen fungsi.
C.Contoh Sederhana
Contoh 1
function hasil=luas3(a,t)
hasil= 0.5*a*t;
fungsi ini direkam dengan nama file luas3
jika fungsi dipanggil melalui program atau command window dengan
menggunakan nama file luas3 dan argumen a dan t, maka hasil akan ditampilkan
contoh eksekusi:
luas3(10,4)
ans =
20
Keteranagan: nilai 10 dicopy ke a; nilai 4 dicopy ke t
contoh 2:
function [x1,x2]=akar(a,b,c)
x1=(-b+sqrt(b^2-4*a*c))/(2*a);
x2=(-b-sqrt(b^2-4*a*c))/(2*a);
57
output program:
[x1,x2]=akar(1,5,6)
x1 =
-2
x2 =
-3
Koefisien a mengkopy nilai 1, koef b mengkopy nilai 5 dan koef c mengkopy nilai
6.
Variabel
v
m
ek
Type data
Real/Numeric
Real/Numeric
Real/Numeric
3.Algoritma program
58
Keterangan
Input data
Input data
Output data
Start
v, m
Fungsi ek
ke
Stop
Gambar 10.1. Flowchart menggunakan fungsi
4. Coding in MatLab
%Input
Clc;
v=input('Kecepatan = ');
m=input('Massa = ');
%process
energi =ek(m,v);
%Output
fprintf('\n Energy Kinetik =%8.2f ',energi );disp([' joule ']);
5. Testing and Verification
Pengujian pertama
Kecepatan = 10
Massa = 2.5
Energy Kinetik = 125.00 joule
Pengujian kedua
Kecepatan = 2.5
Massa = 15
59
Variabel
A
B
C
x1 , x2
x1k, x2k
Type of data
Numeric
Numeric
Numeric
Numeric
Kompleks
3. Algorithm program
a. Start
b.
Input data
Input a
Input b
Input c
c. Process
D b^2 4*a*c
If d> 0 then
[x1,x2]akar(a,b,c);
elseif d=0
[x1,x2]akar(a,b,c);
else
60
Keterangan
Input data
Input data
Input data
Output data
Output data
[x1k,x2k]akar(a,b,c);
end if
d. Output data
if d>0 then
write ('Nilai x1 <> x2 dan real');
write(x1);
write(x2);
elseif d=0
write('Nilai x1 = x2 dan real');
write(x1);
write (x2);
else
write('Nilai x1 <> x2 dan kompleks ');
write(x1k);
write(x2k);
end if
e. Stop
4. Coding in Matlab.
%Input
clc;
a=input('Coef a= ');
b=input('Coef b= ');
c=input('Coef c= ');
%Process
d=b.^2 - 4*a*c;
if d>0
[x1,x2]=akar(a,b,c);
elseif d==0
[x1,x2]=akar(a,b,c);
else
[x1k,x2k]=akar(a,b,c);
end
%Output
if d>0
disp('value X1 <> X2 and real');
fprintf('\n x1 =%5.2f ',x1);
fprintf('\n x2 =%5.2f ',x2);
elseif d==0
61
E.Latihan
Soal-soal berikut telah dikerjakan pada bab sebelumnya namun belum
menggunakan fungsi. Pada bab ini anda diminta mengerjakannya dengan
menggnakan fungsi.
1. Susun program komputer dengan menggunakan fungsi untuk menghitung
jarak tempuh gerak lurus beraturan.
62
rumus berikut:: P b 2
bd d
63
BAB 11
VARIABEL ARRAY SATU DIMENSI
A.Tujuan pembelajaran
1. Menyusun program komputer menggunakan array dimensi satu
B.Teori.
Variabel array dimensi satu adalah variabel yang mempunyai satu indeks.
Variabel array dimesi satu digunakan untuk menampung sejumlah data yang
tipenya sama. Contoh pemakaian variabel array dimensi satu: untuk menampung
sejumlah data skor siswa, data gaji, data nama dan lainnya.
Input data array dengan Matlab.
Cara 1:
a=input( a = );
a= [12 13 7 6];
Input data menunjukan:
a(1)= 12; a(2)=13; a(3)=7; a(4)=6;
cara 2:
for k = 1:n
% n=banyak data
fprintf('Data:%3.0f',k);
a(k)=input(Input data : );
end
Outut data array dengan Matlab.
Cara 1:
%menampilkan data variabel a
a
Cara 2:
for k = 1:n
fprintf('\n Data ke: %3.0f, = %8.2f\n',k,a(k));
end
64
Operasi
Penjumlahan dengan sekalar
a=array; k=sekalar
Perkalian dengan sekalar
a=array; k=sekalar
Penjumlahan a= array,
b=array
Perkalian a= array, b=array
Pembagian a= array, b=array
Pemangkatan a= array,
b=array, k=sekalar
Pemangkatan a= array,
k=sekalar
Hasil
a+k=[a(1)+k, a(2)+k,...a(n)+k]
a*k=[a(1)*k, a(2)*k,...a(n)*k]
a+b=[a(1)+b(1), a(2)+b(2),...a(n)+b(n)]
a.*b=[a(1)*b(1), a(2)*b(2),...a(n)*b(n)]
a./b=[a(1)/b(1), a(2)/b(2),...a(n)/b(n)]
a.^b=[a(1)^b(1), a(2)^b(2),...a(n)^b(n)]
a.^k=[a(1)^k, a(2)^k,...a(n)^k]
65
ans =
9 25
36
49
64 100
10
16
4.0000
64
p=0:0.5:6
66
p=
Columns 1 through 7
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
Columns 8 through 13
3.5000 4.0000 4.5000 5.0000 5.5000 6.0000
p(10)
ans =
4.5000
Variabel
n
d
total
av
ds
Type of data
Numeric
Numeric
Numeric
Numeric
Numeric
3. Algorithm program
a. Start
b.
Input data
Input n
for k1:n
input d(k)
end
c. Process
total0;
for k1:n
totaltotal+d(k);
end
avtotal/n;
totalav0;
for k1:n
totalavtotalav+(d(k)-av)^2;
67
Keterangan
Input data
Input data
Output data
Output data
Output data
end
dssqrt(totalav/(n-1));
d. Output data
Write(total)
Write (av)
Write(ds)
e. Stop
4. Coding
%Deviation standard Value
%Input
clc;
n=input('Banyak data =');
for k=1:n
fprintf('Data:%3.0f',k);
d(k)=input(' Input data= ');
end
%Process
total=0;
for k=1:n
total=total+d(k);
end
av=total/n;
totalav=0;
for k=1:n
totalav=totalav+(d(k)-av)^2;
end
ds=sqrt(totalav/(n-1));
%Output
fprintf('\n Total = %8.2f',total);
fprintf('\n Average = %8.2f\n',av);
fprintf('\n Deviation standard = %8.2f\n',ds);
5. Testing and Verification
Testing 1
Data: 1 Input data= 10
Data: 2 Input data= 20
68
E.Latihan
1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P X i Xi2 X
2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P XiYi ( X i Y )
3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P (XiYi )2 Yi Y
4. Rancang program komputer untuk menampilkan tabel gaji pegawai yang
terdiri dari kolom : nomor, nama, gaji pokok, potongan dan gaji bersih. Pada
baris terakhir tampilkan gaji total seluruh pegawai.
5. Rancang program komputer untuk menentukan besar korelasi product
moment.
69
BAB 12
VARIABEL ARRAY DUA DIMENSI (MATRIKS)
A.Tujuan pembelajaran
1. Menyusun program komputer dengan menggunakan fungsi standar
MatLab untuk matriks.
2. Penyelesaian sistem persamaan linear
B.Teori.
Variabel array dimensi dua adalah variabel yang mempunyai dua indeks.
Indeks pertama menunjukan posisi baris dan indeks kedua menunjukkan posisi
kolom. Variabel array dimesi dua digunakan untuk menampung data matriks
dengan tipe data yang sama untuk seluruh elemen.
Input data array dimensi dua dengan Matlab.
Cara 1:
a=input( a = );
a= [12 13; 7 6; 4 9];
Input data menunjukkan:
a(1,1)= 12; a(1,2)=13; a(2,1)=7; a(2,2)=6; a(3,1)=4; a(3,2)=9
cara 2:
for b = 1:m
for k= 1:n
fprintf('Data:%3.0f, %3.0f ',b, k);
a(b,k)=input(Input data : );
end
end
Outut data array dimensi dua dengan Matlab.
Cara 1:
a
(menampilkan matriks a)
Cara 2:
for b = 1:n
for k = 1:m
70
end
end
Tabel 12.1. Operasi dan fungsi standar pada matriks.
No
Operasi
1
2
3
4
5
6
Bentuk
coding
a+b
a*b
a.*b
inv(a)
det(a)
eig(a)
a
rank(a)
Umum
Umum
Umum
size(a)
Umum
71
Syarat
ans =
-17
3.Transpose matriks
a=[3 4 6;2 5 7;3 2 1]
a=
3 4 6
2 5 7
3 2 1
a'
ans =
3 2 3
4 5 2
6 7 1
4.Nilai eigen matriks
a=[3 4 6;2 5 7;3 2 1]
a=
3 4 6
2 5 7
3 2 1
eig(a)
ans =
10.4688
0.7364
-2.2052
5.Perkalian dua matriks
a=[3 4 5;7 8 4;2 5 1];
b=[2 4 7;2 6 3;3 2 4];
a.*b
ans =
6 16 35
14 48 12
6 10 4
a*b
ans =
29 46 53
42 84 89
72
17
40
33
8.Matriks nol
zeros(3,4)
ans =
0 0 0
0 0 0
0 0 0
zeros(3)
0
0
0
ans =
0
0
0
0
0
0
0
0
0
9.Matriks satu
ones(3)
ans =
1
73
1
Sahyar Econophysics Unimed Medan
1
1
1
1
1
1
a x1 b x 2 c x 3 d
e x1 f x 2 g x 3 h
i x1 j x 2 k x 3 l
a b c x 1 d
e f g x h
2
i j k x 3 l
P X Q
XP\Q
Keterangan: P=matriks orde 3 x 3; Q dan X orde 3 x1, dengan menggunakan
fasilitas Matlab nilai-nilai variabel xd dapat dihitung dengan rumus:X=P\Q
Nilai X adalah nilai variabel x1, x2 dan x3 dalam bentuk matriks
Variabel
a
b
c=a+b
d=a*b
Type of data
Numeric/matriks
Numeric/matriks
Numeric /matriks
Numeric /matriks
3. Algorithm program
a. Start
74
Keterangan
Input data
Input data
Output data
Output data
b.
Input data
Baca( a)
Baca (b)
c. Process
ca+b
da*b
d. Tampil
a
b
c
d
e. Stop
4. Coding
%Input data Matriks
clc;
a=input('Input elemen matriks a =');
b=input('Input elemen matriks b=);
%proses;
c=a+b;
d=a*b;
%output
disp('Matriks a');
a
disp(Matriks b);
b
disp('Matriks c = a+b ');
c
disp(Matriks d= a*b);
d
5. Testing and Verification
Input elemen matriks a =[3 5 6;7 8 9;3 4 8]
Input elemen matriks b=[2 3 5;4 6 9;2 3 1]
Matriks a
a=
3
75
6
Sahyar Econophysics Unimed Medan
7
3
8
4
9
8
Matriks b
b=
2
4
2
3
6
3
5
9
1
Matriks c = a+b
c=
5
11
5
8 11
14 18
7 9
Matriks d= a*b
d=
38
64
38
57 66
96 116
57 59
CONTOH 2:
1. Defenisi masalah.
Menentukan: invers, determinan, dan transpose matriks.
2. Struktur data
Unit
Matriks a
Matriks b (invers a)
Matriks c (determinan
a)
Matriks d (Transpose
a)
Variabel
a
b=invers(a)
c=det(a)
Type of data
Numeric/matriks
Numeric/matriks
Numeric /matriks
Keterangan
Input data
Output data
Output data
d= a
Numeric /matriks
Output data
3. Algorithm program
76
a. Start
b. Input data
c. Process
d. Tampil
6. Stop
Baca( a)
binvers(a);
cdet(a);
da;
a
b
c
d
4. Coding
%Input data Matriks
clc;
a=input(Input elemen matriks a =);
%proses;
b=inv(a);
c=det(a);
d=a;
%output
disp(Matriks a);
a
disp(b= Invers a);
b
disp(c= determinan a );
c
disp(d= Transpose a );
d
77
7 8
b= Invers a
b=
-2.6667 1.6667
2.3333 -1.3333
c= determinan a
c=
-3
d= Transpose a
d=
4 7
e. 8
Testing ke 2
Input elemen matriks a =[7 8 9;3 4 5;2 7 8]
Matriks a
a=
7 8 9
3 4 5
2 7 8
b= Invers a
b=
0.1875 0.0625 -0.2500
0.8750 -2.3750 0.5000
-0.8125 2.0625 -0.2500
c= determinan a
c=
-16
d= Transpose a
d=
7 3 2
8 4 7
9 5 8
CONTOH 3
1. Defenisi Masalah
78
79
Keterangan
Input data
Input data
Output data
F.Latihan
1. Rancang program komputer untuk menentukan hasil rumusan berikut: C=A*
inv(A).
2. Rancang program komputer untuk menentukan hasil rumusan berikut: C =
P*Q*R.
3. Rancang program komputer untuk menentukan hasil rumusan berikut:
C=(P*Q)+R.
4. Selesaikan sistem persamaan berikut:
X1 + 7X2 - 3X3 =
-51
4X1- 4X2 + 9X3 =
61
12 X1 X2 + 3X3 =
8
5. Selesaikan sistem persamaan berikut:
-6I1 + 12I3 =
60
4I1- I2 - I3 =
-2
6I1 + 8I2 =
44
80
BAB 13
GRAFIK DUA DIMENSI
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk visual grafik dua dimensi pada satu
jendela dengan menggunakan fungsi standar MatLab.
2. Menyusun program komputer untuk visual grafik dua dimensi pada multi
jendela dengan menggunakan fungsi standar MatLab.
B.Teori.
Grafik merupakan kumpulan titik-titik koordinat yang menunjukkan pola
hubungan dua variabel atau lebih. Titik-titik koordinat merupakan nilai-nilai
variabel yang saling berhubungan atau hubungan kausalitas. Melalui grafik dapat
diketahui pola hubungan dua variabel yaitu varibabel bebas (yang memberi
pengaruh) dan variabel terikat (variabel yang dipengaruhi). Dalam Matlab satu
grafik dapat ditampilkan pada satu jendela atau beberapa grafik dapat ditampilkan
ke dalam beberapa jendela secara bersamaan.
Tabel 13.1. Beberapa fungsi standar untuk grafik dua dimensi pada Matlab
Fungsi
plot(x,y)
Penjelasan
Menggambar grafik garis 2D dengan skala linear pada
kedua sumbunya
loglog(x,y)
Menggambar grafik garis 2D dengan skala logaritma pada
kedua sumbunya
semilogx(x,y)
Menggambar grafik garis 2D dengan skala logaritma pada
sumbu x
semilogy(x,y)
Menggambar grafik garis 2D dengan skala logaritma pada
sumbu y
bar(x,y)
Menggambar grafik batang 2D
stairs(x,y)
Menggambar grafik tangga 2D
polar(t,r)
Menggambar grafik garis pada koordinat polar, t=sudut,
r=radius.
plotyy(x,y,x,y,plot,stem) Menggambar grafik 2D dengan arsir pada sumbu y
fplot(ff,[b,a])
Menggambar grafik garis 2D menggunakan file fungsi
eksternal. ff=nama file fungsi, b=batas bawah skla, a=batas
atas skala pada sumbu x.
81
Penjelasan
Menggambar grafik garis 2D dengan y1=f(x) warna
c1.
plot(x,y1,c1,x,y2,c2,x,y3,c3) Menggambar tiga grafik garis 2D pada sumbu yang
sama dengan y1=f(x) warna c1, y2=f(x) warna c2 dan
y3=f(x) warna c3.
Symbol
y
m
c
r
g
b
w
k
Warna
Yellow
Magenta
Cyan
Red
Green
Blue
White
Black
82
Penjelasan
Mengaktifkan garis skala grafik
Membuat judul grafik
Membuat label pada sumbu x
Membuat label pada sumbu y
Membuat keterangan masing-masing grafik
a= batas bawah sumbu x, batas atas sumbu y, n=jumlah
segmen pada sumbu x
y= A sin x
15
10
y axis
5
0
-5
-10
-15
0
10
12
x axis
83
14
simpangan
4
2
0
-2
-4
-6
-8
0
waktu
84
y axis
5
0
-5
-10
-15
-2
x axis
85
y axis
5
0
-5
-10
-15
0
10
12
x axis
86
14
150
30
2
180
210
330
240
300
270
87
fplot('fk',[-10,10]);
xlabel('Sb x');ylabel('Sb y');
title('Fungsi ekternal f(x)=x^2+5*x+6');
grid on;
Testing:
Fungsi ekternal f(x)=x2+5*x+6
200
Sb y
150
100
50
0
-10
-5
0
Sb x
88
10
Testing:
Banyak data = 6
Data ke = 1
x=1
y=3
Data ke = 2
x=2
y=5
Data ke = 3
x=3
y=8
Data ke = 4
x=4
y = 13
Data ke = 5
x=5
y=6
Data ke = 6
x=6
y=2
Output:
Kuve data empirik
14
12
Sumbu y
10
8
6
4
2
1
Sumbu x
89
Coding:
%Kurve 2D menggunakan arsir
clc;
clear;
disp('y=a sin x');
a=input('Amplitudo = ');
n=input('Jumlah priode = ');
x=0:0.1:2*pi*n;
y=a*sin(x);
plotyy(x,y,x,y,'plot','stem');
xlabel('sb x');ylabel('sb y');
title('Kurve dengan Arsir');
grid on;
Testing:
y=a sin x
Amplitudo = 10
Jumlah priode = 2
Output:
sb y
10
-5
-5
-10
10
12
sb x
90
-10
14
10
10
sb y
10
10
10
10
-1
10
10
10
sb x
91
Variabel
a
n
y
x
Type of data
Numeric
Numeric
Numeric
Numeric (radian)
3. Algorithm program
a. Start
b.
Input data
Input a, n
c.Process
x0:0.01:2*pi*n;
y1a*sin(x);
y2a*cos(x);
d.Output
subplot(2,1,1); plot(x,y1);
subplot(2,1,2); plot(x,y2);
e.Stop
92
Keterangan
Input data
Input data
Input data
Input data
Output data
4. Coding
%graphic 1.y= a sin(x)
%graphic 2.y= a cos(x)
%input
n=input('Number of periode: ');
a=input('Amplitude = ');
%process
x=0:0.01:2*pi*n;
y1=a*sin(x);
y2=a*cos(x);
%output
subplot(2,1,1);plot(x,y1,'b');
xlabel('x axis');ylabel('y axis');
title('y= A sin x');
grid on;
subplot(2,1,2);plot(x,y2,'r');
xlabel('x axis');ylabel('y axis');
title('y= A cos x');
grid on;
5. Uji coba dan Testing and Verification
Jumlah priode: 3; Amplitudo = 15
93
Variabel
a
n
y
x
Type of data
Numeric
Numeric
Numeric
Numeric (radian)
3. Algorithm program
a. Start
b.
Input data
Input a, n
c.Process
x=0:0.01:2*pi*n;
y1=a*(cos(x)).^2;
y2=a*(sin(x)).^2;
d.Output
subplot(1,2,1); plot(x,y1);
subplot(1,2,2); plot(x,y2);
e.Stop
4. Coding
%graphic 1.y= a (cos(x))^2
%graphic 2.y= a (sin(x))^2
%input
n=input('Jumlah periode: ');
a=input('Amplitudo = ');
%process
x=0:0.01:2*pi*n;
y1=a*(cos(x)).^2;
y2=a*(sin(x)).^2;
%output
subplot(1,2,1);plot(x,y1,'b')
94
Keterangan
Input data
Input data
Input data
Input data
Output data
15
y= A (sin x)2
15
data1
data1
10
y axis
y axis
10
10
x axis
15
20
10
x axis
15
20
95
Variabel
Type of data
Keterangan
Amplitudo
Jumlah periode
Simpangan
Sudut
Graphics
a
n
y
x
Numeric
Numeric
Numeric
Numeric (radian)
3. Algorithm program
a. Start
b.
Input data
Input a, n
c.Process
x0:0.01:2*pi*n;
y1a*sin(x);
y2a*cos(x);
y3a*tan(x);
y4a*(sin(x)).^2;
d.Output
subplot(2,2,1); plot(x,y1);
subplot(2,2,2); plot(x,y2);
subplot(2,2,3); plot(x,y3);
subplot(2,2,4); plot(x,y4);
e.Stop
4. Coding
clc;
%graphic 1.y= a sin(x)
%graphic 2.y= a cos(x)
%graphic 3.y= a exp(-x).*cos(x)
%graphic 4.y= a (sin(x))^2
%input
n=input('Number of periode: ');
a=input('Amplitude = ');
%process
x=0:0.01:2*pi*n;
y1=a*sin(x);
y2=a*cos(x);
y3=a*exp(-x).*cos(x);
y4=a*(sin(x)).^2;
%output
96
Input data
Input data
Input data
Input data
Output data
subplot(2,2,1);plot(x,y1,'b')
xlabel('x axis');ylabel('y axis');
title('y= A sin x');
grid on;
subplot(2,2,2);plot(x,y2,'r');
xlabel('x axis');ylabel('y axis');
title('y= A cos x ');
grid on;
subplot(2,2,3);plot(x,y3,'b');
xlabel('x axis');ylabel('y axis');
title('y= A exp(-x)cos(x) ');
grid on;
subplot(2,2,4);plot(x,y4,'r');
xlabel('x axis');ylabel('y axis');
title('y= A (sin x)^2 ');
grid on;
5. Testing and Verification
Jumlah priode: 3
Amplitudo = 15
y= A sin x
20
10
y axis
y axis
10
0
-10
-20
0
-10
15
10
15
x axis
y= A exp(-x)cos(x)
20
-20
10
x axis
y= A (sin x)2
15
20
10
x axis
15
20
y axis
y axis
10
97
15
10
-5
y= A cos x
20
10
x axis
15
20
F.Latihan
1. Rancang program komputer untuk menggambar grafik y vs x dari persamaan :
y = a x2 + b x + c.
2. Rancang program komputer untuk menggambar grafik d vs t dari persamaan:
d = vo t + a t2
3. Rancang program komputer untuk menggambar grafik x vs y atau kurve
Lissajous, yaitu paduan getaran harmonis saling tegak lurus. x= A sin (p t) dan
y=B sin(q t). Dalam hal ini : p, q frekuensi, t=waktu.
4. Rancang program komputer untuk menggambar grafik lintasan peluru.
5. Rancang program komputer untuk menggambar grafik superposisi getaran
mekanik dalam dua dimensi. Input: amplitudo, periode dan beda fase
6. Rancang program komputer untuk menggambar grafik Lissajous getaran
mekanik dalam dua dimensi. Input: frekuensi masing-masing getaran.
7. Rancang program komputer untuk menggambar grafik y = a x 2 + b x + c dan
y= a (cos(x))2 + sin(x) pada layar orde 2 x 1.
8. Rancang program komputer untuk menggambar grafik t vs d dari rumus d =
vo t + a t2 dan Ek vs v dari rumus Ek= 0.5* m* v2 pada layar orde 1 x 2.
9. Rancang program komputer untuk menggambar grafik lintasan peluru pada
layar orde 2 x 2. Dalam kasus ini kecepatan awal konstan, g=10 m/s2, dan
sudut elevasi pada masing-masing layar : 20, 30, 45 dan 60 derjat.
98
BAB 14
GRAFIK DALAM TIGA DIMENSI
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk grafik garis tiga dimensi dengan
menggunakan fungsi standar MatLab.
2. Menyusun program komputer untuk visual grafik permukaan tiga dimensi
dengan menggunakan fungsi standar MatLab.
B.Teori
Grafik tiga dimensi adalah garis yang menghubungkan posisi titik dalam
tiga dimensi yaitu kordinat x, y dan z. Nilai z diperoleh dengan memvariasi nilai x
dan y dalam fungsi z=f(x,y). Untuk setiap nilai x,y akan diperoleh satu nilai z atau
sebaliknya.
Grafik permukaan tiga dimensi adalah grafik yang menggambarkan
selimut atau permukaan bangun ruang. Kordinat selimut ditentukan oleh kordinat
x, dan y dalam bentuk matriks, sedangkan tinggi permukaan selimut ditentukan
oleh kordinat z.
Fungsi yang dapat digunakan menggambar grafik garis tiga dimensi dalam
Matlab adalah:
Cara 1
>>x=a:b:c; %variasi nilai x
>>y=x; % variasi nilai y
>z=f(x,y); %variasi nilai z
>>plot3(x,y,z);
Cara 2
>>[x,y]=meshgrid([a:b:c]); %variasi nilai x dan y
>>z=f(x,y); % variasi nilai z
>>plot3(x,y,z);
Fungsi yang disiapkan Matlab untuk menggambarkan selimut bangun
ruang adalah:
Cara 1. Untuk permukaan berarsir.
>>x=a:b:c;
>>y=x;
>>[x,y]=meshgrid(x,y)
99
>>z=f(x,y);
>>surf(x,y,z);
>>colormap(gray)
Cara 2 (untuk permukaan halus )
>>x=a:b:c;
>>y=x;
>>[x,y]=meshgrid(x,y)
>>z=f(x,y);
>>surfl(x,y,z);
>>shading interp;
>>colormap(cool)
Pengaturan Warna kurve permukaan.
Untuk mengatur kurve permukaan digunakan sintaks: colormap(fungsi
warna). Berikut tabel fungsi untuk pengaturan warna permukaan.
Tabel 14.1.
Pilihan warna untuk grafik permukaan
No
mor
1
2
3
4
5
6
7
8
9
10
Colormap(fungsi
warna)
hsv
hot
cool
pink
gray
bone
jet
copper
prism
flag
Warna
Hue-saturation value
Black-red-yellow-white
Shades of cyan and magenta
Pastel shades of pink
Linear gray scale
Gray scale with a tinge of blue
A variant of HSV
Linear copper-tone
Prism
Alternating red, white, and black
Variabel
r
p
Type of data
Numeric
Numeric
3. Algorithm program
100
Keterangan
Input data
Input data
Output data
a. Start
b. Input data
input: p,r
c. Process
t0:0.1:2*pi*p;
xr* sin(t);
yr* cos(t);
d. Output
plot3(x,y,t);
grid on
d. Stop
4. CODING
%graphic helix
%input
clc;
p=input('Jumlah periode: ');
r=input('Jari-jari:');
%process
t=0:0.1:p*2*pi;
x=r*sin(t);
y=r* cos(t);
plot3(x,y,t);
grid on
xlabel('x axis');ylabel('y axis');zlabel('z axis');
title('Helix');
5. Testing and Verification
Jumlah periode: 15; Jari-jari:8
101
Helix
data1
100
z axis
80
60
40
20
0
10
5
10
5
-5
y axis
-5
-10 -10
x axis
Variabel
a, b
n
z
x,y
Type of data
Numeric
Numeric
Numeric
Numeric (radian)
3. Algorithm program
a. Start
b.
Input data
Input a,b, n
c.Process
x0:0.01:2*pi*n;
yx;
[x,y]meshgrid(x,y)
102
Keterangan
Input data
Input data
Input data
Input data
Output data
z a*sin(x) + b sin(y)
d.Output
surf(x,y,z)
e.Stop
4. Coding
%graphic z= a sin(x) + b sin (y)
%input
clc;
n=input('Jumlah Periode : ');
a=input('Amplitudo 1= ');
b=input('Amplitudo 2= ');
%process
x=0:0.3:2*pi*n;
y=x;
[x,y]=meshgrid(x,y);
z=a*sin(x)+b*sin(y);
%output
colormap(gray);
surf(x,y,z)
xlabel('x axis');ylabel('y axis');zlabel('z axis');
title('z= A sin x + B sin y');
grid on;
5. Testing and Verification
Testing 1
Jumlah Periode : 2
Amplitudo 1 = 3
Amplitudo 2 = 4
103
104
Coding:
%graphic y= a sin(x) + b sin (y)
%input
clc;
n=input('Jumlah Periode : ');
a=input('Amplitudo 1= ');
b=input('Amplitudo 2= ');
%process
x=0:0.3:2*pi*n;
y=x;
[x,y]=meshgrid(x,y);
z=a*sin(x)+b*sin(y);
%output
colormap(gray);
surfl(x,y,z);
shading interp;
xlabel('x axis');ylabel('y axis');zlabel('z axis');
title('z= A sin x + B sin y');
grid on;
Testing:
Jumlah Periode : 2
Amplitudo 1= 3
Amplitudo 2= 4
105
Contoh 2:
1. Defenisi Masalah
Grapik z = a*x^2 +b* y^2
2. Struktur data
Unit
Koefisien
Koordinat
Graphics
Variabel
a, b
x,y,z
Type of data
Numeric
Numeric
3. Algorithm program
a. Start
b.
Input data
Input a, b
c.Process
x-10:0.2:10;
yx;
[x,y]meshgrid(x,y)
z a*x^2 +b* y^2
d.Output
surf(x,y,z)
e.Stop
4. Coding
%input
clc;
disp(Grafik z = a*x^2 +b* y^2);
a=input('Koefisien a = ');
b=input('Koefisien b = ');
%process
x=-10:0.4:10;
y=x;
[x,y]=meshgrid(x,y);
z= a*x.^2 +b* y.^2;
%output
colormap(gray);
surf(x,y,z)
xlabel('x axis');ylabel('y axis');zlabel('z axis');
title('z= a*x^2 +b* y^2 ');
grid on;
106
Keterangan
Input data
Input data
Output data
107
108
E.Latihan.
1. Rancang program komputer untuk menggambar bangun kerucut dengan
menggunakan grafik garis tiga dimensi.
2. Rancang program komputer untuk menggambar bangun kerucut dengan posisi
puncak kerucut pada bagian bawah dengan menggunakan grafik garis tiga
dimensi.
3. Rancang program komputer untuk menggambar bangun kerucut dengan posisi
puncak kerucut pada bagian kanan dengan menggunakan grafik garis tiga
dimensi.
4. Rancang program komputer untuk menggambar bangun kerucut dengan posisi
puncak kerucut pada bagian kiri dengan menggunakan grafik garis tiga
dimensi.
5. Susunlah program komputer untuk visual grafik permukaan bola.
6. Susunlah program komputer untuk visual grafik permukaan bidang datar
posisi miring.
7. Susunlah progam komputer untuk visual grafik permukaan elip.
109
BAB 15
DIAGRAM BATANG DAN PASTEL
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk visual diagram batang dan pastel
dengan menggunakan fungsi standar MatLab.
B.Teori.
Diagram batang digunakan untuk melihat sekumpulan data selama kurun
waktu tertentu dan sesuai untuk data yang berbentuk diskrit. Diagram pastel
digunakan untuk menampilkan data dalam bentuk pastel dengan tampilan data
secara persentase. Setiap elemen data akan dibandingkan dengan penjumlahan
seluruh data yang ada.
Sintaks untuk menggambar diagram batang.
1.Diagram batang dua dimensi
Bentuk sintaks:
>>bar (t)
Keterangan:
t adalah data diagram batang dalam bentuk matriks.
Elemen kolom menyatakan kumpulan data digaram untuk setiap periode
Data baris pertama menyatakan periode pertama dan data baris ke n
menyatakan periode ke n.
Contoh: t=[a b c; d e f; g h i; j k l]. Data periode satu: a b c dan data
periode 3 adalah: j k l.
Bentuk sintaks:
>>bar (p,t)
Keterangan:
t adalah data diagram batang dalam bentuk matriks.
Elemen kolom menyatakan kumpulan data diagram untuk setiap periode
Data baris pertama menyatakan periode pertama dan data baris ke n
menyatakan periode ke n.
Contoh: t=[a b c; d e f; g h i; j k l]. Data periode kesatu: a b c dan data
periode ke 3 adalah: j k l.
Data p adalah array dimensi satu yang menyatakan waktu atau tahun setiap
periode. Contoh: p=[2000 2001 2002]; p(1)=2000;p(2)=2001;p(3)=2002.
Data ini menyatakan data tahun periode 1 sampai periode 3.
2.Diagram batang tiga dimensi
Bentuk sintaks:
110
111
Diagram batang 2D
900
800
Beras
Jagung
700
Volume
600
500
400
300
200
100
0
2001
2002
Priode
2003
Testing:
Tahun produksi =[2000 2001 2002 2003]
Volume produksi = [300 500;400 700;500 800;300 900]
112
1200
Volume
1000
800
600
400
200
0
2000
2001
2002
2003
Priode
113
Diagram batang 3D
Beras
Jagung
800
600
400
200
0
2001
2002
2003
2004
Volume
Priode
114
Diagram pastel
20%
Beras
Jagung
Kedelai
30%
50%
D.Latihan
1. Rancang program komputer untuk menampilkan jumlah siswa pada satu
sekolah dengan menggunakan diagram batang. Data input jumlah periode,
jumlah siswa wanita dan laki-laki pada tiap periode.
2. Rancang program komputer untuk menampilkan persantase kelulusan
mahasiswa yang mendapat nilai A, B, C, D dan E dengan menggunakan
diagram pastel. Input data jumlah siswa yang mendapat nilai A, B, C dan D.
115
BAB 16
AKAR-AKAR PERSAMAAN
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk menentukan akar-akar persamaan
fungsi polynomial dengan menggunakan fungsi standar MatLab.
2. Menyusun program komputer untuk menentukan persamaan fungsi
polynomial dengan menggunakan fungsi standar MatLab jika diketahui
akar-akarnya.
3. Menyusun program komputer untuk menentukan akar-akar persamaan
fungsi nonlinear dengan menggunakan fungsi standar MatLab.
B.Teori
Jika f(x) = 0, maka nilai-nilai x yang memenuhi persamaan tersebut
disebut sebagai akar-akar persamaan. Pada bab ini akan diuraikan bagaimana
menentukan akar-akar persamaan untuk fungsi polynomial dan bentuk fungsi
nonlinear dengan bantuan Matlab.
Persamaan polynomial dapat dinyatakan dalam bentuk sebagai berikut:
f ( X ) an X n an 1 X n 1 an 2 X n 2 ...a1 X a0
Untuk menentukan akar-akar persamaan polynomial pada derajat n=2 atau
persamaan kuadrat dapat diselesaikan secara analitik dengan menggunakan rumus
abc, sedangkan untuk derajat n harus menggunakan pendekatan metode numerik.
Bahasa pemrograman MatLab menyediakan fasilitas standar siap pakai untuk
menyelesaikan akar-akar persamaan polynomial dan persamaan nonlinear,
sehingga programmer sangat terbantu dalam menyusun program komputer yang
terkait dengan persamaan polynomial atau nonlinear. Adanya fasilitas fungsi
standar, programmer tidak perlu lagi merancang program komputer dalam
menentukan akar-akar persamaan. Dalam penyusunan program programmer
hanya melakukan modifikasi pada bagian input dan output, sedangkan bagian
proses menggunakan fungsi standar. Aplikasi penentuan akar-akar persamaan
banyak dipakai dalam bidang sains maupun teknik. Menentukan akar-akar
persamaan adalah menentukan nilai variabel bebas yang memberi dampak bernilai
nol pada variabel terikat.
Fungsi standar MatLab untuk persamaan polynomial dan nonlinear:
Tabel 16.1. Fungsi standar persamaan polynomial dan nonlinear
No
1
Fungsi
roots(p)
poly(r)
116
Kegunaan
Menentukan akar-akar persamaan polynomial p. Variabel p adalah
koefisien persamaan polynomial dari pangkat n sampai nol dalam
bentuk array.
Menentukan persamaan polynomial dengan akar-akar r. Variabel r
No
Fungsi
polyval(p,x)
4
5
6
7
conv(a,b)
deconv(a,b)
residue(a,b)
solve(f(x)=0)
Kegunaan
adalah akar-akar persamaan polynomial dalam bentuk array.
Menentukan nilai persamaan plynomial untuk seluruh nilai x.
Variabel x adalah array. Variabel p adalah koefisien-koefisien
persamaan polynomial dalam bentuk array
Perkalian polynomial a dan b
Pembagian polynomial a dengan b
Sisa pembagian polynomial a dengan b
Menentukan akar-akar persamaan fungsi nonlinear.
Variabel
n
a
r
Type of data
Numeric
Numeric /array
Numeric /array
3. Algorithm program
a. Start
b.
Input data
Input n
j0
for in:-1:0
jj+1;
input: a(j)
end
c.Process dan Output
rroots(a);
r
d. Stop
1. Coding:
%menentukan akar polynomial
clc;
%input
n=input('Derajat polynomial=');
j=0;
for i=n:-1:0
j=j+1;
disp(' ');
117
Keterangan
Input data
Input data
Output data
118
Akar-akar persamaan:
Akar ke: 1=11.7473
Akar ke: 2=2.7028
Akar ke: 3=-1.2251+1.4672i
Akar ke: 4=-1.2251-1.4672i
119
[ -5]
[ -2]
Variabel
n
a
p
x
v
Type of data
Numeric
Numeric /array
Numeric /array
Numeric/array
Numeic/array
3. Algorithm program
a. Start
b. Input data
input n
for i1:n
input a(i);
end
c.Process
ppoly(a);
d.Output
j0;
for in:-1:0
jj+1;
p(j)
end
%kurve polynomial
xlinspace(-10,10,100);
vpolyval(p,x);
plot(x,v);
grid on;
title('Kurve Polynomial');
xlabel('x');ylabel('y');
e.Stop
4.Coding:
%menentukan persamaan polynomial
clc;
120
Keterangan
Input data
Input data
Output data
Output data
Output data
clear;
%input
n=input('Derajat polynomial=');
for i=1:n
disp(' ');
disp(['Akar ke : ',num2str(i)]);
a(i)=input('Akar = ');
end
%proses
p=poly(a);
%output
j=0;
for i=n:-1:0
j=j+1;
disp(' ');
disp(['Koef. pangkat: ',num2str(i),'=',num2str(p(j))]);
end
%kurve polynomial
x=linspace(-10,10,100);
v=polyval(p,x);
plot(x,v);
grid on;
title('Kurve Polynomial');
xlabel('x');ylabel('y');
5.Pengujian Program
Testing:
Derajat polynomial=2
Akar ke : 1
Akar = -3
Akar ke : 2
Akar = 5
Koef. pangkat: 2=1
Koef. pangkat: 1=-2
Koef. pangkat: 0=-15
121
Kurve Polynomial
120
100
80
60
40
20
0
-20
-10
-5
0
x
10
F.Latihan.
1. Pilih suatu persamaan kuadrat, lalu tentukan akar-akar persamaan dengan
menggunakan fungsi standar Matlab. Bandingkan hasilnya dengan
menggunakan perhitungan manual menggunakan rumus abc.
2. Pilih tiga buah akar-akar persamaan, lalu tentukan persamaan
polynomialnya dengan menggunakan fungsi standar Matlab. Bandingkan
dengan perhitungan secara manual.
122
BAB 17
FITTING DATA DAN INTERPOLASI
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk menentukan persamaan fungsi
polynomial dengan menggunakan fungsi standar MatLab berdasarkan data
empirik.
2. Menyusun program komputer untuk melakukan interpolasi data dengan
menggunakan fungsi standar MatLab.
B.Fitting Data
Fitting data adalah proses menentukan persamaan yang paling sesuai
dalam menjelaskan hubungan variabel bebas dengan variabel terikat dari sejumlah
pasangan data (x,y) hasil pengukuran. Jika x variabel bebas dan y variabel terikat
maka akan ditentukan persamaan y=f(x). Matlab menyediakan fungsi-fungsi
standar untuk fitting data dalam bentuk persamaan polynomial orde n. Persamaan
fitting data semakin baik jika nilai chi kuadrat semakin kecil.
No
1
1
3
2
6
3
10
4
18
5
22
6
25
x
y
1
3
2
6
3
10
4
16
5
20
6
35
Data pengamatan 2
123
Coding program:
%curve fitting
clc;
clear;
n=input('Banyak data pengamatan = ');
m=input ('Orde Fitting polynomial = ');
for k=1:n
disp(['Data ke = ',num2str(k)]);
x(k)=input('x = ');
y(k)=input('y = ');
end;
p1=polyfit(x,y,m);
disp(['Orde polynomial =',num2str(m)]);
disp('Koefisien polynomial :');
p1
y1=polyval(p1,x);
ks=sum(((y-y1)/y1).^2);
disp('Nilai chi kuadrat=');
ks
x1=x(1):0.1:x(n);
z1=polyval(p1,x1);
plot(x,y,'o',x,y,'b',x1,z1,'k');
title('Kuve fitting Polynomial');
xlabel('Sumbu x ');ylabel('Sumbu y');
grid on;
Output Program:
Testing 1
Banyak data pengamatan = 6
Orde Fitting polynomial = 1
Data ke = 1
x=1
y=3
Data ke = 2
x=2
y=6
Data ke = 3
x=3
y = 10
Data ke = 4
x=4
y = 18
124
Data ke = 5
x=5
y = 22
Data ke = 6
x=6
y = 25
Orde polynomial =1
Koefisien polynomial :
p1 =
4.7429 -2.6000
Nilai chi kuadrat=
ks =
1.0177e-032
Persamaan hasil Fitting
Orde n=1
Y=4.7429 x -2.600
Nilai Chi Kuadrat: 1.0177e-032
Kurve hasil Fitting:
Kuve fitting Polynomial
30
25
Sumbu y
20
15
10
5
0
1
3
4
Sumbu x
125
Data ke = 1
x=1
y=3
Data ke = 2
x=2
y=6
Data ke = 3
x=3
y = 10
Data ke = 4
x=4
y = 16
Data ke = 5
x=5
y = 20
Data ke = 6
x=6
y = 35
Orde polynomial =2
Koefisien polynomial :
p1 =
1.0714 -1.5571 4.2000
Nilai chi kuadrat=
ks =
6.3772e-032
Persamaan hasil Fitting
Orde n=2
Y=1.0714 x2-1.5571 x + 4.2000
Nilai Chi Kuadrat: 6.377e-032
Kurve hasil Fitting:
126
Sumbu y
25
20
15
10
5
0
1
3
4
Sumbu x
D.Interpolasi
Jika y=f(x) dan bentuk fungsi diketahui maka kita dapat menentukan nilai
y jika x diketahui. Dalam eksperimen pasangan data (x,y) fungsinya belum
diketahui Interpolasi adalah proses menentukan nilai data y untuk suatu nilai x
yang tidak diamati. Matlab meyediakan fungsi standar siap pakai untuk
melakukan interpolasi, sehingga membantu dalam penyusunan program
komputer.
Fungsi standar interpolasi Matlab: y1=interp1(x,y,x1,metode);
Keterangan:
Tipe data x,y,x1,y1: array dimensi satu.
Data: x,y : data hasil pengukuran
Data :x1,y1: data hasil interpolasi
Metode: metode yang digunakan: linear, cubic,spline dan nearest
Aplikasi 1. Interpolasi data hasil pengukuran berikut:
Data pengamatan
x
y
1
5
2
9
3
12
Coding program:
%interpolasi
clc;
127
4
10
5
20
6
14
clear;
n=input('Banyak data pengamatan = ');
for k=1:n
disp(['Data ke = ',num2str(k)]);
x(k)=input('x = ');
y(k)=input('y = ');
end;
disp('Data y yang akan diinterpolasi');
xh=input('Untuk data x = ');
yh=interp1(x,y,xh,'spline');
disp('Hasil interpolasi');
yh
x1=x(1):0.1:x(n);
y1=interp1(x,y,x1,'spline');
plot(x,y,'o',x,y,'b',x1,y1,'k');
title('Kurve Interpolasi');
xlabel('Sumbu x ');ylabel('Sumbu y');
grid on;
Output Program
Testing 1:
Banyak data pengamatan = 6
Data ke = 1
x=1
y=5
Data ke = 2
x=2
y=9
Data ke = 3
x=3
y = 12
Data ke = 4
x=4
y = 10
Data ke = 5
x=5
y = 20
Data ke = 6
x=6
y = 14
Data y yang akan diinterpolasi
128
Sumbu y
20
15
10
5
1
3
4
Sumbu x
E.Latihan.
Data berikut adalah hasil pengukuran pada gerak lurus berubah beraturan:
t(waktu) 1
S(jarak) 4
2 3
20 40
129
4
70
5
6
110 140
BAB 18
PENYELESAIAN INTEGRAL DAN
PERSAMAAN DIFFRENSIAL
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk menentukan hasil integral secara
numerik dengan bantun fungsi standar MatLab.
2. Menyusun program komputer untuk menentukan hasil integral dengan
metode montecarlo.
3. Menyusun program komputer untuk menyelesaian persamaan diffrensial
orde satu dan orde dua secara numerik dengan menggunakan fungsi
standar MatLab.
Fungsi
trapz(x,y)
quad(nf,b,a)
quad8(nf,b,a)
Keterangan
Perhitungan integral dengan metode tapesium. Nilai x=batas
integral dan y=fungsi yang akan diintegral.
Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral
Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral
130
Coding program
%Integral Numerik
%Metode Trapesium
clc;
clear;
b=input('Batas bawah = ');
a=input('Batas atas =');
s=input('Besar segmen=');
x=b:s:a;
y=yk(x);
h=trapz(x,y);
disp('Hasil integral :');
h
plotyy(x,y,x,y,'plot','stem');
grid on
title('Grafik fungsi yg diintegral');
Output program:
Testing 1
Batas bawah = 0
Batas atas =8
Besar segmen=0.2
Hasil integral :
h=
192.0000
40
30
30
20
20
10
10
Kurve fungsi
00
11
22
33
44
55
66
77
0
88
131
200
200
150
150
100
100
50
50
0
10
132
133
merupakan luas area yang dilingkupi fungsi yang akan diintegral. Luas area
ditentukan dengan perkalian nilai rata-rata fungsi (rata-rata tinggi) dan lebar
(batas integral).
Kelebihan metode Monte Carlo dibandingkan metode numerik biasa
adalah sebagai berikut: pada metode Monte Carlo tidak semua nilai pada batas
integral digunakan tetapi hanya sejumlah yang ditentukan secara random, pada
metode Numerik seluruh segmen luas pada batas integral harus dihitung untuk
dijumlahkan. Metode Monte Carlo akan menguntungkan jika akan menghitung
integral untuk batas integrasi yang relatif besar. Sebagai contoh jika akan dihitung
integral untuk batas integrasi 1000, sedangkan lebar segmen 0,1 maka dengan
metode numerik harus dilakukan perhitungan dengan perulangan atau loop 10000
kali. Melalaui penggunaan metode Monte Carlo dapat saja kita pilih 1000 titik
secara random pada batas integral, sehingga cukup dengan 1000 kali perulangan.
1 n
f ( xi )
n i 1
Keterangan:
n=banyak bilangan random
f(x)=fungsi yang akan diintegral
xi= nilai bilangan random interval a s/d b
Aplikasi 1. Integral fungsi f(x)= 3x 2 x 2 x 7
Fungsi eksternal
Fungsi yang akan digunakan terletak sebagai file eksternal berikut:
%nama file ym1.m
function p=ym1(x)
p=3*x^3+x^2+x+7;
Coding program
%Metode Monte Carlo
clc;
a=input('Batas bawah= ');
b=input('Batas atas= ');
134
a c
1 n
f ( x, y )dxdy (b a)(d c) f ( xi , yi )
n i 1
Keterangan:
n=banyak bilangan random
f(x,y)=fungsi yang akan diintegral
xi= nilai bilangan random interval c s/d d
yi= nilai bilangan random interval a s/d b
135
Output program
Testing 1
Batas bawah x= 0
Batas atas x= 2
Batas bawah y= 0
Batas atas y= 1
Jumlah bil.random = 40
n= 40 hasil= 0.951
n= 80 hasil= 0.936
136
n= 120 hasil=
n= 160 hasil=
n= 200 hasil=
1.183
0.959
1.060
Testing 2
Batas bawah x= 1
Batas atas x= 5
Batas bawah y= 2
Batas atas y= 7
Jumlah bil.random = 50
n= 50 hasil= 282.116
n= 100 hasil= 243.345
n= 150 hasil= 260.605
n= 200 hasil= 291.219
n= 250 hasil= 276.612
137
d2y
dy
f ( x, y ) g ( x, y ) y h ( x, y )
2
dx
dx
dy
M isal : y1 y; y2
; maka persamaan menjadi :
dx
dy 2
f ( x, y1) y 2 g ( x, y1) y1 h( x, y1)
dx
Nama fungsi
[t,y]=ode23(nf,0,a,[p,q]);
Metode
Runge-Kutta
[t,y]=ode45(nf,0,a,[p,q]);
Runge-Kutta
[t,y]=ode23s(nf,0,a,[p,q]);
Rosenbrock
Keterangan
nf=nama
fungsi;
a=lama
pengamatan; p=nilai y pada t=0;
q=nilai y pada t=0. Variabel t dan
y tipe data array dimensi satu.
nf=nama
fungsi;
a=lama
pengamatan; p=nilai y pada t=0;
q=nilai y pada t=0. Variabel t dan
y tipe data array dimensi satu.
nf=nama
fungsi;
a=lama
pengamatan; p=nilai y pada t=0;
q=nilai y pada t=0. Variabel t dan
y tipe data array dimensi satu.
d2y
dy
c ky 0
2
dt
dt
2
d y
c dy k
y
2
dt
m dt m
138
y1=y(:,1);
y2=y(:,2);
plot(t,y1,'k',t,y2,'.');
grid on;
title('Getaan teredam');
xlabel('t=waktu');
ylabel('y=simpangan/kecepatan');
Uji coba program
Getaan teredam
y=simpangan/kecepatan
6
4
2
0
-2
-4
-6
10
15
20
25
30
t=waktu
d2y
dy
c
ky A cos(t )
2
dt
dt
d2y
c dy k
y A cos(t )
2
dt
m dt m
139
Coding program:
%Getaran paksa
m=1;c=0.5;k=2;
[t y]=ode45('getarp',0,30,[10;2]);
y1=y(:,1);
y2=y(:,2);
plot(t,y1,'k',t,y2,'.');
grid on;
title('Getaran paksa ');
xlabel('t=waktu');
ylabel('y=simpangan/kecepatan');
Uji coba program
Getaran paksa
y=simpangan/kecepatan
15
10
5
0
-5
-10
-15
0
15
20
25
30
t=waktu
Gambar 18.4. Kurve Hasil Solusi Getaran Paksa
140
10
d2y
dy
m(1 y 2 ) y 0
2
dt
dt
2
d y
dy
m(1 y 2 ) y
2
dt
dt
0 m 10
Fungsi Ekternal getaran Van der Pol
%getaran Van der Pol
% y=-m(1-y^2)y-y
%nama file van.m
function dydt=van(t,y);
m=2;
dydt=[y(2);m*(1-y(1)^2)*y(2)-y(1)];
Coding Program:
%Getaran Van der Pol
% y=m(1-y^2)y+y
[t y]=ode45('van',0,30,[2;0]);
y1=y(:,1);
y2=y(:,2);
plot(t,y1,'k',t,y2,'.');
grid on;
title('Getaran Van der Pol');
xlabel('t=waktu');
ylabel('y=simpangan/kecepatan');
Uji Coba Program
141
y=simpangan/kecepatan
3
2
1
0
-1
-2
-3
-4
10
15
t=waktu
20
25
30
H. Latihan
1. Rancang program komputer untuk menghitung besar usaha jika diketahui
fungsi gaya mengikuti persamaan berikut: F=x.exp(x1/3).
2. Pada getaran dengan redaman, selidiki nilai-nilai m, c dan k melalui tampilan
grafik agar terjadi: a) getaran dengan redaman, b) keadaan kritis, dan
c)keaadan redaman lebih.
142
BAB 19
OPERASI MATLAB PADA MATEMATIK
SIMBOLIK
A.Tujuan Pembelajaran
1. Menggunakan sintaks standar MatLab dalam menyelesaikan persamaan
simbolik matematika.
B.Teori
Operasi matematik simbolik menggunakan fasilitas Matlab adalah proses
menyelesaikan persamaan atau model matematik dengan cara memberikan
perintah langsung pada persamaan atau model matematik yang akan diselesaikan.
Operasi matematik simbolik menggunakan Matlab dapat langsung dioperasikan
pada Comand window tanpa menyusun program komputer. Pengguna dapat
langsung mengoperasikannnya dengan memberi perintah yang sesuai seperti pada
kalkulator.
Berikut akan diuraikan beberapa operasi Matlab pada matematika simbolik
diantaranya adalah: penyelesaian persamaan matematik, diffrensial fungsi,
integral fungsi, grafik fungsi, persamaan diffrensial orde satu dan persamaan
diffrensial orde dua.
C.Contoh Aplikasi
1. Menyelesaikan persamaan matematik
Sintaks: solve(persamaan matematik)
Contoh 1:
solve('4*x=60')
ans =
15
Contoh 2:
solve('exp(3*x)=25')
ans =
1/3*log(25)
Contoh 3:
solve('sin(2*x)=cos(x)')
ans =
[ 1/2*pi]
[ -1/2*pi]
[ 1/6*pi]
143
[ 5/6*pi]
Contoh 4
solve('2*x^2=20')
ans =
[ 10^(1/2)]
[ -10^(1/2)]
2. Diffrensial suatu fungsi
Sintaks: diff(fungsi)
Contoh 1:
diff('6*x^3+x^2')
ans =
18*x^2+2*x
Contoh 2
diff('sin(2*x)^2')
ans =
4*sin(2*x)*cos(2*x)
Contoh 3
diff('exp(4*x^2+3*x)')
ans =
(8*x+3)*exp(4*x^2+3*x)
Contoh 4
diff('6^(2*x^2+x)')
ans =
6^(2*x^2+x)*(4*x+1)*log(6)
3. Integral suatu fungsi
Sintaks: int(fungsi)
Contoh 1
int('5*x^3+4*x^2')
ans =
5/4*x^4+4/3*x^3
Contoh 2
int('cos(4*x)')
ans =
1/4*sin(4*x)
Contoh 3
int('sin(x)*cos(x)^2')
ans =
-1/3*cos(x)^3
144
Contoh 4
int('(3*x^2+x)/(x+2)')
ans =
3/2*x^2-5*x+10*log(x+2)
4. Menggambar grafik fungsi
Sintaks; ezplot(fungsi); grid on;
Keterangan:
Grafik yang ditampilkan adalah grafik 2D sebagai y=f(x)
Contoh 1
ezplot('4+5*x')
grid on
4+5 x
40
30
20
10
0
-10
-20
-30
-6
-4
-2
0
x
145
sin(3 x)2
1
0.8
0.6
0.4
0.2
0
-6
-4
-2
0
x
x -4 x-21
40
30
20
10
0
-10
-20
-30
-6
-4
-2
0
x
146
Keterangan:
dy
Dy
dt
y(0) nilai y pada t 0
Contoh 1
dsolve(Dy=3*t^2)
ans =
t^3+C1
Contoh 2
dsolve('Dy=3*t^2','y(0)=1')
ans =
t^3+1
Contoh 3
dsolve(Dy=4*t^2+2*y)
ans =
-2*t^2-2*t-1+exp(2*t)*C1
Contoh 4
dsolve('Dy=4*t^2+2*y','y(0)=5')
ans =
-2*t^2-2*t-1+6*exp(2*t)
Contoh 5
dsolve(Dy=3*sin(2*t)+y)
ans =
-6/5*cos(2*t)-3/5*sin(2*t)+exp(t)*C1
6. Persamaan diffrensial Orde dua
Sintaks 1: dsolve(D2y+f(t,y)*Dy+f(t,y)*y=f(t,y))
Sintaks 2: dsolve(D2y=f(t,y)*Dy+f(t,y)*y,Dy(0)=a,y(0)=b)
Keterangan:
d2y
dt 2
dy
Dy
dt
D2 y
dy
pada t 0
dt
y(0) nilai y pada t 0
Dy(0) nilai
147
Contoh 1
dsolve('D2y-2*Dy-3*y=0')
ans =
C1*exp(3*t)+C2*exp(-t)
Contoh 2
dsolve('D2y-2*Dy-3*y=2*t')
ans =
4/9-2/3*t+C1*exp(3*t)+C2*exp(-t)
Contoh 3
dsolve('D2y-2*Dy-3*y=0','Dy(0)=0','y(0)=4')
ans =
exp(3*t)+3*exp(-t)
D.Latihan
Selesaikan persamaan matematik berikut dengan menggunakan sintaks
standar Matlab:
148
BAB 20
PENYELESAIAN FUNGSI KHAS DAN
TRANSFORMASI INTEGRAL
A.Tujuan Pembelajaran
1. Menggunakan fungsi standar matlab dalam menyelesaikan fungsi-fungsi
khas.
2. Menggunakan fungsi standar matlab dalam menyelesaikan transformasi
integral.
B.Teori
Fungsi khusus adalah fungsi yang diperoleh dari penyelesaian suatu
persamaan tertentu. Beberpa fungsi khas yang akan dibahas dalam bab ini adalah
fungsi gamma, beta, Bessel dan Legendre. Fungsi gama dan fungsi beta adalah
fungsi yang diperoleh dari penyelesaian bentuk integral. Fungsi Bessel adalah
fungsi yang diperoleh dari penyelesaian persamaan diffrensial orde dua Bessel.
Fungsi Legendre adalah fungsi yang diperoleh dari penyelesaian persamaan
diffrensial orde dua Legendre. Transformasi integral adalah proses tranformasi
suatu fungsi menjadi fungsi baru dengan menggunakan operator integral.
Taransformasi yang akan dibahas dalam bab ini adalah transformasi Laplace dan
Fourier.
C.Fungsi Gamma.
1. Defenisi fungsi gama:
(n) t n1e t dt ; n 0
0
(n 1)
n
149
3. Aplikasi
Contoh 1:
gamma(3)
ans =
2
Contoh 2
gamma(4.7)
ans =
15.4314
Contoh 3
gamma(-3.8)
ans =
0.2996
Contoh 4: Grafik fungsi gamma untuk n>0
x=1:0.2:5;
y=gamma(x);
plot(x,y)
grid on
title('Grafik fungsi gamma');
xlabel('n');
ylabel('gamma(n)');
Grafik fungsi gamma
25
gamma(n)
20
15
10
5
0
1.5
2.5
3
n
3.5
4.5
150
grid on
title('Grafik fungsi gamma');
xlabel('n');
ylabel('gamma(n)');
Grafik fungsi gamma
25
gamma(n)
20
15
10
5
0
151
gamma(n)
20
10
-10
-20
-6
-5
-4
-3
n
-2
-1
D.Fungsi Beta
1. Defenisi fungsi Beta:
1
B(m, n) t m1 (1 t ) n1 dt ; m 0, n 0
0
(m)(n)
(m n)
152
ans =
0.0970
E.Fungsi Bessel
1. Defenisi fungsi Bessel
J n ( x)
Yn ( x)
J n ( x) cos n J n ( x)
sin n
153
-0.1130
Contoh 6: Grafik fungsi Bessel jenis pertama
%Fungsi bessel jenis pertama
x=0:0.1:10;
j0=besselj(0,x);
j1=besselj(1,x);
plot(x,j0,'k',x,j1,'b')
grid on
title('Grafik fungsi Bessel J0(x) dan J1(x)');
xlabel('x');
ylabel('J0(x)/J1(x)');
Grafik fungsi Bessel J0(x) dan J1(x)
J0(x)/J1(x)
0.5
-0.5
154
10
Y0(x)/Y1(x)
-1
-2
-3
-4
-5
-6
-7
0
10
F.Fungsi Legendre
1. Defenisi fungsi Legendre
Persamaan diffrensial Legendre
(1 x 2 ) y"2 xy ' n(n 1) y 0; n order fungsi
Solusi persamaan diffrensial disebut :
Fungsi Legendre
1 dn 2
Pn ( x) n
( x 1) n ; n 0,1,2,...
n
2 n! dx
P0 ( x) 1; P1 ( x) x; P2 ( x) 12 (3x 2 1);
P3 ( x) 12 (5 x 3 3x); P4 ( x) 18 (35 x 4 30 x 2 3)
Associated Legendre Function :
Pnm ( x) (1 x 2 ) m / 2
dm
Pn ( x)
dx m
Pn0 ( x) Pn ( x)
Pnm ( x) 0, jika m 0
155
X=0
0
1.5000
0
-15.0000
X=0.1
-0.1475
1.4179
1.4850
-14.7756
Contoh 3:
Kurve fungsi Legendre
Coding:
%Kurve fungsi Legendre
clc;
clear
n=input('Orde fungsi legendre=');
x=-1:0.02:1;
p=legendre(n,x);
y=p(1,:);
plot(x,y)
grid on
xlabel('x');
156
X=0.2
-0.2800
1.1758
2.8800
-14.1091
X=0.3
-0.3825
0.7870
4.0950
-13.0213
Nilai fungsi
0.5
-0.5
-1
-0.5
0
x
0.5
157
Nilai fungsi
0.5
-0.5
-1
-1
-0.5
0
x
0.5
G.Transformasi Laplace
1. Konsep transfomasi Laplace
F ( s ) f (t )e st dt
0
Contoh :
f (t ) exp( at )
F ( s ) exp( at )e st dt
0
1
sa
158
ans =
exp(5*t)
Contoh 2:
g=sym('sin(7*t)')
g=
sin(7*t)
y=laplace(g)
y=
7/(s^2+49)
Tranformasi balik:
ilaplace(y)
ans =
1/7*49^(1/2)*sin(49^(1/2)*t)
Contoh 3
g=sym('5*t^3+7*t^2+11')
g=
5*t^3+7*t^2+11
y=laplace(g)
y=
30/s^4+14/s^3+11/s
Transformasi balik:
ilaplace(y)
ans =
5*t^3+7*t^2+11
Contoh 4:
g=sym('2*t^2+t')
g=
2*t^2+t
y=laplace(diff(g))
y=
4/s^2+1/s
Transformasi balik
ilaplace(y)
ans =
4*t+1
Contoh 5:
g=sym('2*t^2+cos(2*t)')
g=
2*t^2+cos(2*t)
159
y=laplace(diff(g))
y=
4/s^2-4/(s^2+4)
Transformasi balik:
ilaplace(y)
ans =
4*t-4^(1/2)*sin(4^(1/2)*t)
H.Transformasi Fourier
1. Konsep transfomasi Fourier
F ( w)
f (t )e
jwt
dt
1
f (t )
2
F (w)e
jwt
dw
160
2*t^2
y=fourier(g)
y=
-4*pi*Dirac(2,w)
Transformasi balik.
ifourier(y)
ans =
2*x^2
161
BAB 21
MENGINTEGRASIKAN PROGRAM
A.Tujuan Pembelajaran
1. Menyusun program komputer untuk mengintegrasikan beberapa program
komputer dalam bentuk menu pilihan.
B.TEORI
Sejumlah program yang dirancang dengan menggunakan Matlab dapat
diintergrasikan ke dalam satu program menu dengan cara memanggil nama file
program yang akan diintegrasikan. Logika program yang digunakan adalah logika
perulangan dengan perintah while...end dan logika keputusan dengan perintah
switch...end.
Perintah while...end digunakan untuk mengulang program menu,
sedangkan perintah switch...end digunakan untuk memilih pilihan menu program.
File program menu dan file-file program yang akan diintegrasikan harus
berada dalam direktori yang sama.
Algoritma umum program menu
While kondisi
Menu;
Pilihan: pilih
Switch pilih
Case 1
File1;
Case 2
File2;
........
End;
Lanjut y/t:
........
End;
C.CONTOH APLIKASI.
Contoh 1:
1. Defenisi Masalah
162
2. Struktur data
Unit
Variabel
Type of data
Keterangan
Nomor pilihan
jb
Numeric
Input data
Sejumlah program
dalam file eksternal
File1, file2,
file3, file4
3. Algorithm program
a.
b.
Start
Input data
jby
c. Process dan Output
while jb=='y' | jb=='Y'
tampil (' Menu ');
tampil(' 1. Luas segi tiga ');
tampil(' 2. Deret Aritmatik');
tampil(' 3. Standar Deviasi');
tampil(' 4. Grafik sin dan cos ');
tampil(' 5. Exit');
jbinput(' Input pilihan anda = ');
switch jb
case 1
file1;%nama file hitung luas
case 2
file2;%nama file deret
case 3
file3;%nama file standar deviasi
case 4
file4;%nama file grafik sin dan cos
case 5
jb='t';
end
disp('');
jb=input('Lanjutkan ? y/t =','s');
end
d.
Stop
3. Coding
163
Output data
%menu program
jb='y';
while jb=='y'|jb=='Y'
clc;
disp(' Menu');
disp(' 1. Luas segi tiga ');
disp(' 2. Deret Aritmatik');
disp(' 3. Standar Deviasi');
disp(' 4. Grafik sin dan cos ');
disp(' 5. Exit');
disp(' ');
jb=input(' Input pilihan anda = ');
switch jb
case 1
PRAC1;%nama file hitung luas
case 2
PRAC2;%nama file deret
case 3
PRAC3;%nama file standar deviasi
case 4
PRAC4;%nama file grafik sin dan cos
case 5
jb='t';
end
disp('');
jb=input('Lanjutkan ? y/t =','s');
end;
D.Latihan.
3. Susunlah program komputer yang dapat mengintegrasikan beberapa
permasalahan pada gerak lurus berubah beraturan yang meliputi:
perhitungan kecepatan, jarak tempuh, grafik kecepatan versus t, grafik
jarak vs t.
4. Susunlah program komputer yang dapat mengintegrasikan beberapa
permasalahan pada gerak peluru yang meliputi: perhitungan kecepatan,
jarak tempuh, jauh dan tinggi tembakan maksimum dan grafik lintasan
peluru.
5. Sama seperti soal 1 dan 2 kembangkan untuk kasus pada listrik dan
kemagnetan.
164
Daftar Bacaan
Attaway Stormy, 2009. Matlab:A Practical Introduction to Programming and
Problem Solving. College of Engineering, Boston University Boston,
MA
Brassard G. And Bratley P. 1998. Algorithmics. Prentice Hall. Newjersey.
Brian R. Hunt Ronald L. Lipsman Jonathan M. Rosenberg , 2001. A Guide to
MATLAB for Beginners and Experienced Users. Cambridge University
Press
Budi Sutedjo dan Michael AN. 2000. Algoritma dan Teknik Pemrograman.
Yogyakarta: Penerbit Andi.
Carl Reynolds and Paul Tymann, 2005. Principles of computer science.
Schaums Outline Series McGRAW-HILL
Gonnect, G.H. 1998. Handbook of Algorithm and Data Structure. Addison
Wesley.
Hanselman D dan Littlefield B. 1998. The Student Edition of MATLAB. Prentice
Hall, Englewood Cliffs. Newjersey.
Jaan Kinsalaas. 2010. Numerical Methods in Engineering with MatLab.
Cambridge University.
Penny J dan Lindfield G. 1998. Numerical Methods Using Matlab. Ellis
Horwood. New York.
Sigmon, K. 1994. Matlab Primer, 4th Edition, CRC Press, Boca Raton.
Soegeng. 2000. Visualisasi Fisika. Gramedia Jakarta.
Suarga. 2004. Algoritma Pemrograman. Penerbit Andi Yogyakarta.
...................., Learning MATLAB. Copyright 1999 - 2001 by The MathWorks,
Inc.
165