Anda di halaman 1dari 104

LOGIKA

(Logic)
--02--
LOGIKA

• Logika merupakan dasar dari semua penalaran


(reasoning).

• Penalaran dilakukan berdasarkan pada hubungan


antara pernyataan-pernyataan (statements).

• Pernyataan-pernyataan yang digunakan sebagai input


dari penalaran disebut proposisi
PROPOSISI

• Proposisi : kalimat deklaratif yang bernilai benar (true)


atau salah (false), tetapi tidak keduanya.

• Nama lain proposisi : kalimat terbuka.

• Contoh :
a) 13 adalah bilangan ganjil
b) 1 + 1 = 2
c) 8  akar kuadrat dari 8 + 8
d) Ada monyet di bulan
e) Hari ini adalah hari kamis
f) Untuk sembarang bilangan bulat n  0, maka 2n adalah
bilangan genap
PROPOSISI

• Pertanyaan,
Apakah contoh kalimat d bawah ini proposisi:
(a) Jam berapa pesawat Garuda tiba di Bandara
Husein Sastra Negara ?
(b) Isilah gelas tersebut dengan air!
(c) x + 3 = 8
(d) x > 3
PROPOSISI
• Proposisi dilambangkan dengan huruf kecil p, q, r, ….

p : 13 adalah bilangan ganjil


q : 8  akar kuadrat dari 8 + 8
r: 2+2=4
MENGKOMBINASI PROPOSISI
• Misalkan p dan q adalah proposisi

1) Konjungsi (conjunction): p dan q


Notasi p  q,

2) Disjungsi (disjunction): p atau q


Notasi: p  q

3) Ingkaran (negation) dari p: tidak p


Notasi: p

• p dan q disebut proposisi atomik


• Kombinasi p dengan q menghasilkan proposisi majemuk
(compound proposition)
MENGKOMBINASI PROPOSISI
Contoh.
Diketahui proposisi-proposisi berikut:
p : Hari ini hujan
q : Murid-murid diliburkan dari sekolah

p  q : Hari ini hujan dan murid-murid diliburkan dari sekolah


p  q : Hari ini hujan atau murid-murid diliburkan dari sekolah
p : Tidak benar hari ini hujan
(atau: Hari ini tidak hujan)
MENGKOMBINASI PROPOSISI
Contoh Diketahui proposisi-proposisi berikut:
p : Pemuda itu tinggi
q : Pemuda itu tampan

Nyatakan dalam bentuk simbolik:


1) Pemuda itu tinggi dan tampan
2) Pemuda itu tinggi tapi tidak tampan
3) Pemuda itu tidak tinggi maupun tampan
4) Tidak benar bahwa pemuda itu pendek atau tidak tampan
5) Pemuda itu tinggi, atau pendek dan tampan
6) Tidak benar bahwa pemuda itu pendek dan tidak tampan
Penyelesaian:
1) p  q
2) p  q
3) p  q
4) (p  q)
5) p  (p  q)
6) (p  q)
TABEL KEBENARAN
TABEL KEBENARAN

Contoh 5.

Misalkan
p : 17 adalah bilangan prima (benar)
q : bilangan prima selalu ganjil (salah)

pq:
17 adalah bilangan prima dan
bilangan prima selalu ganjil

→ (salah)
TABEL KEBENARAN

Contoh

Buatlah tabel kebenaran dari proposisi majemuk ini (p  q)  (~q  r)


TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

Contoh
Bentuklah tabel kebenaran dari proposisi majemuk (p  q)  (~q  r).
TABEL KEBENARAN

p  ~(p  q)

(p  q)  ~(p  q)
TABEL KEBENARAN

p  ~(p  q)

(p  q)  ~(p  q) T

• Proposisi majemuk disebut tautologi jika ia benar untuk semua kasus


• Proposisi majemuk disebut kontradiksi jika ia salah untuk semua
kasus.
TABEL KEBENARAN
Disjungsi Eksklusif
Kata “atau” (or) dalam operasi logika digunakan dalam dua cara:

1) Inclusive or
“atau” berarti “p atau q atau keduanya”

Contoh:
“Tenaga IT yang dibutuhkan menguasai Bahasa C++ atau Java”.

2)Exclusive or

“atau” berarti “p atau q tetapi bukan keduanya”.

Contoh:
“Ia lahir di Bandung atau di Padang”.
Disjungsi Eksklusif
Proposisi Bersyarat (kondisional atau implikasi)

• Bentuk proposisi: “jika p, maka q”

• Notasi: p → q
• Proposisi p disebut hipotesis, antesenden, premis, atau
kondisi
• Proposisi q disebut konklusi (atau konsekuen).
Proposisi Bersyarat (kondisional atau implikasi)

