Anda di halaman 1dari 7

Aplikasi Tes Online Dengan Teknik Pemrograman Client Server

Wayan Gede Suma Wijaya


Teknik Informatika, STIKOM PGRI, Banyuwangi, Indonesia

Abstrak - Tes, ujian, ulangan dan berbagai macam istilahnya, merupakan pekerjaan yang cukup menghabiskan tenaga dan energi. Kegiatan tersebut sangat perlu dilaksanakan oleh kalangan pendidik guna mengetahui sejauh mana perkembangan belajar, daya tangkap terhadap penguasaan materi atau juga bisa digunakan untuk mengukur kapasitas dan kapabilitas perserta didik. Ada banyak cara untuk membuat kegiatan tes menjadi lebih cepat, efisien dan akurat. Contohnya bisa menggunakan LJK (Lembar Jawaban Komputer). Tetapi karena mahalnya alat scanner untuk tes LJK, mengakibatkan hanya sedikit instansi yang menggunakan media tersebut. Guna menyelesaikan permasalahan tersebut, maka perlu dibangun sebuah aplikasi tes online sebagai solusi termurah yang ada saat ini. Aplikasi tes online tidak kalah akuratnya dengan tes LJK, bahkan aplikasi tes online mempunyai kelebihan tersendiri yang tidak dimiliki oleh tes LJK. Adanya fitur untuk mengacak soal secara otomatis, akan mengurangi kemungkinan mencontek yang dilakukan oleh peserta tes. Dalam pengembangan aplikasi tes online ini digunakan framework .NET dengan bahasa pemrograman C# serta teknik pemrograman Client Server. Dan untuk menyimpan semua data-data soal dan peserta tes, maka digunakan database MySQL. Pada penelitian ini dihasilkan dua hal, yaitu yang pertama adalah permodelan logikal database untuk menampung data-data soal dengan menggunakan teknik normalisasi dan hasil penelitian yang kedua adalah tersedianya aplikasi tes soal online. Aplikasi tes online tersebut terbagi menjadi 2 bagian, yaitu aplikasi tes online administrator yang digunakan untuk menambah data-data soal dan manajemen peserta tes, serta aplikasi tes online yang digunakan oleh peserta tes untuk mengerjakan tes soal. Kata Kunci : tes online, aplikasi tes online

Akses terhadap sumber informasi bukan menjadi malasah lagi. Perpustakaan merupakan salah satu sumber informasi yang mahal harganya. Adanya Internet memungkinkan seseorang di Indonesia untuk mengakses perpustakaan di perguruan tinggi dalam maupun luar negeri (digital library). Media online internet menjadi wahana baru bagai sapa saja untuk belajar hal-hal baru serta mengasah kemampuan individu di berbagai bidang. Dewasa ini ada banyak cara untuk mengukur kemampuan seseorang, diantara cara tersebut adalah dengan cara melakukan tes, baik tertulis (written) maupun lisan (oral). Munculnya media pembelajaran secara online mulai marak belakangan ini seperti e-learning dan masih banyak lagi yang sepatutnya disambut bahagia oleh kalangan civitas akademik baik guru maupun siswa itu sendiri. Media pembelajaran online itu sendiri juga memungkinkan bahwa siapa saja tidak terkecuali guru maupun siswa dapat mengikuti tes online secara gratis dan realtime, yang artinya hasil dari tes tersebut dapat kita terima hari itu juga. Jika tes konvensional di kelas mengharuskan peserta untuk hadir di kelas pada jam-jam tertentu (seringkali jam ini bentrok dengan kegiatan rutin peserta), maka tes online memberikan fleksibilitas dalam memilih waktu dan tempat untuk mengakses soal-soal tes. Dengan syarat para peserta tes harus terhubung ke server dimana soal-soal tes disimpan. Peserta dan penyelenggara tes tidak perlu direpotkan lagi dengan permasalahan alat tulis, sehingga biaya untuk penyediaan alat tulis bisa dialokasikan untuk yang lainnya. Hal tersebut merupakan salah satu keuntungan dari pemanfaatan media online sebagai sarana untuk mengukur kemampuan belajar seseorang. Untuk mempermudah hal di atas, maka bisa digunakan alat bantu program aplikasi menggunakan perangkat komputer. Alat bantu yang berupa program aplikasi tersebut selanjutnya dinamakan Aplikasi Tes Online Client Server.

1. Pendahuluan Sejarah IT dan Internet tidak dapat dilepaskan dari bidang pendidikan. Adanya Internet membuka sumber informasi yang tadinya susah diakses.

