Anda di halaman 1dari 17

Jawapan Aktiviti Bab 3

Aktiviti 3.1

2. (a) Linear search

Langkah 1: Item pertama (25) tidak sama dengan 5.


Indeks 0 1 2 3 4 5 6 7 8

25 10 35 45 5 30 15 40 20

Langkah 2: Item kedua (10) tidak sama dengan 5.


Indeks 0 1 2 3 4 5 6 7 8

25 10 35 45 5 30 15 40 20

Langkah 3: Item ketiga (35) tidak sama dengan 5.


Indeks 0 1 2 3 4 5 6 7 8

25 10 35 45 5 30 15 40 20

Langkah 4: Item keempat (45) tidak sama dengan 5.


Indeks 0 1 2 3 4 5 6 7 8

25 10 35 45 5 30 15 40 20

Langkah 5: Item kelima (5) sama dengan 5. Carian dihentikan.


Indeks 0 1 2 3 4 5 6 7 8

25 10 35 45 5 30 15 40 20
(b) Binary search

Langkah 1: Susun senarai dalam urutan menaik.


Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Langkah 2: Tentukan item pertengahan.

8+0
Item pertengahan = = 4 (Indeks keempat)
2
Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item pertengahan

Bandingkan 5 dengan item pertengahan (25). 5 lebih kecil daripada 25. Abaikan item
25 dan item-item selepasnya.

Langkah 3: Tentukan item pertengahan.

3+ 0
Item pertengahan = = 1.5 (Indeks pertama)
2
Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item pertengahan

Bandingkan 5 dengan item pertengahan (10). 5 lebih kecil daripada 10. Abaikan item
10 dan item-item selepasnya.

Langkah 4: Item carian (5) dijumpai dan carian dihentikan.


0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item carian
3. (a) Linear search

Langkah 1: Item pertama (25) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 2: Item kedua (10) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 3: Item ketiga (35) tidak sama dengan 40.


.
25 10 35 45 5 30 15 40 20

Langkah 4: Item keempat (45) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 5: Item kelima (5) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 6: Item keenam (30) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 7: Item ketujuh (15) tidak sama dengan 40.

25 10 35 45 5 30 15 40 20

Langkah 8: Item kelapan (40) sama dengan 40. Carian dihentikan.

25 10 35 45 5 30 15 40 20
(b) Binary search

Langkah 1: Susun senarai dalam urutan menaik.


Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Langkah 2: Tentukan item pertengahan.

8+0
Item pertengahan = = 4 (Indeks keempat)
2
Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item pertengahan

Bandingkan 40 dengan item pertengahan (25). 40 lebih besar daripada 25. Abaikan
item 25 dan item-item sebelumnya.

Langkah 3: Tentukan titik pertengahan.

5+8
Titik pertengahan = = 6.5 (Indeks pertama)
2
Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item pertengahan

Bandingkan 40 dengan item pertengahan (35). 40 lebih besar daripada 35. Abaikan
item 25 dan item-item sebelumnya.

Langkah 4: Tentukan item pertengahan.

7+8
Item pertengahan = = 7.5 (Indeks pertama)
2
Indeks 0 1 2 3 4 5 6 7 8

5 10 15 20 25 30 35 40 45

Item carian

Bandingkan 40 dengan item pertengahan (40). 40 sama dengan 40. Item carian
dijumpai dan carian dihentikan.
Dalam soalan 2, bilangan langkah yang digunakan dalam linear search untuk mendapatkan
nombor 5 ialah lima langkah manakala binary search pula ialah 4 langkah.

Dalam soalan 3, bilangan langkah yang digunakan dalam linear search untuk mendapatkan
nombor 40 ialah 8 langkah makakala binary search pula ialah 4 langkah.

Aktiviti 3.2

Anda perlu membaca dan memahami subtopik 3.1.1 di halaman 69 – 71 untuk membantu
anda menjalankan aktiviti ini.
Aktiviti 3.3

Pseudokod:

1 Mula
2 Setkan senarai L = [1.3, 3.7, 4.8, 1.5, 2.5]
3 Isytihar pemboleh ubah i, n, T
4 Setkan n = 5
5 Setkan i = 0
6 Masukkan nilai carian T
7 for i < n
7.1 Jika Li == T
7.1.1 Papar “Item ada dalam senarai”
7.1.2 Keluar gelung
7.2 Jika tidak
7.2.1 Kira i = i + 1
7.2.2 Tamat jika
8 Jika i >= n
8.1 Papar “Item tiada dalam senarai”
8.2 Tamat jika
9 Tamat

Carta alir:
MULA

Setkan senarai L = [1.3, 3.7, 4.8, 1.5, 2.5]

Isytihar pemboleh ubah i, n, T

Setkan n = 5
Setkan i = 0

Masukkan nilai carian T

Ya Tidak
i < n? Li == T? i = i + 1

Tidak Ya
Papar “Item
ada dalam
senarai”

Ya Papar “Item
i >= n?
tiada dalam
senarai”
Tidak

