Oleh:
Suraya
Teknik Informatika
Fakultas Teknologi Industri
Institut Sains & Teknologi AKPRIND
Yogyakarta
2019
i
ii
PRAKATA
Perkembangan ilmu komputer yang sangat cepat dewasa ini perlu diimbangi
dengan pengetahuan dasar teorinya. Buku ini membahas logika dasar pemrograman.
Algoritma penyelesaian masalah, serta implementasinya pada pemrograman.
Buku ini akan menjelasakan tiga hal utama pada konsep pemrograman
komputer. Pertama, akan dijelaskan pengetahuan dasar logika pemrograman yang
meliputi logika proposisional, dan predikat yang merupakan dasar dari pemrograman
komputer, serta logika kombinasional sebagai dasar pada perancangan komputer.
Kedua, akan dijelaskan algoritma yang merupakan langkah awal dalam kegiatan
pemrograman komputer. Ketiga, akan diberikan implementasi dari suatu algoritma
pada pemrograman komputer dengan bahasa QBasic sebagai bahasa pemrograman
yang paling mudah dipahami oleh para pemula di dunia pemrograman.
Pada kesempatan ini, penulis mengucapkan terima kasih kepada keluarga atas
kebersamaan dan dukungannya. Penulis juga berterima kasih pada Ketua BP2AI
Institut Sains & Teknologi AKPRIND Yogyakarta, Ir. Saiful Huda, MT., M.E. dan
teman-teman dosen yang telah memberikan dorongan dan dukungannya dalam
penyelesaiaan buku ini.
Akhir kata, mudah-mudahan buku ini dapat memberikan manfaat bagi siapa
saja yang membutuhkannya.
Suraya
iii
DAFTAR ISI
iv
1.9.2.2 Kuantor Eksistensial (Existensial Quantifier) …………….. 34
1.10 Logika Kombinasional …………………………………………………. 40
BAB 2. GERBANG LOGIKA
2.1 Kompetensi Dasar ……………………………………………………….. 41
2.2 Pengertian Gerbang Logika …………………………………………….. 41
2.3 Jenis-jenis Gerbang Logika Dasar dan Penyelesaiannya …………….. 41
2.4 Peta Karnaugh ……...……………………………………………………. 51
2.5 Pohon Semantik (Semantic Tree) …..………………………………….… 57
2.6 Pembuktian Dengan Falsifikasi (Proof by falsicification) ..………….… 60
2.7 Skema Kalimat Valid (Valid Sentence Schemata) …….……………..…. 62
2.8 Konjungsi dan Disjungsi Multi (Multiple Conjunction and
Disjunction) ………………………………………………………….…… 64
2.9 Substitusi (Substitution) .…………….…………………………………… 65
2.9.1 Definisi Substitusi Parsial (Partial Substitution) .………………… 67
2.9.2 Substitusi Multi (Multiple Subsitutión) …………………………… 68
2.9.3 Substitusi Multi Total (Total Multiple Substitution) …………..…. 68
2.9.4 Substitusi Multi Parsial (Partial Multiple Substitution) .……….… 69
2.9.5 Interpretasi Diperluas (Extended Interpretation) …………………. 70
2.9.6 Kesepakatan (Agreement) ………………………………………… 72
2.9.7 Proposition (agreement) ……………………………………………. 72
2.9.8 Catatan (Remark) …..……………………………………………… 73
2.10 Ekuivalensi (Equivalence) ……………………………………………….. 73
2.10.1 Implikasi dan Validitas (Implication and Validity) ….………….. 73
2.10.2 Proposition (Implikasi dan Validitas) ……………………………. 73
2.10.3 Ekuivalensi dan Validitas (Equivalence and Validity) …………... 74
2.10.3.1 Proposition (ekuivalensi dan validitas)…………………… 74
2.10.3.2 Rantai Ekuivalensi (Chains Of Equivalences) …………… 74
BAB 3 RELASI DAN FUNGSI
3.1 Relasi …..….………………………………………………………………… 78
3.1.1 Relasi Biner ………………………………………………………….. 78
3.1.2 Representasi Relasi ….………………………………………………. 79
3.1.3 Sifat-Sifat Relasi Biner ……………………………………………... 81
3.1.4 Komposisi Relasi ……………………………………………………. 84
3.2 Fungsi ……………………………………………………………………… 85
3.3 Balikan (Invers) ………………………………………………….………… 89
3.4 Komposisi ..…..…………………………………………………………….. 89
BAB 4. ALGORITMA
4.1 Kompetensi Dasar ..……………………………………………………..… 91
v
4.2 Pendahuluan ….…………………………………………………………… 91
4.3 Pengertian Algoritma .….…………………………………………………. 92
BAB 5. ELEMEN DASAR PEMROGRAMAN
5.1 Kompetensi Dasar ..………………………………………………………. 98
5.2 Pendahuluan ..…………………………………………………………….. 98
5.3 Tipe Data, Variabel, danKonstanta ….…………………………………. 101
5.4 Operator ………………………………………………………………….. 101
BAB 6. BAHASA PEMROGRAMAN
6.1 Kompetensi Dasar .………………………………………………………. 104
6.2 Bahasa Pemograman Qbasic ….……………………………………….... 104
6.3 Perintah Dasar Qbasic …………………………………………………… 107
BAB 7. PEMROGRAMAN
7.1 Kompetensi Dasar ………………………………………………………... 114
7.2 Struktur Runtunan ………………………………………………………. 114
7.3 Struktur Percabangan …………………………………………………… 116
7.4 Struktur Perulangan ……………………………………………………... 119
BAB 8. SUBRUTIN DAN REKURSI
8.1 Kompetensi Dasar ………………………………………………………... 130
8.2 Subrutin …………………………………………………………………… 130
8.3 Rekursi ……………………………………………………………………. 132
DAFTAR PUSTAKA .………………………………………………………..…. 136
BIOGRAFI PENULIS .…………………………………………………………. 137
vi
BAB 1
DASAR-DASAR LOGIKA INFORMATIKA
1
(argument). Untuk itu, diperlukan logika untuk mengetahui sesuatu yang benar.
Untuk memahami apa itu logika? dapat dilihat pada uraian berikut ini.
1.2.1 Pengertian Umum Logika
Logika berasal dari perkataan Yunani yaitu logike (kata sifat) dan logos (kata
benda), yang berarti “pikiran atau perkataan sebagai pernyataan dari pikiran, alasan
atau uraian”. Dengan demikian, logika merupakan pekerjaan akal pikiran manusia
dalam bernalar untuk menghasilkan kebenaran atau penyimpulan yang benar. Sebagai
ilmu, disebut logica scientia yang berarti ilmu logika, namun sekarang ini hanya
lazim disebut dengan logika saja. Jadi, logika adalah suatu ilmu pengetahuan tentang
prinsip-prinsip dan norma-norma penyimpulan yang dipandang dari aspek yang benar
(sahih). Ada yang berpendapat bahwa logika adalah ilmu dalam lingkungan filsafat
yang membahas prinsip-prinsip dan hukum-hukum penalaran yang tepat. Ada juga
yang menandaskan bahwa logika adalah ilmu pengetahuan (science) tetapi sekaligus
merupakan kecakapan atau keterampilan yang merupakan seni (art) untuk berpikir
secara lurus, tepat, dan teratur. Dalam hal ini, ilmu mengacu pada kemampuan
rasional untuk mengetahui, sedangkan kecakapan atau keterampilan mengacu pada
kesanggupan akal budi untuk mewujudkan pengetahuan ke dalam tindakan. Selain itu,
ada juga ahli yang berpendapat bahwa logika adalah teknik atau metode untuk
meneliti ketepatan berpikir. Jadi logika tidak terlihat selaku ilmu, tetapi hanyalah
merupakan metode. Ada pula yang mengatakan bahwa logika adalah ilmu yang
mempersoalkan prinsip-prinsip dan aturan-aturan penalaran yang sahih (valid).
Berdasar dari pengertian logika yang diuraikan di atas, dapat dikatakan bahwa
logika merupakan cabang filsafat yang mempelajari, menyusun, mengembangkan,
dan membahas asas-asas, aturan-aturan formal, prosedur-prosedur, serta kriteria yang
sahih bagi penalaran dan penyimpulan demi pencapaian kebenaran yang dapat
dipertanggungjawabkan secara rasional.
Hubungan Matematika dan Logika
Menurut RUDOLF CARNAP (1931)
Konsep matematika dapat diturunkan dari konsep-konsep logika dengan melalui
batasan-batasan yang jelas.
Dalil-dalil matematika dapat diturunkan dari aksioma-aksioma logika dengan
perantara deduksi logis secara murni.
Menurut BETRAND RUSSEL
2
Logika adalah masa muda matematika dan matematika adalah masa dewasa
logika.
Hubungan Logika dan Komputer
Arsitektur sistem komputer tersusun atas rangkaian logika 1 (true) dan 0
(false) yang dikombinasikan dengan sejumlah gerbang logika AND, OR, NOT, XOR,
dan NAND.
Program komputer berjalan di atas struktur penalaran yang baik dari suatu
solusi terhadap suatu permasalahan dengan bantuan komponen program
IF…THEN…ELSE, FOR…TO…DO, WHILE, CASE…OF.
William Alston, mendefinisikan logika sebagai Logic is the study of
inference, more precisely the attempt to devise criteria for separating valid from
invalid inferences (logika adalah studi tentang penyimpulan, secara lebih cermat
usaha untuk menetapkan ukuran-ukuran guna memisahkan penyimpulan yang sah
dan yang tidak sah).
Sheldon Lachman, mengemukakan: Logic is the systematic discipline
concerned with the organization and development of the formal rules, the normative
prosedures and the criteria of valid inference (logika adalah cabang ilmu yang
sistematis mengenai penyusunan dan pengembangan dari aturan formal, prosedur
normatif, dan ukuran-ukuran bagi penyimpulan yang sah).
Jan Hendrik Rapar, (1996:10) “Logika adalah cabang filsafat yang
mempelajari, menyusun, mengembangkan, dan membahas asas-asas, aturan-aturan
formal, prosedur-prosedur serta kriteria yang sahih bagi penalaran dan penyimpulan
demi mencapai kebenaran yang dapat dipertanggungjawabkan secara rasional”.
Ir. Poedjawijatna, logika adalah filsafat budi (manusia) yang mempelajari
teknik berpikir untuk mengetahui bagaimana manusia berpikir dengan semestinya.
Hasbullah Bakry, logika adalah ilmu pengetahuan yang mengatur penelitian
hokum-hukum akal manusia sehingga menyebabkan pikirannya dapat mencapai
kebenaran.
E. Sumaryono(1999:71),“Logika adalah ilmu pengetahuan dan keterampilan
untuk berpikir lurus”
Louis O. Kattsoff (1987:28) Logika ialah ilmu pengetahuan mengenai
penyimpulan yang lurus. Ilmu pengetahuan ini menguraikan tentang aturan-aturan
serta cara-cara untuk mencapai kesimpulan, setelah didahului oleh suatu prangkat
premise.
3
Bakhtiar (2004:212) Logika adalah sarana untuk berpikir sistematik, valid
dan dapat dipertanggungjawabkan. Karena itu, berpikir logis adalah berpikir sesuai
dengan aturan-aturan berpikir, seperti setengah tidak boleh lebih besar daripada satu.
Berdasar dari pengertian logika yang diuraikan di atas, dapat dikatakan bahwa
logika merupakan cabang filsafat yang mempelajari, menyusun, mengembangkan,
dan membahas asas-asas, aturan-aturan formal, prosedur-prosedur, serta kriteria yang
sahih bagi penalaran dan penyimpulan demi pencapaian kebenaran yang dapat
dipertanggungjawabkan secara rasional.
1.3 Logika Proposional dan Predikat
Bahasa (Language), Seperti halnya bahasa pada umumnya, maka logika
proposisional terdiri dari kalimat-kalimat khususnya kalimat abstrak (abstract
sentence).
1.3.1 Definisi proposisi (propositions)
Proposisi (pernyataan) adalah komponen dasar pembentuk kalimat logika
(sentence) dalam logika proposional. Adapun kalimat yang dibentuk dari proposisi
disebut kalimat deklaratif, yaitu kalimat yang dapat ditentukan nilai kebenarannya,
true atau false, tetapi tidak keduanya sekaligus.
Logika proposional adalah logika dasar pada pemrograman yang harus
dipahami oleh para programmer, karena logika dasar inilah yang menjadi dasar
penentuan nilai kebenaran dari suatu pernyataan, yaitu true (benar) atau false (salah)
pada pengujian kondisi dalam pemrograman.
Pada bab ini akan disajikan suatu bahasa kalimat abstrak yang disebut logika
proposional (proposition logic), serta akan diberikan aturan-aturan apakah kalimat
tersebut bernilai valid atau tidak.
Beberapa pernyataan (statement) dapat langsung diterima kebenarannya tanpa
harus diketahui kebenaran pembentuk-pembentuknya, seperti pernyataan berikut:
“Jawa memiliki jumlah balita lebih banyak dibanding Sumatera atau Jawa memiliki
jumlah balita lebih sedikit dibanding Sumatera”.
Kalimat di atas langsung dapat diterima kebenarannya tanpa harus ada orang
yang datang ke Jawa dan Sumatera untuk membuktikan apakah jumlah balita di Jawa
memang lebih banyak dari Sumatera, atau sebaliknya.
Kalimat tersebut merupakan contoh dari kalimat abstrak
p or (not p)
4
kalimat abstrak adalah “valid” jika bernilai benar tanpa perlu memperdulikan
kebenaran atau kesalahan dari proposisi-proposisi penyusunnya. Contoh lain dari
kalimat yang juga “valid” adalah:
not (p and (not p)) or q
1.3.2 Definisi kalimat (sentences)
Kata merupakan rangkaian huruf yang mengandung arti, sedangkan kalimat
adalah kumpulan kata yang disusun menurut aturan tata bahasa dan mengandung arti.
Di dalam matematika tidak semua pernyataan yang bernilai benar atau salah saja yang
digunakan dalam penalaran. Pernyataan disebut juga kalimat deklaratif yaitu kalimat
yang bersifat menerangkan. Disebut juga proposisi.
Pernyataan/ Kalimat Deklaratif/ Proposisi adalah kalimat yang bernilai benar atau
salah tetapi tidak keduanya.
Proposisi (pernyataan) dalam kalimat logika dinyatakan dengan symbol-
simbol proposisi, yaitu:
- Simbol atau nilai kebenaran (truth value) yaitu true dan false
- Symbol-simbol proposional (propotional symbols), yaitu huruf-huruf p, q, r, s, t,
….
Berikut ini adalah beberapa contoh proposisi (pernyataan):
Yogyakarta adalah ibukota Negara Indonesia
Jumlah penduduk Malaysia lebih banyak dari jumlah penduduk Indonesia
Indonesia mengalami 6 kali pergantian presiden
3 adalah bilangan prima yang pertama
15 habis dibagi dengan 3
Kalimat-kalimat di atas adalah kalimat deklaratif karena dapat diketahui nilai
kebenarannya (truth value), yaiti true atau false. Kalimat contoh “Yogyakarta adalah
ibukota Negara Indonesia” bernilai false karena ibukota negara Indonesia adalah
Jakarta.
Sebaliknya, kalimat yang tidak dapat ditentukan nilai kebenarannya, baik true
maupun false, disebut kalimat terbuka (bukan proposisi). Sebagai perbandingan,
berikut adalah contoh kalimat terbuka:
Apakah hari ini ada ujian?
X+5>10
Herlya habis dibagi dengan 5
Angka 10 dan angka 100 sudah saling menyayangi
5
Heri sangat mencintai angka 9
Kalimat-kalimat dalam logika proposisional dibangun dari proposisi-proposisi
dengan menerapkan propositional connectives:
not, and, or, if-then, if-and-only-if, if-then-else
Kalimat dibentuk menurut aturan-aturan (rules) berikut:
setiap proposisi, yaitu suatu simbol kebenaran atau suatu simbol proposisi
merupakan kalimat.
apabila F kalimat, maka demikian juga negasi (negation) nya (not F).
apabila F dan G kalimat, maka demikian juga konjungsi (conjunction) nya,
yaitu (F and G), selanjutnya F maupun G disebut conjuncts dan (F and G).
apabila F dan G kalimat, maka demikian juga disjungsi (disjunction) nya,
yaitu (F or selanjutnya F maupun G disebut disjuncts dan (F or G)).
apabila F dan G kalimat, maka demikian juga implikasi (implication) nya,
yaitu (if F then G). Selanjutnya F disebut antecedent dan G disebut
consequent dan (if F then G). Kalimat (if G then F) disebut converse dan
kalimat (if F then G).
apabila F dan G kalimat, maka demikian juga ekuivalensi (equivalence) nya,
yaitu (F f and onfy f G), selanjutnya F disebut sisi-kiri (left-hand side) dan G
disebut sisi-kanan (right-hand side) dan (F if and only if G).
apabila F, G dan H kalimat, maka demikian juga kondisional (conditional)
nya, yaitu (if F then G else H). Selanjutnya F, G, dan H masing-masing
disebut klausa-if (if clause), klausa-then (then-cause), dan klausa-else (else-
clause) dan kondisional (if F then G else H).
Contoh 1.1 (Kalimat)
Ekspresi berikut
E: ((not(P or Q)) if and onfy if ((not P) and (not Q))) merupakan kalimat,
karena
P dan Q
keduanya merupakan kalimat, jadi (P or (not P)), dan (not Q)
merupakan kalimat,
sehingga (not (P or Q)) and ((not P) and (not Q)) merupakan kalimat,
jadi ekspresi E, ((not (P or Q) if and onfy if ((not P) and (not Q)),
merupakan kalimat.
6
1.3.3 Notasi (Natation)
Seringkali, beberapa kalimat perlu digabungkan untuk menjadi kalimat yang lebih
panjang. Misalnya kalimat “8 adalah bilangan genap dan 9 habis di bagi 3”,
merupakan gabungan dari kalimat “8 adalah bilangan genap” dan kalimat “9 habis di
bagi 3”.
Dalam logika proposisional dikenal 6 macam penghubung (connective), yaitu not,
and, or, if-then, if-and-only-if, serta if-then-else. Berikut adalah notasi dari
penghubung pada logika proposisional:
Dalam logika proposional dikenal 5 buah penghubung:
Simbol Arti Bentuk
¬ Tidak/Not/Negasi Tidak………….
∧ Dan/And/Konjungsi ……..dan……..
∨ Atau/Or/Disjungsi ………atau…….
→ Implikasi/if-then Jika…….maka…….
↔ Bi-Implikasi/if-and-only-if …bila dan hanya bila…
tidak ada if-then-else Jika...maka…yang lain...
7
dua kemunculan p masing-masing akan diberi nilai sama. Demikian juga kemunculan
terhadap proposisi q.
1.3.5 Aturan Semantik (Semantic Rule)
Aturan semantik adalah suatu aturan yang digunakan untuk menentukan arti suatu
kalimat logika atau nilai kebenaran (truth value) dari suatu kalimat (sentence).
Berikut adalah aturan-aturan semantik untuk kalimat logika:
1) Negation Rule (aturan NOT)
Jika p adalah “ Semarang ibukota Jawa Tengah”, maka ingkaran atau negasi dari
pernyataan p tersebut adalah ¬p yaitu “ Semarang bukan ibukota Jawa Tengah”
atau “Tidak benar bahwa Semarang ibukota Jawa Tengah”. Jika p diatas bernilai
benar (true), maka ingkaran p (¬p) adalah bernilai salah (false) dan begitu juga
sebaliknya.
p ¬p
True False
False True
8
Konjungsi bernilai benar (true) apabila kedua proposisi penyusunnya bernilai
benar (true). Apabila salah satu proposisi penyusunnya bernilai salah, atau
bahkan keduanya bernilai salah (false), maka konjungsi bernilai salah (false).
3) Disjunction Rule (aturan OR)
Disjungsi adalah pernyataan majemuk yang menggunakan penghubung
“ATAU/OR” dengan notasi “∨”.
Kalimat disjungsi dapat mempunyai 2 arti yaitu :
a) Inclusive-OR (Aturan Atau)
Yaitu jika “p benar atau q benar atau keduanya true”
Contoh :
p : 7 adalah bilangan prima
q : 7 adalah bilangan ganjil
p ∨ q : 7 adalah bilangan prima atau ganjil
Benar bahwa 7 bisa dikatakan bilangan prima sekaligus bilangan ganjil.
p q pvq
True True True
True False True
False True True
False False false
9
Dari aturan disjungsi dan konjungsi, muncul sifat-sifat aljabar logika, yaitu:
Hukum Idempoten
p∨p ⇔ p
p∧p ⇔ p
Hokum komutatif
p∨q ⇔ q∨p
p∧q ⇔ q∧p
Hokum Asosiatif
(p∨q)∨r ⇔ p∨(q∨r)
(p∧q)∧r ⇔ p∧(q∧r)
Hokum Distribusif
p∨(q∧r) ⇔ (p∨q)∧(p∨r)
p∧(q∨r) ⇔ (p∧q)∨(p∧r)
Hokum Identitas
p∨false ⇔ p
p∧true ⇔ p
p∨true ⇔ true
p∧false ⇔ false
Hokum Komplemen
p∨¬p⇔ true
p∧¬p⇔ false
¬(¬p) ⇔ p
Hokum De Morgan
Hokum ini merupakan negasi dari konjungsi dan disjungsi:
¬(p∧q) ⇔ ¬p ∨ ¬q
¬(p∨q) ⇔ ¬p ∧ ¬q
4) Implication Rule (aturan IF-THEN)
Implikasi adalah pernyataan majemuk yang berupa rangkaian dari dua pernyataan
yang di hubungkan dengan kata penghubung “jika... , maka...”. implikasi dua
penyataan p dan q ditulis p → q (dibaca: jika p, maka q). Pernyataan p disebut
anteseden dan pernyataan q disebut konsekuen.
10
Sebuah kalimat implikasi p → q bernilai salah hanya jika p (antesenden) bernilai
“true” dan q (konsekuen) bernilai “false”, selain itu implikasi bernilai “true”.
Berikut ditampilkan tabel kebenaran dari implikasi:
p q p→q
True True True
True False False
False True True
False False True
Contoh:
a). Misalkan:
p = Rita lulus ujian nasional
q = ayah akan membelikan mobil baru
Berikut kejadian yang mungkin terjadi pada kasus di atas:
Apabila p benar dan q benar berarti Rita lulus ujian kemudian ayah
membelikan mobil. Apakah Rita senang? Tentu ia. Nerarti nilai “jika p
maka q” benar (True)
Apabila p benar dan q salah berarti Rita lulus ujian kemudian ayah tidak
membelikan mobil baru. Apakah rita senang? Tentunya tidak. Rita
pastinya akan protes dan minta janji ayah untuk membelikan mobil. Protes
yang dilakukan menandakan nilai “jika p maka q” bernilai salah (False)
Apabila p salah dan q benar berarti Rita tidak lulus ujian kemudian ayah
membelikan mobil. Apakah Rita senang? Tentunya ia. Senang sekali...
sudah tidak lulus dapat mobil lagi. Rita tidak akan protes kan? Jadi respon
positif Rita menandakan nilai “jika p maka q” bernilai benar (True)
Apabila p salah dan q salah berasrti Rita tidak lulus ujian kemudian ayah
tidak membelikan mobil. Dalam kasus ini apa tanggapan Rita? Rita tidak
akan protes kan? Karena Rita tahu bahwa kalau tidak lulus pastinya tidak
ada harapan mandapat mobil. Jadi nilai “jika p maka q” benar (True)
b). Tentukan nilai kebenaran dari pernyataan berikut:
Jika matahari terbit di sebelah barat, maka Budi lulus ujian
Jawab: implikasi ini bernilai benar, karena antesedennya bernilai salah,
walaupun konsekuen tidak diketahui nilai kebenarannya.
11
5) Equivalence Rule (aturan IF-AND ONLY-IF)
Biimplikasi atau Equivalence
Biimplikasi atau bikondisional adalah pernyataan majemuk dari dua pernyataan p
dan q yang dinyatakan dengan notasi “p ↔ q”.
Biimplikasi p ↔ q dapat diartikan sebagai implikasi dua arah p → q dan p ← q
atau merupakan konjungsi “ ( p → q ) Ʌ ( q ← p )”, sehingga nilai kebenaran dari
p ↔ q dapat ditentukan berdasarkan nilai kebenaran ( p → q ) Ʌ ( q ← p )”.
Biimplikasi 2 pernyataan hanya akan bernilai benar jika implikasi kedua kalimat
penyusunnya sama-sama bernilai benar.
Berikut di paparkan tabel kebenaran biimplikasi:
12
b) Dua buah segitiga sebangun jika dan hanya jika ketiga sudut yang bersesuaian
sama besar.
Jawab:
Misalkan:
p = Dua buah segitiga sebangun
q = Ketiga sudut yang bersesuaian sama besar
pada soal ini masing-masing pernyataan tidak diketahui nilai kebenarannya,
tetapi nilai kebenaran biimplikasi p ↔ q dapat ditentukan, dengan mencari
nilai kebenaran konjungsi (p → q) ˄ (q ← p).
Dalam hal ini implikasi p → q merupakan implikasi logis yang bernilai benar,
karena memang benar bahwa juka dua buah segitiga sebangun, maka segitiga
sudut yang bersesuaian pada kedua segitiga sama besar. Sebaliknya apabila
ketiga sudut yang bersesuaian pada dua buah segitiga sama besar, maka
segitiga tersebut sebangun. Ini berarti q→p bernilai benar. Sehingga konjungsi
( p→q )˄( q←p ) bernilai benar. Jadi, biimplikasi p ↔ q bernilai benar
(True).
6) Conditional Rule (aturan IF-THEN-ELSE)
Nilai kebenaran dari kondisional (yaitu if p then q else r) adalah sama dengan
nilai kebenaran dari q (jika nilai p adalah “true”) dan bernilai sama dengan r (jika
nilai p adalah “false”). Dengan kata lain, jika p benar berlaku q dan jika p salah
maka yang berlaku adalah r.
p q r if p then q else r
True True True True
True True False True
True False True False
True False False False
False True True True
False True False False
False False True True
False False False False
13
1.3.6 Tabel Kebenaran (Truth Table)
Tabel kebenaran adalah suatu metode untuk menentukan nilai kebenaran dari
suatu kalimat logika dengan menginterpretasi setiap simbol proposisi dan
menggunakan aturan semantic (semantic rule).
Dengan aturan semantik dapat ditentukan nilai kebenaran suatu kalimat
kompleks untuk semua interpretasi yang mungkin.
• Biasanya ditabelkan dan disebut tabel kebenaran
• Jika terdapat n variabel, maka terdapat 2n baris tabel kebenaran
Tabel kebenaran adalah cara yang paling jelas untuk membuktikan validitas suatu
kalimat dengan menentukan kemungkinan nilai-nilai kebenaran yang diberikan
pada simbol-simbol proposisinya. Jadi, bila suatu kalimat memuat simbol-simbol
proposisi p dan q, ada empat kemungkinan interpretasi yang perlu kita perhatikan,
yaitu:
p bernilai “true” dan q bernilai “true”
p bernilai “true” dan q bernilai “false”
p bernilai “false” dan q bernilai “true”
p bernilai “false” dan q bernilai “false”
Proses tersebut dapat difasilitasi dengan suatu table, yang disebut tabel
kebenaran.
Contoh:
Diberikan kalimat logika sebagai berikut:
not (p and (not p)) or q
Tentukan nilai kebenarannya dari kalimat tersebut di atas.
Penyelesaian:
Kalimat logika: not [p and (not p)] or q, untuk lebih memudahkan penulisannya
dalam tabel kebenarannya, kalimat tersebut diubah dalam notasi konvensional
sebagai berikut: ¬(p˄¬p)˅q.
Dengan demikian, table kebenaran yang bersesuaian adalah:
p q ¬p p˄¬p ¬(p˄(¬p)) ¬(p˄¬p)˅q
T T F F T T
T F F F T T
F T T T F T
F F T F T T
14
Contoh:
Diberikan kalimat logika sebagai berikut:
(if p then q) or (r and (not p))
Tentukan nilai kebenarannya (truth value) dari kalimat tersebut di atas.
Penyelesaian:
Kalimat logika (if p then q) or [r and (not p)], akan menghasilkan delapan
kemungkinan interpretasi, karena ada tiga proposisi yang menyusun kalimat
logika tersebut. Dengan demikian, table kebenaran yang bersesuaian adalah:
p q r ¬p pq r˄¬p (pq)˅(r˄¬p)
T T T F T F T
T T F F T F T
T F T F F F F
T F F F F F F
F T T T T T T
F T F T T F T
F F T T T T T
F F F T T F T
15
1.4.2 Negasi Suatu Disjungsi
Contoh : “Fahmi makan nasi atau minum kopi”
Suatu disjungsi akan bernilai salah hanya jika kedua komponen
penyusunannya bernilai salah, selain itu benar. Oleh karena itu negasi dari kalimat
diatas adalah : “ Tidak benar bahwa Fahmi makan nasi atau minum kopi” atau dapat
juga dikatakan “Fahmi tidak makan nasi dan tidak minum kopi. Disini berlaku hukum
De Morgan yaitu : ¬(p∨q) ≡ ¬p∧¬q
1.4.3 Negasi Suatu Implikasi
Contoh: “Jika hari hujan maka Adi membawa payung”.
Untuk memperoleh negasi dari pernyataan diatas, kita dapat mengubah
bentuknya ke dalam bentuk disjungsi kemudian dinegasikan, yaitu :
p⇒ q ≡ ¬p∨q
Maka negasinya
¬( p⇒ q) ≡ ¬(¬p∨q) ≡ p∧¬q
1.4.4 Negasi Suatu Biimplikasi
Biimplikasi atau bikondisional adalah pernyataan majemuk dari dua
pernyataan p dan q yang dinotasikan dengan p ⇔ q ≡ (p ⇒ q) ∧ (q ⇒ p) sehingga :
¬(p ⇔ q) ≡ ¬ [(p ⇒ q) ∧ (q ⇒ p)]
≡ ¬ [(¬p∨q ) ∧ (¬q∨p)]
≡ ¬ (¬p∨q ) ∨ ¬(¬q∨p)
¬(p ⇔ q) ≡ (p∧¬q ) ∨ (q∧¬p)
1.5 Tautologi, Kontradiksi, Dan Contingent
Tautologi adalah suatu bentuk kalimat yang selalu bernilai benar (True) tidak
peduli bagaimanapun nilai kebenaran masing-masing kalimat penyusunnya,
sebaliknya kontradiksi adalah suatu bentuk kalimat yang selalu bernilai salah (False),
tidak peduli bagaimanapun nilai kebenaran masing-masing kalimat penyusunnya.
Dalam tabel kebenaran, suatu tautologi selalu bernilai True pada semua barisnya dan
kontradiksi selalu bernilai False pada semua baris. Kalau suatu kalimat tautologi
diturunkan lewat hukum-hukum yang ada maka pada akhirnya akan menghasilkan
True, sebaliknya kontradiksi akan selalu bernilai False.
Jika pada semua nilai kebenaran menghasilkan nilai F dan T, maka disebut formula
campuran (contingent).
16
Contoh:
1. Tunjukkan bahwa p∨(¬p) adalah tautologi!
p ¬p p∨(¬p)
T T T
T F T
F T T
F F T
17
1.6 Konvers, Invers, Dan Kontraposisi
Perhatikan pernytaan di bawah ini! ¬ ∧ ∨ → ↔
“Jika suatu bender adalah bendera RI maka ada warna merah pada bendera tersebut”
Bentuk umum implikasi di atas adalah “p → q” dengan
p : Bendera RI
q : Bendera yang ada warna merahnya.
18
1.7 Ingkaran Konvers, Invers, Dan Kontraposisi
Contoh:
Tentukan ingkaran atau negasi konvers, invers, dan kontraposisi dari implikasi
berikut.
“Jika suatu bendera adalah bendera RI maka bendera tersebut berwarna merah dan
putih”
Penyelesaian
Misal p : Suatu bendera adalah bendera RI
q : Bendera tersebut berwarna merah dan putih
maka kalimatnya menjadi p → q atau jika menggunakan operator dan maka p → q
ekuivalen(sebanding/≈) dengan ¬p ∨ q. Sehingga
1. Negasi dari implikasi
Implikasi : (p→q) ≈ ¬p ∨ q
Negasinya : ¬(¬p∨q) ≈ p∧¬q
Kalimatnya :“Suatu bendera adalah bendera RI dan bendera tersebut
tidak berwarna merah dan putih”.
2. Negasi dari konvers
Konvers : q⇒p ≈ ¬q∨p
Negasinya : ¬(¬q∨p) ≈ q∧¬p
Kalimatnya : “Ada/Terdapat bendera berwarna merah dan putih tetapi
bendera tersebut bukan bendera RI”.
3. Negasi dari invers
Invers : ¬p ⇒ ¬q ≈ ¬(¬p)∨¬q) ≈ p∧¬q
Negasinya : ¬(p∧¬q) ≈ ¬p∨q
Kalimatnya : “Suatu bendera bukan bendera RI atau bendera tersebut
berwarna merah dan putih”.
4. Negasi dari kontraposisi
Kontraposisi : ¬q ⇒ ¬p ≈ ¬(¬q)∨¬p ≈ q∨¬p
Negasinya : ¬(q∨¬p) ≈ ¬q∧p
Kalimatnya : “Suatu bendera tidak berwarna merah dan putih dan bendera
tersebut adalah bendera RI”.
19
1.8 Ekuivalensi Logika
Pada tautologi, dan juga kontradiksi, dapat dipastikan bahwa jika dua buah
ekspresi logika adalah tautologi, maka kedua buah ekspresi logika tersebut ekuivalen
secara logis, demikian pula jika keduanya kontradiksi. Persoalannya ada pada
contingent, karena memiliki semua nilai T dan F. Tetapi jika urutan T dan F atau
sebaliknya pada tabel kebenaran tetap pada urutan yang sama maka tetap disebut
ekuivalen secara logis. Perhatikan pernyataan berikut :
Contoh:
a. Dewi sangat cantik dan peramah.
b. Dewi peramah dan sanagt cantik.
Kedua pernyataan di atas, tanpa dipikir panjang, akan dikatakan ekuivalen atau sama
saja. Dalam bentuk ekspresi logika dapat ditulis sebagai berikut :
A = Dewi sangat cantik.
B = Dewi peramah.
Maka ekspresi logikanya :
a. A ∧ B
b. B ∧ A
Jika dikatakan kedua buah ekspresi logika tersebut ekuivalen secara logis maka dapat
ditulis A ∧ B ≡ B ∧ A. Ekuivalensi logis dari kedua ekspresi logika tersebut dapat
dibuktikan dengan tabel kebenaran sebagai berikut ini :
A B A∧B B∧A
T T T T
T F F F
F T F F
F F F F
Pembuktian dengan tabel kebenaran diatas, walaupun setiap ekspresi logika memiliki
nilai T dan F, tetapi karena memiliki urutan yang sama, maka secara logis tetap
dikatakan ekuivalen. Tetapi jika urutan T dan F tidak sama, maka tidak biasa
dikatakan ekuivalen secara logis. Tabel kebenaran merupakan alat untuk
membuktikan kebenaran ekuivalensi secara logis. Kesimpulan diambil berdasarkan
hasil dari tabel kebenaran tersebut. Lihat pernyataan berikut ini :
20
Contoh:
1. Badu tidak pandai, atau dia tidak jujur.
2. Adalah tidak benar jika Badu pandai dan jujur.
Secara intuitif dapat ditebak bahwa kedua pernyataan di atas sebenarnya sama, tetapi
bagaimana jika idbuktikan dengan menggunkan tabel kebenaran berdasarkan ekspresi
logika. Adapaun langkah-langkahnya :
1. Ubah dahulu argumen di atas ke dalam bentuk ekspresi/notasi logika.
Misal : A=Badu pandai
B=Badu jujur
Maka kalimatnya menjadi
1. ¬A∨¬B
2. ¬(A∧B)
2. Buat tabel kebenarannya
A B ¬A ¬B A∧B ¬A∨¬B ¬(A∧B)
T T F F T F F
T F F T F T T
F T T F F T T
F F T T F T T
Perhatikan ekspresi di atas! Meskipun kedua ekspresi logika di atas memiliki nilai
kebenaran yang sama, ada nilai T dan F, keduanya baru dikatakan ekuivalen secara
logis jika dihubungkan dengan perangkai ekuivalensi dan akhirnya menghasilkan
tautologi.
3. Tambahkan perangkai biimplikasi untuk menghasilkan tautologi
¬A∨¬B ¬(A∧B) ¬A∨¬B ↔ ¬(A∧B)
F F T
T T T
T T T
T T T
Jika hasilnya adalah tautologi (bernilai T semua), maka dikatakan bahwa kedua
argumen tersebut ekuivalen secara logis.
21
1.8.1 Hukum-Hukum Ekuivalensi Logika
Identitas p∧1 ≡ p p∨0 ≡ p
Ikatan p∨1 ≡ T p∧0 ≡ 0
Idempoten p∨p ≡ p p∧p ≡ p
Negasi p∨¬p ≡ 1 p∧¬p ≡ 0
Negasi Ganda ¬¬p ≡ p
Komutatif p∨q ≡ q∨p p∧q ≡ q∧p
Asosiatif (p∨q)∨r ≡ p∨(q∨r) (p∧q)∧r ≡ p∧(q∧r)
Distributif p∨(q∧r) ≡ (p∨q)∧(p∨r) p∧(q∨r) ≡ (p∧q)∨(p∧r)
De Morgan’s ¬(p∧q) ≡ ¬p ∨ ¬q ¬(p∨q) ≡ ¬p ∧ ¬q
Absorbsi p∧(p∨q) ≡ p p∨(p∧q) ≡ p
Selain dengan menggunkan tabel kebenaran, menentukan dua buah argumen adalah
ekuivalen secara logis dapat juga menggunakan hukum-hukum ekuivalensi logika.
Cara ini lebih singkat
Contoh:
Buktikan ekuivalensi kalimat di bawah ini dengan hukum-hukum ekuivalensi.
¬(p∨¬q) ∨ (¬p∧¬q) ≡ ¬p
Penyelesaian
¬(p∨¬q) ∨ (¬p∧¬q) ≡ (¬p∧¬(¬q)) ∨ (¬p∧¬q)
≡ (¬p∧q) ∨ (¬p∧¬q)
≡ ¬p ∧ (q∨¬q)
≡ ¬p ∧ T
≡ ¬p Terbukti
Dalam membuktikan ekuivalensi p≡q ada 3 macam cara yang bisa dilakukan :
1. P diturunkan terus menerus (dengan menggunakan hukum-hukum ekuivalensi
logika yang ada).
2. Q diturunkan terus-menerus (dengan menggunakan hukum-hukum ekuivalensi
logika yang ada), sehingga didapat P.
3. P dan Q diturunkan secara terpisah sehingga akhirnya didapat R
22
Sebagai aturan kasar, biasanya bentuk yang lebih kompleks yang diturunkan ke dalam
bentuk yang sederhana. Jadi jika p kompleks amaka aturan (1) yang dilakukan.
Sebaliknya jika q yang lebih kompleks maka aturan (2) yang dilakukan. Aturan (3)
digunakan jika p dan q sama-sama kompleks.
1.8.2 Penyederhanaan Logika
Operasi penyederhanaan menggunakan hukum-hukum ekuivalensi logis.
Selanjutnya perhatikan operasi penyederhanaan berikut dengan hukum yang
digunakan tertulis di sisi kanannya. Penyederhanaan ekspresi logika atau bentuk-
bentuk logika ini dibuat sesederhana mungkin dan sudah tidak dimungkinkan
dimanipulasi lagi.
Contoh:
a. ¬p → ¬(p → ¬q)
≡ ¬p → ¬(¬p ∨ ¬q) ingat p→q ≡ ¬p∨q
≡ ¬(¬p) ∨ ¬(¬p ∨ ¬q) ingat p→q ≡ ¬p∨q
≡ p ∨ (p ∧ q) Hk. Negasi ganda dan De Morgan
≡ (p∨p) ∧ (p∨q) Hk. Distributif
≡ p∧(p∨q) Hk. Idempoten p∨p ≡ p
≡p Hk. Absorbsi
b. p∨(p∧q)
≡ (p∧1) ∨(p∧q) Hk.Identitas
≡ p∧(1∨q) Hk.Distributif
≡ p∧1 Hk.Identitas ∨
≡p Hk.Identitas ∧
c. (p→q) ∧ (q→p)
≡ (¬p∨q) ∧ (¬q∨p) ingat p→q ≡ ¬p∨q
≡ (¬p∨q) ∧ (p∨¬q) Hk. Komutatif
≡ [(¬p∨q) ∧p] ∨ [(¬p∨q)∧¬q] Hk. Distributif
≡ [(p∧¬p)∨(p∧q)] ∨ [(¬p∧¬q)∨(q∧¬q)] Hk. Distributif
≡ [0∨(p∧q)] ∨ [(¬p∧¬q)∨0] Hk. Kontradiksi
≡ (p∧q)∨(¬p∧¬q) Hk. Identitas
23
Operasi penyederhanaan dengan menggunakan hukum-hukum logika dapat digunakan
untuk membuktikan suatu ekspresi logika Tautologi, Kontradiksi, maupun
Contingent. Jika hasil akhir penyederhanaan ekspresi logika adalah 1, maka ekspresi
logika tersebut adalah tautologi. Jika hasil yang diperoleh adalah 0, berarti ekspresi
logika tersebut kontradiksi. Jika hasilnya tidak 0 ataupun 1, maka ekspresi
logikanya adalah contingent.
Contoh:
a. [(p→q)∧p] →q
≡ [(¬p∨q)∧p] ⇒ q ingat p→q ≡ ¬p∨q
≡ ¬[(¬p∨q)∧p] ∨ q ingat p→q ≡ ¬p∨q
≡ [(p∧¬q)∨¬p] ∨ q Hk. Negasi ganda dan De Morgan
≡ [(p∨¬p)∧(¬q∨¬p)] ∨ q Hk. Distributif
≡ [1∧(¬p∨¬q)] ∨ q Hk. Idempoten dan komutatif
≡ (¬p∨¬q)∨q Hk. Identitas
≡ ¬p∨(¬q∨q) Hk. Assosiatif
≡ ¬p∨1 Hk. Idempoten
≡1 Hk. Identitas
Karena hasil akhirnya 1, maka ekspresi logika diatas adalah tautologi.
b. (p∨q) ∧ [(¬p) ∧ (¬q)]
≡ (p∨q)∧(¬p∧¬q)
≡ [(p∨q)∧¬p]∧[(p∨q)∧¬q] Hk. Distributif
≡ [(p∧¬p)∨(q∧¬p)]∧[(p∧¬q)∨(q∧¬q)] Hk. Distributif
≡ [0∨(q∧¬p)]∧[(p∧¬q)∨0] Hk. Negasi
≡ (¬p∧q)∧(p∧¬q) Hk. Idempoten
≡ (¬p∧p)∧(q∧¬q) Hk. Assosiatif
≡ 0∧0 Hk. Negasi
≡0 Hk. Idempoten
Hasil akhir 0, maka ekspresi logika diatas adalah kontradiksi.
c. [(p∨q)∧¬p] → ¬q
≡ [(p∧¬p)∨(q∧¬p)] → ¬q Hk. Distributif
≡ [0 ∨ (q∧¬p)] → ¬q Hk. Negasi
≡ (q∧¬p) → ¬q Hk. Identitas
24
≡ ¬(q∧¬p) ∨ ¬q ingat p→q ≡ ¬p∨q
≡ (¬q∨p) ∨ ¬q Hk. De Morgan
≡ (¬q∨¬q)∨p Hk. Assosiatif
≡ ¬q∨p Hk. Idempoten
Hasilnya bukan 0 atau 1, ekspresi logika di atas adalah contingent.
1.9 INFERENSI LOGIKA
1.9.1 ATURAN PENARIKAN KESIMPULAN
1.9.1.1 ARGUMEN VALID DAN INVALID
Argumen adalah suatu pernyataan tegas yang diberikan oleh sekumpulan
proposisi P 1 , P 2 , .........,P n yang disebut premis (hipotesa/asumsi) dan menghasilkan
proposisi Q yang lain yang disebut konklusi (kesimpulan).
Secara umum di notasikan dengan P1
P2
Premis
P 1, P 2, .........., P n ├ Q atau dapat juga ditulis
Pn
∴Q Konklusi
Premis Konklusi
25
Q : Semua orang akan belajar komputer
Jika ditulis dalam bentuk notasi logika
Misal p : Office dan Delphi diperlukan
q : Semua orang belajar komputer
Maka argumen diatas dapat ditulis :
p→q, p ├ q (valid)
b. Misal p : Saya suka kalkulus
q : Saya lulus ujian kalkulus
Maka argumen p → q, p ├ q dapat ditulis
P1 : Jika saya suka kalkulus, maka saya akan lulus ujian kalkulus
P2 : Saya lulus ujian kalkulus
∴ Saya lulus ujian kalkulus (valid)
Untuk mengetahui suatu argumen apakah valid atau tidak maka dapat dilakukan
langkah-langkah sebagai berikut :
a. Tentukan premis dan konklusi argumen
b. Buat tabel yang menunjukkan nilai kebenaran untuk semua premis dan konklusi.
c. Carilah baris kritis yatitu baris diman semua premis bernilai benar.
d. Dalam baris kritis tersebut, jika nilai kesimpulan semuanya benar maka argumen
tersebut valid. Jika diantara baris kritis tersebut ada baris dengan nilai konklusi
salah maka argumen tersebut tidak valid.
Contoh:
Tentukan apakah argumen berikut ini valid atau invalid
a. p∨(q∨r), ¬r ├ p∨q
b. p⇒(q∨¬r), q⇒(p∧r) ├p⇒r
Penyelesaian
a. Jawab:
Baris p q r q∨r p∨(q∨r) ¬r p∨q
ke (Premis) (Premis) (konklusi)
1 T T T T T F T
2 T T F T T T T
3 T F T T T F T
4 T F F F T T T
5 F T T T T F T
6 F T F T T T T
7 F F T T T F F
8 F F F F F T F
26
Dapat dilihat pada tabel diatas bahwa baris 2, 4, dan 6 premisnya bernilai benar
semua. Kemudian lihat pada baris konklusi. Ternyata pada baris konklusi semuanya
bernilai benar. Maka argumen diatas adalah valid.
b. Silahkan Anda kerjakan!.
1.9.1.2 Metode Inferensi (Inference Method)
Metode Inferensi adalah suatu teknik/metode untuk menurunkan kesimpulan
berdasarkan hipotesa yang diberikan, tanpa harus menggunakan tabel kebenaran.
Beberapa metode inferensi untuk menentukan validitas adalah berikut:
1) Modus Ponen
Modus ponen atau penalaran langsung adalah salah satu metode inferensi dimana
jika diketahui implikasi ” Bila p maka q ” yang diasumsikan bernilai benar dan
antasenden (p) benar. Supaya implikasi p→q bernilai benar, maka q juga harus
bernilai benar.
Modus Ponen : p→q , p ├ q
atau dapat juga ditulis
p→q
p
――――
∴q
Contoh:
Jika digit terakhir suatu bilangan adalah 0, maka bilangan tersebut habis dibagi 10
Digit terakhir suatu bilangan adalah 0
―――――――――――――――――――――――――
∴ Bilangan tersebut habis dibagi 10
2) Modus Tollens
Bentuk modus tollens mirip dengan modus ponen, hanya saja premis kedua dan
kesimpulan merupakan kontraposisi premis pertama modus ponen. Hal ini
mengingatkan bahwa suatu implikasi selalu ekuivalen dengan kontraposisinya.
Modus Tollens : p→q, ¬q ├ ¬p
27
Atau dapat juga ditulis
p→q
¬q
――――
∴ ¬p
Contoh:
Jika digit terakhir suatu bilangan adalah 0, maka bilangan tersebut habis dibagi 10
Suatu bilangan tidak habis dibagi 10
―――――――――――――――――――――――――
∴ Digit terakhir bilangan tersebut bukan 0
Contoh:
Simon adalah siswa SMU
――――――――――――――――――――
∴ Simon adalah siswa SMU atau SMP
28
4) Penyederhaan Konjungtif (Simplification)
Inferensi ini merupakan kebalikan dari inferensi penambahan disjungtif. Jika
beberapa kalimat dihubungkan dengan operator ”∧”, maka kalimat tersebut dapat
diambil salah satunya secara khusus (penyempitan kalimat).
Contoh:
Langit berwarna biru dan bulan berbentuk bulat
―――――――――――――――――――――――――
∴ Langit berwarna biru atau ∴ Bulan berbentuk bulat
5) Silogisme Disjungtif
Prinsip dasar Silogisme Disjungtif (Disjunctive syllogism) adalah kenyataan
bahwa apabila kita dihadapkan pada satu diantara dua pilihan yang ditawarkan (A
atau B). Sedangkan kita tidak memilih/tidak menyukai A, maka satu-satunua
pilihan adalah memilih B. Begitu juga sebaliknya.
Silogisme Disjungtif : p∨q, ¬p ├q dan p∨q, ¬q ├ p
Atau dapat ditulis
p∨q atau p∨q
¬p ¬q
―――― ――――
∴q ∴p
Contoh:
Saya pergi ke mars atau ke bulan
Saya tidak pergi ke mars
――――――――――――――――――
∴ Saya pergi ke bulan
29
Transitivity : p→q , q→r ├ p→r
Atau dapat ditulis
p→q
q→r
―――――
∴ p→r
Contoh:
Jika hari hujan maka tanahnya menjadi berlumpur
Jika tanahnya berlumpur maka sepatu saya akan kotor
―――――――――――――――――――――――――
∴ Jika hari hujan maka sepatu saya akan kotor.
7) Konjungsi
Jika ada dua kalimat yang masing-masing benar, maka gabungan kedua kalimat
tersebut dengan menggunakan penghubung ”∧” juga bernilai benar.
Konjungsi
p
q
――
∴ p∧q
8) Dilema
Kadang-kadang, dalam kalimat yang dihubungkan dengan penghubung ”∨”,
masing-masing kalimat dapat mengimplikasikan sesuatu yang sama. Berdasarkan
hal itu maka suatu kesimpulan dapat diambil.
Dilema :
p∨q
p→r
q→r
―――
∴r
30
a. Jika kacamataku ada di meja dapur, aku pasti sudah melihatnya ketika
mengambil makanan kecil.
b. Aku membaca buku pemrograman di ruang tamu atau aku membacanya di
dapur.
c. Jika aku membaca buku pemrograman di ruang tamu, maka pastilah kacamata
kuletakkan di meja tamu.
d. Aku tidak melihat kacamataku ketika aku mengambil makanan kecil.
e. Jika aku membaca majalah di ranjang, maka kacamataku kuletakkan di meja
samping ranjang.
f. Jika aku membaca buku pemrograman di dapur, maka kacamata ada di meja
dapur.
Berdasar fakta-fakta tersebut, tentukan dimana letak kacamata tersebut!
Penyelesaian:
Untuk memudahkan penggunaan metode inferensi, kalimat-kalimat tersebut
dinyatakan dengan symbol-simbol logika, misalnya:
p : Kacamata ada di meja dapur.
q : Aku melihat kacamataku ketika mengambil makanan kecil.
r : Aku membaca buku pemrograman di ruang tamu.
s : Aku membaca buku pemrograman di dapur.
t : Kacamata kuletakkan di meja tamu.
u : Aku membaca buku pemrograman di ranjang.
w : Kacamata kuletakkan di meja samping ranjang
a. pq
b. r ˅ s
c. rt
d. ¬q
e. u w
f. sp
31
2. s p
¬p
¬s
3. r ˅ s
¬s
r
4. r t
r
t
Kesimpulannya: Kacamata ada di meja tamu
1.9.2 Kalimat Berkuantor (Quantifier Sentence)
Kalimat berkuantor adalah kalimat yang memuat ekspresi kuantitas obyek
yang terlibat, misalnya: semua, ada, beberapa, tidak semua, dan lain-lain.
Ada dua macam kalimat berkuantor:
1.9.2.1 Kuantor Universal (Universal Quantifier)
Kuantor universal yang disebut kuantor umum. Kuantor universal
menunjukkan bahwa setiap objek dalam semestanya mempunyai sifat kalimat yang
menyatakannya. Kita dapat meletakkan kata-kata “Untuk semua/setiap x” di depan
kalimat terbuka yang mengandung variabel x untuk menghasilkan kalimat yang
mempunyai suatu nilai kebenaran. Nilai x ditentukan berdasarkan semesta
pembicaraannya. Kuantor universal disimbolkan dengan “∀” (∀, dibaca semua,
seluruh, setiap).
Ciri – Ciri Kuantor Universal :
· P dimiliki oleh setiap X dalam semesta pembicaraannya.
· ( ∀ x), P(x)
· Sesuatu bernilai benar untuk semua individualnya.
Kuantor universal mengindikasikan bahwa sesuatu bernilai benar untuk semua
individual-individualnya. Perhatikan kalimat berikut ini :
“Semua gajah mempunyai belalai”
Maka jika predikat “mempunyai belalai” diganti dengan simbol B maka dapat ditulis :
G(x) → B(x), dapat dibaca “Jika x adalah gajah, maka x mempunyai belalai”. Tetapi
kalimat di atas belum berupa kalimat berkuantor karena kalimat diatas belum memuat
kata “semua”. Untuk itu perlu ditambahkan simbul kuantor universal sehingga
menjadi(∀x)(G(x) ⇒ B(x)), jadi sekarang dapat dibaca ” Untuk semua x, jika x adalah
gajah, maka x mempunyai belalai”.
32
Pernyataan-pernyataan yang berisi kata ”semua”, ”setiap”, atau kata lain yang sama
artinya, mengindikasikan adanya pengkuantifikasian secara universal, maka dipakai
kuantor universal. Dalam bahasa inggris, misalnya untuk orang ada kata ”every
people”, ”all people”, ”anybody”, “each people”, dan lain-lainnya.
Misalnya jika diketahui pernyataan logika, ”Setiap mahasiswa harus belajar dari buku
teks”, jika ingin ditulis dalam logika predikat, maka ditentukan misal B untuk “ harus
belajar dari buku teks”, sehingga jika ditulis B(x), berarti “x harus belajar dari buku
teks”. Kata “Setiap mahasiswa” mengindikasikan bernilai benar untuk setiap x, maka
penulisan yang lengkap adalah:
(∀x) Bx, dibaca “Untuk setiap x, x harus belajar dari buku teks”.
Akan tetapi notasi diatas belum sempurna karena x belum menunjuk mahasiswa,
maka harus lebih ditegaskan dan sebaiknya ditulis :
(∀x)(M(x) → B(x)), dibaca “Untuk setiap x, jika x mahasiswa, maka x harus belajar
dari buku teks”.
Langkah untuk melakukan pengkuantoran universal:
Perhatikan pernyataan berikut ini :
“Semua mahasiswa harus rajin belajar”
Untuk melakukan pengkuantoran universal pada pernyataan tersebut maka dilakukan
langkah-langkah seperti berikut :
Carilah lingkup (scope) dari kuantor universalnya, yaitu “Jika x adalah mahasiswa,
maka x harus rajin belajar”. Selanjutnya akan ditulis: mahasiswa(x) ⇒ harus rajin
belajar(x)
Berilah kuantor universal di depannya (∀x)(mahasiswa(x) → harus rajin belajar(x))
Ubahlah menjadi suatu fungsi (Ax)(M(x) → B(x))
Contoh
”Semua tanaman hijau membutuhkan air untuk tumbuh ”.
Jika x adalah tanaman hijau, maka x membutuhkan air untuk tumbuh Tanaman
hijau(x) → membutuhkan air untuk tumbuh(x)
(∀x) (Tanaman hijau(x) ⇒ membutuhkan air untuk tumbuh(x))
(∀x)(T(x) →A(x))
”Semua artis adalah cantik”.
Jika x adalah artis, maka x cantik, Artis(x) → cantik(x).
(∀x)( Artis(x) → cantik(x))
33
(∀x)(A(x) → C(x))
Jika diketahui persamaan x+3>10, dengan x adalah himpunan bilangan bulat positif A
>5 .Tentukan nilai kebenaran (∀x∈A) x+3>10.Untuk menentukan nilai kebenarannya,
maka harus dicek satu persatu.
A={1,2,3,4}. Jika kuantor universal, maka untuk semua nilai A yang dimasukkan
harus memenuhi persamaan yaitu x+3>10
Untuk A=1, maka 1+3>10 ≡ 4>10 Memenuhi
A=2, maka 2+3>10 ≡ 5>10 Memenuhi
A=3, maka 3+3>10 ≡ 6>10 Memenuhi
A=4, maka 4+3>10 ≡ 7>10 Memenuhi
Karena semua himpunan A memenuhi, maka (∀x) x+3>10 bernilai benar. Tapi jika
ada satu saja nilai A yang tidak memenuhi, misalnya dimasukkan A=8, sehingga
8+3>10 ≡ 11>10, dimana hasilnya salah maka (∀x) x+3>10 bernilai salah. Nilai x
yang menyebabkan suatu kuantor bernilai salah disebut dengan contoh penyangkal
atau counter example.
1.9.2.2 Kuantor Eksistensial (Existential Quantifier)
Simbol ∃ dibaca “ada” atau “beberapa” atau “terdapat” disebut kuantor
khusus. Jika p(x) adalah fungsi pernyataan pada x∃ himpunan tertentu A (himpunana
A adalah semesta pembicaraan) maka ( Î A) p(x) atau x! p(x) atau ∃ x p(x) adalah
suatu pernyataan yang ∃ dibaca “Ada x elemen A, sedemikian hingga p(x) merupakan
pernyataan” atau “Untuk beberapa x, p(x)”. ada yang menggunakan simbol ! Untuk ∃
menyatakan “Ada hanya satu”.
Contoh
“Beberapa orang rajin beribadah”.
Jika ditulis dengan menggunakan logika predikat, maka:
”Ada x yang adalah orang, dan x rajin beribadah”.
(∃x)(Orang(x) ∧ rajin beribadah(x))
(∃x)(O(x) ∧ I(x))
“Ada binatang yang tidak mempunyai kaki”.
“Terdapat x yang adalah binatang, dan x tidak mempunyai kaki”.
(∃x)(binatang(x) ∧ tidak mempunyai kaki(x))
(∃x)(B(x) ∧¬K(x))
34
Misalkan B adalah himpunan bilangan bulat. Tentukan nilai kebenaran (∃x ∈
B)(x2=x).
(∃x ∈ B)(x2=x) dapat dibaca “Terdapat x yang adalah bilangan bulat dan x memenuhi
x^2=x”. (∃x ∈ B)(x^2=x) akan bernilai benar jika dapat ditunjukkan paling sedikit
ada satu bilangan bulat yang memenuhi x^2=x.
Misal x= -1, maka 〖-1〗^21 Tidak memenuhi
x= 1, maka 〖(1)〗^2=1 Memenuhi
Karena ada satu nilai yang memenuhi, yaitu x=1, maka pernyataan di atas bernilai
benar.
Ingkaran Dari Pernyataan Berkuantor.
Dari materi-materi yaang telah dibahas ingkaran dari sebuah pernyataan paling kurang
ada tiga hal yang perlu ingat kembali yaitu:
a) Ingkaran/negasi dari pernyataan p,dilambangkan dengan ~p
b) Jika p pernyataan yang bernilai benar maka ~p bernilai salah
c) Jika p pernyataan yang bernilai salah,maka ~p bernilai benar.
Ketentuan-ketentuan diatas juga berlaku Apabilah p merupakanpernyaataan
berkuantor Universal maupu Eksistensial.
a. Ingkaran dari pernyataan Berkuantor Universal.
Contoh:
Diketahui pernyataan berkuantor Universal
P: semua bilangan prima adalah bilangan Asli ,tentukan ~p serta nilai kebenaranya.
Jawab:
P: semua bilangan prima adalah bilangan Asli merupakan pernyataan benar”sekurang-
kurangnya ada satu bilangan prima yang bukan bilangan Asli”dengan demikian
ingkaran P adalah:
~p: ”tidak semua bilangan prima adalah bilangan asli”atau
~p: ”Beberapa bilangan prima bukan bilangan asli”
Berdasarkan contoh diatas tampak bahwa ingkaran dari pernyataan Berkuantor
Universal adalah sebuah pernyataan berkuantor eksistensial,secara umum,ingkaran
pernyataan berkuantor Universal dapat ditentukan sebagai berikut:
(dibaca Ingkaran dari semua x,yang berlaku P(x)ekuivalen dengan ada x yang bukan
P(x)).
b. Ingkaran dari pernyataan Berkuantor Eksistensial.
35
Diketahui pernyataan berkuantror Eksistensial
P: beberapa bilangan prima adalah bilangan genap”Tentukan ~p serta nilai
kebenaranya?
Jawab:
P:beberapa bilangan prima adalah bilangan genap merupakan pernyataan benar”
sekurang-kurangnya ada sebuah bilangan prima yang merupakan bilangan genap
“sehingga ingkaran p adalah:
~p:”semua bilangan prima bukan bilangan genap”.
~p:”tidak ada bilangan prima yang bilangan genap”
~p:”jika x adalah bilangan prima,maka x bukan bilangan genap”
Jadi jelas bahwa ~p bernilai salah,maka berdasarkan contoh diperoleh ingkaran dari
pernyataan berkuantor eksistensial adalah: ,dibaca ingkaran dari “ada x berlaku
P(x)”ekuivalen dengan “untuk semua x bukan p(x)”
Soal dan Penyelesaian
1. Diberikan kalimat logika:
if (if q then not p) then
(not q and p) else
Not ((p or s) if and only if (if r then))
Tentukan nilai kebenarannya jika:
a. Interpretasi p, q, r, dan s true
b. Interpretasi p, q, r, dan s false
c. Interpretasi p, dan q true, r, dan s false
d. Interpretasi p, dan q false, r, dan s true
Penyelesaian:
a. Untuk interpretasi p, q, r, dan s true maka nilai kalimat logika tersebut
adalah false.
b. Untuk interpretasi p, q, r, dan s false maka nilai kalimat logika tersebut
adalah false.
c. Untuk interpretasi p, q true, r dan s false maka nilai kalimat logika
tersebut adalah false.
d. Untuk interpretasi p, q false, r dan s true maka nilai kalimat logika
tersebut adalah false.
36
e. Untuk interpretasi p, q true, r dan s false maka nilai kalimat logika
tersebut adalah true.
2. Dengan menggunakan tabel kebenaran, tentukan nilai kebenaran dari kalimat
logika berikut:
a. [p and (if r then s)] in and only if [(if r then s) and p]
b. (if not p then not s) or [(if q then s) and p]
Penyelesaian:
a. Kalimat logika
(p and (if r then s)) if and only if
((if r then s) and p)
Akan menghasilkan delapan kemungkinan interpretasi karena ada tiga
proposisi yang menyusun kalimat logika tersebut. Dengan demikian, tabel
kebenaran yang bersesuaian adalah:
p r s rs p˄(rs) (rs)˄p p˄(rs)↔(rs)˄p)
T T T T T T T
T T F F F F T
T F T T T T T
T F F T T T T
F T T T F F T
F T F F F F T
F F T T F F T
F F F T F F T
Setiap interpretasi yang diberikan pada kalimat logika di atas
menghasilkan nilai true sehingga kalimat tersebut memiliki sifat valid.
b. Table kebenaran yang bersesuaian dari kalimat logika berikut adalah:
(if not p then not s) or ((if q then s) and p)
p q s ¬p ¬s ¬p¬s qs (qs)˄p (¬p¬s)˅((qs)˄p)
T T T T T T T T T
T T F F F F T F F
T F T T T T T T T
T F F T T T T T T
F T T T F F T F F
F T F F F F T F F
F F T T F F T F F
F F F T F F T F F
Setiap interpretasi yang diberikan pada kalimat logika di atas menghasilkan
nilai true sehingga kalimat tersebut memiliki sifat valid.
37
3. Dengan menggunakan pohon semantik, tentukan validitas kalimat logika
berikut:
a. f or not f
b. (p or q) or not (p or q)
Penyelesaian:
a. Kalimat logika
f or not f
dengan pohon semantic, jika diberikan nilai f adalah true (pada node 2)
maka not f bernilai false. Sebaliknya, jika diketahui nilai f adalah false
maka not f adalah true. Dengan demikian, berdasarkan aturan semantic
(aturan OR), nilai dari kalimat tersebut adalah true, seperti pada pohon
semantic berikut:
2 3
b. Kalimat logika
(p or q) or not (p or q)
dengan pohon semantic, jika diberikan nilai p adalah true (node 2), maka
sesuai aturan OR, nilai dari kalimat logika selalu true. Kemudian, bila
diberikan nilai p adalah false, maka nilainya tergantung pada q. Jika nilai
q adalah true, maka kalimat di atas adalah true, dan jika q adalah false,
maka not false adalah true sehingga nilai dari kalimat logika di atas secara
keseluruhan adalah true.
Soal-Soal Latihan
1. Apa yang dimaksud dengan kalimat deklaratif? Berikan contoh kalimat
deklaratif.
2. Apa yang dimaksud dengan kalimat terbuka ? berikan contoh kalimat terbuka.
38
3. Ubahlah kalimat berikut dengan symbol konvensional.
a. (if p then q) or (if q then p)
b. (not q) or not (if p then (not q) and p)
c. (if p then (not q) if and only if not (p and q)
d. (if (p or q) then r) if and only if ((if p then r) and (if q then r))
e. (p if and only if (q if and only if r)) if and only if ((p if and only if q) if and
only if r)
f. (if p then q and r else (not q) and s) if and only if (if q then p and r else
(not p) and s).
4. Diberikan kalimat logika:
if (if q then p) then (q and not p) else
((not q and s) if and only if (if r then not p))
Tentukan nilai kebenarannya jika:
a. Interpretasi p, q, r, dan s true
b. Interpretasi p, q, r, dan s false
c. Interpretasi p, q true, r dan s false
d. Interpretasi p, q false, r dan s true
5. Diberikan kalimat logika sebagai berikut:
if ((if not q then p) or not q) then
(p if and only if q) else not (s and r)
Tentukan nilai kebenaran dari kalimat logika di atas jika diketahui:
a. Interpretasi p, q, r, dan s adalah true
b. Interpretasi p, q, r, dan s adalah false
c. Interpretasi p dan q true, serta r dan s false
d. Interpretasi p dan q false, serta r dan s true
e. Interpretasi p dan s true, serta r dan s false
6. Dengan mengasumsikan p dan r benar, serta q dan s salah, tentukan nilai
kebenaran dari setiap kalimat logika (sentence) berikut:
a. (p and (if r then s)) if and only if ((if r then s) and p)
b. (if not p then and s) or ((if q then s) and p)
c. ((p or q) and not r) if and only of ((if p then r) and ( if q then r)
d. if ((if not q then p) or not q) then (p if and only if q) else not (r and q)
e. if (if q then not p) then (not q and p) else not ((p or s) if and only if (if r
then p))
39
7. Dengan menggunakan tabel kebenarana atau pohon semantic, tentukan nilai
kebenaran kalimat logika berikut:
a. ((p or q) and not r) if and only if ((if p then r) and (if q then r)
b. if ((if not q then p) or not q) then (p if and only if q) else not (r and q)
c. (p and (if r then s)) if and only if ((if r then s) and p)
d. (if not p then not s) or ((if q then s) and not r)
e. if ((if not q then p) or not r) then (p if and only if q) else not (r and not p)
Nyatakan kalimat-kalimat di atas dengan symbol-simbol logika. Kemudian,
simpulkan apakah saya rajin kuliah?
8. Anjas dihadapkan pada tiga wanita, Dhewiek, Aemh, danAirin. Seandainya
diberikan fakta-fakta sebagai berikut:
a. Anjas mencintai paling sedikit satu dari tiga orang
b. Jika Anjas mencintai Dhewiek dan tidak mencintai Aemh maka ia juga
mencintai Airin.
c. Anjas mencintai keduanya, Airin dan Aemh, atau Anjas tidak mencintai
yang mana pun.
d. Jika Anjas mencintai Airin maka Anjas mencintai Dhewiek
Dari ketiganya, mana yang Anjas cintai?
1.10 Logika Kombinasional
Rangkaian digital merupakan komponen perangkat keras (hardware) yang
memanipulasi informasi biner. Rangkaian diimplementasikan dengan menggunakan
transistor-transistor dan antar hubungan dalam peralatan semikonduktor kompleks
yang disebut IC. Masing-masing rangkaian dasar disebut gerbang lojik. Masing-
masing gerbang menyelenggarakan operasi lojik tertentu. Keluaran dari gerbang
diterapkan sebagai masukan dari gerbang lain untuk membentuk suatu rangkaian
digital.
40
BAB II
GERBANG LOGIKA
42
Simbol dan Tabel Kebenaran Gerbang OR (OR Gate)
43
Simbol dan Tabel Kebenaran Gerbang NAND (NAND Gate)
44
Simbol dan Tabel Kebenaran Gerbang X-OR (X-OR Gate)
Bila digambarkan dengan table kebenaran maka operasi lojik dasar memiliki table
sebagai berikut:
Gambar-gambar Gerbang Logika dan Penjelasaannya:
Output
A
OR
B
45
Ini adalah Gerbang OR, Gerbang ini adalah Gerbang penjumlahan dari
masing-masing input yang ada dan akan menghasilakn Output 0 atau 1.
Contoh :
Output
A
NOR
B
Ini adalah Gerbang NOR ( Not OR ),Gerbang ini adalah kebalikan dari
OR,jika nilai yang dihasilkan Gerbang OR adalah 1 maka NOR adalah 0,dan
begitupun sebaliknya.
Contoh :
Output
A
AND
B
46
Contoh :
Output
A
NAND
B
Ini adalah Gerbang NAND ( Not AND ),Gerbang ini adalah kebalikan dari
Gerbang AND,jika nilai yang dihasilkan Gerbang AND adalah 1 maka
NAND adalah 0,dan begitupun sebaliknya.
Contoh :
Output
A
NOT
B
Ini adalah Gerbang NOT,Gerbang NOT adalah Gerbang yang jika inputnya
1 maka outpunya 0 dan jika inputnya 0 maka outpunya 1.
Contoh :
Input Output
1 0
0 1
47
Output
A
XOR
B
Ini adalah Gerbang XOR,Gerbang ini adalah Gerbang yang jika Inputnya
sama maka outpunya 0,namun jika Inputnya berbeda outputnya 1.
Contoh :
Rumus
(n=2) (22=4)
48
Cukup mengerti kan teman-teman ?, jadi nilai yang Input C itu standarnya
adalah 0101, dan Input yang B adalah kelipatan 2 dari nilai 0 dan 1, dan
yang A adalah nilai kelipatan 4 dari input B.
Didalam Gerbang Logika tidak mengenal Pembagian,disini yang kita
lakukakan adalah Penjumlahan dan Perkalian saja,bagi teman-teman yang
sudah paham dengan Perkalian dan Penjumlahan bilangan biner tentu saja
materi ini akan mudah dimengerti.
Dan bagi teman-teman yang belum begitu paham dengan Penjumlahan
dan Perkalian bilangan Biner silahkan dipelajari dulu,karena materi ini
sangat berhubungan sekali dengan pemahaman teman-teman mengenai
Bilangan Biner.
Silahkan teman-teman perhatikan baik-baik Contoh soal dibawah ini,disini
saya akan mencoba untuk gerbang logika yang menggunakan 3 input
dengan menggunakan Gerbang AND.
Caranyapun sama dengan yang diatas,namun disini kita mencoba
menggunakan (n=3) atau (23=8),berarti jumlah input yang harus kita
hitung adalah 8 kali.
Contoh Soal :
Output
A
B AND
B
49
Jawab :
Tabel Kebenaran
Soal diatas adalah soal Gerbang AND dengan 3 masukan, yang mana
Gerbang ini adalah gerbang Perkalian dari masing-masing Input.
Disini saya akan mencoba membuat Operasi Gerbang Logika dengan
NOR,NAND dan OR menjadi satu,caranya sama seperti diatas dengan 3
masukan, akan tetapi disini ada 3 Gerbang yang harus kita hitung,
berdasarkan dengan penjelasan saya diawal tadi.
Contoh :
a b c
NOR
OR
NAND
50
Jawab :
Tabel Kebenaran
Penjelasan :
Bahwa Inputnya ada di A,B dan C.Nilai A,B dan C akan dikalikan dengan
menggunakan metode dari Gerbang NOR yang mana gerbang ini adalah penjumlahan
dari inputnya dan menghasilkan output kebalikan dari penjumlahan itu sendiri.Dan
Gerbang NAND sama seperti gerbang NOR,yang mana gerbang ini adalah perkalian
dari inputnya dan menghasilkan output kebalikan dari perkalian itu sendiri.Dan
Outputnya adalah Gerbang OR yang mana hasil dari Gerbang ini adalah Penjumlahan
antara Gerbang NOR dan NAND.
Jangan sampai salah yah teman-teman,jika Gerbang NAND itu berarti kebalikan hasil
dari perkalian Gerbang AND dan Gerbang NOR itu berarti kebalikan hasil dari
penjumlahan Gerbang OR.
2.4 Peta Karnaugh
Peta karnough adalah metode penyederhanaan persamaan logika/rangkaian
logika dengan peta yang disusun mirip dengan table kebenaran.Penyelesaian masalah
peta karnaugh sebenarnya tidak rumit,namun adakalanya perlu pemahaman logika
mendalam.
Peta Karnaugh ini bertujuan untuk menyederhanakan suatu gerbang logika yang
memiliki 2 input atau lebih dengan hanya 1 output.
51
Gambar Peta Karnaugh.
Contoh Peta Karnaugh dengan 2 Input.
1 0
0 1
1 1 0 1
100 101 111 110
1 1 0 1
52
Contoh Gerbang Logika yang dapat Disederhanakan : 2 Input
f(x.y)=(x+y)+x.y
x y
NOR
OR
NAND
Tabel Kebenaran
Y
Y
0 1
Y 1 1
X + Y
x y Output
OR
Ini adalah Gerbang Logika yang sudah disederhanakan, maka hasilnya adalah
menjadi x+y.
53
Dari pengerjaan diatas bisa kita lihat bahwa Peta Karnaugh bekerja dengan
memanfaatkan nilai Output 1 yang Horizontal maupun Vertikal,diatas bisa teman-
teman lihat bahwa sudut yang pertama adalah mengarah kepada variable X,sedangkan
sudut yang kedua mengarah keatas kepada variable Y,maka bisa kita simpulkan
bahwa hasil akhirnya ialah x + y,dengan begitu Gerbang Logika penyederhanaannya
adalah x + y dengan hasil Otput dengan Gerbang OR.
Contoh Gerbang Logika yang dapat disederhanakan : 3 Input
f(x,y,z)=(x+y+z) y.z
x y z
OR
AND NAND
Tabel Kebenaran
Y,Z
1 1 0 1
1 1 0 1
Y Z1
54
Maka Gerbang Logika yang telah disederhanakan menjadi :
f(x.y,z)=y1 + yz1
y z
AND
OR
Ini adalah Gerbang Logika yang sudah disederhanakan,maka hasilnya adalah menjadi
Y1+Z1.
Dari pengerjaan diatas bisa kita lihat bahwa Peta Karnaugh bekerja dengan
memanfaatkan nilai Output 1 yang Horizontal maupun Vertikal, diatas teman-teman
bisa lihat bahwa disitu angka 1 adalah yang berarti (aksen), jadi disini variable Z
sudah tidak digunakan lagi karena variable X adalah bernilai 0, dan yang diambil
adalah variable y dan z, maka bisa kita simpulkan bawa hasil akhirnya ialah Y1 + Z1,
dengan begitu Gerbang Logika penyederhanaannya adalah Y1 + Z1 dengan hasil
Output adalah Gerbang OR.
Silahkan teman-teman coba kerjakan beberapa Soal dibawah ini, agar dapat lebih
memahami apa yang sudah saya contohkan dan jabarkan di atas.
Latihan Soal :
1. Ubahahlah nilai dibawah ini dengan Gerbang Logika.
f ( x , y )1 + x ( x + y )
2. Rangkaian Logika
f( x , y ) = xy + y1
x y
AND
55
3. Rangkaian Logika
f( x , y , z) =( x1y + z )1 + ( x + y ) z
x y z
NAND
OR
OR AND OR
4. Tabel Kebenaran
X Y Z OR AND NAND
0 0 0 0 0 1
0 0 1 1 0 1
0 1 0 1 0 1
0 1 1 1 1 0
1 0 0 1 0 1
1 0 1 1 0 1
1 1 0 1 0 1
1 1 1 1 1 0
XOR
AND AND
OR
57
Dalam semantic tree di atas, ditunjukkan bahwa P bernilai true dalam node 2, yaitu
dengan menandai setiap pemunculan P dalam kalimat G dengan huruf T (dari true).
58
Sampai di sini telah diperlihatkan bahwa nilai G di node 2 adalah true deugan
menandai node dengan T.
Analisa selanjutnya adalah pada node 3, di mana P bernilai false.
Node 3 : if (if P then Q) then (if(not P) then (not Q))
F F
Karena P bernilai false, kalimat-kalimat bagian (if P then Q) dan (not P) keduanya
bernilai true masing dengan aturan if-then dan not); yaitu diperoleh
Node 3 : if (if P then Q) then (if(not P) then (not Q))
TF T F
Sayangnya jika antecedent dari suatu implikasi bernila true, aturan if-then belum bisa
digunakan untuk menentukan nilai kebenaran suatu implikasi tanpa terlebih dahulu
mengetahui apakah consequent nya bernilai true atau false. Sehingga tanpa dengan
mengetahui apakah (not Q) bernilai true atau false, nilai kebenaran dan consequent (if
(not P) then (not Q)) belum bisa ditentukan, dan tentunya tanpa dengan mengetahui
nilai kebenaran dan consequent (if (not P) then (not Q)) kita belum bisa menentukan
nilai kebenaran dan keseluruhan kalimat G. Oleh karena itu analisa kita di node 3
disebut inconclusive.
59
Mulai dari node 3 (untuk kasus di mana P bernilai false), kita perhatikan dua
kemungkinan kebenaran untuk Q yaitu :
Pada node 4, Q bernilai true, maka dengan menerapkan aturan-aturan not dan if-
then, diperoleh sebagai berikut
Node 4 : if (if P then Q) then (if(not P) then (not Q))
F TF T F T F FT
60
Pertama-tama diandaikan E tidak valid, berarti E bernilai false di bawah suatu
interpretation I hal ini kita tunjukkan dengan memberi catatan (annotation) di bawah
konektif if dengan huruf F.
Nilai kebenaran dari antecedent ((not P) or (not Q)) tidak bisa digunakan
untuk menentukan nilai-nilai kebenaran dan kalimat-kalimat bagiannya (not P) dan
(not Q) secara tunggal (ingat aturan or).
Karena consequent (not (P and Q)) bernilai false, kalimat bagiannya (P and Q)
bernilai true. Kemudian dengan menerapkan aturan and, maka kedua simbol
proposisional P dan Q masing-masing bernilai true. Sehingga
61
2.7 Skema Kalimat Valid (Valid Sentence Schemata)
Dalam bagian ini akan digunakan sentences sebagai satu kesatuan dengan
simbol-simbol script E, G, H, ada menggunakan simbol-simbol proposisional biasa P,
Q R S... . Simbol-simbol semacam ini bisa mewakili sebarang kalimat dalam
propositional logic. Sebagai contoh, apabila F or (not F) adalah valid, maka bisa untuk
menyimpulkan bahwa kalimat-kalimat
P or (not P), Q or (not Q), (P and Q) or (not(P and Q)),
dan keluarga tak-hingga (infinitely families) dan kalimat-kalimat yang lain semuanya
valid. Secara tidak sentences semacam ini akan disebut sebagai sentence schema (atau
skema kalimat).
Katalog (Catalog)
Dalam bagian ini kami akan menyajikan katalog beberapa skema kalimat valid
yang sangat penting.
• Kalimat-kalimat valid dasar
• Aturan true-false
62
• Komutatifitas
• Asosiatifitas
• Transifitas
• Hukum Kontrapositif
• Distributifitas
63
• Aturan negasi
• Hukum Reduksi
dan seterusnya, semuanya ekuivalen. Untuk itu, kadang-kadang pasangan kurung bisa
dihilangkan, seperti
P and Q and R and S.
Sehingga konjungsi multi (multiple conjunction) seperti
F1 and F 2 and F3 and... and Fn merupakan cara singkat untuk menuliskan ((... ((F1
and F2) and F3) and...) and Fn).
Secara serupa, disjungsi multi (multiple disjunction) seperti
64
F1 or F 2 or F3 or... or Fn
merupakan cara sigkat untuk menuliskan
((... ((F1 or F2) or F3) or...) or Fn).
Selanjutnya bisa diturunkan aturan-aturan semantik untuk konektif-konektif multi
berikut:
• Konjungsi Multi - Multiple Conjunction
F1 and F2 and F3 and... and Fn
bernilai true precisely when masing-masing “konjung” (conjuct)-nya F1 , F2, F3,
... dan Fn bernilai true.
• Disjungsi Multi - Multiple Disjunction
F1 or F2 or F3 or... or Fn
bernilai true precisely when paling sedikit satu dari “disjung” (disjunct)-nya F1, F2, ...
dan Fn bernilai true.
2.9 Substitusi (Substitution)
Selanjutnya, akan dibedakan antara penggantian keseluruhan (total
substitution) dengan penggantian sebagian (partialsubstitution)
Substitusi Total - Total Substitution
Operator memungkinkan melakukan penggantian terhadap semua pemunculan
kalimat bagian dari kalimat yang dibenikan dengan kalimat bagian lain.
Definisi (subtitusi total – total substitution)
Jika F, G, dan H merupakan kalimat-kalimat, maka substitusi total dengan notasi
Perhatikan juga bahwa jika kalimat bagian yang akan diganti tidak muncul dalam
kalimat, substitusi tidak akan berpengaruh.
Sehingga hasil dari
65
Catatan – Remark (konjungsi dan disjungsi multi)
Dalam menerapkan operator substitusi, kita hams mengingat kembali bahwa
konjungsi multi
F1 and F2 and...and Fn
merupakan cara tulis singkat untuk kalimat
maksudnya adalah
Menghasilkan (P and Q R, yaitu kalimat itu sendiri. Karena (Q and R) tidak muncul
dalam kalimat.
Catatan serupa juga berlaku untuk disjungsi multi.
F1 or F2 or … or Fn
Operator substitusi mempunyai sifat-sifat sederhana berikut:
66
beberapa, tetapi tidak perlu semuanya, pemunculan-pemunculan kalimat bagian,
kalimat bagian dari kalimat yang diberikan dengan kalimat yang lain.
2.9.1 Definisi Substitusi Parsial (Partial Substitution)
Jika F, G, dan H merupakan kalimat-kalimat, maka substitusi parsial dengan
notasi
Merupakan kalimat yang dihasilkan dari penggantian nol, atau satu, atau
dua, ..., atau semua pemunculan G dalam F dengan H.
Hasilnya adalah
Catatan - Remark
Untuk sebarang kalimat-kalimat F, G, dan H, kalimat yang ditunjukkan oleh substitusi
total
merupakan salah sam kalimat yang mungkin ditunjuk oleh substitusi parsial
Ini karena kalimat yang diperoleh dengan mengganti semua pemunculan G dalam F
dengan H adalah salah satu dari kalimat-kalimat yang diperoleh dengan mengganti
nol, satu, atau lebih pemunculan dari G dalam F dengan H.
Operator substitusi parsial adalah invertible dalam arti bahwa salah satu dari
hasil-hasil yang mungkin dan substitusi parsial adalah F sendiri. Sebagai contoh,
67
P or Q
adalah salah satu hasil yang mungkin dari
adalah P or Q
2.9.2 Substitusi Multi - Multiple Subsitutión
Substitusi multi merupakan perluasan dan substitusi tunggal (atau substitusi
saja, yang kan dalam bagian sebelumnya). Dengan substitusi multi, bisa dilakukan
penggantian untuk dan sam kalimat bagian dalam suatu kalimat dengan kalimat
bagian-kalimat bagian lain.
Penggangian terhadap masing-masing kalimat bagian dilakukan secara bersamaan
(simultaneously). Sebagaimana dalam substitusi tunggal, dalam substitusi banyak juga
dibedakan antara substitusi total dan substitusi pansial.
2.9.3 Substitusi Multi Total Total Multiple Substitution
Jika F, G1, G2, ..., Gm, dan H1, H2, ..., Hm merupakan kalimat-kalimat, maka
substitusi total dengan notasi
merupakan kalimat yang dihasilkan dan penggantian semua pemunculan G1, G2,
..., Gm dalam F masing-masing dengan H1, H2, .., Hm.
68
Sebagai contoh, perhatikan substitusi parsial berikut
Hasil dari substitusi tersebut adalah kalimat if((P and Q) and Q) then (P or R) else
(P or R)
2.9.4 Substitusi Multi Parsial - Partial Multiple Substitution
Secara serupa, substitusi parsial multi didefinisikan sebagai berikut.
Jika F, G1, G2, ..., Gm dan H1, H2, ..., Hm merupakan kalimat-kalimat, maka
substitusi parsial dengan notasi.
merupakan kalimat yang dihasilkan dari penggantian nol satu, ..., atau semua
pemunculan G1, G2, ..., Gm, dalam F masing-masing dengan H1, H2, ..., Hm.
Sebagai contoh, perhatikan substitusi parsial berikut
69
{mengganti kedua pemunculan pertama dari P, dan
pemunculan Q or R)}
Secara keseluruhan, substitusi parsial di atas bisa menunjukkan delapan
kalimat. Perhatikan bahwa, penggantian-penggantian dalam substitusi multi
dilakukan secara simultan dalam sam tahap. Sehingga hasil dan substitusi total
adalah kalimat Q (ingat bukan K). Berbeda dengan substitusi total berulang
Dalam kasus ini, kalimat bagian P muncul dalam kalimat bagian (P or Q), dan
keduanya akan diganti. Menurut kesepakatan (aturan), bahwa kalimat bagian paling
besar (outermost subsentence), dalam hal ini (P or Q) adalah kalimat bagian yang
terpilih untuk diganti. Sehingga, hasil dari substitusi total di atas adalah kalimat S dan
bukan kalimat (R or Q)
70
interpretasi diperluas, dengan baru ρ←τ. Jelasnya jika I tidak memberi nilai apapun
ke suatu symbol proposisional selain ρ, maka bukan interpretasi diperluas.
Sebagai contoh, perbatikan interpretasi I dengan Q ← true dan R← false.
Maka retasi diperluas, dengan merupakan interpretasi dengan P ← false, Q ← true
dan R ←false. Selanjutnya, interpretasi diperluas <Q ← false> o I merupakan
interpretasi di mana Q ← false, dan R ← false. Pemberian awal untuk Q oleh I telah
diganti (superseeded).
Suatu interpretasi bisa diperluas beberapa kali dalam waktu berurutan.
Sehingga untuk suatu interpretasi I, simbol-simbol proposisional ρ1, ρ2, ... , ρn dan
nilai-nilai kebenaran τ1, τ2, ... , τn, maka notasi
Penjelasan,
jika ρ1 dan ρ2 berbeda, maka dua multzply extended interpretations berikut
Sebagai contoh perhatikan lagi suatu interpretasi I di mana Q ← true dan R ← false
maka <P ← true > o <Q ← false> o <P←false> o I merupakan interpretasi di mana P
← true, Q ← false, dan R ← false.
Dalam contoh di atas, conflicting assignments terhadap P muncul dalam multiply
extended interpretation, tetapi pemberian nilai paling kiri, yaitu P ← true
71
menggantikan pembenian nilai paling kanan, P← false. Demikian juga, Q ← false
dalam multiply extended menggantikan pemberian nilai awal ke Q di bawah I.
2.9.6 Kesepakatan (Agreement)
Definisi (Agreement)
Dua interpretasi I dan J agree-on suatu kalimat F apabila:
Nilai dari F dibawah I sama dengan nilai dari F dibawah J, atau baik I maupun J
bukan merupakan interpretasi untuk F.
Sebagai contoh, perhatikan dua interpretasi I dan J dengan
dan
karena I dan J agree-on simbol-simbol proposisional P dan Q dan F, maka kita bisa
menyimpulkan bahwa I dan J agree-on F.
72
Observasi berikut menghubungkan pengertian agreement dengan pengertian extended
interpretation.
G valid
Bukti :
Menurut proposisi di atas diketahui bahwa, F implies G dan F valid, dan akan
diperlihatkan bahwa G valid.
Untuk membuktikan bahwa G valid, cukup dipenlihatkan bahwa, untuk sebarang
interpretasi untuk G, G bernilai true di bawah interpretasi I.
Diketahui bahwa F bernilai true di bawah setiap interpretasi untuk F (karena
diketahui F valid), akan tetapi jika ada beberapa simbol yang proposisional yang
muncul dalam F dan muncul dalam G, maka I belum cukup untuk menjadi interpretasi
untuk F (karena ada kemungkinan bahwa I tidak meng-assign suatu nilai kebenaran ke
suatu simbol proposisional dalam F). Selanjutnya, kita akan memperluas interpretasi I
menjadi suatu interpretasi untuk F sebagai berikut:
Misal ρ1, ρ2, ... , ρn merupakan semua simbol proposisional muncul dalam F tetapi
tidak muncul dalam G, dan missal τ1, τ2, ... , τn merupakan sebarang nilai-nilai
kebenaran, true atau false.
Maka interpretasi yang diperluas
73
adalah suatu interpretasi baik untuk F maupun untuk G.
Karena menurut yang diketahui bahwa F valid, berarti (dengan definisi
validitas) kita tahu bahwa F bernilai true di bawah J.
Karena diketahui bahwa F implies G, kita bisa simpulkan (dengan definisi) bahwa G
bernilai true di bawah J.
Karena ρ1, ρ2, ... , ρn tidak muncul dalam G, (dengan definisi J) bahwa I dan J agree-
on simbol-simbol proposisional dan G.
Sehingga (dengan proposisi agreement) I dan J agree-on G, yaitu, G
mempunyai nilai kebenaran sama di bawah I maupun J. Karena kita telah
membuktikan bahwa G bernilai true di bawah J, maka bisa disimpulkan bahwa G
bernilai true di bawah I.
Karena I merupakan sebarang interpretasi untuk G maka terbukti bahwa G
valid, seperti yang akan kita perlihatkan
2.10.3 Ekuivalensi dan Validitas (Equivalence and Validity)
Dalam bagian ini akan diperlihatkan suatu sifat serupa dan relasi ekuivalensi.
Sebelumnya sudah diperlihatkan bahwa dua kalimat F dan G ekuivalen precisely
when kalimat (F if and only if G) valid, dan dua kalimat F dan G ekuivalen pretisely
when F implies G dan G implies F
2.10.3.1 Proposition (ekuivalensi dan validitas)
Untuk sebarang dua kalimat F dan G,
jika F dan G ekuivalen, maka F valid precisely when G valid.
2.10.3.2 Rantai Ekuivalensi (Chains Of Equivalences)
Dalam katalog telah disebutkan bahwa penghubung ekuivalensi mempunyai
sifat transitif, yaitu:
74
Maka kita bisa menyimpulkan bahwa F merupakan kalimat valid.
Karena F ekuivalen dengan F1 dan F1 ekuivalen dengan F2, maka (dengan
hubungan transitifitas -ekuivalensi) kita simpulkan bahwa F ekuivalen dengan F2. Dan
karena F2 juga ekuivalen dengan F3, maka (dengan hubungan transitifitas ekuivalensi
lagi) kita simpulkan bahwa F ekuivalen dengan F3.
Dengan mengulang penggunaan hubungan transit j/itas-ekuivalensi, akhirnya
bisa disimpulkan bahwa F ekuivalen dengan Fn.
Selanjutnya, karena F diketahui valid, maka (dengan proposisi ekuivalensi-
dan-validitas) kita bisa menyimpulkan bahwa F valid.
Contoh (Validitas)
Misal akan diperlihatkan validitas kalimat
F: if not (not P) then (P and (P or Q)
Kalimat
F1 : if P then (P and (P or Q))
ekuivalen dengan F, (dengan substitutivitas-ekuivalensi), karena F1 diperoleh dari F
dengan mengganti antecedent (not (not P)) dengan P, dan (menurut katalog kita).
not (not P) ekuivalen dengan P
Kalimat
F2: if P then P
ekuivalen dengan F1, (dengan substitutivitas-ekuivalensi lagi), karena F2 diperoleh
dan F1 dengan mengganti consequent (P and (P or Q)) dengan P, dan (menurut
katalog kita), maka
P and (P or Q) ekuivalen dengan P
Kalimat F2 diketahui (menurut katalog) sebagai kalimat valid.
Sehingga bisa digunakan metode rantai-ekuivalensi (chain-of equivalence) untuk
menyimpulkan bahwa F valid.
Karena F ekuivalen dengan F1, F1 ekuivalen dengan F2, dan F2 diketahui valid.
75
Soal - Problems
Dalam menyelesaikan masalah (atau soal), bisa digunakan suatu hasil atau
teknik yang dalam teks sebelum referensi halaman untuk soal. Di samping itu, bisa
juga digunakan hashdan suatu masalah sebelumnya, dan hasil-hasil dari bagian
sebelumnya dan masalah yang sama
Soal (validitas validity)
Perhatikan kalimat-kalimat berikut:
Beberapa kalimat di atas adalah valid dan sebagian tidak valid. Temukan kalimat-
kalimat mana yang tidak valid dan bentuk intepretasi-intepretasi di mana (under
which) mereka bernilai false. Buktikan validitas kalimat-kalimat yang lain,
menggunakan metode-metode berikut, yaitu tabel kebenaran (truth tables), semantic
trees, dan proof b falsification (optional, gunakan masing-masing metode paling
sedikit satu kali.
Soal (Penghubung bersyarat Conditional connective).
Skema kalimat valid (not F) if and only f (if F then falce else true)
menerangkan bahwa konektif negasi not bisa diuraikan (paraphrased) ke dalam temis
dan konektif kondisional if-then-else dan simbol-simbol kebenaran true dan false.
Selanjutnya, perlihatkan bahwa konektif-konektif lain (seperti, and, or, if then, dan if
and-only- bisa diuraikan dengan cara yang sama, menggunakan kalimat yang hanya
memuat if then-else, true, dan false.
Contoh Soal
(Daerah pembohong dan orang jujur - The land of the liais and truth teller)
Gunakan logika proposisional untuk menyelesaikan permasalahan berikut.
Suatu negara semua penghuninya adalah orang-orang yang selalu berkata
benar atau orangorang yang selalu berkata bohong, dan yang akan menjawab
pertanyaan hanya dengan kata “ya” atau “tidak”.
76
Seorang pendatang (turis) menjumpai jalan bercabang, di mana cabang satu
menuju ke restoran dan cabang lain tidak. Sayangnya tidak ada sama sekali tanda
yang membentahu cabang mana yang harus diambil, tetapi ada penduduk disebut Pak
X yang berdiri di percabangan.
Pertanyaan ya (tidak) apa yang bisa digunakan turis lapar untuk memilih
cabang menuju restoran?
Hint (Petunjuk).
Misal P untuk “Pak X selalu berkata kebenaran”, dan Q untuk “Cabang ke kiri
menuju ke restoran”. Tugas kita adalah mencari kalimat F dalam terms P dan Q
sedemikian hingga bahwa, apakah atau tidakkah Pak X berkata benar, jawaban
mereka terhadap pertanyaan “Apakah F true ?“, jawabannya akan ya jika Q bemilai
true. Konstruksikan tabel kebenaran untuk F, dalam terms P dan CQ Selanjutnya buat
rancangan suatu kalimat F yang sesuai.
77
BAB 3
RELASI DAN FUNGSI
3.1 Relasi
Relasi menyatakan hubungan antara anggota suatu himpunan dengan anggota
himpunan lainnya. Anggota yang saling berpasangan dinyatakan dalam bentuk relasi
himpunan A dan himpunan B.
Contoh sederhananya adalah Kartu Keluarga. Misalnya keluarga A memiliki 3
anggota di dalamnya yaitu Anang, Asyanti, dan Aurel yang masing-masing berstatus
sebagai kepala keluarga, istri, dan anak.
Anang, Asyanti, dan Aurel dikategorikan sebagai himpunan A (anggota keluarga),
sedangkan kepala keluarga, istri, dan anak dikategorikan sebagai himpunan B (status
hubungan dalam keluarga).
Bila dijabarkan hasilnya seperti ini:
• Anang adalah kepala keluarga
• Asyanti adalah istri
• Aurel adalah anak
Dalam konsep matematikanya kamu bisa menuliskannya seperti ini:
(Anang, kepala keluarga), (Asyanti, istri), (Aurel, anak)
3.1.1 Relasi Biner
· Relasi biner R antara himpunan A dan B adalah himpunan bagian dari A x B.
• Notasi: R ⊆ (A x B).
• a R b adalah notasi untuk (a, b) ∊ R, yang artinya a dihubungankan dengan b oleh
R
• a R b adalah notasi untuk (a, b) ∉ R, yang artinya a tidak dihubungkan oleh b
oleh relasi R.
• Himpunan A disebut daerah asal (domain) dari R, dan himpunan B disebut daerah
hasil (range) dari R.
Contoh: Misalkan
A = {Amir, Budi, Cecep}, B = {IF221, IF251, IF342, IF323}
A x B = {(Amir, IF221), (Amir, IF251), (Amir, IF342), (Amir, IF323), (Budi,
IF221), (Budi, IF251), (Budi, IF342), (Budi, IF323), (Cecep, IF221),
(Cecep, IF251), (Cecep, IF342), (Cecep, IF323) }
78
Misalkan R adalah relasi yang menyatakan mata kuliah yang diambil oleh mahasiswa
pada Semester Ganjil, yaitu:
R = {(Amir, IF251), (Amir, IF323), (Budi, IF221), (Budi, IF251), (Cecep, IF323) }
• Dapat dilihat bahwa R ⊆ (A x B),
• A adalah daerah asal R, dan B adalah daerah hasil R.
• (Amir, IF251) ∊ R atau Amir R IF251
• (Amir, IF342) ∉ R atau Amir R IF342.
Contoh:
Misalkan P = {2, 3, 4} dan Q = {2, 4, 8, 9, 15}.
Jika kita definisikan relasi R dari P ke Q dengan:
(p, q) R jika p habis membagi q, maka kita peroleh:
R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15) }
Amir . . IF221 2 2
. IF251 4
Budi . 3 8
. IF342
9
. IF323
Cecep . 4 15
A A
2 2
3 3
4 4
8 8
9 9
79
2) Representasi Relasi dengan Tabel
Kolom pertama tabel menyatakan daerah asal, sedangkan kolom kedua
menyatakan daerah hasil.
A B P Q A A
Amir IF251 2 2 2 2
Amir IF323 2 4 2 4
Budi IF221 4 4 2 8
Budi IF251 2 8 3 3
Cecep IF323 4 8 3 3
3 9
3 15
b1 b2 ... bn
a1 m11 m12 … m1n
a2 m21 m22 … m2n
. . . . .
M= . . . . .
. . . . .
1, (ai, bi) ∊ R
mij =
0, (ai, bi) ∉R
80
Contoh:
Misalkan R = {(a, a), (a, b), (b, a), (b, c), (b, d), (c, a), (c, d), (d, b)}
adalah relasi pada himpunan {a, b, c, d}.
R direpresentasikan dengan graf berarah sbb:
a b
c d
1) Refleksif (Reflexive)
• Relasi R pada himpunan A disebut refleksif jika (a, a) ∊ R untuk setiap a ∊ A.
• Relasi R pada himpunan A tidak refleksif jika ada a ∊ A sedemikian sehingga
(a, a) ∉ R
Contoh :
Misalkan A = {1, 2, 3, 4}, dan relasi R di bawah ini didefinisikan pada
himpunan A, maka:
• Relasi R = {(1, 1), (1, 3), (2, 1), (2, 2), (3, 3), (4, 2), (4, 3), (4, 4)} bersifat
refleksif karena terdapat elemen relasi yang berbentuk (a, a), yaitu (1, 1), (2,
2), (3, 3), dan (4, 4).
• Relasi R = {(1, 1), (2, 2), (2, 3), (4, 2), (4, 3), (4, 4) } tidak bersifat refleksif
karena (3, 3) ∉ R.
Contoh :
Tiga buah relasi di bawah ini menyatakan relasi pada himpunan bilangan bulat
positif N.
R : x lebih besar dari y, S : x + y = 5, T : 3x + y = 10
Tidak satupun dari ketiga relasi di atas yang refleksif karena, misalkan (2, 2),
bukan anggota R, S, maupun T.
• Relasi yang bersifat refleksif mempunyai matriks yang elemen diagonal
utamanya semua bernilai 1, atau mii = 1, untuk i = 1, 2, …, n,
81
1
1
.
.
1
1
• Graf berarah dari relasi yang bersifat refleksif dicirikan adanya gelang pada
setiap simpulnya.
2) Menghantar (transitive)
Relasi R pada himpunan A disebut menghantar jika (a, b) ∊ R dan (b, c) ∊ R,
maka (a, c) ∊ R, untuk a, b, c ∊ A.
Contoh:
Misalkan A = {1, 2, 3, 4}, dan relasi R di didefinisikan pada himpunan A, maka:
• R = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3) } bersifat menghantar.
• R = {(1, 1), (2, 3), (2, 4), (4, 2) } tidak manghantar karena (2, 4) dan (4, 2) ∊ R,
tetapi (2, 2) ∉ R, begitu juga (4, 2) dan (2, 3) ∊ R, tetapi (4, 3) ∉ R.
• R = {(1, 1), (2, 2), (3, 3), (4, 4) } jelas menghantar
• R = {(1, 2), (3, 4)} menghantar karena tidak ada (a, b) ∊ R dan (b, c) ∊ R
sedemikian sehingga (a, c) ∊ R.
• Relasi yang hanya berisi satu elemen seperti R = {(4, 5)} selalu menghantar.
Contoh:
Tiga buah relasi di bawah ini menyatakan relasi pada himpunan bilangan bulat
positif N.
R : x lebih besar dari y, S : x + y = 6, T : 3x + y = 10
• R adalah relasi menghantar karena jika x>y dan y> z maka x> z.
• S tidak menghantar karena, misalkan (4, 2) dan (2, 4) adalah anggota S tetapi
(4, 4) ∉ S.
• T = {(1, 7), (2, 4), (3, 1)} tidak menghantar.
• Relasi yang bersifat menghantar tidak mempunyai ciri khusus pada matriks
representasinya.
• Sifat menghantar pada graf berarah ditunjukkan oleh: jika ada busur dari a ke
b dan dari b ke c, maka juga terdapat busur berarah dari a ke c.
82
3) Setangkup (symmetric) dan Tolak-setangkup (antisymmetric)
• Relasi R pada himpunan A disebut setangkup jika (a, b) ∊ R, maka (b, a) ∊ R
untuk a, b ∊ A.
• Relasi R pada himpunan A tidak setangkup jika (a, b) ∊ R sedemikian
sehingga (b, a) ∉ R.
• Relasi R pada himpunan A sedemikian sehingga (a, b) ∊ R dan (b, a) ∊ R
hanya jika a = b untuk a, b ∊ A disebut tolak-setangkup.
• Relasi R pada himpunan A tidak tolak-setangkup jika ada elemen berbeda a
dan b sedemikian sehingga (a, b) ∊ R dan (b,a) ∊ R.
Contoh:
Misalkan A = {1, 2, 3, 4}, dan relasi R didefinisikan pada himpunan A, maka:
• Relasi R = {(1, 1), (1, 2), (2, 1), (2, 2), (2, 4), (4, 2), (4, 4) } bersifat setangkup.
Di sini (1, 2) dan (2, 1) ∊ R, begitu juga (2, 4) dan (4, 2) ∊ R.
• Relasi R = {(1, 1), (2, 3), (2, 4), (4, 2) } tidak setangkup karena (2, 3) ∊ R,
tetapi (3, 2) ∉ R.
• Relasi R = {(1, 1), (2, 2), (3, 3) } tolak-setangkup karena 1 = 1 dan (1, 1) ∊ R,
2 = 2 dan (2, 2) ∊ R, dan 3 = 3 dan (3, 3) ∊ R. Perhatikan bahwa R juga
setangkup.
• Relasi R = {(1, 1), (1, 2), (2, 2), (2, 3) } tolak-setangkup. Perhatikan bahwa R
tidak setangkup.
Bagaimana dengan Relasi berikut?
• Relasi R = {(1, 1), (2, 4), (3, 3), (4, 2) }
• Relasi R = {(1, 1), (2, 2), (2, 3), (3, 2), (4, 2), (4, 4)}
Contoh:
Tiga buah relasi di bawah ini menyatakan relasi pada himpunan bilangan bulat
positif N.
R : x lebih besar dari y, S : x + y = 6, T : 3x + y = 10
• R bukan relasi setangkup karena, misalkan 5 lebih besar dari 3 tetapi 3 tidak
lebih besar dari 5.
• S relasi setangkup karena (4, 2) dan (2, 4) adalah anggota S.
83
• T tidak setangkup karena, misalkan (3, 1) adalah anggota T tetapi (1, 3) bukan
anggota T.
• S bukan relasi tolak-setangkup karena, misalkan (4, 2) ∊ S dan (4, 2) ∊ S tetapi
4 ≠ 2.
• Relasi R dan T keduanya tolak-setangkup (tunjukkan!).
• Relasi yang bersifat setangkup mempunyai matriks yang elemen-elemen di
bawah diagonal utama merupakan pencerminan dari elemen-elemen di atas
diagonal utama, atau mij = mji = 1, untuk i = 1, 2, …, n:
1
0
• Sedangkan graf berarah dari relasi yang bersifat setangkup dicirikan oleh:
jika ada busur dari a ke b, maka juga ada busur dari b ke a.
• Matriks dari relasi tolak-setangkup mempunyai sifat yaitu jika mij = 1 dengan i
≠ j, maka mji = 0. Dengan kata lain, matriks dari relasi tolak-setangkup adalah
jika salah satu dari mij = 0 atau mji = 0 bila i ≠ j:
1 0
1
0
1
0
84
Contoh:
Misalkan R = {(1, 2), (1, 6), (2, 4), (3, 4), (3, 6), (3, 8)} adalah relasi dari himpunan
{1, 2, 3} ke himpunan {2, 4, 6, 8} dan S = {(2, u), (4, s), (4, t), (6, t), (8, u)} adalah
relasi dari himpunan {2, 4, 6, 8} ke himpunan {s, t, u}.
S o R = {(1, u), (1, t), (2, s), (2, t), (3, s), (3, t), (3, u) }
1 2 s
2 4 t
3 6 u
3.2 Fungsi
Fungsi diartikan sebagai relasi dari himpunan A ke himpunan B, dengan syarat
setiap anggota himpunan A harus punya satu pasangan dengan anggota himpunan B.
Lalu, bagaimana cara membedakan relasi dan fungsi?
Bedanya terletak pada aturan keanggotaan. Dalam pemasangan anggota himpunan A
dengan himpunan B tidak ada aturan khusus. Apabila 1 dari 3 anggota himpunan A
tidak memiliki pasangan di himpunan B, maka hal tersebut masih bisa dikategorikan
sebagai relasi, tapi bukan fungsi. Agar bisa dinyatakan sebagai fungsi, maka seluruh
himpunan A harus berelasi dengan himpunan B.
• Misalkan A dan B himpunan.
• Relasi biner f dari A ke B merupakan suatu fungsi jika setiap elemen di dalam A
dihubungkan dengan tepat satu elemen di dalam B.
• Jika f adalah fungsi dari A ke B kita menuliskan f : A B yang artinya f
memetakan A ke B.
• A disebut daerah asal (domain) dari f dan B disebut daerah hasil (codomain) dari
f.
• Nama lain untuk fungsi adalah pemetaan atau transformasi.
• Kita menuliskan f(a) = b jika elemen a di dalam A dihubungkan dengan elemen b
di dalam B.
85
• Jika f(a) = b, maka b dinamakan bayangan (image) dari a dan a dinamakan pra-
bayangan (pre-image) dari b.
• Himpunan yang berisi semua nilai pemetaan f disebut jelajah (range) dari f.
Perhatikan bahwa jelajah dari f adalah himpunan bagian (mungkin proper subset)
dari B
A B
• •
a b
Function abs(x:integer):integer;
begin
if x < 0 then
abs:=-x
else
abs:=x;
end;
Fungsi f dikatakan Satu-ke-satu (one-to-one) atau Injektif (injective) jika tidak ada
dua elemen himpunan A yang memiliki bayangan sama.
86
A B
a• • 1
• 2
b•
• 3
c• • 4
d• • 5
Contoh:
• f = {(1, w), (2, u), (3, v)}
dari A = {1, 2, 3} ke B = {u, v, w, x} adalah fungsi satu-ke-satu,
• f = {(1, u), (2, u), (3, v)}
dari A = {1, 2, 3} ke B = {u, v, w} bukan fungsi satu-ke-satu,
karena f(1) = f(2) = u.
Contoh:
Misalkan f : Z Z. Tentukan apakah f(x) = x2 + 1 dan f(x) = x – 1 merupakan fungsi
satu-ke-satu?
Penyelesaian:
(i) f(x) = x2 + 1 bukan fungsi satu-ke-satu, karena untuk dua x yang
bernilai mutlak sama tetapi tandanya berbeda nilai fungsinya sama, misalnya
f(2) = f(-2) = 5 padahal –2 ≠ 2.
(ii) f(x) = x – 1 adalah fungsi satu-ke-satu karena untuk a ≠ b, a – 1 ≠ b –
1.
Misalnya untuk x = 2, f(2) = 1 dan untuk x = -2, f(-2) = -3
• Fungsi f dikatakan dipetakan Pada (onto) atau Surjektif (surjective) jika setiap
elemen himpunan B merupakan bayangan dari satu atau lebih elemen himpunan
A.
• Dengan kata lain seluruh elemen B merupakan jelajah dari f. Fungsi f disebut
fungsi pada himpunan B.
87
A B
a• • 1
b•
• 2
c•
d• • 3
Contoh:
• f = {(1, u), (2, u), (3, v)}
• dari A = {1, 2, 3} ke B = {u, v, w} bukan fungsi pada karena w tidak termasuk
jelajah dari f.
• f = {(1, w), (2, u), (3, v)}
• dari A = {1, 2, 3} ke B = {u, v, w} merupakan fungsi pada karena semua anggota
B merupakan jelajah dari f.
Contoh:
Misalkan f : Z Z. Tentukan apakah f(x) = x2 + 1 dan f(x) = x – 1 merupakan fungsi
pada?
Penyelesaian:
(i) f(x) = x2 + 1 bukan fungsi pada, karena tidak semua nilai bilangan bulat
merupakan jelajah dari f.
(ii) f(x) = x – 1 adalah fungsi pada karena untuk setiap bilangan bulat y, selalu ada
nilai x yang memenuhi, yaitu y = x – 1 akan dipenuhi untuk x = y + 1.
Fungsi f dikatakan Berkoresponden Satu-ke-satu atau Bijeksi (bijection) jika ia
fungsi satu-ke-satu dan juga fungsi pada.
Contoh:
• f = {(1, u), (2, w), (3, v)}
dari A = {1, 2, 3} ke B = {u, v, w} adalah fungsi yang berkoresponden satu-ke-
satu, karena f adalah fungsi satu-ke-satu maupun fungsi pada.
• f(x) = x – 1 merupakan fungsi yang berkoresponden satu-ke-satu, karena f
adalah fungsi satu-ke-satu maupun fungsi pada.
88
Fungsi satu-ke-satu, Fungsi pada,
bukan pada bukan satu-ke-satu
A B A B
a• • 1 a• • 1
• 2 b•
b• • 2
• 3
c•
c• • 4 • 3
d•
a• • 1 a• • 1
b• • 2 b• • 2
• 3 •
c • c•
3
• 4
d • d•
• 4
89
c. Komposisi f dan g, dinotasikan dengan f o g, adalah fungsi dari A ke C yang
didefinisikan oleh (f o g)(a) = f(g(a))
d. Diberikan g = {(1, u), (2, u), (3, v)}
yang memetakan A = {1, 2, 3} ke B = {u, v, w}, dan fungsi f = {(u, y), (v, x),
(w, z)} yang memetakan B = {u, v, w} ke C = {x, y, z}.
e. Fungsi komposisi dari A ke C adalah
f o g = {(1, y), (2, y), (3, x) }
Contoh
• Diberikan fungsi f(x) = x – 1 dan g(x) = x2 + 1.
Tentukan f o g dan g o f.
Penyelesaian:
(i) (f o g)(x) = f(g(x)) = f(x2 + 1) = x2 + 1 – 1 = x2.
(ii) (g o f)(x) = g(f(x)) = g(x – 1) = (x –1)2 + 1 = x2 - 2x + 2.
90
BAB 4
ALGORITMA
91
2. Menjadikan masalah menjadi lebih sederhana; Dengan menggunakan fungsi
algoritma, maka kita dapat menjadikan masalah yang besar menjadi Masalah
yang lebih sederhana.
3. Algoritma dapat digunakan berulang kali; Tujuan dan fungsi algoritma juga
dapat digunakan untuk penggunaan secara berulang atau lebih dari satu kali.
4. Memudahkan dalam pembuatan program; Algoritma dapat memudahkan kita
untuk membuat program, salah satu cara untuk mempermudahnya yaitu dengan
membuat flow chart terlebih dahulu sebelum membuat program.
5. Mengatasi masalah dengan logika; Dengan algoritma, maka kita dapat
mengatasi segala masalah dengan logika.
6. Meminimalisir penulisan program yang berulang-ulang; Algoritma dapat
digunakan untuk memudahkan kita menulis program yang berulang-ulang.
4.3 Pengertian Algoritma
Untuk dapat menyelesaikan persoalan-persoalan yang kita hadapi, kita perlu
menyusun langkah-langkah atau strategi. Misalnya pada suatu saat, kita hendak
makan, tetapi yang tersedia hanya nasi tanpa lauk. Kemudian terpikir oleh kita untuk
membuat telur dadar. Kita pun segera menyusun langkah-langkah untuk membuat
telur dadar. Pertama kita ambil ltelur dan bumbu-bumbu yang diperlukan. Kedua,
membuat bumbu dan mengocoknya bersama telur. Ketiga, menyiapkan perlengkapan
masak. Ke empat, mulai menggoreng telur, dan kelima telur siap dihidangkan. Dalam
dunia pemrograman pun demikian. Untuk dapat menyelesaikan masalah (problem
solving), harus disusun dahulu langkah-langkah penyelesaiannya yang dinamakan
algoritma.
Algoritma berasal dari kata algorism, yaitu nama penulis buku arab yang terkenal,
Abu Ja’far Muhammad Ibnu Musa al-Khowarizmi. Dalam bidang pemograman,
algoritma didefinisikan sebagai berikut:
Algoritma adalah kumpulan instruksi/perintah/langkah yang berhingga jumlahnya,
dituliskan secara sistematis, dan digunakan untuk menyelesaikan masalah/persoalan
logika dan matematika dengan bantuan komputer.
Contoh:
Algoritma untuk mencari luas lingkaran
1. Algoritma dengan struktur bahasa Indonesia
a. Beri nilai phi dengan 3.14
b. Masukan jari-jari lingkaran
92
c. Kalikan phi dengankuadratjari-jarinya
d. Tuliskan hasilnya
2. Algoritma dengan pseudocode
Phi3.14
Input (R)
L phi * R^2
Output (L)
3. Algoritma dengan flowchart program
Start
Phi = 3.14
Input R
L = phi*R^2
Print L
End
Pseudocode
Pseudocode berasal dari kata pseudo (mirip/menyerupai) dan code, yang berarti kode
yang mirip dengan kode program yang sebenarnya.
Sebagai contoh, algoritma yang ditulis dengan pseudocode untuk menyelesaikan
permasalahan akan menukarkan isi dari dua nilai yang berbeda, yaitu A = 10 dan B =
20.
CB
BA
AC
Output (A,B)
93
Flowchart (Bagan Alir)
Flowchart program adalah suatu bagan yang menggambarkan atau mempresentasikan
suatu algoritma atau prosedur untuk menyelesaikan masalah.
Flowchart terbagi menjadi dua, yaitu flowchart system dan flowchart program.
Flowchart System
Yaitu bagan yang menggambarkan suatu prosedur dan proses suatu file dalam suatu
media menjadi file dalam media yang lain dalam suatu sistem data.
Simbol yang digunakan :
: pita magnetik
: keyboard
: storage
: input/output
: proses
: magnetic tape
: arah proses
Contoh:
Keyboard
CPU Diskette
Storage/
penyimpanan
94
Soal dan Penyelesaian
1. Tulislah algoritma (pseudocode) untuk mencari rata-rata dari 2 bilangan yang
dinputkan.
Penyelesaian :
Input(x,y)
Zx+y
Rerata Z/2
Output(Rerata)
End
2. Tulislah algoritma (pseudocode) untuk mencari keliling dan luas suatu bola.
Penyelesaian :
Input(R)
Phi 3.14
Kel 4*phi*R^2
Luas Kel*R^3
Output(Kel, Luas)
End
4. Tulislah algoritma (pseudocode) untuk mencari keliling sebuah segi tiga siku-
siku, dimana inputnya adalah panjang dan tinggi segitiga siku-siku.
Penyelesaian :
Input(p,t)
Sisimiring (p^2 + t^2)^0.5
Kelp+t+sisimiring
Output(Kel)
End
5. Tulislah algoritma (pseudocode) untuk meminta masukan tiga buah bilangan, dan
kemudian akan menampilkan bilangan terbesar.
95
Penyelesaian :
Input(a,b,c)
IF a>b AND a>c THEN
Output(“bilterbesaradalah”, a)
ELSE
IF b>a AND b>c THEN
Output(“bilterbesaradalah”, b)
ELSE
Output(“bilterbesaradalah”,c)
ENDIF
ENDIF
End
Penyelesaian :
FOR k 1 TO 20
Output(“Zhafif Hylmi Naryama”)
NEXT k
Soal-Soal Latihan
1. Apa pengertian dari algoritma pemograman komputer?
2. Bagaimana penyajian algoritma?
3. Jelaskan apa yang dimaksud dengan pseudocode dan flowchart program.
4. Sebutkan tiga struktur dasar dari algoritma.
5. Buatlah pseudocode dan flowchart program untuk :
Menghitung rata-rata dari lima bilangan yang diinputkan oleh user.
6. Mengonversi suhu derajat Celcius kedalam derajat Kelvin.
96
7. Mengonversi jam kedalam menit atau detik.
8. Menghitung luas dan keliling segitiga sama sisi.
9. Menghitung gaji seorang buruh bangunan selama sebulan, dengan ketentuan
gaji per hari Rp. 20.000,-.
10. Menentukan apakah tahun yang diinputkan termasuk tahun kabisat/bukan.
11. Menentukan suatu bilangan bulat positif, ganjil atau genap.
12. Menentukan akar-akar persamaan kuadrat, + bx + c = 0, D = – 4ac.
13. Menampilkan tulisan “logika dan algoritma sebanyak 99 kali”.
14. Menampilkan bilangan ganjil antara 1 sampai 10.
15. Menampilkan bilangan prima antara 2 sampai 50.
16. Menghitung jumlah deret : 1+5+9+13+….+Un.
17. Menghitung rata-rata dari n bilangan yang diinputkan oleh user.
18. Menghitung jumlah dari n bilangan yang diinputkan oleh user, tetapi hanya
bilangan ganjil.
19. Menghitung jumlah dari n bilangan deret aritmatika, dengan input nilai awal,
selisih/beda, dan banyakanya bilangan.
20. Menghitung jumlah dari n bilangan deret geometri, dengan input nilai awal,
rasio, dan banyaknya bilangan.
97
BAB 5
ELEMEN DASAR PEMROGRAMAN
98
Keywords atau Reserved words merupakan kata-kata yang telah
ada/didefinisikan oleh bahasa pemrograman yang bersangkutan. Kata-kata
tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah.
f. Operator
Operator digunakan untuk menyatakan suatu perhitungan/ operasi
1) Arithmetic Operator
2) Assignment Operator
3) Bitwise dan Logical Operator
4) Relational Operator
5) Pointer Operator
2. Pengertian Dasar Program adalah rangkaian instruksi-instruksi dalam bahasa
komputer yang disusun secara logika dan sistematis.
3. Pengertian Pemrograman adalah suatu kumpulan urutan perintah ke komputer
untuk mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang
dimengerti oleh komputer atau dikenal dengan bahasa pemrograman.
4. Konsep Dasar Pemrograman pada umumnya adalah IPO (Input Proses Output),
lalu dikembangkan mejadi :
Originating -> input -> proses -> Output -> Distribution
||
Storage
99
d. Output
Tahap ini merupakan proses untuk menghasilkan keluaran dari proses
pengolahan data ke peralatan output berupa informasi (monitor, speaker, dsb)
e. Distribution
Tahap ini merupakan proses penyebaran informasi kepada pihak-pihak yang
berhak dan membutuhkan informasi.
f. Storage
Tahap ini merupakan perekaman hasil pengolahan data storage yang
nantinya dapat dipergunakan untuk input proses selanjutnya.
5. Data
Data adalah bahan mentah yang akan diolah menjadi informasi sehingga dapat
dipergunakan oleh user atau pemakai.
a. Tipe Data Dasar : Merupakan tipe data primitif yang tidak terstruktur yang
didefinisikan oleh bahasa pemrograman.
Tipe data dasar dibagi menjadi lima bagian yaitu :
1) Numerik, yaitu menyimpan data berupa angka
2) Enumerasi, yaitu suatu urutan list dari nilai-nilai yang berbeda.
3) Boolean, yaitu tipe data untuk merepresentasikan True atau False.
4) Character, yaitu tipe data untuk menyimpan rangkaian karakter.
5) Internationalization, disebut I18N
b. Tipe Data Terstruktur : Merupakan tipe data campuran dari berbagai tipe
data dasar. Contohnya array, record, string, list dan file.
c. Tipe Data didefinisikan oleh Pemakai : Tipe data ini biasanya disebut
Enumerasi.
d. Tipe Data Penunjuk : Contoh tipe data penunjuk adalah pointer
6. Model Komputasi
Model Komputasi adalah suatu kumpulan dari nilai dan operasi-operasi. Ada 3
dasar model komputasi :
a. Model Fungsional, yaitu model perhitungan yang fungsional terdiri dari
satu set nilai-nilai, fungsi dan operasi, aplikasi, fungsi dan komposisi
fungsi.
b. Model Logika, yaitu logika model perhitungan terdiri dari suatu set nilai-
nilai, definisi hubungan dan kesimpulan logis.
100
c. Model Imperative, yaitu model perhitungan yang imperative terdiri dari
satu set nilai-nilai yang mencakup suatu status dan operasi tugas-tugas
untuk memodifikasi status tersebut.
5.3 Tipe Data, Variabel, dan Konstanta
Variabel adalah nama yang memiliki nilai data di mana nilai tersebut dapat
berubah pada saat program dieksekusi. Pada setiap Bahasa pemrograman, pemberian
nilai kedalam variabel (assignment) mempunyai bentuk penulisan yang berbeda-
beda.Pada Bahasa pemograman QBasic, di depan penulisan variable diberikan symbol
untuk setiap jenis data yang diwakilinya.
TIPE DATA SIMBOL KETERANGAN
String $ A..Z, a..z, 0..9, sertasimbol
Integer % Bilanganbulat -32768 sampai +32767
Long integer & Bilanganbulat -2147483648 sampai
+2147483647
Single ! -3.37E+38 sampai 3.37E+38
Precision
Double # -1.67D+308 sampai 1.67D+308
Precision
2. Operator Relasi
Digunakan untuk mewakili sebuah nilai logika (Boolean), dari suatu
persamaan atau nilai yang dibandingkan sehingga dapat memutuskan sebuah
masalah yang mempunyai dua kemungkinan atau lebih.
3. Operator Logika
Digunakandalam proses operand secaralogis, yaitu :
OPERATOR KETERANGAN
LOGIC
NOT Membalikannilaidarisebuah operand
AND Hasilnya TRUE hanyajikakedua operand bernilai
TRUE
OR Hasilnya TRUE hanyajikasalahsatuataukedua operand
bernilai TRUE
XOR Hasilnya TRUE apabilakedua operand berbeda
EQV Hasilnya TRUE bilakedua operand bernilaisama
IMP Hasilnya TRUE jikahanyajika operand pertama TRUE
dan operand keduabernilai TRUE
4. Operator Fungsi
Dapat berupa fungsi SIN, SQR, ABS, UCASE$, LCASE$, dan lainnya
yang disediakan oleh Bahasa pemograman QBasic.
5. Operator String
Digunakan misalnya untuk menggabungkan dua atau lebih variable
string atau konstanta string.
102
Soal-Soal Latihan
1. Apa yang dimaksud dengan variable, tipe data, dan konstanta?
2. Sebutkan aturan-aturan penulisan variable.
3. Apa yang dimaksud dengan operator dan operand?
4. Sebutkan macam-macam operator yang digunakan pada pemograman.
5. Apa fungsi operator-operator berikut? Berilah contohnya.
a. SQR
b. SQRT
c. UCASE
d. LCASE
e. ABS
103
BAB 6
BAHASA PEMROGRAMAN
Kompetensi Dasar Buku ini dirancang bagi pembaca yang sudah pernah
belajar pemrograman sebelumnya, namun masih awam mengenai dunia pemrograman
kompetitif. Terdapat sejumlah kompetensi dasar yang perlu Mahasiswa kuasai untuk
dapat memahami materi pada buku ini secara maksimal. Mahasiswa diharapkan
untuk:
1. Memahami konsep pemrograman dan mampu menulis program secara umum.
2. Mengetahui jenis-jenis tipe data primitif seperti bilangan bulat, bilangan riil,
boolean, dan karakter.
3. Mengetahui konsep tipe data komposit seperti record (Pascal), struct(C), atau
class (C++ dan Java).
4. Memahami konsep dan mampu menulis struktur percabangan if pada program.
5. Memahami konsep dan mampu menulis struktur perulangan menggunakan for
dan while pada program.
6. Memahami konsep array, baik yang berdimensi satu maupun lebih.
7. Memahamikonsepsubprogramberupafungsidanprosedur.
8. Memahami konsep rekursi, mampu mengidentifikasi basis dan hubungan
rekursif dari suatu permasalahan, dan mampu menuliskannya pada program.
9. Mampu Menghitung Kompleksitas Waktu Dan Memori Dari Suatu Algoritma
Dan menyatakannya dalam notasi big-Oh.
104
Gambar 1. Menu Editor QBasic
Lingkungan QBasic
Pada menu editor QBasic, disediakan menu-menu atau submenu-submenu yang dapat
digunakan untuk melakukan semua proses dalam pembuatan program.
Item dari menu ini diantaranya berupa:
Menu FILE (tekan ALT+F)
Terdapat submenu-submenu dengan fungsi tertentu, yaitu :
- Mengosongkan editor untuk memulai penulisan program baru
- Membuka program yang tersimpan
- Menyimpan file
- Mencetak program ke printer
- Keluar dari QBASIC
105
Menu DEBUG (tekan ALT+D)
Untuk melakukan debugging (pencarian kesalahan program secara bertahap).
Menu OPTION (tekan ALT+O)
Untuk mengatur display dan path.
Menulis Program
Untuk menulis program baru, pilih menu File|New Program atau tekan (Alt+F),
kemudian pilih menu New Program. Layar editor akan kosong dan siap ditulisi
program baru.
Contoh program:
CLS
PRINT "SELAMAT DATANG DI PEMOGRAMAN QBASIC"
PRINT "==================================="
PRINT
PRINT "Nama : Zhafif Hylmi Naryama"
PRINT "Umur : 1 tahun"
PRINT
PRINT "==================================="
END
Mengeksekusi Program
Untuk menjalankan program/perintah yang ada di editor, pilih menu Run | Start atau
tekan (Shift+F5). Hasil yang akan tampak pada layar adalah sebagai berikut:
Menyimpan Program
Program yang telah Anda buat atau modifikasi sebaiknya disimpan di dalam disk
dapat dipanggil dengan perintah:
106
File | Open Program. Selanjutnya, ketik file program atau arahkan kursor ke file
program yang dikehendaki. Program akan segera ditampilkan ke layar editor.
Keluar dari QBasic
Untuk keluar dari QBasic dan kembali ke sistem operasi, perintah yang diperlukan
adalah: File | Exit.
6.3 Perintah Dasar QBasic
Suatu siklus pemrosesan data dimulai dengan memasukan data, proses, dan
penampilan informasi. Untuk memasukkan data dan menampilkan informasi,
dibutuhkan instruksi-instruksi masukan dan keluaran yang merupakan instruksi yang
digunakan untuk membaca nilai data dari peranti masukan seperti keyboard, dan
menampilkannya melalui piranti keluaran seperti monitor dan printer.
Contoh:
Instruksi SWAP digunakan untuk menukar isi dua buah variable yang telah
diinputkan.
Contoh:
A=2
B=5
SWAP A, B
PRINT A, B
2. Instruksi READ-DATA
107
Merupakan alternative perintah LET untuk data yang sangat banyak.
Contoh:
READ A,B,C,D,E,nama$,Nilai
DATA 10,20,30,40,50,”Aprilya”,90
Keterangan:
Akan diberikan nilai A = 10, B =20, C = 30, D = 40, E = 50, nama$ =
“Aprilya”, Nilai = 90
Jenis variabel harus sama dengan jenis data yang dibaca
Jumlah data harus sama atau lebih besar dari jumlah variabel
3. Instruksi RESTORE
Nilai yang tertera pada instruksi DATA hanya dapat dibaca satu kali dengan
isntruksi READ. Agar nilai tersebut dapat dibaca kembali, gunakan instruksi
RESTORE.
Contoh:
DATA 10,20,30
READ A,B,C
RESTORE
READ X,Y,Z
4. Instruksi INPUT
Digunakan untuk memasukkan data melalui keyboard.
Bentuk Umum:
Contoh:
108
INPUT “Masukkan nama Anda :”, nama$
Bentuk Umum:
Contoh:
Contoh:
PRINT nama$
PRINT “Masukkan kode akses: “, kode$
PRINT “Hasil dari penjumlahan deret geometri :”, jml
2. Instruksi LPRINT
Digunakan untuk menampilkan data dan hasil pengolahan pada pencetak.
Contoh:
109
Bentuk Umum:
Contoh:
Nama$ = “Lya”
Nilai = 95.85
PRINT USING “Nama : \ \ nilai ###.##”, Nama$, Nilai
Dari contoh diatas, jumlah spasi di antara tanda back slash ada 3 karakter
sehingga outputnya adalah:
Nama : Lya nilai 95.85
Contoh program:
Program untuk mengonversi suhu yang diinputkan dari derajat Kelvin ke
derajat Celcius:
CLS
REM Program konversi Kelvin – Celcius
REM Membersihkan layar
CLS
PRINT “PROGRAM KONVERSI SUHU Kelvin – Celcius”
PRINT “=======================================”
REM Memasukkan nilai derajat Kelvin
INPUT “Masukkan suhu dalam kelvin :”, kelvin
REM Menghitung/konversi ke derajat Celcius
Celcius = kelvin – 273
REM Menampilkan derajat Celcius
PRINT “Suhu dalam Celcius :”, celcius
REM Selesai
END
Contoh program:
Program untuk membaca data-data yang tersedia:
CLS
REM Program READ-DATA
110
CLS
PRINT “PROGRAM READ-DATA”
PRINT “=====================”
PRINT
READ Nama$, nim, Alamat$, TargetNilai$
DATA Rangga, 9999, Jogjakarta, A
PRINT Nama$
PRINT nim
PRINT TargetNilai$
END
Contoh Program:
Program untuk mencetak faktur pembelian dengan menggunakan PRINT
USING:
111
Program :
CLS
REM PROGRAM UNTUK MENGHITUNG RATA-RATA DARI TIGA
BILANGAN YANG DIINPUTKAN USER
Input “Masukkan bilangan pertama :”, bil1
Input “Masukkan bilangan kedua :”, bil2
Input “Masukkan bilangan ketiga :”, bil3
Jumlah = bil1+bil2+bil3
Rerata = Jumlah/3
Print
Print “Rata-rata dari tiga bilangan tsb:”, Rerata
END
2. Buatlah algoritma dan program untuk menghitung laba penjualan dari seorang
pedagang sayur. Berikan contoh keluaran program tersebut.
Penyelesaian
Algoritma:
Input(modal, jual)
Laba jual – modal
Output(laba)
Program:
CLS
REM PROGRAM LABA PENJUALAN
Input “Masukkan modal awal :”, modal
Input “Masukkan hasil penjualan :”, jual
Laba = jual – beli
Print
Print “Laba yang diperoleh adalah :”, Laba
END
112
Masukkan hasil penjualan : 225000
3. Buatlah algoritma dan program untuk mengonversi suhu dari derajat Celcius
ke Fahrenheit. Berikan contoh keluaran program tersebut.
Penyelesaian
Algoritma:
Input(Celcius)
Fahrenheit Celcius *9/5 + 32
Output(Fahreinheit)
Program:
CLS
REM PROGRAM KONVERSI SUHU CELCIUS KE FAHRENHEIT
Print “==========================================”
Print
Input “Masukkan suhu dalam Celcius :”, Celcius
Fahrenheit = Celcius *9/5 + 32
Print
Print “==========================================”
Print
Print “Suhu dalam derajat Fahrenheit:”, Fahrenheit
END
113
BAB 7
PEMROGRAMAN
2. Algoritma untuk mengonversi input Jam, Menit, dan Detik ke total detik:
Algoritma:
Input(Jam, Menit, Detik)
TotalDetik Jam*3600 + Menit*60 + Detik
Output(TotalDetik)
Program:
CLS
REM PROGRAM UNTUK MENGHITUNG KONVERSI JAM, MENIT
DAN DETIK KE TOTAL DETIK
Input “Banyak Jam :”, Jam
Input “Banyak Menit :”, Menit
Input “Banyak Detik :”, Menit
TotalDetik = Jam*3600 + Menit*60 + Detik
Print
Print “TotalDetik hasil konversi :”, TotalDetik
END
115
7.3 Struktur Percabangan
• Pernyataan percabangan memungkinkan suatu pernyataan untuk dieksekusi
hanya jika suatu kondisi terpenuhi atau tidak terpenuhi.
Contoh:
- Jika mau menonton film maka belilah tiketnya.
- Jika suatu bilangan habis dibagi 2 maka bilangan itu pastilah bilangan
genap.
• Bentuk Instruksi percabangan ada dua: instruksi IF (IF sederhana, IF-ELSE,
dan IF bersarang) dan instruksi CASE.
Instruksi IF
Secara umum, flowchart-nya adalah sebagai berikut:
IF
kondisi
F
T
Pernyataan 1 Pernyataan 2
Pernyataan
sesudah ENDIF
Pada struktur ini, terdapat dua kemungkinan instruksi yang akan dikerjakan
berdasarkan hasil dari pengujian. Contoh jika syarat yang diujikan memperoleh hasil
benar maka instruksi_1 dikerjakan, namun jika bernilai salah maka instruksi_2 yang
dikerjakan.
Contoh algoritma:
INPUT(x)
IF x>0 THEN
Output(“X adalah bilangan positif”)
ELSE
Output(“X adalah bilangan negatif”)
ENDIF
END
116
atau
INPUT(tahun)
IF tahun MOD 4=0 THEN
Output(“Tahun tersebut tahun kabisat”)
ELSE
Output(“Bukan tahun kabisat”)
ENDIF
END
atau
INPUT(nilai)
IF nilai=”A” OR nilai=”B” OR nilai=”C” OR nilai=”D” OR
THEN
Output(“ANDA LULUS DARI MATA KULIAH INI”)
ELSE
Output(“ANDA GAGAL DARI MATA KULIAH INI”)
ENDIF
END
Pernyataan IF Bersarang
Bentuk algoritma dengan struktur percabangan menggunakan instruksi IF
bersarang ini memungkinkan suatu pernyataan untuk dieksekusi apabila memenuhi
atau tidak memenuhi suatu kondisi yang dites. Pada suatu pernyataan yang sedang
dieksekusi masih terdapat struktur percabangan lagi, di mana masih ada tes dari suatu
kondisi.
Bentuk:
IF <kondisi_1> THEN
<pernyataan_1>
ELSE
IF <kondisi_2> THEN
<pernyataan_2>
ELSE
IF <kondisi_3> THEN
<pernyataan_3>
-
-
-
ELSE
<pernyataan_m>
ENDIF
ENDIF
ENDIF
117
Contoh algoritma:
INPUT(beli)
IF beli>=100000 THEN
Output(“Diskon 10%”)
ELSE
IF beli>=500000 THEN
Output(“Bonus piring”)
ELSE
IF beli>=1000000 THEN
Output(“Bonus gelas”)
ELSE
Output(“Tidak ada bonus”)
ENDIF
ENDIF
ENDIF
SELECT CASE
<ekspresi>
F F F
Daftar Nilai Daftar Nilai Daftar Nilai
T T T
Blok instruksi 1 Blok instruksi 2 Blok instruksi 3 Blok instruksi 4
Pernyataan sesudah
END SELECT
Contoh algoritma:
INPUT(bilangan)
SELECT CASE bilangan
CASE 2,3,5,7
Output(“Bilangan tersebut adalah bilangan PRIMA”)
CASE 4,6,8,9,10
Output(“Bilangan tersebut bukan bilangan PRIMA”)
CASE ELSE
Output(“Input ANDA salah”)
END SELECT
END
118
7.4 Struktur Perulangan
Struktur algoritma perulangan adalah suatu algoritma yang akan melakukan
suatu proses atau eksekusi yang berulang-ulang jika suatu kondisi dipenuhi atau
tidak.
Proses ini biasanya digunakan untuk:
Mengulang proses pemasukan data
Mengulang proses perhitungan
Mengulang proses penampilan hasil pengolahan data
Struktur perulangan terdiri dari 2 bagian:
Kondisi perulangan, yaitu ekspresi Boolean yang harus dipenuhi untuk
melaksanakan pengulangan
Badan (body) pengulangan, yaitu satu atau lebih aksi yang akan diulang.
Disamping itu biasanya disertai dengan:
Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan
pertama kali
Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai
dilaksanakan.
Bentuk instruksi perulangan:
Instruksi FOR-NEXT
FOR-NEXT Tunggal
FOR-NEXT Tersarang
Instruksi WHILE-WEND
Instruksi DO-LOOP
DO WHILE-LOOP
DO UNTIL-LOOP
DO-LOOP WHILE
DO-LOOP UNTIL
Instruksi FOR-NEXT
Instruksi FOR-NEXT digunakan untuk mengeksekusi suatu baris/blok instruksi secara
berulang-ulang selama kondisi terpenuhi.
Kondisi yang digunakan untuk menguji hanya sebatas perhitungan
menambah/mengurangi isi variable counter dengan STEP tertentu. Jumlah
perulangan diketahui secara pasti (n kali), dimana jumlah perulangan = nilai_akhir –
nilai_awal+1.
119
Bentuk instruksi:
FOR variable_counter = nilai_awal TO nilai_akhir [STEP nilai naik/turun]
<blok instruksi / pernyataan>
NEXT variable_counter
Flowchart:
FOR
Var = nilai_awal
F
Var <=
nilai_akhir
Blok pernyataan
Var = Var + 1
Pernyataan
sesudah NEXT
120
Instruksi FOR-NEXT Tersarang
• Urutan Instruksi dimulai dari kalangan yang paling dalam.
• Syarat yang harus dipenuhi:
- Setiap kalang tidak boleh menggunakan variable counter yang sama
- Antara kalang-kalang tersebut tidak boleh saling berpotongan
(overlapping)
Kalang yang berpotongan,
contohnya:
FOR I = 1 TO 10
FOR J = 1 TO 10
PRINT I,J
NEXT I
NEXT J
Instruksi WHILE-WEND
Pada instruksi WHILE-WEND, proses akan berulang selama sebuah kondisi
terpenuhi, dengan perulangan yang tak dapat diketahui jumlahnya.
Bentuk Instruksi:
WHILE <kondisi>
<blok pernyataan>
WEND
Bentuk ini identic dengan DO WHILE-LOOP.
121
Flowchart:
kondisi F
Blok pernyataan
Pernyataan sesudah
WEND
Instruksi DO – LOOP
Instruksi DO-LOOP mempunyai fungsi yang sama dengan WHILE-WEND, yaitu
melakukan operasi perulangan, tetapi penulisan kondisinya dapat dilakukan secara
fleksibel. Proses berulang pada instruksi ini tidak diketahui jumlahnya.
Bentuk Umum:
DO [ WHILE / UNTIL kondisi ]
<statement-statement>
LOOP
Atau
DO
<statement-statement>
LOOP [ WHILE / UNTIL kondisi ]
Bentuk pertama dan bentuk kedua berbeda. Pada bentuk pertama, kondisi diperiksa
dulu. Bila memenuhi syarat maka instruksi akan dilaksanakan. Adapun pada bentuk
kedua, minimal proses instruksi dilaksanakan sekali, baru pemeriksaan kode
penulisan.
122
Bentuk Instruksi:
DO WHILE <kondisi>
<blok pernyataan>
LOOP
Flowchart:
F
kondisi
T
Blok pernyataan
Pernyataan sesudah
LOOP
Contoh:
Algoritma untuk menjumlahkan deret 1+2+3+ … + N
Input (N)
Jml 0
Angka 1
DO WHILE Angka <= N
Jml Jml + Angka
Angka Angka + 1
LOOP
Output(jml)
END
123
Bentuk Instruksi:
DO UNTIL <kondisi>
<blok pernyataan>
LOOP
Flowchart:
T
kondisi
F
Blok pernyataan
Pernyataan sesudah
LOOP
Contoh:
Algoritma untuk menjumlahkan deret 1+2+3+…+N
Input (N)
Jml 0
Angka 1
DO UNTIL Angka > N
Jml Jml + Angka
Angka Angka + 1
LOOP
Output(jml)
END
Instruksi DO LOOP-WHILE
Pada instruksi DO LOOP-WHILE, pengulangan dilakukan selama kondisi bernilai
benar. Apabila kondisi salah maka proses akan keluar dari struktur perulangan.
Pada bentuk ini, pengujian dilakukan setelah blok pernyataan dijalankan sehingga
minimal sekali pernyataan akan dieksekusi.
124
Bentuk instruksi:
DO LOOP
<blok pernyataan>
WHILE <kondisi>
Flowchart:
DO
Blok pernyataan
F
Kondisi
T
Pernyataan sesudah
LOOP
Contoh:
Algoritma untuk menjumlahkan deret 1+3+5+…+Un
Input (Un)
Jml 0
Angka 1
DO
Jml Jml + Angka
Angka Angka + 2
LOOP WHILE Angka <=Un
Output(jml)
END
125
Bentuk instruksi:
DO LOOP
<blok pernyataan>
UNTIL <kondisi>
Flowchart:
DO
Blok
F
Kondis
T
Pernyataan sesudah
LOOP
Contoh:
Algoritma untuk mengakses, dengan password maksimal mengalami kesalahan 3 kali.
Password$ “Sp”
DO
IF N>3 THEN
EXIT DO
END IF
Input (Pass$)
N=N+1
LOOP UNTIL Pass$ = Password$
IF N>3 THEN
Output(“Akses ditolak”)
ELSE
Output(“Selamat bergabung”)
END IF
END
Penyelesaian:
Input(total_jual)
Komisi 0,10*total_jual
Output(Komisi)
End
3. Menentukan apakah bilangan yang diinputkan adalah bilangan ganjil atau genap.
Penyelesaian:
Input(bilangan)
IF bilangan MOD 2 = 0 THEN
Output(“bilangan tersebut adalah genap”)
ELSE
Output(“bilangan tersebut adalah ganjil”)
ENDIF
End
4. Menentukan koordinat titik, apakah ada di kuadran I, II, III atau IV.
Penyelesaian:
Input(x,y)
IF x>0 AND y>0 THEN
Output(“Koordinat ada di kuadran I”)
ELSE
IF x<0 AND y>0 THEN
Output(“koordinat ada di kuadran II”)
ELSE
IF x<0 AND y<0 THEN
Output(“koordinat ada di kuadran III”)
ELSE
IF x>0 AND y<0 THEN
Output(“koordinat ada di kuadran IV”)
ELSE
127
Output(“koordinat tsb ada di sb.x/y”)
ENDIF
ENDIF
ENDIF
ENDIF
End
Penyelesaian:
Input(n)
Faktorial 1
FOR I = 1 to n
Faktorial i*Faktorial
NEXT i
Output(Faktorial)
End
128
13. Menyelesaikan persamaan linier dari :
ax + by = c
dx + ey = f
14. Menghitung perpangkatan
15. Tunjukan keluaran dari algoritma berikut:
X8
JmlNilai 5
K2
DO WHILE K <= X
Input(bil)
IF bil mod K = 0 THEN
Jml Jml + bil
ENDIF
K K+2
LOOP
Output(Jml)
129
BAB 8
SUBRUTIN DAN REKURSI
130
Macam-macam subprogram dalam Qbasic:
• Prosedur Subrutin
• Prosedur Fungsi
Prosedur Subrutin
Bentuk instruksi:
SUB NamaProsedur [(daftar parameter)]
<blok instruksi>
END SUB
Contoh:
Prosedur:
SUB Tambah(X,Y)
Output(X+Y)
END SUB
Pemanggilan:
Input(X,Y)
CALL Tambah(X,Y)
END
Prosedur Fungsi
FUNCTION akan ditangani seperti halnya prosedur subrutin karena sama-sama
merupakan prosedur.
Bentuk instruksi:
FUNCTION NamaFungsi [(daftar parameter)]
<blok instruksi>
NamaFungsi = Ungkapan
END FUNCTION
131
Contoh:
Prosedur:
FUNCTION Faktorial(n)
Nilai 1
FOR I 1 TO n
Nilai Nilai*I
NEXT I
Faktorial Nilai
END FUNCTION
Pemanggilan:
Input (n)
Faktorial (n)
END
8.3 Rekursi
Rekursi adalah suatu proses (proseudur/fungsi) yang bias memanggil dirinya
sendiri. Rekursi merupakan pengganti perulangan biasa dan ada di dalam prosedur
fungsi.
Syarat rekursi:
1. Adanya titik pemberhentian (pengendali rekursi)
Contoh: faktorial(n), n = 0, maka n! = 1
2. Adanya langkah rekursi yang menuju pada stopping state (induksi)
Contoh: faktorial = n* faktorial (n-1)
Catatan:
Faktorial (n-1) rekursi dijalankan dengan jumlah n yang semakin menurun
(semakin sempit permasalahannya).
Prinsip Rekursi:
1. Sifat = perulangan sehingga harus ada proses yang mengentikan rekursi
2. Proses yang menuju penghentian rekursi
Contoh: Faktorial (n),
132
Gambaran Proses Rekursi:
4! = Faktorial (4)
= Faktorial (4)
= 4 Faktorial (3)
= 3 Faktorial (2)
= 2 Faktorial (1)
= 1
Jadi 4! = 4*3*2*1 = 24
- Hasil dari proses di tiap tingkat merupakan input untuk proses di tingkat atasnya.
- Faktorial (n) bisa dihitung dari Faktorial (n-1), Faktorial (n-1) bisa dihitung dari
Faktorial (n-2), dan seterusnya.
Contoh Kasus Rekursi:
1. Pencarian Bilangan Faktorial
Merupakan proses perhitungan deret bilangan dengan rumus:
- n=0, maka n! = 1
- n>0, maka n! = n*(n-1)!
Implementasi pencarian factorial (4):
a. Iterasi
Faktorial 1
For k 1 To 4
Faktorial Faktorial * k
Next k
Output (faktorial)
b. Rekursi
FUNCTION Faktorial(n)
IF n=0 THEN
Faktorial 1
ELSE
Faktorial n * Faktorial(n-1)
END IF
END FUNCTION
133
Proses Rekursi:
FUNCTION Fibo(n)
IF n=0 or n=2 THEN
Fibo 1
ELSE
Fibo Fibo(n-1) + Fibo(n-2)
END IF
END FUNCTION
Implementasi pencarian Fibbonaci (4):
Fibbonaci (4)
Penyelesaian:
FUNCTION Aritmatika(a,b,n)
FOR Y = 1 TO n
Jumlah Jumlah + a+(Y-1)*b
NEXT Y
Aritmatika Jumlah
END FUNCTION
2. Buatlah algoritma dengan metode rekursi untuk mencari nilai fungsi berikut:
1, n =1
Testing (n) =
134
Penyelesaian:
FUNCTION testing (n)
IF n=1 THEN
testing = 1
ELSE
testing = n^2 + testing(n-1)
ENDIF
END FUNCTION
Jumlah(b,n) =
Penyelesaian:
FUNCTION jumlah (b,n)
IF n=1 THEN
jumlah = 5
ELSE
Jumlah = 5 + (n-1)*b + jumlah (b, n-1)
ENDIF
END FUNCTION
Soal dan Latihan
Buatlah suatu fungsi untuk menyelesaikan persoalan-persoalan berikut:
1. Fungsi untuk menentukan nilai minimal dari 3 nilai yang diinputkan.
2. Fungsi untuk menghitung nilai Y dengan parameter n berikut:
135
DAFTAR PUSTAKA
Siang, J.J., 2002, Matematika Diskrit dan Aplikasinya pada Ilmu Komputer.
136
BIBIOGRAFI PENULIS
137