Khirulnizam - Table Of Content - Pentaksir Automatik Latihan Asas Pengaturcaraan C Menggunakan Kaedah Perbandingan Kodpseudo

  • Uploaded by: Khirulnizam Abd Rahman
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Khirulnizam - Table Of Content - Pentaksir Automatik Latihan Asas Pengaturcaraan C Menggunakan Kaedah Perbandingan Kodpseudo as PDF for free.

More details

  • Words: 1,673
  • Pages: 11
ii

PENTAKSIR AUTOMATIK LATIHAN ASAS PENGATURCARAAN C MENGGUNAKAN TEKNIK PERBANDINGAN KOD PSEUDO

KHIRULNIZAM ABD RAHMAN

TESIS YANG DIKEMUKAKAN UNTUK MEMENUHI SEBAHAGIAN DARIPADA SYARAT MEMPEROLEH IJAZAH SARJANA TEKNOLOGI MAKLUMAT

FAKULTI TEKNOLOGI DAN SAINS MAKLUMAT UNIVERSITI KEBANGSAAN MALAYSIA BANGI 2008

iii

PENGAKUAN

Saya akui karya ini adalah hasil kerja saya sendiri kecuali nukilan dan ringkasan yang setiap satunya telah saya jelaskan sumbernya.

26 Oktober 2008

KHIRULNIZAM ABD RAHMAN P 22180

iv

PENGHARGAAN

Dengan nama Allah yang Maha Pemurah lagi Maha Penyayang. Alhamdulillah, dengan izin Allah saya diperkenankan untuk menyiapkan tesis ini. Terima kasih kepada penyelia, Prof Madya Dr Md Jan Nordin, bekas penyelia Dr Juzaidin Abd Aziz dan pemeriksa Prof Madya Dr Zarina Shukur. Tunjuk ajar dan panduan yang telah diberikan sangat berguna dalam usaha menyiapkan tesis ini, amat dihargai. Terima kasih atas tajaan (sebahagian yuran pengangajian) yang diberikan oleh Kolej Universiti Islam Antarabangsa Selangor (KUIS). Serta rakan-rakan pensyarah Fakulti Teknologi dan Sains informasi kerana memberi ruang masa, menyumbang idea dan tenaga, serta sokongan yang amat membantu dalam penghasilan tesis ini. Terima kasih atas doa dan sokongan Hj Abd Rahman Martawi dan Hjh Poniam Mengun, ibu bapa saya yang sangat dikasihi. Juga kepada keluarga yang dicintai, Mahani Ma’mum, Muhammad Luqman, Muna Majidah, Amir Yusuf. Terima kasih atas pengorbanan, dorongan dan inspirasi.

v

ABSTRAK Latihan pengaturcaraan adalah satu aktiviti yang amat penting dalam subjek bahasa pengaturcaraan komputer. Salah satu cara yang baik untuk menguasai subjek ini ialah dengan banyak membuat latihan pengaturcaraan. Walau bagaimana pun semakin banyak latihan bermaksud semakin bertambah beban pengajar untuk memeriksa dan menilai latihan-latihan tersebut. Beban tersebut boleh dikurangkan sekiranya pengajar dibantu dengan alatan yang boleh memeriksa semua latihan aturcara tersebut secara automatik. Penilaian aturcara secara automatik adalah antara salah satu kaedah untuk mengurangkan beban pengajar tersebut. Kaedah ini boleh digunakan untuk memeriksa dan memberi markah latihan aturcara pelajar dalam subjek pengaturcaraan tanpa perlu menyemak secara manual setiap satu jawapan pelajar. Projek yang dibangunkan ini ialah satu perisian pemeriksa latihan aturcara pelajar, untuk bahasa pengaturcaraan C. Tujuan projek ini dibangunkan ialah untuk memberi markah, dalam bentuk peratus kesamaan, latihan aturcara yang dihantar oleh pelajar. Kaedah yang digunakan ialah dengan menterjemah atur cara jawapan pelajar dan juga aturcara skema jawapan

