Anda di halaman 1dari 165

OLEH :

PROF. DR. SAHYAR, M.S.

UNIVERSITAS NEGERI MEDAN

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

2 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 dan
menggunakan kalimat.
4. Menyusun algoritma untuk perhitungan sederhana.
5. Menjelaskan langkah-langkah penyusunan program komputer.
6. Menjelaskan standar program komputer yang baik.
7. Menjelaskan kriteria pemrograman terstruktur.

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.

3 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 lain-
lain.
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 masalah dalam
pemrograman dengan komputer adalah :
1. Defensisi masalah
i. Tentukan apa yang menjadi masalah
ii. Tentukan data input dan output
2. Struktur data.

4 Sahyar Econophysics Unimed Medan


i. Tentukan variabel untuk masing-masing data
ii. Tentukan tipe data untuk masing-masing variabel.
3. Algoritma program komputer
i. Susun algoritma untuk input, proses dan output.
4. Pengkodean
i. Pilih bahasa pemrograman
ii. Terjemahkan algoritma dalam bahasa pemrograman
5. 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.
6. Dokumentasi program

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 Input/output


data

Predefined Predefined
Seleksi
data. proses

connect Off page Dokumen cetak Display


er connector

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

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

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

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

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

8 Sahyar Econophysics Unimed Medan


BAB 2
TIPE DATA,VARIABEL, NILAI DAN EKSPRESI

A.TUJUAN PEMBELAJARAN
1. Menjelaskan perbedaan tipe data dasar dan tipe data bentukan.
2. Menjelaskan perbedaan variabel dan konstanta.
3. Menjelaskan aturan membuat variabel dalam pemrograman.
4. Menjelaskan cara memberi nilai variabel.
5. Menjelaskan empat cara membuat ekspresi variabel dalam pemrograman.

B.TIPE DATA
Ada dua jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar
meliputi bilangan bulat (integer), bilangan pecahan (real), bilangan tetap (const),
data karakter (character), tipe data logik (logic atau boolean). Tipe data bentukan
adalah tipe data yang dibentuk dari kombinasi tipe data dasar, yang terdiri dari
tipe data larik (array), rekaman (record), dan tipe data string.

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:

9 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

Tabel 2.1. Operasi data Logik


A B A and B A or B not A
False False False False True
False True False True True
True False False True False
True 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. Menjelaskan lima jenis operator dasar Aritmatika.
2. Menjelaskan enam jenis operator dasar relasi.
3. Menjelaskan tiga jenis operator dasar logika.
4. Menggunakan fungsi standar matematika dalam MATLAB
5. Menggunakan fungsi standar untuk data teks dalam MATLAB

B.Operator.
Di dalam Matlab dikenal tiga jenis operator yaitu : a) Operator aritmatika yang
digunakan untuk komputasi numerik, b) Operator relasional yang digunakan
untuk membandingkan operand-operand seacara kuantitatif dan c) Operator
logika.

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
b
^. Example: 3^5
Power, a

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 Fungsi Kegunaan No Fungsi Kegunaan
1 abs Nilai absolut 13 imag Bagian imajiner bilangan kompleks
2 acos Invers kosinus 14 log Logaritma natural
3 acosh Invers hyperbolik kosinus 15 log10 Logaritma umum
4 asin Invers sinus 16 real Bagian real bilangan kompleks
5 asinh Invers hyperbolik sinus 17 rem Sisa pembagian
6 atan Invers tangen 18 round Pembulatan ke arah bilangan bulat
7 atanh Invers hyperbolik tangen 19 sign Tanda fungsi (1 atau -1)
8 cos Kosinus 20 sin Sinus
9 cosh Kosinus hyperbolik 21 sinh Sinus hyperbolik
10 exp Eksponensial 22 sqrt Akar pangkat 2
11 fix Pembulatan ke arah nol 23 tan tangen
12 floor Pembulatan ke arah minus 24 tanh Tangen hyperbolik

