`1` `a` - Telkom University

advertisement
Notasi Algoritma
& Tipe Data
Dasar Teknik Komputer & Pemrograman
Dasar Penyusunan Algoritma
• Ada beberapa hal yang perlu diperhatikan dalam menyusun
suatu algoritma *
1. Finitness. Menyatakan bahwa suatu algoritma harus
berakhir untuk semua kondisi setelah memproses sejumlah
langkah.
2. Definitness. Menyatakan bahwa setiap langkah harus
dinyatakan dengan jelas (tidak rancu atau tidak mendua arti)
3. Masukan. Setiap algoritma bisa memiliki masukan atau tidak
memiliki masukan.
4. Keluaran. Setiap algoritma memiliki keluaran. Keluaran
merupakan besaran yang berhubungan dengan masukan.
5. Efektifitas. Setiap algoritma diharapkan bersifat efektif,
dalam arti semua operasi yang dilaksanakan oleh algoritma
haruslah sederhana dan dapat dikerjakan dalam waktu
terbatas.
* Knuth(1973, hal. 4) dan Horowitz dkk. (1999, hal.1)
Jenis Notasi Algoritma
Algoritma dapat dituangkan dalam bentuk
gambar/bagan atau tulisan
A. Flowchart
B. Pseudocode
A. Flowchart (Diagram Alir)
• Merupakan diagram yang menggunakan simbol
dan garis untuk menggambarkan urutan proses
suatu algoritma
• Simbol standar 
Contoh diagram alir
B. Pseudo-code
• Pseudo = Bayangan
• Code = Program
• Pseudo-code menggunakan instruksi
tulisan yang mirip dengan instruksi bahasa
pemrograman
Pedoman menyusun Pseudo-code
1. Notasi ← dipakai untuk memberikan nilai ke
suatu variabel
hasil ← 2
memberikan nilai ‘2’ ke variabel hasil
2. hasil ← 2 + 1
memberikan hasil penjumlahan bilangan 2 dan 1
ke variabel hasil.
3. Variabel dengan huruf kecil berarti variabel nonlarik, variabel dengan huruf kapital berarti
variabel larik (array)
Lanjutan ..
4. Penjorokan ke kanan, digunakan untuk
menuliskan pernyataan-pernyataan yang berada
dalam suatu struktur blok.
if x > 0 then
pernyataan-1
pernyataan-2
end-if
5. Simbol // digunakan untuk menyatakan komentar
6. Notasi masukkan () dan tampilkan () mewakili
perintah untuk memperoleh masukan dan
menyajikan keluaran
input (a,b)
output (jumlah)
Lanjutan ...
7. Tanda <, >, ≤, ≥, =, ≠
8. Notasi A [i] menyatakan elemen ke-I pada larik A.
nilai terkecil untuk I adalah nol (0). Untuk larik 2
dimensi akan dinotasikan A[i,j]
i menyatakan baris dan j menyatakan kolom
9. Notasi JumlahElemen(A) menyatakan ekspresi untuk
memperoleh jumlah elemen larik A.
10. Bentuk
while <kondisi>
pernyataan-1
…
pernyataan-N
end-while
for <kondisi>
pernyataan-1
...
end-for
11. Penulisan Prosedur
PROSEDUR namaProsedur(daftarparameter)
Pernyataan-1
…
Pernyataan-2
NILAI-BALIK
AKHIR PROSEDUR
Struktur Teks Algoritma
• Bagian Judul
adalah bagian yang terdiri dari nama program dan
penjelasan (spesifikasi) tentang program tersebut.
• Bagian Deklarasi
merupakan bagian yang digunakan untuk
mengumumkan semua nama/variabel yang
dipakai dalam algoritma beserta propertinya
(misal: tipe)
• Bagian Algoritma
Merupakan inti dari sebuah program yang berisi
instruksi-instruksi pemecahan masalah dalam
notasi pseudo-code
Program mencetak Hello World
PROGRAM HelloWorld
{ Program untuk mencetak “Hello world”.
Masukan program ini tidak ada. Keluarannya
adalah tulisan ‘Hello, world’ tercetak di layar.}
DEKLARASI
{ tidak ada }
ALGORITMA
output(“Hello, world”)
Program penjumlahan 2 bilangan
PROGRAM Penjumlahan
{ Program untuk menjumlahkan dua bilangan.
Masukan : bilangan a dan bilangan b.
Keluarannya adalah hasil penjumlahan.}
DEKLARASI
a, b, hasil : integer
ALGORITMA
input(a)
input(b)
hasil  a+b
output(hasil)
Tipe Data
a. Logika ( boolean )
b. Numerik
– Bilangan Bulat ( integer )
– Pecahan ( real )
c. Karakter ( character )
d. Gabungan Karakter ( string )
Tipe Logika
a. Nama : Boolean
b. Domain : {true, false }
c. Konstanta:
true false
d. Operator : Operator logika
Tabel Kebenaran Operator
Boolean
Tipe Numerik
a. Nama : integer { untuk bilangan bulat }
b. Domain : …,-3,-2,-1,0,1,2,3,…
c. Konstanta:
4
-120
10
0
-3
a. Nama : real { untuk bilangan pecahan }
b. Domain : semua bilangan pecahan
c. Konstanta:
4.0
-1/20
10.99
0.1
-3/4
Operator Numerik
No Nama
Arti
Tipe Hasil operasi
1
*
Kali
Tergantung operand
2
/
Bagi
Selalu real
3
+
Tambah
Tergantung operand
4
-
Kurang
Tergantung operand
5
^
Pangkat
Tergantung operand
6
abs
Harga mutlak
Tergantung operand
Operator Numerik(lanj..)
Khusus Integer :  Operator div ( hasil bagi )
 Operator mod (sisa bagi )
 operand dan hasil selalu integer
