6
OPERASI RELASI DAN LOGIKA
6.1.
Pengendalian Program
Program yang baik, tidak harus berjalan secara berurutan, sejak awal hingga
akhir. Namun, diperlukan kreatifitas untuk merancang program yang efektif. Salah satu
teknik agar mendapatkan program yang efektif adalah dengan memanfaatkan fasilitas
pengendalian program. Beberapa fasilitas pengendalian program yang sering
digunakan
adalah
proses
pengulangan
dan
proses
percabangan.
Peristiwa
Proses
percabangan
?
Proses
pengulangan
Cabang 1
Cabang 2
Cabang 3
(b)
(a)
11
43
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
6.2.
hubungan relasional dan hubungan logika, MATLAB akan memproses semua bilangan
yang bukan nol sebagai kondisi BENAR dan bilangan nol sebagai kondisi SALAH.
Sedangkan hasil atau output dari kedua proses ini adalah berharga 1 untuk BENAR
dan berharga 0 untuk SALAH.
Beberapa operasi hubungan relasional ditampilkan pada Tabel 6.1 di bawah ini:
Tabel 6.1 Operator Hubungan Relasional
Operator
<
<=
>
>=
==
~=
Deskripsi
Kurang dari
Kurang dari atau sama dengan
Lebih dari
Lebih dari atau sama dengan
Sama dengan
Tidak sama dengan
11
44
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
>> b = [ 8 0 6 2 4 ]
b =
8
0
6
>> a < b
ans =
1
>> a > b
ans =
0
>>
Jika operasi hubungan relasional dilakukan terhadap data majemuk, maka jawabannya
merupakan hasil dari operasi pada setiap elemen data majemuk. Sehingga, setelah itu,
dapat diketahui pada elemen mana saja operasi tersebut dalam keadaan benar atau
salah.
Disamping hubungan relasional, operator hubungan logika yang terdapat pada
MATLAB adalah sebagai berikut:
Tabel 6.2 Operator Hubungan Logika
Operator
&
|
~
Deskripsi
AND
OR
NOT
Karena operasi logika hanya melibatkan bilangan biner, maka variabel yang akan dicari
hubungan logikanya haruslah memiliki nilai 0 atau 1 saja. Berikut ini ditampilkan
hubungan logika untuk operator diatas:
Tabel 6.3 Operasi Hubungan Logika
a
0
0
1
1
b
0
1
0
1
a AND b
0
0
0
1
a OR b
0
1
1
1
NOT a
1
1
0
0
11
45
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
>> a = [ 1
>> b = [ 8
>> p = a <
p =
1
3 5 7 9 ];
0 6 2 4 ];
b
0
>> q = a > b
q =
0
1
>> s = p | q
s =
1
1
>>
Dari contoh diatas, r merupakan hasil dari proses hubungan logika menggunakan hasil
dari teknik hubungan relasional. Sedangkan s adalah hasil dari proses hubungan
logika langsung dari data majemuk.
Selain kedua operator di atas, terdapat juga beberapa hubungan lain yang
tersedia pada MATLAB, yaitu:
Bentuk Operasi
xor(x , y)
Deskripsi
Logika XOR (Exclusive OR), yaitu hasil akhir berharga 1
any(x)
all(x)
Berikut ini ditampilkan contoh penggunaan operasi-operasi lain pada bagian berikut ini.
11
46
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
>> a = [ 0
>> b = [ 0
>> c = xor
c =
0
0 1 1 ];
1 0 1];
(a , b)
1
>> d = any(c)
d =
1
>> e = all(c)
e =
0
>>
6.3.
total_belanja >
250000
?
TIDAK
diskon = 0%
YA
diskon = 10%
11
47
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
>> diskon1
Masukkan harga total belanja = 275000
total_belanja =
275000
Diskon 10%
diskon =
0.1000
belanja_bayar =
247500
>>
Buatlah sebuah program untuk mengetahui akar-akar persamaan kuadrat
berdasarkan nilai diskriminannya. Jika diskriminan persamaan kuadrat lebih dari nol,
maka akan terdapat dua akar yang berlainan, tapi jika diskriminannya sama dengan
nol, akan terdapat dua akar yang sama, sedangkan jika diskriminannya kurang dari
nol, maka akan terdapat dua akar komplek yang saling konjugate!
Programnya disimpan dengan nama file: akar2.m, sebagai berikut:
11
48
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
11
49
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
Program pada contoh ini menampilkan percabangan dengan 3 (tiga) cabang. Untuk ini
dipergunakan teknik percabangan dengan 2 (dua) kali pengecekan, yaitu: if elseif
else end. Dengan bentuk ini, dapat dilakukan pengecekan untuk melakukan lebih
dari 2 (dua) percabangan. Potongan flow chart program ini tampak pada Gambar 6.3.
diskriminan
>0
?
YA
pernyataan1
diskriminan
=0
?
YA
pernyataan2
TIDAK
pernyataan3
11
50
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng
11
51
Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng