Pemrograman Komputer dengan Matlab
Bab I
Pendahuluan
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 utnuk 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.
1
Pemrograman Komputer dengan Matlab
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 .
Editor Command Window
Gambar 1. 1 Tampilan Command Window
2
Pemrograman Komputer dengan Matlab
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)
Gambar 1. 2 Tampilan grafik dari program contoh 5 1.4 Pemograman dengan script M-File 3
Pemrograman Komputer dengan Matlab
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.
Gambar 1. 3 Tampilan editor M-File 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');
4
Pemrograman Komputer dengan Matlab
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
5
Pemrograman Komputer dengan Matlab
Tipe Data dan Variabel
Bab II
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 : Java) seperti tercantum dalam tabel 2.1 berikut ini :
Tipe int short long byte float double char boolean
Ukuran 4 byte 2 byte 8 byte 1 byte 4 byte 8 byte 2 byte true or false
Tabel 2.1 Tipe data dasar Matlab mempunyai beberapa tipe data yang dinyatakan dengan class. Adapun tipe data tersebut seperti diperlihatkan dalam tabel 2.2.
Tipe int8 int16 int32 int64 single double char boolean
Ukuran 1 byte 2 byte 4 byte 8 byte 4 byte 8 byte 2 byte true or false
Tabel 2.2 Tipe data dalam Matlab 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
6
Pemrograman Komputer dengan Matlab
dipakai untuk menyimpan karakter tunggal atau sekumpulan karakter (string). Tipe data boolean dipakai untuk menyimpan nilai true atau false.
2.2 Vari abel 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. variabel bisa terdiri dari huruf, angka, atau under score ( _ ) 2. variabel harus diawali oleh huruf contoh yang benar : nama_siswa Latihan1 nilai1
contoh yang salah : nama siswa (mengandung spasi) 1Latihan
(diawali oleh angka)
3. Tidak boleh memakai kata kunci (key word) seperti diperlihatkan tabel 2.3 :
break
case
catch
continue
else
elseif
for return
function switch
global try
if while
otherwise
persistant
Tabel 2.3 Kata kunci (key words) 2.3 Mendeklarasi kan 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 ;
7
Pemrograman Komputer dengan Matlab
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 K onstanta 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 pi i j inf NaN
Nilai 3,14159 1 1 Tak berhingga , Not-a-Number, misal hasil dari :
0 0
Tabel 2.4 Konstanta dalam Matlab 2.5 Masukan dan K eluaran 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 format didahului oleh : %. Adapun format tersebut adalah : 8
Pemrograman Komputer dengan Matlab
Format %d %f %c %s
Keterangan Bulat (integer) Pecahan (float) Karakter tunggal String (kumpulan karakter) Tabel 2.5 Format tampilan keluaran
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);
Jika program tersebut dieksekusi maka hasilnya adalah : Hasil penjumlahan adalah : 15
2.5.2 Pernyataan Masukan (Input) : Pernyataan masukan berfungsi untuk memasukkan data lewat keyboard. Format pernyataan masukan adalah : nama_variabel = input (’Text anda’);
Pernyataan tersebut akan meminta masukan dari keyboard dan diikuti pindah baris baru. Contoh program : Contoh 1. jari = input('Masukkan jari-jari : '); fprintf('jari-jari : %d\n',jari);
Jika program tersebut dieksekusi maka hasilnya adalah : Masukkan jari-jari : 10
9
Pemrograman Komputer dengan Matlab
Jari-jari :10
Contoh 2 (Menghitung Luas Lingkaran) : r = input('Masukkan jari-jari : '); luas = pi * (r^2); fprintf('Lingkaran dengan jari-jari : %.2f,',r); fprintf('luasnya adalah %.2f\n',luas);
Jika program tersebut dieksekusi maka hasilnya adalah : Masukkan jari-jari : 3 Lingkaran dengan jari-jari : 3.00, luasnya adalah 28.27
Soal Latihan : 1. Buatlah program komputer untuk menghitung gaji total karyawan dimana rinciannya adalah : gaji total = gaji pokok + tunjangan + upah lembur 2. Buatlah program untuk menghitung panjang sisi miring sebuah segitiga siku-siku. Dimana rumusnya adalah : c2 = a2 + b2 3. Buatlah program untuk menghitung akar dari persamaan kuadrat : Ax2 + Bx + C dengan memakai rumus ABC :
x1
B B 2 4. A.C 2. A
x2
B B 2 4. A.C 2. A
10
Pemrograman Komputer dengan Matlab
Bab III
Operator
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
Tabel 3.1. Operator Aritmatika Contoh : a=5; b=10; c=a+b; fprintf('c = %d\n',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; c=8;
11
Pemrograman Komputer dengan Matlab
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
Tabel 3.2 Operator logika 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)
Tabel 3.3 Tabel kebenaran operator AND ( &&) 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.4 Tabel kebenaran operator OR ( || ) Contoh : a = true; b = false;
12
Pemrograman Komputer dengan Matlab
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
Tabel 3.5. Operator Relasi 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
FALSE
C >= B
TRUE
B < C-A
FALSE
C >= B*A
FALSE
A == C
FALSE
Tabel 3.6 Contoh operasi dengan operator relasi Contoh : a = 4; b = 5; c = a > b;
13
Pemrograman Komputer dengan Matlab
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
3.4 KOMENTAR (Comment) Komentar merupakan pernyataan yang tidak akan ikut dieksekusi saat program dieksekusi. Komentar biasanya dipakai untuk memberikan keterangan atau penjelasan terhadap suatu kode dalam program. Dalam Matlab komentar biasanya ditulis dengan : % komentar anda
Contoh : %Program menghitung luas lingkaran %dengan jari-jari r r = input('Masukkan jari-jari : '); luas = pi * (r^2); fprintf('Lingkaran dengan jari-jari : %.2f,',r); fprintf('luasnya adalah %.2f\n',luas);
14
Pemrograman Komputer dengan Matlab
Bab IV
Pernyataan Pengambilan Keputusan
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('a adalah 5'); end
Jika program diatas dieksekusi maka hasilnya adalah : a adalah 5
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'); end disp('Terima Kasih');
Jika program diatas dieksekusi maka hasilnya adalah : Masukkan nilai ujian : 70 Masukkan prosentase absen : 80 Anda Lulus Terima Kasih Masukkan nilai ujian : 70 Masukkan prosentase absen : 60 Terima Kasih
4.2 Pernyataan if- else
15
Pemrograman Komputer dengan Matlab
Format dari pernyataan pengambilan keputusan i f …el se 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 :
16
Pemrograman Komputer dengan Matlab
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
2. SCTV
6. TPI
3. Indosiar
7. MetroTV
4. Lativi
8. TVRI
9. Bali TV
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 -el se bersaran g 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
17
Pemrograman Komputer dengan Matlab
Contoh kasus dari pemakaian if-else bersarang adalah pada fungsi matematika y = f(x) yang memenuhi persamaan berikut ini :
y 1, untuk x 1 y x 2 , untuk 1 x 2
y 4, untuk x 2 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
18
Pemrograman Komputer dengan Matlab
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 el sei f 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 :
y 1, untuk x 1 y x 2 , untuk 1 x 2
y 4, untuk x 2 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 y = 1.00
19
Pemrograman Komputer dengan Matlab
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 20
Pemrograman Komputer dengan Matlab
kedua bilangan tersebut dengan pilihan sebagai berikut : 1. Penjumlahan 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.
21
Pemrograman Komputer dengan Matlab
Bab V
PERNYATAAN PENGULANGAN (LOOPING)
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 menjadi :
for maka kode program diatas akan dapat diringkas
%Program looping dengan for for i=1:1:5 disp('Hello Matlab'); end
5.1 Pengulangan f or 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
22
Pemrograman Komputer dengan Matlab
end
Pernyataa 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 i=1:1:5 disp(i); end
Dari program diatas maka dalam kalang for mengandung pernyataan yaitu :
for i = 1:1:5
yang berarti variabel i mempunyai rentang atau range dari 1 sampai 5. Nilai awal i adalah 1 (i =1) dan nilai i 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 f or 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
23
Pemrograman Komputer dengan Matlab
Contoh 1 : %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 : 12345 12345 12345 12345 12345 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 :
24
Pemrograman Komputer dengan Matlab
n
i i 1
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 12 123 1234 12345 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
25
Pemrograman Komputer dengan Matlab
2 3 4 5
Contoh 2 : %Program looping while limit = 20; 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 = 120
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
26
Pemrograman Komputer dengan Matlab
Bab VI
ARRAY
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. 5.1 Array 1 Di mensi (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)
27
Pemrograman Komputer dengan Matlab
A=[1 2 3 4 5]; for i = 1:5 disp(A(i)); end
Jika program tersebut dieksekusi maka hasilnya adalah : 1 2 3 4 5
Contoh 2 : %Program array 1 dimensi (vektor) %Memasukkan elemen vektor for i = 1:5 A(i)= input(strcat('A[',int2str(i),']= ')); end %menampilkan elemen vektor disp('Elemen vektor adalah : '); for i = 1:5 disp(strcat('A[',int2str(i),']=',int2str(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
Latihan : 1.Buatlah program yang menghitung nilai rata-rata dari 5 buah bilangan. Petunjuk : -masukkan nilai dari 5 buah bilangan tersebut (gunakan vektor) -hitung jumlahnya -hitung rata-rata -tampilkan nilai rata-rata
5.2. Array 2 dimensi (Matrik)
28
Pemrograman Komputer dengan Matlab
Array 2 dimensi adalah array yang memiliki dua dimensi yang dinyatakan dengan baris dan kolom Misal :
a12 a A = 11 a 21 a 22 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 : 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 :
4 6 A= 3 8 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[',int2str(i),int2str(j),']= ')); end end %menampilkan elemen vektor disp('Elemen vektor adalah : '); for i = 1:2 for j=1:2 disp(strcat('A[',int2str(i),int2str(j),']=',int2str(A(i,j)))); end end
Hasil Eksekusi dari program tersebut adalah : A[11]=4 A[12]=6 A[21]=3
29
Pemrograman Komputer dengan Matlab
A[22]=8 Elemen vektor adalah : A[11]=4 A[12]=6 A[21]=3 A[22]=8
Latihan : 1.Buatlah sebuah program yang dapat dipakai untuk memasukkan array 2 dimensi dengan jumlah baris 3 dan jumlah kolom 3 (matrik 3 X 3). Kemudian tampilkan elemenelemennya Petunjuk : - masukkan nilai masing-masing elemen matrik - tampilkan masing-masing elemennya 2.Tulislah program komputer untuk menghitung hasil penjumlahan 2 buah matrik 2 dimensi. 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. 3.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]
30
Pemrograman Komputer dengan Matlab
Bab VII
Fungsi (function)
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
function output_argumen = nama_fungsi(input_argumen) % komentar tentang fungsi Statemen fungsi, termasuk memberi nilai output_argumen
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);
31
Pemrograman Komputer dengan Matlab
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 function vol = vol_kerucut(radius, height) % Calculates the volume of a cone vol = (pi/3) * radius * radius * height;
script2.m
% 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)
7.2 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 nama_fungsi(input_argumen) % komentar tentang fungsi Statemen fungsi
32
Pemrograman Komputer dengan Matlab
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 function cetak_hasil(v); % fungsi mencetak volume di layar fprintf('Volume Kerucut adalah : %.2f\n',v)
script3.m
% 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);
Contoh 2 : input_data.m function [radius,height] = input_data() %fungsi memasukkan radius dan tinggi radius = input('Masukkan jari-jari alas : '); height = input('Masukkan tinggi : ');
cetak_volume.m function cetak_volume(v); % fungsi mencetak volume di layar fprintf('Volume Kerucut adalah : %.2f\n',v)
33
Pemrograman Komputer dengan Matlab
script4.m
% 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
7.3 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));
34
Pemrograman Komputer dengan Matlab
Bab Grafik VIII 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 :
y
x ; 2 x 2 1 x2
Program dari fungsi tersebut dinyatakan dalam contoh 1. Contoh 1 : % Grafik dari fungsi y = x/(1+x^2) %--------------------------------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:
Gambar 8.1 Hasil Eksekusi program contoh 1 35
Pemrograman Komputer dengan Matlab
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 Tabel 8.1 Label grafik
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 Tabel 8.2 Fungsi Pengaturan sumbu
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: 36
Pemrograman Komputer dengan Matlab
Warna Lambang Warna
Simbol plot Lambang
Keterangan
Bentuk Garis 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
Tabel 8.3 Fungsi Pengaturan warna, bentuk garis, dan simbol plot
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; y = cos(x); z = sin(x); 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
37
Pemrograman Komputer dengan Matlab
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.
Gambar 8.2 Hasil eksekusi program contoh 2: multi figure window
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')
38
Pemrograman Komputer dengan Matlab
ylabel('y')
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.3:
Gambar 8.3 Hasil Eksekusi program contoh 3 : subplot 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:
39
Pemrograman Komputer dengan Matlab
Gambar 8.4 Hasil Eksekusi program contoh 4 : subplot 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:
40
Pemrograman Komputer dengan Matlab
Gambar 8.5 Hasil Eksekusi program contoh 5 : hold on 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 :
x e0.02z sin( z ) ; 0 z 10 pi y e0.02z cos( z ) ; 0 z 10 pi 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.
41
Pemrograman Komputer dengan Matlab
Gambar 8.6 Hasil Eksekusi program contoh 6 : plot3(x,y,z) 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 :
f ( x, y) 5 y x 2 pada range : 4 x 4 dan 0 y 5 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; mesh(X, Y, Z); %set(gca,'fontsize', 24); xlabel('x'); ylabel('y');
Hasil eksekusi dari program contoh 7 dapat dilihat dalam gambar 8.7.
42
Pemrograman Komputer dengan Matlab
Gambar 8.7 Hasil Eksekusi program contoh 7 : mesh(x,y,z) Dari gambar 8.7 tampak bahwa didapatkan plot permukaan dari fungsi menyerupai jaringjaring 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 :
f ( x, y) 5 y x 2 pada range : 4 x 4 dan 0 y 5 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');
Hasil eksekusi dari program contoh 8 dapat dilihat dalam gambar 8.8.
43
Pemrograman Komputer dengan Matlab
Gambar 8.7 Hasil Eksekusi program contoh 7 : mesh(x,y,z) 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); shading flat;
atau
surf(x,y,z) shading interp;
Gambar 8.8 Hasil Eksekusi program : shading flat
44
Pemrograman Komputer dengan Matlab
Gambar 8.9 Hasil Eksekusi program : shading interp
45
Pemrograman Komputer dengan Matlab
L Laam mppiirraann 1.Fungsi Matematika Fungsi
Keterangan
abs(x) sign(x) sqrt(x) exp(x) log(x) log10(x) log2(x) sin(x)
nilai absolut dari x atau |x| fungsi “signum”,bernilai +1 jika x positif, -1 jika x negati, 0 jika x nol akar kuadrat dari x pangkat natural dari x, yaitu ex logaritma natural dari x, yaitu ln x logaritma basis 10 dari x, yaitu log10 x logaritma basis 2 dari x, yaitu log2 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 46
Pemrograman Komputer dengan Matlab
floor(x) ceil(x) fix(x) rem(x,y) real(z) imag(z) abs(z) angle(z) conj(z)
pembulatan ke bawah dari x ke bilangan bulat terdekat pembulatan ke atas dari x ke bilangan bulat terdekat pembulatan ke bawah untuk x positif, dan ke atas untuk x negatif sisa pembagian dari x/y komponen riil dari bilangan kompleks z komponen imajiner dari bilangan kompleks z magnitude dari bilangan kompleks z argumen dari bilangan kompleks z konjugasi dari bilangan kompleks z
2.Fungsi Matrix / Vektor Fungsi
Keterangan
det(A) diag(A) diag(x) diff(x) eig(A) eye(N) find(x) isempty(x)
Menentukan determinan dari matrik A Menentukan elemen-elemen diagonal dari matrik A Buat matrik diagonal dengan x sebagai diagonal utama Selisih dari x, xi+1-xi Menentukan nilai eigen dari matrik A Membuat matrik identitas dengan ukuran NxN Mencari index dimana elemen dari vektor x bernilai true 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
47
Pemrograman Komputer dengan Matlab
3.Fungsi String Fungsi
Keterangan
char(x) double(s) findstr(s1,s2) lower(s) strcat(s1,s2) strcmp(s1,s2) strtrim(s) sprintf(...)
Mengubah bilangan bulat x menjadi string Mengubah string s menjadi array bilangan bulat Menentukan string yang lebih pendek diantara s1 dan s2 Mengubah string s menjadi huruf kecil Menggabungkan string s1 dan s2 Menghasilkan true jika string s1 dan s2 identik atau sama Menghapus spasi pada string s Sama dengan fprintf tapi hasilnya berupa string
upper(s)
Mengubah string s menjadi huruf besas
48