2. Landasan Teori 2.1. Pemrograman Client Server Pemrograman Client Server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak client dan pihak server. Dalam model client/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen client dan komponen server. Komponen client juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen client dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen client tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari client, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada client. client pun menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.

bahasa pemrograman dan kumpulan pustakapustaka (library) agar dapat bekerja sama dalam menjalankankan aplikasi berbasis Windows. Class library merupakan kumpulan class-class berorientasi objek yang digunakan untuk membuat suatu aplikasi, baik itu dalam modus konsol ataupun dalam modus grafik (GUI). Microsoft .Net Framework mempunyai dua komponen utama yaitu Common Language Runtime(CLR) dan .Net Framework Class Library. 2.4 Normalisasi Database Untuk merancang sebuah logikal database, secara umum terdapat dua teknik yaitu teknik normalisasi dan denormalisasi. Untuk menangani redundansi data pada database dalam skala besar, sampai saat ini banyak yang menggunakan teknik normalisasi. Teknik normalisasi digunakan untuk mengoptimalkan database secara logikal sehingga memudahkan desain pada relasi database yang terintegrasi. Tujuan dari teknik ini adalah memaksimalkan kinerja operasi penyimpanan data dalam disk dengan cara mengelompokkan datadata tersebut per-entitasnya.

3. Desain Sistem 3.1. Desain Logical Database Secara keseluruhan tabel yang dibutuhkan adalah sebagai berikut : tabel pelajaran, tabel soal, tabel kategori soal, tabel admin, tabel hubungi, tabel hasil, tabel jawab soal, dan tabel siswa Adapun rancangan tabel-tabel tersebut terlihat pada Gambar 1.

2.2. XML (eXtensible Markup Language) Secara sederhana XML adalah suatu bahasa yang digunakan untuk mendeskripsikan dan memanipulasi dokumen secara terstruktur. Secara teknis XML didefinisikan sebagai suatu bahasa meta-markup yang menyediakan format tertentu untuk dokumen-dokumen yang mempunyai data terstruktur. Bahasa markup adalah mekanisme untuk mengenal secara terstruktur di dokumen. XML adalah suatu aplikasi profil dari SGML. Seperti yang didefinisikan dari ISO 8879, SGML adalah cara standart dan vendor-independent. XML dapat memungkinkan pertukaran informasi atau data antar device (server, PCs, smart device, aplikasi, dan situs web). Data ini akan menjadi independent (unlocked), memudahkannya untuk diorganisir, diprogram, dan dirubah, dan ditukar antar situs web atau aplikasi apa saja. 2.3. Microsoft .Net Framework Microsoft .Net Framework merupakan suatu lingkungan kerja untuk memudahkan pengembangan dan eksekusi berbagai macam

Gambar 1 : Desain tabel aplikasi tes online

Adapun rancangan untuk stored procedured apliikasi tes online ini, dapat dilihat di bawah ini : 6. 1. AcakSoal : berfungsi untuk memilih soal yang akan ditampilkan secara acak.
CREATE DEFINER=`root`@`localhost` PROCEDURE `AcakSoal`(nomor int(10), id_pel int(10), id_kat int(10)) BEGIN

delete from tbl_kat_soal where id_kat=id; END$$

hapusMat : berfungsi untuk menghapus mata pelajaran.


CREATE DEFINER=`root`@`localhost` PROCEDURE `hapusMat`(id int(10)) BEGIN delete from tbl_pelajaran where id_pel=id; END$$

select * from tbl_soal where no_soal=nomor and id_pelajaran=id_pel and id_kategori=id_kat order by RAND() LIMIT 1; END$$

7.

hapusSiswa : berfungsi untuk menghapus data siswa.


CREATE DEFINER=`root`@`localhost` PROCEDURE `hapusSiswa`(id int(10)) BEGIN delete from tbl_siswa where no_induk=id; END$$

2.

bacaPesanMasuk : berfungsi untuk menampilkan pesan yang dikirimkan oleh admin kepada siswa (user)
CREATE DEFINER=`root`@`localhost` PROCEDURE `bacaPesanMasuk`(id int(10))

8.
BEGIN select id_hub,pengirim,penerima,pesan from tbl_hubungi where penerima=id order by id_hub DESC; END$$

hapusSoal : berfungsi untuk menghapus soal yang terdapat di dalam database.


CREATE DEFINER=`root`@`localhost` PROCEDURE `hapusSoal`(id int(10)) BEGIN delete from tbl_soal where id_soal=id; END$$

3.

