You are on page 1of 86

SISTEM SOKONGAN PEMILIHAN: KAMI BANTU

TAJUK
ANDA PILIH

NAMA CALON MOHD SABRIIRFAN


MUHAMMAD BIN MANSOR
BIN SHAHRUL NIZAM

NOMBOR KAD 060306101029


PENGENALAN

ANGKA GILIRAN

SMK DAMANSARA DAMAI 1,


NAMA DAN
ALAMAT SEKOLAH NO 2 JALAN PJU 10/1, DAMANSARA
DAMAI 47830 PETALING JAYA,
SELANGOR

NAMA GURU MOHD


ZAID BINSABRI
ABDULBIN MANSOR
RAHMAN

TANDATANGAN
GURU

TARIKH

1
MOHD SABRI
MUHAMMAD BINBIN
IRFAN MANSOR
SHAHRUL NIZAM
060306101029

MOHD
ZAID BINSABRI BIN MANSOR
ABDUL RAHMAN

SMK DAMANSARA DAMAI 1

2
ISI KANDUNGAN
1.0 Menganalisis Masalah
1.1 Pernyataan Masalah………………………………………………………….05
1.2 Objektif……………………………………………………………………....05
1.3 Skop………………………………………………………………………….06
1.4 Kumpulan Sasaran…………………………………………………………...06
1.5 Menilai Sistem Sedia Ada…………………………………………………....07
1.6 Tempoh Projek……………………………………………………………….09
2.0 Mereka Bentuk Penyelesaian
2.1 Algoritma ………………………………………………...............................10
2.2 Gambar Rajah Perhubungan Entiti (ERD)…………………………………..11
2.3 Penormalan………………………………………………………………….12
2.4 Antara Muka Input/Output…………………………………………………..18
3.0 Melaksanakan Penyelesaian
3.1 Jadual...………………………………………………………………………23
3.2 Borang……………………………………………………………………….26
3.3 Query………………………………………………………………………...29
3.4 Laporan………………………………………………………………………31
3.5 Pengekodan…………………………………………………………………..34
4.0 Menguji Dan Menyah Ralat
4.1 Ralat Sintaks…………………………………………………………………47
4.2 Ralat Logik…………………………………………………………………..47
4.3 Ralat Masa Larian…………………...………………………………………47
5.0 Mendokumentasi
5.1 Laporan Setiap Fasa
6.0 Nilai
6.4 Manual Pengguna……………………………………………………………51
Rujukan
Lampiran

3
PENGHARGAAN

Assalamualaikum dan Selamat Sejahtera

Bersyukur kehadrat Illahi kerana dengan limpah kurniaNya dapat juga saya
menyiapkan folio yang telah diusahakan selama ini yang bertajuk “Sistem Sokongan
Pemilihan” . Folio yang ini amat penting buat saya memandangkan perkara ini merupakan
sebahagian daripada kerja khusus subjek Sains Komputer.

Ribuan terima kasih saya ucapkan kepada individu penting yang banyak membantu
saya sepanjang saya menyiapkan projek folio saya ini. Pertama sekali kepada Guru Sains
Komputer SMK Damansara Damai 1, En. Mohd Sabri Bin Mansor dan En. Zaid Bin Abd
Rahman kerana telah banyak membantu serta membimbing saya semasa kerja kursus ini
dijalankan.

Seterusnya, saya juga ingin mengucapkan terima kasih kepada ibu bapa saya kerana
telah memberikan sokongan dan kata-kata semangat kepada saya sepanjang folio ini disiapkan.
Tidak lupa juga kepada rakan-rakan seperjuangan yang yang turut bersama-sama berhempas
pulas dalam menyempurnakan projek masing-masing. Bantuan kalian mengenai projek ini
amat saya hargai. Kalian juga sanggup meluangkan masa untuk memberikan saya maklumat
tentangnya tidak akan saya lupakan.

Akhir sekali, ucapan terima kasih diberi kepada pihak-pihak yang telah membantu saya
secara langsung atau tidak langsung sepanjang projek saya dijalankan.

4
1.0 MENGANALISIS MASALAH
1.1 Pernyataan Masalah
Pembelian sesuatu produk akan menjadi rumit apabila terdapat banyak
pilihan yang menarik ditawarkan kerana pembeli sukar untuk membuat
perbandingan harga kereta dengan kereta yang lain kerana sering dipengaruhi
oleh jurujual rakan, atau keinginan individu sendiri. Hal ini kerana kebiasaannya
jurujual akan menawarkan kereta keluaran baharu yang lebih murah serta
spesifikasi yang lebih tinggi dan ini menyebabkan pelanggan membeli kereta
tidak seperti yang dirancangkan. Selain itu, pilihan yang dibuat berkemungkinan
bukanlah pilihan terbaik berdasarkan kriteria yang diingini atau bersesuaian
dengan keperluan pembeli kerana pemilihan produk tidak mengikut cita rasa
pembeli.
Bagi mengatasi masalah yang dihadapi, satu aplikasi berasaskan web
untuk membantu pemilihan produk daripada yang dijana oleh sistem yang
sedia ada.

1.2 Objektif

Terdapat beberapa objektif yang perlu kita capai. Antaranya ialah:-

i. Mudah melihat kelebihan pada setiap kereta yang hendak dibandingkan


kerana spesifikasi dipaparkan secara atas talian tanpa perlu ke kedai kereta
ii. Dapat membandingkan harga dan spesifikasi kereta tanpa mengira had
waktu perniagaan.
iii. Penjual dapat menambah produk baharu ke dalam sistem tanpa perlu
mencetak semula katalog.

5
1.3 Skop
Sistem ini merangkumi beberapa keupayaan , iaitu:-
i. Memerlukan pelanggan untuk mendaftar masuk ke dalam sistem sebelum
membuat pilihan kereta.
ii. Memaparkan harga dan spesifikasi kereta seperti jenama, harga dan
spefikasi kereta sahaja

1.4 Kumpulan Sasaran

Sistem ini dibangunkan untuk dikhaskan kepada :-

i. Penjual kereta.
ii. Pembeli kereta.

1.5 Menilai Sistem Sedia Ada


1.5.1 Fungsi
Sistem sedia ada ini hanya membuat perbandingan secara manual
dengan memilih maklumat produk satu persatu di setiap kedai, melihat
iklan promosi yang hanya terdapat di kedai dan mendengar pelanggan
dapat penerangan secara terperinci daripada penjual bagi barangan
yang ingin dibeli.