Contoh :
▪ Jika suhu mencapai 80C, maka alarm akan
berbunyi
▪ Jika anda tidak mendaftar ulang, maka anda
dianggap mengundurkan diri
Proposisi Bersyarat (kondisional atau implikasi)

Cara-cara mengekspresikan implikasi p → q:

1) Jika p, maka q
2) Jika p, q
3) p mengakibatkan q (p implies q)
4) q jika p
5) p hanya jika q
6) p syarat cukup untuk q (hipotesis menyatakan
syarat cukup (sufficient condition) )
7) q syarat perlu untuk p (konklusi menyatakan
syarat perlu (necessary condition) )
8) q bilamana p (q whenever p)
Proposisi Bersyarat (kondisional atau implikasi)
Contoh
Proposisi-proposisi berikut adalah implikasi dalam berbagai
bentuk:
1) Jika hari hujan, maka tanaman akan tumbuh subur.
2) Jika tekanan gas diperbesar, mobil melaju kencang.
3) Es yang mencair di kutub mengakibatkan permukaan air laut
naik.
4) Orang itu mau berangkat jika ia diberi ongkos jalan.
5) Ahmad bisa mengambil matakuliah Bhs Pemrograman hanya
jika ia sudah lulus matakuliah Algoritma.
6) Syarat cukup agar pom bensin meledak adalah percikan api
dari rokok.
7) Syarat perlu bagi Indonesia agar ikut Piala Dunia adalah
dengan mengontrak pemain asing kenamaan.
8) Banjir bandang terjadi bilamana hutan ditebangi.
Proposisi Bersyarat (kondisional atau implikasi)

Ubahlah proposisi 3 sampai 8 pada Contoh di atas ke dalam bentuk proposisi


“jika p maka q”

Penyelesaian:
3) Jika es mencair di kutub, maka permukaan air laut naik.
4) Jika orang itu diberi ongkos jalan, maka ia mau berangkat.
5) Jika Ahmad mengambil matakuliah Bhs Pemrograman, maka ia sudah
lulus matakuliah Algoritma.
6) Pernyataan yang diberikan ekivalen dengan “Percikan api dari rokok
adalah syarat cukup untuk membuat pom bensin meledak” atau “Jika api
memercik dari rokok maka pom bensin meledak”
7) Pernyataan yang diberikan ekivalen dengan “Mengontrak pemain asing
kenamaan adalah syarat perlu untuk Indonesia agar ikut Piala Dunia”
atau “Jika Indonesia ikut Piala Dunia maka Indonesia mengontrak pemain
asing kenamaan”.
8) Jika hutan-hutan ditebangi, maka banjir bandang terjadi.
NOTASI PENULISAN ALGORITMA
Tipe Data
• Tempat menyimpan data = variabel
• Variabel yang data (isinya) tetap disebut konstanta

• Setiap variabel atau konstanta mempunyai tipe data

• Ketepatan pemilihan tipe data pada variabel atau


konstanta akan sangat menentukan pemakaian
sumberdaya komputer (terutama memori komputer)

• Salah satu tugas penting seorang programmer adalah


memilih tipe data yang sesuai untuk menghasilkan
program yang efisien dan berkinerja tinggi.
Tipe Data
Tipe data terdiri dari tipe:

• Tipe dasar
– Tipe yang dapat langsung dipakai (disediakan oleh
bahasa pemrograman)
– Contoh: boolean, integer, real, char, string

• Tipe bentukan
– Tipe yang didefinisikan sendiri oleh pemrogram
– Tipe yang dibentuk dari tipe dasar atau dari tipe
bentukan lain yang sudah didefinisikan
– Contoh: tipe dasar yang diberi nama tipe baru, record
Pengelompokkan tipe data
Tipe Bentukan
• Tipe dasar yang diberi nama tipe baru
– Nama baru untuk tipe dasar menggunakan kata kunci type
– Domain nilai, cara menulis konstanta, dan operasi-operasi yang
dapat dijalankan pada tipe baru tersebut tidak berubah, sama
seperti tipe dasarnya.
– Contoh: type BilanganBulat: integer

• Rekaman (record)
– Rekaman disusun atas satu atau lebih field
– Tipe field menyimpan data dan tipe dasar tertentu atau dari tipe
bentukan lain yang sudah didefinisikan sebelumnya
– Nama rekaman (record) ditentukan oleh pemrogram
– Rekaman disebut juga tipe terstruktur
Contoh Record
DEKLARASI
type MataKuliah : record <KodeMK : string, {kode matakuliah}
NamaMK : string, {nama matakuliah}
Nilai : char {indeks nilai}
>

type Mahasiswa : record <NIM : integer, {nomor mhs}


NamaMhs : string, {nama mhs}
MK : array[1..4] of MataKuliah
>

LarikMhs : array[1..100] of Mahasiswa


