You are on page 1of 41

SILABUS MATAKULIAH: LOGIKA ALGORITMA

Sumber Referensi:
1. Zakaria. Teddy Marcus & Agus Prijono, “Konsep dan
Implementasi Struktur Data”, Informatika. Bandung, 2005
2. Kristanto, Andri.Algoritma & Pemprograman Dengan C++
Edisi 2. Graha Ilmu. Yogyakarta,2009
3. Sjukani, Algoritma & Struktur Data dengan C, C++, dan
Java, 2005, Mitra Wacana Media, Jakx Munir, Rinaldi,
2002, Logika dan Algoritma Buku I, Edisi keempat,
Informatika, Bandung
4. Munir, Rinaldi, 2005, Logika dan Algoritma Buku II, Edisi
ketiga, Informatika, Bandung
Lanjutan Sumber Referensi:
5. Yulikuspartono, S.Kom,2003, Pengantar Logika dan
Algoritma, Andi Offset, Yogyakarta
6. Kurniadi,Indarwoko.2011.Logika dan Algoritma Dasar
Menggunakan Bahasa C++.Mitra Wacana
Media.,Jakarta
7. Insap Santosa, P., Ir., Struktur Data menggunakan
Turbo Pascal 6.0. Andi Offset. Yogyakarta.2006)pert 10
8. B,indra Yatini,Erliansyah Nasution. Algoritma & Struktur
Data Dengan C++. Graha Ilmu. Yogyakarta. 2005
KONTRAK PERKULIAHAN

• Pertemuan 1-6, materinya disampaikan


oleh dosen dikelas
• Pertemuan 7 diadakan Uji Kompetensi
Individu
• Pertemuan 8 diadakan UTS, materi
diambil dari pertemuan 1-6
LANJUTAN KONTRAK PERKULIAHAN

• Pertemuan 9-14 disampaikan dosen di kelas


• Pertemuan 15 diadakan Uji Kompetensi
Individu
• Pertemuan 16 diadakan UAS dimana materi
diambil dari pertemuan 9-14

• Untuk Demontrasi Pertukaran pada pertemuan 2


mahasiswa membawa 2 Gelas/botol air yang berbeda
warnanya (Air mineral dan Air Teh ) dan 1 gelas Kosong
• Diharapkan sudah membentuk kelompok maximal 5
mahasiswa
Mata Kuliah : Logika Algoritma
Semester : Satu
Jurusan : Manajemen Informatika
SKS : 4 sks

CAPAIAN PEMBELAJARAN: Mampu membuat


program/project dengan menggunakan bahasa
pemrograman tertentu dan membuat flowchart
dari program/project yang dibuat.
Lanjutan
Minggu Kemampuan yang Bahan Kajian Bentuk Kriteria
diharapkan Pengajaran Penilaian
1 Memahami dan Kesepakatan Ceramah dan Kemampuan
menganalisa konsep perkuliahan, tanya jawab mengungkapkan
dasar logika algoritma diskusi dan ide
penjelasan
tugas
2 Memahami konsep Mengenal Ceramah dan Kemampuan
variabel dan peubah Variabel data tanya jawab menyelesaikan
dan soal masalah
analisis
algoritma
3 Memahami jenis-jenis Konsep tipe Ceramah dan Kemampuan
tipe data dan data, dan tanya jawab mengungkapkan
operasinya pada operasi string ide
pemrograman C++
4 Mampu membuat Diagram alur Ceramah dan Kemampuan
diagram flowchart flowchart dan tanya jawab menyelesaikan
struktur masalah
branching
Lanjutan
Minggu Kemampuan Bahan Bentuk Kriteria
yang diharapkan Kajian Pengajaran Penilaian
5 Memahami Struktur Ceramah dan Kemampuan
instruksi looping tanya jawab mengungkapkan
perulangan yang dengan ide
disusun dalam flowchart dan
suatu diagram alur statement
program
6 Memahami struktur Struktur Ceramah dan Kemampuan
pemanggilan ulang Rekursif tanya jawab menyelesaikan
(rekursif) masalah
7 Uji Kompetensi Pertemuan Latihan Soal Kemampuan
Individu 1-6 menyelesaikan
masalah
8 Ujian Tengah Semester (UTS)
Lanjutan
Minggu Kemampuan Bahan Bentuk Kriteria
yang diharapkan Kajian Pengajaran Penilaian
9 Memahami tentang Struktur Array Ceramah dan Kemampuan
konsep matrix tanya jawab mengungkapkan
dalam algoritma ide
10 Memahami tehnik Metode D and Ceramah dan Kemampuan
sorting yang ada C, Sorting tanya jawab menyelesaikan
pada suatu masalah
algoritma
11 Memahami tentang Searching Ceramah dan Kemampuan
tehnik pencarian tanya jawab menyelesaikan
data pada suatu masalah
algoritma
Lanjutan
Minggu Kemampuan yang Bahan Kajian Bentuk Kriteria
diharapkan Pengajaran Penilaian
12-13 Mampu Metode Greedy: Ceramah Kemampuan
menyelesaikan •Optimaol on tape dan tanya mengungkapkan
masalah dengan storage jawab ide,
menggunakan •Knapsack Problem Kemampuan
metode Greedy •Minimum menyelesaikan
Spanning Tree masalah
•Shortest Path
Problem
•Travelling
Salesman
14 Greedy Lanjutan Coloring Ceramah Kemampuan
(Pewarnaan) dan tanya menyelesaikan
jawab masalah
15 Uji Kompetensi Pertemuan Latihan Kemampuan
Individu 9-14 Soal menyelesaikan
masalah
16 Ujian Akhir Semester (UAS)
Sistem Penilaian Mata Kuliah
Logika Algoritma

