No Slide Title

Download Report

Transcript No Slide Title

1
ALGORITMA
adalah langkah-langkah
yang diambil dalam
menyelesaikan suatu tugas
Langkah-langkah
harus tersusun
secara LOGIS
dan Efisien
Diselesaikan
Oleh
KOMPUTER
agar dapat
menyelesaikan tugas
dengan benar
dan efisien.
1
ALGORITMA
merupakan gabungan antara SENI
dan TEKNIK
TEKNIK,
Karena Algoritma
diterapkan di Komputer
yang penuh dengan TOOL
dan metodologi
Seni,
karena Algoritma penuh
dengan kreativitas
dan imajinasi yang
jenius
v
Salah satu buku literatur, memberikan definisi dan kriteria sebuah
algoritma sebagai berikut :
An algorithm is a finite set of instructions which, if followed, accomplish a
particular task. In addition every algorithm must satisfy the following criteria :
1). Input : there are zero or more quantities which are externally supplied;
2). Output : at least one quantity is produced;
3). Definiteness : each instruction must be clear and unambiguous;
4). Finiteness : if we trace out the instructions of an algorithm, then for all cases
the algorithm will terminate after a finite number of steps;
5). Effectiveness : every instruction must be sufficiently basic that it can in
principle be carried out by a person using only pencil and paper. It is not
enough that each operation be definite as in 3), but it must also be
feasible.
Horowitz,Eliis and Sahni, Sartaj; FUNDAMENTAL OF
DATA STRUCTUTES; Computer Science Press, Inc.;
Rocville, Maryland; 1983
2
Secara bebas definisi diatas dapat diterjemahkan sebagai berkut :
Algoritma adalah sekumpulan instruksi, yang apabila dijalankan, akan
menyelesaikan suatu tugas tertentu. Sebagai tammbahan, setiap
algoritma harus memenuhi kriteria sebagai berikut
1). Tidak harus ada data masukan yang dimasukkan dari luar.
2). Paling tidak ada satu buah keluaran
3)
Setiap instruksi jelas maksudnya dan tidak meragukan
4). Algoritma baik secara keseluruhan maupun sub algoritma bila
ditelusuri harus ada titik berhentinya.
5). Setiap instruksi selain jelas juga harus dapat dilaksanakan, dan juga
efektif dalam arti harus menghasilkan sesuatu. Sebagai contoh
A = A + 0 atau A = A*1, adalah termasuk instruksi yang tidak
efektif.
2
PSEUDO-CODE
1. 8
for i 1 to n-1 do
examine A(i) to A(n) and suppose the
smallest integer is at A(j); then interchange
A(i) and A(j).
end
ALGORITMA
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
Horowitz,Eliis and Sahni, Sartaj; FUNDAMENTAL
OF DATA STRUCTUTES; Computer Science Press, Inc.;
Rocville, Maryland; 1983
3
1. 9
2). Mencari suatu nilai dalam array dengan cara Binary Search.
PSEUDO-CODE
Procedure BINSRCH(A,n,x,j)
initialize lower and upper
while there are more elements to check do
let A(mid) be the middle element
case
: x > A(mid) : set lower to mid + 1
: X < A(mid) : set upper to mid - 1
: else : found
end
end
not found
end BINSRCH
3
Bila ditulis dalam bentuk algoritma:
ALGORITMA
Procedure BINSCRH(A,n,x,j)
lower  1; upper  n
while lower <= upper do
mid  [ (lower + upper) / 2 ]
case
: x > A(mid) : lower  mid +1
: x < A(mid) : upper  1
: else : j  mid; return
end
end
j  0
end
4
Untuk menunjukkan kaitan antara Pseudo Code dan Algoritma,
berikut ini diperlihatkan beberapa contoh penulisan Algoritma
untuk Pseudo Code yang diberikan
Pseudo Code
Algoritma
• Nilai A ditambah dengan 5
•A = A + 5
• Cetak nilai A, bila nilai
tersebut lebih besar dari 5
• IF(A > 5) THEN
WRITE(A)
• Dari dua buah nilai A dan B
cetak salah satu yang terbesar
• IF (A>B) THEN WRITE(A)
ELSE WRITE B)
4
4
1. 13
ALGORITMA
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
a. Bahasa BASIC
FOR I=1 TO N-1
J = 1
FOR K=J+1 TO N
IF A(K)< A(J)THEN
J = K
END IF
NEXT K
T=A(I): A(I)=A(J): A(J)=T
NEXT I
5
ALGORITMA
1. 14
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
b. Bahasa PASCAL
FOR I := 1 TO N-1
Begin
J := 1;
FOR K := J+1 TO
N
Begin
IF A[K] < A[J]
J := K;
End;
T:=A[I]; A[I]:=A[J]; A[J]:=T;
End;
5
ALGORITMA
1. 15
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
C atau C++
for(I=1; I <= N-1; I++)
{
J = 1;
for(K = J+1; K <= N; K++)
{
if(A[K] < A[J] )
J = K;
}
T=A[I]; A[I]=A[J]; A[J]=T;
}
c. Bahasa
5
1. 16
ALGORITMA
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
d. Bahasa
Java
for(I=1; I <= N-1; I++)
{
J = 1;
for(K = J+1; K <= N; K++)
{
if(A[K] < A[J] )
J = K;
}
T=A[I]; A[I]=A[J]; A[J]=T;
}
5
1. 17
ALGORITMA
for i  1
to
n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j) t
end
c. Bahasa
C atau C++
for(I=1; I <= N-1; I++)
{
J = 1;
for(K = J+1; K <= N; K++)
{
if(A[K] < A[J] )
J = K;
}
T=A[I]; A[I]=A[J]; A[J]=T;
}
d. Bahasa
Java
for(I=1; I <= N-1; I++)
{
J = 1;
for(K = J+1; K <= N; K++)
{
if(A[K] < A[J] )
J = K;
}
T=A[I]; A[I]=A[J]; A[J]=T;
}
5
1.3. Program Flowchart.
START
Menginput sampel 100 nilai ujian mahasiswa dan
mencetak ada berapa orang mahasiswa yang lulus
dari 100 sampel tersebut.
Dinyatakan lulus apabila nilai ujian lebih besar atau
sama dengan 60.
JUM  0
I  1
WHILE I <= 100
DO
READ(NIL)
IF NIL >= 60
THEN JUM  JUM + 1
ENDIF
I  I + 1
ENDDO
WRITE(JUM)
JUM  0
I  1
I  I + 1
no
JUM  JUM + 1
if
NIL >= 60
READ
while
I <= 100
yes
NIL
yes
no
WRITE
JUM
END
6
I  1
for i  to n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j)  t
end
I  I + 1
A(J)  T
A(I)  A(J)
T  A(I)
For
n
o
K <= N
yes
if
A(K) < A(J)
n
o
yes
J  K
K  K + 1
K  J + 1
J  I
For
I <= N - 1
n
o
yes
7
1. 20
I  1
for i  to n-1 do
j  i
for k  j+1 to n do
if A(k) < A(j) then j  k
end
t  A(i); A(i)  A(j); A(j)  t
end
For
yes
I <= n - 1
J  I
no
K  J + 1
For
yes
K <= N
if
no
yes
A(K) < A(J)
no
J  K
T  A(I)
A(I)  A(J)
K  K + 1
A(J)  T
I  I + 1
8
1. 21
Terminal, untuk menyatakan START dan END
hanya sebagai tanda, tidak melakukan
suatu pekerjaan khusus.
Process, untuk menyatakan assignment statement
I/O, Input/Output operation.
untuk menyatakan proses baca (READ)
dan proses tulis (WRITE)
Decision, untuk menyatakan pengambilan keputusan
sesuai dengan suatu kondisi.
Digunakan untuk menggambarkan control
statement.
Garis, untuk menyatakan urutan pelaksanaan, atau
alur proses.
9
1. 22
Preparation, Pemberian nilai awal suatu variabel.
Biasa dipakai pada bahasa COBOL,
juga bahasa C.
Call , Memanggil suatu subprogram (procedure,
atau function)
Titik connector yang berada pada halaman yang sama
Titik connector yang berada pada halaman lain.
9
1. 23
1.4. Struktur Alur Algoritma.
dari cara kerjanya, ada tiga macam atau tiga
kategori pokok komponen instruksi dalam
algoritma, yaitu :
1. Assignment Statement,
2. Input / Output Statement, dan
3. Control Statement.
yang masih dapat ditambah satu macam lagi yaitu
4. Call Statement.
10
1. 24
Dilihat dari struktur alur atau urutan pelaksanaan instruksi, ada
tiga macam struktur flow yaitu :
1. Sequential flow,
2. Branch flow,
- Uncoditional Branch flow,
- Conditional Branch flow, atau
Conditional Selection flow.
3. Repetition flow atau Iteration flow atau Loop flow,
- Unconditional Repetition flow,
- Conditional Repetition flow.
10
1. 25
1.4.1. Struktur sequential
Contoh :
1) for i  to n-1 do
2)
j  i
3)
for k  j+1 to n do
4)
if A(k) < A(j) then j  k
5)
end
6)
t  A(i); A(i)  A(j); A(j)  t
7) end
6)
Contoh lain:
READ(A)
READ(B)
T A + B
WRITE(T)
t  A(i)
A(i)  A(j)
A(j)  t
10
1. 26
1.4.2. Struktur Conditional Branch/Selection.
Contoh :
IF-THEN-ELSE Statement
1)
2)
3)
4)
5)
6)
READ(A)
READ(B)
IF A > B
THEN WRITE(A)
ELSE WRIE(B)
ENDIF
11
1. 27
Contoh :
IF-THEN Statement
1)
2)
3)
4)
READ(N)
IF N >= 60
THEN WRITE(“LULUS”)
ENDIF
11
Contoh :
CASE Statement
1. 28
READ(Nilai)
CASE
: Nilai = “A” : WRITE(“Bagus Sekali”)
: Nilai = “B” : WRITE(“Bagus”)
: Nilai = “C” : WRITE(“Cukup”)
: Nilai = “D” : WRITE(“Kurang”)
: else : WRITE(“Kurang Sekali”)
EndCase
12
1. 29
atau
READ(Nilai)
CASE Nilai OF
“A” : WRITE(“Bagus Sekali”)
“B” : WRITE(“Bagus”)
“C” : WRITE(“Cukup”)
“D” : WRITE(“Kurang”)
else : WRITE(“Kurang Sekali”)
EndCase
12
1.4.3. Struktur Loop
1. 30
Contoh :
Unconditional LOOP
1)
2)
3)
4)
5)
6)
7)
T  0
FOR I  1 TO 100
DO
READ(A)
T  T + A
ENDDO
WRITE(T)
12
1. 31
Contoh :
Conditional LOOP
1)
2)
3)
4)
5)
6)
7)
8)
9)
T  0
I  1
WHILE I <= 100
DO
READ(A)
T  T + A
I  I + 1
ENDDO
WRITE(T)
12
ALGORITMA
adalah langkah-langkah
yang diambil dalam
menyelesaikan suatu tugas
Langkah-langkah
harus tersusun
secara LOGIS
dan Efisien
Diselesaikan
Oleh
KOMPUTER
agar dapat
menyelesaikan tugas
dengan benar
dan efisien.
1
18
Mempunyai
Processor
contoh Intel Pentium
KOMPUTER
adalah alat pengolah data,
dengan konstruksi elektronik,
yang mempunyai, internal storage
RAM
bekerja dengan bantuan
Operating System
menurut program yang diberikan
kepadanya.
Contoh
WINDOWS
18
20
PROCESSOR
misal :
Intel Pentium
MEMORY
(internal Storage)
KEYBOARD
SCREEN
Output
device
Input
device
RAM
misal
HARDDISK
Misal
kapasitas
10 GB
kapasitas
64 MB
(external storage)
Input &
Output
device
20
PROCESSOR
Data
Program
misal :
Intel Pentium
MEMORY
(internal Storage)
data
data
data
PROGRAM
KEYBOARD
-------------------------------------------
OPERATING
SYSTEM
SCREEN
Input
device
Output
device
Operating
System
HARDDISK
Misal
kapasitas
10 GB
RAM
misal
kapasitas
64 MB
(external storage)
Input &
Output
device
20
19
BYTE adalah satuan memory
(storage) terkecil yang
masih bisa diberi alamat
no: 0
1
2
3
memory
1 BYTE = 8 bit
(binary digit)
X X X X X X X X
1 2 3
4 5 6 7
8
Satuan lain : WORD ( 4 Byte)
HALF WORD ( 2 Byte)
DOUBLE WORD ( 8 Byte)
SECTOR (512 Byte)
Bila memory dianggap
sebagai sebidang tanah,
maka 1 BYTE dapat
dianggap sebagai 1
meter persegi
No :
64 * 1024 * 1024 - 1
(Untuk memory 64 MB)
19
MEMORY dan satuan BYTE
Memory, bila dibayangkan sebagai sebidang tanah,
maka satu BYTE adalah area sebesar satu meter
persegi, yang dapat menyimpan satu buah huruf
Bila dibayangkan sebagai sebuah ruangan, maka satu
BYTE adalah sebuah ubin yang dapat menampung sebuah
huruf
19
RANDOM ACCESS (Akses secara Acak)
0
1
2
3
4
5 . . . . . .
Komputer dapat mengakses (menuju, mencapai, mendapatkan)
sebuah Byte dalam memory, secara langsung, tanpa harus
menelusuri satu per satu mulai Byte 0,1,2,3, dan seterusnya.
Bagi komputer, untuk mengakses Byte no 1000, sama
mudahnya dengan mengakses Byte nomor 1, atau nomor lainnya
19
1 BYTE = 8 bit (binary digit atau angka biner)
Sebuah Byte terdiri dari 8 komponen yang disebut bit.
Sulit menerangkan benda yang disebut bit tersebut secara
fisik. Hanya dapat diilustrasikan sebagai sebuah bohlam lampu
yang dapat menyala atau padam.
Bila menyala disebut ON, dan padam disebut OFF
Contoh sebuah huruf A
bila disimpan dalam satu BYTE memory
ON
OFF
ilustrasi sebuah BYTE
yang terdiri dari 8 buah bohlam lampu.
19
Catatan :
ON
OFF
disini sengaja dibuat
jarak,
hanya
agar
mudah melihat jumlah
bitnya ada 8 buah.
19
Bit = Binary digit (angka biner)
Untuk keperluan komputasi secara digital,
maka :
bit yang ON dinyatakan dengan angka 1, dan
bit yang OFF dinyatakan dengan angka 0
Sehingga huruf A
yang dinyatakan dengan ON dan OFF nya bit-bit sebagai
berikut :
ON
OFF
selanjutnya dinyatakan dengan :
0 1 0 0
0 0 0 1
19
Binary digit (angka biner)
Bilangan Binary,
Basis (Radix) = 2,
karena hanya mengenal 2 notasi atau simbol yaitu:
0 dan 1
x
32
x
16
x
8
x
4
x
2
x
1
Bilangan Decimal
Basis (Radix) = 10,
karena mengenal 10 notasi atau simbol yaitu :
0, 1, 2, 3, . . . 9
x
1000
x
100
x
10
x
1
19
Binary digit (angka biner)
1
1
1
1
1 0
1 0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
=
=
=
=
=
=
=
=
=
=
0
1
2
3
4
5
6
7
8
9
19
Nilai yang terkandung dalam sebuah BYTE
Setiap bit yang ON mempunyai nilai sesuai dengan posisinya
dalam sebuah BYTE yang dapat digambarkan sebagai berikut :
128 64 32 16
8
4
2
1
Contoh : Bila bit-bit dalam satu Byte dinyatakan
sebagai berikut :
0
0
1
1
32
16
0
1
4
0
1
1
maka nilai numerik yang tersimpan = 53
( = 32 + 16 + 4 + 1 )
19
Nilai karakter A
Ilustrasi huruf A yang disimpan dalam suatu BYTE
128 64
32
16
8
4
2
1
Yang dinyatakan dengan angka biner (binary digit)
menjadi :
128 64
0
1
32
16
8
4
2
1
0
0
0
0
0
1
Sehingga karakter A, atau huruf A
yang disimpan dalam satu BYTE memory akan bernilai = 65
karena bit yang ON bernilai 64 dan 1.
19
HURUF
atau
KARAKTER : A
128 64
32
16
8
4
2
1
= 65
B
= 66
C
= 67
D
E
= 68
= 69
19
KOMPUTER
adalah alat pengolah data,
dengan konstruksi elektronik,
yang mempunyai, internal storage
bekerja dengan bantuan
Operating System
menurut program yang diberikan kepadanya.
19
Operating System
adalah software yang dibuat untuk
mengendalikan bekerjanya komputer.
Semua pekerjaan didalam komputer dikendalikan
(di-control) oleh Operating System
Beberapa Contoh Operating System :
DOS
WINDOWS
WINDOWS NT
UNIX
LINUX
XENIX
MACINTOSH
SUN SOLARIS
19
KOMPUTER
adalah alat pengolah data,
dengan konstruksi elektronik,
yang mempunyai, internal storage
bekerja dengan bantuan
Operating System
menurut program yang diberikan kepadanya.
19
PROGRAM
adalah kumpulan
instruksi-instruksi
yang diberikan kepada komputer
untuk menyelesaikan suatu tugas
= Langkah-langkah
dalam Alagoritma
Instruksi-instruksi
harus tersusun
secara logis
Memerlukan
LOGIKA
yang benar
19
PROGRAM
ditulis dalam suatu bahasa yang disebut Bahasa
Pemrograman (Programming Language)
Contoh Bahasa
Pemrograman :
Bahaca C ini yang kita
gunakan untuk
menerapkan Algoritma
di komputer
COBOL
FORTRAN
Pascal
BASIC
C
Java
dan sebagainya
19
Bersambung ke :
2.01
1
13