• Tidak ada hasil yang ditemukan

BAB II KAJIAN PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II KAJIAN PUSTAKA"

Copied!
8
0
0

Teks penuh

(1)

BAB II

KAJIAN PUSTAKA

Dalam pengembangan kemampuan automatic grade Marmoset terhadap project dan hasil penilaian pemrograman ini diperlukan beberapa teori untuk mendukung proses pengembangannya. Berikut ini adalah teori-teori dasar yang digunakan dalam melakukan pengembangan kemampuan automatic grade Marmoset terhadap project dan hasil penilaian pemrograman.

2.1 Teori Pemrograman Komputer

Pemrograman komputer (sering disebut coding) adalah proses merancang, menulis, testing, debugging, dan memelihara source code dari program komputer. Source code ditulis dalam satu atau banyak bahasa pemrograman. Tujuan dari pemrograman adalah untuk menciptakan satu set instruksi yang digunakan komputer untuk melakukan operasi tertentu atau untuk menunjukkan perilaku yang diinginkan. Proses penulisan source code sering memerlukan keahlian dalam berbagai mata pelajaran, termasuk pengetahuan dari domain sistem, algoritma khusus dan logika formal (Wikipedia, 2012).

Progam komputer yang dibuat dari source code harus memenuhi beberapa sifat yang fundamental. Sifat fundamental tersebut yang paling relevan adalah :

1. Reliability

Reliability adalah seberapa sering keluaran dari program itu benar. Hal ini tergantung kepada kebenaran dari algoritma, dan minimal kesalahan dari pemrograman, seperti kesalahan logika.

2. Robustness

Robustness adalah seberapa baik program dapat mengatasi masalah bukan karena kesalahan programmer. Hal ini termasuk data yang tidak benar, tidak tepat atau rusak, tidak tersedianya resource yang dibutuhkan, dan kesalahan user.

                 

(2)

3. Usability

Usability adalah kemudahan yang user dapatkan pada saat menggunakan program. Hal ini melibatkan berbagai tekstual, graphical dan beberapa elemen dari hardware yang dapat meningkatkan kejelasan dan kelengkapan user interface program.

4. Portability

Portability adalah keterhubungan antara hardware komputer dengan platform sistem operasi yang dapat mengkompilasi source code dari program dan dijalankan. Hal ini tergantung pada perbedaan dalam fasilitas pemrograman yang disediakan oleh platform yang berbeda, termasuk perangkat keras dan sumber daya sistem operasi, perilaku yang diharapkan dari sistem hardware dan operasi, dan ketersediaan compiler platform tertentu.

5. Maintainability

Maintainability adalah kemudahan untuk sebuah program dapat dimodifikasi oleh developer dengan tujuan untuk pengembangan atau penyesuaian, memperbaiki bugs dan keamanan, atau disesuaikan dengan kebutuhan yang baru.

6. Efficiency/performance

Efficiency/performance adalah jumlah dari resource yang digunakan seperti processor time, memory space, bandwidth jaringan dan interaksi user. Hal ini mencakup juga membersihkan temporary file dan tidak ada memory leaks.

2.2 Teori Penilaian Program atau Source code

Sebuah program dikatakan tepat (correct) apabila komputasi yang dilakukan program tersebut sesuai dengan tujuan pembuatannya. Penilaian terhadap sebuah program pertama-tama dilakukan terhadap ketepatannya, karena program yang tidak tepat dapat dikatakan gagal memenuhi tujuannya. Ketepatan program, baik secara sintaks maupun semantik, akan dibahas dalam Subbab 2.2.1

Dalam pendekatan penilaian blackbox, benar tidaknya program ditentukan dari hasil eksekusinya saja. Penilai akan memroses source code menggunakan kompilator atau , memberikan masukan tertentu dan kemudian mengamati hasil keluaran program

                 

(3)

