Anda di halaman 1dari 165

OLEH :

PROF. DR. SAHYAR, M.S.

UNIVERSITAS NEGERI MEDAN

Sahyar Econophysics Unimed Medan

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.

Sahyar Econophysics Unimed Medan

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

B.Perangkat Sitem Komputer


Komputer adalah alat pengolah data yang bekerja secara elektronik dan
dikontrol oleh program, dengan keterlibatan pemakai seminimal mungkin.
Perangkat dalam pemakaian sistem komputer adalah : brainware, software
dan hardware. Sistem komputer dapat berjalan bila ketiga bagian perangkat
tersebut bekerja dalam satu kesatuan.
1. Brainware
Brainware adalah orang yang menggunakan atau memanfaatkan komputer.
Brainware dapat dibagi menjadi tiga golongan utama yaitu: operator, programmer
dan analis
2. Software (Perangkat Lunak)
Software adalah perintah-perintah dalam bentuk rekaman untuk
mengendalikan kerja perangkat keras komputer. Perangkat keras komputer dapat
bekerja hanya dengan sinyal elektronik digital dengan nilai 1 (high) atau 0 (low).
Sulitnya untuk melakukan instruksi terhadap perangkat keras, maka diciptakan
beberapa kelompok software untuk memudahkan pengendalian perangkat keras
komputer.
Software dapat dikelompokkan dalam tiga bagian yaitu:
a. Software sistem operasi (Operating system), yaitu progam yang ditulis untuk
mengendalikan dan mengkoordinasikan kegiatan dari sistem komputer. Contoh
sistem operasi yang terkenal adalah: windows dan linux.
b. Software bahasa (Bahasa pemrograman) yaitu program yang digunakan untuk
menterjemahkan perintah-perintah yang ditulis dalam bahasa pemrograman ke
dalam bahasa mesin (level low/0, atau high/1) agar dapat dimengerti oleh
komputer. Contoh software bahasa : Turbo Pascal, Delphi, C, visual C, Visual
Basic, MatLab, dll.

Sahyar Econophysics Unimed Medan

c. Software aplikasi yaitu program yang ditulis menggunakan software bahasa


untuk menyelesaikan suatu aplikasi tertentu. Contoh software aplikasi:
microsoft word, microsoft excel, microsoft power point, microsoft access, spss,
dll.
3. Hardware (Perangkat keras)
Perangkat keras komputer dapat dibagi menjadi 2 kelompok yaitu
perangkat keras utama dan perangkat keras pendukung (periferal). Perangkat
keras utama meliputi: papan induk, kartu ekspansi, CPU, memori, penyimpan
data, cakram pemutar, kartu vidio, papan ketik dan monitor. Perangkat keras
pendukung di antaranya: printer, plotter, modem, mouse, scanner, dll.

C.Program Komputer dan Bahasa Pemrogaman.


Program komputer adalah perintah-perintah atau instruksi yang disusun
berdasarkan algoritma dengan menggunakan bahasa pemrograman untuk
penyelesaian suatu masalah.
Bahasa pemrograman adalah perangkat lunak yang digunakan untuk
meterjemahkan atau menuliskan algoritma dalam bentuk teks perintah-perintah
yang dapat dimengerti oleh komputer untuk menyelesaikan suatu masalah.
Berdasarkan hirarkhi dikenal beberapa bahasa pemrograman di antaranya adalah:
a. Bahasa pemrograman aras dasar sperti: Bhs. Mesin, Bhs assembley.
b. Bahasa aras tengah seperti: Bhs. C
c. Bahasa pemrograman aras atas sperti: Pascal, Visual Basic, MatLab dan lainlain.
Bahasa pemrograman yang dapat menghasilkan file program komputer
yang berdiri sendiri disebut dengan Compiler, sedangkan bahasa pemrograman
yang hanya berperan sebagai penterjemah kode-kode program disebut dengan
interpreter. File program komputer yang ditulis dengan menggunakan interpreter
hanya dapat dieksekusi jika menggunakan bahasa pemrograman tersebut.
Melalui defenisi di atas maka untuk menyusun proram komputer harus
dipenuhi hal-hal berikut: a) ada masalah yang akan dipecahkan, b) ada algoritma
untuk penyelesaian masalah dan c) ada bahasa pemrograman untuk
menterjemahkan algoritma.

D.Tahapan Dalam Menyusun Program komputer


Langkah-langkah yang dilakukan dalam meyelesaikan
pemrograman dengan komputer adalah :
1. Defensisi masalah
i. Tentukan apa yang menjadi masalah
ii. Tentukan data input dan output
2. Struktur data.

Sahyar Econophysics Unimed Medan

masalah

dalam

i. Tentukan variabel untuk masing-masing data


ii. Tentukan tipe data untuk masing-masing variabel.
Algoritma program komputer
i. Susun algoritma untuk input, proses dan output.
Pengkodean
i. Pilih bahasa pemrograman
ii. Terjemahkan algoritma dalam bahasa pemrograman
Pengujian dan verifikasi program
i. Pengujian kesalah sintaks (penulisan program)
ii. Pengujian kesalahan logika dengan menggunakan data input
sederhana
iii. Bandingkan output program dengan perhitungan manual.
Dokumentasi program

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

Gambar 1.1. Simbol Flowchart


1. Contoh algoritma menggunakan kalimat untuk menentukan angka yang lebih
besar dari dua buah angka.
a. Mulai
b. Input data

Sahyar Econophysics Unimed Medan

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

Gambar 1.2. Flowchart menentukan nilai lebih besar


3. Contoh algoritma menentukan luas segitiga menggunakan kalimat:
a. Mulai
b. Input data
Read(a)
Read(t)
c. Proses
Luas=0.5*a*t
d. Output
Luas
e. Stop
4. Contoh algoritma menentukan luas segitiga menggunakan flowchart

Sahyar Econophysics Unimed Medan

Mulai

Read(a);
read(t)

Luas=0.5*a*t

Luas

selesai

Gambar 1.3.Flowchart hitung luas segitiga

F.Syarat Program komputer yang baik


Program komputer yang baik harus memenuhi beberapa syarat berikut:
1. Bekerja sesuai dengan tujuan dan memenuhi spesfikasi yang telah
ditentukan.
2. Fleksibel
3. Tidak menandung kesalahan
4. Didokumentasi secara baik
5. Cepat dalam waktu pelaksanaan
6. Efisien dalam penggunaan memory komputer.

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.

Sahyar Econophysics Unimed Medan

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.

Sahyar Econophysics Unimed Medan

BAB 2
TIPE DATA,VARIABEL, NILAI DAN EKSPRESI
A.TUJUAN PEMBELAJARAN
1.
2.
3.
4.
5.

Menjelaskan perbedaan tipe data dasar dan tipe data bentukan.


Menjelaskan perbedaan variabel dan konstanta.
Menjelaskan aturan membuat variabel dalam pemrograman.
Menjelaskan cara memberi nilai variabel.
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.
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:

Sahyar Econophysics Unimed Medan

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.

3.Tipe data Logik


Karakteristik tipe data logik
Data mempunyai nilai benar (True atau 1) dan salah (false atau 0).
Operasi data logik meliputi: and, or, dan not

A
False
False
True
True

Tabel 2.1. Operasi data Logik


B
A and B A or B not A
False False
False
True
True
False
True
True
False False
True
False
True
True
True
False