6
1.5.2 Kelemahan
Beberapa kelemahan dapat dikenalpasti dalam sistem sedia ada.
Antaranya ialah:-
i. Sukar untuk mencari dan membandingkan pelbagai jenama
kereta kerana perlu melihat satu persatu kereta di kedai kereta.
ii. Sukar untuk menambah produk yang baharu kerana penjual perlu
mencetak semula risalah yang sedia ada.
iii. Mengambil masa yang lama untuk membandingkan spesifikasi
pada kereta kerana perlu pergi ke setiap kedai kereta.

1.5.3 Kelebihan
Sistem sedia ada juga mempunyai kelebihan tersendiri. Antaranya
Ialah :-
i. Dapat melihat kualiti produk yang dipilih dengan lebih jelas dan
teliti di kedai kereta.
ii. Dapat membuat pembelian dengan segera.
iii. Boleh bertanya kepada penjual dengan secara terperinci jika ingin
mengetahui maklumat kereta yang ingin dibeli.

1.5.4 Justifikasi
Setelah meniliti kekurangan dan kelebihan yang terdapat pada sistem
perbandingan kereta secara manual.Sebuah kesimpulan boleh
dilakukan bahawa :-
i. Membantu pembeli untuk membuat pemilihan kereta dengan
lebih cepat dan secara atas talian.
ii. Membantu pembeli membuat perbandingan kereta tanpa perlu
ke kedai secara fizikal.
iii. Membantu penjual untuk memaksimumkan waktu perniagaan
dan menyenangkan untuk menambah dan mengemaskini
produk.

7
1.5.5 Nama Sistem
Nama sistem yang dibangunkan ini ialah “FindMyCar.com

8
1.6 Tempoh Projek
Fasa 1 dan Fasa 2 (September hingga November 2022)
2022
Tempoh Projek
Ogos September Oktober November Disember
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Taklimat daripada guru
1.0 MENGANALISIS MASALAH
1.1 Pernyataan Masalah
1.2 Objektif
1.3 Skop
1.4 Kumpulan Sasaran
1.5 Menilai Sistem Sedia Ada
1.6 Tempoh Projek
2.0 MEREKABENTUK PENYELESAIAN
2.1 Algoritma
2.2 Gambar Rajah Perhubungan Entiti (ERD)
2.3 Penormalan
2.4 Antara Muka Input/ Output

9
Fasa 3-5 (Januari hingga Jun 2023)
2023
Tempoh Projek
Januari Februari Mac April Mei Jun
3.0 MELAKSANAKAN PENYELESAIAN 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
3.1 Jadual
3.2 Borang
3.3 Query
3.4 Laporan
3.5 Mengekod
4.0 MENGUJI DAN MENYAH RALAT
4.1 Menyediakan Set Data Uji Lari Yang Relevan
4.2 Menghasilkan Atur Cara Bebas Ralat
5.0 MENDOKUMENTASI
5.1 Menulis Dokumentasi Dalaman (komen)
Menggunakan Gaya Penulisan Yang Baik
5.2 Menghasilkan Pelaporan Mengikut Format
Dokumen
5.3 Menghasilkan Pelaporan Mengikut Format
Kandungan

10
2.0 MEREKA BENTUK PENYELESAIAN
2.1 Algoritma

Mula

Input ID dan kata laluan

ID dan kata Tidak


laluan benar?

Ya

Papar halaman utama

Pilih Ya
Output “Produk”
“Produk”
?

Klik Ya Output
maklumat maklumat
Tidak
?
Tidak

Tidak Tidak Klik Ya Item masuk


Pilih “Banding” ?
banding? menu

Ya

Papar item banding

Tidak

Kembali? Log
Tidak keluar?

Ya Ya

11
2.2 Gambar Rajah Perhubungan Entiti (ERD)

idbandingan harga
gambar

katalaluan idpembeli

namaproduk
1 M M 1
PEMBELI BANDING PRODUK
M

namapembeli idproduk
keterangan
mengurus

idpenjual
1
PENJUAL

namapenjua
l

katalaluan

12
2.3 PENORMALAN
2.3.1 Unnormalized Form (0NF)

idbandin PEMBELI PRODUK PENJUAL


gan

idpembeli namapembeli katalaluan idproduk namaprodu keterangan gambar harga idpenjual namapenjual katalaluan
k

1 CAR1 Messi 123 C001 Myvi 1.5L 1496 cc, 4 C001.png RM50 900.00 P01 Irfan 124
cylinder Myvi
1.5L 102 hp of
power 137 Nm
torque.
2 CAR2 Ronaldo 123 C002 Alza Perodua Alza 2022 C002.png RM75 500.00 P02 Nafri 124
MPV
kerb weight 1145
Kg
3 CAR3 Neymar 123 C003 Bugatti 8.0-liter 16-cylinder C003.png RM1000.000.0 P03 Ali 124
powerplant. 60 0
mph 2.3 seconds,
top speed 261 mph.
4 CAR4 Haaland 123 C004 Alphard 3.5L V6 Engine100 C004.png RM 460 000.00 P04 Baba 124
km/h (0–62 mph)

13
2.3.2 First Normal Form (1NF)

BANDING
idbandingan idpembeli namapembeli katalaluan idproduk namaprodu keterangan gambar harga idpenjual namapenjual katalaluan
k

1 CAR1 Messi 123 C001 Myvi 1.5L 1496 cc, 4 C001.png RM50 900.00 P01 Irfan 124
cylinder Myvi
1.5L 102 hp of
power 137 Nm
torque.
2 CAR2 Ronaldo 123 C002 Alza Perodua Alza 2022 C002.png RM75 500.00 P02 Nafri 124
MPV
kerb weight 1145
Kg
3 CAR3 Neymar 123 C003 Bugatti 8.0-liter 16-cylinder C003.png RM1000.000.0 P03 Ali 124
powerplant. 60 0
mph 2.3 seconds,
top speed 261 mph.
4 CAR4 Haaland 123 C004 Alphard 3.5L V6 Engine100 C004.png RM 460 000.00 P04 Baba 124
km/h (0–62 mph)

14
JUSTIFIKASI
Pada peringkat 1NF, semua atribut dan lajur adalah atomik dan jadual Banding mempunyai kunci primer iaitu IDBandingan. Namun masih lagi
terdapat kebergantungan fungsi separa.

IDPembeli, NamaPembeli, Password, Jantina, IDProduk, NamaProduk, Spesifikasi, GambarProduk, HargaProduk, IDPenjual , NamaPenjual,
Password bergantung fungsi separa kepada IDBandingan.