Aturan Penulisan
• Harus dimulai dengan huruf alfabet, tidak boleh dimulai
dengan angka, spasi, atau karakter khusus lainnya.
• Tidak case sensitif (beda dengan bahasa pemrograman)
• Karakter penyusun nama hanya boleh: huruf alfabet,
angka dan “_” (underscore)
• Tidak boleh dipisahkan dengan spasi
• Panjang nama tidak terbatas
• Semua nama yang dipakai harus dideklarasikan dulu
pada bagian deklarasi
Contoh Penamaan
• SALAH
– 6titik {dimulai dg angka}
– nilai ujian {dipisahkan spasi}
– PT-1 {mengandung operator kurang}
– hari! {mengandung karakter khusus}

• BENAR
– titik6 atau titik_6
– nilai_ujian atau nilaiUjian
– PT_1 atau PT1
– hari
Nilai
• Merupakan besaran dari tipe data yang sudah
didefinisikan (tipe dasar maupun tipe bentukan)
• Nilai dapat berupa:
– Isi variabel atau konstanta
– Nilai dari hasil perhitungan
– Nilai yang dihasilkan oleh fungsi
• Nilai yang disimpan di variabel dimanipulasi dengan
cara:
– Mengisikan ke variabel lain yang bertipe sama
– Dipakai untuk perhitungan
– Dituliskan ke piranti keluaran
Nilai(2)
Pengisian nilai ke variabel:
• Pengisian nilai secara langsung(assignment)
– Memasukkan sebuah nilai ke dalam nama variabel
langsung di dalam teks algoritma
– Syaratnya nilai yang diisikan harus bertipe sama dengan
tipe variabel
– Notasi: 
– Contoh:
variabel  konstanta NoMhs  1234

variabel1 variabel2 Nil_prev  nil_cur