4.Tipe data Bentukan.


a.Tipe data larik(array)
Karakteristik tipe data array
Sejumlah data sejenis yang ditampung oleh variabel yang mempunyai
indeks.
Array dimensi satu, data ditampung oleh variabel yang mempnyai satu
indeks. Misal: a(1)= 20; a(2)=30; a(3)=34; dst.
Array dimensi dua, data ditampung oleh variabel yang mempnyai dua
indeks. Misal: a(1,1)= 20; a(1,2)=30; a(1,3)=34; a(2,1)=12; a(2,2)=15;
dst.
b. Tipe data String
Karakteristik tipe data string.
Data yang merupakan deretan karakter yang membentuk kata atau
kalimat.
Data string biasanya diapit oleh dua tanda kutip.
c. Tipe data Record
Karakteristik tipe data record.
Data yang terdiri dari beberapa jenis tipe data seperti: real, integer,
karakter dan string.
Sebagai contoh: Record pegawai berisi data: nama (string), nip(integer),
alamat (string), gaji(real), tanggungan (integer).

C.Variabel
Variabel adalah suatu pengenal yang digunakan untuk menampung data di
memory komputer.

10

Sahyar Econophysics Unimed Medan

Aturan dalam membuat pengenal variabel:


Harus dimulai dengan huruf abjad.
Tidak boleh ada sepasi
Menggunakan huruf dan angka. Untuk Matlab huruf kecil dan besar
dibedakan, sebagai contoh: Luas berbeda dengan luas.
Sebaiknya singkat dan mempunyai makna.
Contoh variabel:
Besaran luas dapat menggunakan variabel : l atau lu atau luas, dll.
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
velocity), kec, kp, dll.
Besaran tinggi dapat menggunakan variabel : t, tg, dll.
Sifat Variabel:
Mengingat nilai data terakhir. Ketika variabel mendapat nilai baru, maka
nilai lama diganti dengan nilai baru.
Untuk variabel sederhana setiap variabel hanya merekam/mengingat satu
nilai data.
Untuk variabel array setiap variabel dapat merekam/mengingat sejumlah
data, tergandung jumlah indeks array.
Menganalisis sifat vaiabel menggunakan Matlab:
Contoh 1: variabel mengingat/mencatat data terakhir
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.
Contoh 2: Menukar nilai variabel
p=30;q=90;
c=p;
p=q;
q=c;

11

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

BAB 3
OPERATOR DAN FUNGSI STANDAR
A.Tujuan Pembelajaran
1.
2.
3.
4.
5.

Menjelaskan lima jenis operator dasar Aritmatika.


Menjelaskan enam jenis operator dasar relasi.
Menjelaskan tiga jenis operator dasar logika.
Menggunakan fungsi standar matematika dalam MATLAB
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.
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

Sahyar Econophysics Unimed Medan

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

>=

Greater than or equal to

<

Less than

<=

Less than or equal to

==

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Tabel 3.5. Fungsi standar untuk data Teks atau String


No Fungsi
1 strcmp
2
3
4
5
6

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

Contoh Pemakaian menggunakan Matlab


Contoh1: Nilai cos
x=0.5*pi;
cos(x)
ans =
6.1232e-017
Contoh 2:Log dengan bilangan pokok e
log(100)
ans =
4.6052

17

Sahyar Econophysics Unimed Medan

Contoh 3: Log dengan bil.pokok 10


log10(100)
ans =
2
Contoh 4: Nilai pemangkatan e
exp(1)
ans =
2.7183
Contoh 5: Nilai mutlak
y=-30;
abs(y)
ans =
30
Contoh 6: menentukan akar
sqrt(9)
ans =
3
Contoh 7: Pembulatan
x=3.768;
round(x)
ans =
4
fix(x)
ans =
3
floor(x)
ans =
3
Contoh 8: Sisa pembagian
rem(17,5)
ans =
2
Contoh 9: Menggabung dua teks
a='Ali ';
b='pergi ke Medan';
strcat(a,b)
ans =
Ali pergi ke Medan

18

Sahyar Econophysics Unimed Medan

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.

Jelaskan lima jenis operator dasar Aritmatika dalam MATLAB.


Jelaskan enam jenis operator dasar relasi dalam MATLAB.
Menjelaskan tiga jenis operator dasar logika dalam MATLAB.
Berikan sepuluh contoh menggunakan fungsi standar matematika dalam
MATLAB
5. Berikan lima contoh menggunakan fungsi standar untuk data teks dalam
MATLAB

19

Sahyar Econophysics Unimed Medan

BAB 4
INPUT OUTPUT DATA DALAM MATLAB
A.Tujuan Pembelajaran
1.
2.
3.
4.

Menggunakan statemen input untuk data numerik.


Menggunakan statemen input untuk data teks.
Menggunakan statemen output untuk data numerik.
Menggunakan statemen output untuk data teks.

B.Input data dalam MATLAB


Input data adalah data yang akan dimasukkan ke dalam memori internal
komputer. Input data yang umum diapakai dalam pemrograman adalah input
melalui keyboard. Output data adalah data hasil operasi komputer yang dapat
ditampilkan ke monitor, printer atau direkam pada memori eksternal sebagai data
file.
1. Instruksi Matlab terkait input dan output data
Tabel 4.1. Statemen dasar dalam MatLab
Instruksi/statemen/simbol
input
%
.(titik)
;
disp
fprintf
\n
%7.3f

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

2.Input data numerik


Sintaks: variable = input(Nama of variable =);
Contoh: alas= input (Masukkan data alas = );
Keterangan:
alas adalah variabel data numerik;
data input melalui keyboard;
data akan ditampung variabel alas.
3.Input data teks (string data)
Sintaks: variable = input(Name of variable = ,s);

20

Sahyar Econophysics Unimed Medan

Contoh: nama= input(Masukkan nama anda =, s);

C.Output data dalam MatLab