Tabel 3.5. Fungsi standar untuk data Teks atau String


No Fungsi Kegunaan
1 strcmp Memeriksa kesamaan dua data text. Output program type data logic
(benar atau salah). Contoh: hasil=strcmp(t1,t2);
2 strcat Menggabungkan dua data text. Contoh: gabung(t1,t2);
3 isletter Memeriksa karakter huruf atau lainnya. Bernilai 1 jika huruf dan nol jika
bukan huruf.
4 isspace Memeriksa apakah ada spasi atau tanda lain dalam data text, jika ada
maka akan bernilai 1 selainnya nol.
5 int2str Merubah data integer atau array menjadi text
6 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. Jelaskan lima jenis operator dasar Aritmatika dalam MATLAB.
2. Jelaskan enam jenis operator dasar relasi dalam MATLAB.
3. Menjelaskan tiga jenis operator dasar logika dalam MATLAB.
4. Berikan sepuluh contoh menggunakan fungsi standar matematika dalam
MATLAB
5. Berikan lima contoh menggunakan fungsi standar untuk data teks dalam
MATLAB

19 Sahyar Econophysics Unimed Medan


BAB 4
INPUT OUTPUT DATA DALAM MATLAB

A.Tujuan Pembelajaran
1. Menggunakan statemen input untuk data numerik.
2. Menggunakan statemen input untuk data teks.
3. Menggunakan statemen output untuk data numerik.
4. Menggunakan statemen output untuk data teks.

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 Arti
input Untuk input data melalui keyboard
% Memberi baris komentar pada program komputer
.(titik) Tanda desimal
; Jika variabel diberi tanda ; maka nilai variabel tidak
ditampilkan ke layar
disp Menampilkan data atau variabel text
fprintf Menampilkan data numerik
\n Memesan satu baris kosong
%7.3f 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 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)

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 Variabel Type of data Keterangan
Alas a Real/Numeric Input data
Tinggi t Real/Numeric Input data
Luas luas Real/Numeric 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 Variabel Type of data Keterangan
Velocity v Real/Numeric Input data
Mass m Real/Numeric Input data
Kinetic Energy ke Real/Numeric Output data

3. Algorithm program

28 Sahyar Econophysics Unimed Medan


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


F
kondisi

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

F F
Kondisi1 Kondisi2

T T

Proses1 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 Variabel Type of data Keterangan
Coefficient a a Real/Numeric Input data
Coefficient b b Real/Numeric Input data
Coefficient c c Real/Numeric Input data
Akar-akar real x1 dan x2 Real/Numeric Output data
Akar-akar kompleks x1c dan x2c Real/Numeric Output data

3. Algoritma program
a. Start
b. Input data
Input a
Input b
Input c
c. Proses.
d b^2 4*a*c
If d> 0 then
x1(-b + sqrt(d))/(2*a);
x2(-b - sqrt(d))/(2*a);
elseif d=0
x1(-b)/(2*a);

34 Sahyar Econophysics Unimed Medan


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 Skor Nilai huruf


1 90 - 100 A (Sangat kompeten)
2 80 - 89 B (Kompeten )
3 70 - 79 C (Cukup kompeten)
4 0- 69 E (Tidak kompeten)

2. Struktur data
Unit Variabel Type of data Keterangan
Nama nm Text Input data
Skor sk Real/Numerik Input data
Nilai huruf nh Text Output data

3. Algorithm program
a. Start
b. Input data
Input nm
Input sk
c. Process
if sk>=90 then
nh'A (sangat kompeten )';
elseif sk>=80 then
nh'B (Kompeten )';
elseif sc>=70 then
nh'C (Cukup kompeten)';
else
nh'E (Tidak kompeten )';
end if
d. Output data
Write (nm);
Write (sk);
Write(nh);
e. Stop

4. Coding In MatLab
%Input skor

37 Sahyar Econophysics Unimed Medan


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

1 2.500.000

2 3.500.000

3 4.500.000

4 5.500.000

