Menuliskan Algoritma • Algoritma dapat dituliskan dengan berbagai cara: – Teks

Download Report

Transcript Menuliskan Algoritma • Algoritma dapat dituliskan dengan berbagai cara: – Teks

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)
Contoh Persoalan 1
• Buatlah algoritma untuk menentukan
apakah suatu bilangan bulat positif adalah
bilangan genap atau bilangan gasal.
Contoh Algoritma 1:
Menggunakan Teks Bebas
1. Bagi bilangan dengan bilangan 2
2. 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 gasal.
Contoh Algoritma 2:
Menggunakan Pseudocode
Program Menentukan_Bilangan
{ Menentukan apakah suatu bilangan bulat positif adalah bilangan
gasal 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 2
if m = 0 then output (n, ‘ adalah bilangan genap’)
else { m = 1 } output (n, ‘ adalah bilangan gasal’)
Contoh Algoritma 3:
Menggunakan Flowchart
Kamus:
n : integer > 0
m : integer > 0
Start
input (n)
m = n mod 2
{ Hitung sisa
bagi n
dengan 2 }
A
m=0
Tidak
Ya
output
(‘Genap’)
output
(‘Gasal’
)
End
A
Ke slide 26
Bagan Alir (Flowchart)
• Bagan alir (flowchart): skema grafis untuk
merepresentasikan algoritma
• Kelebihan:
– Bentuk grafis memudahkan interpretasi dan pembacaan
– Relatif mudah dimengerti
– Relatif mudah untuk dibuat
• Kekurangan:
– 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.
Simbol Flowchart
SIMBOL
NAMA
FUNGSI
Terminator
Permulaan/akhir
algoritma
Arah aliran program
Garis alir / flow
line
Preparation
Proses
Proses
inisialisasi/pemberi
an harga awal
Proses
perhitungan/proses
pengolahan data
Simbol Flowchart
SIMBOL
NAMA
FUNGSI
Input/output data
Proses input/output
data, parameter,
informasi
Predefined process/ Permulaan sub
program/proses
subprogram
menjalankan sub
program
Decision
Perbandingan
pernyataan,
penyeleksian data
yang memberikan
pilihan untuk langkah
selanjutnya
Simbol Flowchart
SIMBOL
Dll.
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
Dari Spesifikasi Masalah ke Flowchart
Contoh Persoalan 2
• Buatlah sebuah algoritma yang membaca
sebuah harga berupa bilangan bulat yang
mewakili pengukuran suhu air (dalam
derajat Celcius) pada tekanan atmosfir
dan menuliskan wujud air pada temperatur
dan tekanan tersebut:
– Jika suhu0 derajat, maka wujud air: beku
– Jika suhu>0 derajat dan 100 derajat, maka
wujud air: cair
– Jika suhu<100 derajat, maka wujud air: uap
Contoh Persoalan 2
Start
Kamus
T : integer {suhu air}
input(T)
T0
T>100
T
0<T100
output(‘Beku’)
output(‘Cair’)
End
output(‘Uap’)
Dari Spesifikasi Masalah ke Flowchart
Contoh Persoalan 3
• Buatlah sebuah algoritma yang membaca
sebuah nilai N yang merupakan integer
positif > 0 dan menuliskan output
1,2,3…,N berderet ke bawah, contoh: N =
4
1
2
3
4
Contoh Persoalan
3
Start
input(N)
Kamus:
N : integer > 0 {input bilangan}
I : integer > 0 {counter}
I=1
output(I)
I=I+1
Tidak
I>N
Ya
End
Latihan
• Buatlah algoritma dalam bentuk flowchart untuk
persoalan-persoalan berikut:
– Menentukan apakah suatu huruf adalah huruf ‘A’ atau bukan.
– Menentukan rangking (urutan) dari 3 buah bilangan bulat
yang berbeda dan menuliskan urutannya secara menaik.
– Menentukan apakah masukan tahun (bilangan bulat positif)
adalah tahun kabisat atau bukan.
• Buatlah algoritma untuk menghitung nilai faktorial
dari masukan sebuah bilangan bulat positif atau 0.
• Buat algoritma untuk menghitung jumlah N suku dari
deret aritmatika berikut: Sn = 3 + 7 + 11 + …… + (4n1)
• Buat algoritma untuk mencetak pasangan nilai X dan
Y di mana hubungan antara X dan Y memenuhi
persamaan Y = X3 – 2X +1 dan nilai x berubah dari –
10 sampai 10.