tersebut. Jika keluaran yang dihasilkan oleh program sesuai dengan keluaran yang diharapkan oleh penilai, maka program dinyatakan benar. Pendekatan blackbox merupakan cara yang paling sederhana untuk menilai ketepatan program dan dapat diotomasikan dengan mudah.

Dalam pendekatan blackbox, proses penilaian dilakukan dalam dua tahap, tahap analisis statik dan tahap analisis dinamik. Dalam tahap analisis statik, source code program diubah ke dalam format siap eksekusi menggunakan kompilator atau interpreter. Dalam tahap analisis dinamik, program dieksekusi, diberi masukan dan kemudian keluaran yang dihasilkannya diperiksa (Ronny, 2008).

2.2.1 Ketepatan Sintaks dan Semantik

Source code yang memiliki kesalahan semantik tidak akan menghasilkan eksekusi program yang benar, sementara source code yang memiliki kesalahan sintaks tidak akan dapat menghasilkan program yang dapat dieksekusi sama sekali.

Sintaks sebuah bahasa pemrograman mendefinisikan hubungan formal antara komponen-komponennya, menyediakan deskripsi struktural tentang kalimat-kalimat yang legal dalam bahasa tersebut (Slonneger Kenneth, 1995). Aturan-aturan sintaks / tata bahasa (grammar) dalam sebuah bahasa pemrograman menyediakan cara agar source code dapat ditranslasikan dan kemudian dieksekusi oleh sistem komputer. Kesalahan sintaks pada source code akan menyebabkan kegagalan proses translasi, dan dengan demikian tidak akan dihasilkan program yang dapat dieksekusi (Novrina S.Kom, 2010).

Semantik bahasa pemrograman menggambarkan hubungan antara bentuk sintaks tertentu dengan model komputasinya, sedangkan semantik sebuah program merupakan cara untuk memahami atau menginterpretasikan program tersebut dan memprediksi hasil eksekusinya (Aaby, 2004).

2.3 Teori Automatic grade

Automatic grade system adalah sistem penilaian otomatis pada sebuah source code. Ada beberapa tools yang dapat melakukan penilaian otomatis secara online diantaranya :

                 

(4)

codechef.com, codeforces.com, acm.timus.ru, codegolf.com, spoj.pl. Sejak tahun 1961, kuliah pengantar pemrograman dan metode numerik di Universitas Stanford telah menggunakan program penilai dalam bentuk library tambahan yang dikompilasi bersama source code mahasiswa. Autograder ini melakukan penilaian secara blackbox, memberikan input terhadap hasil kompilasi source code mahasiswa dan mencocokkan hasil keluaran dengan keluaran yang diharapkan (George E Forsythe, 1965).

Dalam bidang informatika, autograding yang dilakukan umumnya berbasis pada pengujian blackbox, mulai program penilai yang digunakan pada berbagai universitas (AskSlashdot, 2006), sampai dengan program juri otomatis pada International Olympiad in Informatics (IOI). Autograder untuk kepentingan pendidikan secara spesifik perlu mencakup penilaian atas aspek-aspek lain di luar ketepatan program (program correctness) melalui eksekusi program ke dalam proses autograding, seperti misalnya aspek readability, efisiensi, atau kompleksitas, namun penilaian efisiensi, readability, dan kompleksitas belum dapat diterapkan dalam sistem automatic grade program yang ada saat ini (Ronny, 2008).

2.4 Marmoset

Marmoset adalah sebuah sistem automatic grade yang dirancang untuk menilai project secara otomatis dan dapat meninjau kembali source code yang telah di-submit ke dalam sistem yang melalui web interface. Marmoset dapat menilai project untuk bahasa Java, C, OCaml, dan Ruby. Marmoset dijalankan di dalam sebuah webserver dan servet container yang bernama Apache Tomcat.                  

(5)

Gambar 2 Arsitektur Sistem dari Marmoset