1.Output data text .
Contoh: disp('I go to school');
Output : I go to school
2.Output data numerik dalam text
Contoh : x=4.7895;
disp([Force =',num2str(x),' newton']);
Output result :Force =4.7895 newton
3.Output data numerik
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

4.Output data numerik diikuti pindah baris


x=1007.46; y=2.7658; z=17;
disp('x
y
z');
disp(--------------------------------------------------);
fprintf('\n%8.2f%10.4f%8.0f\n',x,y,z);
Output :
x
y
z
--------------------------------------------------------1007.46
2.7658
17

D.Contoh Program Aplikasi


Contoh 1.
Program Output data menggunakan MATLAB.
Coding program
% output data text

21

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n

value of x = %6.3f ',x);


value of y = %5.3f ',y);
value of z = %7.4f ',z);
x= %6.3f y=%5.2f z=%7.4f ',x,y,z)

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

Output Bentuk kedua


-------------------------Nilai energi = 25.780 joule
value of x = 12.300
value of y = 89.000
value of z = 13.7890
x= 12.300 y=89.00 z=13.7890

24

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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.

C.Contoh Instruksi runtun menggunakan MatLab


Contoh 1:
Clc;
%Data
x=10; y=15;
%proses
r= x+y- x^2+y^2;
%output data
r
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

26

Sahyar Econophysics Unimed Medan

D.Contoh Program aplikasi.


Contoh1: Program Untuk menghitung Luas Segitiga
1. Defenisi Masalah
Menghitung Luas segitiga
Input: data alas dan tinggi
Output: data luas.
2. Struktur data
Unit /Besaran
Alas
Tinggi
Luas

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 = 0.5 * a*t

luas

Stop

Gambar 5.1. Folwchart hitung luas segitiga


4. Coding dalam MatLab
%Computer Program for caculating area of triangle
%Input data
a= input(' Alas = ');

27

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Output data

Algoritma menggunakan flowchart

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

Sahyar Econophysics Unimed Medan

%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

Sahyar Econophysics Unimed Medan

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

Gambar 6.1. Flowchart If then satu kasus


Keterangan Gambar 6.1: proses dikerjakan jika kondisi benar
2. Instruksi bentuk dua kasus
if (kondisi)
then proses1
else proses2
end

31

Sahyar Econophysics Unimed Medan

kondisi
T
Proses1

Proses2

Gambar 6.2. Flowchart If then dua kasus


Keterangan Gambar 6.2: proses1 dikerjakan jika kondisi benar, jika salah proses 2
dikerjakan.
3.Instruksi bentuk tiga kasus
if (kondisi1)
then proses1
elseif kondisi2
then proses2
else proses3
end

Kondisi1

Kondisi2

T
Proses1

T
Proses2

Proses3

Gambar 6.3. Flowchart if then bentuk tiga kasus

32

Sahyar Econophysics Unimed Medan

Keterangan Gambar 6.3: proses1 dikerjakan jika kondisi 1 benar, proses2


dikerjakan jika kondisi 2 benar, proses 3 dikerjakan jika kondisi 1 dan 2 salah.

C.Contoh program sederhana.


1.Bentuk keputusan satu kasus
Contoh1
clc;
a=5;
b=3;
if a>b
disp('Sukses');
end
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)
2.Bentuk keputusan dua kasus
clc;
a=5;
b=10;
if a>b
disp('Sukses');
else
disp('Bahagia');
end
output program:
Bahagia
(karena a>b salah maka yang tampil kasus kedua)

33

Sahyar Econophysics Unimed Medan

3.Bentuk keputusan tiga kasus


clc;
a=10;
b=10;
if a>b
disp('Sukses');
elseif a<b
disp('Bahagia');
else
disp('Kedamaian');
end
output program:
Kedamaian (sebab a>b salah; a<b salah, maka yang dieksekusi kasus ketiga)

D.Contoh Program aplikasi


Contoh 1. Program menentukan akar-akar persamaan kuadrat.
1. Defenisi masalah
Menentukan akar-akar persamaan kuadrat, a X2 + b X + c = 0
Input koef : a, b, c
Output : akar-akar persamaan kuadrat
2. Struktur data
Unit
Coefficient a
Coefficient b
Coefficient c
Akar-akar real
Akar-akar kompleks

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Output data

sk=input(' Input Skor anda = ');


nm=input(' Input nama anda =','s');
%Process
if sk>=90
nh='A (Sangat kompeten )';
elseif sk>=80
nh ='B (Kompeten )';
elseif sk>=70
nh='C (Cukup kompeten )';
else
nh ='E (Tidak kompeten )';
end
%Output
disp(['Nama anda = ',nm]);
fprintf('Skor ujian anda =%8.2f\n',sc);
disp(['Hasil =',nh]);
5. Testing and Verification
Pengujian 1.
Input Skor anda = 68
Input Nama anda =Syarifuddin
Nama anda = Syarifuddin
Skor ujian anda = 68.00
Hasil =E (Tidak kompeten)
Pengujian 2.
Input Skor anda = 75
Input Nama anda = Andina
Nama anda = Andina
Skor ujian anda = 75.00
Hasil = C (Cukup kompeten)
Pengujian 3.
Input Skor anda = 90
Input Nama anda = Tatang
Nama anda = Tatang
Skor ujian anda = 90.00
Hasil =A (Sangat kompeten)

38

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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.

C.Contoh Program sederhana


Coding:
clc;
disp('Pilihan');
disp('1.Jeruk;2.Mangga;3.Sirsak');
p=input('Pilihan : ');
switch p
case 1
disp('Pilihan anda:Jeruk');
case 2
disp('Pilihan anda:Mangga');
case 3
disp('Pilihan anda:Sirsak');
end

40

Sahyar Econophysics Unimed Medan

Output program:
Pilihan
1.Jeruk;2.Mangga;3.Sirsak
Pilihan : 3
Pilihan anda:Sirsak

D.Contoh Program aplikasi


Program : Penentuan gaji berdasar golongan.
1. Defenisi Masalah

Penentuan gaji berdasar golongan.


Golongan

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

Sahyar Econophysics Unimed Medan

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);

5. Testing and Verification


Pengujian 1
Input Nama Anda = Ali
Input Golongan Anda = 1
Nama anda = Ali
Golongan anda = 1
Gaji anda = Rp 2500000.00
Pengujian 2
Input Nama Anda = Badu

42

Sahyar Econophysics Unimed Medan

Input Golongan Anda = 2


Nama anda = Badu
Golongan anda = 2
Gaji anda = Rp 3500000.00
Pengujian 3
Input Nama Anda = Syarif
Input Golongan Anda = 3
Nama anda = Syarif
Golongan anda = 3
Gaji anda = Rp 4500000.00

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

Sahyar Econophysics Unimed Medan

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

Gambar 8.1. Flowchart For

44

Sahyar Econophysics Unimed Medan

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.

C.Contoh program sederhana


1.Perulangan satu loop
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

45

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Nilai k= 4
2.Sukses
5.Sukses
8.Sukses
Nilai k= 5
2.Sukses
5.Sukses
8.Sukses

D. Contoh program aplikasi.


Contoh Program 1: Menentukan suku-suku dan jumlah deret.
1. Defenisi masalah
Menentukan suku-suku deret.
Menentukan total suku-suku deret
2. Struktur Data
Unit
Suku awal
Beda
Banyak suku
suku
Total

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Gambar 9.1. Flowchart While


While (kondisi) do
...........................
Instruksi-instruksi
...........................
End while

50

Sahyar Econophysics Unimed Medan

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.

C.Contoh program sederhana


Contoh 1
clc;
a=10;
b=0;
while a>b
disp([num2str(b),'.Sukses']);
b=b+2;
end
Output program:
0.Sukses
2.Sukses
4.Sukses
6.Sukses
8.Sukses
Proses perulangan berhenti ketika nilai b=12

D. Contoh aplikasi program.


Contoh Program 1:
1. Defenisi masalah
Menentukan variasi kecepatan gerak lurus berubah beraturan dengan
variasi waktu.
2. Struktur Data
Unit
Kecepatan awal
Percepatan
Lama pengamatan

51

Variabel
vo
a
lp

Type of data
Numeric
Numeric
Numeric

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Input data
Output data
Output data

5. Testing and Verification


Pengujian 1
Kecepatan awal =10
Percepatan =2
Lama pengamatan =4
Interval waktu = 0.5
Nomor Waktu
Kecepatan
--------------------------------------1 0.00
10.00
2 0.50
11.00
3 1.00
12.00
4 1.50
13.00
5 2.00
14.00
6 2.50
15.00
7 3.00
16.00
8 3.50
17.00
9 4.00
18.00
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

53

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Program komputer yang
akan diulang

b=input('Beda suku =');


n=input('Banyak suku =');
disp('Suku-suku deret ');
total=0;
s=a;
for k= 1:n
total=total+s;
disp(['Suku ',num2str(k),'= ',num2str(s)]);
s=s+d;
end
%Output
disp(['Total = ',num2str(total)]);
jb=input('Dilanjutkan ? y/n = ','s');
end

5. Testing and Verification


Pengujian 1
Suku awal =3
Beda suku =3
Banyak suku =4
Suku-suku deret
Suku 1= 3
Suku 2= 4
Suku 3= 5
Suku 4= 6
Total = 18
Dilanjutkan ? y/n =
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

55

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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.

D.Contoh aplikasi program.


Contoh Program 1: Program Untuk menghitung Energi Kinetik dengan
fungsi.
Fungsi Energi kinetik
function energi=ek(m,v)
energi=0.5*m*v^2;
Fungsi ini akan direkam dengan nama file: ek
1. Definisi masalah
Menentukan Energi Kinetik
Rumus: Ek = 0.5 * m*v2
Data input: kecepatan, massa
Data output: energi kinetik.
2. Struktur Data
Unit /Besaran
Kecepatan
Massa
Energy Kinetik

Variabel
v
m
ek

Type data
Real/Numeric
Real/Numeric
Real/Numeric

3.Algoritma program

58

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Energy Kinetik = 46.88 joule


Pengujian ketiga
Kecepatan = 125
Massa = 23
Kinetic Energy=179687.50 joule
Contoh Program 2: Menghitung akar-akar persamaan kuadrat.
Fungsi menghitung akar-akar persamaan kuadrat.
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);
fungsi ini direkam dengan nama file: akar.
1. Defenisi masalah
Menentukan akar-akar persamaan kuadrat.
a X2 + b X + c = 0
2. Input and output data
Unit
Coefficient a
Coefficient b
Coefficient c
Akar-akar real
Akar-akar kompleks

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