balasPesanAdmin : berfungsi untuk menyimpan pesan yang dikirimkan oleh admin kepada user (siswa). 9.
CREATE DEFINER=`root`@`localhost` PROCEDURE `balasPesanAdmin`(id_penerima int(10), psn varchar(1500)) BEGIN insert into tbl_hubungi(pengirim,penerima,pesan) values('admin',id_penerima,psn); END$$

kirimPesanClient : berfungsi untuk menyimpan pesan yang dikirimkan oleh user kepada admin.
CREATE DEFINER=`root`@`localhost` PROCEDURE `kirimPesanClient`(p_kirim varchar(100),psn varchar(1500)) BEGIN insert into tbl_hubungi(pengirim,penerima,pesan) values(p_kirim,'admin',psn); END$$

4.

cekIkutSerta : berfungsi untuk mengecek apakah user yang bersangkutan sudah pernah mengikuti tes yang dipilih.
CREATE DEFINER=`root`@`localhost` PROCEDURE `cekIkutSerta`(idkat varchar(10),idpel varchar(10),nosoal varchar(10),idsiswa varchar(10)) BEGIN select * from tbl_hasil where id_kat_soal=idkat and id_pel=idpel and no_soal=nosoal and id_siswa=idsiswa; END$$

10.

lihatContact : berfungsi untuk menampilkan semua pesan yang ditujukan untuk admin.
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatContact`() BEGIN select tbl_hubungi.id_hub,tbl_siswa.nama_siswa,tbl_hubun gi.pesan,tbl_hubungi.pengirim from tbl_hubungi left join tbl_siswa on tbl_hubungi.pengirim=tbl_siswa.no_induk where penerima='admin' order by id_hub DESC; END$$

5.

hapusKat : berfungsi untuk menghapus kategori soal.


CREATE DEFINER=`root`@`localhost` PROCEDURE `hapusKat`(id int(10)) BEGIN

11. lihatNilaiPerKat : berfungsi untuk menampilkan daftar nilai berdasarkan kategori soal yang dipilih dari sisi client (siswa).
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatNilaiPerKat`(id int(10),id_kat int(10))

BEGIN select tbl_hasil.no_soal,nama_pel,nama_kat,hasil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat where tbl_hasil.id_kat_soal=id_kat and id_siswa=id; END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatNilaiPerSiswa`(id int(10)) BEGIN select tbl_hasil.no_soal,nama_siswa,nama_pel,nama_kat,ha sil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal,tbl_siswa) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat and tbl_hasil.id_siswa=tbl_siswa.no_induk where id_siswa=id; END$$ 16.

12.

lihatNilaiPerKategori : berfungsi untuk menampilkan daftar nilai berdasarkan kategori soal yang dipilih dari sisi server (admin).
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatNilaiPerKategori`(id int(10)) BEGIN select tbl_hasil.no_soal,nama_siswa,nama_pel,nama_kat,ha sil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal,tbl_siswa) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat and tbl_hasil.id_siswa=tbl_siswa.no_induk where tbl_hasil.id_kat_soal=id; END$$

lihatRanking : berfungsi untuk menampilkan peringkat nilai/ranking dari para user yang telah megikuti tes.
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatRanking`() BEGIN SELECT id_siswa, nama_siswa, avg(tbl_hasil.hasil) as jml FROM tbl_hasil left join tbl_siswa on tbl_hasil.id_siswa=tbl_siswa.no_induk group by tbl_hasil.id_siswa order by jml desc; END$$

17. 13. lihatNilaiPerMataPelajaran : berfungsi untuk menampilkan daftar nilai berdasarkan mata pelajaran yang dipilih dari sisi server (admin).
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatNilaiPerMataPelajaran`(id int(10)) BEGIN select tbl_hasil.no_soal,nama_siswa,nama_pel,nama_kat,ha sil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal,tbl_siswa) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat and tbl_hasil.id_siswa=tbl_siswa.no_induk where tbl_hasil.id_pel=id; END$$

lihatSemuaNilai : berfungsi untuk menampilkan semua nilai tes yang sudah diikuti oleh user.
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatSemuaNilai`(id int(10)) BEGIN select tbl_hasil.no_soal,nama_pel,nama_kat,hasil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat where id_siswa=id; END$$

18.

lihatSemuaSoal : berfungsi untuk menampilkan semua jenis soal.


CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatSemuaSoal`() BEGIN select id_soal,id_pelajaran,id_kategori,no_soal,nama_pel ,nama_kat,lama_waktu from tbl_soal left join (tbl_kat_soal,tbl_pelajaran) on tbl_soal.id_kategori=tbl_kat_soal.id_kat and tbl_soal.id_pelajaran=tbl_pelajaran.id_pel group by no_soal,id_pelajaran,id_kategori; END$$