pengajar

kepada kod pseudo. Kemudian kod pseudo pelajar dan pengajar yang terhasil akan dibandingkan untuk mencari peratus persamaannya. Penilaian adalah dalam bentuk peratus persamaan antara kod pseudo pelajar dan kod pseudo pengajar. Pengujian telah dilaksanakan untuk melihat perbandingan markah yang diberi oleh pengajar dengan markah yang diberi oleh perisisan. Keputusannya adalah markah yang diberi oleh perisian adalah 95 peratus sama dengan markah yang diberi oleh pengajar secara manual. Hasil kajian ini akan dapat membantu pengajar kursus pengaturcaraan untuk memeriksa jawapan latihan aturcara yang banyak secara automatik melalui kaedah perbandingan kod pseudo.

vi

AUTOMATED PROGRAMMING ASSESSMENT FOR FUNDAMENTALS OF C PROGRAMMING LANGUAGE USING PSEUDOCODE COMPARISON TECHNIQUE ABSTRACT Programming exercise is an important activity in learning any programming language. In order to acquire the skill to program is by doing a lot of programming exercises. However, if the instructors give more exercises, the more workload they will bear to check and grade all the exercises submitted by their students. The workload can be reduced if the instructors are provided with a tool that can assesses and grades the programming exercises automatically. Automated programming assessment is a method to evaluate and to grade students’ programming exercises without the hassle of doing it manually. This application is developed to assess student C programming exercises based on the pseudocodes. The purpose of this project is to find the percentage of the pseudocode similarity between student’s answer and the instructor’s scheme. The method used in the software is by translating the students’ programming answer and all the instructors’ answer schemes into pseudocode. The software will compare the students’ pseudocode with all the pseudocode from the instructors’ answer schemes. The highest percentage of similarities will be chosen for the mark. A test has been carried out to compare marks given by the software with the marks given manually by the instructor. The result is 95% of the marks given by the software are similar to the marks given by the instructor. From this research, programming instructor could assess their students’ programming answer automatically in a faster and more efficient manner.

vii

KANDUNGAN Halaman PENGAKUAN

ii

PENGHARGAAN

iii

ABSTRAK

iv

ABSTRACT

v

KANDUNGAN

vi

SENARAI JADUAL

ix

SENARAI RAJAH

x

SENARAI SINGKATAN

xii

BAB I PENDAHULUAN 1.1 Pengenalan

1

1.2 Pernyataan Masalah

2

1.3 Objektif Kajian

3

1.4 Skop Kajian

3

1.5 Metodologi Kajian

6

1.6 Rekabentuk Penyelesaian Masalah

7

1.7 Ringkasan Hasil Dan Sumbangan Kajian

7

1.8 Struktur Tesis

8

BAB II KAJIAN LITERATUR: PENYEMAKAN AUTOMATIK TUGASAN PENGATURCARAAN MENGGUNAKAN PENDEKATAN ANALISIS STATIK 2.1 Pengenalan 10 2.2

Kelebihan Menggunakan PATP

11

2.3

Pendekatan Yang Digunakan Dalam Penyemakan Automatik Aturcara 2.3.1 Pendekatan Analisis Dinamik 2.3.2 Pendekatan Analisis Statik

12 13 13

2.4

Analisis-analisis Menggunakan Pendekatan Statik 2.4.1 Penentuan Gaya Pengaturcaraan 2.4.2 Pengesanan Ralat Atur cara (Sintaksis atau Semantik) 2.4.3 Penilaian Metrik Perisian 2.4.4 Penilaian Struktur Atur cara

13 12 14 15 16

viii

2.4.5 2.4.6 2.4.7 2.4.8

Penilaian Bukan-struktur. Penilaian dengan Kata Kunci Pengesanan Plagiarisme Penilaian Diagram