2. Struktur Data
Unit Variabel Type of data Keterangan
Nama nm Text Input data
Golongan gol Numeric Input data
Gaji gaji Numeric Output data

3. Algoritma program
a. Start
b. Input data
Input nm
Input gol
c. Process
Case gol
Case 1
Gaji2500000;
Case 2
Gaji 3500000;
Case 3
Gaji 4500000;

41 Sahyar Econophysics Unimed Medan


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. Variabel perulangan (var ) harus bertipe dasar (integer, real, atau char )
2. Nilai awal harus lebih kecil dari akhir bila n > 0 ( positif )
3. Nilai awal harus lebih besar dari akhir bila n <0 ( negatif )
4. Mula-mula variabel var bernilai awal, kemudian setiap satu kali putaran
maka nilai var bertambah sebesar n.
5. Perulangan akan berhenti apabila nilai var sudah mencapai akhir.

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 Variabel Type of data Keterangan
Suku awal a Numeric Input data
Beda b Numeric Input data
Banyak suku n Numeric Input data
suku s Numeric Output data
Total total Numeric Output data

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


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

F T

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 Variabel Type of data Keterangan
Kecepatan awal vo Numeric Input data
Percepatan a Numeric Input data
Lama pengamatan lp Numeric Input data

51 Sahyar Econophysics Unimed Medan


Interval waktu d Numeric Input data
Waktu t Numeric Output data
Kecepatan v Numeric Output data

3. Algorithm program
a. Start
b. Input data
Input vo
Input a
Input lp
Input d
c. Process and output
t0;
while t <= lp
vvo+ a*t;
cetak (k,t,v)
tt+d;
end
d. Stop

4. Coding
%Tabel Kecepatan glbb
%Input
clc;
vo =input('Kecepatan awal =');
a =input('Percepatan =');
lp =input ('Lama pengamatan =');
d =input ('Interval waktu = ');
%Process
disp('Nomor Waktu Kecepatan ');
disp(---------------------------------------);
t=0;
k=1;
while t<=lp
v=vo+ a*t;
fprintf('\n %4.0f %8.2f %8.2f ',k,t,v);
t=t+d;
k=k+1;
end

52 Sahyar Econophysics Unimed Medan


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 Variabel Type of data Keterangan
Jawab jb Text Input data
Program Program komputer yang
akan diulang

3. Algorithm program

a. Start
b. 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


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 Variabel Type data Keterangan


Kecepatan v Real/Numeric Input data
Massa m Real/Numeric Input data
Energy Kinetik ek Real/Numeric Output data

3.Algoritma program

58 Sahyar Econophysics Unimed Medan


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 Variabel Type of data Keterangan


Coefficient a A Numeric Input data
Coefficient b B Numeric Input data
Coefficient c C Numeric Input data
Akar-akar real x1 , x2 Numeric Output data
Akar-akar kompleks x1k, x2k Kompleks Output data

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