Contoh 1
3 div 2 = 1
5 div 5 = 1
0 div 2 = 0
5 div 0 = error
1 div 0.5 = error
0.5 div 0.5 = error
Contoh 2
3 mod 2 =1
5 mod 5 = 0
0 mod 2 = 0
5 mod 0 = error
1 mod 0.5 = error
0.5 mod 0.5 = error
Operator Tipe Numerik ( lanj)
2. Urutan prioritas :
a. Kurung didahulukan
b. *, /, div, mod sejajar.
c. + dan – sejajar
d. Jika muncul berurutan & sejajar,
mulai dari kiri
20
1 – 2 * 3 div 4 mod 5 + 6
= 1 – 6 div 4 mod 5 + 6
= 1 – 1 mod 5 + 6
= 1–1+6
= 0+6
= 6
Operator Tipe Numerik ( lanj)
3. Dalam algoritma, kedua operand harus bertipe
sama. Dalam Pascal, tidak harus sama.
Contoh : a,b,c integer, x,y real, bol1 : boolean
a div 2
21
a div 2.0
{ valid}
{ tidak valid / error}
a/b
{ valid}
x+ a
{ tidak valid}
x div x
{ tidak valid / error}
(x<y)
{ valid}
bol1 - true
{ tidak valid / error}
Operator Tipe Numerik ( lanj)
4. Variabel yang menyimpan hasil operasi harus
memiliki tipe sama dengan hasil operasi. Dalam
Pascal : jika hasil integer bisa disimpan pada
variabel real.
Contoh : a,b,c integer, x,y real, bol1 : boolean
a  a div 2
22
x  a div 2
{ valid}
{ tidak valid / error}
xa/b
{ valid}
a  a div 2
{ valid}
xa+x
{ tidak valid / error}
bol1  ( x < y )
{ valid}
bol1  ( a – b )
{ tidak valid / error}
Operator Relasi Tipe Numerik
No Nama
Arti
Contoh
1
<
Lebih kecil
10 < 5
2
≤
Lebih kecil atau
sama dengan
10 ≤ (9+1) {true}
10 ≤ 9
{false}
3
>
Lebih besar
(1+5)>(2-3) {true}
4
≥
Lebih besar atau
sama dengan
0 ≥ (1)
10 ≥ 9
{false}
{true}
5
=
Sama dengan
0 = (0-0)
{true}
6

Tidak sama dengan
10(11-1)
{false}
23
{false }
Tipe karakter
a. Nama : character
b. Domain : karakter yang dikenal komputer
c. Konstanta:
‘K’ ‘k’ ‘1’ ‘a’ ‘0’ ‘O’ ‘o’
d. Operator : Operator relasi / perbandingan
No Nama
Arti
Contoh
1
<
Lebih kecil
‘b’ < ‘a’
2
≤
Lebih kecil atau
sama dengan
3
4
>
≥
Lebih besar
Lebih besar atau
sama dengan
5
=
Sama dengan
‘a’
‘a’
‘a’
‘a’
‘a’
‘a’
6

≤
≤
>
≥
≥
=
‘b’
‘A’
‘A’
‘b’
‘B’
‘a’
Tidak sama dengan ‘a’  ‘a’
{salah }
{betul}
{salah}
{betul}
{salah}
{betul}
{ betul}
24
{salah}
Tipe String
a. Nama : string
b. Domain : kumpulan karakter yang dikenal
komputer
c. Konstanta:
‘Kaki’ ‘kakak’ ‘111060001’ ‘aki’ ‘007’ ‘O’
d. Operator : Operator Kontruksi
No Nama
Arti
Contoh
1

Tambah 1 karakter ‘batu’  ‘1’
di akhir string
 ‘batu1’
2

Tambah 1 karakter ‘atu’  ‘b’
di awal string
 ‘batu’
3
&
Gabungkan string
pertama & kedua
‘aku’ & ‘ cinta’
 ‘aku cinta’
25
Contoh #1
• Buat algoritma program dan flowchart
untuk menampilkan “D3 Teknik
Telekomunikasi”
PROGRAM D3TT
{ Program untuk menampilkan ‘D3 Teknik
Telekomunikasi’.
Masukan : -.
Keluarannya : “D3 Teknik Telekomunikasi”}
DEKLARASI
ALGORITMA
output(“D3 Teknik Telekomunikasi”)
Contoh #2
• Buat algoritma program dan flowchart
untuk menampilkan bilangan bulat yang
diinputkan pengguna
PROGRAM D3TT
{ Program untuk menampilkan bilangan bulat
yang diinputkan pengguna
Masukan : bilangan x
Keluarannya : bilangan x }
DEKLARASI
x : integer
ALGORITMA
input(x)
output(x)
Contoh #3
Buat algoritma dan flowchart untuk
menampilkan hasil perkalian 3*5
PROGRAM perkalian
{ Program untuk hasil perkalian 3*5
Masukan :
Keluarannya : hasil perkalian 3*5}
DEKLARASI
hasil : integer
ALGORITMA
hasil 3*5
output(hasil)
Contoh #4
Buat algoritma dan flowchart untuk
menampilkan hasil perhitungan luas
persegi panjang. Nilai panjang dan lebar
sesuai dengan yang diinputkan pengguna
PROGRAM luasPersegiPanjang
{ Program untuk menampilkan perhitungan luas
persegi panjang
Masukan : panjang, lebar
Keluarannya : hasil perhitungan luas}
DEKLARASI
panjang : integer
lebar : integer
luas : integer
ALGORITMA
input(panjang)
input(lebar)
luas panjang * lebar
output(luas)
Download