I Pendahuluan Pemrograman Komputer dengan Matlab
1
1.1 Konsep Pemrograman
Sebuah komputer tidak dapat mengerjakan apapun tanpa adanya perintah dari
manusia. Perintah – perintah yang terstruktur dan sistematis untuk membuat agar
komputer dapat bekerja sesuai dengan apa yang diinginkan disebut program. Komputer
dapat diprogram untuk berbagai hal misalnya untuk melakukan perhitungan matematika,
memainkan lagu, mengurutkan data, memainkan games, menggambar dan lain-lain.
Program-program semacam itu dibuat oleh manusia, syarat utama dalam membuat
program komputer adalah perintah-perintah yang diberikan dalam program tersebut harus
dimengerti oleh komputer. Agar komputer dapat berkomunikasi dengan manusia sebagai
pembuat program maka diperlukan bahasa yang dapat dimengerti oleh komputer.
Komputer hanya dapat mengerti sebuah bahasa yang disebut bahasa mesin.
Bahasa yang sangat berbeda dengan bahasa manusia dan terlebih lagi akan amat
menyulitkan untuk membuat sebuah program dalam bahasa mesin ini. Manusia
menginginkan sebuah bahasa komputer yang sederhana yang dapat dimengerti dan mudah
dipelajari oleh manusia sekaligus dapat dimengerti oleh komputer. Bahasa komputer
tersebut disebut bahasa pemrograman (programming language). Yang perlu diingat,
konsep bahasa pemrograman adalah mengubah atau menerjemahkan perintah-perintah
(program) yang diberikan oleh manusia ke dalam bahasa mesin yang dapat dimengerti
oleh komputer. Jadi bahasa pemrograman merupakan sarana interaksi antara manusia dan
komputer. Penerjemah bahasa pemrograman dibedakan menjadi 3 macam yaitu :
1.Asembler adalah program yang digunakan untuk menerjemahkan kode sumber (source
code) dalam bahasa rakitan (assembly) ke dalam bahasa mesin
2.Kompiler adalah program penerjemah yang mengonversi kode sumber selain dalam
bahasa rakitan menjadi kode objek (object code). Hasil berupa kode objek inilah yang
bisa dijalankan oleh komputer. Proses untuk melakukan penerjemahan ini disebut
kompilasi. Bahasa yang menggunakan proses kompilasi adalah : bahasa COBOL,
Pascal, C, C++, BASIC, Java, MatLab, dan lain-lain.
3.Intepreter adalah program yang menerjemahkan satu persatu instruksi dalam kode
sumber dan kemudian segera menjalankan instruksi yang telah diterjemahkan tersebut.
Bahasa seperti BASIC pada awalnya menggunakan konsep intepreter ini.
Pendahuluan Bab I
I Pendahuluan Pemrograman Komputer dengan Matlab
2
Bahasa pemrograman digunakan untuk mempermudah manusia dalam berinteraksi
dengan komputer. Syarat utama untuk membuat program komputer adalah dengan
menggunakannya sesuai dengan kaidah-kaidah yang berlaku dalam bahasa pemrograman
tersebut. Masing – masing bahasa pemrograman mempunyai ciri khas atau kaidah
tersendiri. Oleh karena itu sebelum membuat sebuah program maka kita harus mengerti
tentang aturan penulisan (sintax) dalam bahasa pemrograman tersebut.
1.2 Bahasa Pemrograman MATLAB
MATLAB adalah bahasa pemrograman yang dirancang untuk perhitungan
matematika dan teknik. MATLAB adalah singkatan dari ”Matrix Laboratory”, hal ini
disebabkan Matlab memiliki kemampuan yang sangat kuat untuk menyelesaikan masalah
perhitungan dalam bentuk matrik. Disamping kemampuan dalam perhitungan numerik
maka Matlab juga memiliki kemampuan untuk menampilkan grafik yang sangat bagus.
Matlab juga menyediakan fungsi atau sub-rutin (built-in function) matematika maupun
grafik untuk mempercepat penyelesaian masalah. Pemrograman dalam Matlab dapat
dilakukan dengan 2 cara yaitu : pemrograman dengan command window dan
pemrograman dengan script M-File
1.3 Pemograman dengan Command Window
Dalam command window maka baris perintah atau program diketikkan langsung
dalam editor command window. Adapun tampilan command window adalah seperti
gambar 1.1 .
Gambar 1. 1 Tampilan Command Window
Editor
Command Window
I Pendahuluan Pemrograman Komputer dengan Matlab
3
Dalam pemrograman command window maka baris perintah diketikkan dalam editor
command window setelah lambang >> , dan diikuti menekan enter.
>> instruksi
Contoh 1 :
>> data = 5 [enter]
Hasilnya adalah :
data = 5
Contoh 2 :
>> a=10 a = 10 >> b=20 b = 20 >> c=a+b c = 30
Contoh 3 :
>> cos(60) ans = -0.9524
Contoh 4 :
>> 2^3 ans = 8
Contoh 5 :
>>x=0:pi/100:2*pi; >> y=cos(x); >> plot(x,y)
1.4 Pemograman dengan script M-File
Gambar 1. 2 Tampilan grafik dari program contoh 5
I Pendahuluan Pemrograman Komputer dengan Matlab
4
Dalam pemrograman dengan script M-File ini maka baris perintah atau program
diketikkan dalam editor M-File. Setelah itu program akan disimpan dengan eksetensi .m
Untuk menampilkan editor tersebut adalah dari menu utama Matlab. Pada menu utama
Matlab pilih menu File-new-M-File maka akan tampil editor seperti diperlihatkan dalam
gambar 1.3.
Sebagai contoh cobalah ketikkan program atau script di bawah ini.
Contoh 1 :
disp('Hello Matlab'); disp('Welcome!');
simpan file tersebut dengan nama,misal : latih1.m. Untuk melihat hasil dari program
tersebut maka eksekusi program tersebut di dalam editor command window, yaitu dengan
jalan mengetikkan nama filenya, latih1, diikuti enter :
>>latih1 [enter]
Hasilnya adalah :
Hello Matlab Welcome!
Contoh 2 :
x=-100:0.1:100; y=x.^2; plot(x,y); xlabel('x'); ylabel('y=x^2');
Gambar 1. 3 Tampilan editor M-File
I Pendahuluan Pemrograman Komputer dengan Matlab
5
selanjutnya simpan (save) file tersebut dengan nama, misalnya : latih2.m. Untuk melihat
hasil eksekusi program tersebut maka kembalilah ke editor command window dan
ketikkan :
>>latih2 [enter]
Hasilnya adalah :
Gambar 1. 4 Hasil Eksekusi latih2.m
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
6
2.1 T i p e D a t a
Tipe data menentukan jenis nilai yang dapat disimpan pada suatu variabel dan
jenis operator yang dapat dikenakan pada variabel tersebut. Misalnya tipe data real hanya
dapat menyimpan bilangan real dan operator yang dapat dikenakan padanya antara lain
operator penjumlahan, pengurangan, perkalian, dll.
Tipe data dasar (primitive) dalam pemrograman komputer (misal : Matlab) seperti
tercantum dalam tabel 2.1 berikut ini :
Tipe Ukuran
int 4 byte
short 2 byte
long 8 byte
byte 1 byte
float 4 byte
double 8 byte
char 2 byte
boolean true or false
Matlab mempunyai beberapa tipe data yang dinyatakan dengan class. Adapun tipe data
tersebut seperti diperlihatkan dalam tabel 2.2.
Tipe Ukuran
int8 1 byte
int16 2 byte
int32 4 byte
int64 8 byte
single 4 byte
double 8 byte
char 2 byte
boolean true or false
Tipe data yang menyatakan bilangan bulat (integer) adalah : int8, int16, int32, dan int64.
Tipe data yang menyatakan bilangan pecahan adalah : single dan double. Tipe data char
Tipe Data dan Variabel
Bab II
Tabel 2.1 Tipe data dasar
Tabel 2.2 Tipe data dalam Matlab
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
7
dipakai untuk menyimpan karakter tunggal atau sekumpulan karakter (string). Tipe data
boolean dipakai untuk menyimpan nilai true atau false.
2.2 Variabel
Variabel merupakan komponen penting dalam pemrograman. Variabel digunakan
dalam pemrograman untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat
diubah selama eksekusi program berlangsung. Adapun ketentuan atau aturan dalam
penulisan nama variabel adalah :
1. Nama variabel bisa terdiri dari huruf, angka, atau under score ( _ )
2. Nama variabel harus diawali oleh huruf (bukan angka)
contoh nama variabel yang benar :
nama_siswa
Latihan1
nilai1
contoh nama variabel yang salah :
nama siswa (mengandung spasi)
nama-siswa (mengandung ”-”)
1Latihan (diawali oleh angka)
3. Nama Variabel Tidak boleh memakai kata kunci (key word) seperti
diperlihatkan tabel 2.3 :
break case catch continue else elseif
for function global if otherwise persistant
return switch try while
2.3 Mendeklarasikan Variabel
Untuk menyimpan sebuah nilai dalam program maka kita memerlukan sebuah
variabel. Variabel yang akan digunakan dalam program harus dideklarasikan terlebih
dahulu. Format atau sintax pendeklarasian variabel adalah:
nama_variabel = ekspresi/nilai;
contoh :
jumlah = 10+5;
harga_satuan = 1500 ;
Tabel 2.3 Kata kunci (key words)
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
8
Pada deklarasi variabel jumlah menyatakan bahwa jumlah adalah variabel yang
menyimpan nilai hasil ekspresi 10+5 yaitu 15. Sementara variabel harga_satuan
menyimpan nilai yaitu 1500.
2.4 Konstanta
konstanta hampir sama fungsinya dengan variabel yaitu untuk menyimpan suatu
nilai. Jika dalam variabel nilai yang disimpan dapat diubah selama eksekusi program
berlangsung maka dalam konstanta nilai yang disimpan bersifat tetap (tidak berubah)
selama eksekusi program. Di dalam Matlab terdapat beberapa konstanta yaitu :
Konstanta Nilai
pi 3,14159
i 1
j 1
inf Tak berhingga ,
NaN Not-a-Number, misal hasil dari :
0
0
2.5 Masukan dan Keluaran
Pernyataan masukan (input) adalah pernyataan yang dipakai untuk membaca
masukan dari peralatan masukan standar seperti : keyboard. Sedangkan pernyataan
keluaran adalah untuk menampilkan keluaran (output) pada peralatan keluaran standar
yaitu : layar (screen)
2.5.1 Pernyataan Keluaran (Output) :
Pernyataan Keluaran berfungsi untuk menampilkan text ke layar. Format
pernyataan keluaran adalah :
disp(’Text anda ’); atau fprintf(’Text anda’);
Pernyataan yang pertama akan menampilkan Text dalam tanda petik ke layar tanpa
diikuti pindah baris baru sedangkan pernyataan yang kedua akan menampilkan text dalam
format tertentu. Penulisan dengan format didahului oleh : %. Adapun format tersebut
adalah :
Tabel 2.4 Konstanta dalam Matlab
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
9
Format Keterangan
%d Bulat (integer)
%f Pecahan (float)
%c Karakter tunggal
%s String (kumpulan karakter)
Contoh 1 :
disp(’Hello’); disp(’Java’); disp(’Welcome ‘);
Hasil eksekusi program tersebut adalah :
Hello Java Welcome
Contoh 2 :
A=10;
B=5;
hasil = A+B;
fprintf('Hasil penjumlahan adalah : %d\n',hasil);
atau jika kita memakai pernyataan keluaran disp() maka kode programnya akan menjadi :
A=10;
B=5;
hasil = A+B;
disp(strcat('Hasil Penjumlahan adalah : ',num2str(hasil)));
Jika program tersebut dieksekusi maka hasilnya adalah :
Hasil penjumlahan adalah : 15
Program pada contoh 2 merupakan program untuk menghitung hasil penjumlahan dari 2
buah bilangan yang dinyatakan dengan variabel A dan variabel B. Hasil penjumlahan
disimpan dalam variabel hasil dan ditampilkan dengan perintah output fprintf() berformat
bilangan bulat (%d). Penambahan instruksi ”\n” menyatakan pindah baris (new line). Untuk
menampilkan hasil penjumlahan bisa juga dilakukan dengan perintah disp(). Instruksi
strcat() dan num2str() merupakan fungsi atau perintah khusus yang sudah disediakan oleh
MatLab. Perintah strcat() berfungsi untuk menggabungkan 2 atau lebih data bertipe string
sedangkan num2str() untuk mengubah data bertipe numerik (bulat atau pecahan) menjadi
Tabel 2.5 Format tampilan keluaran
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
10
data bertipe string. Pembahasan lebih mendalam tentang fungsi akan diuraikan secara
lebih rinci dalam bab selanjutnya.
2.5.2 Pernyataan Masukan (Input) :
Pernyataan masukan berfungsi untuk memasukkan data lewat keyboard. Data yang
dimasukkan akan disimpan dalam sebuah variable. Format untuk memasukkan data yang
bertipe bilangan bulat atau pecahan adalah :
nama_variabel = input (’Text anda’);
sedangkan format untuk data masukan bertipe String atau karakter adalah :
nama_variabel = input (’Text anda’,’s’);
Contoh program :
Contoh 1.
bil = input('Masukkan bilangan : ');
fprintf('Bilangan yang anda masukkan adalah : %d\n',bil);
atau jika kita memakai perintah keluaran disp() maka kode programnya akan menjadi :
bil = input('Masukkan bilangan : ');
disp(strcat('Bilangan yang anda masukkan adalah : ',num2str(bil)));
Jika program tersebut dieksekusi maka hasilnya adalah :
Masukkan bilangan : 10 Bilangan yang anda masukkan adalah :10
Dalam contoh 1, variabel bil akan menyimpan data bilangan yang dimasukkan dengan
instruksi input(). Hasil pemasukan bilangan tersebut kemudian akan ditampilkan (output)
dengan instruksi fprintf() dengan format bilangan bulat (%d).
Contoh 2 (Menghitung penjumlahan 2 bilangan) :
bilangan1 = input('Masukkan bilangan 1 : '); bilangan2 = input('Masukkan bilangan 2 : '); hasil=bilangan1+bilangan2; fprintf('Hasil penjumlahan : %d\n',hasil);
Jika program tersebut dieksekusi maka hasilnya adalah :
Masukkan bilangan 1 : 10 Masukkan bilangan 2 : 30 Hasil penjumlahan : 40
Contoh 3 (Memasukkan tanggal lahir) :
tgl = input('Masukkan tanggal : ');
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
11
bulan = input('Masukkan bulan : ','s'); tahun = input('Masukkan tahun : '); fprintf('Tanggal Lahir anda : %d %s %d\n',tgl,bulan,tahun);
Jika program tersebut dieksekusi maka hasilnya adalah :
Masukkan tanggal : 5 Masukkan bulan : Mei Masukkan tahun : 2005 Tanggal Lahir anda : 5 Mei 2005
2.6 KOMENTAR (Comment)
Komentar merupakan pernyataan yang tidak akan ikut dieksekusi saat program
dieksekusi. Komentar biasanya dipakai untuk memberikan keterangan atau penjelasan
dari program atau suatu instruksi dalam sebuah program. Dalam Matlab komentar
biasanya ditulis dengan :
% komentar anda
Contoh :
%Program menghitung luas lingkaran %dengan jari-jari r
r = input('Masukkan jari-jari : '); %masukkan jari-jari lingkaran luas = pi * (r^2); fprintf('Lingkaran dengan jari-jari : %.2f,',r); %instruksi %.2f bukan komentar fprintf('luasnya adalah %.2f\n',luas); %tampilkan luas lingkaran
2.7 Soal Latihan :
1. Buatlah program untuk menghitung kecepatan sebuah benda v. Dimana persamaannya
adalah :
v= s/t
input program adalah s (jarak) dan t (waktu tempuh)
2. Buatlah program untuk menghitung Tekanan P dalam gas ideal. Dimana persamaannya
adalah :
PV = nRT
3. Buatlah program untuk menghitung Gaya F yang dialami oleh sebuah benda. Dimana
rumusnya adalah :
F = m.a
4. Buatlah program untuk menghitung Hambatan total Rs dan Rp dari suatu rangkaian
hambatan yang disusun secara seri dan paralel. Dimana persamaannya adalah :
Rangkaian Seri : Rs = R1+R2+R3
3
1
2
1
1
11:ParalelRangkaian
RRRRp
II Tipe Data dan Variabel Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
12
5. Buatlah program untuk menghitung Intensitas dari sebuah sinar I ketika melewati
sebuah bahan. Dimana persamaannya adalah :
I = I0 e-µx
6. Buatlah program untuk menghitung Energi photon. Dimana persamaannya adalah :
/hcE
7. Buatlah program untuk menghitung Persamaan garis lurus yang melalui 2 titik P1(x1,y1)
dan P2(x2,y2) dapat dinyatakan dengan (interpolasi linear):
12
1
12
1
xx
xx
yy
yy
atau bisa ditulis :
11
12
12 )( yxxxx
yyy
input dari program adalah x,x1,y1,x2,y2
8. Buatlah program untuk menghitung Persamaan garis yang melalui 3 buah titik
P1(x1,y1) , P2(x2,y2) dan P3(x3,y3) dapat dinyatakan dengan (interpolasi kuadratik):
))((
))((
))((
))((
))((
))((
2313
213
3212
312
3121
321
xxxx
xxxxy
xxxx
xxxxy
xxxx
xxxxyy
input dari program adalah x,x1,y1,x2,y2, x3,y3
III Operator Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
11
Dalam bahasa pemrograman dikenal beberapa tipe operator yaitu : Operator
Aritmatika, Operator Logika, dan Operator Relasi.
3.1 Operator Aritmatika
Operator aritmatika atau operator numerik biasanya dipakai untuk mengoperasikan
2 buah bilangan. Adapun yang tergolong dalam operator aritmatika adalah :
Operator Fungsi
+ Penjumlahan
- Pengurangan
* Perkalian
/ pembagian
^ pemangkatan
Contoh :
a=5; b=10; c=a+b; %fprintf('c = %d\n',c); disp(strcat('c = : ',num2str(c)));
Jika program ini dieksekusi maka hasilnya adalah :
c = 15
Prioritas dalam operator Aritmatika
Adapun prioritas pemakaian operator aritmatika dalam bahasa pemrograman
adalah :
- operator perkalian dan pembagian mempunyai prioritas yang sama
- operator penjumlahan dan pengurangan mempunyai prioritas yang sama
- operator perkalian atau pembagian mempunyai prioritas yang lebih tinggi daripada
operator penjumlahan atau pengurangan
Contoh :
a=20; b=5;
Operator Bab III
Tabel 3.1. Operator Aritmatika
III Operator Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
12
c=8; d=4; f=a*b/c; fprintf('f = %4.2f\n',f); g=a+b*c; fprintf('g= %4.2f\n',g); h=a*b+d; fprintf('h = %4.2f\n',h);
Jika program ini dieksekusi maka hasilnya adalah :
f = 12.50 g= 60.00 h = 104.00
3.2 Operator Logika
Operator logika biasanya dipakai untuk membandingkan 2 pernyataan yang
mengandung nilai logika benar (TRUE) atau salah (FALSE). Ada 3 operator logika yang
umumnya dipakai dalam bahasa pemrograman komputer.
Operator keterangan
&& AND
| | OR
~ NOT
A B A && B
0 (FALSE 0 (FALSE) 0 (FALSE)
1 (TRUE) 0 (FALSE) 0 (FALSE)
0 (FALSE 1 (TRUE) 0 (FALSE)
1 (TRUE) 1 (TRUE) 1 (TRUE)
A B A | | B
0 (FALSE) 0 (FALSE) 0 (FALSE)
1 (TRUE) 0 (FALSE) 1 (TRUE)
0 (FALSE 1 (TRUE) 1 (TRUE)
1 (TRUE) 1 (TRUE) 1 (TRUE)
Tabel 3.2 Operator logika
Tabel 3.3 Tabel kebenaran operator AND ( &&)
Tabel 3.4 Tabel kebenaran operator OR ( || )
III Operator Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
13
Contoh :
a = true; b = false; c = a || b; d = a && b; e = ~a; fprintf('c = %d\n', c); fprintf('d = %d\n',d); fprintf('e = %d\n',e);
Jika program ini dieksekusi maka hasilnya adalah :
c = 1 d = 0 e = 0
3.3 Operator Relasi
Operator relasi biasanya dipakai untuk membandingkan kuantitas dari 2 buah
bilangan. Hasil dari perbandingan ini akan menghasilkan nilai logika : benar (TRUE) atau
salah (FALSE).
Operator keterangan
== sama dengan
~= Tidak sama dengan
< Lebih kecil
<= Lebih kecil atau sama dengan
> Lebih besar
>= Lebih besar atau sama dengan
Misalkan : A = 2, B = 3, C = 4 maka hasil operasi dari operator relasi ditunjukkan pada
tabel 3.6 berikut ini :
Operasi Hasil operasi
A< B TRUE
A ~= C/B TRUE
C >= B TRUE
B < C-A FALSE
C >= B*A FALSE
A == C FALSE
Tabel 3.5. Operator Relasi
Tabel 3.6 Contoh operasi dengan operator relasi
III Operator Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
14
Contoh 1 :
a = 4; b = 5; c = a > b; d = a ~= b; e = c && d; f = c || d; fprintf('c = %d\n', c); fprintf('d = %d\n',d); fprintf('e = %d\n',e); fprintf('f = %d\n',f);
Jika program ini dieksekusi maka hasilnya adalah :
c = 0 d = 1 e = 0 f = 1
Contoh 2 :
nilai = input('Masukkan nilai : '); hasil = nilai>= 80 && nilai<=100; fprintf('Hasil = %d\n',hasil);
Jika program ini dieksekusi maka hasilnya adalah :
Masukkan nilai : 60
Hasil = 0
Masukkan nilai : 85
Hasil = 1
3.4 Soal Latihan :
1. Apakah hasil eksekusi dari program berikut ini :
nilai = input('Masukkan nilai : '); hasil = nilai>= 80 || nilai<=100; fprintf('Hasil = %d\n',hasil);
2. Apakah hasil eksekusi dari program berikut ini :
absen = input('Masukkan absen (0-100) : ');
nilai = input('Masukkan nilai (0-100) : ');
testing1 = absen>=75;
testing2 = nilai>=50 && nilai<=100;
hasil_final = testing1 && testing2;
III Operator Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
15
disp(strcat('Hasil = ',num2str(hasil_final)));
3. Apakah hasil eksekusi dari program berikut ini :
username='wayan'
password='12345'
name = input('Masukkan user name (5 digit) : ','s'); %input string,harus 5 digit
pass= input('Masukkan password (5 digit) : ','s'); %input string,harus 5 digit
testing_name = all(name==username); %all, membandingkan semua digit string
testing_pass = all(pass==password);
final=testing_name && testing_pass;
disp(strcat('Hasil testing = ',num2str(final)));
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
15
4.1 Pernyataan if
Pernyataan yang biasanya dipakai untuk mengambil keputusan dari suatu kondisi
adalah statemen if. Adapun format atau sintax dari statemen if adalah sebagai berikut :
if kondisi aksi end
Dalam hal ini jika kondisi bernilai TRUE (atau 1) maka aksi akan dikerjakan sedangkan
jika kondisi bernilai FALSE (atau 0) maka aksi tidak akan dikerjakan.
Contoh 1 :
%Program untuk menguji pernyataan if a=5; if a==5 disp('aksi dikerjakan'); end
Jika program diatas dieksekusi maka hasilnya adalah :
aksi dikerjakan
Contoh 2 :
%Program untuk menguji pernyataan if nilai_ujian=input('Masukkan nilai ujian : '); absen= input('Masukkan prosentase absen : '); if nilai_ujian>50 && absen>=75 disp('Anda Lulus'); disp('Selamat'); end disp('Terima Kasih');
Jika program diatas dieksekusi maka hasilnya adalah :
Masukkan nilai ujian : 70 Masukkan prosentase absen : 80 Anda Lulus Selamat Terima Kasih Masukkan nilai ujian : 70 Masukkan prosentase absen : 60 Terima Kasih
4.2 Pernyataan if- else
Pernyataan Pengambilan Keputusan
Bab IV
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
16
Format dari pernyataan pengambilan keputusan i f …else adalah sebagai berikut :
If kondisi aksi_1 else aksi_2 end
Di sini diperlihatkan bahwa jika kondisi terpenuhi atau bernilai TRUE (1) maka aksi_1
yang dikerjakan. Sedangkan jika kondisi bernilai FALSE (0) maka yang akan dikerjakan
adalah aksi_2.
Contoh 1 :
%Program untuk menguji pernyataan if-else nilai_ujian=input('Masukkan nilai ujian : '); absen= input('Masukkan prosentasi absen : '); if nilai_ujian>50 && absen>=75 disp('Anda Lulus'); else disp('Anda Tidak Lulus'); end
Jika program diatas dieksekusi maka hasilnya adalah :
Masukkan nilai ujian : 70 Masukkan prosentase absen : 70 Anda Tidak Lulus
Contoh 2 :
% Program menghitung luas lingkaran % program mengecek error jika jari-jari< 0 (negatif) radius = input('Masukkan jari-jari : '); if radius <= 0 fprintf('Maaf; %.2f adalah jari-jari tidak valid\n',radius); else area = pi* (radius^2); fprintf('Lingkaran dengan jari-jari %.2f,',radius); fprintf('luasnya adalah %.2f\n',area); end
Jika program diatas dieksekusi maka hasilnya adalah :
Masukkan jari-jari : 3 Lingkaran dengan jari-jari 3.00,luasnya adalah 28.27
Masukkan jari-jari : -5 Maaf;-5.00 adalah jari-jari tidak valid
Latihan :
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
17
1. Buatlah program komputer yang dapat memilih nomer channel TV dan menampilkan
stasiun TV yang bersangkutan. Andaikan nomer channel TV tersebut adalah bilangan
integer dari 1 – 9 seperti berikut ini :
1. RCTI 5. ANTV 9. Bali TV
2. SCTV 6. TPI
3. Indosiar 7. MetroTV
4. Lativi 8. TVRI
Petunjuk :
- Masukkan nomer chanel TV ( angka 1 – 9 )
- Tampilkan nama stasiun TV (pakai statemen if )
2. Andaikan kita diminta untuk mengubah nilai angka menjadi nilai huruf dari suatu data
nilai ujian mahasiswa dengan ketentuan sebagai berikut :
jika nilai_angka >=80 dan nilai_angka <=100 maka nilai_huruf = A
jika nilai_angka >=60 dan nilai_angka <80 maka nilai_huruf = B
jika nilai_angka >=40 dan nilai_angka <60 maka nilai_huruf = C
jika nilai_angka >=20 dan nilai_angka <40 maka nilai_huruf = D
jika nilai_angka >=0 dan nilai_angka <20 maka nilai_huruf = E
Petunjuk :
- masukkan nilai_angka
- gunakan statemen if dan untuk kondisi gunakan operator logika AND (&&)
4.3 Pernyataan if-else bersarang (nested if-else)
Pernyataan if-else dipakai untuk memilih diantara dua buah pernyataan. Untuk
memilih lebih dari dua pernyataan maka dipakai if-else bersarang. Pernyataan if-else dapat
disarangkan dalam if-else yang lain. Format dari pernyataan i f-else bersarang adalah
sebagai berikut :
If kondisi_1 aksi_1 else if kondisi_2 aksi_2 else ... if kondisi_n aksi_n else aksi_m end end end
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
18
Contoh kasus dari pemakaian if-else bersarang adalah pada fungsi matematika y = f(x)
yang memenuhi persamaan berikut ini :
1,1 xuntuky
21,2 xuntukxy
2,4 xuntuky
Program untuk menyelesaikan fungsi tersebut dapat dilihat dalam contoh 1 dan 2 berikut ini :
Contoh 1 (Tanpa nested if-else):
%Program hitung fungsi f(x) tanpa nested if-else x=input('masukkan nilai x : '); if x<-1 y = 1; end if x>=-1 && x <= 2 y = x^2; end if x>2 y = 4; end fprintf('y = %.2f\n',y);
Jika program diatas dieksekusi maka hasilnya adalah :
masukkan nilai x : 2 y = 4.00
masukkan nilai x : 1 y = 1.00
Contoh 2 (Dengan nested if-else):
%Program hitung fungsi f(x) dengan nested if-else x=input('masukkan nilai x : '); if x<-1 y = 1; else if x>=-1 && x <= 2 y = x^2; else y = 4; end end fprintf('y = %.2f\n',y);
Jika program diatas dieksekusi maka hasilnya adalah :
masukkan nilai x : 1 y = 1.00 masukkan nilai x : 2 y = 4.00 masukkan nilai x : 0
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
19
y = 0.00 masukkan nilai x : -2 y = 1.00 masukkan nilai x : 4 y = 4.00
4.4 Pernyataan dengan klausa elseif
Pernyataan elseif adalah bentuk lain dari if-else bersarang. Format atau bentuk
umum dari pernyataan elseif adalah sebagai berikut :
If kondisi_1 aksi_1 elseif kondisi_2 aksi_2 elseif kondisi_3 aksi_3 .... else aksi_n end
Contoh kasus dari pemakaian elseif adalah pada fungsi matematika y = f(x) yang
memenuhi persamaan berikut ini :
1,1 xuntuky
21,2 xuntukxy
2,4 xuntuky
Program untuk menyelesaikan fungsi tersebut dapat dilihat dalam contoh berikut ini :
Contoh :
%Program hitung fungsi f(x) tanpa nested if-else x=input('masukkan nilai x : '); if x<-1 y = 1; elseif x>=-1 && x <= 2 y = x^2; else y = 4; end fprintf('y = %.2f\n',y);
Jika program diatas dieksekusi maka hasilnya adalah :
masukkan nilai x : 1 y = 1.00 masukkan nilai x : 2 y = 4.00 masukkan nilai x : 0 y = 0.00 masukkan nilai x : -2
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
20
y = 1.00 masukkan nilai x : 4 y = 4.00
4.5 Pernyataan switch-case
Pernyataan switch biasanya dipakai untuk mengambil keputusan diantara banyak
pilihan (kondisi). Adapun bentuk umum dari pernyataan ini adalah :
switch ekspresi case value_1 aksi_1 case value_2 aksi_2 . . . case value_n : aksi_n otherwise aksi_m end
Contoh :
% Example of otherwise for error message choice = input('Masukkan 1, 3, atau 5 : '); switch choice case 1 disp('Ini adalah satu!!') case 3 disp('Ini adalah tiga!!') case 5 disp('Ini adalah lima!!') otherwise disp('Ikuti petunjuk!!') end
Jika program diatas dieksekusi maka hasilnya adalah :
Masukkan 1,3, atau 5 : 3 Ini adalah tiga!! Masukkan 1,3, atau 5 : 7 Ikuti petunjuk!!
Latihan :
1. Ulangi soal latihan no.1 diatas dengan menggunakan pernyataan switch.
2. Andaikan kita mempunyai 2 buah bilangan yaitu bil1 dan bil2. Kita akan
mengoperasikan kedua bilangan tersebut dengan pilihan sebagai berikut :
1. Penjumlahan
IV Pernyataan Pengambilan Keputusan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
21
2. Pengurangan
3. Pekalian
4. Pembagian
misal jika kita pilih 1 maka program akan menjumlahkan bil1 dan bil2. Dan jika kita
pilih 3 maka program komputer akan melakukan perkalian antara bil1 dan bil2.
Dalam hal ini gunakanlah pernyataan switch.
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
22
Pernyataan pengulangan (looping) sering disebut kalang. Dalam pemrograman
computer Matlab ada dua buah kalang yang biasanya dipakai yaitu :
- for
- while
Statemen pengulangan biasanya dipakai untuk mengulang instruksi yang sama. Seperti
contoh sederhana misalnya kita diminta untuk menampilkan kalimat : ”Hello Matlab ”
secara berulang –ulang sebanyak 5 kali. Jika kita tidak memakai kalang maka kode
programnya adalah :
%program looping tanpa for disp('Hello Matlab'); disp('Hello Matlab'); disp('Hello Matlab'); disp('Hello Matlab'); disp('Hello Matlab');
Jika kita menggunakan kalang for maka kode program diatas akan dapat diringkas
menjadi :
%Program looping dengan for for i=1:1:5 disp('Hello Matlab'); end
5.1 Pengulangan for
Seperti diperlihatkan dalam contoh diatas maka format dari kalang for adalah :
for var_loop = nilai_awal:step:nilai_akhir aksi end
keterangan :
var_loop = variabel untuk melakukan pengulangan
nilai_awal = nilai awal dari variabel pengulangan var_loop
nilai_akhir = nilai akhir dari variabel pengulangan var_loop
step = nilai penambahan var_loop
aksi = pernyataan yang diulang dalam rentang pengulangan
Jika nilai step = 1 maka nilai step bisa dihilangkan dari format menjadi :
for var_loop = nilai_awal:nilai_akhir aksi end
PERNYATAAN PENGULANGAN (LOOPING)
Bab V
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
23
Pernyataan aksi akan terus dikerjakan selama var_loop berada dalam rentang pengulangan
yaitu dari nilai_awal sampai nilai_akhir. Dalam setiap pengulangan maka var_loop akan
dinaikkan nilainya sebesar nilai step. Misalkan kita ingin membuat kode program yang
dapat mencetak 5 buah bilangan dari 1 sampai 5 maka kode programnya adalah sebagai
berikut :
%Program pemakaian for %mencetak bilangan 1 sampai 5 for data=1:1:5 disp(data); end
Dari program diatas maka dalam kalang for mengandung pernyataan yaitu :
for data = 1:1:5
yang berarti variabel data mempunyai rentang atau range dari 1 sampai 5. Nilai awal data
adalah 1 (data =1) dan nilai data ini akan ditingkatkan sebesar 1 setiap mengerjakan
pernyataan aksi dalam kalang for.
%Program pemakaian for %mencetak bilangan 1 sampai 20 dengan interval 2 for i=1:2:20 fprintf('%d\t',i); end
Jika program ini dieksekusi maka hasilnya adalah :
1 3 5 7 9 11 13 15 17 19
5.2 Pengulangan for bersarang (nested for)
Dalam pemrograman ada kalanya kita memerlukan for bersarang yaitu
pengulangan for yang disarangkan pada for yang lain. Adapun bentuk umum dari for
bersarang adalah :
for var_loop_1 = nilai_awal_1:step_1:nilai_akhir_1 for var_loop_2 = nilai_awal_2:step_2:nilai_akhir_2 .... .... for var_loop_n = nilai_awal_n:step_n:nilai_akhir_n aksi_n end end end
Contoh 1 :
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
24
%Program looping nested for for i=1:5 for j=1:5 fprintf('%d\t',j); end fprintf('\n'); end
Jika program ini dieksekusi maka hasilnya adalah :
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Contoh 2 :
%Program looping nested for for i=1:5 for j=1:5 fprintf('*\t'); end fprintf('\n'); end
Jika program ini dieksekusi maka hasilnya adalah :
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Latihan :
1. Buatlah kode program yang dapat mencetak bilangan dari 10 sampai 1.
2. Andaikan kita mempunyai kode program seperti dibawah ini. Maka tentukanlah hasil
eksekusi dari kode tersebut.
for i=20:-2:1 disp(i); end
3. Buatlah kode program yang dapat mencetak bilangan genap yang lebih kecil dari 50
dimulai dari 0.
4. Buatlah program yang dapat menghitung :
n
i
i1
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
25
atau
1 + 2 + 3 + ...+ n
5. Buatlah program yang dapat menghitung faktorial dari sebuah bilangan n
n! = 1*2* ...*n
6. Buatlah program yang dapat menampilkan pola berikut ini
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
7. Buatlah program yang dapat menampilkan pola berikut ini
* * * * *
* * * *
* * *
* *
*
5.2 Pengulangan while
Pengulangan while hampir sama dengan kalang for yaitu sama-sama dipakai untuk
mengulangi pernyataan yang sama berkali-kali selama kondisi terpenuhi. Adapun format
atau sintax dari kalang while adalah :
while kondisi aksi end
kondisi merupakan operasi relasi yang melibatkan operator-operator relasi . Hasil dari
operasi relasi ini adalah TRUE (1) atau FALSE (0). Pernyataan aksi akan diulangi selama
hasil operasi relasi dalam kondisi bernilai TRUE (1). Program berikut adalah contoh
pemakaian kalang while.
Contoh 1 :
%Program looping while %mencetak bilangan dari 1-5 i=1; while i<=5 disp(i); i=i+1; end
Hasil eksekusi dari program tersebut di atas adalah :
1 2 3 4 5
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
26
Contoh 2 :
%Program looping while limit = 5; sum = 0; i = 1; while i <= limit sum = sum+i ; i=i+1; end fprintf('sum = %d\n',sum);
Hasil eksekusi dari program tersebut di atas adalah :
sum = 15
Latihan :
1. Buatlah program komputer yang dapat menampilkan bilangan 1 sampai 10 dengan
urutan terbalik (gunakan kalang while).
2. Implementasikan kode program yang dapat menampilkan bilangan ganjil antara 0 – 50
dengan memakai kalang while
Petunjuk :
-gunakan kalang while yaitu :
3. Buatlah kode program yang dapat menampilkan dan menghitung hasil penjumlahan
bilangan genap dari 0 sampai 50.
Petunjuk :
-tampilkan bilangan genap dari 0 - 50
-hitung hasil penjumlahan dari bilangan genap tersebut misal :
total_jumlah = 0 + 2 + 4 +…+50
-gunakan kalang while
Soal-soal Tambahan : 1. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
nxxxxxxf ...)( 3210
dimana n = 0,1,2,...
2. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
22420 ...)( nxxxxxg
dimana n = 1,2,3,...
3. Buatlah program komputer untuk menghitung faktorial f dari sebuah bilangan :
V Pernyataan Pengulangan Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
27
nxxnf ...21!
Dimana untuk n = 0 maka f = 0! = 1 :
misal :
244.3.2.1!4:4 fmakan
7206.5.4.3.2.1!6:6 fmakan
1!0:0 fmakan
4. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
!...!2!1!0 nf
dimana n = 0,1,2,...
5. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
!22...!4!2!0 nf
dimana n = 1,2,3...
6. Buatlah program komputer dari fungsi exp(x) yang dinyatakan dengan :
!
...!3!2
1)exp(32
n
xxxxx
n
Dimana n menyatakan jumlah suku
7. Buatlah program komputer dari fungsi cos(x) yang dinyatakan dengan :
)!22(
...!6!4!2
1)cos(22642
n
xxxxx
n
Dimana n menyatakan jumlah suku
VI Array Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
27
Di dalam pemrograman Matlab array ekivalen dengan vektor dan matrik. Vektor
merupakan array 1 dimensi sedangkan matrik adalah array 2 dimensi. Vektor biasanya
dapat dinyatakan dengan vektor baris atau vektor kolom. Matrik dapat dinyatakan dengan
dimensi baris dan kolom. Sebuah matrik Amxn menyatakan matrik yang memiliki jumlah
baris m dan jumlah kolom n. Jadi vektor baris adalah matrik yang berdimensi 1xn yaitu
memiliki 1 baris dan n kolom. Sedangkan vektor kolom merupakan matrik berdimensi
nx1, yaitu n baris dan 1 kolom.
6.1 Array 1 Dimensi (vektor)
Adapun sintax atau format penulisan dari Array 1 dimensi (vektor) dalam Matlab
adalah :
NamaVar = [ e1 e2 ... en] ; untuk vektor baris
Atau
NamaVar = [e1 ; e2 ; ...en]; untuk vektor kolom
Keterangan :
NamaVar = Nama vektor
e1,e2,...en = elemen vektor
Contoh :
A = [1 2 3 4];
B = [1;2;3;4];
A adalah vektor baris berdimensi 1x4 dengan 4 elemen. Sedangkan B adalah vektor
kolom berdimensi 4x1 dengan 4 elemen. Untuk memberikan nilai pada elemen vektor
dilakukan dengan cara :
NamaVar(i) = nilai;
Dimana i menunjukkan indeks dari elemen vektor. Sedangkan nilai adalah nilai yang akan
diberikan (assign) pada elemen vektor.
Contoh :
A(2) = 5;
Ini menunjukkan memberikan nilai 5 kepada elemen ke-2 dari vektor A.
Berikut ini adalah program Matlab yang memperlihatkan tentang pemakaian variabel
array.
Contoh 1 :
%Program array 1 dimensi (vektor)
ARRAY
Bab VI
VI Array Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
28
A=[6 2 3 4 8]; for i = 1:5 disp(A(i)); end
Jika program tersebut dieksekusi maka hasilnya adalah :
6 2 3 4 8
Contoh 2 :
%Program array 1 dimensi (vektor) %Memasukkan elemen vektor for i = 1:5 A(i)= input(strcat('A[',num2str(i),']= ')); end %menampilkan elemen vektor disp('Elemen vektor adalah : '); for i = 1:5 disp(strcat('A[',num2str(i),']=',num2str(A(i)))); end
Jika program tersebut dieksekusi maka hasilnya adalah :
A[1]=5 A[2]=2 A[3]=3 A[4]=4 A[5]=6 Elemen vektor adalah : A[1]=5 A[2]=2 A[3]=3 A[4]=4 A[5]=6
6.2. Array 2 dimensi (Matrik)
Array 2 dimensi adalah array yang memiliki dua dimensi yang dinyatakan dengan
baris dan kolom
Misal :
A =
2221
1211
aa
aa
Matrik A adalah matrik dua dimensi dengan 2 baris dan 2 kolom. Sintax untuk
menyatakan variabel array 2 dimensi dalam Matlab adalah :
NamaVar[e11 e12 ...e1n; e21 e22...e2n ; ...em1 em2...emn] ;
Untuk memberikan nilai pada elemen Matrik dilakukan dengan cara :
VI Array Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
29
NamaVar(i,j) = nilai;
Dimana i dan j menunjukkan indeks baris dan kolom dari elemen matrik. Sedangkan nilai
adalah nilai yang akan diberikan (assign) pada elemen matrik.
Contoh :
A(1,3) = 5;
Ini menunjukkan memberikan nilai 5 kepada elemen pada baris 1 kolom 3 dari matrik A.
Misalkan kita ingin membuat sebuah matrik 2 dimensi dengan 2 baris dan 2 kolom yang
bernama A dengan elemen seperti berikut :
A =
83
64
Contoh program yang berisi pembuatan matrik tersebut diperlihatkan dalam contoh 1
program berikut ini :
Contoh 1 :
%Program array 2 dimensi (Matrik) %Memasukkan elemen matrik for i = 1:2 for j=1:2 A(i,j)= input(strcat('A[',num2str(i),num2str(j),']= ')); end end %menampilkan elemen vektor disp('Elemen vektor adalah : '); for i = 1:2 for j=1:2 disp(strcat('A[',num2str(i),num2str(j),']=',num2str(A(i,j)))); end end
Hasil Eksekusi dari program tersebut adalah :
A[11]=4 A[12]=6 A[21]=3 A[22]=8 Elemen vektor adalah : A[11]=4 A[12]=6 A[21]=3 A[22]=8
Latihan :
1.Buatlah program yang menghitung nilai rata-rata dari n buah bilangan.
Petunjuk :
-masukkan nilai dari n buah bilangan tersebut (gunakan vektor)
-hitung jumlahnya
-hitung rata-rata
VI Array Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
30
-tampilkan nilai rata-rata
2.Buatlah program yang dapat dipakai untuk memasukkan array 2 dimensi dengan
jumlah baris 3 dan jumlah kolom 3 (matrik 3 X 3). Kemudian tampilkan elemen-
elemennya
Petunjuk :
- masukkan nilai masing-masing elemen matrik
- tampilkan masing-masing elemennya
3.Tulislah program komputer untuk menghitung hasil penjumlahan 2 buah matrik 2
dimensi 3 baris dan 3 kolom. Misal hasil penjumlahan matrik A dan matrik B disimpan
dalam matrik C seperti persamaan berikut ini :
C = A + B
Petunjuk :
-masukkan nilai elemen-elemen matrik A
-masukkan nilai elemen-elemen matrik B
-jumlahkan nilai elemen-elemen matrik A dengan B yang bersesuaian
-simpan hasil penjumlahan tiap-tiap elemen dalam matrik C
C[1][1] = A[1][1] + B[1][1];
C[1][2] = A[1][2] + B[1][2]; dan seterusnya …
-tampilkan matrik C.
4.Rancang program komputer untuk menampilkan transpose dari suatu matrik.
Petunjuk :
-masukkan nilai elemen-elemen matrik A
-tentukan traspose dari A.misal transpose dari A adalah matrik B. Sehingga nilai elemen
elemen dari B :
B[1,1] = A[1,1]
B[1,2] = A[2,1]
B[2,1] = A[1,2]
B[2,2] = A[2,2]
Soal Tambahan :
VI Array Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
31
1. Buatlah program untuk menghitung Hambatan total Rs dan Rp dari suatu rangkaian
hambatan yang disusun secara seri dan paralel. Dimana persamaannya adalah :
ns RRRR ...:SeriRangkaian 21
RnRRRp
1...
111:ParalelRangkaian
21
2. Jika kita memiliki sekumpulan N buah titik data yaitu : ( x1,y1), (x2,y2),...(xN,yN).
Buatlah program untuk memasukkan titik-titik data tersebut dan menghitung
persamaan berikut ini :
a)
N
n
nxA1
b)
N
n
nyB1
c)
N
n
nxNC1
2
d) n
N
n
n yxND
1
e) 2AC
ABDE
3. Buatlah program untuk menghitung persamaan interpolasi Lagrange yaitu :
N
i ji
j
iji
xx
xxyy
1 )(
)(
Contoh untuk 3 titik (N=3) maka persamaan tersebut menjadi :
))((
))((
))((
))((
))((
))((
2313
213
3212
312
3121
321
xxxx
xxxxy
xxxx
xxxxy
xxxx
xxxxyy
VII Fungsi Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
31
7.1 Fungsi
Fungsi adalah suatu cara untuk membagi program yang besar menjadi sub-sub
program, dimana masing-masing sub program mempunyai tugas atau fungsi tertentu. Di
bab-bab sebelumnya kita sudah mempergunakan fungsi bawaan Matlab (built-in function)
seperti : disp(), fprintf(), input(), dan lain-lain. Fungsi-fungsi tersebut sudah disediakan
langsung oleh Matlab dan dapat dipergunakan langsung tanpa harus didefinisikan terlebih
dahulu. Disamping fungsi built-in, di dalam Matlab kita bisa membuat fungsi buatan
sendiri yang disesuaikan dengan keperluan kita (user-defined function).
7.2 Pendefinisian dan Pemanggilan Fungsi
Fungsi buatan sendiri selanjutnya disingkat dengan fungsi. Bentuk umum fungsi
adalah :
nama_fungsi.m
Secara umum fungsi buatan sendiri terdiri dari 3 bagian yaitu :
1. Fungsi header,
- diawali oleh kata function
- nama fungsi harus sama dengan nama M-File, simpanlah fungsi tersebut dengan
nama nama_fungsi.m
- output_argumen = nilai balik fungsi
- input_argumen ditulis di dalam tanda kurung
2. Komentar, untuk menjelaskan tentang fungsi
3. Tubuh fungsi (body), berisi statemen dari fungsi termasuk di bagian akhir yaitu
memberikan nilai balik pada output_argumen
Setelah kita membuat fungsi maka selanjutnya fungsi tersebut dapat dipanggil dari dalam
program atau skrip Matlab. Cara pemanggilan fungsi di dalam Matlab adalah :
nama_variabel = nama_fungsi( argumen);
FFFuuunnngggsssiii (((fffuuunnnccctttiiiooonnn)))
Bab VII
function output_argumen = nama_fungsi(input_argumen) % komentar tentang fungsi Statemen fungsi, termasuk memberi nilai output_argumen
VII Fungsi Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
32
fungsi nama_fungsi dipanggil dan hasil dari pemanggilan fungsi tersebut akan disimpan
dalam variabel nama_variabel.
Contoh 1 ( Luas Lingkaran) :
calcarea.m
function area = calcarea(rad)
% Fungsi untuk menghitung luas lingkaran
area = pi * rad * rad;
script1.m
% Skrip untuk menghitung luas lingkaran % Skrip akan meminta user untuk memasukkan jari-jari radius = input('Masukkan jari-jari :'); % panggil fungsi calcarea() area = calcarea(radius); %cetak luas fprintf('Lingkaran dengan jari-jari %.2f,',radius) fprintf('Luasnya adalah : %.2f\n',area)
contoh 2 (Volume Kerucut) :
vol_kerucut.m
script2.m
7.3 Fungsi tanpa Nilai Balik
Pada umumnya fungsi mempunyai nilai balik. Namun ada kalanya fungsi tidak
memiliki nilai balik. Bentuk umum dari fungsi yang tidak memiliki nilai balik adalah :
nama_fungsi.m
function vol = vol_kerucut(radius, height)
% Calculates the volume of a cone
vol = (pi/3) * radius * radius * height;
function nama_fungsi(input_argumen) % komentar tentang fungsi Statemen fungsi
% Skrip untuk menghitung volume kerucut
% Skrip akan meminta user untuk memasukkan jari-jari alas
% dan tinggi kerucut
radius = input('Masukkan jari-jari alas : ');
height = input('Masukkan tinggi : ');
% panggil fungsi vol_kerucut()
v = vol_kerucut(radius,height);
%cetak volume kerucut
fprintf('Volume Kerucut adalah : %.2f\n',v)
VII Fungsi Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
33
Fungsi ini tidak memiliki argumen output, karena fungsi ini tidak memiliki nilai balik.
Pemanggilan fungsi ini dalam program adalah :
nama_fungsi (argumen);
Program berikut ini adalah contoh fungsi yang tidak memiliki nilai balik serta cara
pemanggilan fungsi tersebut dalam program.
Contoh 1 :
cetak_hasil.m
script3.m
Contoh 2 :
input_data.m
cetak_volume.m
function cetak_hasil(v);
% fungsi mencetak volume di layar
fprintf('Volume Kerucut adalah : %.2f\n',v)
% Skrip untuk menghitung volume kerucut
% Skrip akan meminta user untuk memasukkan jari-jari, alas
% dan tinggi kerucut
radius = input('Masukkan jari-jari alas : ');
height = input('Masukkan tinggi : ');
% panggil fungsi vol_kerucut()
v = (pi/3) * radius * radius * height;
cetak_hasil(v);
function [radius,height] = input_data()
%fungsi memasukkan radius dan tinggi
radius = input('Masukkan jari-jari alas : ');
height = input('Masukkan tinggi : ');
function cetak_volume(v);
% fungsi mencetak volume di layar
fprintf('Volume Kerucut adalah : %.2f\n',v)
VII Fungsi Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
34
script4.m
7.4 Fungsi Rekursif
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Proses pemanggilan
akan berhenti sampai tercapai titik tertentu yang disebut dengan sentinal point. Contoh
dari fungsi yang bersifat rekursif ditemui dalam perhitungan nilai faktorial dari sebuah
bilangan bulat.
-Faktorial(3) = 3. 2. 1 = 6
-Faktorial(4) = 4 . 3 . 2 . 1 = 24
atau
Faktorial(4) = 4 . Faktorial (3) = 4. 6 = 24
Atau secara umum bisa dinyatakan dengan
Faktorial (n) = n . Faktorial (n-1) ; untuk n > 1
= 1 ; untuk n <= 1
Contoh : faktorial.m
function f=faktorial(n)
if n>1
f=n*faktorial(n-1);
else
f=1;
end
hitung_faktorial.m
hasil=faktorial(5);
disp(num2str(hasil));
% Skrip untuk menghitung volume kerucut
% Skrip akan meminta user untuk memasukkan jari-jari alas
% dan tinggi kerucut
% *******************************************************
[radius height] = input_data(); %panggil fungsi input_data
v = vol_kerucut(radius,height); % panggil fungsi vol_kerucut()
cetak_volume(v); %panggil fungsi cetak_volume
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
35
MATLAB menyediakan beberapa fungsi built-in untuk menampilkan grafik baik
grafik 2 dimensi maupun grafik 3 dimensi.
8.1 Grafik 2 Dimensi
Fungsi dasar yang dipakai untuk menampilkan grafik 2 dimensi adalah fungsi plot.
Sebagai contoh kita akan membuat grafik dari fungsi :
22;1 2
xx
xy
Program dari fungsi tersebut dinyatakan dalam contoh 1.
Contoh 1 :
% Grafik dari fungsi y = x/(1+x^2) he he he---- %--------------------------------- x = -2:.1:2; y = x./(1+x.^2); plot(x,y,'r') title('Grafik y = x/(1+x^2)') xlabel('x') ylabel('y') grid
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.1:
GGGrrraaafffiiikkk
Bab VIII
Gambar 8.1 Hasil Eksekusi program contoh 1
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
36
8.1.1 Label grafik
MATLAB menyediakan beberapa fungsi untuk melengkapi label pada grafik
seperti tampak dalam tabel 8.1.
Fungsi Keterangan
title (s) Judul grafik
xlabel(s) Label sumbu x
ylabel(s) Label sumbu y
text(x,y,s) Menampilkan text s pada koordinat x,y
gtext(s) Menempatkan text s pada tempat tertentu, sambil menunggu
user menekan tombol keyboard atau mouse
8.1.2 Pengaturan Sumbu
Untuk mengatur tampilan sumbu koordinat maka MATLAB menyediakan
beberapa fungsi seperti tabel 8.2 :
Fungsi Keterangan
axis([xmin xmax ymin ymax]) Mengatur panjang sumbu x dan sumbu y
axis auto Mengatur sumbu ke skala otomatis
axis tight Mengatur sumbu menyesuaikan dengan data
axis ij Sumbu dalam mode matrix, sumbu y dibalik
axis xy Sumbu dalam keadaan default yaitu Cartesius
axis square Sumbu persegi
axis normal Sumbu pas dengan window
axis off Sumbu dinonaktifkan
axis on Sumbu diaktifkan
Grid Menampilkan atau menghilangkan grid grafik
xlim([xmin xmax]) Mengatur panjang sumbu x
ylim([ymin ymax]) Mengatur panjang sumbu y
8.1.3 Pengaturan bentuk garis, simbol plot, dan warna
Untuk mengatur bentuk garis, simbol plot, dan warna dari kurva pada grafik,
MATLAB menyediakan beberapa fungsi seperti tabel 8.3:
Tabel 8.1 Label grafik
Tabel 8.2 Fungsi Pengaturan sumbu
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
37
Warna Simbol plot Bentuk Garis
Lambang Warna Lambang Keterangan Lambang Keterangan
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- dashed
m magenta * star
y yellow s square
k black d diamond
w white v triangle(down)
^ triangle(up)
< triangle(left)
> triangle(right)
p pentagram
h hexagram
8.1.4 Multi Plot : Multi Figure Window
Untuk menampilkan beberapa kurva dalam figure window yang berbeda-beda
MATLAB menyediakan sebuah fungsi yaitu : figure. Dengan fungsi ini kita bisa
menampilkan banyak grafik dan masing-masing grafik ditampilkan dalam figure window
yang berbeda-beda. Program dalam contoh 2 berikut ini akan menghasilkan 2 figure
window yang berisi grafik masing-masing.
Contoh 2 :
x = 0: pi/100: pi; % x range between 0 to pi, interval pi/100 y = cos(x); %first function to plot z = sin(x); %second function to plot figure(1); % create figure window 1 plot(x,y); % plot (x,y) in window 1 figure(2); % create figure window 2 plot(x,z); % plot (x,z) in window 2 figure(1); % swap back to window 1 ylabel('y'); % set the y-axis label on window 1 figure(2); % swap back to window 2 ylabel('z'); % set the y-axis label on window 2
Jika program tersebut dieksekusi maka hasilnya adalah seperti tampak dalam gambar 8. 2.
Tampak bahwa hasilnya adalah berupa 2 figure window yaitu figure 1 dan figure 2.
Tabel 8.3 Fungsi Pengaturan warna, bentuk garis, dan simbol plot
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
38
8.1.4 Multi Plot : subplot
Untuk menampilkan beberapa kurva akan tetapi masih dalam satu figure window
maka MATLAB menyediakan fungsi yaitu : subplot. Dengan fungsi ini kita bisa
menampilkan banyak grafik dalam figure window yang sama. Adapun bentuk umum dari
fungsi subplot adalah :
subplot(m,n,p)
Dimana, fungsi ini berarti kita membagi figure window menjadi m buah baris dan n buah
kolom. Sementara p menyatakan nomer urut indeks dari grafik yang akan ditampilkan.
Program contoh 3 dan 4 berikut ini akan memperlihatkan tentang pemakaian subplot.
Contoh 3 :
%Program grafik dengan subplot %------------------------------------------------ %sb x dari -2 sampai 2, dibagi menjadi 10 titik x = linspace(-2,2,10); y = x./(1+x.^2); subplot(2,1,1) plot(x,y,'red') %warna kurva merah title('Grafik 1, sumbu x dibagi menjadi 10 titik'); xlabel('x') ylabel('y') %sb y dari -2 sampai 2, dibagi menjadi 100 titik x = linspace(-2,2,100); y = x./(1+x.^2); subplot(2,1,2) plot(x,y,'blue') %warna kurva biru title('Grafik 2, sumbu x dibagi menjadi 100 titik'); xlabel('x') ylabel('y')
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.3:
Gambar 8.2 Hasil eksekusi program contoh 2: multi figure window
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
39
Contoh 4 :
k = 0; for n=1:3:10 n10 = 10*n; x = linspace(-2,2,n10); y = x./(1+x.^2); k = k+1; subplot(2,2,k) plot(x,y,'r') title(sprintf('Graph %g. Plot based upon n = %g points.' ... , k, n10)) xlabel('x') ylabel('y') axis([-2,2,-.8,.8]) grid pause(5); %jeda 5 detik end
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.4:
Gambar 8.2 Hasil Eksekusi program contoh 3 (subplot)
Gambar 8.3 Hasil Eksekusi program contoh 3 : subplot
Gambar 8.4 Hasil Eksekusi program contoh 4 : subplot
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
40
8.1.4 Multi Plot dalam satu grafik yang sama
Untuk menampilkan beberapa kurva akan tetapi masih dalam satu grafik dan satu
figure window yang sama maka MATLAB menyediakan sebuah perintah (command)
yaitu : hold on. Dengan memberikan perintah ini kita bisa menampilkan banyak kurva
dalam sebuah grafik yang sama. Program contoh 5 berikut ini akan memperlihatkan
tentang pemakaian hold on.
Contoh 5 :
x=0:pi/100:pi; y = cos(x); z = sin(x); figure(1); % buat figure window 1 hold off % hapus plot lama dalam figure window 1 plot(x,y, '-'); % buat plot pertama hold on % perintah plot tambahan plot(x,z, '--'); % tambahkan plot ke-dua, dengan bentuk kurva berbeda legend('cos', 'sin');
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.5:
8.2 Grafik 3 Dimensi
Fungsi dasar yang dipakai untuk menampilkan grafik 3 dimensi adalah fungsi
plot3. Bentuk umum dari fungsi plot3 adalah :
plot3(x,y,z)
dimana, x,y,dan z adalah vektor dari koordinat x, y, dan z. Sebagai contoh kita akan
membuat grafik dari fungsi :
pizzex z 100;)sin(02.0
Gambar 8.5 Hasil Eksekusi program contoh 5 : hold on
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
41
pizzey z 100;)cos(02.0
Program dari fungsi tersebut dinyatakan dalam contoh 6 berikut ini :
z = 0 : pi/50 : 10*pi; x = exp(-0.02*z) .* sin(z); y = exp(-0.02*z) .* cos(z); plot3( x, y, z); xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis');
Hasil eksekusi dari program contoh 6 dapat dilihat dalam gambar 8.6.
8.2.1 Plot Permukaan Mesh : mesh (x,y,z)
Untuk membuat plot grafik dari fungsi f(x,y) yang menyatakan sebuah bidang atau
permukaan maka MATLAB menyediakan fungsi yaitu : mesh. Adapun bentuk umum dari
fungsi mesh adalah :
mesh(x,y,z)
Andaikan kita ingin membuat plot grafik dari sebuah fungsi :
25),( xyyxf
pada range : 5044 ydanx maka program komputer untuk menampilkan plot
grafik dari fungsi tersebut dapat dilihat dalam contoh 7.
Contoh 7 :
step = 1; x = -3:step:3; y = 0:step:5; [X,Y] = meshgrid(x,y); Z = 5*Y - X .^ 2;
Gambar 8.6 Hasil Eksekusi program contoh 6 : plot3(x,y,z)
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
42
mesh(X, Y, Z); %set(gca,'fontsize', 24); xlabel('x'); ylabel('y');
Hasil eksekusi dari program contoh 7 dapat dilihat dalam gambar 8.7.
Dari gambar 8.7 tampak bahwa didapatkan plot permukaan dari fungsi menyerupai jaring-
jaring atau rangka kawat.
8.2.2 Plot Permukaan Mesh : surf (x,y,z)
Untuk mem-plot grafik dari fungsi f(x,y) yang menyatakan sebuah bidang atau
permukaan maka MATLAB juga menyediakan fungsi lain yaitu : surf. Adapun bentuk
umum dari fungsi mesh adalah :
surf(x,y,z)
Sebagai contoh andaikan kita ingin membuat plot grafik dari fungsi :
25),( xyyxf
pada range : 5044 ydanx maka program komputer untuk menampilkan plot
grafik dari fungsi tersebut dapat dilihat dalam contoh 8.
Contoh 8 :
step = 1; x = -3:step:3; y = 0:step:5; [X,Y] = meshgrid(x,y); Z = 5*Y - X .^ 2; surf(X, Y, Z); %set(gca,'fontsize', 24); xlabel('x'); ylabel('y');
Gambar 8.7 Hasil Eksekusi program contoh 7 : mesh(x,y,z)
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
43
Hasil eksekusi dari program contoh 8 dapat dilihat dalam gambar 8.8.
Dari gambar 8.7 kita bisa melihat bahwa plot permukaan yang dihasilkan sudah tertutup
dengan ”selimut”. Coba bandingkan dengan gambar 8.6 dimana permukaan yang
dihasilkan hanya berupa rangka yang masih bolong-bolong. Sebenarnya kita bisa
memperhalus permukaan (selimut) yang dihasilkan dari fungsi surf() yaitu dengan jalan
menambahkan shading mode yaitu : shading plat atau shading interp. Cobalah tambahkan
mode tersebut pada program contoh 7 dan lihat hasilnya di gambar 8.8 dan 8.9
surf(x,y,z); atau surf(x,y,z)
shading flat; shading interp;
Gambar 8.7 Hasil Eksekusi program contoh 8 : surf(x,y,z)
Gambar 8.8 Hasil Eksekusi program : shading flat
VII Grafik Pemrograman Komputer dengan Matlab
© iga widagda , lab. fisika komputasi, unud
44
Gambar 8.9 Hasil Eksekusi program : shading interp
Lampiran 1 Pemrograman Komputer dengan Java
46
LLLaaammmpppiiirrraaannn
1.Fungsi Matematika
Fungsi Keterangan
abs(x) nilai absolut dari x atau |x|
sign(x) fungsi “signum”,bernilai +1 jika x positif, -1 jika x negati, 0 jika x nol
sqrt(x) akar kuadrat dari x
exp(x) pangkat natural dari x, yaitu ex
log(x) logaritma natural dari x, yaitu ln x
log10(x) logaritma basis 10 dari x, yaitu log10 x
log2(x) logaritma basis 2 dari x, yaitu log2 x
sin(x) sinus dari x (x dalam satuan radian)
cos(x) cosinus dari x (x dalam satuan radian)
tan(x) tangent dari x (x dalam satuan radian)
cot(x) cotangent dari x (x dalam satuan radian)
sec(x) secant dari x (x dalam satuan radian)
csc(x) cosecant dari x (x dalam satuan radian)
asin(x) arcus sinus dari x (x dalam satuan radian)
acos(x) arcus cosinus dari x (x dalam satuan radian)
atan(x) arcus tangent dari x (x dalam satuan radian)
acot(x) arcus cotangent dari x (x dalam satuan radian)
asec(x) arcus secant dari x (x dalam satuan radian)
acsc(x) arcus cosecant dari x (x dalam satuan radian)
sinh(x) sinus hiperbolic dari x (x dalam satuan radian)
cos(hx) cosinus hiperbolic dari x (x dalam satuan radian)
tanh(x) tangent hiperbolic dari x (x dalam satuan radian)
coth(x) cotangent hiperbolic dari x (x dalam satuan radian)
sech(x) secant hiperbolic dari x (x dalam satuan radian)
csch(x) cosecant hiperbolic dari x (x dalam satuan radian)
asinh(x) arcus sinus hiperbolic dari x (x dalam satuan radian)
acos(hx) arcus cosinus hiperbolic dari x (x dalam satuan radian)
atanh(x) arcus tangent hiperbolic dari x (x dalam satuan radian)
acoth(x) arcus cotangent hiperbolic dari x (x dalam satuan radian)
asech(x) arcus secant hiperbolic dari x (x dalam satuan radian)
acsch(x) arcus cosecant hiperbolic dari x (x dalam satuan radian)
round(x) pembulatan x ke bilangan bulat terdekat
floor(x) pembulatan ke bawah dari x ke bilangan bulat terdekat
Lampiran 1 Pemrograman Komputer dengan Java
47
ceil(x) pembulatan ke atas dari x ke bilangan bulat terdekat
fix(x) pembulatan ke bawah untuk x positif, dan ke atas untuk x negatif
rem(x,y) sisa pembagian dari x/y
real(z) komponen riil dari bilangan kompleks z
imag(z) komponen imajiner dari bilangan kompleks z
abs(z) magnitude dari bilangan kompleks z
angle(z) argumen dari bilangan kompleks z
conj(z) konjugasi dari bilangan kompleks z
2.Fungsi Matrix / Vektor
Fungsi Keterangan
det(A) Menentukan determinan dari matrik A
diag(A) Menentukan elemen-elemen diagonal dari matrik A
diag(x) Buat matrik diagonal dengan x sebagai diagonal utama
diff(x) Selisih dari x, xi+1-xi
eig(A) Menentukan nilai eigen dari matrik A
eye(N) Membuat matrik identitas dengan ukuran NxN
find(x) Mencari index dimana elemen dari vektor x bernilai true
isempty(x) Menghasilkan true jika matrik/vektor kosong
length(x) Menentukan jumlah elemen dari vektor x
max(x) Menentukan nilai maksimum dari elemen-elemen vektor x
mean(x) Menentukan nilai mean dari elemen-elemen dalam vektor x
min(x) Menentukan nilai minimum dari elemen-elemen vektor x
norm(A) Norm matrix dari A
ones(n,m) Membuat matrix nxm dimana semua elemennya bernilai 1
prod(x) Hasil kali dari elemen-elemen vektor x
rand(n,m) Membuat matrik nxm dimana semua elemennya bilangan acak
repmat(A,n,m) Membuat matrik baru berukuran nxm dari matrik A
size(A) Menentukan jumlah baris dan kolom dari matrik A
std(x) Menentukan deviasi standar dari elemen-elemen vektor x
sort(x) Mengurutkan elemen-elemen dari vektor x dari kecil ke besar
sum(x) Menjumlahkan elemen-elemen dari vektor x
trace(A) Merunut matrik A
zeros(n,m) Membuat matrik berukuran nxm dimana semua elemenya bernilai 0
3.Fungsi String
Fungsi Keterangan
char(x) Mengubah bilangan bulat x menjadi string
Lampiran 1 Pemrograman Komputer dengan Java
48
double(s) Mengubah string s menjadi array bilangan bulat
findstr(s1,s2) Menentukan string yang lebih pendek diantara s1 dan s2
lower(s) Mengubah string s menjadi huruf kecil
strcat(s1,s2) Menggabungkan string s1 dan s2
strcmp(s1,s2) Menghasilkan true jika string s1 dan s2 identik atau sama
strtrim(s) Menghapus spasi pada string s
sprintf(...) Sama dengan fprintf tapi hasilnya berupa string
upper(s) Mengubah string s menjadi huruf besas