20 % Absensi
25% Tugas & Quiz
25% UTS
30% UAS
PERTEMUAN 1

PENGERTIAN DASAR
LOGIKA DAN ALGORITMA
PENGERTIAN DASAR

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
LOGIKA DAN ALGORITMA

Definisi Logika
1. penalaran atau bentuk pemikiran.
2. ilmu yang memberikan prinsip-prinsip yang harus
diikuti agar dapat berfikir valid menurut aturan yang
berlaku.

Definisi Algoritma
1. Langkah - langkah yang dilakukan agar solusi
masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-
langkah yg berintegrasi.
3. Suatu metode khusus yang digunakan untuk
menyelesaikan suatu masalah yang
nyata.(Webster Dictionary)
TAHAP PENYELESAIAN MASALAH
Masalah

Analisis Model

Algoritma Analisis

Analisis Program

Eksekusi
Data
Hasil
Kriteria Pemilihan Algoritma
1. Ada Output,
2. Efektifitas dan Efesiensi,
3. Jumlah Langkahnya Berhingga,
4. Berakhir, ( SEMI ALGORITMA )
5. Terstruktur,

Suatu Algoritma yg terbaik (The Best): “Suatu


algoritma harus menghasilkan output yg tepat guna
(efektif) dlm waktu yg relatif singkat & penggunaan
memori yg relatif sedikit (efesien) dgn langkah yg
berhingga & prosedurnya berakhir baik dlm keadaan
dip’oleh suatu solusi ataupun tdk ada solusinya “.
Contoh Algoritma
Sebuah prosedur untuk masalah menentukan akar
kuadrat dari suatu bilangan Bulat Positif yg di Input:
Baca bilangan Bulat Positif yg diinput, sebut saja
sebagai A
1. Dinyatakan Nilai B adalah 0
2. Hitung Nilai C yg berisikan Nilai B dikalikan
Nilai B
3. Jika Nilai C sama dengan Nilai A, maka Nilai B
adalah Akar dari Nilai A, lalu stop.
4. Jika tidak, maka Nilai B akan bertambah 1
5. Kembali ke langkah pada No. 3
TAHAPAN ANALISA ALGORITMA
1. Bagaimana merencanakan suatu algoritma.
2. Bagaimana menyatakan suatu algoritma
a. Dengan bahasa semu (pseudocode).
Merupakan bentuk informal untuk mendeskripsikan algoritma
yang mengikuti struktur bahasa pemrograman tertentu.
Tujuan pseudocode adalah: Lebih mudah dibaca oleh manusia,
lebih mudah dipahami dan lebih mudah dalam menuangkan
ide/hasil pemikiran
Contoh 1:
Untuk menghitung Luas Segi tiga :
a. Masukan Nilai Alas
b. Masukan Nilai Tinggi
c. Hitung Luas =( Alas * Tinggi ) / 2
d. Cetak Luas
Lanjutan Bahasa Semu (Pseudocode)
Contoh 2 :
Sebuah prosedur ketika akan mengirimkan surat kepada
teman:
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu
ambil buku alamat & cari alamat yg dituju, lalu tulis
alamat tsb pd amplop surat.
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos utk diserahkan pd pegawai
pos atau menuju ke bis surat untuk memasukkan surat
ke dlm kotak/bis surat.
Bahasa Pemrograman

Program adalah kumpulan intruksi-instruksi yang diberikan


kepada komputer untuk melaksanakan suatu tugas atau
pekerjaan. Dalam membuat program dibutuhkan bahasa
pemrograman.

Bahasa pemrograman adalah bahasa komputer yang


digunakan dalam menulis program

Contoh bahasa pemrograman adalah:


Bahasa rakitan (assembly), Fortran, Cobol, Pascal, C, C++,
Basic, Prolog, PHP, Java.
Lanjutan bahasa pemrograman
Berdasarkan aplikasi kegunaanya, bahasa pemrograman
dapat digolongkan menjadi 2 kelompok yaitu:
1. Bahasa Pemrograman bertujuan khusus (specific
purpose programming language), yang termasuk
kelompok ini adalah cobol (untuk terapan bisnis dan
administrasi), Fortran (aplikasi komputasi ilmiah), bahasa
assembly (aplikasi pemrograman mesin), Prolog (aplikasi
kecerdasan buatan).
2. Bahasa Pemrograman bertujuan umum (general purpose
programming language), yang dapat digunakan untuk
berbagai aplikasi, yang termasuk kelompok ini adalah
bahasa Pascal, Basic,C dan C++
Lanjutan bahasa pemrograman
Berdasarkan kedekatan bahasa pemrograman dikelompokan
menjadi 2 macam yaitu:
1. Bahasa tingkat rendah
Bahasa yang dirancang agar setiap instruksinya langsung
dikerjakan oleh komputer, tanpa harus melalui
penerjemah. Contoh: bahasa mesin (sekumpulan kode
biner (0 dan 1))

2. Bahasa tingkat tinggi


Bahasa jenis ini membuat program menjadi lebih mudah
dipahami.
Contoh: Pascal, Cobol, Basic, Fortran, C, C++
Contoh perbandingan Program C++ dan Pascal

Perbedaan C++ dan pascal pada strukturnya


C++ Pascal
#include <stdio> program nama program
Void main() begin
{ writeln (Hallo dunia!);
Printf(“Hello dunia”); end.
}
Perbedaan C++ dan pascal pada perintah syntax
C++ Gunakan perintah “swich of”
Pascal Gunakan “case of”
Perbedaan C++ dan pascal pada penulis huruf
C++ Sensitive terhadap hurup kecil dan besar
Pascal Tidak dibedakan menurut besar kecil huruf
b. Dengan diagram alur atau flowchat
DIAGRAM ALUR (FLOWCHART)
Adalah suatu diagram yang menggambarkan susunan logika suatu
program
Simbol simbol yang digunakan adalah sebagai berikut :

Proses/prosessing, satu atau beberapa


himpunan penugasan yang akan dilaksanakan
secara berurutan.

Input / Output data yg akan dibaca & dimasukan


ke dalam memori komputer dari suatu alat input

Terminal, berfungsi sebagai awal (berisi ‘Start’)


sebagai akhir (berisi ‘End’) dari suatu proses
alur.
Lanjutan Diagram Flowchart
Decision (kotak keputusan) berfungsi utk
memutuskan arah/percabangan yg diambil
sesuai dgn kondisi yg dipenuhi, yaitu
Benar/Salah. (dibahas dalam struktur
branching).

Subroutine digunakan untuk menjalankan


proses suatu bagian (sub program)
atau prosedur.

Preparation digunakan untuk pemberian


harga awal.
Lanjutan Diagram Flowchart

Connector/penghubung, digunakan untuk


menghubungkan diagram alur yang terputus
dimana bagian tersebut masih berada pada
halaman yang sama.

On page Connector, Untuk menghubungkan


sambungan dari bagian flowchart yang terputus
dimana sambungannya berada pada halaman
lain.

Flowline, menunjukkan bagian arah instruksi


dijalankan
Contoh Pengambaran Flowchart Menghitung Luas Segitiga :

Start

Masukan
Alas

Masukan
Tinggi

Luas = (Alas * Tinggi)/2

Cetak
Luas

Stop
Diagram Alur untuk Program Komputer

Pada dasarnya suatu program komputer


umumnya terdiri atas :
1. Pembacaan / pemasukan data ke dalam
komputer
2. Melakukan komputasi/perhitungan
terhadap data tersebut
3. Mengeluarkan / mencetak/ menampilkan
hasilnya.
Struktur Algoritma :
1. Struktur Squence / Struktur Sederhana
Digunakan untuk program yang instruksinya sequential
atau urutan

2. Struktur Branching
Digunakan untuk program yang menggunakan pemilihan
atau penyeleksian kondisi
* Materi ini akan dijelaskan pada pertemuan 4

3. Stuktur Looping
Digunakan untuk program yang instruksinya akan
dieksekusi berulang-ulang.
* Materi ini akan dijelaskan pada pertemuan 5
Catatan :
Ketiga struktur diatas dapat digunakan secara
bersamaan pada satu diagram alur.

Memberi harga kepada suatu Variabel (Cara I)


Suatu variabel dapat diartikan sebagai suatu nilai yg
dapat
berubah harganya.

Contoh menggambarkan pemberian harga suatu


variabel :
X=5 variabel X diberi harga sebesar 5
Kotak proses/penugasan dpt berfungsi
antara lain untuk :
Variabel C diberi harga sebesar harga var.
P dikurangi harga var. Q (dlm hal ini,
C= P - Q harga variabel P & Q harus sudah ada)