14.

lihatNilaiPerMatPel : berfungsi untuk menampilkan daftar nilai berdasarkan mata pelajaran yang dipilih dari sisi client (siswa).
CREATE DEFINER=`root`@`localhost` PROCEDURE `lihatNilaiPerMatPel`(id int(10),id_pelajaran int(10)) BEGIN select tbl_hasil.no_soal,nama_pel,nama_kat,hasil from tbl_hasil left join (tbl_pelajaran,tbl_kat_soal) on tbl_hasil.id_pel=tbl_pelajaran.id_pel and tbl_hasil.id_kat_soal=tbl_kat_soal.id_kat where tbl_hasil.id_pel=id_pelajaran and id_siswa=id; END$$

19.

loginUser : berfungsi untuk mencocokkan username dan password yang terdapat di dalam tabel siswa.
CREATE DEFINER=`root`@`localhost` PROCEDURE `loginUser`(user varchar(40), pass varchar(40)) BEGIN

15.

lihatNilaiPerSiswa : berfungsi untuk menampilkan daftar nilai per siswa dari sisi server (admin).

select * from tbl_siswa where no_induk=user and password=pass; END$$

varchar(100), jwbc varchar(100), jwbd varchar(100), knci varchar(3)) BEGIN insert into tbl_soal(no_soal,id_pelajaran,id_kategori,pertany aan,jwb_a,jwb_b,jwb_c,jwb_d,kunci) values (nosoal,idpel,idkat,soal,jwba,jwbb,jwbc,jwbd,knci ); END$$

20.

loginAdmin : berfungsi untuk mencocokkan username dan password yang terdapat di dalam tabel admin.
CREATE DEFINER=`root`@`localhost` PROCEDURE `loginAdmin`(user varchar(40), pass varchar(40)) BEGIN select * from tbl_admin where username=user and password=pass; END$$

25.

tampilKumpulanSoal : berfungsi untuk menampilkan kumpulan soal-soal berdasarkan kategori atau mata pelajaran yang dipilih.
CREATE DEFINER=`root`@`localhost` PROCEDURE `tampilKumpulanSoal`(id int(10),nosoal int(10),idpel int(10)) BEGIN select id_soal,pertanyaan from tbl_soal left join (tbl_kat_soal,tbl_pelajaran) on tbl_soal.id_kategori=tbl_kat_soal.id_kat and tbl_soal.id_pelajaran=tbl_pelajaran.id_pel where id_kategori=id and no_soal=nosoal and id_pelajaran=idpel; END$$

21.

simpanHasil : berfungsi untuk menyimpan hasil tes yang sudah diikuti oleh user.
CREATE DEFINER=`root`@`localhost` PROCEDURE `simpanHasil`(id_kat int(10),id_pel int(10),no_soal int(10),id_siswa int(10),salah int(5),benar int(5),hasil varchar(10)) BEGIN insert into tbl_hasil (id_kat_soal,id_pel,no_soal,id_siswa,salah,benar, hasil) values (id_kat,id_pel,no_soal,id_siswa,salah,benar,hasil ); END$$

26.

updateDataSiswa : berfungsi untuk memperbaharui data-data siswa.


CREATE DEFINER=`root`@`localhost` PROCEDURE `updateDataSiswa`(id_siswa int(10),nama varchar(100),lahir varchar(100),almt varchar(200)) BEGIN update tbl_siswa set nama_siswa=nama, kelahiran=lahir, alamat=almt where no_induk=id_siswa; END$$

22.

simpanJawaban : berfungsi untuk menyimpan jawaban yang dipilih oleh user.


CREATE DEFINER=`root`@`localhost` PROCEDURE `simpanJawaban`(idsoal int(10), idkat int(10), nosoal int(10), idpel int(10),idsiswa int(10), kuncijwb varchar(10)) BEGIN insert into tbl_jawab_soal (id_soal,id_kat_soal,no_soal,id_pel,id_siswa,kunc i) values (idsoal,idkat,nosoal,idpel,idsiswa,kuncijwb); END$$

27.

