Logika dan Algoritma (LA103F)
BAB I
PENDAHULUAN
LOGIKA
Diperkenalkan pertama kali oleh Aristoteles (384-322 SM)
ALGORITMA
Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Seorang ilmuan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi Logika
-
penalaran atau bentuk pemikiran.
-
ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku.
Definisi Algoritma
-
Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
-
Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
-
Suatu m etode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.(Webster Dictionary)
SILABUS
TUJUAN
Agar mahasiswa mampu untuk mengenal, mengerti dan memahami Setelah mengikuti kuliah Logika dan Algoritma mahasiswa diharapkan dapat menguasai dan dapat menjelaskan serta dapat menggunakan Logika dan Algoritma untuk memecahkan masalah baik secara teori maupun mempraktekanya ada 5 hal tujuan yaitu untuk :
-
Memperkuat cara berfikir kita untuk menyelesaikan suatu masalah
-
Membantu otak agar berfikir panjang
-
Memperkuat analisis ketika pembuatan program
-
Memperluas space berpikir
BAB II
LANDASAN TEORI
SATUAN ACARA PENGAJARAN
Kode : LA103F
Mata Kuliah : Logika dan Algoritma
Beban Kredit : 3 SKS
Jenjang : S1
Jurusan : SI/TI/MI
Waktu Tatap Muka : 2 X 50 Menit
Waktu Tugas Mandiri : 2 ( 2 X 50 Menit )
Metode Kuliah : Tatap muka,Tugas,Presentasi
Alat : RME, Multimedia Projector, Komputer dan Whiteboard
Evaluasi : Kehadiran, Tugas, UTS, UAS
Dosen : Ria Wulandari
TIU : Mahasiswa dapat memahami jenis-jenis komputer, sistem kerja komputer, perangkat komputer, arus informasi menggunakan komputer, informasi dalam dunia maya perkembangan hardware dan software terkini, serta prospek pengembangan komputer di masa mendatang.
TIK : Mahasiswa dapat memahami jenis-jenis komputer, sistem kerja komputer, perangkat komputer, arus informasi menggunakan komputer, informasi dalam dunia maya perkembangan hardware dan software terkini, serta prospek pengembangan komputer di masa mendatang.
BAB III
PEMBAHASAN MATERI
Materi Logika dan Algoritma
PERTEMUAN 1
1. Pengantar Algoritma
• Apakah Itu Algoritma?'
Para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu:
Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi.
• Al-Khuwarizmi dibaca orang barat menjadi Algorism
• Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm.
• “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”.
• Kata Logis merupakan kata kunci dalam Algoritma
• Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.
• Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut
• Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya
Suatu pemroses harus :
-
Mengerti setiap langkah dalam Algoritma
-
Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
• Agar dapat dilaksanakan oleh komputer algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
• program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer
2. Belajar Memprogram
• Belajar Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman
• Belajar memprogram: belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah
• kemudian menuliskannya dalam notasi yang disepakati bersama
• Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
• Belajar memprogram, titik berat : program designer
3. Belajara Bahasa Pemprograman
• Belajar Bahasa Pemrograman
• Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa
• Belajar bahasa pemrograman , titik berat : coder
4. Pemrogram
• Produk yang dihasilkan pemrogram :
• Program dengan rancangan yang baik (metodologis, sistematis)
• Dapat dieksekusi oleh mesin
• Berfungsi dengan benar
• Sanggup melayani segala kemungkinan masukan
• Disertai dokumentasi
• Belajar memprogram, titik berat : program designer
5. Notasi Algoritma
• Algoritma
• Aksi :
- Kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada saat T1)
- Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan
• Contoh analogi:
- Membuat pisang goreng
• Notasi algoritma:
- Independen Terhadap Bahasa PemrogramanNotasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrogramanIndependen Terhadap Mesin Komputer
- Karena notasi algoritma independen terhadap bahasa pemrograman maka dapat diterapkan pada mesin komputer manapun.
6. Pemrograman Prosedural
• Algoritma adalah proses yang procedural
• Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
-
Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
-
Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.
• Pada pemrograman procedural, program dibedakan:
- Bagian data
- Bagian instruksi
• Bagian Data terdiri atas:
- Variabel
- Konstanta
• Bagian instruksi terdiri atas:
- Runtutan (Sequence)
- Percabangan (Selection)
- Perulangan (Repetition)
7. Programming Language Paradigm
• Skema paradigma pemrograman
PERTEMUAN 2
1. Teknik Penyajian Algoritma
• Teknik Tulisan
- Structure English
- Pseudocode
• Teknik Gambar
- Structure Chart
- HIPO
- Flowchart
- Nassi Schneiderman Chart
2. Pseudocode
• Pseudocode
- Kode mirip dengan kode pemrograman yang sebenarnya.
- Arti pseudo: imitasi atau mirip atau menyerupai
- Arti code: kode program.
- Basis: bahasa pemrograman- Lebih rinci dari structure English,
- Dapat menyatakan tipe data yang digunakan
• struktur penulisan:
- sequence structure
- selection structure
- looping structure.
3. Aturan Penulisan Algoritma
• Setiap Algoritma akan selalu terdiri dari tiga bagian -Bagian yaitu :
- Judul (Header)
- Kamus (Deklarasi)
- Algoritma (Deskripsi)
• Komentar mengenai setiap bagian dituliskan diantara tanda kurung kurawa
contoh:
{ Komentar }
4. Judul Header
• adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Contoh:
5. Kamus (Deklarasi)
adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
- Nama type
- Nama konstanta
- Nama variabel
- Nama fungsi
- Nama prosedur
Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {yaitu “hh” jam. “mm” sebagai menit dan “ss”
sebagai detik}
{Nama konstanta, harus menyebutkan type dan nilai }
constant phi : real = 3,14159
constant nama : string = ‘Alex’
constant benar : boolean = true
{Nama Informasi, menyebutkan type}
x,y : integer {suatu nilai yang bertype bilangan bulat}
NMax : real {nilai maksimum yang bertype bilangan real}
Nama : string {suatu nilai yang merupakan kumpulan character}
Cari : Boolean {suatu nilai logika}
{Nama fungsi, menyebutkan domain dan range}
function RealToInt (x:real) → integer
{mengubah harga x yang bertype real menjadi harga ekivalen yang bertype integer}
{Nama prosedur, menyebutkan “IS” initial state, “FS” final state dan proses}
procedure tukar (input/output x,y : real)
{ IS x dan y terdefinisi, x = a dan y = b
FS x = b dan y = a
Proses : menukar isi informasi bilangan x dan y }
adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikanKomponen algoritma (deskripsi) berupa :
- Instruksi dasar seperti input/output, assignment
- Sequence (runtutan)
- Operasi kondisional
- Perulangan
• Contoh
• Contoh Lengkap:
6. Contoh Penulisan Algoritma Lengkap
7. Flowchart
Simbol-simbol standard Flowchart
8. Teknik Penyajian Algoritma dengan Flow Chart
Sequence Structure (struktur urut)
Selection Structure (Struktur Seleksi)
IF Selection
Selection Structure (Struktur Seleksi)
IF – ELSE Selection
Selection Structure (Struktur Seleksi)
CASE Selection
Looping/Repetition Structure (Struktur Pengulangan)
Front Check Repetition
Looping/Repetition Structure (Struktur Pengulangan)
Rear Check Repetition
Looping/Repetition Structure (Struktur Pengulangan)
Fixed Repetition
PERTEMUAN 3
1. Nilai
Nilai → Besaran dari tipe data yang sudah dikenal
Pengisian nilai ke dalam variable
Contoh:
2. Pengisian Nilai
Contoh:
Pengisian variable dengan nilai dari variable lain
Pengisian variable dari hasil operasi suatu ekspresi
Pengisian variable dari hasil operasi suatu ekspresi
2. Pembacaan Nilai Dari Input Device
Nilai untuk mengisi suatu variable dapat diisi dari piranti masukan (input device )</p></div>
Contoh:
3. Penulisan Nilai ke Output Device
Nilai yang disimpan dapat ditampilkan ke piranti keluaran (output device )
Contoh:
4. Ekpresi
Transformasi nilai menjadi keluaran dilakukan melalui suatu perhitungan (komputasi).
Ekspresi terdiri atas:
- Operand: nilai yang dioperasikan dengan operator tertentu
- Operator
Dikenal 3 macam ekspresi:
- ekspresi aritmetik,
- ekpresi relasional,
- ekspresi string
5. Ekpresi Aritmatik
- Operasi yang seluruh operand-nya dan hasil operasinya bertipe numerik
- Operasi yang menggunakan operator aritmetik (dibahas pada pertemuan 4)- Penulisan ekspresi aritmetik:
Contoh ekspresi aritmetik:
6. Ekpresi Rasional
- Ekspresi relasional adalah ekspresi dengan
menggunakan operator relational (dibahas pada pertemuan 4)
- Hasil operasi adalah nilai bertipe boolean (true atau false)
- Contoh:
Misal ketemu bernilai false, ada bernilai true, X bernilai 10, Y bernilai 10
7. Ekpresi String
Ekspresi string adalah ekspresi dengan operator “+” (concatenation/penyambungan)
Contoh:
Syntax dalam C++
8. Pengisian Nilai
9. Pembacaan & Penulisan Nilai dari/ke I/O device
• Input/Output
Untuk membaca atau menampilkan data pada console (layar) dapat menggunakan:
- library <stdio. h>
- Printf'
- Scanf
- Printf'
- library <iostream.h>
- Count
- Cin
- Count
10. Input/Output
Contoh Dengan Library <stdio.h>
Untuk Bilangan Integer
Contoh Dengan Library <stdio.h>
Untuk Bilangan Float
Contoh Dengan Library <stdio.h>
Untuk String
Contoh Dengan Library <iostream.h>
Contoh Dengan Library <iostream.h>
PERTEMUAN 4
1. Konstanta (Const)
• Konstanta adalah suatu nilai yang telah di definisikan dan nilainya tidak akan berubah selama progran tersebut di eksekusi.
• Konstanta terdiri dari konstanta numerik dan konstanta non numerik.
• Konstanta non numerik disebut dengan konstanta string yang dalam penulisan selalu di apit dengan tanda kutip (“)Contoh:
- constant phi : real = 3,14159
- constant nama : string = ‘Alex’
- constant pilih : boolean = true
2. Variabel
• Variabel adalah identifier berisi data yang dapat dirubah dalam program.
• Contoh pseudocode:
gaji, tunjangan : real
Nama : string(25)
• Contoh kode C++ :
float gaji, tunjangan;
int jmlAnak=3;
bool menikah;
char keterangan[25];
3. Type Data dan Variable
TYPE DATA
• Tipe Data Sederhana (Primitive Data Type)
• Tipe Data Terstruktur (Structural Data Type)
dibahas pada struktur data
• Tipe Data Pointer (Pointer Data Type)
dibahas pada struktur data
4. Type Data Sederhana
5. Type Data Sederhana C++
6. Operator
• Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan dua nilai, memberikan nilai ke variable, membandingkan dua buah nilai dan sebagainya
• Sebagian operator C++ tergolong sebagai operator binary yaitu operator yang dikenakan terhadap dua buah nilai
• Contoh:
A+B
A*B
7. Operator
Type Operator
• Operator pengerjaan (assignment operator)
• Operator matematika (arithmetic operator)
• Operator peningkatan dan penurunan (increment dan decrement operator)
• Operator hubungan (relational operator)
• Operator logika (logical operator)
• Operator Bitwise (bitwise operator)
• Operator alamat (address operator)
• Operator koma (comma operator)
• Operator gabungan (group operator)
8. Operator Pengerjaan
(Assignment Operator)
Type Operator
• Operator pengerjaan (assignment) pada pseudocode berupa simbol ←
• Digunakan untuk mengisikan nilai yang berada disebelah kanannya variable yang ditunjukan disebelah kirinya.
• Contoh pseudocode:
A ← 5
B ← C
D ← A + B
9. Operator Pengerjaan Contoh
kode lengkap C++
10. Operator Aritmatika
Tabel Operator Aritmatika
Contoh pseudocode:
A ← A + 5
B ← C + A * 2
D ← 2 * A + B
11. Operator Increment dan Decrement
• Operator peningkatan ditandai dengan tanda operasi (++) dan Operator Penurunan di tandai dengan menggunakan tanda operasi (--)
• Operator ++ (increment) digunakan untuk menambahkan 1 pada nilai sebelumnya.
• Operator ++ (decrement) digunakan untuk mengurangi 1 pada nilai sebelumnya.
• Contoh pseudocode:
A++
++B
C--
--D
12. Operator Increment dan Decrement
Contoh Kode C++
13. Operator Relasi(Relational Operators)
• Operator hubungan (relational operators) digunakan untuk membandingkan dua elemen nilai dan dihasilkan nilai perbandingannya, yaitu betul (bernilai 1) atau salah (bernilai 0).
• Operator ini banyak digunakan pada penyeleksian suatu kondisi pada statement IF.
14. Tabel Operator Relasi
• Contoh pseudocode:
IF nilai>=70 then
output(“Lulus”)
Else
output(“Tidak Lulus”)
Endif
15. Operator Relasi Contoh Kode C++
16. Operator Logika
• Nilai perbandingan operator logika menghasilkan dua kemungkinan nilai yaitu: True atau False.
• Operator ini banyak digunakan pada penyeleksian suatu kondisi pada statement IF.
17. Operator Logika
Tabel Kebenaran (Truth Table)
PERTEMUAN 5
1. Operator Type
Operator - Lanjutan
Tanda Operator dapat dikelompokkan sebagai berikut:
1). Operator pengerjaan (assignment operator)
2). Operator matematika (arithmetic operator)
3). Operator peningkatan dan penurunan (increment dan decrement operator)
4). Operator hubungan (relation operator)
5). Operator logika (logical operator)
6). Operator koma (comma operator)
7). Operator Bitwise (bitwise operator)
8). Operator alamat (address operator)
9). Operator gabungan (group operator)
PERTEMUAN 6
PERTEMUAN 7
PERTEMUAN 8
PERTEMUAN 9
PERTEMUAN 10
PERTEMUAN 11
PERTEMUAN 12
PERTEMUAN 13
PERTEMUAN 14