y = hit_taknolx y =
2.0000 -3.6000 3.0000 -0.6000 10.0000
6.6 Operator Perbandingan dan Logika
Seperti yang kita lihat pada subbab 6.5 Control Statement, kita harus bisa menuliskan kondisi dalam bahasa M
ATLAB
untuk menciptakan percabangan program ataupun loop. Untuk keperluan
ini kita mungkin harus membandingkan dua variabel sama atau tidak, lebih besar atau lebih kecilkah?, mengevaluasi apakah suatu
variabel memenuhi satu dari sejumlah syarat, dan sebagainya. Untuk membandingan dua variabel digunakan operator berikut ini:
Tabel 6. 1
= = == ~=
lebih kecil, lebih besar lebih kecil atau sama dengan, lebih besar atau
sama dengan sama dengan, tidak sama dengan
Sementara untuk mengevaluasi logika, digunakan fungsi dan operator:
Tabel 6. 2
andA,B atau A B orA,B atau A | B
xorA,B notA atau ~A
operasi logika AND antara A dan B operasi logika OR
operasi logika XOR operasi logika NOT pada A
A dan B di sini bisa berupa skalar, vektor, maupun matriks, asalkan ukuran A dan B sama.
Adapun tabel kebenaran yang digunakan pada setiap operasi logika tersebut ialah sebagai berikut:
Tabel 6. 3
A B
A B A | B
xorA,B
~A
nol nol
bukan nol bukan nol
nol bukan nol
nol bukan nol
1 1
1 1
1 1
1 1
Perlu diperhatikan bahwa operasi logika memiliki prioritas untuk dihitung lebih dahulu, kemudian diikuti operasi aritmatika, lalu
operasi perbandingan. Untuk menambah pemahaman, mari kita praktekkan contoh di
bawah ini di command window:
A = [1 2 0 -1 -2]; B = [1 0 0 0 5]; C = andA,B
C = 1 0 0 0 1
D=A|B|C D =
1 1 0 1 1 E = xor~A,B
E = 1 0 1 0 1
Sekarang, mari kita mencoba membuat fungsi untuk menentukan suatu tahun termasuk kabisat atau tidak. Jangkauan tahun yang
bisa dihitung ialah 1900 hingga 2500. Kita ketahui bahwa tahun kabisat terjadi pada tahun-tahun berkelipatan 4, kecuali tahun akhir
abad; namun untuk tahun akhir abad berkelipatan 400 termasuk kabisat pula.
Fungsi untuk mengetahui tahun kabisat atau tidak iskabisat.m
function hasil = iskabisatthn thn : merupakan masukan bilangan bulat positif
hasil = 1 jika kabisat, 0 jika tidak if thn1900 | thn2500
dispTahun yang valid: 1900 - 2500; hasil=[];
return end
if remthn,4==0 remthn,100~=0|remthn,400==0 hasil=1;
else hasil=0;
end
Pada fungsi tersebut, terdapat dua control statement “ if ”:
• if thn1900 | thn2500
Berarti jika variabel thn kurang dari 1900 ATAU lebih dari 2500, command di dalam “ if ” tersebut akan dijalankan.
•
if remthn,4==0 ... remthn,100~=0|remthn,400==0
Berarti jika variabel thn habis dibagi 4 DAN logika
remthn,100~=0|remthn,400==0
bernilai 1 true, maka command setelah “ if “ akan dijalankan.
Perlu diperhatikan bahwa logika
remthn,100~=0|remthn,400==0
akan bernilai 1 bila thn
bukan tahun abad kelipatan 100; ataupun kalau tahun abad haruslah kelipatan 400.
Sekarang kita bisa coba:
iskabisat2005, iskabisat1972 ans =
ans = 1
Fungsi ini hanya bisa mengolah masukan skalar. Lalu bagaimana kalau diinginkan masukan berupa vektor atau matriks? Kita bisa
ubah fungsinya menjadi berikut ini:
Fungsi untuk mengetahui tahun kabisat atau tidak iskabisat.m
function hasil = iskabisatthn thn : merupakan masukan bilangan bulat positif
hasil = 1 jika kabisat, 0 jika tidak if sumsumthn1900 | thn2500~=0
dispTahun yang valid: 1900 - 2500; hasil=[];
return end
hasil = remthn,4==0 ... remthn,100~=0|remthn,400==0;
Sekarang kita bisa coba untuk menentukan tahun kabisat antara 1980 hingga 1990.
iskabisat1980:1990 ans =
1 0 0 0 1 0 0 0 1 0 0
Soal Latihan
1. Buatlah program dengan M-file untuk menghitung volume dan luas permukaan balok bila diketahui:
panjang = 5, lebar = 3, tinggi = 6,5.
Beri nama program ini dengan prog_balok.m
2. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan balok dengan spesifikasi:
masukan fungsi : panjang, lebar, dan tinggi balok keluaran fungsi : volume, dan luas permukaan balok.
Beri nama fungsi ini dengan hitung_balok.m
3. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan dari suatu prisma segiempat dengan
spesifikasi: masukan fungsi : panjang dan lebar alas prisma, serta
tinggi prisma keluaran fungsi : volume, dan luas permukaan prisma
Beri nama fungsi ini dengan hitung_prisma.m
4. Buatlah suatu program untuk menampilkan segitiga Pascal. Pengguna harus memasukkan jumlah level segitiga yang ingin
ditampilkan melalui command input. Apabila pengguna menginginkan segitiga 4 level maka akan tampil keluaran:
1 1 1
1 2 1 1 3 3 1
Beri nama program ini dengan prog_pascal.m
5. Buatlah sebuah fungsi untuk menghitung jumlah hari di antara dua tanggal. Spesifikasi dari fungsi tersebut ialah:
masukan : tanggal, bulan, dan tahun awal, serta tanggal, bulan, dan tahun akhir.
keluaran : jumlah hari di antara dua tanggal tersebut.
Beri nama fungsi ini dengan hitung_hari.m. Misalkan kita ingin menghitung jumlah hari antara 2 Januari
2004 hingga 5 November 2006, maka ketikkan:
jml_hari = hitung_hari2,1,2004,5,11,2006 jml_hari =
1038
BAB 7
ANALISIS DATA
Dalam bab ini, kita akan belajar bagaimana menganalisis dan memanipulasi data mempergunakan M
ATLAB
, terutama untuk perhitungan statistik: rentang data, maksimumminimum, rata-rata,
deviasi, jumlah kumulatif, dan sebagainya. Di M
ATLAB
fungsi- fungsi statistik semacam ini telah ada dan bisa digunakan secara
fleksibel. Dalam penjelasan bab ini, x dan y kita misalkan sebagai vektor
baris ataupun kolom, dan A dan B sebagai matriks m
×n.
7.1 Maksimum dan Minimum