SKEMA HUBUNGAN

Banding (IDBandingan<KP>, IDPembeli, NamaPembeli, Password, Jantina, IDProduk, NamaProduk, Spefikasi, GambarProduk,
HargaProduk, IDPenjual , NamaPenjual, Password)

15
2.3.3 Second Normal Form (2NF)

BANDING
idbandingan idpembeli namapembeli katalaluan idproduk namaprodu keterangan gambar harga idpenjual namapenjual katalaluan
k

1 CAR1 Messi 123 C001 Myvi 1.5L 1496 cc, 4 C001.png RM50 900.00 P01 Irfan 124
cylinder Myvi
1.5L 102 hp of
power 137 Nm
torque.
2 CAR2 Ronaldo 123 C002 Alza Perodua Alza 2022 C002.png RM75 500.00 P02 Nafri 124
MPV
kerb weight 1145
Kg
3 CAR3 Neymar 123 C003 Bugatti 8.0-liter 16-cylinder C003.png RM1000.000.0 P03 Ali 124
powerplant. 60 0
mph 2.3 seconds,
top speed 261 mph.
4 CAR4 Haaland 123 C004 Alphard 3.5L V6 Engine100 C004.png RM 460 000.00 P04 Baba 124
km/h (0–62 mph)

16
JUSTIFIKASI
Jadual Banding mempunyai satu atribut kunci sahaja iaitu IDBandingan. Ini bermaksud jadual tersebut tidak mempunyai kebergantungan
fungsi separa dan jadual tidak perlu dipecahkan. Bentuk skema hubungan 2NF adalah sama dengan 1NF kerana jadual tidak dipecahkan.

SKEMA HUBUNGAN

Banding (IDBandingan<KP>, IDPembeli, NamaPembeli, Password, Jantina, IDProduk, NamaProduk, Spefikasi, GambarProduk,
HargaProduk, IDPenjual , NamaPenjual, Password)

17
2.3.4 Third Normal Form (3NF)

BANDING

idbandingan idpembeli idproduk


1 CAR1 C001
2 CAR2 C002
3 CAR3 C003
4 CAR4 C004

18
PENJUAL
idpenjual namapenjual katalaluan
P01 Irfan 124

P02 Nafri 124


P03 Ali 124

P04 Baba 124

PEMBELI
idpembeli namapembeli katalaluan
CAR1 Messi 123
CAR2 Ronaldo 123
CAR3 Neymar 123
CAR4 Haaland 123

19
PRODUK

idproduk namaproduk keterangan gambar harga idpenjual


C001 Myvi 1.5L 1496 cc, 4 C001.png RM50 900.00 P01
cylinder Myvi
1.5L 102 hp of
power 137 Nm
torque.
C002 Alza Perodua Alza 2022 C002.png RM 75 500.00 P02
MPV
kerb weight 1145 Kg
C003 Bugatti 8.0-liter 16-cylinder C003.png RM 1000 000.00 P03
powerplant. 60 mph
2.3 seconds, top
speed 261 mph.
C004 Alphard 3.5L V6 Engine100 C004.png RM 464 000.00 P04
km/h (0–62 mph)

20
JUSTIFIKASI:

Pada peringkat 3NF semua jadual perlu berada 2NF. Kebergantungan fungsi transitif dihapuskan dengan cara memecahkan jadual bandingan
kepada empat iaitu jadual Banding, jadual Pembeli , jadual Produk dan jadual Penjual. Jadual-jadual ini dihubungkan dengan kunci asing iaitu
idpembeli, idproduk dan idpenjual.
Kesemua atribut bukan kunci pada setiap jadual berada dalam kebergantungan fugsi sepenuh.

SKEMA HUBUNGAN
Banding (IDBandingan<KP>, IDPembeli, <KA>, IDProduk<KA>)
Pembeli (IDPembeli<KP>, NamaPembeli, Password)
Produk (IDProduk<KP>, NamaProduk, Spefikasi, GambarProduk, HargaProduk, IDPenjual <KA>)
Penjual (IDPenjual<KP>,Nama Penjual, Password)

21
2.4 Antara Muka Input dan Output
SWITCHBOARD

HOME PRODUK BANDING KELUAR

22
LAKARAN BORANG

TAMBAH PEMBELI TAMBAH PENJUAL

ID Pembeli: ID Pembeli:

Nama Pembeli: Nama Penjual:


Kata Laluan:
Kata Laluan:

TAMBAH TAMBAH

BORANG PEMBELI BORANG PENJUAL

23
2.4.2 SIGNUP

SIGNUP

ID Pembeli:

Nama Pembeli:

Kata Laluan:

SIGNUP CANCEL

Borang Signup

24
2.4.3 PEMBELI
2.4.3.1 HOME

HOME PRODUK BANDING KELUAR

25
2.4.3.2 PRODUK

HOME PRODUK BANDING KELUAR

SENARAI PRODUK SEMUA JENAMA

IMEJ IMEJ
IMEJ
KERETA 2 KERETA 3
KERETA 1

SPESIFIKASI KERETA SPESIFIKASI KERETA SPESIFIKASI KERETA

MAKLUMAT BANDING MAKLUMAT BANDING MAKLUMAT BANDING

IMEJ
KERETA 4

SPESIFIKASI KERETA

MAKLUMAT BANDING

26
2.4.3.3 BANDING

HOME PRODUK BANDING KELUAR

ID Gambar Nama Keterangan Harga Tindakan

C001 IMEJ1 Myvi keteranganMyvi RM50 900.00 X

C002 IMEJ2 Alza keteranganAlza RM 75 500.00 X

C003 IMEJ3 Bugatti keteranganBugatti RM 1000 000.00 X

27
2.4.4 PENJUAL
2.4.4.1 HOME

HOME PENJUAL PEMBELI PRODUK IMPORT KELUAR


2.4.4.2 PENJUAL

28
2.4.4.3 PENJUAL

HOME PENJUAL PEMBELI PRODUK IMPORT KELUAR


2.4.4.2 PENJUAL

ID Nama Password Tindakan

P01 Irfan 124 X

P02 Nafri 124 X

P03 Ali 124 X

P04 Baba 124 X

29
2.4.4.3 PEMBELI

HOME PENJUAL PEMBELI PRODUK IMPORT KELUAR


2.4.4.2 PENJUAL

ID Nama Password Tindakan

CAR1 Messi 123 X

CAR2 Ronaldo 123 X

