39
BAB I PENDAHULUAN 1.1 Latar Belakang. Salah satu karya Aristoteles adalah logika yang banyak berisi: pengertian, keputusan, pembuktian silogisme, dan lain-lain. Inti ajaran Aristoteles mengenai logika adalah Syllogismus, yaitu keputusan kedua yang tersusun sedemikian hingga melahirkan keputusan yang ketiga. Logika yang dikemukakan oleh Aristoteles dikenal sebagai logika tradisional, yang menjadi tonggak pemikiran logika. Pada abad ke-18 Masehi, G.W. Leibniz, seorang ahli matematika berkebangsaan Jerman, pertama kali mempelajari logika simbolik. Ahli matematika lainnya yang berjasa dalam pengembangan logika simbolik adalah George Boole, Leonard Euler, John Venn, dan Bertrand Russel. Secara etimologis, logika berasal dari kata Yunani ‘logos’ yang berarti kata, ucapan, pikiran secara utuh, atau bisa juga berarti ilmu pengetahuan (Kusumah, 1986). Dalam arti luas, logika adalah suatu cabang ilmu yang mengkaji penurunan-penurunan kesimpulan yang sahih (tidak valid). Proses berpikir yang terjadi di saat menurunkan atau menarik kesimpulan dari pernyataan- pernyataan yang diketahui benar atau dianggap benar itu biasanya disebut dengan penalaran. Banyak hal yang perlu kita ketahui mengenai logika. Dengan logika, kita juga dapat mengetahui apakah suatu pernyataan bernilai benar atau salah. Hal terpenting yang akan didapatkan setelah mempelajari logika 1

Logika Proposisi Pada c++

Embed Size (px)

Citation preview

Page 1: Logika Proposisi Pada c++

BAB I

PENDAHULUAN

1.1 Latar Belakang.

Salah satu karya Aristoteles adalah logika yang banyak berisi: pengertian, keputusan, pembuktian silogisme, dan lain-lain. Inti ajaran Aristoteles mengenai logika adalah Syllogismus, yaitu keputusan kedua yang tersusun sedemikian hingga melahirkan keputusan yang ketiga. Logika yang dikemukakan oleh Aristoteles dikenal sebagai logika tradisional, yang menjadi tonggak pemikiran logika.

Pada abad ke-18 Masehi, G.W. Leibniz, seorang ahli matematika berkebangsaan Jerman, pertama kali mempelajari logika simbolik. Ahli matematika lainnya yang berjasa dalam pengembangan logika simbolik adalah George Boole, Leonard Euler, John Venn, dan Bertrand Russel.

Secara etimologis, logika berasal dari kata Yunani ‘logos’ yang berarti kata, ucapan, pikiran secara utuh, atau bisa juga berarti ilmu pengetahuan (Kusumah, 1986). Dalam arti luas, logika adalah suatu cabang ilmu yang mengkaji penurunan-penurunan kesimpulan yang sahih (tidak valid). Proses berpikir yang terjadi di saat menurunkan atau menarik kesimpulan dari pernyataan-pernyataan yang diketahui benar atau dianggap benar itu biasanya disebut dengan penalaran.

Banyak hal yang perlu kita ketahui mengenai logika. Dengan logika, kita juga dapat mengetahui apakah suatu pernyataan bernilai benar atau salah. Hal terpenting yang akan didapatkan setelah mempelajari logika matematika adalah kemampuan atau keahlian mengambil kesimpulan dengan benar atau sah. Logika matematika memberikan dasar bagi sebuah pengambilan kesimpulan dan dapat digunakan dalam banyak aspek kehidupan.

1

Page 2: Logika Proposisi Pada c++

BAB II

LANDASAN TEORI

2.1 ALOGRITMA DAN BAHASA C++

Pengertian Algoritma dan Bahasa Pemrograman C++ - Sebelum menuju ke Bahasa Pemrograman C++, alangkah baiknya kita pahami dulu apa itu Algoritma dan Bahasa Pemrograman.

Algoritma adalah suatu langkah-langkah yang disusun secara logis dan sistematis untuk penyelesaian suatu masalah.

Algoritma harus membutuhkan Bahasa Pemrograman. Sedangkan Bahasa Pemrograman adalah bahasa yang digunakan untuk menuliskan algoritma agar dapat dimengerti oleh komputer.

Bahasa Pemrograman ada banyak sekali, salah satunya Bahasa Pemrograman C atau C++.

Bahasa C

Bahasa C merupakan salah satu bahasa yang popular digunakan dalam pemrograman. Pertama kali bahasa C dikembangkan oleh Dennis Ritchie di Bell Laboratories. Awalnya bahasa C hanya dapat dijalankan dalam System Operasi UNIX tetapi pada perkembangannya bahasa C sudah dapat digunakan dalam system operasi MS-DOS pada IBM. Bahasa C memiliki kemampuan yang sangat luas. Selain itu C memiliki kesederhanaan dalam ekspresinya dan kerampingan kodenya. Akan tetapi, C bukan merupakan bahasa yang terbaik karena bentuk bahasanya kurang jelas. Bagi pemula akan merasa sulit dalam menggunakan C tetapi nantinya bila terbiasa bahasa C merupakan bahasa yang menyenangkan untuk dipakai. Kesulitan yang diuraikan bersifat sementara saja.

