algoritma

Post on 04-Jan-2016

156 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

top related