algoritma
DESCRIPTION
ALGORITMA. Urut-urutan langkah pengerjaan (Al-Khawarizmi) Atau sejumlah urutan perintah untuk mengerjakan sesuatu atau menyelesaikan suatu masalah, masalah apapun tidak terbatas pada pembuatan program saja. Menuliskan Algoritma. Algoritma dapat dituliskan dengan berbagai cara: Teks - PowerPoint PPT PresentationTRANSCRIPT
1
ALGORITMA
Urut-urutan langkah pengerjaan (Al-Khawarizmi)
Atau sejumlah urutan perintah untuk mengerjakan sesuatu atau menyelesaikan suatu masalah, masalah apapun tidak terbatas pada pembuatan program saja.
2
Menuliskan Algoritma
Algoritma dapat dituliskan dengan berbagai cara: Teks
Level kedekatan dengan kode program: mulai dari teks bebas sampai pseudocode
Diagram, misal: bagan alir (flowchart)
3
Contoh 1: Algoritma pembuatan kue
Memanaskan oven Penyiapan bahan Pencampuran bahan dalam mangkuk Memasukkannya kedalam loyang Membakarnya Mencek kematangan kue setiap 5 menit
sampai dengan bagian atas kue tidak lengket.
Mendinginkannya dan memotongnya
4
Gather the ingredients:Bowl, spoon
flour, butter, sugar, milk, egg
Cake top spring back?
End
Heat Oven
Mix in bowl
Pour in the baking pan
Bake in the oven for 50 minutes
Bake more for 5 minutes
Cool and Cut
Start
5
Contoh 2: Persoalan 1
Menentukan apakah suatu bilangan bulat positif adalah bilangan genap atau bilangan ganjil.
6
Contoh Algoritma Persoalan 1: Menggunakan Teks Bebas
1. Bagi bilangan dengan bilangan 22. Hitung sisa hasil bagi pada
langkah 1.3. Bila sisa hasil bagi sama dengan 0
maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
7
Contoh Algoritma Persoalan 1:Menggunakan PseudocodeProgram Menentukan_Bilangan{ Menentukan apakah suatu bilangan bulat positif adalah bilangan ganjil atau genap }
KAMUS:n : integer > 0 {input bilangan bulat positif}m : integer > 0 {hasil sisa pembagian n dgn. 2}
ALGORITMA:input (n)m n mod 2if m = 0 then output (n, ‘ adalah bilangan genap’)else { m = 1 } output (n, ‘ adalah bilangan ganjil’)
8
Contoh Algoritma Persoalan 1:Menggunakan Flowchart
Ya
Tidak
Start
input (n)
m = n mod 2
{ Hitung sisa bagi n dengan 2 }
A
A
m = 0
output (‘Genap’)
output (‘Ganjil’
)
End
Keterangan:n : integer > 0m : integer > 0
9
Flowchart/Bagan Alir
visualisasi dari algoritma dalam bentuk bagan
Agar pengertian tentang masalah dan penyelesaiannya dapat tergambarkan dengan jelas.
Dalam pemrograman akan menggambarkan logika aliran pemrograman.
10
Bagan Alir (Flowchart)
Kelebihan (umum): Bentuk grafis memudahkan interpretasi dan
pembacaan Relatif mudah dimengerti Relatif mudah untuk dibuat
Kekurangan (umum): Tidak ringkas (membutuhkan media penulisan
yang relatif besar) Untuk algoritma dalam ukuran besar menjadi tidak
praktis Kurang fleksibel untuk menjelaskan konsep-
konsep spesifik dalam pemrograman Misalnya: struktur data (type data tidak terdefinisi
eksplisit), kondisional dengan banyak kasus, dsb.
11
Manfaat Bagan Alir: Identifikasi masalah Pengertian tentang masalah Proses penyelesaian suatu masalah Hubungan tiap-tiap bagian dari
proses. Kendala-kendala dalam penyelesaian
masalah. Ide-ide baru menyelesaikan masalah. Relatif lebih dapat dimengerti & oleh
orang lain.
12
Simbol Flowchart [1]
SIMBOL NAMA FUNGSI
Terminator Permulaan/akhir algoritma
Garis alir / flow line
Arah aliran program
Preparation Proses inisialisasi/pemberian harga awal
Proses Proses perhitungan/proses pengolahan data
13
Simbol Flowchart [2]
SIMBOL NAMA FUNGSI
Input/output data
Proses input/output data, parameter, informasi
Predefined process/ subprogram
Permulaan sub program/proses menjalankan sub program
Decision Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya
14
Simbol Flowchart [3]
SIMBOL NAMA FUNGSI
On Page Connector
Penghubung bagian-bagian flowchart yang berada pada satu halaman
Off Page Connector
Penghubung bagian-bagian flowchart yang berada pada halaman yang berbeda
Dll.
15
16
Kontrol Struktur : Dibagi dalam 4 katagori yaitu:
Statement Sequence Selection Iteration (Looping)
17
Statement: Control berupa instruksi/perintah
yang harus dikerjakan oleh komputer.
Setiap bahasa pemrograman memiliki instruksi yang berlainan.
18
Sequence : Beberapa statement diurutkan
menjadi urutan perintah
19
Selection (IF/THEN/ELSE): pemilihan 2
kemungkinan berdasarkan evaluasi dari suatu expresi, dapat benar (true) atau salah (False).
20
Iteration (Looping): pengulangan atas dasar eveluasi
suatu test, bila benar perulangan akan
dilakukan bila salah akan berhenti.
Dibagi 2 dari segi posisi pengetesan awal iterasi pada akhir iterasi
21
awal iterasi
pada akhir iterasi
22
Program Terstruktur : Terdapat dua model pemrograman
tak terstruktur terstruktur
Perbedaan dari keduanya adalah:
23
Program Tak Terstruktur : Program dibuat secara berurutan
kebawah. Dimulai dari baris pertama hingga
baris terakhir program Susah untuk dipahami, sehingga tidak
mudah untuk memodifikasi program buatan orang lain
Akan tetapi untuk program yang sederhana dapat digunakan.
24
Program Terstruktur : Desain program top – down,
solusi masalah dimulai dari general, kearah solusi detail hingga bagian yang paling detail
Desain program berbentuk modul-modul Setiap bagian solusi masalah di buat
subprogram tersendiri (prosedur). Tiap modul dapat dites tersendiri Mudah untuk difahami
25
Contoh Program Linear Regresi Program ini didesign untuk
mencari persamaan Linear dari sejumlah data X, Y
Input : sejumlah data X, Y Output : Persamaan Linear
Y=aX+b (par a & b)
Solusi numerik :
22 xxn
yxxyna
xayb
26
X = data x Y = data yN = jumlah data sX = jumlah x sY = jumlah ysXY = jumlah perkalian xy sXX = jumlah x
kuadratsXsX = jumlah x dikuadratkanXrata = rata-rata x Yrata = rata-rata
y a = gradien garis b = konstantaTanya$ = jawaban yang diharapkan untuk
mengulangi proses input data atau melanjutkan proses hingga selesai (Y/T)
Design Variable yang digunakan :
27
Unstructured program: Inisialisasi variable hitung jumlah data N Masukkan data X dan Y Hitung X2, X*Y Hitung jumlah X, Y, X*Y, X2 Hitung rata-rata X, Y Hitung kuadrat jumlah X Hitung a, b Tampilkan harga a dan b
28
Unstructured program cont:
29
Structured program :
Program terdiri atas program utama dan 2 buah modul:
Program Utama:Inisialisasi variableLink ke modul InputDataLink ke modul LinearRegresi
30
Module InputData:Inisialisasi variableTentukan jumlah data X dan YMasukkan data X dan Y
Modul LinearRegresi:Hitung jumlah X, Y, X*Y, X2Hitung rata-rata X, YHitung kuadrat jumlah X Hitung a, bTampilkan harga a dan b
Structured program (cont.):
31
Start
Inisialisasi Variabel
Stop
Gbr 6a. Bagan alir program Linear Regresi dengan menggunakanPemrograman terstruktur menggunakan bahasa sehari-hari.Bagan alir Utama (Kiri), Bagan alir Modul InputProcess (tengah) danBagan alir Modul Linearregresi (kanan)
ProgramUtama
Dari ProgramUtama
Inisialisasi Variabel=0
Read XRead Y
I < Jumlah Data
Hitung Penjumlahan XHitung Penjumlahan Y
Hitung Penjumlahan X*YHitung Kuadrat jumlah X
Hitung Rata-Rata XHitung Rata-Rata Y
Hitung Kuadrat Penjumlahan XHitung a dan b
tampilkan atampilkan b
Kembali keProgram Utama
ModulInputProcess
Modul InputProcess
Modul LinearRegresi
Redimensi VariabelArray
ReadJumlah
Data
Y
T
Dari ProgramUtama
Inisialisasi Variabel=0
I < Jumlah Data
Kembali keProgram Utama
ModulLinearRegresi
Y
T
Start
DIM X(0)DIM Y(0)
DIM N, sX, sYDIM sXY, sXX, sXsXDIM Xrata, Yrata, i
Stop
Gbr 6b. Bagan alir program Linear Regresi dengan menggunakanPemrograman terstruktur menggunakan bahasa pemrograman.Bagan alir Utama (Kiri), Bagan alir Modul InputProcess (tengah) danBagan alir Modul LinearRegresi (kanan)
ProgramUtama
Xrata=sX/NYrata=sY/NsXsX=sX*sX
a=(N*sX*sY-sXY)/(N*sXX-sXsX)b=Yrata-a*Xrata
Print aPrint B
Dari ProgramUtama
N = 0
Input X(i)Input Y(i)
i < N
sX=sX+XsY=sY+Y
sXY=sXY+X*YsXX=sXX+X*X
Kembali keProgram Utama
ModulInputProcess
Modul InputProcess
Modul LinearRegresi
Redim X(N)Redim Y(N)
Input N
Y
T
Dari ProgramUtama
sX = 0: sY = 0sXY = 0: sXX = 0
sXsX = 0Xrata=0: Yrata=0
i < N
Kembali keProgram Utama
ModulLinearRegresi
Y
T
Structured program (cont.):
32
Start
Inisialisasi Variabel
Stop
Gbr 6a. Bagan alir program Linear Regresi dengan menggunakanPemrograman terstruktur menggunakan bahasa sehari-hari.Bagan alir Utama (Kiri), Bagan alir Modul InputProcess (tengah) danBagan alir Modul Linearregresi (kanan)
ProgramUtama
Dari ProgramUtama
Inisialisasi Variabel=0
Read XRead Y
I < Jumlah Data
Hitung Penjumlahan XHitung Penjumlahan Y
Hitung Penjumlahan X*YHitung Kuadrat jumlah X
Hitung Rata-Rata XHitung Rata-Rata Y
Hitung Kuadrat Penjumlahan XHitung a dan b
tampilkan atampilkan b
Kembali keProgram Utama
ModulInputProcess
Modul InputProcess
Modul LinearRegresi
Redimensi VariabelArray
ReadJumlah
Data
Y
T
Dari ProgramUtama
Inisialisasi Variabel=0
I < Jumlah Data
Kembali keProgram Utama
ModulLinearRegresi
Y
T
Start
DIM X(0)DIM Y(0)
DIM N, sX, sYDIM sXY, sXX, sXsXDIM Xrata, Yrata, i
Stop
Gbr 6b. Bagan alir program Linear Regresi dengan menggunakanPemrograman terstruktur menggunakan bahasa pemrograman.Bagan alir Utama (Kiri), Bagan alir Modul InputProcess (tengah) danBagan alir Modul LinearRegresi (kanan)
ProgramUtama
Xrata=sX/NYrata=sY/NsXsX=sX*sX
a=(N*sX*sY-sXY)/(N*sXX-sXsX)b=Yrata-a*Xrata
Print aPrint B
Dari ProgramUtama
N = 0
Input X(i)Input Y(i)
i < N
sX=sX+XsY=sY+Y
sXY=sXY+X*YsXX=sXX+X*X
Kembali keProgram Utama
ModulInputProcess
Modul InputProcess
Modul LinearRegresi
Redim X(N)Redim Y(N)
Input N
Y
T
Dari ProgramUtama
sX = 0: sY = 0sXY = 0: sXX = 0
sXsX = 0Xrata=0: Yrata=0
i < N
Kembali keProgram Utama
ModulLinearRegresi
Y
T
Structured program (cont.):
33
Dokumentasi Kegunaan dokumentasi adalah
untuk memudahkan saat penulisan
program memudahkan debugging (mencari
kesalahan) memudahkan orang lain
mengembangkan program tersebut
34
Dokumentasi Bagian yang perlu dibuat
dokumentasinya: Input, output Komentar-komentar proses utamanya Penjelasan setiap variable (terutama
input & output) Bagan alirnya. Tanggal modifikasi, dan nama programer Spesifikasi program Buku manualnya Program Help
35
LOGIKA (BOOLEAN)
Operator Symbol Komputer
Contoh symbol aljabar
contoh
Bit Wise Complement
NOT a NOT b NOT a NOT b
Conjunction AND a AND b AND a AND b
Disjunction (inclusive "or")
OR a OR b OR a OR b
Exclusive "or" XOR a XOR b XOR a XOR b
Equivalence EQV a EQV b EQV a EQV b
Implication IMP a IMP b IMP a IMP b
36
IF .. THEN .. ELSE ..
Format: IF [kondisi] THEN Pernyataan Benar ELSE Pernyataan salah END IF
37
MS EXCEL Worksheet pada Excel adalah variable array
2D atau 3D pada keseluruhan file excel tidak diperlukan perintah Input, output, print perintah disimpan dalam cell dan hasilnya
langsung ditampilkan pada cell tersebut dapat menggunakan operator logika AND,
OR, NOT, True, False serta perintah IF variable dan konstanta tergantung dari
penggunaannya dlam perhitungan
38
Kolom (A s/d IV=256 kolom) baris (1 s/d 65536)
sheet (max 255) max array(255,65536,256)
39
IF .. THEN .. ELSE .. (EXCEL)
40
IF .. THEN ..
FORMAT: IF [kondisi] THEN Pernyataan
41
IF .. THEN .. (EXCEL)
42
IF .. THEN .. ELSE .. Format:IF [kondisi1] THEN
Pernyataan Benar1
ELSEIF [kondisi2] THEN
Pernyataan Benar2
ELSEIF [kondisi..] THEN
Pernyataan Benar..
ELSE
Pernyataan salah
END IF
43
44
Contoh lain:INPUT “Ukuran Butir”;UBTR
IF UBTR <= 1/256 THEN
PRINT “Batulempung”
ELSEIF UBTR<=1/16 THEN
PRINT “Batulanau”
ELSEIF UBTR<=2 THEN
PRINT “Batupasir”
ELSE
PRINT “Konglomerat/Breksi”
END IF
45
46
SELECT.. CASE Format:SELECT CASE variableCASE IS kondisi A Pernyataan ACASE IS kondisi B Pernyataan B...CASE ELSE
PernyataanEND SELECT
47
SELECT.. CASE Format:SELECT CASE UBTR
CASE IS<=1/256:PRINT “Batulempung”
CASE IS<=1/16: PRINT “Batulanau”
CASE IS<=2: PRINT “Batupasir”
CASE ELSE : PRINT “Breksi”
END SELECT
LOGICAL EVALUATION USING BOOLEAN OPERATOR
Comparing 2 variables The answer:
T(RUE) F(FALSE)
Each answer will be connected to some different statement
Can be program termination, do another job with or without correlated to the evaluate variable, do another job
Usually in IF…..THEN form
BOOLEAN TRUTH TABLE
Expr-1 Expr-2
NOT AND OR XOR EQV IMP
T T F T T F T T
T F F F T T F F
F T T F T T F T
F F T F F F T T
50
BOOLEAN ALGEBRA
A Boolean operator can be completely described using a truth table.
The truth table for the Boolean operators AND and OR are shown at the right.
The AND operator is also known as a Boolean product. The OR operator is the Boolean sum.
51
BOOLEAN ALGEBRA
The truth table for the Boolean NOT operator is shown at the right.
The NOT operation is most often designated by an over bar. It is sometimes indicated by a prime mark ( ‘ ) or an “elbow” ().
52
BOOLEAN ALGEBRA
A Boolean operator can be expressing as a vent diagram
Suppose have 2 different lithology: Limestone and Sandstone:
Limestone Sandstone
53
Searching: NOT
Search: Sandstone
Search: Limestone
Limestone Sandstone
SandstoneLimestone
54
Searching:
Search: AND
Search: OR
Limestone Sandstone
Limestone Sandstone
55
Digital computers contain circuits that implement Boolean functions.
The simpler that we can make a Boolean function, the smaller the circuit that will result. Simpler circuits are cheaper to build,
consume less power, and run faster than complex circuits.
With this in mind, we always want to reduce our Boolean functions to their simplest form.
There are a number of Boolean identities that help us to do this.
BOOLEAN ALGEBRA
56
The Boolean operator (electrical) Can be
representing as: switch, relay or gate
X X
XY
X+YX
Y
X
Y
57
The Boolean AND operator
0
0
0
0
1
0
0
1
0
1
1
1
58
Expr 1 Exp 2 ANDT T TT F FF T FF F F
59
The Boolean OR operator
0
1
0
0
1
0
1
1
0
1
1
1
60
Expr 1 Exp 2 ORT T TT F TF T TF F F
61
The Boolean NOT operator
0 1
1 0
62
Expr NOTT FF T
63
Derivative Boolean operator (XOR)
0
1
0
0
1
0
1
0
0
1
1
1
X+YX
Y
0011
0101
0110
0100
0010
1100
0101
0011
1010
64
Derivative Boolean operator (XNOR / EQV)
1
0
0
0
1
0
0
1
0
1
1
1
X+YX
Y
0011
0101
0110 1001
0100
0010
1100
0101
0011
1010