Harga yg terbaru dari variabel N adalah harga


N=N+1 lama dari variabel N ditambah 1 (atau dengan
kata lain, harga variabel N bertambah 1)

Harga yg baru dari var. S adalah harga


lama S ditambah dengan harga variabel T.
S =S + T
Jenis variabel terbagi atas 2 macam, yaitu :
Variabel Numerik/bil.,
Variabel untai kata/string,
Memberi harga kepada suatu variabel (Cara II)
Dgn menggunakan kotak masukan/baca/input/read,
STRUKTUR SQUENCE / STRUKTUR SEDERHANA
Diagram yang alurnya mengalir secara berurutan dari atas
ke bawah atau dengan kata lain tidak adanya percabangan
atau pengulangan .

Input Keterangan :
A
1. Masukan Nilai Variable A
A=A*2 mis : 3
2. Proses A dengan A*2
Cetak A 3. Cetak hasil proses diatas
A=A*2 yg menghasilkan A=6

END
c. Dengan StatmenProgram/Penggalan Program
Contoh dengan menggunakan Program C++
#include<conio.h>
#include<iostream.h>
main()
{
int a,t,l; //pendeklarasian variabel
clrscr();
cout<<"Masukan nilai Alas : "; //Input Data
cin>>a;
cout<<"Masukan nilai Tinggi : "; //Input Data
cin>>t;
l=(b*a)/2; //Proses Data
cout<<"Total Luas :"<<l<<endl; //Output Data
getch(); }
Contoh dengan menggunakan Program Pascal
program luas;
uses crt;
var
a,t: integer;
L: real;
begin
clrscr;
write(‘MasukanNilai Alas:’);readln (a);
write(‘MasukanNilaiTingi:’);readln(t);
writeln(‘ ‘);
L:=(a*t)/2;
writeln(‘Luas Segitiga adalah =’,L:6:2);
readln;
end.
Lanjutan tahapan Analisa Algoritma
3. Bagaimana validitas suatu algoritma.
4. Bagaimana Menganalisa suatu Algoritma.
5. Bagaimana Menguji Program dari suatu Algoritma.

Tahap Proses uji Algoritma :


a. Fase Debugging
yaitu fase dari proses program eksekusi yang akan
melakukan koreksi terhadap kesalahan.

b. Fase Profilling
yaitu fase yang akan bekerja jika program tersebut
sudah benar (telah melewati fase debugging).
Contoh Fase Debugging
Contoh menggunakan bahasa C++:
#include<conio.h> Muncul Pesan seperti berikut:
#include<iostream.h>
main()
{
int a,t,l; //pendeklarasian variabel
clrscr();
cout<<"Masukan nilai Alas : ";
//masukkan nilai alas
cin>>a;
cout<<"Masukan nilai Tinggi : ";
//masukan nilai tinggi
cin>>t;
l=(b*a)/2; //perhitungan luas
cout<<"Total Luas :"<<l<<endl; //hasil
perhitungan luas
getch(); }
Contoh Fase Profilling
Contoh menggunakan bahasa C++:
#include<conio.h>
#include<iostream.h>
main()
{
int a,t,l; //pendeklarasian variabel
clrscr();
cout<<"Masukan nilai Alas : ";
//masukkan nilai alas
cin>>a;
cout<<"Masukan nilai Tinggi : ";
//masukan nilai tinggi
cin>>t;
l=(a*t)/2; //perhitungan luas
cout<<"Total Luas :"<<l<<endl; //hasil
perhitungan luas
getch(); }
Analisa Suatu Algortima

(Untuk melihat faktor efesiensi & efektifitas dari algoritma


tersebut), Dapat dilakukan terhadap suatu algoritma dengan
melihat pada :
a. Waktu Tempuh (Running Time) dr suatu Algortima.
Hal-hal yg dpt mempengaruhi drpd waktu tempuh adalah :
1. Banyaknya langkah.
2. Besar dan jenis input data.
3. Jenis Operasi.
4. Komputer dan kompilator
b. Jumlah Memori Yang Digunakan.
Sifat-Sifat Algoritma
1. Banyaknya Langkah Instruksi Harus Berhingga,
2. Langkah atau Instruksi harus Jelas,
3. Proses harus Jelas dan mempunyai batasan,
4. Input dan Output harus mempunyai Batasan,
5. Efektifitas,
6. Adanya Batasan Ruang Lingkup,
Latihan Individu
(Gunakan Bahasa sehari-hari / Pseudocode )

1. Buat algoritma untuk mengirim email kepada teman


dengan asumsi sudah mempunyai alamat email.
2. Buat algoritma untuk meminjam buku di
perpustakaan
3. Buat algoritma pada saat membeli buku di toko buku
Tugas Kelompok

Untuk Tugas Akan dijelaskan Oleh Dosen Dikelas