disp('value X1 = X2 and real');


fprintf('\n x1 =X2=%5.2f ',x1);
else
disp('value X1 <> X2 and complex');
fprintf('x1 = ');disp(x1k);
fprintf('x2 = ');disp(x2k);
end
5.Testing and Verification.
Pengujian pertama
Coef a= 1
Coef b= 7
Coef c= 12
value X1 <> X2 and real
x1 =-3.00
x2 =-4.00
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.
1. Susun program komputer dengan menggunakan fungsi untuk menghitung
jarak tempuh gerak lurus beraturan.

62

Sahyar Econophysics Unimed Medan

2. Susun program komputer dengan menggunakan fungsi untuk menghitung luas


permukaan selinder.
3. Susun program komputer dengan menggunakan fungsi untuk menghitung
energi kinetik dan potensial pegas.
4. Susun program komputer dengan menggunakan fungsi untuk menghitung
c
rumus berikut: P a b 2
bd
5. Susun program komputer dengan menggunakan fungsi untuk menghitung
c
a

rumus berikut:: P b 2
bd d

63

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Tabel 11.1. Operasi pada variabel array dimensi satu.


No
1
2
3
4
5
6
7

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]

C.Contoh operasi array dimensi satu


1.Penjumlahan dengan sekalar
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
2.Perkalian dengan sekalar
a=[3 5 6 7 8 10]
a=
3 5 6 7 8 10
k=5;
a*k
ans =
15 25 30 35 40 50
3.Pemangkatan dengan sekalar
a=[3 5 6 7 8 10]
a=
3 5 6 7 8 10
k=2;
a.^k

65

Sahyar Econophysics Unimed Medan

ans =
9 25

36

49

64 100

4.Penjumlahan dua array


a=[3 7 5 8];
b=[2 1 5 2];
a+b
ans =
5 8 10

10

5.Pekalian dua array


a=[3 7 5 8];
b=[2 1 5 2];
a.*b
ans =
6 7 25

16

6.Pembagian dua array


a=[3 7 5 8];
b=[2 1 5 2];
a./b
ans =
1.50007.0000 1.0000
7.Pemangkatan dua array
a=[3 7 5 8];
b=[2 1 5 2];
a.^b
ans =
9
7
3125

4.0000

64

8.Data array terstruktur


x=1:2:10
x=
1 3 5
x(4)
ans =
7

p=0:0.5:6

66

Sahyar Econophysics Unimed Medan

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

D. Contoh aplikasi program.


Contoh 1.
1. Defenisi masalah
Menentukan : total , rata-rata dan standard deviasi n data.
2. Struktur data
Unit
Banyak data
Data
Total
Rata2
Standar deviasi

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Data: 3 Input data= 30


Data: 4 Input data= 40
Data: 5 Input data= 20
Total = 120.00
Average = 24.00
deviation standard = 11.40
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
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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

fprintf('\n Data ke: %3.0f, , %3.0f,= %8.2f\n',b,k,a(b,k));

end
end
Tabel 12.1. Operasi dan fungsi standar pada matriks.
No

Operasi

1
2

Penjumlahan dua matriks


Perkalian dua matriks

Perkalian elemen-elemen dua


matriks
Invers matriks persegi a
Nilai determinan matriks
persegi a
Nilai eigen matriks persegi a
Transpose matriks a
Menentukan jumlah kolom
matriks a
Menentukan orde matriks a

3
4
5
6

Bentuk
coding
a+b
a*b
a.*b

Orde kedua matriks sama


Baris matriks pertama =
kolom matriks kedua
Orde kedua matriks sama

inv(a)
det(a)

Matriks bujur sangkar


Matriks bujur sangkar

eig(a)
a
rank(a)

Umum
Umum
Umum

size(a)

Umum

C.Contoh operasi matriks


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)

71

Syarat

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

17

40

33

6.Penjumlahan 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 =
5 8 12
9 14 7
5 7 5
7.Matriks identitas
eye(4) %matriks identitas 4 x 4
ans =
1

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

D.Penyelesaian Sistem Persamaan Linear


Bentuk sistem persamaan linear tiga variabel

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

E. Contoh aplikasi program.


CONTOH 1:
1. Defenisi masalah.
Menjumlah dan mengalikan matriks.
2.Struktur data
Unit
Matriks a
Matriks b
Penjumlahan
Perkalian

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

5. Testing and Verification


Testing ke 1
Input elemen matriks a =[4 5;7 8]
Matriks a
a=
4 5

77

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Penyelesaian sistem persamaan linear.


2. Input and output data
Unit
Variabel
Type of data
Elemen matriks m x m
a
Numeric /matriks
sistem persamaan linear
Elemen matriks kolom
b
Numeric/matriks
sistem persamaan linear
Elemen matriks kolom
x
Numeric/matriks
yang nilainya belum
diketahui
3. Algorithm program
a. Start
b. Input data
Baca matriks (a)
Baca matriks (b)
c. Proses
xa\b;
d. Output
a
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
5. Testing dan Verifikasi

79

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Output data

Aljabar Linear dan matriks: Ax = b


Input elemen Matriks a= [1 1 1;2 3 1;4 1 4]
Input elemen Matriks b=[9;17;27]
Elemen matriks a
a=
1 1 1
2 3 1
4 1 4
Elemen matriks b
b=
9
17
27
Elemen matriks x atau hasil
x=
2.0000
3.0000
4.0000

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

Sahyar Econophysics Unimed Medan

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.

Tahap menggambar grafik dengan MatLab.


Jika akan digambar grafik: y = f(t)

81

Sahyar Econophysics Unimed Medan

