Anda di halaman 1dari 95

Penyelesaian Masalah

dan Algoritma
Menggunakan Java
Mohd Azam Osman
Maziani Sabudin

12/11/16

CPD (USM-MDEC-JPNPP) 2016


Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.

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

CPD Program Computer


Science

Hasil Pembelajaran

Menerangkan keperluan penyelesaian


masalah dengan menggunakan teknik dan
strategi yang betul.
Membina algoritma untuk penyelesaian
masalah.
Menulis atur cara melalui algoritma.

12/11/16

CPD Program Computer


Science

Rangka kursus

Hari 1:

Pengenalan kepada teknik penyelesaian


masalah.

Latihan penyelesaian masalah melalui


pembangunan algoritma.

Pengenalan kepada asas pengaturcaraan Java

12/11/16

CPD Program Computer


Science

Rangka kursus

Hari

2:

Terjemahan algoritma kepada bahasa


pengaturcaraan Java.
Struktur kawalan
Jujukan
Pilihan
Ulangan
Struktur Data Tatasusunan
Fungsi

Latihan pembangunan atur cara Java.

12/11/16

CPD Program Computer


Science

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

CPD Program Computer


Science

Rangka kursus

12/11/16

CPD Program Computer


Science

Rangka kursus

12/11/16

CPD Program Computer


Science

Penyelesaian
Masalah
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16

Penyelesaian Masalah

12/11/16

CPD Program Computer


Science

10

Penyelesaian Masalah

Output

Input
Proses

Jujukan langkah
amat penting

Y= mc

CPD Program Computer


Science

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.

Input data yang diperlukan


Output hasil yang dijangka daripada penyelesaian
Kekangan yang wujud
Rumusan yang diperlukan

Kenal pasti dan perlu mendapatkan data yang cukup


untuk menghasilkan jawapan yang betul.
Keperluan input dan output:

Panjang dan lebar tanah (input)


Keluasan tanah (rumusan) panjang * lebar
Kadar upah potong rumput (input)
Kadar masa potong rumput (input)
Masa (rumusan) & (output) luas * kadar potong / 60 minit
Kos (rumusan) & (output) luas / kadar upah
CPD Program Computer
Science

17

Penyelesaian Masalah
3) Reka Bentuk
i.

Mereka bentuk kaedah penyelesaian menggunakan


algoritma.
ii. Algoritma adalah jujukan langkah demi langkah yang
terhingga yang disusun mengikut logik tertentu, dan apabila
dilaksanakan akan menghasilkan penyelesaian bagi sesuatu
masalah.
iii. Teknik Pseudokod dan Carta alir

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.

CPD Program Computer


Science

21

Penyelesaian Masalah
Carta Alir - Simbol
Grafik
mula/tamat

storan

proses

aliran
kawalan

input / output

sambungan
muka surat sama
sambungan
muka surat lain

syarat

CPD Program Computer


Science

22

Penyelesaian Masalah
Carta Alir

mula

Input Panjang, Lebar,


Kadar_Potong,
Kadar_Upah

Luas_Laman = Panjang * Lebar


Kos = Luas_Laman / Kadar_Upah
Masa = (Luas_Laman * Kadar_Potong) / 60

Output Kos, Masa

tamat

CPD Program Computer


23
Science

Penyelesaian Masalah
3) Reka Bentuk
) algoritma mempunyai 3
struktur kawalan:
i. Jujukan
ii. Pilihan
iii. Ulangan

CPD Program Computer


Science

24

Penyelesaian Masalah
3) Reka Bentuk algoritma
i.

Struktur Kawalan Jujukan Carta Alir

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

2.1 kira hasil


2.2 output hasil

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

palsu inpu benar

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.

Ralat logik - input dan rumusan salah


Ralat sintaks - atur cara salah
Ralat masa jalanan masalah fail objek
CPD Program Computer
Science

30

Penyelesaian Masalah
Keratan Atur cara Java

mula
isytihar

input

proses
output
tamat

double panjang, lebar, kadar_potong,