TAMAT
Aktiviti 3.4

Pseudokod:

1 Mula
2 Setkan senarai L = [10, 20, 30, 40, 50, 60, 70]
3 Isytihar pemboleh ubah n, i, j, m, b
4 Setkan n = 7
5 Setkan i = 0
6 Setkan j = n – 1
7 Masukkan nilai carian b
8 while i < j
8.1 Setkan m = (i + j)/2
8.2 Jika b == Lm
8.2.1 Papar “Item ada dalam senarai”
8.2.2 Keluar gelung
8.3 Jika tidak
8.3.1 Jika b < Lm
8.3.1.1 Kira j = m – 1
8.3.2 Jika tidak
8.3.2.1 Kira i = m + 1
8.3.3 Tamat jika
9 Tamat
Carta alir:
MULA

Setkan senarai L = [10, 20, 30, 40, 50, 60, 70]

Isytihar pemboleh ubah n, i, j, m, b

Setkan n = 7
Setkan i = 0
Setkan j = n – 1

Masukkan nilai carian b

Tidak
i < j?

Ya

Setkan m = (i + j) / 2

Tidak Ya
b == Lm? b < Lm? j = m – 1

Ya Tidak

Papar “Item ada i = m + 1


dalam senarai’

TAMAT

Aktiviti 3.5

Anda perlu membaca dan memahami subtopik 3.1.2 di halaman 73 – 80 untuk membantu
anda menjalankan aktiviti ini.
Aktiviti 3.6

Pseudokod:

Mula
Setkan senarai = [ ]
Isytihar pemboleh ubah i, j, k, temp
Setkan k = bilangan item dalam senarai
Setkan i = 0
for i < n – 1
Setkan j = 0
for j = 0 hingga (n – i – 1)
Jika Lj > Lj + 1
temp = Lj
Lj = Lj + 1
Lj + 1 = temp
Kira j = j + 1
Kira i = i + 1
Tamat
Carta alir:

MULA

Setkan senarai = [ ]

Isytihar pemboleh ubah i, j, k, temp

Setkan k = bilangan item dalam senarai


Setkan i = 0
Setkan temp = L0

Tidak
i < n – 1?

Ya

Setkan j = 0

Tidak
j < n – i – 1? i = i + 1

Ya

Tidak
Lj > Lj + 1
Ya
Ya
temp = Lj
Lj = Lj + 1
Lj + 1 =Yatemp

j = j + 1

Papar senarai

TAMAT
Aktiviti 3.7

Pseudokod:

1 Mula
2 Setkan senarai L = [2, 9, 4, 6, 7, 1, 10, 5, 3, 8]
3 Setkan senaraiBaharu[ ]
4 Isytihar pemboleh ubah i, j, n, nB
5 Setkan n = 10
6 Setkan nB = bilangaan baldi
7 Wujudkan baldi kosong
8 Masukkan item ke dalam baldi
9 Setkan i = 0
9.1 for i < n
9.1.1 Masukkan senarai[i] ke dalam baldi[j]
9.1.2 Kira i = i + 1
10 Setkan j = 0
10.1 for j < nB
10.1.1 Jika baldi[j] tidak kosong
10.1.1.1 Isih item
10.2 Tamat jika
10.3 Kira j = j + 1
11 Cantum dan masukkan item-item ke dalam senaraiBaharu[ ]
12 Paparkan senaraiBaharu[ ]
13 Tamat
Carta alir:

MULA

Setkan senarai L = [2, 9, 4, 6, 7, 1, 10, 5, 3, 8]

Setkan senaraiBaharu[ ]

Isytihar pemboleh ubah i, j, n, nB

Setkan n = 10
Setkan nB = bilangan baldi

Wujudkan baldi kosong

Masukkan item ke dalam baldi

Setkan i = 0

Ya Masukkan senaria[i]
i < n?
ke dalam baldi[j]
Tidak

Setkan j = 0 i = i + 1

Ya Baldi[j] Ya
j < nB?
kosong?

Tidak Tidak

Cantum dan masukkan Isih item


item-item ke dalam
senaraiBaharu
j = j + 1

Papar senaraiBaharu[ ]

TAMAT
Aktiviti 3.8

Ralat yang dikesan:


Maria tidak mengisytihar pemboleh ubah nilaiCari yang menyebabkan carian item yang
dikehendaki tidak dapat dilakukan dan gelung tidak akan berhenti sehingga ke akhir senarai.

Pseudokod yang telah dibaiki:

1 Mula
2 Setkan senarai L = [1, 6, 10, 18, 20, 40, 58, 67, 74, 87, 99]
3 Isyihar pemboleh ubah indeksAwal, indeksAkhir, nilaiTengah, nilaiCari
4 Setkan indeksAwal = 0
5 Setkan indeksAkhir = 10
6 Masukkan satu nilaiCari
7 while indeksAwal <= indeksAkhir
7.1 indeksTengah = (indeksAwal + indeksAkhir)/2
7.2 Jika nilaiTengah = nilaiCari
7.2.1 Papar nilaiCari
7.3 Jika nilaiTengah < nilaiCari
7.3.1 indeksAwal = indeksTengah + 1
7.4 Jika nilaiTengah > nilaiCari
7.4.1 indeksAkhir = indeksTengah – 1
7.5 Tamat jika
8 Tamat
Carta alir:
MULA

