algoritma_201506
DESCRIPTION
materi algoritma pasimTRANSCRIPT
Algoritma dan
Pemrograman
Eko Travada S, ST, MT
Program Studi Teknik Informatika
Cafemikrochip.webs.com
Silabus
Pengertian Algoritma Jenis Jenis data FlowChart Model Dalam Algoritma◦ Beruntun◦ Percabangan/kondisional◦ Loop/perulangan◦ Sub Rutin
Contoh contoh algoritma dari Model diatas
Bahasa C Implementasi ke Bahasa Program
Komputer (C)
2
Referensi
Donald Knuth, The Art Of Computer
Programming, Volume 1 / Fundamental
Algorithms, 2nd edition, Addison Wesley
Rinaldi Munir, Algoritma dan
Pemrograman dalam Bahasa Pascal dan C,
Penerbit Informatika Bandung
Adi Nugroho, Pemrograman Berorientasi
Objek
3
Apa Itu Algoritma?(smbr : Budi Raharjo)
Definisi
◦ Urutan langkah-langkah untuk memecahkan
masalah
◦ Kamus Besar Bahasa Indonesia:
Algoritma adalah urutan logis pengambilan
putusan untuk pemecahan masalah
Algoritma dibutuhkan untuk memerintah
komputer mengambil langkah-langkah
tertentu dalam menyelesaikan masalah
4
Contoh kasus Algoritma dan
pemecahannya1. Berapa luas lapangan sepakbola
Solusi algoritma
Untuk dapat menghitung luas lapangan sepakbola anda harus
mengetahui
a. Panjang dan lebar lapangan sepakbola
b. Mengetahui rumus untuk menghitung luas lapangan sepakbola yang
berbentuk segiempat yaitu Luas = Panjang * Lebar
1. Berapa waktu tempuh dari bandung ke jakarta bila menggunakan mobil
a. Harus diketahui jarak dan kecepatan
b. Formula untuk menghitung waktu tempuh adalah jarak dibagi kecepatan
2. Berapa Jumlah Buah di Keranjang
Jelaskan bagaimana cara anda menjelaskan langkah untuk menyelesaikan
kasus di atas ?
5
6
Algoritma Hingga menjadi Produk
(Software)
6
Alur Implementasi ke program komputer
(Software) dengan alur sbb :
Kasus AlgoritmaTentukan
Struktur data
Implementasi Ke
Bahasa KomputerCompiler
Aplikasi siap Pakai
(digunakan Uset)
Ada
Kesalahan
Testing (User
Acceptance Test)
Ada
Kesalahan
Dokumentasi
(flowchart/UML/FlowMap(
Pengertian Komputer
7Komputer
Perangkat Keras
(hardware)
Perangkat Lunak
(Software)
memproses fakta dan
data menjadi informasi
Merupakan Prosedur
pemrosesan agar data dan
fakta dapat menjadi
informasi
Brainware
Personal atau sistem
yang membuat atau
menggunakan
Hardware dan
software
Sejarah Perkembangan Teknologi
Komputer
8
Teknologi TabungTeknologi
Transistor
Teknologi
Intregrated
Circuit (IC)
Teknologi
MikroChip
Era Pioner Era Stabil Era Mikro
Era Modern
10
Sejarah Komputer
Era Stabil (Generasi Transistor)
• Satu komputer dapat menangani banyak
pekerjaan
•Dikenal sistem basis data yang memisahkan antara program dan data
yang diproses
11
Sejarah Komputer
Era Mikro (Generasi IC (integrated Circuit)
• Komputer sudah dapat digunakan untuk
perorangan
•Ditanamkan kecerdasan buatan
12
Era Modern (Generasi MikroChip)
Perangkat Lunak mulai ditanamakan ke perangkat seperti HP, TV,
Mesin cuci dan berbagai peralatan elektronik lainnya.
Sejarah Komputer
Perangkat Keras (Hardware)
13
Secondary
Storage
Main Memory
Control Unit
ALU
Input Unit Output Unit
CPU
14
CPU (Central Processor Unit)
CPU terdiri atas bagian :
1. Control Unit : Berfungsi sebagai Pengendali dari proses
yang berjalan di sistem komputer
2. Main Memori : Berfungsi sebagai tempat penyimpanan
data sementara saat proses berjalan
3. ALU (Arithmatic Logic Unit) : Melakukan proses
perhitungan dan Logika saat proses berjalan
15
Contoh ilustrasi Proses CPU Aritmatik
Control Unit
membaca :
F(x) x + 1
F(x) X + 1
Dg Nilai x
4
Menyimpan nilai
x yaitu 4
CU meminta main
memori
ALU menghitung
Nilai x + 1 dengan
nilai x diambil dari
main memori
Nilai f(x) yaitu 5
disimpan dahulu
di main memori
16
Contoh ilustrasi Proses CPU Logika
Control Unit
membaca :
Uji Input x = 5
Uji Jika X =
5 maka
diterima, bila
tidak ditolak
Menyimpan nilai
x yang diinput
CU meminta main
memori
ALU
membandingkan
Nilai x = 5Hasil
perbandingan
disimpan ke main
memori
17
Latihan 1 (satu)
1. Jelaskan Pengertian komputer dengan Bahasa anda sendiri
2. Sejarah Komputer terdiri dari 4 generasi teknologi yaitu :
3. Sebutkan bagian Utama dari perangkat keras
4. Gambarkan dalam bentuk ilustrasi bila CPU diminta mengerjakan persamaan F(x) = x + y2 + 3 dengan x=1 dan y=2
5. Gambarkan dalam bentuk ilustrasi bila komputer bekerja menguji nilai input apakah lebih besar sama dengan 10 atau kurang dari 10.
18
Klasifikasi Perangkat Lunak
Perangkat Lunak berbentuk perintah yang harus dikerjakan oleh
Perangkat keras dibagi atas klasifikasi :
• Perangkat Lunak Sistem
• Perangkat Lunak Aplikasi
19
Perangkat Lunak Aplikasi
• Aplikasi Office : Microsoft Office
• Aplikasi Khusus : Autocad, Protel
• Aplikasi Multimedia : MP3, Media Player, MIDI
• Aplikasi Internet : Email, HTTP, Messengger
20
Layer Perangkat Lunak
• Perangkat Lunak Berbentuk aljabar Boolean yang direpresentasikan sebagai binary digit bentuk 0 atau 1
Kode kode aljabar
boolean tersebut
digabungkan sehingga
menjadi intruksi
aritmatik, logika dan instruksi mnemonic
Instruksi mnemonic
digabung kembali
maka
Menjadi bahasa
pemrograman
Aljabar Boolean
Machine Language
Mnemonic
/Assembley
language
High level
Language
Aplikasi untuk
User
21
Membangun Perangkat Lunak
Analisis dari masalah yang muncul untuk dapat dipahami : Input (Masukkan)
Proses
Output (Keluaran)
Susun Algoritma : Langkah langkah sistematis untuk menyelesaikan masalah, dapat dibantu dengan flowchart
Implementasikan ke komputer dengan bahasa pemrograman
22
Memahami Pengertian Input
Input adalah masukkan yang diberikan agar
suatu proses dapat dikerjakan.
Contoh : Diketahui persamaan
1. WaktuTempuh Jarak / Kecepatan
input adalah Jarak dan kecepatan
2. S = V0*t + 0.5 * a * t2
Input adalah V0, t, a dan 0.5 sebagai
konstanta (nilai tetap)
3. Budi hendak menghitung buah di dalam
keranjang : maka yang menjadi Input adalah
Buah di Keranjang
23
Memahami Pengertian Proses
Proses : Kegiatan yang dikerjakan setelah input
diberikan : dari contoh sebelumnya maka
1. Yang menjadi proses jarak/kecepatan
2. Vo*t+0.5*a*t2
3. Menghitung Buah di keranjang
Memahami Pengertian Output
Output adalah keluaran yang diinginkan
oleh User.
Contoh
1. Berapa luas lapangan sepakbola
2. Berapa jarak dari bandung ke jakarta bila
menggunakan mobil
3. Berapa Jumlah Buah di Keranjang
24
25
Latihan 2 (dua) (tentukan Input – Proses –
Output )a. d=b-4ac
b. L=Phi*r2
c. Tentukan jumlah batu bata yang dibutuhkan untuk
membangun tembok dengan luas P m2 dan luas
batubata N m2
d. Tentukan berapa hari , jam , Menit dari masukkan
yang bernilai T Menit
Penulisan Algoritma
Dalam bahasa natural (Bahasa Indonesia, Bahasa
Inggris, dan bahasa manusia lainnya)
◦ Tapi sering membingungkan (ambiguous)
Menggunakan flow chart (diagram alir)
◦ Bagus secara visual akan tetapi repot kalau
algoritmanya panjang
Menggunakan pseudo-code
◦ Sudah lebih dekat ke bahasa pemrograman,
26
Contoh Algoritma Bahasa Natural
Requirement
◦ Buat sebuah algoritma untuk memilih bilangan
terbesar dari 2 buah bilangan
Maka Langkah Dalam bahasa Natural
1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan maks
3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
4. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
27
28
Flowchart
Terminator : Simbol tanda dimulai
atau berakhir sebuah program
Input/Output : Simbol data variabel
(dapat berubah – ubah) sebagai
masukkan atau hasil dari proses
Proses : Simbol Formula/proses
yang sedang dikerjakan
Decision : Bila hasil dari sebuah
proses menghasilkan lebih dari
satu kemungkinan keluaran yang
benar
Konstanta : Data berupa
konstanta (bernilai tetap)
Predifined Proses : Bila ada
sub proses di proses yang
sedang dikerjakan
Sambungan bila masih di
halaman yang sama
Sambungan di halaman
yang berbeda
Algoritma dengan Flowchart
29
Maks = bilangan pertama
Maks <
bilangan kedua Maks = bilangan keduaYa
Selesai
Mulai
Tidak
Algoritma dengan pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
Print maks
30
Aspek Penting dari Algoritma
1. Finiteness
• Algoritma harus berhenti after a finite number of steps
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
31
Tugas 3 (Tiga)
Buat Algorit:ma untuk kasus berikut :
(dalam Bahasa Natural , FlowChart dan
Pseudo - Code)
Menghitung Volume kubus :6 * luas sisi kubus
Menghitung Volume bola : 4/3*Phi* r3
Menghitung Nilai dari suatu Akar Persamaan
32
Struktur Menyusun Algoritma
33
Judul Program (Tulis Judul Program)
{ Deskripsi Program }
Deklarasi
(tentukan Variabel/Constanta dan Tipe data)
Algoritma
(Susun Algoritma)
Tulis Judul Program
Anda dan beri Deskripsi
Singkat)
Deklarasikan Variabel
yang dibutuhkan
dalam menyusun
Algoritma dan tipe
Data Yang sesuai
Susun Algoritma
Dalam Bentuk
Pseudo Code
Tipe Data
1. Tipe Data Standar◦ Boolean
◦ Numerik Bulat
◦ Numerik Pecahan
◦ Karakter
◦ String
2. Tipe Data Komposit◦ Record
◦ Array
◦ Pointer
◦ ----
34
Tipe data Standar
Boolean Memiliki 2 Jenis data True Dan false
Operasi perbandingan <,>,>=,<=,= =,=!Operasi Logika (True = 1, false = 0)
Not : Membalikkan Nilai BinerOr : Bila salah satu true maka Keluaran true
AND : Bila salah satu false maka Keluaran FalseXOR : Keluaran True Bila dua data berbeda
Bila sama maka false
35
Tipe data Standar (Lanjutan)
Numerik Bulat Tipe data yang hanya mengambil Nilai bulat dari suatu variabel atau
konstanta.
Contoh :
5,5 maka dibaca 5
3,2 dibaca 3
7,8 dibaca 7
Dalam beberapa kasus pembulatan nilai dapat dilakukan dengan menambahkan perintah khusus untuk pembulatan nilai
Dalam Bilangan Bulat memiliki nilai keterurutan yaitu nilai sebelumnya predecessor dan nilai sesudahnya successor sebagai contoh pred dari 9 adalah 8 dan succ dari 9 adalah 10 .
Secara formal pred(a) = a – 1 succ(a) = a + 1
Konstanta dalam bilangan bulat ditulis tanpa mengandung titik desimal
36
37
Operasi Bilangan Bulat
- Operasi Bilangan Bulat adalah Operasi aritmetika dan operasi perbandingan
- Operator masing masing operasi adalah operator aritmetika dan operator perbandingan
- Operator aritmetika :- + (tambah)
- - (kurang)
- Div (bagi)
- * (Kali)
- Mod (sisa hasil bagi) contoh
- 5 + 5 = 10
- 6 Div 4 = 1
- 7 Mod 3 = 1
Operator Perbandingan
<. >, <=, >=, =, <>
Contoh
4 < 6 = True
3 > 5 = false5 <> 8 = true
5 <= 5 = true
38
Bilangan Riil
Bilangan riil adalah bilangan yang mengandung nilai desimal misal 3.05 , 3.23, 2.6E3, 0.25
Bilangan riil disebut dengan real
Jangkauan Nilai Bilangan Riil
Tipe Rentang Nilai Format
real 2.9 x 10-39 .. 1.7 x 10 38 6 Byte
single 1.5 x 10-45 .. 3.4 x 10 38 4 byte
double 5.0 x 10 -324 .. 1.7 x 10 308 8 byte
extended 3.4 x 10 -4932 .. 1.1 x 10 4932 10 byte
39
Operasi Bilangan Riil
Operasi dalam bilangan Riil :
- Operasi aritmetika dalam bilangan riil menghasilkan nilai bertipe riil
- Operator yang digunakan +, -, /, *
- Bila dalam operasi menggunakan tipe campuran maka otomatis akan dikonversi ke tipe riil
- Operator perbandingan : <, >, <=, >=, <>, =
- Operator perbandingan menghasilkan tipe data boolean
Karakter
Contoh jenis bilangan karakter adalah
‘a’,’b’,’c’,’A’,’B’,’1’,’2’, dst
Type Bilangan karakter disebut juga Char
Bilangan karakter adalah semua huruf baik
kecil ataupun yang kapital, termasuk tanda
baca
40
String
String adalah Gabungan karakter seperti :
- ‘ada’. ‘123’
Operasi dalam karakter
+, &
Contoh
Hasil ‘123’ + ‘456’
Maka isi hasil ‘123456’
Tanda + dapat diganti dengan &
41
Tipe Data Komposit
- ARRAY
- Record
- Pointer
Contoh
Array
a,b : array[1..5] of integer
a[1]= 5 ; a[2]=6
Dataku : Record
nama : string
umur : integer
dataku.nama = ‘Doni’
dataku.umur = 32
Tipe data Pointer merupakan tipe data berupa alamat memori.
42
KeyWord dan Notasi Untuk
membuat Pseudo Codea b artinya isi variabel b disalin ke variabel a, dan isi variabel a
sebelumnya akan hilang
Write(‘halo’) artinya mencetak kata halo
Write(hasil) artinya mencetak isi variabel hasil
Read(a) artinya membaca masukkan dan disimpan di a
Read(a,b,c) artinya membaca masukkan sebanyak 3 data untuk
disimpan di a,b,c
If ekspresi boolean then <statementtrue > else <statementfalse>
endif artinya menyeleksi statement apakah menghasilkan keluaran
true atau false
For pernyataan inisialisasi to nilai akhir step penambahan
Do pernyataan while ekspresi boolean
While ekspresi boolean do pernyataan
43
If Then Elseif End If
1, Di sebuah Perusahaan kecil terdiri dari karyawan tetap dikodekan dengan
“T” dan Karyawan harian dikodekan dengan “B”. Dihitung gajinya dengan
aturan. Karyawan tetap Gajinya Rp 750.000,-. Untuk karyawan harian
dihitung berapa jam karyawan bekerja dengan honor perjamnya Rp 7.500,-
2. Diketahui suatu akar persamaan ax2 + Bx + C. Untuk menghitung X1 = -
b+akar(b2 -4ac)/(2a) x2 = -b - akar(b2 -4ac)/(2a)
3. Grade Nilai Siswa sbb :
Nilai > 80 A
60 < Nilai < 80 B
40 < Nilai < 60 C
20 < Nilai < 40 D
Nilai < 20 E
44
Switch Case
Struktur Switch case digunakan untuk menggantikan
struktur If Nested (If Bersarang)
Format
Switch <nama Peubah>
Case Nilai Pertama Peubah : perintah -1
Case Nilai Kedua Peubah : Perintah – 2
---------
Case Nilai ke n Peubah : perintah – x
Default
EndCase
45
Perulangan LOOP
Ada 3 Jenis Struktur Perulangan yaitu
1. While Do Dicek Dahulu baru Proses
Loop dijalankan. Digunakan bila jumlah
ditentukan atau tidak ditentukan
2. Do While Diloop baru dicek
3. For .. To … Do Digunakan bila
diketahui jumlah Loop
46
Contoh kasus
1. Buat Program untuk menghitung rata rata nilai
yang diinputkan yaitu 10.4.6.8
2. Buat Program Password dengan password
selamat
3. Modifikasi soal no 2 dengan jumlah batas
password 3 kali kesalahan
4. Buat Program menampilkan bintang seperti
berikut (untuk melaompat ke bawah digunakan
isntruksi writeln
*
**
***
****
Function dan ProcedureFormat Function
Function NamaFunction
{ Statment ;
return (nilai dikembalikan) }
Function NamaFunction (parameter)
{ Statment ;
return (nilai dikembalikan) }
Procedure namaprocedure
{Statement }
Procedure namaprocedure (parameter)
{Statement }
2004 EL 2001 - Algoritma v.1.2
%d %i Decimal signed integer.
%o Octal integer.
%x %X Hex integer.
%u Unsigned integer.
%c Character. %s String. See below.
%f double
%e %E double.
%g %G double.
%p pointer. %n Number of characters
written by this printf.
No argument expected. %% %. No argument
expected.