CAR3 Neymar 123 X

CAR4 Haaland 123 X

30
2.4.4.4 PRODUK

HOME PENJUAL PEMBELI PRODUK IMPORT KELUAR


2.4.4.2 PENJUAL

ID Nama Gambar Keterangan Harga Tindakan

C001 Myvi IMEJ1 keteranganMyvi RM50 900.00 X

C002 Alza IMEJ2 keteranganAlza RM 75 500.00 X

C003 Bugatti IMEJ3 keteranganBugatti RM 1000 000.00 X

C004 Alphard IMEJ4 keteranganAlphard RM 464 000.00 X

31
2.4.4.5 IMPORT

HOME PENJUAL PEMBELI PRODUK IMPORT KELUAR

IMPORT

Jadual:

Nama Fail: Tiada fail


dipilih

IMPORT

32
3.0 MELAKSANAKAN PENYELESAIAN
3.1 Jadual
3.1.1 Jadual Penjual

3.1.2 Jadual Pembeli

33
3.1.3 Jadual Produk

3.1.4 Jadual Bandingan

34
3.1.5 Jadual Relation

35
3.2 Borang
3.2.1 Antara muka Tambah Pembeli

<?php
//memanggil fail sambungan
include("keselamatan.php");
include("sambungan.php");
3.2.2 Kod Aturcara Borang Tambah Pembeli
include("penjual_menu.php");

//menyemak kewujudan data post


if (isset($_POST["submit"]))
{
$idpembeli = $_POST["idpembeli"];
$password = $_POST["password"];
$namapembeli = $_POST["namapembeli"];
$sql = "insert into pembeli values('$idpembeli', '$password', '$namapembeli')";
$result = mysqli_query($sambungan, $sql);
if ($result == true)
echo "<br><center>Berjaya tambah</center>";
else
echo "<br><center>Ralat : $sql<br>".mysqli_error($sambungan)."</center>";

}
?>

<link rel="stylesheet" href="aborang.css">


<link rel="stylesheet" href="abutton.css">

<h3 class="panjang">TAMBAH PEMBELI</h3>


<form class="panjang" action="pembeli_insert.php" method="post">
<table>
<tr>
<td class="warna">ID Pembeli</td>
<td><input required type="text"
name="idpembeli" placeholder="cth: P065"
pattern="[A-Z0-9]{4}"
oninvalid="this.setCustomValidity('Sila masukkan 4 aksara')"
oninput="this.setCustomValidity('')">
</td>

36
</tr>
<tr>
<td class="warna">Jantina</td>
<td><input type="text" name="jantina" placeholder="cth: perempuan"></td>
</tr>
</table>
<button class="tambah" type="submit" name="submit">Tambah</button>
</form>form>
<br>
<center>
<button class="biru" onclick="tukar_warna(0)">Biru</button>
<button class="hijau" onclick="tukar_warna(1)">Hijau</button>
<button class="merah" onclick="tukar_warna(2)">Merah</button>
<button class="hitam" onclick="tukar_warna(3)">Hitam</button>
</center>

<script>
function tukar_warna(n) {
var warna = ["Blue", "Green", "Red", "Black"];
var teks = document.getElementsByClassName("warna");
for(var i=0; i<teks.length; i++)
teks[i].style.color=warna[n];
}
</script>

37
3.3 Query
3.3.1 Antara Muka Carian Harga Produk

38
3.3.2 Kod Atur Carian Harga Maksima

<?php
include("keselamatan.php");
include("sambungan.php");
include("pembeli_menu.php");
$idpembeli = $_SESSION["idpengguna"];

?>

<link rel="stylesheet" href="asenarai.css">


<link rel="stylesheet" href="abutton.css">

<div class="carian">
<form class="carian" action="pembeli_produk.php" method="post">
<label>Harga Maksima<input class="carian" type="text" name="maksima"></label>
<label>Jenama<input class="carian" type="text" name="jenama"></label>
<button class="cari" type="submit" name="submit">Cari</button>

</form>
</div>

<table class="produk">
<?php
$syarat =
"";
$tajuk = "SEMUA JENAMA";
if (isset($_POST["submit"]))
{
$jenama = $_POST["jenama"];
$maksima = $_POST["maksima"];
if ($jenama != NULL && $maksima == NULL)
{
$tajuk = "JENAMA $jenama";
$syarat = "where namaproduk like '%$jenama%'
";
}
else if ($jenama == NULL && $maksima != NULL)
{
$tajuk = "HARGA <= $maksima";
$syarat = "where harga <= $maksima";
}
else if ($jenama != NULL && $maksima != NULL)
{
$tajuk = "JENAMA $jenama DAN HARGA <= $maksima";
$syarat = "where namaproduk like '%$jenama%' and harga <= $maksima";
}
}
echo "<caption>SENARAI PRODUK $tajuk</caption>";

$sql = "select * from produk ".$syarat;


