download

Matakuliah
Tahun
Versi
: T0616 / Algoritma dan Pemrograman
: 2007
: 1/0
Pertemuan 05-06
Pengembangan Algoritma
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mengembangkan algoritma untuk
memecahkan masalah (C2)
2
Outline Materi
Pengembangan Algoritma
• Definisi Masalah
• Merancang Solusi Algoritma
• Menguji Algoritma
3
Definisi Masalah
•
Untuk memahami definisi suatu masalah,
maka kita perlu berulang kali membaca
permasalahan tersebut. Pembacaan ini
dilakukan sampai mengerti secara penuh apa
yang dibutuhkan.
•
Untuk melakukan analisis awal, maka masalah
perlu dibagi kedalam tiga komponen yaitu :
1. Input : data yang disediakan untuk menyelesaikan
masalah
2. Output : data keluaran yang diperlukan
3. Process : daftar aksi yang diperlukan untuk
menghasilkan output
4
Merancang algoritma solusi
• Setelah melakukan definisi masalah, maka
langkah selanjutnya adalah bagaimana
merancang algoritma solusi.
• Untuk merancang algoritma solusi
digunakan pseudocode.
• Dari proses yang ada, maka akan diubah
kedalam solusi algoritma, dengan
menggunakan pseudocode
5
Contoh
• Sebuah program dibutuhkan untuk
membaca dua bilangan, menghitung
jumlah, selisih, hasil kali, dan hasil bagi.
Hasil akhir perhitungan akan ditampilkan
ke layar.
6
Contoh
• Definisi masalah
Input
Bil_1
Bil_2
Proses
baca bil_1,bil_2
Hitung jumlah
Hitung selisih
Hitung kali
Hitung bagi
Cetak jumlah
Cetak selisih
Cetak kali
Cetak bagi
Output
Jumlah
Selisih
Kali
Bagi
7
Contoh
• Algoritma solusi:
Program_Kalkulator
BEGIN
baca bil_1, bil_2
jumlah = bil_1 + bil_2
selisih = bil_1 – bil_2
kali = bil_1 * bil_2
bagi = bil_1 / bil_2
cetak jumlah, selisih, kali, bagi
END
8
Cek algoritma solusi
• Setelah algoritma solusi dibuat, maka
algoritma tersebut harus di-cek (diperiksa)
untuk mengetahui apakah algoritma solusi
yang dirancang sudah benar atau belum.
• Pengecekan ini biasanya disebut dengan
desk checking
9
Cek algoritma solusi
•
Ada 6 langkah mudah untuk melakukan pemeriksaan
(checking) terhadap algoritma:
1.
2.
3.
4.
5.
6.
Pilih data sederhana yang valid. Dua atau tiga data
biasanya sudah mencukupi.
Tentukan hasil output yang diharapkan untuk setiap set
data.
Buatlah tabel berisi nama variabel yang ada pada algoritma
tersebut di sebuah kertas
Jalankan test satu persatu mengikuti algoritma yang ada,
mulai dari perintah / statement pertama sampai dengan
selesai
Ulangi langkah tersebut menggunakan set data yang lain.
Cek apakah hasil dari langkah kelima, sesuai dengan hasil
yang diharapkan di langkah kedua
10
Contoh
• Desk Checking:
– Data input:
Data 1 Data 2
Bil_1
10
20
Bil_2
5
10
11
Contoh
• Desk Checking
– Hasil yang diharapkan:
Data 1
Data 2
Jumlah
15
30
Selisih
5
10
Kali
50
200
Bagi
2
2
12
Contoh
• Tabel desk checking
cetak
Data ke - 1
Baca
jumlah
selisih
kali
bagi
cetak
Data ke-2
Baca
jumlah
selisih
kali
bagi
cetak
bil_1
10
bil_2
jumlah
selisih
kali
bagi
5
15
5
50
2
ya
20
ya
ya
ya
10
30
10
200
2
ya
ya
ya
ya
13
Contoh
• Mengkonversikan derajat Celcius ke
Reamur dan Fahrenheit. Yang dibaca
adalah derajat Celcius. Data dibaca
sebanyak 15 kali.
14
Contoh – Jawaban
• Definisi Masalah
Input
Proses
Output
Celcius Baca Celcius
Celcius,
(15 Kali) Hitung Reamur
Reamur,
Hitung Fahrenheit
Fahrenheit
Cetak Celcius, Reamur dan
Fahrenheit
15
Contoh – Jawaban
• Algoritma Solusi
X=0
DOWHILE X<15
X=X+1
Baca Celcius
Reamur = 4/5 * Celcius
Fahrenheit =9/5*Celcius + 32
Cetak celcius, reamur, fahrenheit
ENDDO
16
Contoh – Jawaban
• Desk Checking
– Data Masukan
Celcius
Data 1
100
Data 2
50
– Hasil yang diharapkan
Reamur
Fahrenheit
Data 1
80
212
Data 2
40
122
17
Contoh – Jawaban
• Tabel Desk Checking
x
Do while Celcius
Reamur
Fahrenheit
80
ya
212
ya
40
ya
122
ya
Data 1
0
Do While
Baca
Hitung
Cetak
Data 2
True
100
ya
1
Do While
Baca
Hitung
Cetak
True
50
ya
18
Algoritma menggunakan Selection
Susunlah algoritma untuk membaca tiga karakter
kemudian susunlah ketiga nilai karakter tersebut
dengan urutan menaik (ascending) dan tampilkan ketiga
karakter hasil sort tersebut
19
Jawaban
• Definisi Masalah
Input
Kar_1
Kar_2
Kar_3
Proses
Output
baca Kar_1, Kar_2, Kar_3 Kar_1
sort tiga karakter tersebut Kar_2
cetak hasil sort
Kar_3
20
Jawaban
•
Algoritma Solusi
Baca_Tiga_Karakter
baca Kar_1, Kar_2, Kar_3
If Kar_1 > Kar_2 THEN
temp = Kar_1
Kar_1 = Kar_2
Kar_2 = temp
ENDIF
If Kar_2 > Kar_3 THEN
temp = Kar_2
Kar_2 = Kar_3
Kar_3 = temp
ENDIF
If Kar_1>Kar_2 THEN
temp = Kar_1
Kar_1 = Kar_2
Kar_2 = temp
ENDIF
cetak Kar_1, Kar_2, Kar_3
END
21
Desk Checking
• Data Input :
Kar_1
Kar_2
Kar_3
Data 1
k
b
g
Data 2
z
s
a
22
Desk checking
• Hasil yang diharapkan
Kar_1
Kar_2
Kar_3
Data 1
b
g
k
Data 2
a
s
z
23
Desk Checking
• Tabel
Kar_1 Kar_2 Kar_3
Data 1
Baca
IF
IF
IF
Cetak
Data 2
Baca
IF
IF
IF
Cetak
k
b
b
k
g
g
ya
ya
ya
z
s
s
z
a
s
ya
a
a
ya
k
z
temp
IF dijalankan ?
k
k
ya
ya
tidak
z
z
s
ya
ya
ya
ya
24
Latihan
• Buatlah algoritma yang dapat menerima input
dari user berupa harga barang dan kode
barang. Program akan menghitung diskon
yang didapat sesuai dengan kodenya.
Kemudian tampilkan harga awal, besar
diskon, dan harga yang harus dibayar.
Adapun ketentuan adalah sbb:
25
Latihan
• Sebuah program dibutuhkan untuk
membaca input berupa pajak (dalam
persentase) dan harga lima buah barang.
Program harus menghitung biaya yang
diperlukan untuk membayar kelima barang
tersebut bersama dengan pajaknya.
• Buatlah algoritma program tersebut
dengan menggunakan pseudocode.
26
Latihan
•
Buatlah algoritma yang dapat menerima input
bilangan dari user, dan kemudian membuat
tampilan sesuai dengan bilangan yang
dimasukkan
Contoh :
Masukkan bilangan : 5
Bintang Anda :
1
12
123
1234
12345
27
Latihan
• Jelaskan algoritma berikut
• Lakukan desk checking untuk nilai
bunga = 100, 200, 520
IF saldo < $300 THEN
bunga = 0.05
ELSE
bunga = 0.1
ENDIF
28
Latihan
• Jelaskan algoritma berikut
• Lakukan desk checking untuk nilai
celcius = 37, 100, 120 dan -10, 20, 1000
X=0
REPEAT
X=X+1
baca celcius
reamur = 4/5*celcius
fahrenheit=9/5*celcius + 32
cetak celcius, reamur, fahrenheit
UNTIL x=3
29
Latihan
• Jelaskan algoritma berikut
• Lakukan desk checking untuk nilai
Record_code = A A B C A B C C C D
IF record_code=‘A’ THEN
increment counter_A
ELSE
IF record_code=‘B’ THEN
increment counter_B
ELSE
IF record_code=‘C’ THEN
increment counter _C
ELSE
increment error_counter
ENDIF
ENDIF
ENDIF
30