Refreshing Materi Kuliah Semester Pendek 2010/2011
Logika dan Algoritma
Heri Sismoro, M.Kom.
STMIK AMIKOM YOGYAKARTA 2011
Materi 1.
Logika Informatika Adalah logika dasar dalam pembuatan algoritma pada pemrograman dan perancangan komputer, yaitu: Logika Proposisional (ex: proposisi, kalimat, aturan semantik, dll) Logika Predikat (seperti kuantor, dll) Logika Kombinasional (ex: gerbang logik, minterm, dll)
Proposition Logic Proposition Komponen pembentuk logika dasar Dinyatakan dengan truth value atau symbol Membentuk kalimat deklaratif, bukan kalimat terbuka
Sentence Dibentuk dari proposisi dengan connective proposition, yaitu: not, and, or, if-then,-if and only if-, if-then-else. Kalimat logika, berupa: Proposisi, Negasi, Konjungsi, Disjungsi, Implikasi, Ekuivalensi, Kondisional,
ex: p ex: ~p ex: p∧q ex: pVq ex: p q ex: p q ex: if p then q else r
Semantic Rule Aturan yang digunakan untuk menentukan truth value dari suatu sentence, yaitu: Negation Rule (aturan NOT) p True False
~p False True
Conjunction Rule (aturan AND) p q True True True False False True False False
p∧q True False False False
Disjunction Rule (aturan OR) p q True True True False False True False False
p∨ q True True True False
Implication Rule (aturan IF-THEN) p q True True True False False True False False
p q True False True True
Equivalence Rule (aturan IF -AND ONLY- IF ) p q p q True True True True False False False True False False False True Conditional Rule (aturan IF–THEN-ELSE) 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
Truth Table Suatu cara untuk menentukan truth value dari suatu sentence Contoh: Nilai kebenaran dari kalimat: not (p and (not p)) or q Langkah 1. Ubah kalimat logika dalam simbol, menjadi: ~(p∧~p) ∨ q Langkah 2. Ubah simbol dalam tabel kebenaran, menjadi: p T T F F
q T F T F
~ p F F T T
p∧~p F F T F
~(p ∧ (~ p)) T T F T
~ (p∧ ~ p) ∨ q T T T T
Properties of Sentence Valid, jika untuk setiap interpretation I for f, maka f true Satisfiable, jika untuk suatu interpretation I for f, maka f true Contradiction, jika untuk setiap interpretation I for f, maka f false
Latihan Ubahlah kalimat berikut dengan simbol konvensional, kemudian tentukan truth value-nya dengan menggunakan truth table. (if p then q) or (if q then p) (not q) or not (if (p then (notq)) and p) (if (p then q) and r else (not q) and s) if and only if (if q then p) [if (p or q) then r] if and only if [(if p then r) and (if q then r)] ((p or q) and not r) if and only if ((if p then r) and (if q then r) (p and (if r then s)) if only if ((if r then s) and p)
Materi 2.
Algoritma Algoritma Adalah kumpulan langkah yang berhingga untuk menyelesaikan masalah logika dan matematika dengan bantuan komputer
Tahapan penyelesaian masalah (problem solving) Menganalisis Masalah Merumuskan algoritma Menguji Algoritma Implementasi Algoritma (dalam program) Menguji Hasil Program
Disajikan dengan tulisan atau gambar/diagram Tulisan english structure pseudocode
Gambar/Diagram flowchart program data flow diagram
Struktur Dasar Algoritma Sequence Structure Selection Structure Repetition Structure
Instruksi 1
Pengujian Kondisi
Counter Awal
F
T Blok Instruksi
T Instruksi 2
Instruksi 1
Instruksi 2 Loop
Instruksi n Instruksi n Instruksi n
Gambar Sequence Structure
Gambar Selection Structure
Gambar Repetition Structure
F
Elemen Dasar Pemrograman Tipe data, ex: String, Numeric, Date, Time, dll Variabel Konstanta Operator Operator aritmatika Operator relasi Operator logika Operator fungsi
Latihan Buatlah algoritma yang disajikan dengan: 1. english structur 2. pseudocode 3. flowchart:
Untuk menyelesaikan masalah berikut: Menghitung luas dan keliling segitiga sama sisi Menghitung luas dan volume balok, tabung, dan bola Mengkonversi jam, menit, dan detik ke dalam detik Mengkonversi detik ke dalam Jam, Menit, dan detik Menghitung gaji seorang buruh bangunan selama sebulan, dengan ketentuan gaji perhari Rp. 20.000,- (data yang diinputkan adalah jumlah hari absen (tidak hadir)
Materi 3.
Struktur Kendali Yaitu struktur algoritma yang akan mengendalikan urutan instruksi, meliputi struktur bercabang (selection) dan struktur berulang (repetition).
Selection Structure Instruksi dieksekusi hanya jika suatu kondisi terpenuhi atau tidak. Digambarkan:
Pengujian Kondisi
F
T Instruksi 1
Instruksi n
Bentuk instruksi percabangan Instruksi IF Instruksi CASE
Instruksi 2
Instruksi IF Bentuk Umum: Bentuk 1 IF
THEN ENDIF Bentuk 2 IF THEN ELSE ENDIF Bentuk 3 IF THEN ELSE IF THEN ELSE IF THEN
ELSE ENDIF ENDIF ENDIF
Instruksi CASE Bentuk Umum: SELECT CASE <ekspresi> CASE <ekspresi_1> [CASE <ekspresi_2>
[CASE ELSE]
Latihan Buatlah pseudocode- dan flowchart program dari kasus berikut: 1. Menentukan bilangan yang diinputkan adalah bilangan ganjil atau bukan 2. Menentukan bilangan yang diinputkan antara 0 sampai 10 adalah bilangan prima atau bukan 3. Menentukan bilangan yang diinputkan adalah bilangan positif, negatif, atau nol 4. Menentukan wujud air ( jika suhu <=0 maka benda padat, >=100 maka uap/gas, >0 dan <100 maka cair) 5. Menentukan jarak atau titik tengah dari 2 titik yang diinputkan 6. Menentukan koordinat titik ada di kuadran I, II, III, atau IV 7. Menentukan nilai terbesar dari A, B, dan C 8. Menentukan jumlah hari dalam bulan, yang diinputkan adalah kode bulan 1..12
Repetition Structure Instruksi dieksekusi berulang-ulang jika suatu kondisi terpenuhi atau tidak. Digambarkan:
Counter Awal T Blok Instruksi
Loop
Instruksi n
Bentuk instruksi percabangan Instruksi FOR - NEXT Instruksi DO WHILE - LOOP Instruksi DO – LOOP UNTIL
F
Instruksi FOR-NEXT Bentuk Umum: FOR variable_counter = nilai_awal TO nilai_akhir [STEP n] NEXT variable_counter Digambarkan:
FOR
Var Counter = nilai_awal
Var Counter <= nilai_akhir
Blok pernyataan
Var Counter = Var Counter + 1
Pernyataan sesudah NEXT
Instruksi DO WHILE --- LOOP Bentuk Umum: DO WHILE LOOP
Instruksi DO --- LOOP UNTIL --Bentuk Umum: DO LOOP UNTIL
Latihan 1.
Tuliskan algoritma untuk: a)
Menghitung perpangkatan (an)
b) Menghitung faktorial (n!) 2.
Tunjukkan keluaran dari algoritma berikut: X 8 JmlNilai 5 K 2 DO WHILE K <=X Input(bilangan) IF bilangan mod K = 0 THEN Jml Jumlah + bilangan ENDIF K K+2 LOOP Output(Jumlah) ~
Catatan. Input bilangan berturut turut 2, 10, 6 dan 12
Materi 4.
Fungsi dan Rekursi Sub program Untuk suatu pemrograman terstruktur dan modular Macam sub progam: Procedure Function Digambarkan: Main program
Sub program
Sub program
Sub program
Sub program
Fungsi Bentuk Umum: FUNCTION NamaFungsi[(daftar parameter)] NamaFungsi=ungkapan END FUNCTION
Latihan Buatlah fungsi untuk: a. Menentukan nilai faktorial(n) b
b. Menentukan nilai dari a pangkat b (a ) c. Menentukan jumlah 6 (enam) bilangan genap yang pertama
Rekursi Suatu proses (prosedur/fungsi) yang bisa memanggil dirinya sendiri Syarat Rekursi: Pengendali Rekursi Langkah Induksi
Rekursi digambarkan sebagai proses berikut: 4!
= Faktorial (4) = 4 Faktorial (3) = 4 3 Faktorial (2) = 4 3 2 Faktorial (1) 4 3 2 1 Faktorial (0) = 4 3 2 1 1
Jadi 4! = 4*3*2*1*1 = 24, atau n! = n*(n-1)! (n-1)! = (n-1)*(n-2)!, Dan seterusnya, sampai nilai parameternya = 0
Latihan Buatlah algoritma dengan menggunakan proses rekursi, untuk: 1.
Menentukan deret bilangan fibbonacci
2.
Menghitung nilai sigma(n) = 1 + 4 + 7 + ……+ Un
3.
Menghitung hasil perpangkatan y
4.
Menghitung jumlah deret bilangan geometri
5.
Menghitung jumlah deret bilangan aritmatika
x
Selamat Mengerjakan..!!!