variabel  ekspresi Luas  0.5 * p * l
Nilai(3)
• Pembacaan nilai dari piranti masukan
– Nilai untuk nama variabel dapt diisi dari piranti
masukan, misalnya dari keyboard.
– Dinamakan dengan operasi pembacaan data
– Notasi dalam teks algoritma: read
– Contoh:
• read (nama1, nama2,…namaN)
Ekspresi
Ekspresi terdiri atas: operand dan operator
Operand adalah nilai yang dioperasikan dengan operator
tertentu
Operand dapat berupa konstanta, nama variabel, nama
konstanta, atau hasil suatu fungsi
Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam
domain yang sesuai dengan tipe operand yang dipakai, ada
tiga macam: ekspresi aritmetik, ekspresi relasional, ekspresi
string.
Ekspresi(2)
• Ekspresi Aritmetika
– Ekspresi yang baik operand dan hasilnya berupa numerik
– (ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii. +, -

• Ekspresi relasional
– Hasil evaluasi adalah nilai bertipe boolean
– Ekspresi dengan operator <,≤,>,≥,=,≠, not, and, or, dan xor
– Ekspresi string :
• Ekspresi dengan operator penyambungan/concatenation “+”.
Notasi Algoritma

Terdapat tiga cara yang umum digunakan dalam


menuliskan algoritma yaitu:

1. Kalimat deskriptif
2. Flowchart
3. Pseudocode
Kalimat deskriptif

▪ Notasi penulisan algoritma dengan menggunakan bahasa


deskriptif biasa juga disebut dengan notasi alami

▪ Dasar dari notasi bahasa deskriptif adalah Bahasa Inggris,


namun dapat dimodifikasi dengan bahasa sehari-hari termasuk
Bahasa Indonesia

▪ Namun, agar notasi algoritma mudah ditranslasi ke dalam


notasi bahasa pemrograman, maka sebaiknya notasi algoritma
tersebut berkoresponden dengan notasi bahasa pemrograman
pada umumnya.
Kalimat deskriptif

▪ Notasi jenis ini cocok untuk algoritma yang pendek.

▪ Tapi untuk masalah algoritma yang panjang, notasi ini kurang


efektif.

▪ Cara penulisan algoritma dengan notasi Bahasa deskriptif


paling mudah dibuat, namun demikian cara ini paling sulit
untuk diterjemahkan ke dalam bahasa pemrograman.
Kalimat deskriptif
Teks algoritma dengan bahasa deskriptif disusun oleh
tiga bagian utama yaitu:

1. Bagian judul (header)


2. Bagian deklarasi (kamus)
3. Bagian deskripsi

Setiap bagian disertai dengan komentar untuk memperjelas


maksud teks yang dituliskan.
Komentar adalah kalimat yang diapit oleh pasangan tanda kurung
kurawal (‘{’ dan ‘}’).
Kalimat deskriptif
Kalimat deskriptif
Judul Algoritma Nama Algoritma

Spesifikasi
Deskripsi Deklarasi
Kalimat deskriptif
Judul Algoritma

▪ Nama algoritma dan penjelasan (spesifikasi) tentang


algoritma tersebut.
▪ Nama algoritma sebaiknya singkat namun cukup
menggambarkan apa yang dilakukan oleh algoritma
tersebut.
▪ Di bawah nama algoritma disertai dengan penjelasan
singkat (intisari) tentang apa yang dilakukan oleh
algoritma
▪ Penjelasan dibawah nama algoritma sering
dinamakan juga spesifikasi algoritma yang dituliskan
dalam kurung kurawal ({}).
Kalimat deskriptif
Bagian Deklarasi
▪ Di dalam algoritma, deklarasi atau kamus adalah
bagian untuk mendefinisikan semua nama yang
dipakai di dalam algoritma.

▪ Nama tersebut dapat berupa nama variabel, nama


konstanta, nama tipe, nama prosedur atau nama
fungsi.

▪ Semua nama tersebut baru dapat digunakan di


dalam algoritma jika telah didefinisikan terlebih
dahulu didalam bagian deklarasi.
Kalimat deskriptif
Bagian Deskripsi
▪ Deskripsi adalah bagian inti dari struktur algoritma
▪ Bagian ini berisi uraian langkahlangkah penyelesaian masalah.
▪ Langkah-langkah ini dituliskan dengan notasi yang lazim dalam
penulisan algoritma.
▪ Setiap langkah algoritma dibaca dari langkah paling atas hingga
langkah paling bawah.
▪ Urutan penulisan menentukan urutan pelaksanaan perintah
▪ Struktur dasar algoritma adalah langkahlangkah.
▪ Suatu Algoritma dapat terdiri dari tiga struktur dasar, yaitu runtunan,
pemilihan dan pengulangan.
▪ Pada bagian deskripsi inilah letak tiga struktur algoritma tersebut.
Flowchart
▪ Flowchart adalah cara penulisan algoritma dengan
menggunakan notasi grafis.
▪ Flowchart merupakan gambar atau bagan yang
memperlihatkan urutan atau langkah-langkah dari suatu
program dan hubungan antar proses beserta
pernyataannya.
▪ Gambaran ini dinyatakandengan simbol.
▪ Setiap simbol menggambarkan proses tertentu.
▪ Sedangkan antara proses digambarkan dengan garis
penghubung.
Flowchart
▪ Simbol-simbol Flowchart
Flowchart
▪ Simbol-simbol Flowchart
Flowchart
▪ Simbol-simbol Flowchart
Flowchart
▪ Simbol-simbol Flowchart
Flowchart
▪ Flowchart menghitung keliling lingkaran
Flowchart
▪ Flowchart menentukan bilangan ganjil atau genap
Pseudocode
▪ Pseudocode adalah cara penulisan algoritma yang
menyerupai bahasa pemrograman tingkat tinggi.
▪ Pseudocode menggunakan bahasa yang hampir menyerupai
Bahasa pemrograman.
▪ Pseudocode berisi deskripsi dari algoritma pemrograman
komputer yang menggunakan struktur sederhana dari
beberapa bahasa pemrograman tetapi bahasa tersebut hanya
di tujukan agar dapat di baca manusia.
▪ Supaya notasi pseudocode bias dipahami oleh komputer
maka harus diterjemahkan terlebih dahulu menjadi sintaks
Bahasa pemrograman komputer tertentu.
▪ Keuntungan menggunakan notasi pseudocode adalah
kemudahan mentranslasi ke notasi bahasa pemrograman,
karena terdapat korespondensi antara setiap pseudocode
dengan notasi bahasa pemrograman.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
Perbandingan beberapa kata yang biasa digunakan dalam
penulisan algoritma dengan menggunakan kalimat deskriptif
dan pseudocode.
Pseudocode
• Struktur penulisan pseudocode secara umum sama dengan
struktur penulisan algoritma dengan menggunakan kalimat
deskriptif yaitu dimulai dari judul/header, deklarasi/kamus dan
diakhiri dengan deskripsi.

• Kadang-kadang pseudocode dituliskan dengan menggunakan


style atau gaya penulisan dari beberapa bahasa pemrograman
yang ada, seperti Pascal, C dan lain-lain.
Pseudocode
Pseudocode menentukan bilangan terbesar dari 3 masukan
bilangan.
Pseudocode
Pseudocode konversi nilai angka menjadi nilai huruf.
TUGAS
1) Buatlah algoritma untuk menentukan nilai terbesar dari
bilangan bulat yang dibaca dari keyboard dan menuliskan
hasilnya ke layar! Algoritma dibuat dalam bentuk kalimat
deskriptif, pseudocode dan flowchart.

2) Buat algoritma dalam pseudocode untuk menentukan apakah


suatu bilangan merupakan bilangan genap atau ganjil!

3) Buatlah algoritma mengurutkan dan menampilkan 3 bilangan


acak dalam bentuk psedocode

Anda mungkin juga menyukai