[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 Operasi Hasil
1 Penjumlahan dengan sekalar a+k=[a(1)+k, a(2)+k,...a(n)+k]
a=array; k=sekalar
2 Perkalian dengan sekalar a*k=[a(1)*k, a(2)*k,...a(n)*k]
a=array; k=sekalar
3 Penjumlahan a= array, a+b=[a(1)+b(1), a(2)+b(2),...a(n)+b(n)]
b=array
4 Perkalian a= array, b=array a.*b=[a(1)*b(1), a(2)*b(2),...a(n)*b(n)]
5 Pembagian a= array, b=array a./b=[a(1)/b(1), a(2)/b(2),...a(n)/b(n)]
6 Pemangkatan a= array, a.^b=[a(1)^b(1), a(2)^b(2),...a(n)^b(n)]
b=array, k=sekalar
7 Pemangkatan a= array, a.^k=[a(1)^k, a(2)^k,...a(n)^k]
k=sekalar

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 4.0000

7.Pemangkatan dua array


a=[3 7 5 8];
b=[2 1 5 2];
a.^b
ans =
9 7 3125 64

8.Data array terstruktur

x=1:2:10
x=
1 3 5 7 9
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 Variabel Type of data Keterangan
Banyak data n Numeric Input data
Data d Numeric Input data
Total total Numeric Output data
Rata2 av Numeric Output data
Standar deviasi ds Numeric Output data

3. Algorithm program
a. Start
b. Input data
Input n
for k1:n
input d(k)
end
c. Process
total0;
for k1:n
totaltotal+d(k);
end
avtotal/n;
totalav0;
for k1:n
totalavtotalav+(d(k)-av)^2;

67 Sahyar Econophysics Unimed Medan


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:

(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 Bentuk Syarat
coding
1 Penjumlahan dua matriks a+b Orde kedua matriks sama
2 Perkalian dua matriks a*b Baris matriks pertama =
kolom matriks kedua
3 Perkalian elemen-elemen dua a.*b Orde kedua matriks sama
matriks
3 Invers matriks persegi a inv(a) Matriks bujur sangkar
4 Nilai determinan matriks det(a) Matriks bujur sangkar
persegi a
5 Nilai eigen matriks persegi a eig(a) Umum
6 Transpose matriks a a Umum
Menentukan jumlah kolom rank(a) Umum
matriks a
7 Menentukan orde matriks a 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 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 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

8.Matriks nol

zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
zeros(3)

ans =

0 0 0
0 0 0
0 0 0

9.Matriks satu

ones(3)
ans =

1 1 1

73 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 Variabel Type of data Keterangan
Matriks a a Numeric/matriks Input data
Matriks b b Numeric/matriks Input data
Penjumlahan c=a+b Numeric /matriks Output data
Perkalian d=a*b Numeric /matriks Output data

3. Algorithm program

a. Start

74 Sahyar Econophysics Unimed Medan


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

75 Sahyar Econophysics Unimed Medan


7 8 9
3 4 8

Matriks b
b=

2 3 5
4 6 9
2 3 1

Matriks c = a+b
c=

5 8 11
11 14 18
5 7 9

Matriks d= a*b

d=

38 57 66
64 96 116
38 57 59

CONTOH 2:
1. Defenisi masalah.
Menentukan: invers, determinan, dan transpose matriks.
2. Struktur data

Unit Variabel Type of data Keterangan


Matriks a a Numeric/matriks Input data
Matriks b (invers a) b=invers(a) Numeric/matriks Output data
Matriks c (determinan c=det(a) Numeric /matriks Output data
a)
Matriks d (Transpose d= a Numeric /matriks Output data
a)

3. Algorithm program

76 Sahyar Econophysics Unimed Medan


a. Start
b. Input data
Baca( a)
c. Process
binvers(a);
cdet(a);
da;
d. Tampil
a
b
c
d
6. Stop

4. Coding
%Input data Matriks
clc;
a=input(Input elemen matriks a =);
%proses;
b=inv(a);
c=det(a);
d=a;
%output
disp(Matriks a);
a
disp(b= Invers a);
b
disp(c= determinan a );
c
disp(d= Transpose a );
d

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 Keterangan
Elemen matriks m x m a Numeric /matriks Input data
sistem persamaan linear
Elemen matriks kolom b Numeric/matriks Input data
sistem persamaan linear
Elemen matriks kolom x Numeric/matriks Output data
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


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 Penjelasan
plot(x,y) Menggambar grafik garis 2D dengan skala linear pada
kedua sumbunya
loglog(x,y) Menggambar grafik garis 2D dengan skala logaritma pada
kedua sumbunya
semilogx(x,y) Menggambar grafik garis 2D dengan skala logaritma pada
sumbu x
semilogy(x,y) Menggambar grafik garis 2D dengan skala logaritma pada
sumbu y
bar(x,y) Menggambar grafik batang 2D
stairs(x,y) Menggambar grafik tangga 2D
polar(t,r) Menggambar grafik garis pada koordinat polar, t=sudut,
r=radius.
plotyy(x,y,x,y,plot,stem) Menggambar grafik 2D dengan arsir pada sumbu y
fplot(ff,[b,a]) Menggambar grafik garis 2D menggunakan file fungsi
eksternal. ff=nama file fungsi, b=batas bawah skla, a=batas
atas skala pada sumbu x.

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 Penjelasan
plot(x,y1,c1) 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 Symbol Warna
1 y Yellow
2 m Magenta
3 c Cyan
4 r Red
5 g Green
6 b Blue
7 w White
8 k 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 Penjelasan
grid on Mengaktifkan garis skala grafik
title (judul grafik) Membuat judul grafik
xlabel(label pada sumbu x) Membuat label pada sumbu x
ylabel(label pad sumbu y) Membuat label pada sumbu y
legend(keterangan masing-masing grafik) Membuat keterangan masing-masing grafik
linspace(a,b,n) a= batas bawah sumbu x, batas atas sumbu y, n=jumlah
segmen pada sumbu x

82 Sahyar Econophysics Unimed Medan


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

5
y axis

-5

-10

-15
0 2 4 6 8 10 12 14
x axis
Gambar 13.1. Grafik fungsi sinus

Contoh 2: Grafik garis beberapa fungsi pada sumbu xy


Coding

83 Sahyar Econophysics Unimed Medan


%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

2
simpangan

-2

-4

-6

-8
0 1 2 3 4 5
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

5
y axis

-5

-10

-15
-2 0 2 4 6 8
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

5
y axis

-5

-10

-15
0 2 4 6 8 10 12 14
x axis
Gambar 13.4. Grafik tangga fungsi sinus

86 Sahyar Econophysics Unimed Medan


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

150 4 30
2

180 0

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

150
Sb y

100

50

0
-10 -5 0 5 10
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


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

10
Sumbu y

2
1 2 3 4 5 6
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:
Kurve dengan Arsir
10 10

5 5
sb y

0 0

-5 -5

-10 -10
0 2 4 6 8 10 12 14
sb x
Gambar 13.8. Grafik arsir fungsi sinus

Contoh 9: Grafik dengan skala logaritma


Coding:

90 Sahyar Econophysics Unimed Medan


%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
Kurve dengan skala log
10

4
10

3
10
sb y

2
10

1
10

0
10
-1 0 1
10 10 10
sb x
Gambar 13.9. Grafik skala logaritma

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 Variabel Type of data Keterangan
Amplitudo a Numeric Input data
Jumlah periode n Numeric Input data
Simpangan y Numeric Input data
Sudut x Numeric (radian) Input data
Graphics Output data

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


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 Variabel Type of data Keterangan
Amplitudo a Numeric Input data
Jumlah priode n Numeric Input data
Simpanagan y Numeric Input data
Sudut x Numeric (radian) Input data
Graphics Output data

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


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 y= A (sin x)2


15 15
data1 data1

10 10
y axis
y axis

5 5

0 0
0 5 10 15 20 0 5 10 15 20
x axis x axis

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 Variabel Type of data Keterangan

95 Sahyar Econophysics Unimed Medan


Amplitudo a Numeric Input data
Jumlah periode n Numeric Input data
Simpangan y Numeric Input data
Sudut x Numeric (radian) Input data
Graphics Output data

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


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 y= A cos x
20 20

10 10
y axis

y axis

0 0

-10 -10

-20 -20
0 5 10 15 20 0 5 10 15 20
x axis x axis
y= A exp(-x)cos(x) y= A (sin x)2
15 15

10
10
y axis

y axis

5
5
0

-5 0
0 5 10 15 20 0 5 10 15 20
x axis x axis

97 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 Colormap(fungsi Warna
mor warna)
1 hsv Hue-saturation value
2 hot Black-red-yellow-white
3 cool Shades of cyan and magenta
4 pink Pastel shades of pink
5 gray Linear gray scale
6 bone Gray scale with a tinge of blue
7 jet A variant of HSV
8 copper Linear copper-tone
9 prism Prism
10 flag 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 Variabel Type of data Keterangan
Jari-jari r Numeric Input data
Jumlah periode p Numeric Input data
Graphics Output data
3. Algorithm program

100 Sahyar Econophysics Unimed Medan


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

80

60
z axis

40

20

0
10
5 10
0 5
0
-5
-5
y axis -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 Variabel Type of data Keterangan
Amplitudo a, b Numeric Input data
Jumlah periode n Numeric Input data
Simpangan z Numeric Input data
Sudut x,y Numeric (radian) Input data
Graphics Output data
3. Algorithm program
a. Start
b. Input data
Input a,b, n
c.Process
x0:0.01:2*pi*n;
yx;
[x,y]meshgrid(x,y)

102 Sahyar Econophysics Unimed Medan


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 Variabel Type of data Keterangan
Koefisien a, b Numeric Input data
Koordinat x,y,z Numeric Input data
Graphics Output data
3. Algorithm program
a. Start
b. Input data
Input a, b
c.Process
x-10:0.2:10;
yx;
[x,y]meshgrid(x,y)
z a*x^2 +b* y^2
d.Output
surf(x,y,z)
e.Stop

4. Coding
%input
clc;
disp(Grafik z = a*x^2 +b* y^2);
a=input('Koefisien a = ');
b=input('Koefisien b = ');
%process
x=-10:0.4:10;
y=x;
[x,y]=meshgrid(x,y);
z= a*x.^2 +b* y.^2;
%output
colormap(gray);
surf(x,y,z)
xlabel('x axis');ylabel('y axis');zlabel('z axis');
title('z= a*x^2 +b* y^2 ');
grid on;

106 Sahyar Econophysics Unimed Medan


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
Beras
800 Jagung

700

600
Volume

500

400

300

200

100

0
2001 2002 2003
Priode
Gambar 15.1. Diagram batang 2D

Contoh 2.
Grafik diagram batang stack dua dimensi
Coding:
%graphic Bar 2d Stack
%input
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
bar(t,z,stack);
xlabel('Priode ');ylabel('Volume ');
title('Diagram batang 3D');
legend('Beras','Jagung');
grid on;

Testing:
Tahun produksi =[2000 2001 2002 2003]
Volume produksi = [300 500;400 700;500 800;300 900]

112 Sahyar Econophysics Unimed Medan


Diagram batang 2D stack
1400
Beras
1200 Jagung

1000

800
Volume

600

400

200

0
2000 2001 2002 2003
Priode
Gambar 15.2. Diagram batang 2D tumpukan
Contoh 3.
Grafik diagram batang tiga dimensi
Coding:
%graphic Bar 3d
%input
clc;
t=input('Tahun produksi =');
z=input('Volume produksi = ');
disp(' ');
%process and output
%subplot(1,2,1);
bar3(t,z);
xlabel('Priode ');ylabel('Volume ');
title('Diagram batang 3D');
legend('Beras','Jagung');
grid on;

Testing:
Tahun produksi =[2001 2002 2003 2004]
Volume produksi = [300 400;400 500;500 600;200 700]

113 Sahyar Econophysics Unimed Medan


Diagram batang 3D
Beras
800 Jagung

600

400

200

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 30%
Kedelai

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 Fungsi Kegunaan
1 roots(p) Menentukan akar-akar persamaan polynomial p. Variabel p adalah
koefisien persamaan polynomial dari pangkat n sampai nol dalam
bentuk array.
2 poly(r) Menentukan persamaan polynomial dengan akar-akar r. Variabel r

116 Sahyar Econophysics Unimed Medan


No Fungsi Kegunaan
adalah akar-akar persamaan polynomial dalam bentuk array.
3 polyval(p,x) Menentukan nilai persamaan plynomial untuk seluruh nilai x.
Variabel x adalah array. Variabel p adalah koefisien-koefisien
persamaan polynomial dalam bentuk array
4 conv(a,b) Perkalian polynomial a dan b
5 deconv(a,b) Pembagian polynomial a dengan b
6 residue(a,b) Sisa pembagian polynomial a dengan b
7 solve(f(x)=0) 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 Variabel Type of data Keterangan
Derajat polynomial n Numeric Input data
Koefisien polynomial a Numeric /array Input data
Akar-akar persamaan r Numeric /array Output data
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


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 Variabel Type of data Keterangan
Derajat polynomial n Numeric Input data
Akar-akar persamaan a Numeric /array Input data
Koefisien polynomial p Numeric /array Output data
Skala pada sb x x Numeric/array Output data
Skala pada sb y v Numeic/array Output data

3. Algorithm program
a. Start
b. Input data
input n
for i1:n
input a(i);
end
c.Process
ppoly(a);
d.Output
j0;
for in:-1:0
jj+1;
p(j)
end
%kurve polynomial
xlinspace(-10,10,100);
vpolyval(p,x);
plot(x,v);
grid on;
title('Kurve Polynomial');
xlabel('x');ylabel('y');
e.Stop

4.Coding:
%menentukan persamaan polynomial
clc;

120 Sahyar Econophysics Unimed Medan


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
y

40

20

-20
-10 -5 0 5 10
x

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.

Tabel 17.1. Fungsi standar untuk fitting data pengamatan


No Fungsi standar Kegunaan
1 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
2 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 1 2 3 4 5 6
y 3 6 10 18 22 25

Data pengamatan 2

x 1 2 3 4 5 6
y 3 6 10 16 20 35

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

20
Sumbu y

15

10

0
1 2 3 4 5 6
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

25
Sumbu y

20

15

10

0
1 2 3 4 5 6
Sumbu x
Gambar 17.2. Kurve Hasil Fitting n=2

D.Interpolasi
Jika y=f(x) dan bentuk fungsi diketahui maka kita dapat menentukan nilai
y jika x diketahui. Dalam eksperimen pasangan data (x,y) fungsinya belum
diketahui Interpolasi adalah proses menentukan nilai data y untuk suatu nilai x
yang tidak diamati. Matlab meyediakan fungsi standar siap pakai untuk
melakukan interpolasi, sehingga membantu dalam penyusunan program
komputer.

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 1 2 3 4 5 6
y 5 9 12 10 20 14

Coding program:
%interpolasi
clc;

127 Sahyar Econophysics Unimed Medan


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

20
Sumbu y

15

10

5
1 2 3 4 5 6
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 2 3 4 5 6
S(jarak) 4 20 40 70 110 140

Berdasarkan data tersebut tentukan:


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

129 Sahyar Econophysics Unimed Medan


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 Fungsi Keterangan
1 trapz(x,y) Perhitungan integral dengan metode tapesium. Nilai x=batas
integral dan y=fungsi yang akan diintegral.
2 quad(nf,b,a) Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral
3 quad8(nf,b,a) Perhitungan integral dengan metode quadrature. Parameter
nf= nama file fungsi; b=batas bawah;a=batas atas integral

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= Grafik fungsi yg diintegral
192.0000 40 40

Kurve fungsi
30 30

20 20

10 10

0 0
00 11 22 33 44 55 66 77 88

Gambar 18.1. Kurve fungsi yang akan diintegral (1)

131 Sahyar Econophysics Unimed Medan


Grafik fungsi yg diintegral
Testing 2 200 200

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

50 50

0 0
2 3 4 5 6 7 8 9 10

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


1 n
(b a) 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
1 n
f ( x, y )dxdy (b a)(d c) f ( xi , yi )
a c
n i 1
Keterangan:
n=banyak bilangan random
f(x,y)=fungsi yang akan diintegral
xi= nilai bilangan random interval c s/d d
yi= nilai bilangan random interval a s/d b

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= 1.183
n= 160 hasil= 0.959
n= 200 hasil= 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
2
f ( x, y) g ( x, y) y h( x, y)
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
2
f ( x, y ) g ( x, y ) y h ( x, y )
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 Nama fungsi Metode Keterangan
1 [t,y]=ode23(nf,0,a,[p,q]); Runge-Kutta 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.
2 [t,y]=ode45(nf,0,a,[p,q]); Runge-Kutta 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.
3 [t,y]=ode23s(nf,0,a,[p,q]); Rosenbrock 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
m 2
c ky 0
dt dt
2
d y c dy k
2
y
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
6

4
y=simpangan/kecepatan

-2

-4

-6
0 5 10 15 20 25 30
t=waktu
Gambar 18.3. Kurve Hasil Solusi Getaran Teredam

Aplikasi 2: Penyelesaian persamaan diffrensial orde 2 getaran paksa.


Bentuk umum persamaan diffrensial getaran paksa

d2y dy
m 2
c ky A cos(t )
dt dt
d2y c dy k
2
y A cos(t )
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
15

10
y=simpangan/kecepatan

-5

-10

-15
0 5 10 15 20 25 30
t=waktu
Gambar 18.4. Kurve Hasil Solusi Getaran Paksa

140 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
2
m(1 y 2 ) y 0
dt dt
2
d y dy
2
m(1 y 2 ) y
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

2
y=simpangan/kecepatan
1

-1

-2

-3

-4
0 5 10 15 20 25 30
t=waktu

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

-10

-20

-30
-6 -4 -2 0 2 4 6
x
Gambar 19.1. Kurve Fungsi 4+5x
Contoh 2
ezplot('sin(3*x)^2')
grid on

145 Sahyar Econophysics Unimed Medan


sin(3 x)2

0.8

0.6

0.4

0.2

-6 -4 -2 0 2 4 6
x
Gambar 19.2. Kurve Fungsi sin(3*x)^2

Contoh 3
ezplot('x^2-4*x-21')
grid on
2
x -4 x-21

40

30

20

10

-10

-20

-30
-6 -4 -2 0 2 4 6
x

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
D2 y
dt 2
dy
Dy
dt
dy
Dy(0) nilai pada t 0
dt
y(0) nilai y pada t 0

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
3.Persamaan diffrensial : 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

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 1)
(n)
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

20

15
gamma(n)

10

0
1 1.5 2 2.5 3 3.5 4 4.5 5
n

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

20

15
gamma(n)

10

0
0 1 2 3 4 5
n

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 -2 -1 0
n

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
(m)(n)
B(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

J n ( x)
k 0 k! ( n k 1)

Fungsi Bessel jenis kedua


J n ( x) cos n J n ( x)
Yn ( 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)
1

0.5
J0(x)/J1(x)

-0.5
0 2 4 6 8 10
x

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


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

-1

-2
Y0(x)/Y1(x)

-3

-4

-5

-6

-7
0 2 4 6 8 10
x

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 n
( x 1) n ; n 0,1,2,...
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 :
dm
Pnm ( x) (1 x 2 ) m / 2 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 X=0 X=0.1 X=0.2 X=0.3


0 0 -0.1475 -0.2800 -0.3825
1 1.5000 1.4179 1.1758 0.7870
2 0 1.4850 2.8800 4.0950
3 -15.0000 -14.7756 -14.1091 -13.0213
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


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

0.5
Nilai fungsi

-0.5
-1 -0.5 0 0.5 1
x

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 0.5 1
x

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 )

1
F ( s ) exp( at )e st dt
0
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 (t )e
jwt
F ( w) dt


1
f (t ) F (w)e
jwt
dw
2

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

Mengintegrasikan sejumlah program kedalam menu.

162 Sahyar Econophysics Unimed Medan


2. Struktur data

Unit Variabel Type of data Keterangan

Nomor pilihan jb Numeric Input data

Sejumlah program File1, file2, Output data


dalam file eksternal file3, file4

3. Algorithm program

a. Start
b. 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


%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