View
250
Download
16
Category
Preview:
Citation preview
1 Sahyar Econophysics Unimed Medan
OLEH :
PROF. DR. SAHYAR, M.S.
UNIVERSITAS NEGERI MEDAN
2 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.
3 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.
4 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.
5 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:
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
connect
er
Off page
connector
Dokumen cetak Display
Terminator Proses Input/output
data
Seleksi Predefined
data.
Predefined
proses
6 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.
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
Mulai
Read(a);
read(b)
a>b Disp(a)
Disp(b)
selesai
T
N
7 Sahyar Econophysics Unimed Medan
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.
Mulai
Read(a);
read(t)
selesai
Luas=0.5*a*t
Luas
8 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.
9 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:
10 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.
11 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;
12 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
13 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 Alamat’Jl W Iskandar no 8 Medan’;
o Nama’Zakarni Yusuf’;
o Nilai’A’;
F. Soal Latihan.
1. Jelaskan perbedaan tipe data dasar, tipe karakter, tipe logik dan tipe data
bentukan.
2. Jelaskan perbedaan variabel dan konstanta.
3. Jelaskan aturan membuat variabel dalam pemrograman.
4. Jelaskan dua cara memberi nilai variabel dengan memberikan contoh.
5. Jelaskan empat cara membuat ekspresi variabel dalam pemrograman
dengan memberikan contoh.
14 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
Power, a
b
^. Example: 3^5
Contoh pemakaian:
» a=20; b=5;
» c=a+b;
» d=a-b;
» e=a*b;
» f=a/b;
» g=a\b;
» h=a^2;
» c (menampilkan nilai c hasil jumlah)
c =
25
» d (menampilkan nilai d hasil pengurangan)
15 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 =
16 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
17 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
18 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
19 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
20 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’);
21 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
22 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
23 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’);
24 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
25 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.
26 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
27 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
Gambar 5.1. Folwchart hitung luas segitiga
4. Coding dalam MatLab
%Computer Program for caculating area of triangle
%Input data
a= input(' Alas = ');
a, t
luas = 0.5 * a*t
luas
Start
Stop
28 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
29 Sahyar Econophysics Unimed Medan
Algoritma menggunakan flowchart
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 = ');
v, m
ke = 0.5 * m*v^2
ke
Start
Stop
30 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.
31 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
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
kondisi
i
Proses
F
T
32 Sahyar Econophysics Unimed Medan
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
Gambar 6.3. Flowchart if then bentuk tiga kasus
kondisi
Proses1
F
T
Proses2
Kondisi1
Proses1
F
T
Kondisi2
Proses2
T
F
Proses3
33 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)
34 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);
35 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);
36 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
37 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
38 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)
39 Sahyar Econophysics Unimed Medan
E.Latihan
1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
db
c b aP 2
2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
d
a
db
c bP 2
3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
d-c b aP 2
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.
40 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
41 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;
42 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
43 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.
44 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
Gambar 8.1. Flowchart For
Var = awal
Var = var + n
Instruksi-instruksi
Var<= akhir
?
T
F
45 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
46 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
47 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
48 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
49 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.
50 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
Gambar 9.1. Flowchart While
While (kondisi) do
...........................
Instruksi-instruksi
...........................
End while
Instruksi-instruksi
kondisi
T F
51 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
52 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
53 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
54 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
jb’y’
while (jb=’y’) or (jb=’Y’) do
Computer program
end
d. Stop
4. Coding
%Deret Aritmatik
jb='y';
while (jb=='y')|(jb=='Y')
clc;
a=input('Suku awal =');
55 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
56 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.
57 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);
58 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
59 Sahyar Econophysics Unimed Medan
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
v, m
Fungsi ek
ke
Start
Stop
60 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
61 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
62 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.
63 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
rumus berikut: db
c b aP 2
5. Susun program komputer dengan menggunakan fungsi untuk menghitung
rumus berikut:: d
a
db
c bP 2
64 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
65 Sahyar Econophysics Unimed Medan
Tabel 11.1. Operasi pada variabel array dimensi satu.
No Operasi Hasil
1 Penjumlahan dengan sekalar
a=array; k=sekalar
a+k=[a(1)+k, a(2)+k,...a(n)+k]
2 Perkalian dengan sekalar
a=array; k=sekalar
a*k=[a(1)*k, a(2)*k,...a(n)*k]
3 Penjumlahan a= array,
b=array
a+b=[a(1)+b(1), a(2)+b(2),...a(n)+b(n)]
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,
b=array, k=sekalar
a.^b=[a(1)^b(1), a(2)^b(2),...a(n)^b(n)]
7 Pemangkatan a= array,
k=sekalar
a.^k=[a(1)^k, a(2)^k,...a(n)^k]
C.Contoh operasi array dimensi satu
1.Penjumlahan dengan sekalar
» a=[3 5 6 7 8 10]
a =
3 5 6 7 8 10
» k=5;
» a+k
ans =
8 10 11 12 13 15
2.Perkalian dengan sekalar
» a=[3 5 6 7 8 10]
a =
3 5 6 7 8 10
» k=5;
» a*k
ans =
15 25 30 35 40 50
3.Pemangkatan dengan sekalar
» a=[3 5 6 7 8 10]
a =
3 5 6 7 8 10
» k=2;
» a.^k
66 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
67 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;
68 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
69 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:
XX i 2
iXP
2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
)(XP i YXY ii
3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:
YYY ii 2
i )(XP
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.
70 Sahyar Econophysics Unimed Medan
BAB 12 VARIABEL ARRAY DUA DIMENSI (MATRIKS)
A.Tujuan pembelajaran 1. Menyusun program komputer dengan menggunakan fungsi standar
MatLab untuk matriks.
2. Penyelesaian sistem persamaan linear
B.Teori. Variabel array dimensi dua adalah variabel yang mempunyai dua indeks.
Indeks pertama menunjukan posisi baris dan indeks kedua menunjukkan posisi
kolom. Variabel array dimesi dua digunakan untuk menampung data matriks
dengan tipe data yang sama untuk seluruh elemen.
Input data array dimensi dua dengan Matlab.
Cara 1:
a=input( ‘a = ‘);
a= [12 13; 7 6; 4 9];
Input data menunjukkan:
a(1,1)= 12; a(1,2)=13; a(2,1)=7; a(2,2)=6; a(3,1)=4; a(3,2)=9
cara 2:
for b = 1:m
for k= 1:n
fprintf('Data:%3.0f, %3.0f ',b, k);
a(b,k)=input(‘Input data : ‘);
end
end
Outut data array dimensi dua dengan Matlab.
Cara 1:
a
(menampilkan matriks a)
Cara 2:
for b = 1:n
for k = 1:m
71 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
coding
Syarat
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
matriks
a.*b Orde kedua matriks sama
3 Invers matriks persegi a inv(a) Matriks bujur sangkar
4 Nilai determinan matriks
persegi a
det(a) Matriks bujur sangkar
5 Nilai eigen matriks persegi a eig(a) Umum
6 Transpose matriks a a’ Umum
Menentukan jumlah kolom
matriks a
rank(a) Umum
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)
72 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
73 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
74 Sahyar Econophysics Unimed Medan
1 1 1
1 1 1
D.Penyelesaian Sistem Persamaan Linear
Bentuk sistem persamaan linear tiga variabel
Q\PX
QXP
l
h
d
x
x
x
kji
gfe
cba
lk x xj xi
h xg xf xe
d xc xb xa
3
2
1
321
321
321
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
75 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
76 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
a)
c=det(a) Numeric /matriks Output data
Matriks d (Transpose
a)
d= a’ Numeric /matriks Output data
3. Algorithm program
77 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
78 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
79 Sahyar Econophysics Unimed Medan
Penyelesaian sistem persamaan linear.
2. Input and output data
Unit Variabel Type of data Keterangan
Elemen matriks m x m
sistem persamaan linear
a Numeric /matriks Input data
Elemen matriks kolom
sistem persamaan linear
b Numeric/matriks Input data
Elemen matriks kolom
yang nilainya belum
diketahui
x Numeric/matriks Output data
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
80 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
81 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)
82 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
83 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
Gambar 13.1. Grafik fungsi sinus
Contoh 2: Grafik garis beberapa fungsi pada sumbu xy
Coding
0 2 4 6 8 10 12 14-15
-10
-5
0
5
10
15
x axis
y a
xis
y= A sin x
84 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
Gambar 13.2. Grafik fungsi sinus dan cosinus
0 1 2 3 4 5-8
-6
-4
-2
0
2
4
6
8
waktu
sim
pangan
y1= A sin(3t); y2= B cos(5t)
85 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
Gambar 13.3. Grafik batang fungsi sinus
-2 0 2 4 6 8-15
-10
-5
0
5
10
15
x axis
y a
xis
y= A sin x
86 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
Gambar 13.4. Grafik tangga fungsi sinus
0 2 4 6 8 10 12 14-15
-10
-5
0
5
10
15
x axis
y a
xis
y= A sin x
87 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:
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;
2
4
6
8
30
210
60
240
90
270
120
300
150
330
180 0
y= A sin x * cos x
88 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:
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;
-10 -5 0 5 100
50
100
150
200
Sb x
Sb y
Fungsi ekternal f(x)=x2+5*x+6
89 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:
Gambar 13.7. Grafik menggunakan data empirik
Contoh 8 : Grafik fungsi dengan menggunakan arsiran.
1 2 3 4 5 62
4
6
8
10
12
14Kuve data empirik
Sumbu x
Su
mb
u y
90 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:
Gambar 13.8. Grafik arsir fungsi sinus
Contoh 9: Grafik dengan skala logaritma
Coding:
0 2 4 6 8 10 12 14-10
-5
0
5
10
sb x
sb
y
Kurve dengan Arsir
0 2 4 6 8 10 12 14-10
-5
0
5
10
91 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:
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.
10-1
100
101
100
101
102
103
104
105
sb x
sb y
Kurve dengan skala log
92 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
93 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
94 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')
95 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
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
0 5 10 15 200
5
10
15
x axis
y a
xis
y= A tan x
data1
0 5 10 15 200
5
10
15
x axis
y a
xis
y= A (sin x)2
data1
96 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
97 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
0 5 10 15 20-20
-10
0
10
20
x axis
y a
xis
y= A sin x
0 5 10 15 20-20
-10
0
10
20
x axis
y a
xis
y= A cos x
0 5 10 15 20-5
0
5
10
15
x axis
y a
xis
y= A exp(-x)cos(x)
0 5 10 15 200
5
10
15
x axis
y a
xis
y= A (sin x)2
98 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 x2 + 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* v
2 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.
99 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)
100 Sahyar Econophysics Unimed Medan
>>z=f(x,y);
>>surf(x,y,z);
>>colormap(gray)
Cara 2 (untuk permukaan halus )
>>x=a:b:c;
>>y=x;
>>[x,y]=meshgrid(x,y)
>>z=f(x,y);
>>surfl(x,y,z);
>>shading interp;
>>colormap(cool)
Pengaturan Warna kurve permukaan.
Untuk mengatur kurve permukaan digunakan sintaks: colormap(fungsi
warna). Berikut tabel fungsi untuk pengaturan warna permukaan.
Tabel 14.1.
Pilihan warna untuk grafik permukaan
No
mor
Colormap(fungsi
warna)
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
101 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
102 Sahyar Econophysics Unimed Medan
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)
-10
-5
0
5
10
-10
-5
0
5
100
20
40
60
80
100
x axis
Helix
y axis
z a
xis
data1
103 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
104 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)
105 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)
106 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;
107 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)
108 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)
109 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.
110 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:
111 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]
112 Sahyar Econophysics Unimed Medan
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]
2001 2002 20030
100
200
300
400
500
600
700
800
900
Priode
Vo
lum
e
Diagram batang 2D
Beras Jagung
113 Sahyar Econophysics Unimed Medan
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]
2000 2001 2002 20030
200
400
600
800
1000
1200
1400
Priode
Vo
lum
e
Diagram batang 2D stack
Beras Jagung
114 Sahyar Econophysics Unimed Medan
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]
2001
2002
2003
2004
0
200
400
600
800
Priode
Diagram batang 3D
Volume
Beras Jagung
115 Sahyar Econophysics Unimed Medan
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.
20%
50%
30%
Diagram pastel
Beras Jagung Kedelai
116 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:
01
2
2
1
1 ...)( aXaXaXaXaXf n
n
n
n
n
n
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
117 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(' ');
118 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-12x
3+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
119 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 =
120 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;
121 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
122 Sahyar Econophysics Unimed Medan
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.
-10 -5 0 5 10-20
0
20
40
60
80
100
120Kurve Polynomial
x
y
123 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
124 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
125 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:
Gambar 17.1. Kurve Hasil Fitting n=1
Testing 2.
Banyak data pengamatan = 6
Orde Fitting polynomial = 2
1 2 3 4 5 60
5
10
15
20
25
30Kuve fitting Polynomial
Sumbu x
Su
mb
u y
126 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:
127 Sahyar Econophysics Unimed Medan
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;
1 2 3 4 5 60
5
10
15
20
25
30
35Kuve fitting Polynomial
Sumbu x
Su
mb
u y
128 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
129 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
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.
1 2 3 4 5 65
10
15
20
25Kurve Interpolasi
Sumbu x
Su
mb
u y
130 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-12x
2+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;
131 Sahyar Econophysics Unimed Medan
Coding program
%Integral Numerik %Metode Trapesium
clc; clear;
b=input('Batas bawah = '); a=input('Batas atas ='); s=input('Besar segmen=');
x=b:s:a; y=yk(x);
h=trapz(x,y); disp('Hasil integral :');
h plotyy(x,y,x,y,'plot','stem'); grid on
title('Grafik fungsi yg diintegral');
Output program:
Testing 1
Batas bawah = 0
Batas atas =8
Besar segmen=0.2
Hasil integral :
h =
192.0000
Kurve fungsi
Gambar 18.1. Kurve fungsi yang akan diintegral (1)
0 1 2 3 4 5 6 7 80
10
20
30
40
Grafik fungsi yg diintegral
0 1 2 3 4 5 6 7 80
10
20
30
40
132 Sahyar Econophysics Unimed Medan
Testing 2
Batas bawah = 2
Batas atas =10
Besar segmen=0.5
Hasil integral :
h =
322
Kurve fungsi
Gambar 18.2. Kurve fungsi yang akan diintegral (2)
2. Metode Quadrature
Aplikasi 1: Menghitung integral f(x)=x3-12x
2+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);
2 3 4 5 6 7 8 9 100
50
100
150
200
Grafik fungsi yg diintegral
2 3 4 5 6 7 8 9 100
50
100
150
200
133 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
134 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:
n
i
i
b
a
xfn
ab
dxxf
1
)(1
)(
rata-rata nggilebar x ti
area luas)(
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)= 73 22 xxx
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= ');
135 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:
n
i
ii
b
a
d
c
yxfn
cdabdydxyxf1
),(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
136 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
137 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:
),(),( yxgyyxfdx
dy
Bentuk umum persamaan diffrensial orde dua:
),(),(),(2
2
yxhyyxgdx
dyyxf
dx
yd
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:
138 Sahyar Econophysics Unimed Medan
)1,(1)1,(2)1,(2
:menjadipersamaan maka; dx
dyy2 y;y1 :Misal
),(),(),(2
2
yxhyyxgyyxfdx
dy
yxhyyxgdx
dyyxf
dx
yd
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
ym
k
dt
dy
m
c
dt
yd
kydt
dyc
dt
ydm
2
2
2
2
0
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]);
139 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
Gambar 18.3. Kurve Hasil Solusi Getaran Teredam
Aplikasi 2: Penyelesaian persamaan diffrensial orde 2 getaran paksa.
Bentuk umum persamaan diffrensial getaran paksa
)cos(
)cos(
2
2
2
2
tAym
k
dt
dy
m
c
dt
yd
tAkydt
dyc
dt
ydm
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)];
0 5 10 15 20 25 30-6
-4
-2
0
2
4
6
Getaan teredam
t=waktu
y=
sim
pa
ng
an
/ke
ce
pa
tan
140 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
Gambar 18.4. Kurve Hasil Solusi Getaran Paksa
0 5 10 15 20 25 30-15
-10
-5
0
5
10
15Getaran paksa
t=waktu
y=
sim
pa
ng
an
/ke
ce
pa
tan
141 Sahyar Econophysics Unimed Medan
Aplikasi 3: Penyelesaian persamaan diffrensial orde 2 getaran Van der Pol.
Bentuk umum persamaan diffrensial getaran Van der Pol
100
)1(
0)1(
2
2
2
2
2
2
m
ydt
dyym
dt
yd
ydt
dyym
dt
yd
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
142 Sahyar Econophysics Unimed Medan
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.
0 5 10 15 20 25 30-4
-3
-2
-1
0
1
2
3
4Getaran Van der Pol
t=waktu
y=
sim
pa
ng
an
/ke
ce
pa
tan
143 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]
144 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
145 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
Gambar 19.1. Kurve Fungsi 4+5x
Contoh 2
» ezplot('sin(3*x)^2')
» grid on
-6 -4 -2 0 2 4 6
-30
-20
-10
0
10
20
30
40
x
4+5 x
146 Sahyar Econophysics Unimed Medan
Gambar 19.2. Kurve Fungsi sin(3*x)^2
Contoh 3
» ezplot('x^2-4*x-21')
» grid on
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’)
-6 -4 -2 0 2 4 6
0
0.2
0.4
0.6
0.8
1
x
sin(3 x)2
-6 -4 -2 0 2 4 6-30
-20
-10
0
10
20
30
40
x
x2-4 x-21
147 Sahyar Econophysics Unimed Medan
Keterangan:
0 tpaday nilaiy(0)
dt
dyDy
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:
0 tpaday nilaiy(0)
0 tpada nilai )0(
22
2
dt
dyDy
dt
dyDy
dt
ydyD
148 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:
)cos(22d
:ldiffrensiaPersamaan .5
053d
:ldiffrensian 4.Persamaa
03dt
dx:ldiffrensiaPersamaan .3
)sin()2cos(xf(x) fungsi Derivatif.2
)exp(x2xf(x) fungsi dari 1.Integral
2
2
2
2
2
2/12
txdt
dx
dt
x
xdt
dx
dt
x
xt
x
x
149 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
1)(n(n)
0nUntuk
...3,2,1,0n ; !)1(
)()1(
rekursi Rumus
gamma fungsi)(
0n ;)(0
1
nn
nnn
n
dtetn tn
2. Sintaks Fungsi gamma dengan MatLab
Sintaks : y= gamma(x); x=real;
150 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)');
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)
1 1.5 2 2.5 3 3.5 4 4.5 50
5
10
15
20
25Grafik fungsi gamma
n
ga
mm
a(n
)
151 Sahyar Econophysics Unimed Medan
» grid on
» title('Grafik fungsi gamma');
» xlabel('n');
» ylabel('gamma(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)');
0 1 2 3 4 50
5
10
15
20
25Grafik fungsi gamma
n
ga
mm
a(n
)
152 Sahyar Econophysics Unimed Medan
Gambar 20.3.Kurve Fungsi Gamma n<0
D.Fungsi Beta
1. Defenisi fungsi Beta:
n)(m
(n)(m)n),(
gammadengan fungsiHubungan
beta fungsi),(
0n0,m ;)1(),( 1
1
0
1
mB
nmB
dtttnmB nm
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)
-6 -5 -4 -3 -2 -1 0-20
-10
0
10
20
30Grafik fungsi gamma
n
ga
mm
a(n
)
153 Sahyar Econophysics Unimed Medan
ans =
0.0970
E.Fungsi Bessel
1. Defenisi fungsi Bessel
n
xJnxJx
knk
xx
ynxxyyx
nn
k
nkk
sin
)(cos)()(Y
kedua jenis Bessel Fungsi
)1(!
)2/()1()(J
pertama jenis Bessel Fungsi
:berupa ldiffrensiapersamaan Solusi
fungsiorder n ;0)('"
Bessel ldiffrensiaPersamaan
n
0
2
n
222
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 =
154 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)');
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)');
0 2 4 6 8 10-0.5
0
0.5
1Grafik fungsi Bessel J0(x) dan J1(x)
x
J0
(x)/
J1
(x)
155 Sahyar Econophysics Unimed Medan
Gambar 20.5.Kurve Fungsi Bessel Jenis kedua
F.Fungsi Legendre
1. Defenisi fungsi Legendre
0m jika ,0)(
)()(
)()1()(P
:Function Legendre Associated
)33035()(P );35()(P
);13()(P ;)(P ;1)(P
0,1,2,...n ;)1(!2
1)(P
Legendre Fungsi
:disebut ldiffrensiapersamaan Solusi
fungsiorder n ;0)1('2")1(
Legendre ldiffrensiaPersamaan
0
2/2m
n
24
81
4
3
21
3
2
21
210
2
n
2
xP
xPxP
xPdx
dxx
xxxxxx
xxxxx
xdx
d
nx
ynnxyyx
m
n
nn
nm
mm
n
n
n
n
0 2 4 6 8 10-7
-6
-5
-4
-3
-2
-1
0
1Grafik fungsi Bessel Y0(x) dan Y1(x)
x
Y0
(x)/
Y1
(x)
156 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');
157 Sahyar Econophysics Unimed Medan
ylabel('Nilai fungsi ');
title(['Kurve fungsi Legendre m=0;n=',num2str(n)]);
Testing 1:
Output Program:
Orde fungsi legendre=4
Gambar 20.6.Kurve Fungsi Legendre m=0, n=4
Testing 2:
Output Program:
Orde fungsi legendre=5
-1 -0.5 0 0.5 1-0.5
0
0.5
1
x
Nila
i fu
ng
si
Kurve fungsi Legendre m=0;n=4
158 Sahyar Econophysics Unimed Medan
Gambar 20.7.Kurve Fungsi Legendre m=0, n=5
G.Transformasi Laplace
1. Konsep transfomasi Laplace
asdteatsF
attf
Contoh
dtetfsF
st
st
1)exp()(
)exp()(
:
)()(
0
0
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)
-1 -0.5 0 0.5 1-1
-0.5
0
0.5
1
x
Nila
i fu
ng
si
Kurve fungsi Legendre m=0;n=5
159 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)
160 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
dwewFtf
dtetfwF
jwt
jwt
)(2
1)(
)()(
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 =
161 Sahyar Econophysics Unimed Medan
2*t^2
» y=fourier(g)
y =
-4*pi*Dirac(2,w)
Transformasi balik.
» ifourier(y)
ans =
2*x^2
162 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.
163 Sahyar Econophysics Unimed Medan
2. Struktur data
Unit Variabel Type of data Keterangan
Nomor pilihan jb Numeric Input data
Sejumlah program
dalam file eksternal
File1, file2,
file3, file4
Output data
3. Algorithm program
a. Start
b. Input data
jb’y’
c. Process dan Output
while jb=='y' | jb=='Y'
tampil (' Menu ');
tampil(' 1. Luas segi tiga ');
tampil(' 2. Deret Aritmatik');
tampil(' 3. Standar Deviasi');
tampil(' 4. Grafik sin dan cos ');
tampil(' 5. Exit');
jbinput(' Input pilihan anda = ');
switch jb
case 1
file1;%nama file hitung luas
case 2
file2;%nama file deret
case 3
file3;%nama file standar deviasi
case 4
file4;%nama file grafik sin dan cos
case 5
jb='t';
end
disp('');
jb=input('Lanjutkan ? y/t =','s');
end
d. Stop
3. Coding
164 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.
165 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.
Schaum’s Outline Series McGRAW-HILL
Gonnect, G.H. 1998. Handbook of Algorithm and Data Structure. Addison
Wesley.
Hanselman D dan Littlefield B. 1998. The Student Edition of MATLAB. Prentice
Hall, Englewood Cliffs. Newjersey.
Jaan Kinsalaas. 2010. Numerical Methods in Engineering with MatLab.
Cambridge University.
Penny J dan Lindfield G. 1998. Numerical Methods Using Matlab. Ellis
Horwood. New York.
Sigmon, K. 1994. Matlab Primer, 4th
Edition, CRC Press, Boca Raton.
Soegeng. 2000. Visualisasi Fisika. Gramedia Jakarta.
Suarga. 2004. Algoritma Pemrograman. Penerbit Andi Yogyakarta.
...................., Learning MATLAB. Copyright 1999 - 2001 by The MathWorks,
Inc.
Recommended