16 16 17 17

2.5

Kelebihan Dan Kelemahan Pendekatan Analisis Statik 2.5.1 Kelebihan 2.5.2 Kelemahan

18 18 18

2.6

Kajian-kajian Berkaitan Pengujian Menggunakan Pendekatan Statik 2.6.1 Ceilidh/CourseMaster 2.6.2 ELP 2.6.3 WAGS 2.6.4 Sumbangan aplikasi kepada bidang kajian

19 19 19 21 23

2.7

Rumusan

23

BAB III REKA BENTUK PENYELESAIAN 3.1

Pendahuluan

25

3.2

Reka bentuk Kelas dalam UML 3.2.1 Rajah Kes Penggunaan 3.2.2 Rajah Hubungan Kelas 3.2.3 Kelas Antaramuka Input 3.2.4 Kelas Penganalisis Leksikal 3.2.5 Kelas Penjana Kod pseudo 3.2.6 Kelas Perbandingan Kod pseudo 3.2.7 Kelas Antaramuka Output

25 26 27 28 28 31 35 38

3.3

Algoritma-algoritma Penting 3.3.1 Algoritma Penganalisis Leksikal 3.3.2 Algoritma Penjana Kod pseudo 3.3.3 Algoritma Perbandingan Kod pseudo

39 39 47 55

3.4

Rumusan

38

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1

Pendahuluan

58

4.2

Keperluan Implementasi 4.2.1 Keperluan Pelayan 4.2.2 Keperluan Pengguna (Klien)

58 58 59

4.3

Antaramuka Aplikasi 4.3.1 Antara muka Input 4.3.2 Antara muka Output

59 59 60

4.4

Pengujian 4.4.1 Objektif Pengujian

61 61

ix

4.4.2 4.4.3 4.4.4 4.4.5 4.5

Kaedah Pengujian Soalan-soalan Dalam Pengujian Keputusan Pengujian Rumusan Pengujian

Kesimpulan

62 63 66 67 68

BAB V KESIMPULAN 5.1

Pendahuluan

70

5.2

Hasil Kajian

70

5.3

Sumbangan Kajian

70

5.4

Perluasan Kajian Pada Masa Akan Datang

71

5.5

Rumusan

71

RUJUKAN

73

LAMPIRAN A. Senarai Metod dan Atribut Semua Kelas Terlibat

77

x

SENARAI JADUAL No. Jadual 2.1 2.2 3.1 3.2 3.3

Beberapa contoh metrik perisian Penilaian metrik kejuruteraan perisian dalam ELP Contoh penamaan semula pembolehubah Peraturan terjemahan kod aturcara kepada kod pseudo Contoh pengiraan persamaan pengisytiharan

Halaman 15 20 31 33 36

3.4

pembolehubah Perbandigan kualitatif antara fungsi similar_text dan

38

4.1 4.2 4.3 4.4 4.5

levenshtein Panduan gred untuk markah yang diperolehi bagi soalan 2 Panduan nombor dan nama bulan bagi soalan 3 Markah pelajar 1 Markah pelajar 2 Markah pelajar 3

64 64 66 66 67

xi

SENARAI RAJAH No. Rajah 2.1

AST dalam format XML yang dicadangkan oleh Parr

Halaman 21

2.2

(2006) Algoritma yang dicadangkan oleh Norshuhani et. al.

22

3.1 3.2 3.3

(2005) Rajah kes penggunaan Rajah hubungan kelas Kod sumber diproses menjadi senarai token melalui kelas

26 27 28

3.4 3.5 3.6 3.7 3.8

PenganalisisLeksikal Spesifikasi token dalam format BNF Struktur data dalam kelas Token Kod aturcara C diterjemah kepada kod pseudo Spesifikasi sintaks dalam BNF Proses perbandingan kod pseudo pelajar dengan kod

29 30 32 32 37

3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37