% tahap 1: membangkitkan nilai t dari 0 s/d 10 dengan interval:0,2.


t= 0:0.2: 10;
% tahap 2: membangkitkan nilai y
y=f(t);
% tahap 3: menggambar grafik
plot(t, y,warna);
Pemakaian fungsi standar plot untuk menggambar grafik tunggal dan
beberapa grafik pada sumbu yang sama dapat digunakan sintaks pemakaian plot
pada Tabel berikut:
Tabel 13.2. Bentuk pemakaian plot
Fungsi
plot(x,y1,c1)

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.

Utuk pengaturan tampilan warna grafik dua dimensi dapat digunakan


pilihan warna sebagai berikut:
Tabel 13.3. Beberapa pilihan warna grafik
Nomor
1
2
3
4
5
6
7
8

Symbol
y
m
c
r
g
b
w
k

Warna
Yellow
Magenta
Cyan
Red
Green
Blue
White
Black

Beberapa fungsi standar pendukung yang dapat digunakan untuk mengatur


tampilan grafik adalah sebagai berikut:
Tabel 13.4. Beberapa fungsi pendukung untuk grafik pada Matlab
Fungsi
grid on
title (judul grafik)
xlabel(label pada sumbu x)
ylabel(label pad sumbu y)
legend(keterangan masing-masing grafik)
linspace(a,b,n)

82

Sahyar Econophysics Unimed Medan

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

C. Contoh aplikasi program Dalam satu jendela.


Contoh 1: Grafik garis suatu fungsi pada sumbu xy
Coding
%graphic y= a sin(x)
%input
clc;
n=input('Jumlah Periode : ');
a=input('Amplitudo = ');
%process
x=0:0.01:2*pi*n;
y=a*sin(x);
%output
plot(x,y,k)
xlabel('x axis');ylabel('y axis');
title('y= A sin x');
grid on;
Testing and Verification
Pengujian 1
Number of periode: 2
Amplitude = 12

y= A sin x

15
10

y axis

5
0
-5
-10
-15
0

10

12

x axis

Gambar 13.1. Grafik fungsi sinus


Contoh 2: Grafik garis beberapa fungsi pada sumbu xy
Coding

83

Sahyar Econophysics Unimed Medan

14

%graphic 1.y= a sin(3t)


%graphic 2.y= b cos(5t)
%input
clc;
a=input('Amplitudo a = ');
b=input ('Amplitudo b = ');
n=input(Lama pengamatan=);
%process
t=0:0.01:n;
y1=a*sin(3*t);
y2=b*cos(5*t);
y=y1+y2;
%output
plot(t,y1,'b',t,y2,'r',t,y,k)
xlabel(' waktu ');ylabel(' simpangan');
title('y1= A sin(3t); y2= B cos(5t) ');
grid on;
Testing
Amplitudo a = 3; Amplitudo b = 5; Lama pengamatan =5
y1= A sin(3t); y2= B cos(5t)
8
6

simpangan

4
2
0
-2
-4
-6
-8
0

waktu

Gambar 13.2. Grafik fungsi sinus dan cosinus

84

Sahyar Econophysics Unimed Medan

Contoh 3: Grafik batang y = a sin(x) pada sumbu xy


Coding
%graphic y= a sin(x)
%input
clc;
n=input('Jumlah Periode : ');
a=input('Amplitudo = ');
%process
x=0:0.2:2*pi*n;
y=a*sin(x);
%output
bar(x,y,k)
xlabel('x axis');ylabel('y axis');
title('y= A sin x');
grid on;
Testing
Pengujian 1; Number of periode: 1; Amplitude = 15
y= A sin x
15
10

y axis

5
0
-5
-10
-15
-2

x axis

Gambar 13.3. Grafik batang fungsi sinus

85

Sahyar Econophysics Unimed Medan

Contoh 4: Grafik tangga y = a sin(x) pada sumbu xy


Coding
%graphic y= a sin(x)
%input
clc;
n=input('Jumlah Periode : ');
a=input('Amplitudo = ');
%process
x=0:0.2:2*pi*n;
y=a*sin(x);
%output
stairs(x,y,k)
xlabel('x axis');ylabel('y axis');
title('y= A sin x');
grid on;
Testing and Verification
Pengujian 1
Jumlah periode = 2
Amplitudo = 15
y= A sin x
15
10

y axis

5
0
-5
-10
-15
0

10

12

x axis

Gambar 13.4. Grafik tangga fungsi sinus

86

Sahyar Econophysics Unimed Medan

14

Contoh 5: Grafik polar y = a sin(x)*cos(x)


Coding
%graphic y= a sin(x)* cos (x)
%input
clc;
%process
x=0:0.01:2*pi;
%y=15*sin(x).*cos(x);
y=15*sin(x).^2;
%output
polar(x,y,k);
title('y= A sin x * cos x');
grid on;
Testing:
y= A sin x * cos x
90 8
120
60
6
4

150

30

2
180

210

330
240

300
270

Gambar 13.5. Grafik polar fungsi sinus*cosinus


Contoh 6: Grafik menggunakan fungsi eksternal
Coding
%Kurve 2D menggunakan fungsi eksternal
%function kuadrat=fk(x);
%kuadrat=X^2+5*x+6;
clc;

87

Sahyar Econophysics Unimed Medan

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

Gambar 13.6. Grafik fungsi eksternal


Contoh 7: Grafik dengan menggunakan data empirik
Coding
%Kurve 2D menggunakan data empirik
clc;
n=input('Banyak data = ');
for k=1:n
disp(['Data ke = ',num2str(k)]);
x(k)=input('x = ');
y(k)=input('y = ');
end;
plot(x,y,'o',x,y,'k');
title('Kuve data empirik');
xlabel('Sumbu x ');ylabel('Sumbu y');
grid on;

88

Sahyar Econophysics Unimed Medan

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

Gambar 13.7. Grafik menggunakan data empirik


Contoh 8 : Grafik fungsi dengan menggunakan arsiran.

89

Sahyar Econophysics Unimed Medan

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

Kurve dengan Arsir


10

10

-5

-5

-10

10

12

sb x

Gambar 13.8. Grafik arsir fungsi sinus


Contoh 9: Grafik dengan skala logaritma
Coding:

90

Sahyar Econophysics Unimed Medan

-10
14

%Kurve 2D menggunakan skala log


%
clc;
disp('y=a^x');
a=input('Koef a= ');
x=0:0.1:10;
y=a.^x;
loglog(x,y);
xlabel('sb x');ylabel('sb y');
title('Kurve dengan skala log');
grid on;
Testing:
y=a^x
Koef a= 3
Output:
5

10

Kurve dengan skala log

10

sb y

10

10

10

10
-1
10

10

10

sb x

Gambar 13.9. Grafik skala logaritma

D.Grafik Dua Dimensi Pada Multi jendela


Dalam Matlab satu grafik dapat ditampilkan pada satu jendela atau
beberapa grafik dapat ditampilkan ke dalam beberapa jendela secara bersamaan.
Pada Bab ini akan dibahas tampilan sejumlah grafik pada multi jendela.
Membagi layar menjadi beberapa bagian.

91

Sahyar Econophysics Unimed Medan

Menjadi empat bagian:


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);
Menjadi dua bagian mendatar:
Subplot(2,1,1); plot(x,y1);
Subplot(2,1,2); plot(x,y2);
Menjadi dua bagian vertikal:
Subplot(1,2,1); plot(x,y1);
Subplot(1,2,2); plot(x,y2);

