Anda di halaman 1dari 9

Modul 6.

Operasi Relasi dan Logika

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

pengulangan atau percabangan diperlihatkan pada Gambar 1 di bawah ini.

Proses
percabangan
?

Proses
pengulangan

Cabang 1

Cabang 2

Cabang 3

(b)

(a)

Gambar 6.1. Peristiwa (a) Pengulangan dan (b) Percabangan


Sebuah proses pengulangan atau percabangan dijalankan berdasarkan
persayaratan tertentu atau tanpa persayaratan tertentu. Persyaratan tersebut
memanfaatkan suatu operasi matematika yang menghubungkan harga sebuah
variabel dengan variabel yang lain. Terdapat 2 (dua) operasi matematika yang dapat
digunakan sebagai syarat untuk melakukan pengendalian program, yaitu: operasi
hubungan relasional dan operasi hubungan logika.

11

43

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

6.2.

Operasi Relasional dan Logika


MATLAB menyediakan fasilitas kedua operasi diatas. Sebagai input untuk

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

Berikut ini merupakan contoh sederhana penggunaan operator hubungan


relasional untuk data tunggal:
>> a = 5;
>> b = 10;
>> a > b
ans =
0
>> a == b
ans =
0
>> a < b
ans =
1
>>
Dari contoh diatas, tampak bahwa ketika hubungan relasional tersebut salah
menghasilkan jawaban 0. Sedangkan bila hubungannya benar jawabannya adalah 1.
Disamping untuk pengujian terhadap hubungan data tunggal, operator ini juga
dapat dilakukan terhadap data majemuk (array). Contoh di bawah ini menunjukkan
proses hubungan relasional untuk data majemuk.
>> a = [ 1 3 5 7 9 ]
a =
1
3
5

11

44

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

>> 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

Pada umumnya, operasi hubungan logika digunakan untuk menghubungkan


hasil dari dua hubungan relasional secara logika. Sebagaimana hubungan relasional,
proses hubungan relasional dapat digunakan untuk data tunggal maupun data
majemuk. Contoh di bawah ini menunjukkan penggunaan hubungan logika dari dua
hubungan relasional menggunakan data majemuk.

11

45

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

>> a = [ 1
>> b = [ 8
>> p = a <
p =
1

3 5 7 9 ];
0 6 2 4 ];
b
0

>> q = a > b
q =
0
1

>> r = (a < b) & (a > b)


r =
0
0
0
0

>> 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)

jika salah satu inputnya berharga 1 dan sebaliknya.


Hasil operasi berharga 1 jika terdapat elemennya yang

all(x)

berharga tidak nol.


Hasil operasi berharga 1 jika semua elemennya berharga
tidak nol

Berikut ini ditampilkan contoh penggunaan operasi-operasi lain pada bagian berikut ini.

11

46

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

>> 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.

Aplikasi Hubungan Relasional dan Logika


Untuk memperlihatakan aplikasi kedua hubungan di atas, berikut ini akan

ditampilkan beberapa contoh penggunaannya dalam proses percabangan. Proses


percabangan yang akan digunakan adalah bentuk if-else-end (bentuk ini dan lainnya
akan dibahas pada modul berikutnya).
Sebuah toko busana memberikan fasilitas diskon belanja untuk menarik
perhatian para pembelinya. Diskon belanja 10% hanya akan diberikan jika total belanja
telah melebihi Rp. 200.000. Maka, buatlah program diskon belanja tersebut!
Program memiliki percabangan dengan pengecekan harga total belanja.
Potongan flow chart program ditampilkan pada Gambar 6.1 sedangkan programnya,
ditulis dan disimpan dengan nama file: diskon1.m ditampilkan pada bagian berikutnya.
Teknik pengecekan dan percabangan menggunakan metoda if-else-end.

total_belanja >
250000
?
TIDAK
diskon = 0%

YA

diskon = 10%

Gambar 6.2 Potongan flow chart program diskon1

11

47

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

%Program Diskon Belanja Sederhana