Penerjemah dalam bahasa pemrograman ada dua macam, yaitu interpreter dan compiler. Interpreter merupakan penerjemah yang menerjemahkan instruksi per baris setiap saat. Sementara compiler merupakan penerjemah yang menerjemahkan seluruh instruksi dalam program secara sekaligus dan kemudian menghasilkan executable file yang langsung bisa dijalankan. Bahasa C menggunakan compiler sebagai penerjemah.

2

Page 3: Logika Proposisi Pada c++

Bahasa C adalah salah satu bahasa pemrograman yang populer di dunia dan mempunyai kemampuan lebih dari bahasa pemrograman yang lain. Banyak sekali aplikasi-aplikasi yang ditulis dalam bahasa C, atau paling tidak inti utama programnya ditulis dalam bahasa C. Bahkan, Software Development Kit untuk Windows ditulis dalam bahasa C. Bahasa C merupakan bahasa pemrograman yang sifatnya portable, yaitu dengan sedikit atau tanpa perubahan, suatu program yang ditulis dengan bahasa C pada suatu komputer dapat dijalankan pada komputer lain.

Struktur Bahasa C++

Contoh 1 :

Hasil :

// my first program in C++

Hello World!

#include <iostream.h>

int main ()

{

cout << “Hello World!”;

return 0;

}

Sisi kiri merupakan source code, yang dapat diberi namahiworld.cpp dan sisi kanan adalah

hasilnya setelah di-kompile dan di-eksekusi.

Program diatas merupakan salah satu program paling sederhana dalam C++, tetapi dalam program tersebut mengandung komponen dasar yang selalu ada pada setiap pemrograman C+ +. Jika dilihat satu persatu

:

// my first program in C++

Baris ini adalah komentar. semua baris yang diawali dengan dua garis miring (//) akan dianggap sebagai komentar dan tidak akan berpengaruh terhadap program.

3

Page 4: Logika Proposisi Pada c++

Dapat digunakan oleh programmer untuk menyertakan penjelasan singkat atau observasi yang terkait dengan program tersebut.

#include <iostream.h>

Kalimat yang diawali dengan tanda (#) adalah are preprocessor directive. Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam kasus ini kalimat#include <iostream.h> memberitahukan preprocessor kompiler untuk

menyertakan header file standardiostrea m. File spesifik ini juga termasuk library deklarasi standard I/O pada C++ dan file ini disertakan karena fungsi-fungsinya akan digunakan nanti dalam program.

int main ()

Baris ini mencocokan pada awal dari deklarasi fungsima in. fungsimain merupakan titik awal dimana seluruh program C++ akan mulai dieksekusi. Diletakan diawal, ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C++ memiliki fungsimain.

main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. pada C++, semua

fungsi diikuti oleh sepasang tanda kurung() dimana, dapat berisi argumen didalamnya. Isi dari fungsimain selanjutnya akan mengikuti,berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}), seperti dalam contoh.

cout << “Hello World”;

Intruksi ini merupakan hal yang paling penting dalam program contoh.co ut merupakan standard output stream dalam C++ (biasanya monitor).cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Perhatikan setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini menandakan akhir dari instruksi dan harus disertakan pada setiap akhir instruksi pada program C++ manapun.

return 0;

Intruksireturn menyebabkan fungsima in( ) berakhir dan mengembalikan kode yang mengikuti instruksi tersebut, dalam kasus ini0. Ini merupakan cara yang paling sering digunakan untuk mengakhiri program.

4

Page 5: Logika Proposisi Pada c++

Tidak semua baris pada program ini melakukan aksi. Ada baris yang hanya berisi komentar