kadar_upah, luas, masa, kos;
panjang =
Double.parseDouble(br.readLine());
lebar = Double.parseDouble(br.readLine());
kadar_potong =
Double.parseDouble(br.readLine());
kadar_upah =
Double.parseDouble(br.readLine());
luas = panjang * lebar;
kos = luas / kadar_upah;
masa = (luas * kadar_potong) / 60;
System.out.println(Kos:
CPD Program Computer + kos);
31
Science
System.out.println(Masa: + masa);

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.

Set data input:


Nilai panjang dan lebar yang negatif atau 0
Nilai kadar potong rumput adalah 0
Nilai kos yang negatif
CPD Program Computer
Science

32

Penyelesaian Masalah
6) Pendokumenan
i.
ii.
iii.
iv.
v.
vi.

Spesifikasi keperluan yang jelas, tepat dan ringkas.


Penerangan input, output, kekangan dan rumusan.
Psedokod atau carta alir
Atur cara
Contoh pengujian
Panduan pengguna

Penting untuk rujukan:


Perlu ubah suai mengikut kehendak pengguna yang
berubah
Jika diselenggara oleh orang lain
Perlu guna semula untuk penyelesaian masalah lain
Membaiki ralat yang mungkin timbul
CPD Program Computer
Science

33

Struktur Kawalan
Pilihan
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16

34

Struktur Kawalan Pilihan


Carta Alir
Tindakan 1

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

Struktur Kawalan Pilihan

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

int markah = 90;


char gred;
if (markah > 85)
gred = A;

Nota:
Pemboleh ubah markah perlu di isytihar sebagai jenis integer int
Pemboleh ubah gred perlu di isytihar sebagai jenis aksara char
12/11/16

CPD Program Computer


Science

37

Pilihan satu-hala
markah = 90

Kenyataan
if

expression

palsu

benar

markah > 85

gred = A

Carta Alir

CPD Program Computer


Science

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

int markah = 90;


char gred;
if (markah > 85)
gred = A;
else
gred = B;

CPD Program Computer


Science

39

Pilihan dua-hala
Kenyataan if
else
markah = 90
expression

palsu

gred = B

benar

markah > 85

gred = A

Carta Alir

CPD Program Computer


Science

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

CPD Program Computer


Science

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

CPD Program Computer


Science

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

CPD Program Computer


Science

tam
at

43

Pilihan multi-hala
Kenyataan if

Keratan atur cara Java


else
isytihar double baki, faedah;
baki =
input
Double.parseDouble(br.readLine());
if (baki > 50000.00)
faedah = 0.07;
syara else
t
if (baki >= 25000.00)
piliha
faedah = 0.05;
n
else
if (baki >= 1000.00)
faedah = 0.03;
else
faedah
0.00;
CPD=
Program
Computer
44
Science

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

CPD Program Computer


Science

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

CPD Program Computer


49
Science

Struktur Kawalan Pilihan


Contoh masalah:
Tulis atur cara yang menerima 2 input dari
pengguna, dan laksanakan operasi darab atau
bahagi bergantung kepada situasi berikut:
Input pertama dan kedua perlu lebih besar dari nilai kosong.
Jika tidak, atur cara tamat.
Jika input pertama lebih besar dari kedua, laksanakan
operasi bahagi. Papar hasilnya.
Jika input pertama lebih kecil dari kedua, laksanakan operasi
darab. Papar hasilnya.

Tulis pseudokod dan lukis


Tulis pseudokod dan lukis
carta alir untuk masalah di
carta alir untuk masalah di
atas.
atas.
12/11/16

CPD Program Computer


Science

50

Kenyataan Blok
Laksana
lebih
if (syarat)
Laksana
lebihdari
darisatu
satu kenyataan
kenyataan{{ }}
{
kenyataan 1;
kenyataan 2;
}
else
{
kenyataan 3;
kenyataan 4;
}

CPD Program Computer


Science

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

Struktur Kawalan Ulangan


Carta Alir
Tindakan 1

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

Struktur Kawalan Ulangan


Penggunaan Struktur Ulangan

kenyataan
benar
ungkapan