%dibuat oleh Andi Adriansyah
%Ahad, 4 Mei 2008
%----------------------------------------%Harga-harga
total_belanja = input('Masukkan harga total belanja = ')
%Proses Pengecekan dan Percabangan
if total_belanja > 200000
disp('Diskon 10%')
diskon = 0.1
belanja_bayar = total_belanja - total_belanja*diskon
else
disp('Diskon 0%')
diskon = 0
belanja_bayar = total_belanja - total_belanja*diskon
end
Ketika dijalankan pada Command Window akan menghasilkan perhitungan sebagai
berikut:

>> 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

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

%Program Akar-akar Persamaan Kuadrat


%berdasarkan nilai diskriminannya
%dibuat oleh Andi Adriansyah
%Ahad, 4 Mei 2008
%----------------------------------------%Harga-harga Konstanta Persamaan Kuadrat
a = input('Masukkan harga a = ')
%Tentukan konstanta a
b = input('Masukkan harga b = ')
%Tentukan konstanta b
c = input('Masukkan harga c = ')
%Tentukan konstanta c
%Hitung Harga Diskriminannya
d = b^2 - 4*a*c;
%Hitung Harga Akar-akarnya
x1 = (-b + sqrt(d))/(2*a);
x2 = (-b - sqrt(d))/(2*a);

%Penentuan Harga Diskriminan


%Penentuan harga-harga akar
%x1 dan x2

%Proses Pengecekan dan Percabangan


if d > 0
disp('Diskriminan Lebih dari Nol')
disp('Akar-akarnya Bilangan Real yang Berbeda, yaitu:')
[x1 x2]
elseif d == 0
disp('Diskriminan Sama dengan Nol')
disp('Akar-akarnya Bilangan Real yang Sama, yaitu:')
[x1 x2]
else
disp('Diskriminan Kurang dari Nol')
disp('Akar-akarnya Bilangan Imajiner yang Berbeda,
yaitu:')
[x1 x2]
end
Kemudian, ketika program tersebut dijalankan, akan mendapatkan hasil sebagai
berikut:
>> akar2
Masukkan harga a = 1
a =
1
Masukkan harga b = 2
b =
2
Masukkan harga c = -15
c =
-15
Diskriminan Lebih dari Nol
Akar-akarnya Bilangan Real yang Berbeda, yaitu:
ans =
3
-5
>>

11

49

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

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

Gambar 6.3 Potongan flow chart program akar2


Program ini merupakan pengembangan dari program diskon1 diatas, dimana
diskon akan diberikan dengan mempertimbangkan 2 (dua) hal, yaitu: total belanja dan
banyaknya item belanja. Jika total belanja lebih dari Rp. 200,000 rupiah dan
banyaknya item belanja melibihi 10 jenis, diskon akan diberikan sebesar 15%. Selain
dari itu, tidak akan mendapatkan diskon.

Buatlah program tersebut dengan

menggunakan hubungan relasional dan logika!


Secara prinsip, teknik pengecekan dan percabangan menggunakan metoda
yang sama dengan program diskon1.m. Hanya, ditambahkan operasi hubungan logika
sebagai pengecekan percabangan.
Program ditulis dan disimpan dengan nama file: diskon2.m, seperti yang
tampak di bawah ini:

11

50

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Modul 6. Operasi Relasi dan Logika

%Program Diskon Belanja dengan Banyaknya Item


%dibuat oleh Andi Adriansyah
%Ahad, 4 Mei 2008
%----------------------------------------%Harga-harga
total_belanja = input('Masukkan harga total belanja = ')
banyak_item = input('Masukkan banyaknya item belanja = ')
%Proses Pengecekan dan Percabangan
if (total_belanja > 200000) & (banyak_item > 10)
disp('Diskon 15%')
diskon = 0.1
belanja_bayar = total_belanja - total_belanja*diskon
else
disp('Diskon 0%')
diskon = 0
belanja_bayar = total_belanja - total_belanja*diskon
end
Kemudian, ketika program tersebut dijalankan, akan mendapatkan hasil sebagai
berikut:
>> diskon2
Masukkan harga total belanja = 400000
total_belanja =
400000
Masukkan banyaknya item belanja = 15
banyak_item =
15
Diskon 15%
diskon =
0.1000
belanja_bayar =
360000
>>

11

51

Pemrograman Komputer I
Ir.Andi Addriansyah, M.Eng

Pusat Pengembangan Bahan


Ajar
Universitas Mercu Buana

Anda mungkin juga menyukai