algoritma

64
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.

Upload: jacie

Post on 04-Jan-2016

156 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: ALGORITMA

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.

Page 2: ALGORITMA

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)

Page 3: ALGORITMA

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

Page 4: ALGORITMA

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

Page 5: ALGORITMA

5

Contoh 2: Persoalan 1

Menentukan apakah suatu bilangan bulat positif adalah bilangan genap atau bilangan ganjil.

Page 6: ALGORITMA

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.

Page 7: ALGORITMA

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’)

Page 8: ALGORITMA

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

Page 9: ALGORITMA

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.

Page 10: ALGORITMA

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.

Page 11: ALGORITMA

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.

Page 12: ALGORITMA

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

Page 13: ALGORITMA

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

Page 14: ALGORITMA

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.

Page 15: ALGORITMA

15

Page 16: ALGORITMA

16

Kontrol Struktur : Dibagi dalam 4 katagori yaitu:

Statement Sequence Selection Iteration (Looping)

Page 17: ALGORITMA

17

Statement: Control berupa instruksi/perintah

yang harus dikerjakan oleh komputer.

Setiap bahasa pemrograman memiliki instruksi yang berlainan.

Page 18: ALGORITMA

18

Sequence : Beberapa statement diurutkan

menjadi urutan perintah

Page 19: ALGORITMA

19

Selection (IF/THEN/ELSE): pemilihan 2

kemungkinan berdasarkan evaluasi dari suatu expresi, dapat benar (true) atau salah (False).

Page 20: ALGORITMA

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

Page 21: ALGORITMA

21

awal iterasi

pada akhir iterasi

Page 22: ALGORITMA

22

Program Terstruktur : Terdapat dua model pemrograman

tak terstruktur terstruktur

Perbedaan dari keduanya adalah:

Page 23: ALGORITMA

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.

Page 24: ALGORITMA

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

Page 25: ALGORITMA

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

Page 26: ALGORITMA

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 :

Page 27: ALGORITMA

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

Page 28: ALGORITMA

28

Unstructured program cont:

Page 29: ALGORITMA

29

Structured program :

Program terdiri atas program utama dan 2 buah modul:

Program Utama:Inisialisasi variableLink ke modul InputDataLink ke modul LinearRegresi

Page 30: ALGORITMA

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.):

Page 31: ALGORITMA

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.):

Page 32: ALGORITMA

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.):

Page 33: ALGORITMA

33

Dokumentasi Kegunaan dokumentasi adalah

untuk memudahkan saat penulisan

program memudahkan debugging (mencari

kesalahan) memudahkan orang lain

mengembangkan program tersebut

Page 34: ALGORITMA

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

Page 35: ALGORITMA

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

Page 36: ALGORITMA

36

IF .. THEN .. ELSE ..

Format: IF [kondisi] THEN Pernyataan Benar ELSE Pernyataan salah END IF

Page 37: ALGORITMA

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

Page 38: ALGORITMA

38

Kolom (A s/d IV=256 kolom) baris (1 s/d 65536)

sheet (max 255) max array(255,65536,256)

Page 39: ALGORITMA

39

IF .. THEN .. ELSE .. (EXCEL)

Page 40: ALGORITMA

40

IF .. THEN ..

FORMAT: IF [kondisi] THEN Pernyataan

Page 41: ALGORITMA

41

IF .. THEN .. (EXCEL)

Page 42: ALGORITMA

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

Page 43: ALGORITMA

43

Page 44: ALGORITMA

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

Page 45: ALGORITMA

45

Page 46: ALGORITMA

46

SELECT.. CASE Format:SELECT CASE variableCASE IS kondisi A Pernyataan ACASE IS kondisi B Pernyataan B...CASE ELSE

PernyataanEND SELECT

Page 47: ALGORITMA

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

Page 48: ALGORITMA

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

Page 49: ALGORITMA

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

Page 50: ALGORITMA

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.

Page 51: ALGORITMA

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” ().

Page 52: ALGORITMA

52

BOOLEAN ALGEBRA

A Boolean operator can be expressing as a vent diagram

Suppose have 2 different lithology: Limestone and Sandstone:

Limestone Sandstone

Page 53: ALGORITMA

53

Searching: NOT

Search: Sandstone

Search: Limestone

Limestone Sandstone

SandstoneLimestone

Page 54: ALGORITMA

54

Searching:

Search: AND

Search: OR

Limestone Sandstone

Limestone Sandstone

Page 55: ALGORITMA

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

Page 56: ALGORITMA

56

The Boolean operator (electrical) Can be

representing as: switch, relay or gate

X X

XY

X+YX

Y

X

Y

Page 57: ALGORITMA

57

The Boolean AND operator

0

0

0

0

1

0

0

1

0

1

1

1

Page 58: ALGORITMA

58

Expr 1 Exp 2 ANDT T TT F FF T FF F F

Page 59: ALGORITMA

59

The Boolean OR operator

0

1

0

0

1

0

1

1

0

1

1

1

Page 60: ALGORITMA

60

Expr 1 Exp 2 ORT T TT F TF T TF F F

Page 61: ALGORITMA

61

The Boolean NOT operator

0 1

1 0

Page 62: ALGORITMA

62

Expr NOTT FF T

Page 63: ALGORITMA

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

Page 64: ALGORITMA

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