Setkan senarai L = [1, 6, 10, 18, 20,


40, 58, 67, 74, 87, 99]

Isytihar pemboleh ubah indeksAwal,


indeksAkhir, indeksTengah, nilaiCari

Setkan indeksAwal = 0
Setkan indeksAkhir = 10

Masukkan satu nilaiCari

Tidak indeksAwal <=


indeks Akhir?

Ya

Setkan indeksTengah =
(indeksAwal + indeksAkhir)/2

nilaiCari == Tidak nilaiCari < Ya Ya =


indeksAkhir
indeksTengah? indeksTengah? indeksTengah – 1

Ya Tidak

Papar “Item ada dalam indeksAwal =


senarai” indeksTengah + 1

TAMAT
Aktiviti 3.9

Ralat: Nurul tidak mengarahkan sistem untuk memaparkan senaraiBaharu[ ] yang telah diisih.

MULA

Setkan senarai L = [2, 9, 4, 6, 7, 1, 10, 5, 3, 8]

Setkan senaraiBaharu[ ]

Isytihar pemboleh ubah i, j, n, nB

Setkan n = bilangan item dalam senarai


Setkan nB = bilangan baldi

Wujudkan baldi kosong

Masukkan item ke dalam baldi

Setkan i = 0

Ya Masukkan senarai[i]
i < n?
ke dalam baldi[j]

Tidak i = i + 1

Setkan j = 0

Ya Baldi[j] Ya
j < nB?
kosong?

Tidak Tidak

Cantum dan masukkan item-item Isih item


ke dalam senaraiBaharu.

Papar j = j + 1
senaraiBaharu[ ]

TAMAT
Ralat yang
telah dibaiki
Aktiviti 3.10

Algoritma binary search:

1. Pastikan item-item dalam senarai telah diisih mengikut urutan menaik.


2. Lihat item yang berada di tengah senarai.
3. Bandingkan item carian dengan item yang berada di tengah senarai.
4. Jika nilai item carian sama dengan nilai item yang berada di tengah senarai,
carian dihentikan.
5. Jika nilai item carian kurang daripada nilai item yang berada di tengah senarai,
abaikan item di tengah senarai dan item-item selepasnya. Kemudian, lihat pada
senarai yang tinggal.
6. Jika nilai item carian lebih daripada nilai item di tengah senarai, abaikan item di
tengah senarai dan item-item sebelumnya. Kemudian, lihat pada senarai yang
tinggal.
7. Ulang langkah 2 hingga langkah 6 sehingga item carian dijumpai atau apabila
carian selesai tanpa menjumpai item carian.

Algoritma bucket sort:

1. Wujudkan beberapa buah baldi untuk menyimpan item-item daripada senarai


secara sementara.
2. Tentukan julat bagi setiap baldi supaya item-item dapat dimasukkan ke dalam
baldi.
3. Masukkan setiap item secara sementara ke dalam baldi berdasarkan julat yang
ditetapkan.
4. Isih item-item di dalam setiap baldi.
5. Setelah item-item dalam kesemua baldi diisih, cantumkan item-item tersebut dan
masukkan semula ke dalam senarai.

Binary search dan


Pengecaman
bucket sort mempunyai Kedua-duanya memerlukan senarai.
corak
corak yang sama.
Item-item dalam senarai boleh berbentuk
(a) Item dalam senarai
integer, abjad atau perkataan.
(b) Gelung yang Binary search menggunakan gelung while.
digunakan Bucket sort menggunakan gelung for.
• Binary search membandingkan item carian
Aspek
dengan item di tengah senarai.
penting
• Bukcet sort memasukkan item-item dalam
(c) Teknik yang
senarai ke dalam baldi sementara dan isihan
digunakan
akan dilakukan sekali lagi bagi item-item
dalam baldi, seterusnya memasukkan kembali
item-item ke dalam senarai yang baharu
Aktiviti 3.11

Teknik bubble sort sesuai digunakan untuk mengisih senarai yang diberi kerana bilangan item
dalam senarai yang sedikit. Untuk mencari nombor 13, teknik linear search sesuai digunakan
kerana bilangan item dalam senarai yang sedikit.

Aktiviti 3.11

Anda perlu membaca dan memahami subtopik 3.1.7 dan Contoh 3.15 di halaman 104 – 105
untuk membantu anda menjalankan aktiviti ini.

Aktiviti 3.12

Anda perlu membaca dan memahami subtopik 3.1.7 dan Contoh 3.16 di halaman 105 untuk
membantu anda menjalankan aktiviti ini.

Anda mungkin juga menyukai