kenyataan

benar
ungkapan

palsu

palsu

while
do .. while
CPD Program Computer
Science

56

Struktur Kawalan Ulangan

Kenapa perlu mengulang?

Ulangan di perlukan kerana


kenyataan perlu dilaksanakan lebih
dari sekali.
CPD Program Computer
Science

57

Struktur Kawalan Ulangan


Masalah: Membaca 5 nilai integer, jumlahkan
semua nilai integer dan mengira nilai puratanya.

Algoritma: pseudokod
1. Input 5 nombor integer
2. Jumlah semua nombor
3. Kira purata

CPD Program Computer


Science

58

Struktur Kawalan Ulangan


Masalah: Membaca 5 nilai integer, jumlahkan
semua nilai integer dan mengira nilai puratanya.
Carta Alir
no1 no2
no3 no4
no5
Jumlah =
no1+no2+no3+no4
+no5
CPD Program Computer
59
Science

Struktur Kawalan Ulangan


Masalah: Membaca 5 nilai integer, jumlahkan semua nilai
integer dan mengira nilai puratanya.
isytihar
Mesej
arahan
Input
5
nomb
or
Prose

int no1, no2, no3, no4, no5, jumlah;


double purata;
System.out.print (Masukkan 5 nilai: );
int no1 = Integer.parseInt(br.readLine());
int no2 = Integer.parseInt(br.readLine());
int no3 = Integer.parseInt(br.readLine());
int no4 = Integer.parseInt(br.readLine());
int no5 = Integer.parseInt(br.readLine());
jumlah = no1 + no2 + no3 + no4 + no5;
purata = jumlah / 5;

s
jumla
h dan
purat
Bagaimana
Bagaimanauntuk
untukdapatkan
dapatkannilai
nilaipurata
puratabagi
bagi100
100atau
atau1000
1000
a

nombor
nomborinteger?
integer?

CPD Program Computer


Science

60

Struktur Kawalan Ulangan


Struktur Ulangan while

Syarat untuk berhenti


berulang

while (ungkapan)
kenyataan;

CPD Program Computer


Science

61

Struktur Kawalan Ulangan


Masalah: Membaca N nilai integer, jumlahkan semua nilai
integer dan mengira nilai puratanya.

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

Struktur Kawalan Ulangan


Masalah: Membaca N nilai integer, jumlahkan semua nilai
integer dan mengira nilai puratanya.

set kaunter 0, jumlah 0, purata 0.0


input bilangan_nombor
Selagi kaunter < bilangan_ nombor
input no
jumlah = jumlah + no
kaunter + 1
purata = jumlah / bilangan_nombor
output jumlah, purata
CPD Program Computer
Science

pseudokod
63

Struktur Kawalan Ulangan


Struktur Ulangan while
Keratan atur cara
Java
int kaunter, bil, jumlah, no;
double purata = 0.0;
jumlah = 0;
kaunter = 0 ;
System.out.print(Masukkan bilangan nombor: );
bil = Integer.parseInt(br.readLine());
while ( kaunter < bil)
{
no = Integer.parseInt(br.readLine());
jumlah = jumlah + no;
kaunter++;
}
purata = jumlah / bil;
System.out.println(Jumlah : + jumlah);
System.out.println(Purata : + purata);
CPD Program Computer
Science

64

Struktur Kawalan Ulangan


Struktur Ulangan while
Bagaimana untuk kawal ulangan?
1. Kawalan Pembilang
2. Kawalan Sentinel
Kawalan Sentinel
String teruskan = Ya;
while ( teruskan == Ya)
{
System.out.print(Ingin
teruskan?: );
String teruskan = readLine();
}
Tidak
Tidakmengetahui
mengetahuibilangan
bilanganulangan
ulangan

Kawalan Pembilang
int pembilang = 1;
while ( pembilang <= 100)
{
System.out.println(Ulangan
ke : + pembilang);
pembilang++;
}
Mengetahui
Mengetahuibilangan
bilanganulangan
ulangan
CPD Program Computer
65
Science