(diawali //), baris yang berisi instruksi untuk preprocessor kompiler (Yang diawali

#),kemudian baris yang merupakan inisialisasi sebuah fungsi (dalam kasus ini, fungsi main)

dan baris yang berisi instruksi (seperti,cout <<), baris yang terakhir ini disertakan dalam

blok yang dibatasi oleh kurung kurawal ({}) dari fungsimain

Struktur program dapat dituliskan dalam bentuk yang lain agar lebih mudah dibaca, contoh :

int main ()

{

cout << ” Hello World “;

return 0;

}

Atau dapat juga dituliskan

:

int main () { cout << ” Hello World “; return 0; }

Dalam satu baris dan memiliki arti yang sama dengan program-program sebelumnya. pada C++

pembatas antar instruksi ditandai dengan semicolon (;) pada setiap akhir instruksi.

Contoh 2

:

Hasil :

// my second program in C++

Hello World! I’m a C++ program

#include <iostream.h>

5

Page 6: Logika Proposisi Pada c++

int main ()

{

cout << “Hello World! “;

cout << “I’m a C++ program”;

return 0;

}

2.2 Struktur Program Dalam Bahasa C

1. Pre ProcessorAdalah bagian-bagian kode pada program yang dijalankan pertama kali dan melakukan proses tertentu.Contoh :#include#define2. Main FunctionAdalah fungsi di dalam bahasa C yang pertama kali dijalankan pada waktu program di eksekusi. Program bisa dijalankan jika ada main function. Dalam satu program maximal jumlahnya 1 main function.Contoh : void main (void)3. FunctionAdalah suatu kumpulan instruksi/perintah/program yang dikelompokkan menjadi satu, letaknya terpisah dari program yang menggunakan fungsi tersebut, memiliki nama tertentu yang unik, dan digunakan untuk mengerjakan suatu tujuan tertentu. Dalam bahasan pemograman lain fungsi dapat disebut sebagai subrutin (basic, VB) atau procedure (pascal,Delphi)Contoh : void segitiga (void) //ini adalah fungsi untuk membuat segitiga dalam pemograman bahasa C++

Keuntungan Fungsi :

1. Dapat melakukan pendekatan top-down dan divide-and-conquer:2. Top-down: penelusuran program mudah.3. Divide-and-conquer: program besar dapat dipisah menjadi

program-program kecil.4. Kode program menjadi lebih pendek, mudah dibaca, dan mudah

dipahami.5. Program dapat dikerjakan oleh beberapa orang sehingga program

cepat selesai dengan koordinasi yang mudah.

6

Page 7: Logika Proposisi Pada c++

6. Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.

7. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan

8. Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.

9. Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.

10. Fungsi -fungsi digunakan untuk menghindari penulisan program yang sama yang ditulis secara berulang – ulang. Langkah – langkah tersebut dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan langkah – langkah ini tidak perlu selalu menuliskannya, tidak cukup memanggil fungsi tersebut.

11. Mempermudah dokumentasi.12. Reusability: Suatu fungsi dapat digunakan kembali oleh program

atau fungsi lain.

Sifat-sifat fungsi :1. Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil

oleh pengguna semakin tinggi nilai fan-in.2. Nilai Fan-out rendah, artinya semakin spesifik fungsi suatu modul

akan semakin rendah nilai fan-out.3. Memiliki Self-contained tinggi: artinya kemampuan untuk

memenuhi kebutuhannnya sendiri.

7

Page 8: Logika Proposisi Pada c++

2.3 DEFINISI DAN PENGENALAN ALGORTIMA

Definisi

Definisi algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah.

Algoritma Dalam Kehidupan

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makanan. Di dalam resep makanan terdapat langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain.

Bahasa Pemrograman

Untuk melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa pemrograman adalah : Pascal, C++, Basic, dll. Notasi algoritma dapat diterjemahkan kedalam bahasa pemrograman apapun, dengan kata lain notasi algoritma bersifat independen.

Flowchart

Suatu flowchart adalah suatu representasi secara diagram yang mengilustrasikan urutan dari operasi yang dilakukan untuk mendapatkan suatu hasil. Dengan kata lain, flowchart membantu kita untuk mengerti dan melihat bentuk algoritma dengan menampilkan algoritma dalam simbol-simbol gambar.

Dalam menggambar flowchart, digunakan simbol tertentu seperti diatas. Contoh

8

Page 9: Logika Proposisi Pada c++

berikut bisa digunakan untuk lebih mengerti perbedaan kegunaan simbol-simbol tersebut. Misal kita ingin mencari jumlah dari 2 buah bilangan, maka flowchart-nya adalah sebagai berikut :

Contoh lain, misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. Untuk itu kita harus membuat flowchart seperti ini :

9

Page 10: Logika Proposisi Pada c++

2.4 Pseudo Code

Pseudo Code adalah urutan baris algoritma seperti kode pemrograman dan tidak memiliki sintak yang baku. Pseudo Code lebih umum digunakan oleh programmer yang berpengalaman. Akan tetapi, flowchart lebih mudah dimengerti oleh programmer pemula, pseudo code sangat mudah diimplementasikan ke dalam kode program dibandingkan dengan flowchart. Kita bisa bebas menulis pseudo code selama itu mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya. Dan ikuti gaya penulisan pemrograman seperti Pascal, C++, dll. Perhatikan kode dibawah ini :

1. Mulai2. Masukkan sebuah angka3. Masukkan sebuah angka dan tampilkan4. Ambil angka yang sebelumnya dan tampilkan5. Selesai

Walaupun pseudo code diatas masih bisa dimengerti tetapi ada beberapa statemen yang ambigu. Dari baris kedua, kita tidak tahu kemana angka tersebut disimpan dan kita juga tidak tahu angka yang mana yang dimaksud untuk “angka yang sebelumnya”. Apakah angka yang pertama atau yang kedua. Pseudo Code diatas dapat dimodifikasi menjadi seperti berikut :

1. Start2. Masukkan A3. Masukkan B, Tampilkan B4. Tampilkan A5. End

Pseudo Code diatas lebih baik dibandingkan sebelumnya. Kita bisa dengan jelas melihat dimana angka disimpan dan angka yang mana yang ditampilkan. Sekarang kita akan mengubah flowchart pada gambar 1.2

1. Start2. Masukkan A dan B3. C = A + B4. Tampilkan C5. End

KomentarKomentar adalah bagian dari program yang diabaikan oleh kompiler. Tidak melaksanakan aksi apapun. Mereka berguna untuk memungkinkan para programmer untuk memasukan catatan atau deskripsi tambahan mengenai program tersebut. C++ memiliki dua cara untuk menuliskan komentar ://

10

Page 11: Logika Proposisi Pada c++

Komentar baris/*Komentar Blok */Komentar baris, akan mengabaikan apapun mulai dari tanda (//) sampai akhir dari baris yangsama. Komentar Blok, akan mengabaikan apapun yang berada diantara tanda /* dan*/

LOGIKA PROPOSISI

Logika proposisi sama dengan kalimat. Logika proposisi memiliki bentuk yang sudah ditentukan. Proposisi dilambangkan p,q,r,…dsb yang sudah memiliki bentuk baik jika di operasikan menggunakan operator-operator logika (and, or, not,…dsb)

Operator-operator logika proposisi

1. And (^), konjungsi2. Or (v), disjungsi3. Eqv (), equivalent4. Implikasi (⇒), if…then…5. Biimplikasi (<=>)

3.1 Konjungsi

Konjungsi, konjungtor, atau kata sambung adalah kata atau ungkapan yang menghubungkan dua satuan bahasa yang sederajat: katadengan kata, frasa dengan frasa, klausa dengan klausa, serta kalimat dengan kalimat. Contoh: dan, atau, serta.

11

Page 12: Logika Proposisi Pada c++

Preposisi dan konjungsi adalah dua kelas yang memiliki anggota yang dapat beririsan.Contoh irisannya adalah karena, sesudah, sejak, sebelum.

Perilaku sintaksis

1. Konjungsi koordinatif; menghubungkan dua atau lebih unsur (termasuk kalimat) yang sama pentingnya atau setara. Kalimat yang dibentuk disebut kalimat majemuk setara. Contoh: dan, serta, atau, tetapi, melainkan, padahal, sedangkan.

2. Konjungsi korelatif; menghubungkan dua atau lebih unsur (tidak termasuk kalimat) yang memiliki status sintaksis yang sama dan membentuk frasa atau kalimat. Kalimat yang dibentuk agak rumit dan bervariasi, kadang setara, bertingkat, atau bisa juga kalimat dengan dua subjek dan satu predikat. Contoh: baik ... maupun, tidak hanya ..., tetapi juga, bukan hanya ..., melainkan juga, demikian ... sehingga, sedemikian rupa ... sehingga, apa(kah) ... atau, entah ... entah, jangankan ..., ... pun.

3. Konjungsi subordinatif; menghubungkan dua atau lebih klausa yang tidak memiliki status sintaksis yang sama. Konjungsi membentuk anak kalimat yang jika digabungkan dengan induk kalimat akan membentuk kalimat majemuk bertingkat.

1. Konjungsi subordinatif waktu; sejak2. Konjungsi subordinatif syarat; jika3. Konjungsi subordinatif pengadaian; andaikan4. Konjungsi subordinatif tujuan; agar5. Konjungsi subordinatif konsesif; biarpun6. Konjungsi subordinatif pembandingan; ibarat7. Konjungsi subordinatif sebab; karena8. Konjungsi subordinatif hasil; sehingga9. Konjungsi subordinatif alat; dengan10. Konjungsi subordinatif cara; tanpa11. Konjungsi subordinatif komplementasi; bahwa12. Konjungsi subordinatif atributif; yang13. Konjungsi subordinatif perbandingan; sama ... dengan

4. Konjungsi antarkalimat; merangkaikan dua kalimat, tetapi masing-masing merupakan kalimat sendiri.

Jenis-jenis konjungsi: 1. Konjungsi antar klausa, dibagi menjadi 3 jenis yaitu:a. Konjungsi koordinatif adalah konjungsi yang menghubungkan dua

12

Page 13: Logika Proposisi Pada c++

klausa atau lebih yang memiliki status sintaksis yang sama. ( =konjungsi setara )Macam-macam:- dan (menyatakan penambahan)- tetapi ( menyatakan perlawanan)- atau ( menyatakan pemilihan )b. Konjungsi subordinatif yaitu konjungsi yang menghubungkan dua klausa atau lebih yang memiliki status sintaksis yang tidak sama. (=konjungsi bertingkat )c. Konjungsi korelatif adalah konjungsi yang menghubungkan dua kata, frasa, atau klausa dan kedua unsur itu memiliki status sintaksis yang sama.

Konjungsi korelatif terdiri atas dua bagian yang dipisahkan oleh salah satu kata, frasa, atau klausa yang dihubungkan..2. Konjungsi Antarkalimat yaitu konjungsi yang menghubungkan satu kalimat dengan kalimat yang lain. Oleh karena itu, konjungsi ini selalu memulai satu kalimat yang baru dan huruf pertamanya ditulis dengan huruf kapital.3. Konjungsi Antar paragraf yaitu konjungsi yang digunakan untuk menghubungkan paragraf tempat konjungsi itu dipakai dengan paragraf sebelumnya.Konjungsi antar paragraf pada umumnya terletak pada awal paragraf.

Operasi konjungsi merupakan operasi biner yang dilambangkan "∧" dan dibaca "dan".Dari pernyataan p dan pernyataan q dapat disusun pernyataan

"p ∧ q" dibaca "p dan q".

Dalam tabel kebenaran konjungsi suatu pernyataan bernilai benar jika keduanya benar.tabel selengkapnya bisa dilihat dibawah ini.Cara membacanya “Jika p adalah benar dan q adalah salah, maka salah”.

Tabel nilai kebenaran konjungsi sebagai berikut:

13

Page 14: Logika Proposisi Pada c++

atau

Catatan:

Dari tabel di atas dapat dikatakan bahwa konjungsi bernilai benar (B) jika kedua komponen penyusunnya bernilai benar(B), jika tidak demikian maka konjungsi bernilai salah (S).Operasi konjungsi sering juga ditunjukkan dengan hubungan seri pada rangkaian listrik seperti gambar berikut:

Dari gambar rangkaian tampak bahwa arus hanya bisa terhubung jika saklar p maupun q tertutup.

Contoh:Tentukan nilai kebenaran dari pernyataan berikut:

1. Jakarta ibu kota RI dan Tugu Muda terletak di kota Semarang.2. Gedung lawang sewu terletak di kota Semarang dan 6 + 4 = 113. (sin x = 1+ cos2x) dan jumlah sudut dalam segitiga 360.

Penyelesaian:(1) Kalimat bernilai benar karena kedua pernyataan penyusunnya bernilai benar.(2) Kalimat bernilai salah karena salah satu pernyataan penyusunnya bernilai salah.(3) Kalimat bernilai salah karena salah kedua pernyataan penyusunnya bernilai salah.

14

Page 15: Logika Proposisi Pada c++

3.2 Disjungsi.

Operasi konjungsi merupakan operasi binar yang dilambangkan "V" dan dibaca "atau". Dari pernyataan p dan pernyataan q dapat disusun pernyataan" p V q" dibaca "p atau q".

Dalam tabel kebenaran disjungsi suatu pernyataan bernilai salah jika keduanya bernialai salah.Cara membacanya “Jika p adalah benar atau q adalah salah, maka benar”.Tabel nilai kebenaran disjungsi sebagai berikut:

atau

Catatan:Dari tabel di atas dapat dikatakan bahwa disjungsi bernilai salah (S) jika kedua komponen penyusunnya bernilai salah (S), jika tidak demikian maka disjungsi bernilai benar (B).

Operasi konjungsi sering juga ditunjukkan dengan hubungan paralel pada rangkaian listrik seperti gambar di bawah.

15

Page 16: Logika Proposisi Pada c++

Dari gambar rangkaian tampak bahwa arus tidak bisa terhubung jika saklar p maupun q sama-sama terbuka atau keduanya salah.

Contoh:Tentukan nilai kebenaran pernyataan yang berikut:

1. Gus Dur adalah presiden RI yang ke 4 atau Megawati Wakil presiden RI yang ke4

2. 3 + 4 = 5 atau 5 bukan bilangan prima.

Penyelesaian:

1. Benar karena Gus Dur adalah presiden RI yang ke 4 bernilai benar.2. Salah karena kedua komponennya bernilai salah.

Disjungsi dibedakan menjadi dua macam yaitu disjungsi inklusif dan disjungsi eksklusif.

Disjungsi inklusif adalah jika p dan q merupakan dua buah per-nyataan

maka "p ∨ q" bernilai benar (B) jika p dan q keduanya bernilai benar, atau

salah satu bernilai salah, sebaliknya "p ∨ q" bernilai salah (S) jika keduanya bernilai salah.

Contoh:p: Pak Budi orang kaya.q: Pak Budi rajin bekerja.

p∨ q: Pak Budi orang kaya atau rajin bekerja.

Di sini mempunyai dua pengertian:(1) Pak Budi orang kaya saja atau rajin bekerja saja tetapi tidak keduanya.(2) Pak Budi orang kaya saja atau rajin bekerja saja tetapi mungkin juga keduanya.

16

Page 17: Logika Proposisi Pada c++

Tabel nilai kebenaran disjungsi inklusif sebagai berikut:

atau

Disjungsi eksklusifadalah jika p dan q merupakan dua buah pernyataan

maka "p ∨ q" bernilai benar (B) jika salahsatu bernilai salah (S) atau salah

satu bernilai (B), sebaliknya "p ∨ q" bernilai salah (S) jika keduanya bernilai benar (B) atau keduanya bernilai salah (S).

Contoh :p : Joni naik pesawat terbang.q : Joni naik kapal laut.

p∨ q : Joni naik pesawat terbang atau kapal laut.

Dalam contoh tersebut, Joni hanya naik pesawat terbang saja atau kapal laut saja, dan tidak mungkin naik pesawat terbang dan sekaligus naik kapal laut.

17

Page 18: Logika Proposisi Pada c++

Tabel nilai kebenaran disjungsi eksklusif sebagai berikut:

atau

3.3 ekuivalent

Bentuk yang equivalent dengan “jika p maka q”

B B S B B

B S S S S

S B B B B

S S B B B

Dari tabel tersebut didapatkan dua pernyataan yang ekuivalen. Ingat kembali tentang pernyataan yang ekuivalen, yaitu jika nilai pada tabel kebenarannya selalu sama. Pernyataan pada dua kolom terakhir, yaitu

ekuivalen dengan . Setiap barisnya mempunyai nilai yang sama. BSBB dan BSBB.B adalah benar dan S adalah salah. Ingat betul dua pernyataan ini 

18

Page 19: Logika Proposisi Pada c++

Pernyataan ini sering muncul di soal-soal.Lalu bagaimana dengan negasinya?Tentu kita bisa dengan mudah menegasikannya.

Jadi, negasi dari ekuivalen dengan .

Contoh-contohnya seperti berikut:

Coba sekarang kita cari pernyataan yang ekuivalen dengan pernyataan ini “jika belajar maka lulus”. Secara mudah kita bisa mengatakan bahwa pernyataan tersebut ekuivalen dengan “jika tidak lulus maka tidak belajar”. Ini adalah bentuk pernyataan yang equivalen dengan jika … maka… .Bentuk ini disebut kontraposisi. adalah kontraposisi dari . Perhatikan table kebenarannya berikut ini

B B S S B B

B S S B S S

S B B S B B

S S B B B B

Namun, bentuk yang ekuivalen tersebut masih mengandung jika … maka… .  Di soal-soal ujian atau tes, banyak sekali tipe soal yang pada pertanyaannya mengandung jika … maka… , tetapi pada jawabannya sama sekali tidak mengandung jika … maka… . Inilah

kegunaannya.Bentuk sebaiknya diingat betul. Karena akan banyak digunakan pada soal-soal ujian atau soal-soal tes, SNMPTN/UMPTN, Ujian Nasional, dsb.

Ketika kita sudah punya ini, dengan mudah kita bisa menjawab masalah tadi.pernyataan yang ekuivalen dengan pernyataan “jika belajar maka lulus” adalah “tidak belajar atau lulus”. Dan juga ekuivalen dengan “jika tidak lulus maka tidak belaja

19

Page 20: Logika Proposisi Pada c++

3.4 Implikasi

Suatu implikasi ab bernilai S jika dan hanya jika pendahulunya bernilai B dan pengikutnya bernilai S, sedangkan untuk nilai-nilai kebenaran pendahulu dan pengikutnya yang lain, implikasi itu bernilai B.

p ⇒ q bernilai salah, jika p benar dan q salah. selain ini benar semua.Tabel kebenaran implikasi bisa dilihat sendiri pada tabel berikut.Cara membacanya “Jika p adalah benar maka q adalah salah, hasilnya salah”.

Negasi Suatu Implikasi

Dari keterangan diatas Negasi suatu implikasi dapat kita ambil dari baris 2, Anak tersebut naik kelas dan tidak dibelikan sepeda.

Nilai Kebenaran Negasi implikasi

a b ~b ab ~( ab) aΛ~b

B B S B S S

B S B S B B

S B S B S S

S S B B S S

Tampak pada tabel 1.8.bahwa urutan nilai kebenaran dari “~( ab)” sama dengan urutan nilai kebenaran dari “aΛ~b”. Hal ini dapat dikatakan bahwa negasi dari suatu implikasi adalah suatu konjungsi dari pendahulu dan negasi pengikut implikasi itu bisa disimbolkan ~( ab) ≡ aΛ~b.

Beberapa contoh lain :

20

Page 21: Logika Proposisi Pada c++

“Jika kamu belajar giat maka kamu akan naik kelas” negasinya “Kamu belajar giat dan kamu tidak naik kelas ““Jika Ami datang kesini maka ami tidak sakit” negasinya “ Ami datang kesini dan Ami tidak sakit”.

Konvers, Invers, dan Kontrapositif dari suatu Implikasi

Jika ada implikasi “ab” maka konversnya “ba”.  Contoh jika ada implikasi “Jika kamu naik kelas maka bapak belikan sepeda” konversnya menjadi “Jika bapak belikan sepeda maka kamu naik kelas”.Jika Invers kita negasikan dulu masing2 pernyataan dalam implikasi tersebut. Jadi implikasi diatas gabungan dari pernyataan “kamu naik kelas” kita negasikan  menjadi “kamu tidak naik kelas sedangkan pernyataan kedua “bapak belikan sepeda” kita negasikan menjadi “bapak tidak belikan sepeda”. Maka Invers dari implikasi tersebut menjadi “Jika kamu tidak nik kelas maka bapak tidak belikan sepeda”.  Atau dapat kita simbolkan sebagai berikut. Jika ada implikasi “ab” maka inversnya menjadi “~a~b”Dari suatu implikasi selain dibentuk konvers dan imversnya , dapat pula dibentuk  Implikasi baru yang lain. Seperti langkah Invers masing-masing pernyataan dinegasikan posisi juga ditukar tempatnya implikasi ini disebut kontrapositif, jadi kontrapositif dari implikasi “ab” menjadi “~b~a”.

Nilai Kebenaran dari Konvers, invers dan kontrapositif suatu implikasi

a b ~a ~b ab ba ~a~b ~b~a

B B S S B B B B

B S S B S B B S

S B B S B S S B

S S B B B B B B

3.5 Biimplikasi

Perhatikan implikasi “ab”, dan konversnya, yaitu “ba”. Dibentuk konjungsi antara implikasi dan konversnya tersebut, yaitu “(ab) Λ(ba)”. Menentukan nilai konjungsi ini jika diketahui nilai-nilai kebenaran dari a dan b. Biimplikasi bernilai benar jika keduanya bernilai salah atau benarNilai kebenaran dari konjungsi (ab) Λ(ba)

21

Page 22: Logika Proposisi Pada c++

a b ab ba (ab) Λ(ba)

B B B B B

B S S B S

S B B S S

S S B B B

Dari tabel 1.10 diatas kita dapat menyimpulkan nilai kebenaran dari “(ab) Λ(ba)” hanya  B apabila nilai kebenaran dari a sama dengan nilai kebenaran dari b, dan bernilai S apabila nilai kebenaran dari a dan b berbeda. Selanjutnya “(ab) Λ(ba)” ditulis menjari a<=> b dan disebut biimplikasi.Contoh : kamu bapak belikan sepeda jika dan hanya jika kamu naik kelas (B) , Bagus menjadi presiden RI jika dan hanya jika ibukota Negara di Surabaya(B)Negasi dari suatu biimplikasiBiimplikasi “a<=> b” adalah singkatan dari “(ab) Λ(ba)” maka

a<=> b)= ~[(ab) Λ(ba)]~(ab)V~(ba)           (negasi konjungsi)= (a Λ~b)V(b Λ~a)            (negasi implikasi)

Tabel 1.11Nilai kebenaran dari Implikasi dan Negasinya

a b ~a ~b a<=> b a Λ~b b Λ~a ~ a<=> b (a Λ~b)V(b Λ~a)

B B S S B S S S S

B S S B S B S B B

S B B S S S B B B

S S B B B S S S S

Contoh : Bayu dibelikan sepeda jhj Bayu naik kelas, negasinya Bayu dibelikan Sepeda dan Bayu tidak naik kelas atau Bayu naik kelas dan tidak dibelikan sepeda.

22

Page 23: Logika Proposisi Pada c++

LISTING PROGRAM DAN TAMPILAN

23

Page 24: Logika Proposisi Pada c++

#include <vcl.h>#include <iostream.h>#include <conio.h>int p[16], q[16];int o, x;

konjungsi (){printf("PROGRAM PROPOSISI LOGIKA KONJUNGSI ( ^ ) P dan Q\n\n");for(x=0;x<1;x++){printf("Masukan proposisi P\t: "); scanf("%d",&p);}for(x=0;x<1;x++){printf("Masukan proposisi Q\t: "); scanf("%d",&q);}for(x=0;x<1;x++){

if(p[x] == 1 && q[x] == 1){printf("P ^ Q : 1\n"); }else if(p[x] == 1 && q[x] == 0){printf("P ^ Q : 0\n"); }else if(p[x] == 0 && q[x] == 1){printf("P ^ Q : 0\n"); }else if(p[x] == 0 && q[x] == 0){printf("P ^ Q : 0\n"); }}}

24

Page 25: Logika Proposisi Pada c++

disjungsi (){printf("PROGRAM PROPOSISI LOGIKA DISJUNGSI ( v ) P atau Q\n\n");for(x=0;x<1;x++){printf("Masukan proposisi P\t: "); scanf("%d",&p);}for(x=0;x<1;x++){printf("Masukan proposisi Q\t: "); scanf("%d",&q);}for(x=0;x<1;x++){if(p[x] == 1 && q[x] == 1){printf("P v Q : 1\n"); }else if(p[x] == 1 && q[x] == 0){printf("P v Q : 1\n"); }else if(p[x] == 0 && q[x] == 1){printf("P v Q : 1\n"); }else if(p[x] == 0 && q[x] == 0){printf("P v Q : 0\n"); }}}

implikasi (){printf("PROGRAM PROPOSISI LOGIKA IMPLIKASI (-->) P jika maka Q\n\n");for(x=0;x<1;x++){printf("Masukan proposisi P\t: "); scanf("%d",&p);}for(x=0;x<1;x++){printf("Masukan proposisi Q\t: "); scanf("%d",&q);}for(x=0;x<1;x++){if(p[x] == 1 && q[x] == 1)

25

Page 26: Logika Proposisi Pada c++

{printf("P --> Q : 1\n"); }else if(p[x] == 1 && q[x] == 0){printf("P --> Q : 0\n"); }else if(p[x] == 0 && q[x] == 1){printf("P --> Q : 1\n"); }else if(p[x] == 0 && q[x] == 0){printf("P --> Q : 1\n");}}}

bimplikasi (){printf("PROGRAM PROPOSISI LOGIKA BIMPLIKASI (<-->) P d Q\n\n");for(x=0;x<1;x++){printf("Masukan proposisi P\t: "); scanf("%d",&p);}for(x=0;x<1;x++){printf("Masukan proposisi Q\t: "); scanf("%d",&q);}for(x=0;x<1;x++){if(p[x] == 1 && q[x] == 1){printf("P <--> Q : 1\n"); }else if(p[x] == 1 && q[x] == 0){printf("P <--> Q : 0\n"); }else if(p[x] == 0 && q[x] == 1){printf("P <--> Q : 0\n"); }else if(p[x] == 0 && q[x] == 0){printf("P <--> Q : 1\n"); }}}

negasi (){printf("PROGRAM PROPOSISI LOGIKA NEGASI IMPLIKASI (<-/->) P d Q\n\n");for(x=0;x<1;x++){

26

Page 27: Logika Proposisi Pada c++

printf("Masukan proposisi P\t: "); scanf("%d",&p);}for(x=0;x<1;x++){printf("Masukan proposisi Q\t: "); scanf("%d",&q);}for(x=0;x<1;x++){if(p[x] == 1 && q[x] == 1){printf("P <-/-> Q : 0\n"); }else if(p[x] == 1 && q[x] == 0){printf("P <-/-> Q : 1\n"); }else if(p[x] == 0 && q[x] == 1){printf("P <-/-> Q : 0\n"); }else if(p[x] == 0 && q[x] == 0){printf("P <-/-> Q : 0\n"); }}}

main (){int pilihan, ulang;do{clrscr();printf("=====PROGRAM LOGIKA MATEMATIKA\n\n=====");printf("===========4 PROPOSISI\n\n=============");printf("=================MENU==============\n\n");printf("No Proposisi Simbol Istillah \n");printf("1. Konjungsi (P ^ Q) Dan \n");printf("2. Disjungsi (P v Q) Atau \n");printf("3. Implikasi (P --> Q) Jika Maka \n");printf("4. Ekivalensi (P <--> Q) Jika Hanya Jika \n");printf("5. Negasi Implikasi (P <-/-> Q) Tidak JHJ \n");printf("6. Exit \n");printf("\n \n");

printf("Masukan Pilihan Anda : "); scanf("%d", &pilihan);

clrscr();

27

Page 28: Logika Proposisi Pada c++

if(pilihan==1){konjungsi();}

else if(pilihan==2){disjungsi ();}

else if(pilihan==3){implikasi();}

else if(pilihan==4){bimplikasi ();}

else if(pilihan==5){negasi();}

else if(pilihan==6){goto exit;}

else{printf("MAAF PILIHAN ANDA TIDAK ADA\n");printf("\n");}printf("Apa Anda Ingin Kembali Ke Menu [Y/N] : "); scanf("%s",&ulang);}while(ulang=='Y' || ulang=='y');exit:}

28

Page 29: Logika Proposisi Pada c++

KESIMPULAN

Secara etimologis, logika berasal dari kata Yunani ‘logos’ yang berarti

kata, ucapan, pikiran secara utuh, atau bisa juga berarti ilmu pengetahuan

(Kusumah, 1986). Logika adalah suatu cabang ilmu yang mengkaji penurunan-

penurunan kesimpulan yang sahih (tidak valid).

Dalam logika matematika menjelaskan tentang operasi logika, yaitu negasi

(ingkaran), konjungsi, disjungsi, implikasi dan biimplikasi

29

Page 30: Logika Proposisi Pada c++

BAB IV

DAFTAR PUSTAKA

Wibisono, Samuel. 2004. Matematika Diskrit. Yogyakarta: Graha Ilmu.

Lipschutz, Seymour dan George G. hall. 1988. Matematika Hingga. Jakarta: Penerbit Erlangga.

Wirodikromo, Sartono. 2006. Matematika untuk SMA Kelas X. Jakarta: Penerbit Erlangga.

Kurnianingsih, Sri dkk. 2001. Matematika untuk SMA Kelas X. Jakarta: Penerbit Erlangga.

http://gongsot.blogspot.com/

http://januar-anas.blogspot.com/2009/10/tugas-c-algoritma.html

30