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
A.Tujuan Pembelajaran
1. Menjelaskan pengertian perogram komputer.
2. Menjelaskan pengertian algoritma.
3. Menjelaskan perbedaan algortima menggunakan flowchrt dan
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.
1. Brainware
Brainware adalah orang yang menggunakan atau memanfaatkan komputer.
Brainware dapat dibagi menjadi tiga golongan utama yaitu: operator, programmer
dan analis
E.Pengertian Algoritma
Predefined Predefined
Seleksi
data. proses
a. Mulai
b. Input data
Mulai
Read(a);
read(b)
T
a>b Disp(a)
Disp(b)
selesai
Read(a)
b. Input data
Read(t)
Luas=0.5*a*t
c. Proses
Luas
d. Output
e. Stop
4. Contoh algoritma menentukan luas segitiga menggunakan flowchart
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.
A.TUJUAN PEMBELAJARAN
1. Menjelaskan perbedaan tipe data dasar dan tipe data bentukan.
2. Menjelaskan perbedaan variabel dan konstanta.
3. Menjelaskan aturan membuat variabel dalam pemrograman.
4. Menjelaskan cara memberi nilai variabel.
5. Menjelaskan empat cara membuat ekspresi variabel dalam pemrograman.
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.
Bilangan tipe integer atau real yang nilainya tidak berubah selama
Karakteristik bilangan tetap
Data mempunyai nilai benar (True atau 1) dan salah (false atau 0).
Karakteristik tipe data logik
Array dimensi satu, data ditampung oleh variabel yang mempnyai satu
indeks.
Array dimensi dua, data ditampung oleh variabel yang mempnyai dua
indeks. Misal: a(1)= 20; a(2)=30; a(3)=34; dst.
Data yang terdiri dari beberapa jenis tipe data seperti: real, integer,
Karakteristik tipe data record.
C.Variabel
Variabel adalah suatu pengenal yang digunakan untuk menampung data di
memory komputer.
Besaran Gaji pokok dapat menggunakan variabel : gp, gapok, gpokok, dll
Besaran Nama pegawai dapat menggunakan variabel: nm, nama, dll
Besaran kecepatan dapat menggunakan variabel : v (singakatan dari
Mengingat nilai data terakhir. Ketika variabel mendapat nilai baru, maka
Sifat Variabel:
» a=10;b=70;
» a=b;b=a;
»a
a=
70
»b
b=
70
Keterangan: ketika a=b, maka nilai a=70; nilai 10 sudah diganti nilai 70; ketika
b=a, maka b=70. Terakhir a dan b mempunyai nilai 70.
» p=30;q=90;
» c=p;
» p=q;
» q=c;
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.
2.Melalui Penugasan.
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 aritmatika, ekspresi relasional, ekspresi logik dan ekspresi string.
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 Alamat’Jl W Iskandar no 8 Medan’;
o Nama’Zakarni Yusuf’;
o Nilai’A’;
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.
A.Tujuan Pembelajaran
1. Menjelaskan lima jenis operator dasar Aritmatika.
2. Menjelaskan enam jenis operator dasar relasi.
3. Menjelaskan tiga jenis operator dasar logika.
4. Menggunakan fungsi standar matematika dalam MATLAB
5. Menggunakan fungsi standar untuk data teks dalam MATLAB
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.
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
2.Operator Relasi
Tabel 3.2. Operator Relasi
Operator Description
== Equal to
~= not equal to
Contoh pemakaian:
Penjelasan: jawaban =0 berarti salah, 1 berarti benar
» p=10;q=15;
%Operator kesamaan
» p==q
ans =
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
E. Soal Latihan.
1. Jelaskan lima jenis operator dasar Aritmatika dalam MATLAB.
2. Jelaskan enam jenis operator dasar relasi dalam MATLAB.
3. Menjelaskan tiga jenis operator dasar logika dalam MATLAB.
4. Berikan sepuluh contoh menggunakan fungsi standar matematika dalam
MATLAB
5. Berikan lima contoh menggunakan fungsi standar untuk data teks dalam
MATLAB
A.Tujuan Pembelajaran
1. Menggunakan statemen input untuk data numerik.
2. Menggunakan statemen input untuk data teks.
3. Menggunakan statemen output untuk data numerik.
4. Menggunakan statemen output untuk data teks.
Contoh : x=4.7895;
disp([‘Force =',num2str(x),' newton']);
Output result :Force =4.7895 newton
Contoh :
x=1007.46; y=2.7658; z=17;
fprintf('\nx=%8.2f y=%6.4f z=%2.0f\n',x,y,z);
Output :
x= 1007.46 y=2.7658 z=17
Output :
x y z
---------------------------------------------------------
1007.46 2.7658 17
Coding program
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
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 = ');
Ouput program:
Input data Text
Input your name =Sahyar
Input your address=Medan
Input your high school=SMA Tg. Pura
Nilai x = 12.3
Nilai y = 89
Nilai z = 13.789
value of x = 12.300
value of y = 89.000
value of z = 13.7890
x= 12.300 y=89.00 z=13.7890
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.
Contoh 2:
clc;
%input data
a=input(‘Input nilai a= ‘);
b=input(‘Input nilai b= ‘);
%proses
p=a*b;
q=a+b;
r=a/b;
%output data
p
q
r
3. Algorithm program
Start
a, t
luas
Stop
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
2. Struktur Data
Unit /Besaran Variabel Type of data Keterangan
Velocity v Real/Numeric Input data
Mass m Real/Numeric Input data
Kinetic Energy ke Real/Numeric Output data
3. Algorithm program
Start
v, m
ke = 0.5 * m*v^2
ke
Stop
a. Mulai
v
b. Input data:
m
ke 0.5*m*v^2
c. Proses
ke
d. Output
e. Stop
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.
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.
if (kondisi)
then proses
end
F
kondisi
i
T
Proses
if (kondisi)
then proses1
else proses2
end
Proses1 Proses2
F F
Kondisi1 Kondisi2
T T
Output program:
Sukses
(karena a>b kondisi benar)
Contoh2
clc;
a=5;
b=10;
if a>b
disp('Sukses');
end
Output program:
Kosong/blank,
(karena a>b salah)
output program:
Bahagia
(karena a>b salah maka yang tampil kasus kedua)
output program:
Kedamaian (sebab a>b salah; a<b salah, maka yang dieksekusi kasus ketiga)
Input koef : a, b, c
Output : akar-akar persamaan kuadrat
2. Struktur data
Unit Variabel Type of data Keterangan
Coefficient a a Real/Numeric Input data
Coefficient b b Real/Numeric Input data
Coefficient c c Real/Numeric Input data
Akar-akar real x1 dan x2 Real/Numeric Output data
Akar-akar kompleks x1c dan x2c Real/Numeric Output data
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);
%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);
2. Struktur data
Unit Variabel Type of data Keterangan
Nama nm Text Input data
Skor sk Real/Numerik Input data
Nilai huruf nh Text Output data
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
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
Jika nilai variabel 1 maka akan dikerjakan proses1, jika variabel bernilai 2
proses2 sampai prosesn.
Golongan Gaji
1 2.500.000
2 3.500.000
3 4.500.000
4 5.500.000
2. Struktur Data
Unit Variabel Type of data Keterangan
Nama nm Text Input data
Golongan gol Numeric Input data
Gaji gaji Numeric Output data
3. Algoritma program
a. Start
b. Input data
Input nm
Input gol
c. Process
Case gol
Case 1
Gaji2500000;
Gaji 3500000;
Case 2
Gaji 4500000;
Case 3
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);
Pengujian 2
Input Nama Anda = Badu
Pengujian 3
Input Nama Anda = Syarif
Input Golongan Anda = 3
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.
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.
Proses perulangan stop jika nilai variabel kendali telah mencapai batas
Karakteristik perulangan for:
Var = awal
Var<= akhir
?
T
F Instruksi-instruksi
Var = var + n
1. Variabel perulangan (var ) harus bertipe dasar (integer, real, atau char )
2. Nilai awal harus lebih kecil dari akhir bila n > 0 ( positif )
3. Nilai awal harus lebih besar dari akhir bila n <0 ( negatif )
4. 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.
Contoh 1.
clc;
for k=1:5
disp([num2str(k),'.Sukses']);
end
output program:
1.Sukses
2.Sukses
3.Sukses
4.Sukses
5.Sukses
Contoh 2.
clc;
for k=1:2:15
disp([num2str(k),'.Sukses']);
end
output program:
1.Sukses
3.Sukses
5.Sukses
7.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
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
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
Pengujian 2.
Suku awal =6
Beda suku =-3
Banyak suku =5
Suku 1= 6
Suku 2= 3
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.
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.
Proses perulangan akan berjalan selagi kondisi benar dan akan stop jika
kondisi
F T
Instruksi-instruksi
2. Struktur Data
Unit Variabel Type of data Keterangan
Kecepatan awal vo Numeric Input data
Percepatan a Numeric Input data
Lama pengamatan lp Numeric Input data
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
Pengujian 2.
Kecepatan awal =20
Percepatan =-2
Lama pengamatan =3
Interval waktu = 0.4
Nomor Waktu Kecepatan
---------------------------------------
1 0.00 20.00
2 0.40 19.20
3 0.80 18.40
4 1.20 17.60
5 1.60 16.80
6 2.00 16.00
7 2.40 15.20
8 2.80 14.40
Pengujian 3.
Kecepatan awal =2.8
Percepatan =1.5
Lama pengamatan =6
Contoh Program 2
3. Algorithm program
a. Start
b. Input data
Input jb
c. Process and output
jb’y’
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 =');
Pengujian 2
Suku awal =4
Beda suku =12
Banyak suku =5
Suku-suku deret
Suku 1= 4
Suku 2= 5
Suku 3= 6
Suku 4= 7
E.Latihan
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.
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);
x1 =
-2
x2 =
-3
Koefisien a mengkopy nilai 1, koef b mengkopy nilai 5 dan koef c mengkopy nilai
6.
2. Struktur Data
3.Algoritma program
v, m
Fungsi ek
ke
Stop
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 ']);
a X2 + b X + c = 0
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
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
Pengujian kedua
Coef a= 1
Coef b= -6
Coef c= 9
value X1 = X2 and real
x1 =X2= 3.00
Pengujan ketiga
Coef a= 5
Coef b= 3
Coef c= 2
value X1 <> X2 and complex
x1 = -0.3000 + 0.5568i
x2 = -0.3000 - 0.5568i
E.Latihan
Soal-soal berikut telah dikerjakan pada bab sebelumnya namun belum
menggunakan fungsi. Pada bab ini anda diminta mengerjakannya dengan
menggnakan fungsi.
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.
Cara 1:
a=input( ‘a = ‘);
a= [12 13 7 6];
cara 2:
for k = 1:n % n=banyak data
fprintf('Data:%3.0f',k);
a(k)=input(‘Input data : ‘);
end
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
» a=[3 5 6 7 8 10]
a=
3 5 6 7 8 10
» k=5;
» a+k
ans =
8 10 11 12 13 15
» a=[3 7 5 8];
» b=[2 1 5 2];
» a+b
ans =
5 8 10 10
» a=[3 7 5 8];
» b=[2 1 5 2];
» a.*b
ans =
6 7 25 16
» x=1:2:10
x=
1 3 5 7 9
» x(4)
ans =
7
» p=0:0.5:6
» p(10)
ans =
4.5000
2. Struktur data
Unit Variabel Type of data Keterangan
Banyak data n Numeric Input data
Data d Numeric Input data
Total total Numeric Output data
Rata2 av Numeric Output data
Standar deviasi ds Numeric Output data
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;
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);
Testing 2
Data: 1 Input data= 10
Data: 2 Input data= 10
Data: 3 Input data= 10
Data: 4 Input data= 10
Total = 40.00
Average = 10.00
deviation standard = 0.00
Testing 3.
Data: 1 Input data= -10
Data: 2 Input data= 30
Data: 3 Input data= -40
Data: 4 Input data= 20
Data: 5 Input data= 80
Data: 6 Input data= -30
Total = 50.00
Average = 8.33
deviation standard = 44.46
E.Latihan
P Xi Xi2 X
1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P XiYi ( Xi Y)
2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
P (XiYi )2 Yi Y
3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
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.
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
(menampilkan matriks a)
Cara 2:
for b = 1:n
for k = 1:m
1.Invers matriks.
» a=[3 4 6;2 5 7;3 2 1]
a=
3 4 6
2 5 7
3 2 1
» inv(a)
ans =
0.5294 -0.4706 0.1176
-1.1176 0.8824 0.5294
0.6471 -0.3529 -0.4118
2.Determinan matriks
» a=[3 4 6;2 5 7;3 2 1]
a=
3 4 6
2 5 7
3 2 1
» det(a)
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
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
8.Matriks nol
» zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
» zeros(3)
ans =
0 0 0
0 0 0
0 0 0
9.Matriks satu
» ones(3)
ans =
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
2.Struktur data
Unit Variabel Type of data Keterangan
Matriks a a Numeric/matriks Input data
Matriks b b Numeric/matriks Input data
Penjumlahan c=a+b Numeric /matriks Output data
Perkalian d=a*b Numeric /matriks Output data
3. Algorithm program
a. Start
4. Coding
a=
3 5 6
Matriks b
b=
2 3 5
4 6 9
2 3 1
Matriks c = a+b
c=
5 8 11
11 14 18
5 7 9
Matriks d= a*b
d=
38 57 66
64 96 116
38 57 59
CONTOH 2:
1. Defenisi masalah.
Menentukan: invers, determinan, dan transpose matriks.
2. Struktur data
3. Algorithm program
b. Input data
Baca( a)
c. Process
binvers(a);
cdet(a);
da’;
d. Tampil
a
b
c
d
6. Stop
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
Testing ke 1
Input elemen matriks a =[4 5;7 8]
Matriks a
a=
4 5
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
3. Algorithm program
a. Start
xa\b;
c. Proses
a
d. Output
b
x
e. Stop
4. Coding
clc;
disp('Aljabar Linear dan matriks: Ax = b');
a=input('Input elemen Matriks a= ');
b=input('Input elemen Matriks b=’);
%Proses
x=a\b;
%Output
disp('Elemen matriks a ');
a
disp(‘Elemen matriks b ‘);
b
disp(‘Elemen matriks x atau hasil ‘);
x
F.Latihan
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 Penjelasan
plot(x,y) 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.
10
5
y axis
-5
-10
-15
0 2 4 6 8 10 12 14
x axis
Gambar 13.1. Grafik fungsi sinus
Testing
Amplitudo a = 3; Amplitudo b = 5; Lama pengamatan =5
2
simpangan
-2
-4
-6
-8
0 1 2 3 4 5
waktu
Gambar 13.2. Grafik fungsi sinus dan cosinus
Testing
Pengujian 1; Number of periode: 1; Amplitude = 15
y= A sin x
15
10
5
y axis
-5
-10
-15
-2 0 2 4 6 8
x axis
y= A sin x
15
10
5
y axis
-5
-10
-15
0 2 4 6 8 10 12 14
x axis
Gambar 13.4. Grafik tangga fungsi sinus
Testing:
y= A sin x * cos x
90 8
120 60
6
150 4 30
2
180 0
210 330
240 300
270
Testing:
Fungsi ekternal f(x)=x2+5*x+6
200
150
Sb y
100
50
0
-10 -5 0 5 10
Sb x
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
10
Sumbu y
2
1 2 3 4 5 6
Sumbu x
Testing:
y=a sin x
Amplitudo = 10
Jumlah priode = 2
Output:
Kurve dengan Arsir
10 10
5 5
sb y
0 0
-5 -5
-10 -10
0 2 4 6 8 10 12 14
sb x
Gambar 13.8. Grafik arsir fungsi sinus
Testing:
y=a^x
Koef a= 3
Output:
5
Kurve dengan skala log
10
4
10
3
10
sb y
2
10
1
10
0
10
-1 0 1
10 10 10
sb x
Gambar 13.9. Grafik skala logaritma
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
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
Jumlah periode: 3
Amplitudo = 15
10 10
y axis
y axis
5 5
0 0
0 5 10 15 20 0 5 10 15 20
x axis x axis
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
10 10
y axis
y axis
0 0
-10 -10
-20 -20
0 5 10 15 20 0 5 10 15 20
x axis x axis
y= A exp(-x)cos(x) y= A (sin x)2
15 15
10
10
y axis
y axis
5
5
0
-5 0
0 5 10 15 20 0 5 10 15 20
x axis x axis
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);
2. Struktur data
Unit Variabel Type of data Keterangan
Jari-jari r Numeric Input data
Jumlah periode p Numeric Input data
Graphics Output data
3. Algorithm program
t0:0.1:2*pi*p;
c. Process
xr* sin(t);
yr* cos(t);
plot3(x,y,t);
d. Output
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');
100
80
60
z axis
40
20
0
10
5 10
0 5
0
-5
-5
y axis -10 -10
x axis
2. Struktur data
Unit Variabel Type of data Keterangan
Amplitudo a, b Numeric Input data
Jumlah periode n Numeric Input data
Simpangan z Numeric Input data
Sudut x,y Numeric (radian) Input data
Graphics Output data
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)
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;
Testing 2
Jumlah Periode : 2
Amplitudo 1 = 4
Amplitudo 2 = 0
Testing:
Jumlah Periode : 2
Amplitudo 1= 3
Amplitudo 2= 4
2. Struktur data
Unit Variabel Type of data Keterangan
Koefisien a, b Numeric Input data
Koordinat x,y,z Numeric Input data
Graphics Output data
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;
Testing:
Grafik z = a*x^2 +b* y^2; Koefisien a = -1; Koefisien b = -1
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.
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
Data p adalah array dimensi satu yang menyatakan waktu atau tahun setiap
periode ke 3 adalah: j k l.
4.Diagram Pastel
Bentuk Sintaks:
>>pie(x)
>>pie(x,y)
Keterangan:
x adalah data patstel dalam bentuk array satu dimensi.
Contoh: x=[a b c d ]. Data perrtama x(1)=a dan data keempat x(4)=d.
Data y adalah array dimensi satu yang menyatakan jenis data. Contoh:
y=[‘A’,’B’,’C’,’D’]; Data ini menyatakan jumlah jenis data A =a sampai
jumlah jenis data D=d.
Testing:
Tahun produksi =[2001 2002 2003]
Volume produksi = [300 500;500 700;600 850]
700
600
Volume
500
400
300
200
100
0
2001 2002 2003
Priode
Gambar 15.1. Diagram batang 2D
Contoh 2.
Grafik diagram batang stack dua dimensi
Coding:
%graphic Bar 2d Stack
%input
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
bar(t,z,’stack’);
xlabel('Priode ');ylabel('Volume ');
title('Diagram batang 3D');
legend('Beras','Jagung');
grid on;
Testing:
Tahun produksi =[2000 2001 2002 2003]
Volume produksi = [300 500;400 700;500 800;300 900]
1000
800
Volume
600
400
200
0
2000 2001 2002 2003
Priode
Gambar 15.2. Diagram batang 2D tumpukan
Contoh 3.
Grafik diagram batang tiga dimensi
Coding:
%graphic Bar 3d
%input
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
bar3(t,z);
xlabel('Priode ');ylabel('Volume ');
title('Diagram batang 3D');
legend('Beras','Jagung');
grid on;
Testing:
Tahun produksi =[2001 2002 2003 2004]
Volume produksi = [300 400;400 500;500 600;200 700]
600
400
200
2001
2002
2003
2004
Volume
Priode
Testing:
Tahun produksi =[2000 2001 2002]
Volume produksi = [200 500 300]
20%
Beras
Jagung 30%
Kedelai
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.
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.
f ( X ) a n X n a n 1 X n 1 a n 2 X n 2 ...a1 X a0
Persamaan polynomial dapat dinyatakan dalam bentuk sebagai berikut:
1. Coding:
%menentukan akar polynomial
clc;
%input
n=input('Derajat polynomial=');
j=0;
for i=n:-1:0
j=j+1;
disp(' ');
2. Pengujian Program
Testing ke 1:
Fungsi f(x)=x2+5x+6=0
Derajat polynomial=2
Koef. pangkat: 2
Koef = 1
Koef. pangkat: 1
Koef = 5
Koef. pangkat: 0
Koef = 6
Akar-akar persamaan:
Akar ke: 1=-3
Akar ke: 2=-2
Testing ke 2
Fungsi f(x)=x4-12x3+25x+116
Derajat polynomial=4
Koef. pangkat: 4
Koef = 1
Koef. pangkat: 3
Koef = -12
Koef. pangkat: 2
Koef = 0
Koef. pangkat: 1
Koef = 25
Koef. pangkat: 0
Koef = 116
Output Program
Testing 1:
Fungsi persamaan nonlinear='3*x-exp(-x)=0'
Akar-akar persamaan
p=
lambertw(1/3)
» lambertw(1/3)
ans =
0.2576
Testing ke 2
Fungsi persamaan nonlinear='5-exp(x)=0'
Akar-akar persamaan
p=
log(5)
» log(5)
ans =
1.6094
Testing ke 3
Fungsi persamaan nonlinear='x^2+7*x+10=0'
Akar-akar persamaan
p=
2. Struktur data
Unit Variabel Type of data Keterangan
Derajat polynomial n Numeric Input data
Akar-akar persamaan a Numeric /array Input data
Koefisien polynomial p Numeric /array Output data
Skala pada sb x x Numeric/array Output data
Skala pada sb y v Numeic/array Output data
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;
5.Pengujian Program
Testing:
Derajat polynomial=2
Akar ke : 1
Akar = -3
Akar ke : 2
Akar = 5
100
80
60
y
40
20
-20
-10 -5 0 5 10
x
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.
Data pengamatan 1
x 1 2 3 4 5 6
y 3 6 10 18 22 25
Data pengamatan 2
x 1 2 3 4 5 6
y 3 6 10 16 20 35
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
25
20
Sumbu y
15
10
0
1 2 3 4 5 6
Sumbu x
30
25
Sumbu y
20
15
10
0
1 2 3 4 5 6
Sumbu x
Gambar 17.2. Kurve Hasil Fitting n=2
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.
x 1 2 3 4 5 6
y 5 9 12 10 20 14
Coding program:
%interpolasi
clc;
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
20
Sumbu y
15
10
5
1 2 3 4 5 6
Sumbu x
E.Latihan.
Data berikut adalah hasil pengukuran pada gerak lurus berubah beraturan:
t(waktu) 1 2 3 4 5 6
S(jarak) 4 20 40 70 110 140
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.
No Fungsi Keterangan
1 trapz(x,y) Perhitungan integral dengan metode tapesium. Nilai x=batas
integral dan y=fungsi yang akan diintegral.
2 quad(nf,b,a) Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral
3 quad8(nf,b,a) Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral
Output program:
Testing 1
Batas bawah = 0
Batas atas =8
Besar segmen=0.2
Hasil integral :
h= Grafik fungsi yg diintegral
192.0000 40 40
Kurve fungsi
30 30
20 20
10 10
0 0
0 1 2 3 4 5 6 7 8
Batas bawah = 2
Batas atas =10
Besar segmen=0.5 150 150
Hasil integral :
h=
322
Kurve fungsi 100 100
50 50
0 0
2 3 4 5 6 7 8 9 10
2. Metode Quadrature
Coding Program:
%Integral Numerik
%Metode Quadrature
clc;
clear;
b=input('Batas bawah = ');
a=input('Batas atas =');
x=b:0.01:a;
y=yk(x);
h=trapz(x,y);
disp('Hasil metode trapesium:');
h
h1=quad('yk',b,a);
Output program
Testing 1
Batas bawah = 0
Batas atas =8
Hasil metode trapesium:
h=
192.0000
Hasil metode quadrature:
h1 =
192
Hasil metode quadrature 8:
h2 =
192
Testing 2
Batas bawah = 3
Batas atas =12
Hasil metode trapesium:
h=
861.7516
Hasil metode quadrature:
h1 =
861.7500
Hasil metode quadrature 8:
h2 =
861.7500
(b a ) f ( xi )
1 n
n i 1
Keterangan:
n=banyak bilangan random
f(x)=fungsi yang akan diintegral
xi= nilai bilangan random interval a s/d b
Coding program
%Metode Monte Carlo
clc;
a=input('Batas bawah= ');
b=input('Batas atas= ');
Output program
Uji coba 1:
Batas bawah= 3
Batas atas= 20
Jumlah bil.random = 50
n= 50 hasil= 104501.900
n= 100 hasil= 102603.428
n= 150 hasil= 119700.045
n= 200 hasil= 126431.301
n= 250 hasil= 127088.717
Uji coba 2:
Batas bawah= 0
Batas atas= 3
Jumlah bil.random = 50
n= 50 hasil= 80.409
n= 100 hasil= 90.526
n= 150 hasil= 89.287
n= 200 hasil= 95.798
n= 250 hasil= 85.458
f ( x, y)dxdy (b a )(d c) f ( xi , yi )
2. Integral lipat dua dengan metode Monte Carlo:
b d
1 n
a c
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
Coding program
%Integral lipat dua
%Metode Monte Carlo
clc;
clear;
a1=input('Batas bawah x= ');
b1=input('Batas atas x= ');
a2=input('Batas bawah y= ');
b2=input('Batas atas y= ');
n=input('Jumlah bil.random = ');
for i=1:5
jumxy=0;
for k=1:(n*i)
x=a1+(b1-a1)*rand(1);
y=a2+(b2-a2)*rand(1);
jumxy=jumxy+ym(x,y);
end
hasil(i)=(b1-a1)*(b2-a2)*jumxy/(n*i);
end
for j=1:5
fprintf('\n n=%4.0f hasil= %8.3f\n',n*j,hasil(j));
end
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
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
f ( x, y) g ( x, y) y h( x, y)
d2y dy
2
dx dx
c ky 0
d2y dy
m 2
dt dt
y
2
d y c dy k
2
dt m dt m
Getaan teredam
6
4
y=simpangan/kecepatan
-2
-4
-6
0 5 10 15 20 25 30
t=waktu
Gambar 18.3. Kurve Hasil Solusi Getaran Teredam
c ky Acos(t )
d2y dy
m 2
dt dt
y Acos(t )
d2y c dy k
2
dt m dt m
Getaran paksa
15
10
y=simpangan/kecepatan
-5
-10
-15
0 5 10 15 20 25 30
t=waktu
Gambar 18.4. Kurve Hasil Solusi Getaran Paksa
m(1 y2 ) y 0
d2y dy
2
dt dt
m(1 y2 ) y
2
d y dy
2
0 m 10
dt dt
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');
2
y=simpangan/kecepatan
1
-1
-2
-3
-4
0 5 10 15 20 25 30
t=waktu
H. Latihan
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]
4+5 x
40
30
20
10
-10
-20
-30
-6 -4 -2 0 2 4 6
x
Gambar 19.1. Kurve Fungsi 4+5x
Contoh 2
» ezplot('sin(3*x)^2')
» grid on
0.8
0.6
0.4
0.2
-6 -4 -2 0 2 4 6
x
Gambar 19.2. Kurve Fungsi sin(3*x)^2
Contoh 3
» ezplot('x^2-4*x-21')
» grid on
2
x -4 x-21
40
30
20
10
-10
-20
-30
-6 -4 -2 0 2 4 6
x
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
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:
D2 y
d2y
dt 2
Dy
dy
dt
Dy(0) nilai pada t 0
dy
D.Latihan
Selesaikan persamaan matematik berikut dengan menggunakan sintaks
standar Matlab:
1.Integral dari fungsi f(x) 2x x 2 exp( x1/ 2 )
2.Derivatif fungsi f(x) 2cos(x 2 ) sin( x)
3xt 0
dx
3.Persamaan diffrensial :
dt
4.Persamaan diffrensial : 2 3 5 x 0
d2 x dx
dt dt
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
Rumus rekursi
(n 1) n(n)
(n 1) n! ; n 0,1,2,3...
Untuk n 0
(n 1)
(n)
n
20
gamma(n)
15
10
0
1 1.5 2 2.5 3 3.5 4 4.5 5
n
» x=0.1:0.1:5;
» y=gamma(x);
» plot(x,y)
20
gamma(n)
15
10
0
0 1 2 3 4 5
n
» x=-5.1:0.13:-0.1;
» y=gamma(x);
» plot(x,y)
» grid on
» title('Grafik fungsi gamma');
» xlabel('n');
» ylabel('gamma(n)');
gamma(n) 20
10
-10
-20
-6 -5 -4 -3 -2 -1 0
n
D.Fungsi Beta
1. Defenisi fungsi Beta:
3.Aplikasi:
Contoh 1:
» beta(3,4)
ans =
0.0167
Contoh 2:
» beta(1.7,3.4)
E.Fungsi Bessel
1. Defenisi fungsi Bessel
Persamaan diffrensial Bessel
x2 y" xy'( x2 n 2 ) y 0; n order fungsi
Solusi persamaan diffrensial berupa :
Fungsi Bessel jenis pertama
J n ( x)
(1) k ( x / 2) 2 kn
k 0 k! ( n k 1)
3. Aplikasi
Contoh 1: fungsi Bessel jenis pertama
» besselj(2,4)
ans =
0.3641
Contoh 2: fungsi Bessel jenis kedua
» bessely(2,4)
ans =
0.2159
Contoh 3: fungsi Bessel jenis pertama orde pecahan
» besselj(3.5,2.8)
ans =
0.1772
Contoh 4: fungsi Bessel jenis kedua orde pecahan
» bessely(3.5,2.8)
ans =
-0.8016
Contoh 5: fungsi Bessel jenis pertama orde negatif
» besselj(-2,8)
ans =
0.5
J0(x)/J1(x)
-0.5
0 2 4 6 8 10
x
-1
-2
Y0(x)/Y1(x)
-3
-4
-5
-6
-7
0 2 4 6 8 10
x
F.Fungsi Legendre
1. Defenisi fungsi Legendre
Persamaan diffrensial Legendre
(1 x2 ) y"2 xy' n(n 1) y 0; n order fungsi
Solusi persamaan diffrensial disebut :
Fungsi Legendre
Pn ( x) n ( x 1) n ; n 0,1,2,...
1 dn 2
n
2 n! dx
P0 ( x) 1; P1 ( x) x; P2 ( x) 12 (3x2 1);
P3 ( x) 12 (5 x3 3x); P4 ( x) 18 (35 x4 30 x2 3)
Associated Legendre Function :
Pnm ( x) (1 x2 ) m / 2
dm
Pn ( x)
dxm
Pn0 ( x) Pn ( x)
Pnm ( x) 0, jika m 0
3. Aplikasi
Contoh 1
» legendre(3,0.2)
ans =
-0.2800
1.1758
2.8800
-14.1091
Arti output program:
-0.2800, nilai fungsi untuk n=3;m=0
1.1758, nilai fungsi untuk n=3;m=1
2.8800; nilai fungsi untuk n=3;m=2
-14.1091; nilai fungsi untuk n=3;m=3
Contoh 2:
» y=legendre(3,0:0.1:0.3);
»y
y=
n=3;
Testing 1:
Output Program:
Orde fungsi legendre=4
0.5
Nilai fungsi
-0.5
-1 -0.5 0 0.5 1
x
Testing 2:
Output Program:
Orde fungsi legendre=5
-0.5
-1
-1 -0.5 0 0.5 1
x
G.Transformasi Laplace
1. Konsep transfomasi Laplace
F ( s ) f (t )e st dt
Contoh :
f (t ) exp( at )
F ( s ) exp( at )e st dt
1
0
sa
Transformasi balik:
» ilaplace(y)
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)
Transformasi balik:
» ilaplace(y)
ans =
4*t-4^(1/2)*sin(4^(1/2)*t)
H.Transformasi Fourier
1. Konsep transfomasi Fourier
f (t )e
F ( w) jwt
dt
F (w)e
f (t )
2
1 jwt
dw
3. Aplikasi
Contoh 1:
» g=sym('t*exp(-t^2)')
g=
t*exp(-t^2)
» y=fourier(g)
y=
-1/2*i*pi^(1/2)*w*exp(-1/4*w^2)
Transformasi balik
» ifourier(y)
ans =
1/2*4^(1/2)*x*exp(-x^2)
Contoh 2:
» g=sym('2*t^2')
g=
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.
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
3. Algorithm program
a. Start
b. Input data
jb’y’
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
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.
Budi Sutedjo dan Michael AN. 2000. Algoritma dan Teknik Pemrograman.
Yogyakarta: Penerbit Andi.
Carl Reynolds and Paul Tymann, 2005. Principles of computer science.
Schaum’s 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.