E.Aplikasi program Untuk Multi jendela


Contoh 1:
1. Defenisi masalah
Grafik y = A sin(x) dan y = A cos(x) pada 2 jendela mendatar .
2. Input and output data
Unit
Amplitudo
Jumlah periode
Simpangan
Sudut
Graphics

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Gambar 13.10. Grafik pada dua jendela (2 x 1)


Contoh 2:
1. Problem definition
Graphics y = A tan(x) and y = A (sin(x))^2 pada 2 jendela tegak .
2. Input and output data
Unit
Amplitudo
Jumlah priode
Simpanagan
Sudut
Graphics

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Input data
Input data
Output data

xlabel('x axis');ylabel('y axis');


title('y= A tan x');
grid on;
subplot(1,2,2);plot(x,y2,'r');
xlabel('x axis');ylabel('y axis');
title('y= A (sin x)^2');
grid on;
5. Testing and Verification
Jumlah periode: 3
Amplitudo = 15
y= A tan x

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

Gambar 13.11. Grafik pada dua jendela (1 x 2)


CONTOH 3:
1. Problem definition
Grafik y= A sin(x), y=A cos(x), y = A tan(x) and y = A (sin(x))^2 pada
jendela 2 x 2.
2. Input and output data
Unit

95

Variabel

Type of data

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Gambar 13.12. Grafik pada empat jendela (2 x 2)

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

>>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

C.Contoh Aplikasi grafik garis tiga dimensi


Contoh 1:
1. Defenisi Masalah
Grafik Helix dengan r tetap.
2. Struktur data
Unit
Jari-jari
Jumlah periode
Graphics

Variabel
r
p

Type of data
Numeric
Numeric

3. Algorithm program

100

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Helix
data1

100

z axis

80
60
40
20
0
10
5

10
5

-5
y axis

-5
-10 -10

x axis

Gambar 14.1. Grafik garis bangun seliner

D.Aplikasi Grafik Kurve Permukaan


Contoh 1:
1. Defenisi Masalah
Grapik z = a sin(x) + b sin (y).
2. Struktur data
Unit
Amplitudo
Jumlah periode
Simpangan
Sudut
Graphics

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Gambar 14.2. Grafik permukaan 3D fungsi sinus (1)


Testing 2
Jumlah Periode : 2
Amplitudo 1 = 4
Amplitudo 2 = 0

Gambar 14.3. Grafik permukaan 3D fungsi sinus(2)

104

Sahyar Econophysics Unimed Medan

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

Gambar 14.4. Grafik permukaan 3D fungsi sinus(3)

105

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Output data

5. Testing and Verification


Testing 1
Grafik z = a*x^2 +b* y^2; Koefisien a = -1; Koefisien b = -1

Gambar 14.5. Grafik permukaan 3D fungsi kuadrat(1)


Testing 2
Grafik z = a*x^2 +b* y^2; Koefisien a = -2; Koefisien b = 0

Gambar 14.6. Grafik permukaan 3D fungsi kuadrat (2)

107

Sahyar Econophysics Unimed Medan

Coding: Pemakaian surfl


%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);
surfl(x,y,z)
shading interp;
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

Gambar 14.7. Grafik permukaan 3D fungsi kuadrat (3)

108

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

>>bar3 (t) atau


>>bar3 (p,t)
3.Diagram batang bentuk stack
Bentuk sintaks:
>>bar (t, stack) atau
>>bar (p,t,stack)
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.

C. Contoh Program Aplikasi


Contoh 1:
Grafik Diagram batang dua dimensi
Coding:
%graphic Bar 2d
%input
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
bar(t,z);
xlabel('Priode ');ylabel('Volume ');
title('Diagram batang 2D');
legend('Beras','Jagung');
grid on;
Testing:
Tahun produksi =[2001 2002 2003]
Volume produksi = [300 500;500 700;600 850]

111

Sahyar Econophysics Unimed Medan

Diagram batang 2D
900
800

Beras
Jagung

700

Volume

600
500
400
300
200
100
0

2001

2002
Priode

2003

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]

112

Sahyar Econophysics Unimed Medan

Diagram batang 2D stack


1400
Beras
Jagung

1200

Volume

1000
800
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]

113

Sahyar Econophysics Unimed Medan

Diagram batang 3D
Beras
Jagung

800
600
400
200
0
2001
2002
2003
2004
Volume
Priode

Gambar 15.3. Diagram batang 3D


Contoh 4.
Grafik diagram Pastel
Coding:
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
pie(z,t);
xlabel('Priode ');ylabel('Volume ');
title('Diagram pastel');
legend('Beras','Jagung','Kedelai');
grid on;
Testing:
Tahun produksi =[2000 2001 2002]
Volume produksi = [200 500 300]

114

Sahyar Econophysics Unimed Medan

Diagram pastel
20%

Beras
Jagung
Kedelai

30%

50%

Gambar 15.4. Diagram pastel 2D

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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.

C.Menentukan akar-akar persamaan Polynomial


Aplikasi Program
1. Defenisi Masalah
Menentukan akar-akar persamaan polynomial.
2. Struktur data
Unit
Derajat polynomial
Koefisien polynomial
Akar-akar persamaan

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

Sahyar Econophysics Unimed Medan

Keterangan
Input data
Input data
Output data

disp(['Koef. pangkat: ',num2str(i)]);


a(j)=input('Koef = ');
end
%proses
r=roots(a);
%output
for i=1:n
disp(' ');
disp(['Akar ke: ',num2str(i),'=',num2str(r(i))]);
end
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

118

Sahyar Econophysics Unimed Medan

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

D.Menentukan akar-akar persamaan fungsi nonlinear


Aplikasi program:
Coding program
%Akar-akar persamaan nonlinear.
clear;
clc;
y=input('Fungsi persamaan nonlinear=');
p=solve(y);
disp('Akar-akar persamaan');
p
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=

119

Sahyar Econophysics Unimed Medan

[ -5]
[ -2]

E.Menentukan persamaan dan Kurve polynomial:


Aplikasi:
1. Defenisi Masalah
Menentukan persamaan dan kurve polynomial.
2. Struktur data
Unit
Derajat polynomial
Akar-akar persamaan
Koefisien polynomial
Skala pada sb x
Skala pada sb y

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Kurve Polynomial

120
100
80

60
40
20
0
-20
-10

-5

0
x

10

Gambar 16.1. Kurve Polynomial

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

Sahyar Econophysics Unimed Medan

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

Tabel 17.1. Fungsi standar untuk fitting data pengamatan


Fungsi standar
Kegunaan
p=polyfit(x,y,n)
Menentukan koefisien persamaan polynomial.
Dengan x,y : pasangan data hasil pengamatan; n=
derajat atau orde polynomial; p=koefisien
persamaan polynomial dari pangkat paling tinggi.
Variabel x,y tipe array
y1=polyval(p,x1)
Menentukan nilai-nilai pasangan data (x1,y1) hasil
interpolasi dari persamaan polynomial yang
diperoleh. Variabel p,x1,y1 tipe array.

C.Contoh aplikasi fit data


Aplikasi 1. Fitting data hasil pengukuran berikut:
Data pengamatan 1
x
y

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Gambar 17.1. Kurve Hasil Fitting n=1


Testing 2.
Banyak data pengamatan = 6
Orde Fitting polynomial = 2