Struktur Kawalan Ulangan


Struktur Ulangan while
pembilang
pembilang==0;
0;
while
while(pembilang
(pembilang<=
<=20)
20)
{{
System.out.print(
System.out.print( ++pembilang);
pembilang);
pembilang
pembilang==pembilang
pembilang++5;
5;
}}
pembilang
pembilang==0;
0;
while
while(pembilang
(pembilang<=
<=20)
20)
{{
pembilang
pembilang==pembilang
pembilang++5;
5;
System.out.print(
System.out.print(++pembilang);
pembilang);
}}
CPD Program Computer
Science

005510
1015
1520
20

5510
1015
1525
25

66

Struktur Kawalan Ulangan


Struktur Ulangan do while

do
kenyataan;
while (ungkapan);

CPD Program Computer


Science

67

Struktur Kawalan Ulangan


Struktur Ulangan do while
pembilang
pembilang==0;
0;
do
do
{{
System.out.print(
System.out.print( ++pembilang);
pembilang);
pembilang
pembilang==pembilang
pembilang++5;
5;
}}while
while(pembilang
(pembilang<=
<=20);
20);
pembilang
pembilang==21;
21;
do
do
{{
System.out.print(
System.out.print( ++pembilang);
pembilang);
pembilang
pembilang==pembilang
pembilang++5;
5;
}}while
while(pembilang
(pembilang<=
<=20)
20);;
CPD Program Computer
Science

005510
1015
1520
20

21
21

68

Struktur Kawalan Ulangan


Struktur Ulangan for

nilai awal

for
for(nilai
(nilaiawal;
awal;ungkapan;
ungkapan;kemaskini
kemaskininilai)
nilai)
kenyataan;
kenyataan;

benar
ungkapan

kenyataan

kemaskini
nilai

palsu

CPD Program Computer


Science

69

Struktur Kawalan Ulangan


Struktur Ulangan for

Nilai awal

Syarat
ulangan

Kemaskini
nilai

for ( i = 0; i < 10; i++)


System.out.print( + i);
Loop
condition

Mencetak nombor 0 hingga 9

CPD Program Computer


Science

0 1 2 3 4 5 6 7
8 9

70

Struktur Kawalan Ulangan


Struktur Ulangan for
for (i = 10; i <= 9; i++)
System.out.print( + i);

for (i = 10; i <= 10; i++)


System.out.print( + i);
10

for (i = 10; i >= 9; i--)


System.out.print( + i);
Loop
condition

10
9

for (i = 1; i <= 10; i++)


System.out.print( + i);
1 2 3 4 5 6 7 8
9 10

CPD Program Computer


Science

71

Struktur Kawalan Ulangan


Masalah:
Membaca N nilai
integer,
jumlahkan semua
nilai integer dan
mengira nilai
puratanya.

purata =
jumlah + bil
jumlah
purata

palsu

Struktur Ulangan for


Carta Alir
kaunter
0,
jumlah
0,
purata
0.0
bil
kaunte
r < bil

Nilai awal
Syarat ulangan kemaskini
benar

no
jumlah = jumlah
+ no kaunter + 1

72 Computer
CPD Program
Science

Struktur Kawalan Ulangan


Masalah: Membaca N nilai
integer, jumlahkan semua nilai
integer dan mengira nilai
puratanya.

Struktur Ulangan for


pseudokod

set kaunter 0, jumlah 0, purata


0.0
input bilangan_nombor
Selagi kaunter < bilangan_
nombor
input no
jumlah = jumlah + no
kaunter + 1
purata = jumlah /
bilangan_nombor
CPD Program Computer
73
output jumlah,
purata
Science

Struktur Kawalan Ulangan


Struktur Ulangan for

Keratan atur cara


Java
int kaunter, bil, jumlah, no;
double purata = 0.0;
jumlah = 0;
System.out.print(Masukkan bilangan nombor: );
bil = Integer.parseInt(br.readLine());
for (kaunter = 0; kaunter < bil; kaunter++; )
{
no = Integer.parseInt(br.readLine());
jumlah = jumlah + no;
}
purata = jumlah / bil;
System.out.println(Jumlah : + jumlah);
System.out.println(Purata : + purata);
CPD Program Computer
Science

