LAPORAN PROJEK
SAINS KOMPUTER
TAJUK : SELF E-LEARNING SYSTEM
NAMA CALON : OOI LI EN
NOMBOR KP : 040725-02-0794
ANGKA GILIRAN : KJ111A098
SMK DATO’ BIJAYA SETIA
ALAMAT SEKOLAH :
NAMA GURU CG. SUNITA BT MAYDIN
:
TANDATANGAN GURU:
TARIKH 30 OKTOBER 2021
:
PROJEK SAINS KOMPUTER
SIJIL PELAJARAN MALAYSIA - BORANG PERAKUAN CALON
Borang ini mestilah ditandatangani oleh calon dan guru atau pentaksir yang mentaksir projek calon, dan
dilampirkan bersama dengan laporan projek yang dihantar kepada guru atau pentaksir. Kegagalan calon
menandatangani borang perakuan ini akan menyebabkan calon tidak diberikan sebarang markah untuk
projek yang dihasilkan.
Nama Calon OOI LI EN
No. Kad Pengenalan Calon 040725-02-0794
Angka Giliran Calon KJ111A098
Nombor Pusat Calon KJ111
Makluman kepada calon:
Projek yang dihantar untuk dinilai mestilah merupakan hasil kerja calon sendiri. Projek calon boleh
dibatalkan sekiranya calon didapati meniru projek calon lain atau membenarkan calon lain untuk meniru
projek yang dihasilkan oleh calon sendiri, atau calon didapati menipu dalam apa cara sekalipun bagi
menghasilkan projek tersebut. Calon perlu berintegriti dan jujur, mengamalkan kesamarataan, adil dan
menghormati maruah individu, kumpulan dan komuniti. Calon akan bertanggungjawab atas tindakan
serta keputusan yang diambil.
Perakuan Keaslian Kerja Kursus Calon:
Saya telah mengaku projek membaca dan memahami makluman di atas. Saya telah menghasilkan projek
Sains Komputer tanpa bantuan daripada mana-mana pihak, kecuali dengan penerangan oleh pihak yang
dibenarkan, iaitu guru mata pelajaran Sains Komputer di sekolah (untuk sekolah kerajaan dan calon
sekolah bantuan kerajaan).
Tandatangan Calon 30 OKTOBER 2021
Tarikh
Perakuan oleh Guru atau Pentaksir:
Saya mengesahkan bahawa projek Sains Komputer telah dihasilkan mengikut spesifikasi yang telah
ditetapkan. Saya telah memeriksa projek calon dan saya berpuas hati bahawa sepanjang pengetahuan
saya, projek tersebut telah dihasilkan sendiri oleh calon.
Tandatangan Guru/Pentaksir CG. SUNITA BT MAYDIN
Nama Guru/Pentaksir 30 OKTOBER 2021
Tarikh SMK DATO’ BIJAYA SETIA
Alamat
PENGHARGAAN
Saya mengambil kesempatan ini untuk mengucapkan ribuan terima kasih kepada semua
pihak yang telah menolong dan memberi kerjasama yang tidak ternilai untuk saya menyiapkan
kerja kursus Sains Komputer ini.
Terlebih dahulu, saya bersyukur kepada Tuhan keran telah membantu saya menyiapkan
kerja kursus ini dalam tempoh yang telah ditetapkan. Saya juga ingin mengucapkan terima kasih
kepada guru Sains Komputer saya, Cikgu Sunita Bt Maydin. Beliau sentiasa memberi panduan,
bimbingan dan nasihat yang bermanfaat kepada saya semasa menjalankan kerja kursus ini.
Saya juga ingin mengucapkan terima kasih kepada ibu bapa saya yang telah memberikan
sokongan dan dorongan secara fizikal kepada saya. Rakan-rakan saya pun menolong saya dalam
menyiapkan tugasan ini serta membincangkan cara penyelesaian dengan saya. Jadi, saya ingin
mengucapkan terima kasih kepada mereka yang sudi menemani saya menyiapkan kerja kursus
ini.
Akhir sekali, saya mengucapkan terima kasih kepada semua pihak yang sedia menolong
saya dalam kerja kursus ini. Saya janji tidak akan lupa pertolongan yang telah diberikan selama
ini.
ISI KANDUNGAN MUKA SURAT
TAJUK
1
1.0 MENGANALAISIS MASALAH 1
1.1 Pernyataan Masalah 1
1.2 Objektif 2
1.3 Skop 2
1.4 Kumpulan Sasaran 3
1.5 Menilai Sistem Sedia Ada
1.6 Tempoh Projek 4
5
2.0 MEREKA BENTUK PENYELESAIAN 6-7
2.1 Algoritma 8-10
2.2 Gambar Rajah Perhubungan Entiti (ERD)
2.3 Pernormalan 11-13
2.4 Antara Muka Input 14-15
17-19
3.0 MELAKSANAKAN PENYELESAIAN 20-26
3.1 Jadual
3.2 Borang 27
3.3 Query 27
3.4 Laporan 28
3.5 Mengekod
28
4.0 MENGUJI DAN MENYAH RALAT 39
4.1 Ralat Sintaks 29-38
4.2 Ralat Logik
4.3 Ralat Masa Larian
5.0 MANUAL PENGGUNA
5.1 Dokumentasi Dalaman
5.2 Sumber Rujukan
6.4 MANUAL PENGGUNA
1.0 MENGANALISIS MASALAH
1.1 Pernyataan Masalah
Guru-guru Tingkatan 3 Sekolah Menengah Kebangsaan Dato’ Bijaya Setia
mengumpul koleksi pelbagai bentuk soalan untuk berbilang subjek dan mengurus
penilaian prestasi murid-murid secara manual yang melibatkan proses
pengumpulan data-data seperti set soalan, markah kuiz serta gred secara manual.
Koleksi soalan dan penilaian prestasi juga masih dilaksanakan secara manual. Ini
menyukarkan guru untuk mengesan kemajuan dan tahap penguasaan murid bagi
sesuatu topik untuk subjek pilihan dalam sesuatu tempoh yang ditetapkan.
Berkemungkinan akan berlaku keciciran dan kelewahan maklumat murid, markah
kuiz atau gred serta set soalan yang tidak dijawab.
Sistem pengurusan penilaian berasaskan web dapat mengatasi masalah untuk
mengumpul koleksi soalan secara digital dan membuat penilaian prestasi setiap
murid serta menjana laporan kemajuan murid dengan tersusun,cepat dan tepat.
Sistem ini membolehkan guru mata pelajaran untuk mengesan tahap pencapaian
murid terhadap subjek beliau dan memantau dengan mudah.
1.2 Objektif
● Dapat merekod dan mengumpul soalan mengikut topik bagi subjek Tingkatan 3.
● Dapat mengira jumlah skor jawapan yang betul bagi setiap set soalan/kuiz yang
di jawab oleh murid.
1.3 Skop
● Sistem ini dapat menganalisa penilaian prestasi setiap murid Tingkatan 3 bagi
pelbagai subjek.
● Sistem ini mempunyai koleksi soalan dalam pelbagai bentuk secara
berangkaian bagi topik-topik dalam subjek Tingkatan 3.
1
1.4 Kumpulan Sasaran
● Guru-guru subjek Tingkatan 3.
● Murid Tingkatan 3
1.5 Menilai Sistem Sedia Ada
Fungsi sistem sedia ada:
● Kekuatan:
Sistem sedia ada masih berfungsi dengan baik serta analisa maklumat prestasi
murid-murid Tingkatan 3 juga dapat dilaksanakan.
● Kelemahan:
Maklumat yang dikutip mungkin tidak tepat kerana disimpan secara manual dan
proses analisa maklumat menggunakan masa yang lama. Menjawab set-set soalan
secara manual boleh menyebabkan kertas set soalan hilang dan menjadi sukar
untuk semakan serta set-set tersebut menggunakan ruang simpanan yang banyak.
Laporan prestasi markah dan gred juga mengambil masa yang agak lama untuk
diberi kepada murid. Selain itu, laporan prestasi murid mungkin akan wujud
kesalahan gred dan markah yang silap.
● Justifikasi:
Sistem ini dihasilkan untuk memudahkan guru-guru Tingkatan 3 untuk mengurus
koleksi soalan dan memantau prestasi murid secara berangkaian. Guru-guru
Tingkatan 3 juga boleh mengetahui tahap penguasaan murid Tingkatan 3 terhadap
subjek dalam sesuatu tempoh.
● Nama sistem:
Self E-Learning System
2
1.6 Tempoh Projek
TINGKATAN 4
BULAN/ SEPT. OKT. 2020 NOV. DIS. 2020
PERKARA 2020 2020
MINGGU 12 34123412341234
1. Muat naik tema kerja
projek
2. Muat turun tema kerja
projek. Taklimat guru
kepada pelajar
3. Pelaksanaan kerja projek
Fasa 1 dan Fasa 2
4. Penyelarasan markah Ting. 4
oleh Pentaksir Kawasan
(PKw) / Ketua Pentaksir
Negeri (KPN)
5. Kemasukan markah online
(markah tingkatan 4)
TINGKATAN 5
3
2.0 MEREKA BENTUK PENYELESAIAN
2.1 Algoritma
4
2.2 Gambarajah Perhubungan Entiti (ERD)
5
2.3 Penormalan
0NF
PEREKODAN(idpengguna, nama, jantina, aras, password, idsubjek, subjek,
idtopik, topik, markah, idsoalan, nom_soalan, soalan, jenis, gambarajah, idpilihan,
jawapan, pilihan_jawapan, jenis, skor, catatan_masa)
MASALAH:
1. Lajur tidak atomik
2. Tiada Kunci Primer
PENYELESAIAN:
1. Wujudkan 1NF untuk memastikan lajur atomik dan mempunyai kunci
primer.
1NF
PEREKODAN(idpengguna<KP>, nama, jantina, aras, password,
idsubjek<KP>, subjek, idtopik<KP>, topik, markah, idsoalan<KP>,
nom_soalan, soalan, jenis, gambarajah, idpilihan<KP>, jawapan,
pilihan_jawapan, jenis, skor, catatan_masa)
MASALAH:
1. Jadual tidak mempunyai kedua-dua kebergantungan fungsi sepenuh dan
kebergantungan
fungsi separa.
PENYELESAIAN:
1. Wujudkan 2NF supaya Jadual mempunyai kedua-dua kebergantungan
fungsi sepenuh dan kebergantungan fungsi separa.
2. Jadual akan dipecahkan kepada beberapa jadual yang lain.
6
2NF
PEREKODAN(idpengguna<KP>, nama, jantina, aras, password)
SUBJEK (idsubjek<KP>, subjek)
TOPIK (idtopik<KP>, topik, markah)
SOALAN (idsoalan<KP>, nom_soalan, soalan, jenis, gambarajah)
PILIHAN(idpilihan<KP>, jawapan, pilihan_jawapan, jenis, skor, catatan_masa)
MASALAH:
1. Terdapat kebergantungan fungsi transitif dimana atribut jenis,skor,
catatan_masa tidak bergantung kepada kunci primer idpilihan, sebaliknya ia
bergantung kepada idpengguna.
PENYELESAIAN:
1. Wujudkan 3NF dan memastikan terdapat kunci asing untuk mengaitkan
antara sesama jadual.
2. Wujudkan juga satu jadual yang menghubungkan antara sesama kunci
primer.
3NF
PENGGUNA (idpengguna<KP>, nama, jantina, aras, password)
SUBJEK (idsubjek<KP>,subjek)
TOPIK (idtopik<KP>, topik, markah, idsubjek <KA>, idpengguna<KA>)
SOALAN(idsoalan<KP>,nom_soalan, soalan, jenis, gambarajah, idtopik<KA>)
PILIHAN(idpilihan<KP>,nom_soalan,jawapan, pilihan_jawapan,
idsoalan<KA>)
PEREKODAN(idperekodan<KP>, idpengguna<KA>, idtopik<KA>, jenis, skor,
catatan_masa)
7
2.4 Antara Muka Input / Output
i) Antara muka
ii) Borang subjek
8
iii) Borang topik
iv) Borang soalan dan pilihan
9
v) Laporan perekodan
10
3.0 MELAKSANAKAN PENYELESAIAN
3.1 Jadual
Jadual : pengguna
Jadual : perekodan
11
Jadual : pilihan
Jadual : soalan
12
Jadual : subjek
Jadual : topik
13
3.2 Borang
1. Borang pengguna
2. Borang perekodan
14
3. Borang pilihan
4. Borang soalan
5. Borang subjek
15
6. Borang topik (isi tempat kosong)
7. Borang topik (Pelbagai Jawapan / Benar Palsu)
16
3.3 Query
Coding untuk memilih subjek
<?php
$no=1;
$data1=mysqli_query($hubung,"SELECT * FROM subjek");
while ($info1=mysqli_fetch_array($data1))
{
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $info1['subjek']; ?></td>
<td><a href="papar_topik.php?idsubjek=<?php echo
$info1['idsubjek'];?>"><button>PAPAR</button></a>
<a href="tambah_topik.php?idsubjek=<?php echo
$info1['idsubjek'];?>"><button>CIPTA</button></a></td>
</tr>
Antara muka query
Klik butang pilih untuk
memaparkan subjek yang dipilih
17
Coding untuk memilih senarai topik bagi sesuatu subjek
<?php
$no=1;
$data1= mysqli_query($hubung,"SELECT * FROM subjek AS s
INNER JOIN topik AS t ON s.idsubjek = t.idsubjek
INNER JOIN soalan AS q ON t.idtopik = q.idtopik
WHERE s.idsubjek='$subjek_pilihan'
group by q.idtopik,q.jenis ");
while ($info1= mysqli_fetch_array($data1)) {
?>
<tr><td><?php echo $no; ?></td>
<td><?php echo $info1['idtopik']; ?></td>
<td><?php
if($info1['jenis']==1){
echo "MCQ/TF";
}else{
echo"FIB";
}?></td>
18
Antara muka query
3.4 Laporan
Laporan senarai bilangan soalan mengikut topik bagi semua subjek
Laporan senarai prestasi pelajar berdasarkan subjek-topik
19
3.5 Mengekod
Sign Up
<?php
require 'sambung.php';
include 'header.php';
if (isset($_POST['idpengguna'])) {
//pemboleh untuk memegang data yang dihantar
$idpengguna = $_POST['idpengguna'];
$password = $_POST['password'];
$nama = $_POST['nama'];
$jantina = $_POST['jantina'];
$aras = $_POST['aras'];
$daftar= "INSERT INTO pengguna (idpengguna,password,nama,jantina,aras) VALUES
('$idpengguna','$password','$nama','$jantina','$aras')" ;
$hasil = mysqli_query($hubung, $daftar);
if ($hasil) {
echo "<script>alert('Pendaftaran berjaya');
window.location='login.php'</script>";
} else {
echo "<script>alert('Pendaftaran gagal');
window.location='daftar_baru.php'</script>";
} }?>
20
Pop up message untuk sign up
21
Log in
<?php
require 'sambung.php';
include 'header.php'; ?>
<html>
<head><?php include 'menu1.php' ?></head>
<body>
<center><h2>LOG MASUK PENGGUNA</h2></center>
<main>
<table width="70%" border="0" align="center">
<tr>
<td align="center">
<form action="proseslogin.php" method="post">
Nombor Kad Pengenalan:<br>
<input onblur="checkLength(this)" type="text" name="idpengguna"
placeholder="Tanpa tanda -" maxlength='12' size="25"
onkeypress='return event.charCode >= 48 && event.charCode <= 57'required
autofocus/> <script>
function checkLenght(el){
if(el.value.length != 12){
alert("Nombor KP mesti 12 digit")
}}
</script>
<br><br>
Katalaluan:<br>
<input type="password" name="password"
placeholder="4 Digit" maxlength="4" size="10"
onkeypress="return event.charCode >= 48 && event.charCode <= 57" required>
22
Antara muka daftar masuk
Antara muka halaman guru
23
Import file
<?php
require 'sambung.php';
if(isset($_POST["inport"])){
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0){
$file = fopen($filename, "r");
while (($getData = fgetcsv($file, 10000, ",")) !==FALSE){
$import = "INSERT INTO pengguna (idpengguna,password,nama,jantina,aras) values
('".$getData[0]."','".$getData[1]."','".$getData
[2]."','".$getData[3]."','PELAJAR')";
//MSG POP UP JIKA GAGAL
$tambah = mysqli_query($hubung,$import);
if(!isset($tambah)){
echo "<script>alert('Pindah naik fail CSV gagal');
window.location='import_daftar.php'</script>";
}else {
echo "<script>alert('Pindah naik fail CSV berjaya');
window.location='senarai_pelajar.php'</script>";
}}
fclose($file); }
}?>
24
Pop Up Message untuk import fail
25
Memilih mengikut subjek
Memilih senarai topik bagi sesuatu subjek
26
4.0 MENGUJI DAN MENYAH RALAT
4.1 Ralat Sintaks
Tiada ralat sintaks berlaku.
4.2 Ralat Logik
Nama Item Nama Medan Sampel Data Output
( xxxxxxxxx )
Jenis Data
Varchar 040725020794
Had Bawah
Bilangan huruf = 12 04072502079
Had Atas
Bilangan huruf = 12 040725020abc
27
4.3 Ralat Masa Larian
Tiada ralat masa larian berlaku.
I. Sistem dapat integrate dengan processor.
II. Sistem boleh dijalankan dengan lancar dan tidak hang.
III. Sistem telah menjalankan process carian dengan berdasarkan drop-down
list.
5.0 MANUAL PENGGUNA
Fasa ini telah membuat dokumentasi atas seluruh kerja kursus ini.
5.1 Dokumentasi Dalaman
//TABLE TOPIK
$dataTopik= mysqli_query($hubung,"SELECT * FROM topik
WHERE
idtopik='$info1[idtopik]'");
$getTopik= mysqli_fetch_array($dataTopik);
28
6.4 Manual Pengguna
Langkah 1 : Daftar baru sebelum login
Sistem ini ditabdir oleh seorang admin dan mempunyai dua jenis pengguna ,iaitu
guru mata pelajaran dan pelajar. Mereka perlu memasukkan id sendiri, nama, kata
laluan, jantina dan memilih aras untuk mendaftar sebagai pengguna.
Rajah 1 menunjukkan antara muka untuk daftar
Rajah 1
Rajah 2 menunjukkan pop up message untuk daftar
Rajah 2
29
Langkah 2 : Login ke dalam system
Rajah 3 menunjukkan antara muka login masuk ke dalam sistem. Guru dan pelajar perlu
memasukkan id sendiri dan kata laluan yang telah didaftarkan sebelum masuk ke dalam
sistem.
Rajah 3
30
Rajah 4 menunjukkan antara muka pengguna(pelajar) selepas berjaya login
Rajah 4
Langkah 3 : Daftar,edit dan hapus subjek,guru serta pelajar. (Aras admin)
Admin akan mendaftar subjek mengikut mata pelajaran.
Rajah 6.1.1 menunjukkan antara muka admin daftar subjek.
Rajah 6.1.1
31
Admin dapat mengedit dan menghapus subjek.
Rajah 6.1.2 meunjukkan antara muka untuk edit dan hapus subjek tertentu.
Rajah 6.1.2
Admin boleh melihat, mengedit dan menghapus senarai guru dan pelajar dalam
sistem.
Rajah 6.1.3 menunjukkan antara muka senarai guru.
Rajah 6.1.3
32
Rajah 6.1.4 menunjukkan antara muka senarai pelajar.
Rajah 6.1.4
Admin dapat melihat dan mencetak laporan bilangan soalan mengikut topik bagi
semua subjek.
Rajah 6.1.5 menunjukkan antara muka laporan statistik.
Rajah 6.1.5
33
Langkah 4: Mencipta,mengedit dan menghapus kuiz. (Aras guru)
Guru boleh mencipta,mengedit dan menghapus kuiz mengikut subjek.
Rajah 6.2.1 menunjukkan antara muka mencipta kuiz mengikut subjek.
Rajah 6.2.1
Rajah 6.2.2 menunjukkan antara muka mengedit dan menghapus kuiz.
Rajah 6.2.2
34
Rajah 6.2.3 menunjukkan antara muka mencipta kuiz dengan dua jenis soalan.
Rajah 6.2.3
Guru dapat menyemak prestasi pelajar berdasarkan subjek-topik dan mengimport data
pelajar-pelajar.
Rajah 6.2.4 menunjukkan antara muka menyemak prestasi pelajar berdasarkan
subjek-topik.
Rajah 6.2.4
35
Rajah 6.2.5 menunjukkan antara muka mengimport maklumat pelajar.
Rajah 6.2.5
Langkah 5: Menjawab dan menyemak prestasi kuiz berdasarkan subjek-topik. (Aras
pelajar)
Murid menjawab kuiz berdasarkan subjek-topik.
Rajah 6.3.1 menunjukkan antara muka kuiz mengikut senarai subjek yang dapat
dijawab.
Rajah 6.3.1
36
Rajah 6.3.2 menunjukkan antara muka senarai topik mengikut subjek yang dipilih.
Rajah 6.3.2
Rajah 6.3.3 menunjukkan antara muka jenis soalan kuiz yang dipilih untuk
menjawab.
Rajah 6.3.3
37
Pelajar dapat menyemak prestasi sendiri berdasarkan subjek-topik.
Rajah 6.3.4 menunjukkan antara muka prestasi setiap kuiz yang telah dijawab.
Rajah 6.3.4
Langkah 6: Daftar keluar daripada sistem. Semua pengguna boleh daftar keluar daripada
sistem.
Rajah 6.4 menunjukkan antara muka daftar keluar daripada sistem.
Rajah 6.4
38
5.2 SUMBER RUJUKAN
i. BUKU TEKS SAINS KOMPUTER TINGKATAN 4
ii. BUKU TEKS SAINS KOMPUTER TINGKATAN 5
iii. PROJEK SAINS KOMPUTER KSSM 2020
iv. https://www.w3schools.com/
v. https://www.youtube.com/
LAMPIRAN
i. Ambil gambar (temuramah soal selidik – lakon semula)
ii. Soalan soal selidik
iii. Surat pengesahan/sokongan interview
Tandatangan calon:
39