$result = mysqli_query($sambungan, $sql);
$bilangan = 0;
while($produk = mysqli_fetch_array($result))
{
if ($bilangan % 3 == 0)
{
echo "<tr class='produk'>";
}
echo "<td class='produk'>
<img width=200 src='imej/".$produk['gambar']."'><br>
39
$produk[namaproduk]<br>RM $produk[harga]<br><br>
echo "<caption>SENARAI PRODUK $tajuk</caption>";

$sql = "select * from produk ".$syarat;


$result = mysqli_query($sambungan, $sql);
$bilangan = 0;
while($produk = mysqli_fetch_array($result))
{
if ($bilangan % 3 == 0)
{
echo "<tr class='produk'>";
}
echo "<td class='produk'>
<img width=200 src='imej/".$produk['gambar']."'><br>
$produk[namaproduk]<br>RM $produk[harga]<br><br>
<a class='maklumat' href='produk_maklumat.php?idproduk=$produk[idproduk]'>
Maklumat</a>
<a class='banding' href='bandingan_insert.php?idpembeli=$idpembeli
&&idproduk=$produk[idproduk]'>Banding</a>
</td>";

$bilangan = $bilangan + 1;
if ($bilangan % 3 == 0)
{
echo "</tr>";
}
}
?>
</table>
<center><button class="cetak" onclick="window.print()">Cetak</button></center>

40
3.4 Laporan
3.4.1 Antara Muka Senarai Produk Mengikut Harga

41
3.4.2 Kod Arahan Antara Muka Senarai Produk Mengikut Harga
<?php
include("keselamatan.php");
include("sambungan.php");
include("penjual_menu.php");
?>

<link rel="stylesheet" href="asenarai.css">


<link rel="stylesheet" href="abutton.css">

<div class="carian">
<form class="carian" action="produk_senarai.php" method="post">
<label>Harga Maksima<input class="carian" type="text" name="maksima"></label>
<label>Jenama<input class="carian" type="text" name="jenama"></label>
<button class="cari" type="submit" name="submit">Cari</button>
</form>
</div>

<table>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Gambar</th>
<th>Keterangan</th>
<th>Harga</th>
<th colspan="3">Tindakan</th>
</tr>

<?php
$syarat = "";
$tajuk = "SEMUA KERETA";
if (isset($_POST["submit"]))
{
$jenama = $_POST["jenama"];
$maksima = $_POST["maksima"];
if ($jenama != NULL && $maksima == NULL)
{
$tajuk = "JENAMA $jenama";
$syarat = "where namaproduk like '%$jenama%'";
}
else if ($jenama == NULL && $maksima != NULL)
{
$tajuk = "HARGA <= $maksima";
$syarat = "where harga <= $maksima";
}
else if ($jenama != NULL && $maksima != NULL)
{
$tajuk = "JENAMA $jenama DAN HARGA <= $maksima";
$syarat = "where namaproduk like '%$jenama%' and harga <= $maksima";
}
}

echo "<caption>SENARAI PRODUK $tajuk</caption>";

$sql = "select * from produk ".$syarat;


$result = mysqli_query($sambungan, $sql);

?>

42
while($produk = mysqli_fetch_array($result))
{
$idproduk = $produk["idproduk"];
echo "<tr> <td>$produk[idproduk]</td>
<td>$produk[keterangan]</td>
<td><img width= 100 src= 'imej/$produk[gambar]'></td>
<td>$produk[keterangan]</td>
<td>RM $produk[harga]</td>
<td>
<a href='produk_update.php?idproduk=$idproduk' title='update'>
<img src='imej/update.png'>
</a>
</td>
<td>
<a href='javascript:padam(\"$idproduk\");' title='delete'>
<img src='imej/delete.png'>
</a>
</td>
<td>
<a href='produk_maklumat.php?idproduk=$idproduk' title='maklumat'>
<img src='imej/info2.png'>
</a>
</td>
</tr>";
}
?>
</table>
<center><button class="cetak" onclick="window.print()">Cetak</button></center>

<script>
function padam(id) {
if (confirm("Adakah anda ingin padam") == true) {
window.location = "produk_delete.php?idproduk=" + id;
}
}
</script>

43
3.5 Mengekod
3.5.1 Antara Muka Signup

44
3.5.2 Kod Arahan Signup

<?php
include("sambungan.php");
if(isset($_POST["submit"]))
{
$idpembeli = $_POST["idpembeli"];
$password = $_POST["password"];
$namapembeli = $_POST["namapembeli"];

$sql = "insert into pembeli values('$idpembeli', '$password', '$namapembeli')";


$result = mysqli_query($sambungan, $sql);
if ($result)
echo "<script>alert('Berjaya signup')</script>";
else
echo "<script>alert('Tidak berjaya signup')</script>";
echo "<script>window.location='index.php'</script>";
}
?>

<link rel="stylesheet" href="aborang.css">


<link rel="stylesheet" href="abutton.css">

<body>
<center><br>
<img src="imej/tajuk.png">
</center>

<h3 class="panjang">SIGN UP</h3>


<form class="panjang" action="signup.php" method="post">
<table>
<tr>
<td>ID Pembeli</td>
<td><input required type="text"
name="idpembeli" placeholder="P065"
pattern="[A-Z0-9]{4}"
oninvalid="this.setCustomValidity('Sila masukkan 4 aksara')"
oninput="this.setCustomValidity('')">
</td>
</tr>
<tr>
<td>Nama Pembeli</td>
<td><input type="text" name="namapembeli"></td>
</tr>
<tr>
<td>Password</td>
<td>Password</td>
<td><input type="text" name="password"></td>
</tr><td><input type="text" name="password"></td>
</tr>
</table>
</table>
<button class="tambah" type="submit" name="submit">Daftar</button>
<button class="batal"
<button class="tambah" type="submit"
type="button" name="submit">Daftar</button>
onclick="window.location='index.php'">Batal</button>
<button
</form> class="batal" type="button" onclick="window.location='index.php'">Batal</button>
</form>
</body>
</body>

45
3.5.3 Antara Muka Login

46
3.5.4 Kod Arahan Login

<?php
session_start();
include ("sambungan.php");
if (isset($_POST["submit"])) {
$userid = $_POST["userid"];
$password = $_POST["password"];

$jumpa = FALSE;
if ($jumpa == FALSE) {
$sql = "SELECT * FROM pembeli";
$result = mysqli_query($sambungan, $sql);
while($pembeli = mysqli_fetch_array($result)) {
if ($pembeli["idpembeli"] == $userid && $pembeli["password"] == $password) {
$jumpa = TRUE;
$_SESSION["idpengguna"] = $pembeli["idpembeli"];
$_SESSION["nama"] = $pembeli["namapembeli"];
$_SESSION["status"] = "pembeli";
break;
}
}
}
if ($jumpa == FALSE) {
$sql = "SELECT * FROM penjual";
$result = mysqli_query($sambungan, $sql);
while($penjual = mysqli_fetch_array($result)) {
if ($penjual["idpenjual"] == $userid && $penjual["password"] == $password) {
$jumpa = TRUE;
$_SESSION["idpengguna"] = $penjual["idpenjual"];
$_SESSION["nama"] = $penjual["namapenjual"];
$_SESSION["status"] = "penjual";
break;
}
}
}
if ($jumpa == TRUE)
if ($_SESSION["status"] == "pembeli")
header("Location: pembeli_home.php");
else if ($_SESSION["status"] == "penjual")
header("Location: penjual_home.php");
else
echo "window.location='index.php'";
echo "<script>alert('kesalahan pada username atau password');</script>";
}
?>

<link rel="stylesheet" href="abutton.css">


<link rel="stylesheet" href="aborang.css">
<center>

<img class="tajuk" src="imej/tajuk.png" width=500>


</center>

<h3 class="pendek">LOG IN</h3>


<form class="pendek" action="index.php" method="post">
<table>
<tr>
<td><img src="imej/user.png"></td> <td><input type="text" name="userid"
placeholder="idpengguna"></td>
</tr>
<tr> 47
?>

<link rel="stylesheet" href="abutton.css">


<link rel="stylesheet" href="aborang.css">
<center>

<img class="tajuk" src="imej/tajuk.png" width=500>


</center>

<h3 class="pendek">LOG IN</h3>


<form class="pendek" action="index.php" method="post">
<table>
<tr>
<td><img src="imej/user.png"></td> <td><input type="text" name="userid"
placeholder="idpengguna"></td>
</tr>
<tr>
<td><img src="imej/lock.png"></td>
<td><input type="password" name="password" placeholder="password"></td>
</tr>
</table>
<button class="login" type="submit" name="submit">Login</button>
<button class="signup" type="button" onclick="window.location='signup.php'">Sign Up</button>
</form>

48
3.5.5 Antara Muka Import

49
50
3.5.6 Kod Arahan Import

<?php
include("keselamatan.php");
include("sambungan.php");
include("penjual_menu.php");

if (isset($_POST["submit"]))
{
$namajadual = $_POST["namajadual"];
$namafail = $_FILES["namafail"]["name"];
$sementara = $_FILES["namafail"]["tmp_name"];
move_uploaded_file($sementara, $namafail);

$fail = fopen($namafail, "r");

while (!feof($fail))
{
$medan = explode(",", fgets($fail));
$berjaya = false;

if (strtolower($namajadual) === "pembeli")


{
$idpembeli = $medan[0];
$password = $medan[1];
$namapembeli = $medan[2];
$sql = "insert into pembeli
values('$idpembeli', '$password', '$namapembeli')";
if (mysqli_query($sambungan, $sql))
$berjaya = true;
else
echo "<br><center>Ralat: $sql<br>".mysqli_error($sambungan)."</center>";
}

if (strtolower($namajadual) === "penjual")


{
$idpenjual = $medan[0];
$password = $medan[1];
$namapenjual = $medan[2];
$sql = "insert into penjual
values('$idpenjual', '$password', '$namapenjual')";
if (mysqli_query($sambungan, $sql))
$berjaya = true;
else
echo "<br><center>Ralat: $sql<br>".mysqli_error($sambungan)."</center>";
}
}

if ($berjaya == true)
echo "<script>alert('Rekod berjaya di import');</script>";
else
echo "<script>alert('Rekod tidak berjaya di import');</script>";

mysqli_close($sambungan);
}
?>

<link rel="stylesheet" href="aborang.css">


<link rel="stylesheet" href="abutton.css">

<h3 class="panjang">IMPORT DATA</h3>


<form class="panjang" action="import.php"51
method="post" enctype="multipart/form-data"
if ($berjaya == true)
echo "<script>alert('Rekod berjaya di import');</script>";
else
echo "<script>alert('Rekod tidak berjaya di import');</script>";

mysqli_close($sambungan);
}
?>