pseudo skema Kod pseudo bagi ringkasan proses Kod pseudo bagi fungsi PENGANALISISLEKSIKAL Kod pseudo bagi fungsi Katakunci Kod pseudo bagi fungsi Pembolehubah Kod pseudo bagi fungsi PenamaanSemulaPembolehubah Kod pseudo bagi fungsi Nombor Kod pseudo bagi fungsi NilaiLiteralAksara Kod pseudo bagi fungsi NilaiLiteralRentetan Kod pseudo bagi fungsi ProsesOperatorBahagi Kod pseudo bagi fungsi ProsesOperatorDarab Kod pseudo bagi fungsi ProsesOperatorModulo Kod pseudo bagi fungsi ProsesOperatorTambah Kod pseudo bagi fungsi ProsesOperatorTambah Kod pseudo bagi fungsi KomenBaris Kod pseudo bagi fungsi KomenBlok Kod pseudo bagi fungsi ProsesOperatorSama Kod pseudo bagi fungsi ProsesOperatorBesar Kod pseudo bagi fungsi ProsesOperatorKecil Kod pseudo bagi fungsi ProsesOperatorTak Kod pseudo bagi fungsi ProsesOperatorDan Kod pseudo bagi fungsi ProsesOperatorAtau Kod pseudo bagi fungsi PENJANAKODPSEUDO Kod pseudo bagi fungsi DeclarationStatement Kod pseudo bagi fungsi AssignmentOperation Kod pseudo bagi fungsi DirectAssignment Kod pseudo bagi fungsi CompoundStatement Kod pseudo bagi fungsi AssignmentOperationX Kod pseudo bagi fungsi PrintfStatement Kod pseudo bagi fungsi ScanfStatement

39 40 41 41 41 42 42 42 43 43 43 44 44 44 45 45 45 46 46 46 47 48 49 49 49 50 50 51 51

xii

3.38 3.39 3.40 3.41 3.42 3.43 3.44 3.45 3.46 3.47 3.48 3.49 3.50 3.51 4.1 4.2 4.3

Kod pseudo bagi fungsi IfStatement Kod pseudo bagi fungsi IfElseStatement Kod pseudo bagi fungsi ElseStatement Kod pseudo bagi fungsi SwitchStatement Kod pseudo bagi fungsi CaseStatement Kod pseudo bagi fungsi DefaultStatement Kod pseudo bagi fungsi DoWhileStatement Kod pseudo bagi fungsi WhileStatement Kod pseudo bagi fungsi ForStatement Kod pseudo bagi fungsi PEMBANDINGKODPSEUDO Kod pseudo bagi fungsi TukarKepadaTatasusunan Kod pseudo bagi fungsi PemisahIsytiharPembolehubah Kod pseudo bagi fungsi BandingPembolehubah Kod pseudo bagi fungsi BandingProses Antara muka untuk memuat naik fail-fail atur cara Antara muka untuk memaparkan keputusan perbandingan Jawapan pelajar di sebelah kanan mengandungi kesalahan major

SENARAI SINGKATAN AC ASSYST AST BOSS CAP ELP GB HTML IDE IIS KUIS LCS MB NOC OpCom PATP PHP RKR-GST SIZE2 UML WAGS XML YAP

Attributes Complexity Assessment System Abstract Syntax Tree BOSS Online Submission System Code Analyzer for PASCAL Environment to Learning Programming Gigabyte Hyper Text Markup Language Integrated Development Environment Internet information System Kolej Universiti Islam Antarabangsa Selangor Longest Common Subsequence Megabyte Number of Classes Operator Complexity of classes Penyemak Automatik Tugasan Pengaturcaraan PHP Hypertext Pre-processor Running Karp-Rabin Greedy String Tiling Number of properties Unified Modeling Language Web-based Automated Grading System Extended Markup Language Yet Another Plague

51 52 52 52 53 53 53 54 55 55 56 56 57 57 60 61 68

Related Documents


More Documents from ""