Gambar 2 menjelaskan bahwa Marmoset memiliki 2 server yang digunakan dalam sistem, yaitu Submit server dan Build server. Submit server berfungsi untuk menerima dan menyimpan project yang diberikan oleh students. Sedangkan build server dikhususkan untuk membangun project yang telah ditentukan dalam build server dan melakukan pengujian terhadap project tersebut. CVS repository merupakan tempat menyimpan soal-soal yang diberikan oleh instructor untuk student.

2.5 Tools Pendukung

Pada subbab ini dijelaskan secara singkat mengenai teknologi yang dipergunakan untuk mendukung pengembangan sistem automatic grade Marmoset.

2.5.1 Linux

Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja. Nama “Linux” berasal dari nama pembuatnya, yang diperkenalkan tahun 1991 oleh Linus Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternative GNU/Linux.

                 

(6)

Linux telah lama dikenal untuk penggunaannya di server, dan didukung oleh perusahaan-perusahaan komputer ternama seperti Intel, Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, Red Hat, dan Sun Microsystems. Linux digunakan sebagai sistem operasi di berbagai macam jenis perangkat keras komputer, termasuk komputer desktop, supercomputer, dan sistem benam seperti pembaca buku elektronik, sistem permainan video (Playstation 2, playstation 3 dan XBox), telepon genggam dan router. Para pengamat teknologi informatika beranggapan kesuksesan Linux dikarenakan Linux tidak bergantung kepada vendor, biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX tak bebas, serta faktor keamanan dan kestabilannya yang tinggi dibandingkan dengan sistem operasi lainnya seperti Microsoft Windows (Wikipedia, 2012).

2.5.2 Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (Wikipedia, 2012). Berikut ini adalah sifat dari Eclipse:

1. Multi-platform, dapat digunakan dalam OS Microsoft Windows, Linux, Solaris, AIX, HP-UX, Mac OS X.

2. Multi-language, eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi eclipse mendukung pengembangan sistem berbasis bahasa pemrograman lainnya seperti C/C++, Cobol, Phyton, Perl, PHP.

3. Multi-role, selain sebagai IDE untuk pengembangan sistem, Eclipse juga dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, tes perangkat lunak, pengembangan web.

2.5.3 Apache Tomcat

Apache Tomcat merupakan servlet atau JSP container yang dibuat oleh Apache Software Foundation. Container ini merupakan server untuk menjalankan bahasa pemrograman web JSP (Java Server Pages). Apache Tomcat dikembangkan di lingkungan yang terbuka dan partisipasif dan diliris di bawah lisensi Apache versi 2. Apache ini dimaksudkan untuk menjadi kolaborasi generasi yang terbaik bagi developer dari seluruh dunia.

                 

(7)

Tomcat lebih baik digunakan sebagai java web server yang murni atau sebagai komponen dalam konfigurasi yang lebih kompleks dan berfungsi sebagai back-end yang menangani permintaan yang dikirimkan kepadanya dari web server seperti apache, menggunakan konektor seperti mod_jk disediakan oleh tim Apache Tomcat atau mod_proxy yaitu sebuah modul opsional untuk apache HTTP server yang disediakan oleh tim Apache HTTP server. Tomcat adalah sebuah sistem yang dapat digunakan untuk membuat sebuah komputer bekerja mandiri sebagai server. Ini sangat membantu dalam pemrograman yang menggunakan java server pages (JSP). Dengan menginstall software ini,kita dapat membuat sebuah komputer sendiri menjadi server dan melakukan tugas seperti yang dilakukan oleh server (Tomcat, 2012).

2.5.4 Apache ANT

Apache ANT adalah software berbasis Java yang digunakan untuk keperluan build tool. Sebagai build tool, tugas utama dari ANT adalah untuk menyediakan sumber daya dan melaksanakan proses yang memungkinkan membangun suatu software dari bentuk source code menjadi sistem yang siap didistribusikan atau bahkan telah diinstall pada remote server. Ada banyak build tool yang tersedia, beberapa diantaranya adalah build tool yang bersifat spesifik untuk sistem operasi tertentu. Beberapa contoh dari build tool adalah:

1. GNU Make 2. Jam

3. Rake (untuk Ruby)

ANT merupakan software untuk keperluan build tool yang bersifat cross platform, bisa digunakan pada berbagai sistem operasi yang mendukung Java. Ant juga dapat digunakan untuk membangun sistem non-java seperti sistem C atau C++. Lebih luasnya, Ant dapat digunakan untuk percontohan setiap jenis proses yang dapat digambarkan dalam bentuk target dan tugas (ANT, 2012).

                 

(8)

2.5.5 GNU Compiler Collection (GCC)

GCC adalah sebuah sistem compiler yang diproduksi oleh GNU Project yang support berbagai bahasa pemrograman. GCC adalah sebuah komponen utama dari GNU toolchain. GCC telah diadopsi sebagai compiler standar oleh kebanyakan dari Unix modern seperti operating system seperti Linux. GCC juga dapat digunakan di Windows operating system produksi Microsoft. GCC telah dibuat untuk berbagai macam processor architecture dan digunakan sebagai alat dalam pengembangan perangkat lunak. Sebenarnya nama GCC adalah GNU C Compiler, karena compiler tersebut hanya dapat menangani bahasa pemrograman C. GCC 1.0 dirilis pada tahun 1978 dan dikembangkan untuk bisa mengkompilasi C++ pada Desember tahun tersebut.

Pada umumnya, interface eksternal GCC adalah sebuah standar compiler untuk Unix. Biasanya GCC menafsirkan argumen perintah, menentukan compiler dengan bahasa pemrograman yang digunakan untuk setiap file yang dimasukkan, menjalankan assembler pada output tersebut, dan memungkinkan untuk menjalankan linker untuk menghasilkan sebuah executable binary yang lengkap. Setiap compiler dari bahasa pemrograman yang berbeda adalah sebuah program terpisah yang input suatu source code dan output machine code. Semua memiliki kesamaan struktur internal. Front end dari setiap bahasa pemrograman menguraikan source code yang menggunakan bahasa tersebut dan menghasilkan sebuah pohon sintaks abstrak (Wikipedia, 2012).

                 

Gambar

Gambar 2 Arsitektur Sistem dari Marmoset

Referensi

Dokumen terkait

Poros akan memutar pisau yang akan merajang cabai yang masuk kedalam box,sehingga dihasilkan potongan yang kecil.Tujuan utama dalam pembuatan mesin perajang

Puji dan syukur kehadirat Allah SWT, Tuhan Yang Maha Esa atas segala limpahan rahmat dan karunia-Nya sehingga penulis dapat melaksanakan dan menyelesaikan skripsi ini

Penelitian ini bertujuan untuk mengkaji beberapa aspek biologi reproduksi kerang darah ( A. granosa ) yang meliputi hubungan panjang-bobot, faktor kondisi, nisbah

Prinsip dasar dalam penentuan kadar air tanah yaitu kadar air tanah dinyatakan sebagai perbandingan berat air yang ada dalam contoh tanah sebelum pengeringan dan berat contoh

c. Mahasiswa dan Lulusan: 1) Secara kuantitatif, jumlah mahasiswa baru yang diterima Prodi PAI relatif stabil dan di atas rata-rata dibandingkan dengan jumlah

Perbedaan komposisi pakan menghasilkan substrat yang berbeda.Tujuan penelitian ini adalah untuk mengetahui pengaruh komposisi hijauan yang berbeda dalam ransum pada neraca N

Pada luka insisi operasi dilakukan infiltrasi anestesi local levobupivakain pada sekitar luka karena sekresi IL-10 akan tetap dipertahankan dibandingkan tanpa

Sementara jumlah penduduk miskin tahun sebelumnya berpengaruh nyata dalam meningkatkan angka kemiskinan, sementara belanja sosial berpengaruh positif namun tidak