<link rel="stylesheet" href="aborang.css">


<link rel="stylesheet" href="abutton.css">

<h3 class="panjang">IMPORT DATA</h3>


<form class="panjang" action="import.php" method="post" enctype="multipart/form-data"
class="import">
<table>
<tr>
<td>Jadual</td>
<td>
<select name="namajadual">
<option>Pembeli</option>
<option>Penjual</option>
</select>
</td>
</tr>
<tr>
<td>Nama fail</td>
<td><input type="file" name="namafail" accept=".txt"></td>
</tr>
</table>
<button class="import" type="submit" name="submit">Import</button>
</form>

52
3.5.7 Antara Muka Kotak Popup

Kotak pop up mengesahkan


import

Kotak pop up mengesahkan


sign up

3.5.8 Kod Arahan Antara Muka Kotak Popup

//kotak popup untuk import


if($berjaya == true)
echo"<script>alert('Rekod berjaya di import');</script>";
else
echo"<script>alert('Rekod tidak berjaya di import,);</script>";

mysqli_close($sambungan);

//kotak popup untuk signup


<?php
include("sambungan.php");
if(isset($_POST["submit"]))
{
$idpembeli = $_POST["idpembeli"];
$password = $_POST["password"];
$namapembeli = $_POST["namapembeli"];

$sql = "insert into pembeli values('$idpembeli', '$password', '$namapembeli')";


$result = mysqli_query($sambungan, $sql);
if($result)
echo"<script>alert('Berjaya signup')</script>";
else
echo"<script>alert('Tidak berjaya signup')</script>";
echo"<script>window.location='index.php'</script>";
}
?>

53
3.5.9 Query yang berfungsi

3.5.9.1 Antara Muka Pilihan Jenis Laporan

54
3.5.9.2 Kod Atur cara Antara Muka Pilihan Jenis Laporan

<?php
include("keselamatan.php");
include("sambungan.php");
include("penjual_menu.php");
?>

<link rel="stylesheet" href="asenarai.css">


<link rel="stylesheet" href="abutton.css">

<div class="carian">
<form class="carian" action="produk_senarai.php" method="post">
<label>Harga Maksima<input class="carian" type="text" name="maksima"></label>
<label>Jenama<input class="carian" type="text" name="jenama"></label>
<button class="cari" type="submit" name="submit">Cari</button>
</form>
</div>

<table>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Gambar</th>
<th>Keterangan</th>
<th>Harga</th>
<th colspan="3">Tindakan</th>
</tr>

<?php
$syarat = "";
$tajuk = "SEMUA KERETA";
if (isset($_POST["submit"]))
{
$jenama = $_POST["jenama"];
$maksima = $_POST["maksima"];
if ($jenama != NULL && $maksima == NULL)
{
$tajuk = "JENAMA $jenama";
$syarat = "where namaproduk like '%$jenama%'";
}
else if ($jenama == NULL && $maksima != NULL)
{
$tajuk = "HARGA <= $maksima";
$syarat = "where harga <= $maksima";
}
else if ($jenama != NULL && $maksima != NULL)
{
$tajuk = "JENAMA $jenama DAN HARGA <= $maksima";
$syarat = "where namaproduk like '%$jenama%' and harga <= $maksima";
}
}

echo "<caption>SENARAI PRODUK $tajuk</caption>";

$sql = "select * from produk ".$syarat;


$result = mysqli_query($sambungan, $sql);
while($produk = mysqli_fetch_array($result))
{
$idproduk = $produk["idproduk"];
echo "<tr> <td>$produk[idproduk]</td>
55
<td>$produk[keterangan]</td>
$tajuk = "JENAMA $jenama DAN HARGA <= $maksima";
$syarat = "where namaproduk like '%$jenama%' and harga <= $maksima";
}
}