125

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Kuve fitting Polynomial


35
30

Sumbu y

25
20
15
10
5
0
1

3
4
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.
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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Untuk data x = 4.7


Hasil interpolasi
yh =
16.7963
Hasil interpolasi dengan metode Spline
Pada x=4.7, nilai y = 16.7963
Kurve hasil interpolasi untuk sejumlah nilai hasil interpolasi
Kurve Interpolasi
25

Sumbu y

20

15

10

5
1

3
4
Sumbu x

Gambar 17.3. Kurve Hasil Interpolasi metode spline

E.Latihan.
Data berikut adalah hasil pengukuran pada gerak lurus berubah beraturan:
t(waktu) 1
S(jarak) 4

2 3
20 40

Berdasarkan data tersebut tentukan:


Persamaan polynomial fitting data
Nilai jarak pada t=4,5 dan t=8,1.

129

Sahyar Econophysics Unimed Medan

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.

B.Penyelesaian Integral Secara numerik


Penyelesaian Integral secara numerik disebut sebagai quadrature.
Penyelesaian integral secara numerik secara umum digunakan untuk bentuk
integral yang tidak dapat diselesaikan secara analitik. Konsep yang digunakan
penyelesaian integral secara numerik adalah dengan membagi area yang
dilingkupi fungsi menjadi beberapa segemen yang kecil. Hasil integral diperoleh
dengan cara menjumlahkan seluruh segmen dalam batas integral. Matlab
menyediakan beberapa fungsi standar yang dapat diunakan untuk penyelesaian
integral secara numerik.
Tabel 18.1. Fungsi standar integral
No
1

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

C.Contoh Aplikasi Metode Numerik


1. Metode Trapesium
Aplikasi 1: Menghitung integral f(x)=x3-12x2+36x+8
Fungsi eksternal:
%nama file yk.m
%p,x,y tipe array
function p=yk(x)
p=x.^3-12*x.^2+36*x+8;

130

Sahyar Econophysics Unimed Medan

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

Grafik fungsi yg diintegral


40

40

30

30

20

20

10

10

Kurve fungsi

00

11

22

33

44

55

66

77

0
88

Gambar 18.1. Kurve fungsi yang akan diintegral (1)

131

Sahyar Econophysics Unimed Medan

Grafik fungsi yg diintegral


Testing 2
Batas bawah = 2
Batas atas =10
Besar segmen=0.5
Hasil integral :
h=
322
Kurve fungsi

200

200

150

150

100

100

50

50

0
10

Gambar 18.2. Kurve fungsi yang akan diintegral (2)


2. Metode Quadrature
Aplikasi 1: Menghitung integral f(x)=x3-12x2+36x+8
fungsi eksternal:
% nama file yk.m
%p,x,y tipe array
function p=yk(x)
p=x.^3-12*x.^2+36*x+8;
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);

132

Sahyar Econophysics Unimed Medan

disp('Hasil metode quadrature:');


h1
disp('Hasil metode quadrature 8:')
h2=quad8('yk',b,a);
h2
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

D.Penyelesaian Integral dengan Metode Monte Carlo.


Konsep yang digunakan untuk menyelesaikan integral suatu fungsi
menggunakan metode Monte Carlo adalah dengan memanfaatkan bilangan
random. Nilai-nilai pada batas integrasi diacak dengan menggunakan pembangkit
bilangan random. Dengan cara ini tidak semua nilai pada batas integrasi
digunakan, tetapi hanya sejumlah nilai yang telah diacak. Hasil integral

133

Sahyar Econophysics Unimed Medan

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.

E.Contoh Aplikasi Metode Monte Carlo


1. Integral lipat satu dengan metode Monte Carlo:
b

f ( x)dx luas area


a

lebar x ti nggi rata - rata


(b a)

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

Sahyar Econophysics Unimed Medan

n=input('Jumlah bil.random = ');


for i=1:5
jumx=0;
for k=1:(n*i)
x=a+(b-a)*rand(1);
jumx=jumx+ym1(x);
end
hasil(i)=(b-a)*jumx/(n*i);
end
for j=1:5
fprintf('\n n=%4.0f hasil= %8.3f\n',n*j,hasil(j));
end
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
2. Integral lipat dua dengan metode Monte Carlo:
b d

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

Sahyar Econophysics Unimed Medan

Aplikasi 1: Integral fungsi f(x,y)=xy


Fungsi eksternal
Fungsi yang akan digunakan terletak sebagai file eksternal berikut:
%nama file fungsi ym.m
function p=ym(x,y)
p=x*y;
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

136

Sahyar Econophysics Unimed Medan

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

F.Penyelesaian Persamaan diffrensial.


Persamaan diffrensial yang banyak diterapkan dalam bidang sains adalah
persamaan diffrensial orde satu dan orde dua. Penyelesaian persamaan diffrensial
secara numerik secara umum dipakai untuk bentuk persamaan diffrensial yang
tidak dapat diselesaikan secara analitik.
Bentuk umum persamaan diffrensial orde satu:
dy
f ( x, y) y g ( x, y)
dx
Bentuk umum persamaan diffrensial orde dua:
d2y
dy
f ( x, y) g ( x, y) y h( x, y)
2
dx
dx

Matlab menyediakan beberapa fungsi standar untuk menyelesaikan


persamaan diffrensial orde satu. Untuk persamaan diffrensial orde dua, maka
harus dilakukan modifikasi sehingga menjadi bentuk persamaan diffrensial orde
satu.
Perubahan bentuk persamaan diffrensial orde dua ke satu:

137

Sahyar Econophysics Unimed Medan

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

Tabel 18.2. Fungsi standar Penyelesaian persamaan diffrensial


No
1

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.

G.Aplikasi Penyelesaian Persamaan Diffrensial


Aplikasi 1: Penyelesaian persamaan diffrensial orde 2 getaran teredam.
Bentuk umum persamaan diffrensial getaran teredam

d2y
dy
c ky 0
2
dt
dt
2
d y
c dy k

y
2
dt
m dt m

Fungsi eksternal getaran teredam


%getaran teredam
%my+cy+ky=0
function dydt=getar(t,y);
m=1;c=0.5;k=2;
dydt=[y(2);-c/m*y(2)-k/m*y(1)];
Coding program
%Getaran teredam
%my+cy+ky=0
%nama file getar.m
[t y]=ode45('getar',0,30,[5;0]);

138

Sahyar Econophysics Unimed Medan

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

Gambar 18.3. Kurve Hasil Solusi Getaran Teredam


Aplikasi 2: Penyelesaian persamaan diffrensial orde 2 getaran paksa.
Bentuk umum persamaan diffrensial getaran paksa

d2y
dy
c
ky A cos(t )
2
dt
dt
d2y
c dy k

y A cos(t )
2
dt
m dt m

Fungsi eksternal getaran paksa


%getaran paksa
%my''+cy'+ky= a cos wt
%nama file getarp.m
function dydt=getarp(t,y);
m=1;c=0.5;k=2;
dydt=[y(2);-c/m*y(2)-k/m*y(1)+2*cos(3*t)];

139

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Aplikasi 3: Penyelesaian persamaan diffrensial orde 2 getaran Van der Pol.


Bentuk umum persamaan diffrensial getaran Van der Pol

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

Sahyar Econophysics Unimed Medan

Getaran Van der Pol


4

y=simpangan/kecepatan