74

Struktur Kawalan Ulangan


Latihan
Apakah yang dipaparkan?
int n = 1729;
int jum = 0;
while (n > 0)
{
int digit = n % 10;
jum = jum + digit;
n = n / 10;
}
System.out.println(jum);
12/11/16

CPD Program Computer


Science

jum

digit

1729

172

17

11

18

19

19
75

Struktur Kawalan Ulangan


Latihan
Tulis atur cara yang menerima 2 input sebagai
nombor minima dan maksima. Kemudian papar
semua nombor berturutan dari minima hingga
maksima. Sebagai contoh, jika input 20 dan 30,
paparan ialah 20,21,22,23,24,25,26,27,28,29,30.
Guna struktur ulangan berikut:
1. while
2. do while
3. for
12/11/16

CPD Program Computer


Science

76

Tatasusunan
CPD (USM-MDEC-JPNPP) 2016
Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16

77

Tatasusunan
Pengenala
Pengenala
n
n

Tatasusunan ialah struktur data


yang menyimpan lebih dari satu
data yang mempunyai jenis yang
sama.

CPD Program Computer


Science

78

Tatasusunan
Pengena
Pengena
lan
lan

Isytihar jenis data tatasusunan


dan tentukan saiz.
Nilai awal tatasusunan.
Manipulasi tatasusunan.
Menyimpan data dalam setiap
elemen tatasusunan.
Mencapai/akses data dalam setiap
elemen tatasusunan.

CPD Program Computer


Science

79

Tatasusunan
Isytihar dan Nilai awal
Isytihar dan Nilai awal
Tatasusunan
Tatasusunan

Jenis
tatasusunan

Nama
tatasusunan

Jenis
elemen

Saiz

int[ ] nombor = new


0
1
2
int[5];
3
4
0
0
0
Tatasusunan
mengandungi 5
data berjenis
elemen
integer. Semua
elemen dinilai
Computer
awal dengan 0. CPD Program
Science

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

CPD Program Computer


Science

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

double[ ] tambahnilai = {45.2, 12.5,


99.9, 25.0};
45.2

12.5

99.9
1

25.0
2

Nilai awal dengan elemen


berikut
indeks

CPD Program Computer


Science

83

Tatasusunan
Mencapai elemen
Mencapai elemen
Tatasusunan
Tatasusunan
0

int[ ] senarai = new


for (int
i = 0; i <
int[5];
5; i++)
senarai[i] = i
+ 1;

4
0

10

senarai[0] = 1; senarai[1] =2; ... ;


senarai[4] = 5;
0
13
Penggunaan

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];

senarai[4] = senarai[0] senarai[2];


12
0

1
15

5
12

10

12

15

CPD Program Computer


Science

85

Tatasusunan
0

15

12

14

12

Papar elemen pertama


Papar elemen ke-4
Papar elemen terakhir
Papar semua elemen

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

for (int i = 0; i <= 9; i+


+)
System.out.println(sena
rai[i]);
86

CPD Program Computer


Science

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

Jenis nilai yang dihantar


Nama methodNama pemboleh ubah parameter

public static double kuboid (double panjang)


{
double isipadu = panjang * panjang * panjang;
return isipadu;
}
Badan method

Keluar dari method dan hantar nilai


CPD Program Computer
Science

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);
}

public static double kuboid (double panjang)


{
double isipadu = panjang * panjang * panjang;
return isipadu;
}
CPD Program Computer
Science

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;
}

CPD Program Computer


Science

94

Nota penafian: Dokumen ini hanya


digunakan untuk tujuan pengajaran dan
pembelajaran bagi Program Pembangunan
Professional Berterusan (CPD) anjuran USMMDEC-JPNPP.

CPD (USM-MDEC-JPNPP) 2016


Pusat Pengajian Sains Komputer,
Universiti Sains Malaysia.
12/11/16

95

Anda mungkin juga menyukai