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 Sentence Komponen pembentuk logika dasar Dinyatakan dengan truth value atau symbol Membentuk kalimat deklaratif, bukan kalimat terbuka Dibentuk dari proposisi dengan connective proposition, yaitu: not, and, or, if-then,-if and only if-, if-then-else. Kalimat logika, berupa: Proposisi, ex: p Negasi, ex: ~p Konjungsi, ex: p q Disjungsi, ex: pvq Implikasi, ex: pq Ekuivalensi, ex: pq Kondisional, 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 ~p True False False True Conjunction Rule (aturan AND) p q p q True True True True False False False True False False False False Disjunction Rule (aturan OR) p q p q True True True True False True False True True False False False Implication Rule (aturan IF-THEN) p q p q True True True True False False False True True False False 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 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 Properties of Sentence Latihan 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 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 F Counter Awal T F Instruksi 2 Instruksi n T Instruksi 1 Instruksi 2 Instruksi n Blok Instruksi Loop Instruksi n Gambar Sequence Structure Gambar Selection Structure Gambar Repetition Structure
Elemen Dasar Pemrograman Latihan Tipe data, ex: String, Numeric, Date, Time, dll Variabel Konstanta Operator Operator aritmatika Operator relasi Operator logika Operator fungsi 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 2 Instruksi n Bentuk instruksi percabangan Instruksi IF Instruksi CASE
Instruksi IF Bentuk Umum: Bentuk 1 IF <kondisi> THEN <pernyataan> ENDIF Bentuk 2 IF <kondisi> THEN <pernyataan_1> ELSE <pernyataan_2> ENDIF Bentuk 3 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
Instruksi CASE Bentuk Umum: SELECT CASE <ekspresi> CASE <ekspresi_1> <blok instruksi_1> [CASE <ekspresi_2> <blok instruksi_2> [CASE ELSE] <blok instruksi_m END SELECT 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 F Blok Instruksi Loop Instruksi n Bentuk instruksi percabangan Instruksi FOR - NEXT Instruksi DO WHILE - LOOP Instruksi DO LOOP UNTIL
Instruksi FOR-NEXT Bentuk Umum: FOR variable_counter = nilai_awal TO nilai_akhir [STEP n] <blok instruksi/pernyataan> 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 <kondisi> <blok pernyataan> LOOP Instruksi DO --- LOOP UNTIL --- Bentuk Umum: DO <blok pernyataan> LOOP UNTIL <kondisi> Latihan 1. Tuliskan algoritma untuk: a) Menghitung perpangkatan (a n ) 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)] <blok instruksi> NamaFungsi=ungkapan END FUNCTION
Latihan Buatlah fungsi untuk: a. Menentukan nilai faktorial(n) b. Menentukan nilai dari a pangkat b (a b ) 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 x 4. Menghitung jumlah deret bilangan geometri 5. Menghitung jumlah deret bilangan aritmatika Selamat Mengerjakan..!!!