3
2
1
0
-1
-2
-3
-4

10

15
t=waktu

20

25

30

Gambar 18.5. Kurve Hasil Solusi Getaran Van der Pol

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

[ 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

Sahyar Econophysics Unimed Medan

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

Gambar 19.1. Kurve Fungsi 4+5x


Contoh 2
ezplot('sin(3*x)^2')
grid on

145

Sahyar Econophysics Unimed Medan

sin(3 x)2
1
0.8
0.6
0.4
0.2
0
-6

-4

-2

0
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
0
-10
-20
-30
-6

-4

-2

0
x

Gambar 19.3. Kurve Fungsi 'x^2-4*x-21'


5. Persamaan diffrensial orde satu
Sintaks 1: dsolve(Dy=f(t,y))
Sintaks 2: : dsolve(Dy=f(t,y),y(0)=a)

146

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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:

1.Integral dari fungsi f(x) 2x x 2 exp( x1/ 2 )


2.Derivatif fungsi f(x) 2cos(x 2 ) sin( x)
dx
3xt 0
dt
d2 x
dx
4.Persamaan diffrensial : 2 3 5 x 0
dt
dt
2
d x
dx
5.Persamaan diffrensial : 2 2 x 2 cos(t )
dt
dt
3.Persamaan diffrensial :

148

Sahyar Econophysics Unimed Medan

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) fungsi gamma


Rumus rekursi
(n 1) n(n)
(n 1) n! ; n 0,1,2,3...
Untuk n 0
(n)

(n 1)
n

2. Sintaks Fungsi gamma dengan MatLab


Sintaks : y= gamma(x); x=real;

149

Sahyar Econophysics Unimed Medan

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

Gambar 20.1.Kurve Fungsi Gamma n>0 (1)


Contoh 5: Grafik fungsi gamma untuk n>0
x=0.1:0.1:5;
y=gamma(x);
plot(x,y)

150

Sahyar Econophysics Unimed Medan

grid on
title('Grafik fungsi gamma');
xlabel('n');
ylabel('gamma(n)');
Grafik fungsi gamma

25

gamma(n)

20
15
10
5
0

Gambar 20.2.Kurve Fungsi Gamma n>0 (2)


Contoh 5: Grafik fungsi gamma untuk n<0
x=-5.1:0.13:-0.1;
y=gamma(x);
plot(x,y)
grid on
title('Grafik fungsi gamma');
xlabel('n');
ylabel('gamma(n)');

151

Sahyar Econophysics Unimed Medan

Grafik fungsi gamma


30

gamma(n)

20

10

-10

-20
-6

-5

-4

-3
n

-2

-1

Gambar 20.3.Kurve Fungsi Gamma n<0

D.Fungsi Beta
1. Defenisi fungsi Beta:
1

B(m, n) t m1 (1 t ) n1 dt ; m 0, n 0
0

B(m, n) fungsi beta


Hubungan fungsi dengan gamma
B(m, n)

(m)(n)
(m n)

2.Sintaks fungsi Beta dengan Matlab


Sintaks: beta(a,b); a,b : positif dan real;
3.Aplikasi:
Contoh 1:
beta(3,4)
ans =
0.0167
Contoh 2:
beta(1.7,3.4)

152

Sahyar Econophysics Unimed Medan

ans =
0.0970

E.Fungsi Bessel
1. Defenisi fungsi Bessel

Persamaan diffrensial Bessel


x 2 y" xy '( x 2 n 2 ) y 0; n order fungsi
Solusi persamaan diffrensial berupa :
Fungsi Bessel jenis pertama
(1) k ( x / 2) 2 k n
k 0 k! ( n k 1)
Fungsi Bessel jenis kedua

J n ( x)

Yn ( x)

J n ( x) cos n J n ( x)
sin n

2. Sintaks fungsi Bessel dengan Matlab.


Sintaks fungsi bessel jenis pertama: besselj(n,x); n=(orde); x tipe real;
Sintaks fungsi bessel jenis kedua : bessely(n,x); n=(orde); x tipe real;
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 =

153

Sahyar Econophysics Unimed Medan

-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

Gambar 20.4.Kurve Fungsi Bessel


Contoh 7: Grafik fungsi Bessel jenis kedua
%Fungsi bessel jenis kedua
x=0:0.1:10;
j0=bessely(0,x);
j1=bessely(1,x);
plot(x,j0,'k',x,j1,'b')
grid on
title('Grafik fungsi Bessel Y0(x) dan Y1(x)');
xlabel('x');
ylabel('Y0(x)/Y1(x)');

154

Sahyar Econophysics Unimed Medan

10

Grafik fungsi Bessel Y0(x) dan Y1(x)


1
0

Y0(x)/Y1(x)

-1
-2
-3
-4
-5
-6
-7
0

10

Gambar 20.5.Kurve Fungsi Bessel Jenis kedua

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

Sahyar Econophysics Unimed Medan

2. Sintaks fungsi Legendre dengan Matlab.


Matlab menyediakan fasilitas fungsi standar untuk Associated Legendre
Function.
Sintaks fungsi Legendre : legendre(n,x); m=0,1,2,...n; -1<=x<=1;
Contoh: legendre(3,0.1); artinya: menentukan nilai fungsi Legendre untuk x=0.1;
orde n=3 dan m=0,1,2,3; sehingga ada empat nilai fungsi.
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;
m
0
1
2
3

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

Sahyar Econophysics Unimed Medan

X=0.2
-0.2800
1.1758
2.8800
-14.1091

X=0.3
-0.3825
0.7870
4.0950
-13.0213

ylabel('Nilai fungsi ');


title(['Kurve fungsi Legendre m=0;n=',num2str(n)]);
Testing 1:
Output Program:
Orde fungsi legendre=4
Kurve fungsi Legendre m=0;n=4
1

Nilai fungsi

0.5

-0.5
-1

-0.5

0
x

0.5

Gambar 20.6.Kurve Fungsi Legendre m=0, n=4


Testing 2:
Output Program:
Orde fungsi legendre=5

157

Sahyar Econophysics Unimed Medan

Kurve fungsi Legendre m=0;n=5


1

Nilai fungsi

0.5

-0.5

-1
-1

-0.5

0
x

0.5

Gambar 20.7.Kurve Fungsi Legendre m=0, n=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

2. Sintaks tranformasi Laplace


Sintaks 1 : y=laplace(g); g=sym(f(t); transformasi fungsi
Sintaks 2 : ilaplace(y); Transformasi kembali ke g=f(t)
Sintaks 3 : y=laplace(diff(g)); g=sym(f(t)); transformasi diffrensial fungsi.
3. Aplikasi
Contoh 1:
g=sym('exp(5*t)');
y=laplace(g)
y=
1/(s-5)
Transformasi balik:
ilaplace(y)

158

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

2. Sintaks dalam Matlab:


Sintaks 1 : y=fourier(g); g=f(t); Transformasi fungsi g.
Sintaks 2 : ifourier(y); Transformasi balik
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=

160

Sahyar Econophysics Unimed Medan

2*t^2
y=fourier(g)
y=
-4*pi*Dirac(2,w)
Transformasi balik.
ifourier(y)
ans =
2*x^2

161

Sahyar Econophysics Unimed Medan

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

Mengintegrasikan sejumlah program kedalam menu.


Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

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

Sahyar Econophysics Unimed Medan

Anda mungkin juga menyukai