Bab 10
operasi perbandingan adalah sebuah obyek boolean. Apabila ekspresi yang diuji pada suatu operasi perbandingan mempunyai nilai logika benar maka outputnya adalah obyek boolean T (true, benar) namun jika ekpresi yang diuji mempunyai nilai logika salah maka outputnya adalah obyek boolean F (false, salah).
Berikut ini beberapa contoh operasi perbandingan.
-->x = 10; y = 10; z = 20;
-->x ~= y ans = F -->z > y ans =
T
-->A = [1 3 5]; B = [1 3 9] ; -->B >= A
ans = T T T
-->I = eye(3,3) I =
1. 0. 0.
0. 1. 0.
0. 0. 1.
-->O = ones(3,3) O =
1. 1. 1.
1. 1. 1.
1. 1. 1.
-->I >= O ans = T F F F T F F F T
-->R = rand(2,2) R =
0.7592942 0.9996990 0.1945969 0.5191445 -->l = R > 0.5
l =
T T F T
Operasi perbandingan biasanya digunakan sebagai ekspresi yang diuji dalam suatu statemen kondisional if-else atau sebagai ekspresi yang digunakan untuk mengontrol proses iterasi dalam suatu statemen perulangan while.
Berikut ini adalah contoh penggunaan operasi perbandingan yang terdapat di dalam suatu blok kondisional if-else.
-->function sgn = signum(a) --> if a > 0
--> sgn = 1;
--> elseif a < 0 --> sgn = -1;
--> else --> sgn = 0 --> end
-->endfunction -->signum(-3.45) ans =
- 1.
Penggunaan operasi perbandingan pada suatu blok perulangan while dapat dilihat pada contoh di bawah ini.
-->eps = 1;
-->while (1 + eps) > 1 --> eps = eps/2;
-->end
-->eps = eps*2 eps =
2.220D-16
Seperti yang telah dijelaskan pada Bab 4, operasi perbandingan juga digunakan dalam proses ekstraksi elemen-elemen suatu matrik atau vektor yang memenuhi suatu kondisi tertentu.
-->R R =
0.7592942 0.999699 0.1945969 0.5191445 -->Q = R(R >= 0.5)
Q =
0.7592942 0.999699 0.5191445
Operasi Logika
Suatu operasi logika digunakan untuk menentukan nilai logika yang dihasilkan oleh kombinasi logika atau (or), logika dan (and) dari dua obyek boolean, atau untuk melakukan operasi negasi (not) terhadap suatu obyek boolean. Operasi logika adalah operasi yang bersifat elemen-dengan-elemen. Obyek-obyek yang diuji dalam suatu operasi logika dapat berupa suatu ekspresi perbandingan maupun berupa suatu konstanta boolean. Tabel 10.2 adalah daftar dari operator-operator logika yang terdapat di dalam Scilab. Konstanta-konstanta boolean yang telah terpasang di dalam Scilab dapat dilihat pada Tabel 10.3.
Tabel 10.2 Operator-Operator Logika
Operator Deskripsi
& dan (and)
| atau (or)
~ negasi/bukan (not)
Tabel 10.3 Konstanta-Konstanta Boolean
Variabel Deskripsi
%t Konstanta boolean untuk benar (true)
%f Konstanta boolean untuk salah (false)
Berikut ini beberapa contoh operasi logika.
-->p = %t; q = %f;
-->r = p | q r =
T
-->x = 1; y = 2; z = 3;
-->(y > x) & (y <= z) ans =
T -->R R =
0.7592942 0.999699 0.1945969 0.5191445 -->idk = (R >= 0.2) & (R < 0.6) idk =
F F F T
Kadang dalam sebuah statemen dapat terdapat bermacam-macam tipe operator (operator matematika, operator perbandingan dan operator logika). Pada kasus seperti ini , tingkatan operasinya yang paling tinggi adalah operasi aritmatika, kemudian operasi perbandingan dan yang terakhir adalah operasi logika.
Suatu operasi logika seringkali digunakan sebagai ekspresi yang diuji dalam suatu statemen kondisional if-else atau sebagai ekspresi yang digunakan untuk mengontrol proses iterasi dalam suatu statemen perulangan while.
Berikut ini contoh operasi logika yang terdapat di dalam suatu statemen kondisional if. -->x = [2 3];
-->for k = 4:20
--> if modulo(k,2) ~= 0 & modulo(k,3) ~= 0 --> x = [x k];
--> end -->end -->x x =
2. 3. 5. 7. 11. 13. 17. 19.
Contoh ini adalah perhitungan untuk menentukan bilangan prima yang nilainya lebih kecil dari 20.
Contoh suatu operasi logika yang terdapat di dalam suatu statemen perulangan while adalah sebagai berikut.
-->eps = 1;
-->while ~((1 + eps) == 1) --> eps = eps/2;
-->end
-->eps = eps*2 eps =
2.220D-16
Suatu operasi logika juga dapat diterapkan terhadap obyek-obyek numerik. Pada kasus ini, angka nol akan dianggap sebagai konstanta boolean salah (F) dan sembarang angka lainnya selain angka nol akan dianggap sebagai konstanta boolean benar (T). Berikut ini contoh operasi logika terhadap obyek-obyek numerik.
-->P = [0 0.5 2];
-->Q = [0 1 0];
-->P | Q ans =
F T T
Fungsi-Fungsi Logika
Selain menyediakan beberapa operator logika, di dalam Scilab juga terpasang dua fungsi logika yaitu and dan or. Kedua fungsi tersebut dapat digunakan untuk melakukan operasi logika dan serta logika atau terhadap elemen-elemen suatu matrik/vektor boolean.
And
Fungsi and adalah fungsi untuk operasi logika dan. Berikut ini sintak dari fungsi and: B = and(A) atau B = and(A,'*')
B = and(A,1) atau B = and(A,'r') B = and(A,2) atau B = and(A,'c')
dimana A adalah suatu matrik boolean. Output dari fungsi and adalah konstanta boolean T jika semua elemen matrik yang diuji mempunyai nilai benar dan konstanta boolean F jika terdapat sebuah elemen matrik yang diuji yang mempunyai nilai salah.
Deskripsi ketiga macam sintaks dari fungsi logika and adalah sebagai berikut:
and(A) atau and(A,'*'): fungsi and dioperasikan terhadap semua elemen matrik.
and(A,1) atau and(A,'r'): fungsi and dioperasikan terhadap elemen-elemen pada setiap vektor kolom yang menyusun matrik A.
and(A,2) atau and(A,'c'): fungsi and dioperasikan terhadap elemen-elemen pada setiap vektor baris yang menyusun matrik A.
Berikut ini contoh penggunaan fungsi and. -->D = [%t %t %f; %t %f %f]
D = T T F T F F -->and(D) ans = F
-->and(D,1) ans = T F F
Or
Fungsi or adalah fungsi untuk logika atau. Sintak dari fungsi or adalah sebagai berikut:
B = or(A) atau B = or(A,'*') B = or(A,1) atau B = or(A,'r') B = or(A,2) atau B = or(A,'c')
dimana A adalah suatu matrik boolean. Output dari fungsi or adalah konstanta boolean T jika terdapat sebuah elemen matrik yang diuji mempunyai nilai benar dan konstanta boolean F jika semua elemen matrik yang diuji yang mempunyai nilai salah.
Deskripsi ketiga macam sintaks dari fungsi logika or adalah sebagai berikut:
or(A) atau or(A,'*'): fungsi or dioperasikan terhadap semua elemen matrik.
or(A,1) atau or(A,'r'): fungsi or dioperasikan terhadap elemen-elemen pada setiap vektor kolom yang menyusun matrik A.
or(A,2) atau or(A,'c'): fungsi or dioperasikan terhadap elemen-elemen pada setiap vektor baris yang menyusun matrik A.
Contoh penggunaan fungsi or adalah sebagai berikut.
-->D D = T T F T F F -->or(D) ans = T
Fungsi-Fungsi Pengujian
Tabel 10.4 adalah daftar dari beberapa fungsi yang dapat digunakan untuk berbagai macam operasi seperti memeriksa eksistensi sebuah variabel, menguji tipe dan nilai dari elemen-elemen matrik dan lain sebagainya. Output yang dihasilkan oleh fungsi-fungsi tersebut adalah konstanta boolean T (true, benar) atau konstanta boolean F (false, salah) tergantung pada hasil pengujiannya.
Tabel 10.4 Fungsi-Fungsi Pengujian
Fungsi Deskripsi
isdef("x") Untuk mendapatkan informasi mengenai eksistensi variabel x isreal(x) Untuk memeriksa apakah semua elemen dari matrik x merupakan
bilangan real
isinf(x) Untuk memeriksa apakah elemen-elemen matrik x merupakan konstanta takhingga
isnan(x) Untuk memeriksa apakah elemen-elemen matrik x merupakan konstanta takhingga
isempty(x) Untuk memeriksa apakah x merupakan matrik kosong isequal(x,y) Untuk memeriksa apakah x dan y adalah matrik yang sama isvector(x) Untuk memeriksa apakah x adalah sebuah vektor
Berikut ini ilustrasi penggunaan dari fungsi-fungsi pengujian.
-->clear -->x = 1.23;
-->P = [1, 3-4*%i];
-->A = [1 2 3; 0 4 5]
A =
1. 2. 3.
0. 4. 5.
-->ieee(2)
-->B = A.\1 B =
1. 0.5 0.3333333 Inf 0.25 0.2
-->C = B.\1 C =
1. 2. 3.
0. 4. 5.
-->isdef("x") ans =
T
-->isdef("z") ans =
F
-->isreal(P) ans =
F
-->isvector(P) ans =
T
-->isvector(A) ans =
F
-->isequal(A,C) ans =
T
-->isinf(B) ans =
F F F T F F
Informasi yang dihasilkan oleh suatu fungsi pengujian kadangkala diperlukan sebagai kondisi yang diuji di dalam sebuah statemen kondisional, seperti yang ditunjukkan pada contoh di bawah ini.
-->function a = my_abs(x) --> if isreal(x)
--> a = sign(x).*x --> else
--> a = sqrt(real(x).^2 + imag(x).^2) --> end
-->endfunction
-->X = [-1.23, 6 - 8*%i];
-->Y = my_abs(X) Y =
1.23 10.
Fungsi my_abs pada contoh ini adalah emulasi dari fungsi abs yang telah terpasang di dalam Scilab.