echo "<caption>SENARAI PRODUK $tajuk</caption>";

$sql = "select * from produk ".$syarat;


$result = mysqli_query($sambungan, $sql);
while($produk = mysqli_fetch_array($result))
{
$idproduk = $produk["idproduk"];
echo "<tr> <td>$produk[idproduk]</td>
<td>$produk[keterangan]</td>
<td><img width= 100 src= 'imej/$produk[gambar]'></td>
<td>$produk[keterangan]</td>
<td>RM $produk[harga]</td>
<td>
<a href='produk_update.php?idproduk=$idproduk' title='update'>
<img src='imej/update.png'>
</a>
</td>
<td>
<a href='javascript:padam(\"$idproduk\");' title='delete'>
<img src='imej/delete.png'>
</a>
</td>
<td>
<a href='produk_maklumat.php?idproduk=$idproduk' title='maklumat'>
<img src='imej/info2.png'>
</a>
</td>
</tr>";
}
?>
</table>
<center><button class="cetak" onclick="window.print()">Cetak</button></center>

<script>
function padam(id) {
if (confirm("Adakah anda ingin padam") == true) {
window.location = "produk_delete.php?idproduk=" + id;
}
}
</script>

56
3.5.10 Antara Muka Cetak

3.5.11 Kod Aturcara Antara Muka Cetak


<center><button class="cetak" onclick="window.print()">Cetak</button></center>

57
4.0 MENGUJI DAN MENYAHRALAT
4.1 Ralat sintaks
Perakuan calon: Tiada ralat sintaks berlaku.

4.2 Ralat logik


Nama ID Sampel Output
Item Pembeli Data
Jenis Varchar CAR1 CAR1
Data
Had Bilanga CAR
Bawa n aksara
h 3

Had Bilanga CAR5


Atas n aksara 5
5

4.3 Ralat masa larian (run time)


Perakuan calon: Tiada ralat masa larian berlaku.

58
5.0 MENDOKUMENTASI
5.1 Laporan setiap fasa

}
}