updateSoal : berfungsi untuk memperbaharui datadata soal yang terdapat di dalam database.
CREATE DEFINER=`root`@`localhost` PROCEDURE `updateSoal`(id int(10),soal varchar(500),jwba varchar(200),jwbb varchar(200),jwbc varchar(200),jwbd varchar(200),knci varchar(2)) BEGIN update tbl_soal set pertanyaan=soal,jwb_a=jwba,jwb_b=jwbb,jwb_c=jwbc, jwb_d=jwbd,kunci=knci where id_soal=id; END$$

23.

simpanSiswa : berfungsi untuk menambahkan data siswa baru ke dalam tabel siswa.
CREATE DEFINER=`root`@`localhost` PROCEDURE `simpanSiswa`(induk int(20), nama varchar(100), lahir varchar(100), almt varchar(200), pass varchar(30)) BEGIN insert into tbl_siswa(no_induk,nama_siswa,kelahiran,alamat,pa ssword,foto) values (induk,nama,lahir,almt,pass,'no-photo.jpg'); END$$

24.

simpanSoal : berfungsi untuk menambahkan data soal ke dalam tabel soal.


CREATE DEFINER=`root`@`localhost` PROCEDURE `simpanSoal`(nosoal int(5),idpel int(5),idkat int(5),soal varchar(800), jwba varchar(100), jwbb

3.2. Desain Aplikasi Tes Online Proses mendesain pembangunan aplikasi dijabarkan dalam dua diagram activity, yaitu diagram activity untuk peserta tes dan diagram activity untuk administrator seperti yang terlihat pada gambar 1 dan 2.

4. Hasil Uji Coba 4.1. Uji Coba Aplikasi Tes Online Untuk Peserta Tes Gambar dibawah ini menunjukkan tampilan aplikasi tes online untuk peserta tes.

Gambar 4 : Tampilan aplikasi kumpulan katalog soal tes online

Gambar 2 : Diagram activity aplikasi tes online untuk peserta tes

Gambar 5 : Tampilan aplikasi saat pengerjaan soal tes online

Gambar 3 : Diagram activity aplikasi tes online untuk administrator

Gambar 6 : Tampilan aplikasi untuk melihat nilai hasil tes online

4.2. Uji Coba Aplikasi Tes Online Untuk Administrator Gambar dibawah ini menunjukkan administrasi pengaturan data peserta dan pengisian data soal baru ke dalam database.

4. Data-data soal tersimpan di dalam satu tabel yaitu tabel soal. Data-data soal tersebut ditampilkan bisa ditampilkan sesuai dengan kategori dan mata pelajaran yang dipilih oleh peserta tes.

5.2. Saran Aplikasi tes online ini dibangun dengan menggunakan Microsoft Framework .Net dan menggunakan teknik pemrograman client server. Teknik pemrograman client server ternyata kurang memadai untuk digunakan dalam aplikasi ini, terutama jika digunakan dalam platform OS yang berbeda. Maka dari itu, untuk pengembangan ke depannya perlu dibangun aplikasi tes online dengan teknik pemrograman three tier yang juga mendukung web-based.

Gambar 7 : Tampilan aplikasi pengaturan data peserta tes

6. Pustaka [1] Hartanto, Budi. Membuat Program Program Keren dengan Visual C#.Net Secara Mudah. Yogyakarta : C.V Andi Offset. 2009 Nurrohmah, Ratnasari. Client/Server dengan Java Remote Method Invocation (Java RMI), Sebuah Tutorial. Surakarta : Teknik Elektro Universitas Muhammadiyah Surakarta. 2003 Kusrini, Andri Koniyo. Optimasi Penggunaan Tabel terhadap Informasi Akuntansi yang Dihasilkan pada Sistem Informasi Akuntansi. Yogyakarta : STMIK AMIKOM Yogyakarta. Kim, Larry. XML Integrated Development Environments. USA : Altova, Inc. & Altova GmbH. 2002.

[2]

[3]

[4]

Gambar 8 : Tampilan aplikasi pengisian data soal baru ke dalam database.

5. Kesimpulan dan Saran 5.1. Kesimpulan Kesimpulan yang dapat ditarik dari penelitian ini adalah : 1. Teknik normalisasi dapat diterapkan dengan baik pada aplikasi ini, guna mengurangi redundansi data pada database dalam skala besar. Sehingga dihasilkan desain pada relasi database yang terintegrasi dan kinerja yang optimal. 2. Microsoft Framework .Net berhasil dimanfaatkan untuk membangun aplikasi tes online dengan teknik pemrograman client server. 3. Nilai hasil dari tes online bisa dilihat langsung setelah mengikuti tes. Selain itu, nilai juga dapat di export ke dalam format XML yang kemudian dapat dicetak.

Anda mungkin juga menyukai