CPD PenyelesaianMasalah Java 10 11dis2016
CPD PenyelesaianMasalah Java 10 11dis2016
dan Algoritma
Menggunakan Java
Mohd Azam Osman
Maziani Sabudin
12/11/16
Penerangan Modul
Modul
ini
menekankan
strategi
penyelesaian
masalah
dengan
menggunakan teknik yang betul serta
mereka bentuk penyelesaian masalah
melalui
algoritma.
Modul
ini
juga
mengasah
kemahiran
pengaturcaraan
dengan menterjemahkan algoritma kepada
bahasa pengaturcaraan Java.
12/11/16
Hasil Pembelajaran
12/11/16
Rangka kursus
Hari 1:
12/11/16
Rangka kursus
Hari
2:
12/11/16
Rangka kursus
Penggunaan Perisian:
Pengkompil Java
Eclipse IDE (Integrated Development
Environment)
Praktikal:
Latihan penyelesaian masalah.
Pembangunan atur cara menggunakan bahasa
pengaturcaraan Java.
12/11/16
Rangka kursus
12/11/16
Rangka kursus
12/11/16
Penyelesaian
Masalah
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16
Penyelesaian Masalah
12/11/16
10
Penyelesaian Masalah
Output
Input
Proses
Jujukan langkah
amat penting
Y= mc
11
Penyelesaian Masalah
Masalah
Merupakan perkara yang memerlukan
penyelesaian dan pertimbangan serta
kemahiran untuk mendapatkan
keputusan yang tepat.
Penyelesaian
Proses jujukan tindakan yang jelas
tertakrif, dan apabila tindakan ini
dilaksanakan mengikut susunan logik
yang betul, jawapan boleh diperolehi.
CPD Program Computer
Science
12
Penyelesaian Masalah
Proses untuk menukar masalah
kepada satu penyelesaian dengan
menggunakan pengetahuan serta
bergantung kepada keupayaan untuk
memilih strategi, teknik dan alat
yang sesuai, dan akhirnya akan
menghasilkan suatu penyelesaian
yang jelas dan tertakrif dengan baik.
CPD Program Computer
Science
13
Penyelesaian Masalah
Contoh masalah:
Anda mendapati rumput di halaman
rumah anda panjang. Anda
bersetuju untuk mengupah
seseorang untuk memotong rumput
tersebut. Anda perlu mengira upah
dan masa yang diperlukan untuk
melaksana kan tugas tersebut.
CPD Program Computer
Science
14
Penyelesaian Masalah
Langkah-langkah Penyelesaian
Masalah:
1) Spesifikasi Keperluan
2) Analisis Masalah
3) Reka Bentuk
4) Pelaksanaan
5) Pengujian dan Pengesahsahihan
6) Pendokumenan
CPD Program Computer
Science
15
Penyelesaian Masalah
1) Spesifikasi Keperluan
i. Kenyataan masalah yang jelas dan difahami
ii. Sebutan dan anggapan kabur diperjelaskan
iii. Kekangan dikenal pasti
Tentukan keperluan masalah dan memahami
masalah dengan jelas.
Kira kos upah dan masa untuk memotong rumput.
Perlu maklumat seperti panjang dan lebar tanah,
kadar upah dan kadar masa potong rumput.
Perlu hasilkan keluasan tanah, masa diperlukan
untuk memotongCPD
rumput
dan kos.
Program Computer
Science
16
Penyelesaian Masalah
2) Analisis Masalah
i.
ii.
iii.
iv.
17
Penyelesaian Masalah
3) Reka Bentuk
i.
Keperluan algoritma:
Ada input
Ada output
Tidak kabur
Tepat dan dapat selesaikan masalah
Terbatas berhenti pada masa yang terhingga
Berkesan
Bersifat am
CPD Program Computer
Science
18
Penyelesaian Masalah
Pseudokod
Bahasa separa formal dan tatabahasa
terhad untuk mereka bentuk dan
menerangkan algoritma.
Mengandungi kenyataan tindakan yang
tepat, mudah dan jelas.
1. Dapatkan panjang, lebar, kadar potong
dan kadar kos
2. Kira luas laman
3. Kira kos
4. Kira masa
5. Lapor kos dan masa
CPD Program Computer
Science
19
Penyelesaian Masalah
Pseudokod
mula
1. Input Panjang, Lebar, Kadar_Potong,
Kadar_Upah
2. Luas_Laman = Panjang * Lebar
3. Kos = Luas_Laman / Kadar_Upah
4. Masa = (Luas_Laman *
Kadar_Potong) / 60
5. Output Kos dan Masa
tamat
CPD Program Computer
Science
20
Penyelesaian Masalah
Carta Alir
Perwakilan algoritma secara bergrafik
yang terdiri daripada simbol geometri
yang dihubungkan dengan talian aliran.
Menunjukkan dengan jelas bagaimana
struktur kawalan beroperasi.
21
Penyelesaian Masalah
Carta Alir - Simbol
Grafik
mula/tamat
storan
proses
aliran
kawalan
input / output
sambungan
muka surat sama
sambungan
muka surat lain
syarat
22
Penyelesaian Masalah
Carta Alir
mula
tamat
Penyelesaian Masalah
3) Reka Bentuk
) algoritma mempunyai 3
struktur kawalan:
i. Jujukan
ii. Pilihan
iii. Ulangan
24
Penyelesaian Masalah
3) Reka Bentuk algoritma
i.
Pseudokod
mula
1. input
2. kira
3. output
tamat
CPD Program Computer
Science
mul
a
inpu
t
kira
outpu
t
tam
at
25
Penyelesaian Masalah
3) Reka Bentuk algoritma
ii. Struktur Kawalan Pilihan satu-hala
Pseudokod
Carta Alir
mul
a
mula
input
1. input
2. jika input > 0
2.1 kira hasil
palsu
benar
input
>0
kira hasil
3. output
tamat
CPD Program Computer
Science
outp
ut
tam
at
26
Penyelesaian Masalah
3) Reka Bentuk algoritma
ii. Struktur Kawalan Pilihan dua-hala
Carta Alir
mul
a
Pseudokod
mula
input
1. input
2. jika input > 0
palsu
jika tidak
2.3 output ralat
input
>0
outpu
t ralat
kira hasil
outpu
t
hasil
tamat
CPD Program Computer
Science
benar
tam
at
27
Penyelesaian Masalah
3) Reka Bentuk algoritma
ii. Struktur Kawalan Pilihan Multi-hala
Pseudokod
mul
a
mula
input
1. input
2. jika input > 10
2.1 kira a
jika tidak jika input > 5
2.2 kira b
output
tamat
CPD Program Computer
Science
Carta Alir
palsu
palsu
benar
input
> 10
kira a
inpu benar
t>
kira b
5
outp
ut
tam
at
28
Penyelesaian Masalah
3) Reka Bentuk algoritma
ii. Struktur Kawalan Ulangan
Pseudokod
Carta Alir
mul
a
mula
input
1. input
2. selagi input > 0
2.1 kira
2.2 input
3. output hasil
tamat
CPD Program Computer
Science
outpu
t hasil
tam
at
t>
0
kira
29
Penyelesaian Masalah
4) Pelaksanaan
Proses menukar algoritma kepada atur
cara dengan menggunakan bahasa
pengaturcaraan Java.
ii. Melaksana atur cara Java menggunakan
komputer.
Untuk mendapatkan output yang betul,
perlu mengkompil dan menjalankan atur
cara Java:
i.
30
Penyelesaian Masalah
Keratan Atur cara Java
mula
isytihar
input
proses
output
tamat
Penyelesaian Masalah
5) Pengujian dan Pengesahsahihan
i. Proses menguji sama ada output adalah tepat.
ii. Mengesahkan bahawa atur cara memenuhi
keperluan pengguna.
iii. Uji dengan set data yang komprehensif dan
kritikal.
32
Penyelesaian Masalah
6) Pendokumenan
i.
ii.
iii.
iv.
v.
vi.
33
Struktur Kawalan
Pilihan
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16
34
benar
benar
syarat
syarat
Tindakan 2
Tindakan 1
Tindakan 3
palsu
palsu
Tindakan
Tindakan 2
Tindakan N
Jujukan
Ulangan
Pilihan
CPD Program Computer
Science
35
Pilihan satu-hala
Pilihan dua-hala
Carta Alir
palsu
benar
syarat
kenyataan 2
kenyataan
benar
syarat
kenyataan 1
palsu
ifif(syarat)
(syarat)
kenyataan
kenyataan
ifif(syarat)
(syarat)
kenyataan
kenyataan11
else
else
kenyataan
22
kenyataan
CPD Program Computer
Pseudokod
12/11/16
Science
36
Pilihan satu-hala
Kenyataan
if
Contoh
ContohMasalah:
Masalah:
Menentukan
Menentukan gred
gred
Jika
Jikamarkah
markahlebih
lebih dari
dari 85%
85%maka
makagred
gredialah
ialahA.
A.
set markah 90
jika markah > 85
set gred A
Pseudokod
Atur cara
Nota:
Pemboleh ubah markah perlu di isytihar sebagai jenis integer int
Pemboleh ubah gred perlu di isytihar sebagai jenis aksara char
12/11/16
37
Pilihan satu-hala
markah = 90
Kenyataan
if
expression
palsu
benar
markah > 85
gred = A
Carta Alir
38
Pilihan dua-hala
Kenyataan if
else
Contoh
ContohMasalah:
Masalah:
Menentukan
Menentukan gred
gred
Jika
Jikamarkah
markahlebih
lebih dari
dari 85%
85%maka
makagred
gredialah
ialahAA
Jika
Jikatidak,
tidak, maka
makagred
gred ialah
ialahBB
set markah 90
jika markah > 85
gred ialah A
jika tidak
gred ialah B
Pseudokod
12/11/16
Atur cara
39
Pilihan dua-hala
Kenyataan if
else
markah = 90
expression
palsu
gred = B
benar
markah > 85
gred = A
Carta Alir
40
Pilihan multi-hala
Terdapat
Terdapat masalah
masalahyang
yangmemerlukan
memerlukanbeberapa
beberapa
pilihan
pilihan atau
atausyarat
syarat tertentu
tertentu
Contoh masalah: Tentukan kadar faedah yang
bergantung kepada baki wang akaun.
Jika baki akaun lebih dari RM50,000; kadar faedah
ialah 7%;
jika baki akaun antara RM25,000 - RM49,999; kadar
faedah ialah 5%;
jika baki akaun antara RM1,000 - RM24,999; kadar
faedah ialah 3%;
jika tidak, kadar faedah ialah 0%.
Terdapat
Terdapat44pilihan
pilihan
41
Pilihan multi-hala
Kenyataan if
else
Pseudokod
input baki
jika baki > 50,000
faedah ialah7%
jika tidak jika 25,000 <= baki >=
49,999
faedah ialah 5%
jika tidak jika 1,000 <= baki
>= 24,999
faedah ialah 3%
jika tidak
faedah ialah 0%
12/11/16
42
Pilihan multi-hala
mul
a
Carta Alir
Kenyataan if
else
baki
palsu baki
palsu
25000
25000
<= baki
<=
baki
<= 49999
palsu
benar
>
5000
benar 0
faedah 5
%
faedah
7%
benar
1000
1000 <=
<=
baki
<=
<= 24999
24999
faedah
3%
faedah
0%
12/11/16
tam
at
43
Pilihan multi-hala
Kenyataan if
Pilihan multi-hala
Masalah
Masalahyang
yangmempunyai
mempunyai beberapa
beberapapilihan
pilihanmengikut
mengikut
nilai
nilaipemalar
pemalar(satu
(satunilai)
nilai)
Contoh masalah: Set nama yang sesuai mengikut
digit.
jika digit 1, maka nama satu;
jika digit 2, maka nama dua;
Terdapat
Terdapat44pilihan
pilihan
jika digit 3, maka nama tiga;
jika digit 4, maka nama empat;
jika digit 5, maka nama lima;
jika tidak, tiada nama.
CPD Program Computer
Science
45
Pilihan multi-hala
Pseudokod
12/11/16
Kenyataan if
else
input digit
jika digit = 1
nama ialah satu
jika tidak jika digit = 2
nama ialah dua
jika tidak jika digit = 3
nama ialah tiga
jika tidak jika digit = 4
nama ialah
empat
jika tidak jika
digit = 5
nama
ialah lima
CPD Program
jika Computer
tidak
46
Science
Pilihan multi-hala
mul
a
Carta Alir
Kenyataan if
else
digit
palsu
benar
satu
1
palsu
benar
dua
2
palsu
benar
12/11/16
tiga
tam
at
47
Pilihan multi-hala
Kenyataan
switch
Menguji nilai
pemalar
int digit = 3;
String = nama_digit = ;
switch (digit)
{
case 1 : nama_digit = satu; break;
case 2 : nama_digit = dua; break;
case 3 : nama_digit = tiga; break;
case 4 : nama_digit = empat; break;
case 5 : nama_digit = lima; break;
default : nama_digit = ; break;
}
CPD Program Computer
Science
48
Pilihan multi-hala
int digit = 3;
String = nama_digit = ;
if (digit == 1)
nama_digit = satu;
else if (digit == 2)
nama_digit = dua;
else if (digit == 3)
nama_digit = tiga;
else if (digit == 4)
nama_digit = empat;
else if (digit == 5)
nama_digit = lima;
else
nama_digit =
Kenyataan if
else
50
Kenyataan Blok
Laksana
lebih
if (syarat)
Laksana
lebihdari
darisatu
satu kenyataan
kenyataan{{ }}
{
kenyataan 1;
kenyataan 2;
}
else
{
kenyataan 3;
kenyataan 4;
}
51
Kenyataan Blok
Selepas ungkapan if else
terdapat lebih dari satu
kenyataan.
if (hours > 30.0)
{
wages = 30.0 * rate + 1.5 * rate * (hours 30);
System.out.println("You have worked more
than 30 hours);
System.out.println("Your income: RM +
wages);
}
else
{
wages = hours * rate;
System.out.println("You have worked less
than 30 hours); CPD Program Computer
52
Science
System.out.println("Your income: RM +
Latihan
Tulis
Tulis atur
atur cara
cara untuk
untuk simulasi
simulasi kalkulator
kalkulator yang
yang
mudah.
mudah.
Ia
Ia menerima
menerima 22 nilai
nilai integer
integer dan
dan satu
satu nilai
nilai
aksara.
aksara.
Jika
Jika aksara
aksara adalah
adalah +,
+, maka
maka lakukan
lakukan
operasi
operasi campur
campur untuk
untuk 22 nilai
nilai integer
integer dan
dan
papar
papar hasilnya.
hasilnya.
Jika
Jika aksara
aksara adalah
adalah -,
-, maka
maka lakukan
lakukan operasi
operasi
tolak
tolak untuk
untuk 22 nilai
nilai integer
integer dan
dan papar
papar
hasilnya.
hasilnya.
Jika
Jika aksara
aksara adalah
adalah *,
*, maka
maka lakukan
lakukan operasi
operasi
darab
darab untuk
untuk 22 nilai
nilai integer
integer dan
dan papar
papar
CPD Program Computer
hasilnya.
53
hasilnya.
Science
Struktur Kawalan
Ulangan
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16
54
benar
benar
syarat
syarat
Tindakan 2
Tindakan 1
Tindakan 3
palsu
palsu
Tindakan
Tindakan 2
Tindakan N
Jujukan
Ulangan
Pilihan
CPD Program Computer
Science
55
kenyataan
benar
ungkapan
kenyataan
benar
ungkapan
palsu
palsu
while
do .. while
CPD Program Computer
Science
56
57
Algoritma: pseudokod
1. Input 5 nombor integer
2. Jumlah semua nombor
3. Kira purata
58
s
jumla
h dan
purat
Bagaimana
Bagaimanauntuk
untukdapatkan
dapatkannilai
nilaipurata
puratabagi
bagi100
100atau
atau1000
1000
a
nombor
nomborinteger?
integer?
60
while (ungkapan)
kenyataan;
61
Carta Alir
purata =
jumlah + bil
jumlah
purata
kaunter
0,
jumlah
0,
purata
0.0
bil
palsu
kaunte
r < bil
benar
no
jumlah = jumlah
+ no kaunter + 1
62 Computer
CPD Program
Science
pseudokod
63
64
Kawalan Pembilang
int pembilang = 1;
while ( pembilang <= 100)
{
System.out.println(Ulangan
ke : + pembilang);
pembilang++;
}
Mengetahui
Mengetahuibilangan
bilanganulangan
ulangan
CPD Program Computer
65
Science
005510
1015
1520
20
5510
1015
1525
25
66
do
kenyataan;
while (ungkapan);
67
005510
1015
1520
20
21
21
68
nilai awal
for
for(nilai
(nilaiawal;
awal;ungkapan;
ungkapan;kemaskini
kemaskininilai)
nilai)
kenyataan;
kenyataan;
benar
ungkapan
kenyataan
kemaskini
nilai
palsu
69
Nilai awal
Syarat
ulangan
Kemaskini
nilai
0 1 2 3 4 5 6 7
8 9
70
10
9
71
purata =
jumlah + bil
jumlah
purata
palsu
Nilai awal
Syarat ulangan kemaskini
benar
no
jumlah = jumlah
+ no kaunter + 1
72 Computer
CPD Program
Science
74
jum
digit
1729
172
17
11
18
19
19
75
76
Tatasusunan
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16
77
Tatasusunan
Pengenala
Pengenala
n
n
78
Tatasusunan
Pengena
Pengena
lan
lan
79
Tatasusunan
Isytihar dan Nilai awal
Isytihar dan Nilai awal
Tatasusunan
Tatasusunan
Jenis
tatasusunan
Nama
tatasusunan
Jenis
elemen
Saiz
Nilai awal
0
indeks
80
Tatasusunan
Isytihar dan Nilai awal
Isytihar dan Nilai awal
Tatasusunan
Tatasusunan
int[ ] kuasadua = {0, 1, 4, 9,
16};
Tatasusunan
mengandungi 5
data berjenis
integer. Semua
elemen dinilai
awal dengan
nilai 0, 1, 4, 9
dan 16.
0
3
0
1
4
indeks
2
4
16
elemen
81
Tatasusunan
Isytihar dan Nilai awal
Isytihar dan Nilai awal
Tatasusunan
Tatasusunan
String[ ] kawan = {Faiz,Siti,
TatasusunanAhmad};
indeks
mengandungi 3
0
1
data berjenis
2
Faiz
Siti
Ahma
rentetan. Semua
d
elemen dinilai
awal dengan
elemen
nilai Faiz, Siti dan
String[ ] nama = new
Ahmad.
String[3];
Tatasusunan
mengandungi 3 data berjenis
rentetan. Semua elemen dinilai awal
dengan null. CPD Program Computer
Science
82
Tatasusunan
Isytihar dan Nilai awal
Isytihar dan Nilai awal
Tatasusunan
Tatasusunan
Nilai awal dengan
double[ ] nilai = new double[10];
0.0
0
1
2
3
4
5
6
7 0.08 0.0 9
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0
indeks
12.5
99.9
1
25.0
2
83
Tatasusunan
Mencapai elemen
Mencapai elemen
Tatasusunan
Tatasusunan
0
4
0
10
1
24
2
3
kurungan untuk
capai elemen
senarai[4] =
dalam
CPD Program
Computer
10;
tatasusunan Science
84
Tatasusunan
Mencapai elemen
Mencapai elemen
Tatasusunan
Tatasusunan
int [ ] senarai = {1, 2 ,3, 4, 5, 6, 7, 8, 9, 10};
15
senarai[0] = senarai[4] + senarai[9];
1
15
5
12
10
12
15
85
Tatasusunan
0
15
12
14
12
Papar elemen
Papar elemen
8
9
Tatasusunan
Tatasusunan
senarai[0] =
senarai[0] 1;
10
10
System.out.println(sen
arai[0]);
System.out.println(sen
arai[3]);
System.out.println(sen
arai[9]);
14
4
10
Tatasusunan
0
14
12
Penggunaan
Penggunaan
Tatasusunan
Tatasusunan
7
8
9
Mengira jumlah:
int jumlah = 0;
for (i = 0; i < 10; i++)
jumlah = jumlah +
senarai[i];
Mengira padanan:
int bilpadan = 0; int
nilai = 8;
for (i = 0; i < 10; i++)
if (nilai ==
senarai[i])
10
Mencari nilai:
int nilai = 8;
for (i = 0; i < 10;
i++)
if (nilai ==
senarai[i])
{
System.out.print(Nombor
+ nilai);
System.out.print(Indeks
+ i);
}
CPD Program Computer
Science
87
Fungsi
Method
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
88
Fungsi/method
Method merupakan subatur cara yang
mengandungi jujukan tindakan atau
arahan untuk menyelesaikan masalah
tertentu.
Objektif: Membahagikan atur cara
kompleks kepada modul-modul yang kecil,
mudah, tak bersandar, dan dilaksanakan
secara individu dan digunakan berulangulang.
CPD Program Computer
Science
89
Fungsi/method
Contoh: main memanggil method
Math.pow untuk melaksanakan 23
dan kembalikan hasilnya kepada
main.
public static void main(String[ ] args)
{
double z = Math.pow(2, 3);
}
CPD Program Computer
Science
90
Fungsi/method
Aliran perlaksanaan panggilan method
main
Hantar 2
dan 3
kepada
Math.pow
2, 3
Nilai
paramet
er
Math.pow
Math.pow
Laksana 23
Tunggu
8
Hantar hasil
main terima
hasil
CPD Program Computer
Science
91
Nilai
dihantar
method
Math.pow
sebagai kotak
Fungsi/method
Contoh masalah: method
untuk mengira isipadu
kuboid.
Jenis pemboleh ubah parameter
92
Fungsi/method
Contoh masalah: method
untuk mengira isipadu
kuboid.
public class Kiub
{
public static void main (String[ ] arg)
{
double hasil1 = kuboid(2);
double hasil2 = kuboid(10);
System.out.println(Kuboid 1 + hasil1);
System.out.println(Kuboid 2 + hasil2);
}
93
Fungsi/method
Apakah hasil dari panggilan
misteri(2, 3)?
public static double misteri (int x, int y)
{
double hasil = (x + y) / (y x);
return hasil;
}
94
95