if ($jumpa == TRUE)
<?php if ($_SESSION["status"] == "pembeli")
session_start();
header("Location: pembeli_home.php");
else if ($_SESSION["status"] == "penjual")
//sambunganheader("Location:
kepada database penjual_home.php");
include
else("sambungan.php");
echo "<script>
//mengambil data POST
alert('kesalahan pada username atau password');</
if (isset($_POST["submit"])) {
window.location='index.php';
$userid </script>";
= $_POST["userid"];
} $password = $_POST["password"];
?>
$jumpa = FALSE;
if ($jumpa ==href="abutton.css">
<link rel="stylesheet" FALSE) {
//arahan SQL
<link rel="stylesheet" untuk mencari data dari jadual pembeli
href="aborang.css">
$sql = "SELECT * FROM pembeli";
<center>
//melaksanakan
<img class="tajuk" proses carian width=500>
src="imej/tajuk.png"
</center> $result = mysqli_query($sambungan, $sql);

//login berjaya IN</h3>


<h3 class="pendek">LOG
while($pembeli
<form class="pendek" = mysqli_fetch_array($result))
action="index.php" method="post"> {
<table> if ($pembeli["IDPembeli"] == $userid && $pembeli["Password"] == $password) {
<tr> $jumpa = TRUE;
<td><img$_SESSION["idpengguna"]
src="imej/user.png"></td> = $pembeli["IDPembeli"];
$_SESSION["nama"] = $pembeli["NamaPembeli"];
<td><input type="text" name="userid" placeholder="idpengguna"></td>
</tr> $_SESSION["status"] = "pembeli";
<tr> $_SESSION["Jantina"] = "Jantina";
<td><imgbreak;
src="imej/lock.png"></td>
}
<td><input type="password" name="password" placeholder="password"></td>
</tr> }
}
</table>
<button class="login" type="submit" name="submit">Login</button>
if ($jumpa
<button == FALSE)
class="signup" {
type="button" onclick="window.location='signup.php'">Sign
Up</button> $sql = "SELECT * FROM penjual";
</form> //arahan SQL untuk mencari data jadual penjual
$result = mysqli_query($sambungan, $sql);

//login berjaya
while($penjual = mysqli_fetch_array($result)) {
if ($penjual["IDPenjual"] == $userid && $penjual["Password"] == $password) {
$jumpa = TRUE;
$_SESSION["idpengguna"] = $penjual["IDPenjual"];
$_SESSION["Nama"] = $penjual["NamaPenjual"];
$_SESSION["status"] = "penjual";
$_SESSION_["Jantina"] = "Jantina";
break;
}

59
6.0 Nilai
6.4 Manual Pengguna

1. Cara Log Masuk Pengguna

1. Masukkan idpengguna dan password di ruangan yang disediakan. Jika semua telah
dimasukkan, klik butang login.

*Sila klik butang OK sekiranya pop up message dikeluarkan mengatakan anda


memasukkan maklumat yang salah.

60
2. Cara Untuk Mendaftar Pengguna Baharu

1. Klik pada butang signup


2. Masukkan ID Pembeli
3. Masukkan Nama Pembeli
4. Masukkan Password.
5. Masukkan Jantina
6. Klik butang daftar

*Pop up message berjaya signup akan keluar jika anda berjaya mendaftar.

61
3. Cara Login Untuk Pembeli

1.Masukkan idpengguna dan password pengguna seperti di atas.


2.Menu utama pembeli akan dipaparkan selepas klik butan login

62
4. Cara Menyemak Produk
1.Sila klik butang produk kemudian klik butang maklumat.

2.Maklumat produk akan dipaparkan.

3.Klik Cetak jika ingin mencetak produk.


4.Klik butang produk jika ingin melihat produk yang lain.

63
5.Cara Membanding Produk

1. Klik butang produk dan klik banding

2. Satu kotak popup akan keluar jika produk telah dimasukkan ke dalam senarai
bandingan.

64
3. Proses banding hanya membenarkan 3 produk sahaja untuk dibuat perbandingan pada
satu masa dan pengguna mestilah padam item/ produk jika ingin membuat
perbandingan dengan produk yang lain.

65
6.Cara Login Untuk Penjual

1. Masukkan idpengguna dan password pengguna seperti di atas.

2. Menu utama penjual akan dipaparkan selepas klik butang login.

66
7. Cara Menambah Penjual

1. Klik butang penjual dan klik butang tambah


2. Paparan tambah penjual akan dipaparkan

3. Masukkan ID Penjual
4. Masukkan Nama Penjual
5. Masukkan Password
6. Klik butang Tambah
7. Perkataan “Berjaya Tambah” akan muncul jika maklumat berjaya ditambah.

67
68
8. Cara Memaparkan Senarai Penjual

1. Klik pada butang penjual.


2. Klik pada butang senarai.
3. Senarai nama penjual akan dipaparkan.

9. Cara Mengemaskini Maklumat Penjual

1. Klik pada butang penjual.


2. Klik pada butang senarai.

69
3. Senarai nama penjual akan dipaparkan.
4. Klik pada ikon update di lajur tindakan.
5. Tukarkan maklumat yang hendak diubah.

6. Klik update jika telah selesai mengemaskini maklumat penjual.


7. Perkataan “Berjaya kemaskini” akan muncul jika maklumat berjaya dikemaskini.

10. Cara Memadam Maklumat Penjual

1. Klik pada butang penjual.


2. Klik pada butang senarai.
3. Senarai nama penjual akan dipaparkan.
4. Klik pada ikon padam di lajur tindakan.

70
1. Satu kotak popup akan muncul
2. Klik Ok untuk padam data
3. Data berjaya dipadam.

11. Cara Menambah Pembeli

1. Klik butang pembeli dan klik butang tambah


2. Paparan tambah pembeli akan dipaparkan

71
3. Masukkan ID Pembeli
4. Masukkan Nama Pembeli
5. Masukkan Password
6. Klik butang Tambah
7. Perkataan “Berjaya Tambah” akan muncul jika maklumat berjaya ditambah.

72
12. Cara Memaparkan Senarai Pembeli

1. Klik pada butang pembeli.


2. Klik pada butang senarai.
3. Senarai nama pembeli akan dipaparkan.

13. Cara Mengemaskini Maklumat Pembeli

1. Senarai nama pembeli akan dipaparkan.


2. Klik pada ikon update di lajur tindakan.
73
3. Tukarkan maklumat yang hendak diubah.

1. Klik update jika telah selesai mengemaskini maklumat pembeli.


2. Perkataan “Berjaya kemaskini” akan muncul jika maklumat berjaya dikemaskini.

74
14. Cara Memadam Maklumat Pembeli

1. Klik pada butang pembeli.


2. Klik pada butang senarai.
3. Senarai nama pembeli akan dipaparkan.
4. Klik pada ikon padam di lajur tindakan.

1. Satu kotak popup akan muncul.


2. Klik Ok untuk padam data.
3. Data berjaya dipadam.

75
15. Cara Menambah Produk

1. Klik butang produk dan klik butang tambah.


2. Paparan tambah produk akan dipaparkan.

3. Masukkan ID Produk.
4. Masukkan Nama Produk.
5. Pilih dan masukkan Gambar.
6. Masukkan Harga.
7. Masukkan Spesifikasi.
76
8. Pilih nama penjual.
9. Klik butang Tambah.
10. Perkataan “Berjaya tambah” akan muncul jika maklumat berjaya ditambah.

16. Cara Memaparkan Senarai Produk

1. Klik pada butang produk.


2. Klik pada butang senarai.
3. Senarai produk akan dipaparkan.

77
17. Cara mengemaskini maklumat produk

78
1. Klik pada butang produk.
2. Klik pada butang senarai.
3. Senarai produk akan dipaparkan.
4. Klik pada ikon update di lajur tindakan.
5. Tukarkan maklumat yang hendak diubah.

6. Klik update jika telah selesai mengemaskini maklumat produk.


7. Perkataan “Berjaya kemaskini” akan muncul jika maklumat berjaya dikemaskini

79
18. Cara Memadam Produk

1. Klik pada butang produk.


2. Klik pada butang senarai.
3. Senarai produk akan dipaparkan.
4. Klik pada ikon padam di lajur tindakan.

5. Satu kotak popup akan muncul.


6. Klik Ok untuk padam data.
7. Data Berjaya dipadam.

80
19. Cara Import Pembeli/ Penjual

1. Klik butang import


2. Pilih menu jadual kepada pembeli/ penjual
3. Klik ‘Choose file’ untuk memilih fail untuk dimuat naik.

81
4. Setelah fail dipilih, sila klik open dan klik import.

5. Jika fail berjaya dimuatnaik, satu popup “Rekod berjaya diimport” akan dipaparkan.

82
MUHAMMAD IRFAN BIN SHAHRUL NIZAM
060306101029

Sistem pembelian FindMyCar.com dibina oleh saya sendiri dan idea dimunculkan oleh
saya pada tahap pelaksanaan projek tersebut .
Sistem tersebut mempunyai nilai komersial seperti paparan , carian dan padam .

Sistem pembelian FindMyCar.com ini mesra pengguna dan telah menpati kehendak
pengguna seperti fungsi mengubah saiz tulisan .

Sistem pembelian FindMyCar.com ini dapat berfungsi dengan sepenuhnya dan baik
dalam persekitaran rangkaian secara konsisten .
(192.168.1.40/kedaiirfan)

Rujuk Dokumen Pelaporan

• Saya rajin menyiapkan setiap bahagian yang ada dalam sistem tersebut .
• Saya selalu mendengar arahan yang disampaikan oleh guru Sains Kompuer saya
semasa menyiapkan tugasan tersebut .

Tandatangan Calon:

83
Rujukan

Buku

- Ismail Bin Shaari, 2021. Score A+ Tingkatan 5 Edisi 5 Projek Sains Komputer
Pertandingan Secara Langkah Demi Langkah. Ipoh, Perak: ICT ScoreAPlus

- Norlini binti Ramli, Paridah binti Daud, Noor Azma binti Ismail, Noor Lees binti Ismail,
Abd.Halim bin Bohadean @ Bohari, 2017. Buku Teks Sains Komputer Tingkatan 5 KSSM,
Shah Alam, Selangor: OxfordFajar Sdn.Bhd

Laman Web

- https://www.youtube.com/watch?v=b-voFZL2OlM&list=PL3LqcdHbeC-
DR8TbVFVt2ZLa1Bd2fhutr

- https://www.ictscoreaplus.com/warna.html

- https://www.ictscoreaplus.com/semak

- https://pixabay.com/illustrations/flower-white-pattern-floral-5239814/

- https://cooltext.com/

- https://iconarchive.com/

- https://id.scribd.com/doc/168877657/Borang-Penyertaan-Poster-IPGKPP

84
Lampiran

85
86

You might also like