Anda di halaman 1dari 147

SISTEM INFORMASI TRY OUT ONLINE

TES MASUK PERGURUAN TINGGI NEGERI


( Studi Kasus di Lembaga Pendidikan Primagama Yogyakarta)

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat


Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika

Disusun Oleh:
Nama : Hendro Wibowo
NIM : 035314016

JURUSAN TEKNIK INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007

i
ONLINE STATE UNIVERSITY TRY OUT TEST
INFORMATION SYSTEM
( Case Study in Institute of Education of PrimagamaYogyakarta )

Final Assignment

Presented as partial fulfillment of the requirements


to obtain the sarjana teknik degree
in department of informatics engineering

Created by :
Name : Hendro Wibowo
NIM : 035314016

DEPARTMENT OF INFORMATICS ENGINEERING


FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007

ii
iii
iv
PERNYATAAN

Dengan ini saya sebagai penulis tugas akhir menyatakan dengan sesungguhnya

bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain,

kecuali pemikiran, metode atau hasil penelitian orang lain yang diambil disebutkan

dengan jelas sebagai acuan.

Yogyakarta, Desember 2007

Hendro Wibowo

Penulis

v
HALAMAN PERSEMBAHAN

Karya ini kupersembahkan untuk :

Kedua orang tuaku yang telah membesarkan dan mendidik aku

serta adik tercinta

Teman – teman TI Sanata Dharma angkatan 2003

Teman – teman semua yang telah membantu sampai sejauh ini

vi
HALAMAN MOTTO

Rencanakan pekerjaanmu kemudian kerjakanlah itu.

( Plan your work and work your plan. )

Hidup bagaikan permainan catur. Hadapi masalah, taklukkan rasa takut, dan

menang ketika kesempatan itu datang.

( The game of life is lot like chess. You have to tackle your problems, block your fears,

and score your points when you get the opportunity. )

vii
ABSTRAKSI

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

dikembangkan guna membantu siswa Sekolah Menengah Atas ( SMA ) khususnya kelas

3 menghadapi tes masuk Perguruan Tinggi Negeri ( PTN ). Sistem Informasi ini berisi

try out online yang dapat digunakan siswa untuk mengerjakan soal – soal dan

pengecekan jawaban tes masuk PTN.

Siswa SMA yang merupakan user sistem informasi informasi ini harus terdaftar

untuk dapat mengakses sistem ini. Pada saat melakukan try out atau pengecekan

jawaban, sistem akan menghitung total nilai yang didapat user dan membandingkan

dengan data passing grade program studi yang telah dipilih untuk melihat hasilnya.

Output Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri adalah

program studi yang telah dipilih oleh siswa.

Metodologi pengembangan perangkat lunak secara terstruktur digunakan untuk

pembuatan sistem informasi ini, sedangkan Java Server Pages ( JSP ) digunakan sebagai

bahasa pemrogramannya dan MySQL sebagai databasenya.

Hasil akhir yang diperoleh adalah sebuah Sistem Informasi Try Out Online Tes

Masuk Perguruan Tinggi Negeri yang dapat melakukan pengecekan jawaban tes masuk

PTN serta menampilkan hasil try out berupa program studi yang telah dipilih siswa;

namun masih memiliki kelemahan belum dapat menampilkan soal dalam bentuk gambar

( image ).

viii
ABSTRACT

Online state university try out test information system is developed to utilize to

assist the Senior High School student specially 3rd class facing incoming test of state

university. This Information System contain the online try out which can be used by a

student to do the problems and checking the answer of state university test.

Student as a user have to register to access this system. At the time of doing try

out or answer checking, system will calculate total of value have got by user and

compare with the passing grade major which have been selected to see its result. Output

of online state university try out test information system is the major which have been

selected by the student.

Structure methodology of software Development used for the making of this

information system, while Java Server Pages ( JSP ) used as a programming language

and MySQL as a database.

The final result is obtained a Online State University Try Out Test Information

System which can check the answer of state university test and also present the result of

try out, the result is major which have been selected by a student; but still have a

weakness not yet earned to present the question in an image.

ix
KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa yang telah

melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan Laporan Tugas Akhir

ini. Laporan ini ditulis dalam rangka pemenuhan Tugas Akhir sebagai salah satu syarat

untuk memperoleh gelar Sarjana Teknik, pada Program Studi Teknik Informatika,

Fakultas Sains dan Teknologi, Universitas Sanata Dharma.

Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta

beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena itu,

penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut

membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,

petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada:

1. Bapak Ir. Greg. Heliarko SJ., SS., BST., M.A., M.Sc., selaku dekan Fakultas Sains

dan Teknologi Universitas Sanata Dharma.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika

Universitas Sanata Dharma Yogyakarta dan dosen pembimbing skripsi yang telah

banyak membantu dalam memberikan ide dasar dan saran – saran selama

pengembangan sistem ini.

3. Bapak Alb. Agung Hadhiatma, S.T.,M.Sc. dan bapak St. Wisnu Wijaya, S.T.,M.T.

selaku dosen penguji.

4. Ibu Ridowati Gunawan, S.Kom., M.T. selaku Dosen Pembimbing Akademik

5. Pak Bele yang telah membantu penulis menghadapi masalah teknis menjelang

pendadaran.

x
6. Kedua orang tua serta adik penulis, yang selalu mendoakan, memberikan semangat

dan dorongan kepada penulis untuk dapat menyelesaikan penulisan laporan tugas

akhir ini.

7. Teman – teman mahasiswa Teknik Informatika Universitas Sanata Dharma 2003

yang telah banyak membantu : ruth, dian, winda, abe, yansen, danang, ones, jun,

ucup, breg, gepeng, acid, dea, rachel, sarah, devi dan semua yang telah membantu.

Terima kasih semuanya !!!!

8. Teman – teman English Extension Course : Bagus, Pinto, Dian, Ifa, Ditto, Siska dan

semua yang pernah jadi partner di kelas speaking.

Terima kasih semuanya….walau baru kenal dua semester !!!

9. Teman – teman seveners yang selalu memberi semangat : Aesh, Aanx, Ema, Anita,

Asmi, Widya, Irfan, Ditto.

Terima kasih semuanya !!!!

10. Bapak, Ibu, Mbak dan Mas bagian sekretariat Teknik dan laboratorium Teknik yang

telah banyak membantu.

11. Teman – teman dan semua pihak yang tidak bisa disebutkan satu per satu yang telah

memberikan banyak sekali bantuan dalam penulisan skripsi ini

xi
Dengan tersusunnya laporan Tugas Akhir ini penulis berharap dapat memberi

informasi dan wawasan kepada pembaca. Meskipun masih jauh dari sempurna, dengan

hati terbuka penulis bersedia menerima kritik dan saran guna kesempurnaan penulisan

skripsi ini dimasa yang akan datang.

Yogyakarta, Desember 2007

Hendro Wibowo

Penulis

xii
DAFTAR ISI

HALAMAN JUDUL...............................................................................................i

HALAMAN PERSETUJUAN.............................................................................iii

HALAMAN PENGESAHAN...............................................................................iv

HALAMAN PERNYATAAN................................................................................v

HALAMAN PERSEMBAHAN...........................................................................vi

HALAMAN MOTTO..........................................................................................vii

ABSTRAKSI.......................................................................................................viii

ABSTRACT...........................................................................................................ix

KATA PENGANTAR............................................................................................x

DAFTAR ISI.......................................................................................................xiii

DAFTAR GAMBAR...........................................................................................xix

DAFTAR TABEL..............................................................................................xxii

BAB I PENDAHULUAN.......................................................................................1

1.1 Latar Belakang..........................................................................................1

1.2 Rumusan Masalah.....................................................................................2

1.3 Batasan Masalah........................................................................................2

1.4 Tujuan Penelitian......................................................................................3

1.5 Metode Penelitian......................................................................................3

1.6 Sistematika Penulisan................................................................................4

BAB II DASAR TEORI.........................................................................................6

2.1 Sistem, Informasi, dan Sistem Informasi..................................................6

2.1.1 Sistem..................................................................................................6

xiii
2.1.2 Informasi.............................................................................................6

2.1.3 Sistem Informasi.................................................................................7

2.2 Aplikasi Web.............................................................................................8

2.3 Tes Masuk Perguruan Tinggi Negeri......................................................11

2.4 Use Case Diagram...................................................................................11

2.4.1 Actor..................................................................................................12

2.4.2 Use Case............................................................................................12

2.4.3 Hubungan ( Relationship ) ...............................................................12

2.5 Data Flow Diagram ( DFD ) .................................................................13

2.6 Pemodelan Data......................................................................................14

2.6.1 Entitas ( Entity ) ...............................................................................15

2.6.2 Atribut ( attribute ) ...........................................................................15

2.6.3 Hubungan ( relationship ) ................................................................16

2.7 Dasar – dasar HTML...............................................................................17

2.8 Java Server Pages ( JSP ) .......................................................................18

2.8.1 Pengantar JSP....................................................................................18

2.8.2 Arsitektur JSP....................................................................................19

2.8.3 Kode Sumber JSP..............................................................................20

2.8.4 Ekspresi JSP......................................................................................21

2.8.5 Direktif JSP.......................................................................................21

2.8.6 Tag Deklaratif...................................................................................22

2.8.7 Statement...........................................................................................22

2.8.7.1 Statement Kondisional................................................................23

2.8.7.1.1 Statement if...........................................................................23

xiv
2.8.7.1.2 Statement if … else...............................................................23

2.8.7.2 Loop............................................................................................24

2.8.7.2.1 While Loop............................................................................24

2.8.7.2.2 Do … while...........................................................................24

2.8.7.2.3 For Loop................................................................................24

2.8.8 Penanganan Eksepsi.......................................................................25

2.8.9 Cookie............................................................................................26

2.8.10 Sesi.................................................................................................26

2.9 MySQL....................................................................................................27

2.9.1 Pengantar SQL...............................................................................27

2.9.2 Tipe Data MySQL..........................................................................28

2.9.3 Query MySQL...............................................................................29

2.10 Koneksi JSP – MySQL........................................................................31

2.11 Tomcat..................................................................................................32

BAB III ANALISIS DAN PERANCANGAN SISTEM....................................33

3.1 Analisis Sistem........................................................................................33

3.1.1 Gambaran Sistem Lama.................................................................33

3.1.2 Gambaran Sistem Baru..................................................................34

3.1.3 Orang yang terlibat dalam Sistem..................................................34

3.1.4 Requirement Analysis....................................................................35

3.1.5 Process Modelling..........................................................................36

3.1.5.1 Context Diagram.........................................................................36

3.1.5.2 Diagram Berjenjang....................................................................37

3.1.5.3 Overview Diagram......................................................................38

xv
3.1.6 Data Modelling ( E – R Diagram ).................................................43

3.2 Desain Sistem..........................................................................................45

3.2.1 Desain Database.............................................................................45

3.2.2 Relasi Antar Tabel………………………………………………..48

3.2.3 Desain User Interface.....................................................................49

3.2.3.1 Login Administrator dan Operator...........................................49

3.2.3.2 Pendaftaran Administrator dan Operator.................................49

3.2.3.3 Universitas................................................................................50

3.2.3.4 Program Studi...........................................................................50

3.2.3.5 Tes............................................................................................51

3.2.3.6 Soal...........................................................................................51

3.2.3.7 Kunci Jawaban.........................................................................52

3.2.3.8 Edit Profile Operator................................................................52

3.2.3.9 Login Siswa..............................................................................53

3.2.3.10 Pendaftaran Siswa....................................................................53

3.2.3.11 Home Siswa.............................................................................54

3.2.3.12 Try Out.....................................................................................54

3.2.3.13 Cek Jawaban Tes Masuk PTN.................................................55

3.2.4 Desain Sistem Navigasi..................................................................56

3.2.4.1 Administrator dan Operator.....................................................56

3.2.4.2 Siswa........................................................................................56

BAB IV IMPLEMENTASI SISTEM………………………………………….57

4.1 Karakteristik Sistem................................................................................57

4.2 Pembuatan Database dan Tabel..............................................................58

xvi
4.2.1 Pembuatan Database.........................................................................58

4.2.2 Pembuatan Tabel...............................................................................58

4.3 Koneksi Database....................................................................................62

4.4 User Interface Sistem..............................................................................63

4.4.1 Administrator....................................................................................63

4.4.1.1 Login Administrator.................................................................63

4.4.1.2 Home Administrator.................................................................65

4.4.2 Operator.............................................................................................67

4.4.2.1 Login Operator.........................................................................67

4.4.2.2 Home Operator.........................................................................68

4.4.2.3 Universitas................................................................................69

4.4.2.4 Program Studi...........................................................................72

4.4.2.5 Tes Masuk................................................................................75

4.4.2.6 Soal...........................................................................................78

4.4.2.7 Kunci Jawaban.........................................................................83

4.4.2.8 User..........................................................................................86

4.4.2.1 Edit Profile...............................................................................87

4.4.3 User Siswa......................................................................................88

4.4.3.1 Index User................................................................................88

4.4.3.2 Pendaftaran...............................................................................89

4.4.3.3 Home User...............................................................................91

4.4.3.4 Try Out.....................................................................................92

4.4.3.5 Cek Tes…...............................................................................101

4.4.3.6 Dataku....................................................................................105

xvii
4.4.3.7 Universitas..............................................................................107

BAB V ANALISIS HASIL................................................................................109

5.1 Hasil Pengujian Sistem.........................................................................109

5.2 Kelebihan Sistem..................................................................................109

5.3 Kelemahan Sistem.................................................................................110

5.4 Prospek Pengembangan Sistem.............................................................111

BAB VI PENUTUP............................................................................................112

6.1 Kesimpulan...........................................................................................112

6.2 Saran......................................................................................................112

DAFTAR PUSTAKA.........................................................................................113

LAMPIRAN........................................................................................................114

xviii
DAFTAR GAMBAR

Gambar Keterangan Halaman


2.1 Siklus Informasi 7
2.2 Actor 12
2.3 Use Case 12
2.4 Simbol Proses menurut Gane dan Sarson 13
2.5 Simbol dari arus data 13
2.6 Simbol kesatuan luar menurut Gane dan Sarson 14
2.7 Simbol penyimpanan data menurut Gane dan Sarson 14
2.8 Simbol Entitas 15
2.9 Simbol Atribut 15
3.1 Use Case Diagram 35
3.2 Context Diagram 36
3.3 Diagram Berjenjang 37
3.4 DFD Level 0 38
3.5 DFD Level 1 Proses 1 39
3.6 DFD Level 1 proses 2 39
3.7 DFD Level 1 proses 3 40
3.8 DFD Level 1 proses 4 40
3.9 DFD Level 1 proses 5 41
3.10 DFD Level 1 proses 6 41
3.11 DFD Level 1 proses 7 42
3.12 E – R Diagram 43
3.13 Relasi Antar Tabel 48
3.14 Login Administrator dan Operator 49
3.15 Form Pendaftaran Administrator dan Operator 49
3.16 Form Input Universitas 50
3.17 Form Input Program Studi 50
3.18 Form Input Tes 51
3.19 Form Input Soal 51

xix
3.20 Form Input Kunci 52
3.21 Form Input Edit Profile Operator 52
3.22 Login User 53
3.23 Form Daftar Siswa 53
3.24 Home User 54
3.25 Try Out 54
3.26 Cek Jawaban Tes Masuk PTN 55
3.27 Desain Sistem Navigasi Administrator dan Operator 56
3.28 Desain Sistem Navigasi Siswa 56
4.1 Login Administrator 63
4.2 Home Administrator 65
4.3 Login Operator 67
4.4 Home Operator 68
4.5 Input Universitas 69
4.6 Edit Universitas 71
4.7 List Universitas 72
4.8 Input Program Studi 73
4.9 Edit Program Studi 74
4.10 Input Tes Masuk 75
4.11 Edit Tes 77
4.12 List Try Out 78
4.13 List Jenis Soal Try Out 79
4.14 Edit Jenis Soal 80
4.15 Bank Soal 81
4.16 Edit Bank Soal 82
4.17 List Tes 83
4.18 List Jenis Soal Tes Masuk PTN 84
4.19 Kunci Jawaban Tes Masuk PTN 85
4.20 List User 86
4.21 Edit Profile Operator 87
4.22 Index User 88

xx
4.23 Form Pendaftaran User 89
4.24 Home User 91
4.25 List Try Out 92
4.26 Kelompok Try Out 92
4.27 Form Input Pilihan Prodi Try Out 93
4.28 Data Try Out User 94
4.29 Jenis Soal Try Out 95
4.30 Form Try Out 95
4.31 Nilai User 98
4.32 Hasil User 99
4.33 List Tes Masuk PTN 101
4.34 Kelompok Tes Masuk PTN 102
4.35 Form Input Pilihan Prodi Tes 102
4.36 Data Tes User 103
4.37 List Jenis Soal Tes 103
4.38 Form Input Jawaban Tes 104
4.39 My Profile 105
4.40 Form Ubah Username 106
4.41 Form Ubah Password 107
4.42 List Universitas 107
4.43 List Program Studi 108

xxi
DAFTAR TABEL

Tabel Keterangan Halaman


2.1 Kelompok tes dan kelompok program studi 11
2.2 Tag – tag HTML 18
3.1 Tabel Process Modelling 36
3.2 Tabel universitas 44
3.3 Tabel prodi 44
3.4 Tabel tes 45
3.5 Tabel siswa 45
3.6 Tabel siswa_tes 45
3.7 Tabel master_soal 46
3.8 Tabel soal 46
3.9 Tabel kunci 46
3.10 Tabel jawaban 47
3.11 Tabel hasil_user 47
3.12 Tabel login 47
4.1 Hubungan Kelompok Tes dan Nilai User 100

xxii
BAB I

PENDAHULUAN

1.1 Latar Belakang

Proses penerimaan mahasiswa baru di Perguruan Tinggi Negeri ( PTN ) di

Indonesia menggunakan dua jalur, yaitu :

1. Jalur khusus, melalui penilaian prestasi akademik siswa di Sekolah Menengah

Atas, prestasi olah raga.

2. Jalur reguler, melalui tes tertulis, seperti : Seleksi Penerimaan Mahasiswa Baru (

SPMB ), Ujian Masuk Universitas Gajah Mada ( UM UGM ).

Pelaksanaan tes masuk PTN diselenggarakan secara bersama di tiap – tiap kota

di mana PTN itu berada, misalkan : Seleksi Penerimaan Mahasiswa Baru ( SPMB ). Di

dalam menghadapi tes masuk PTN, siswa Sekolah Menengah Atas ( SMA ) kelas 3

akan menemui beberapa kendala yaitu terbatasnya frekuensi try out yang

diselenggarakan oleh pihak sekolah atau lembaga bimbingan belajar. Try Out tidak

diadakan secara rutin sehingga siswa tidak dapat melatih kemampuan untuk

menghadapi tes masuk PTN.

Permasalahan lain yang timbul adalah pada saat siswa selesai mengikuti tes

masuk PTN, siswa tidak dapat mengetahui hasil tesnya secara cepat. Siswa dapat

menghitung total nilai yang didapat menggunakan kunci jawaban yang dicetak di surat

kabar atau didapat dari internet tetapi tidak dapat mengetahui apakah total nilai yang

diperoleh mempunyai peluang diterima di program studi yang dipilih.

1
2

Dari latar belakang itulah, maka penulis tertarik untuk mengembangkan sebuah

sistem informasi yang dapat memberikan solusi kepada siswa berupa fasilitas try out

yang selalu ter-update dan fasilitas untuk melihat hasil tes masuk PTN yang telah

diikuti oleh siswa. Sistem informasi yang akan dikembangkan berbasis web sehingga

mempermudah siswa untuk mengaksesnya dari lokasi manapun, sistem informasi ini

dibuat dengan mengambil studi kasus di lembaga pendidikan Primagama Yogyakarta.

1.2 Rumusan Masalah

Dari latar belakang tersebut di atas maka rumusan masalah adalah sebagai

berikut : Bagaimana mengembangkan sebuah Sistem Informasi Try Out Online Tes

Masuk Perguruan Tinggi Negeri yang berbasis web ?

1.3 Batasan Masalah

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri berbasis

web yang akan dibuat ini, mengambil beberapa batasan masalah sebagai berikut :

1. Sistem hanya bisa menangani soal ujian yang bertipe pilihan ganda ( tidak

menangani soal yang bertipe essay ).

2. Sistem informasi ini memberikan informasi tes masuk PTN jalur reguler, tidak

termasuk jalur prestasi.

3. Hasil yang ditampilkan sistem ini berupa diterima atau tidaknya calon

mahasiswa di PTN yang dipilih hanya berdasarkan passing grade yang ada

dengan total nilai siswa.

4. Tidak menangani masalah keamanan jaringan.


3

5. Sistem Informasi ini dibuat menggunakan JSP ( Java Server Pages ) serta

menggunakan MySQL sebagai databasenya.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah :

1. Memberi kemudahan siswa untuk mengecek jawaban tes masuk PTN,

menghitung nilai totalnya dan melihat hasilnya.

2. Mengembangkan sebuah sistem try out online Tes Masuk Perguruan Tinggi

Negeri ke dalam suatu sistem informasi yang berbasis web.

1.5 Metode Penelitian

Metode penelitian yang digunakan penulis dalam penyusunan laporan Tugas

Akhir ini dengan melakukan studi kasus serta menerapkan beberapa metode

pengambilan data, antara lain :

1. Studi pustaka tentang Java Server Pages serta MySQL sebagai databasenya.

2. Melakukan survey dan wawancara langsung dengan pihak Primagama.

3. Mengembangkan sistem dengan metode pengembangan perangkat lunak secara

terstruktur :

a. Analisis dan perancangan sistem

Mendapatkan data – data yang diperlukan selama melakukan

penelitian.

Menganalisis data – data yang diperlukan untuk pengembangan

sistem.

Membuat rancangan sistem informasi yang akan dibuat.


4

Membuat rancangan desain database sistem informasi ini untuk

menyimpan data.

Membuat desain user interface sistem informasi yang akan dibuat.

b. Implementasi sistem

Mengimplementasikan rancangan – rancangan yang sudah ada ke dalam sebuah

sistem informasi.

1.6 Sistematika Penulisan

Secara garis besar, sistematika penulisan dari laporan Tugas Akhir ini adalah

sebagai berikut :

Bab I Pendahuluan

Dalam bab ini berisi latar belakang, rumusan masalah yang akan dihadapi,

batasan masalah yang diambil untuk dilaksanakan, tujuan penelitian yang akan

dicapai, metode penelitian yang dipakai untuk mendapatkan data yang

diperlukan dan sistematika penulisan laporan.

Bab II Landasan Teori

Bab ini berisi tentang landasan teori yang menjadi permasalahan yang akan

dibahas serta perangkat lunak yang akan digunakan untuk membangun Sistem

Informasi ini.

Bab III Analisis dan Perancangan Sistem

Bab ini berisi tentang analisis dan perancangan sistem informasi yang akan

dibuat oleh penulis, meliputi analisis sistem baru, rancangan desain input, dan

rancangan desain output.


5

Bab IV Implementasi Sistem

Bab ini berisi tentang implementasi program berdasarkan rancangan – rancangan

yang telah dibuat pada bab sebelumnya.

Bab V Analisis Hasil

Bab ini berisi tentang analisis hasil yang menyangkut kelebihan dan kekurangan

sistem informasi yang telah dibuat oleh penulis.

Bab VI Penutup

Bab ini berisi tentang kesimpulan yang dapat diambil oleh penulis untuk

menjawab permasalahan yang sudah diutarakan pada bab I serta berisi tentang

saran – saran mengenai sistem informasi yang telah dibuat oleh penulis.
BAB II

LANDASAN TEORI

2.1 Sistem, Informasi, dan Sistem Informasi

2.1.1 Sistem

Menurut Raymond Mc Leod, Jr ( 1995 ) sistem merupakan sekelompok

elemen – elemen yang terintegrasi dengan maksud yang sama untuk mencapai

suatu tujuan. Pendapat ini juga didukung oleh Jogiyanto, H.M dalam bukunya

Pengenalan Komputer ( 1995 ) yang mengatakan bahwa sistem adalah suatu

jaringan kerja dari prosedur yang saling berhubungan bersama – sama untuk

melakukan suatu kegiatan atau menyelesaikan tujuan tertentu.

2.1.2 Informasi

Informasi bersumber dari data akurat yang merupakan gambaran dari

kenyataan pada saat tertentu. Data yang ada kemudian diolah melalui suatu model

tertentu sehingga akan menghasilkan suatu informasi. Informasi yang dihasilkan

dapat untuk mendukung pengambilan keputusan dan melakukan tindakan

selanjutnya yang akan menghasilkan sejumlah data sebagai masukan ( input ),

kemudian diproses lagi dan demikian seterusnya sehingga akan membentuk suatu

siklus. Siklus ini oleh John Burch disebut dengan Siklus Informasi ( Information

Cycle ).

6
7

Proses
( Model )
Input Data Output
Data
Basis
Data

Data Penerima
(Ditangkap )

Hasil-hasil Keputusan
Tindakan Tindakan
Gambar 2.1 Siklus Informasi ( Information Cycle )

Hidup matinya suatu oganisasi tergantung pada informasi yang berkualitas atau

dengan kata lain informasi yang dimiliki tersebut adalah informasi yang akurat,

tepat waktu, dan relevan. Agar suatu organisasi dapat berkembang pesat,

diperlukan suatu informasi pendukung yang berkualitas dan bernilai. Nilai

informasi ditentukan oleh dua hal, yaitu manfaat dan biaya mendapatkannya.

Informasi tidak dapat ditaksir keuntungannya dengan materi, tetapi dapat ditaksir

nilai efektifitasnya.

2.1.3 Sistem Informasi

Adalah kegiatan dari prosedur – prosedur yang mempunyai tujuan yang

sama dan apabila dijalankan akan menyediakan informasi. Menurut Whitten,

Sistem Informasi adalah sekumpulan orang, data, proses, interface dan geografi

yang terintegrasi untuk mendukung dan meningkatkan operasional bisnis hari ke


8

hari, sedemikian rupa sehingga dapat menyelesaikan masalah dan memberikan

informasi yang mendukung pengambilan keputusan.

Informasi yang benar harus sudah dapat dihasilkan pada waktu yang tepat untuk

mendukung pengambilan keputusan yang dilakukan pimpinan pada suatu

organisasi. Sistem informasi yang ada harus mempunyai sifat efisien, efektif, dan

fleksibel serta dapat memberikan keputusan terhadap pemakai sistem. Sistem

informasi merupakan sekumpulan prosedur organisasi yang pada saat

dilaksanakan akan memberikan informasi bagi pengambil keputusan untuk

mengendalikan organisasi. Oleh sebab itu, informasi sangatlah dibutuhkan untuk

membangun suatu sistem yang dapat berjalan sesuai dengan tujuan dari

perusahaan, yaitu keuntungan yang maksimal dan optimal.

Arsitektur sistem informasi menyediakan sebuah kerangka untuk

menyatukan berbagai pandangan ( perspektif ) user yang berbeda untuk dapat

mengorganisasikan dan melihat building blok sistem informasi.

2.2 Aplikasi Web

Aplikasi web adalah suatu aplikasi yang dapat membentuk halaman –

halaman web berdasarkan permintaan user. Berbagai contoh aplikasi web :

Mesin pencari atau search engine ( altavista, google, dll )

Situs – situs berita ( detikcom, cnn, dll )

Layanan akademis

WWW merupakan suatu sistem web yang memudahkan pertukaran dan

pencarian data di internet dan ditemukan oleh Tim Bernes Lee di CERN.
9

Laboratorium Eropa untuk Particle Physics, membentuk suatu sistem yang

memungkinkan para ahli riset dapat mengakses dengan cepat dari komputer

mereka ke dokumen yang ingin diakses juga informasi yang dibuat oleh rekan

kerjanya. Dokumen diakses dan ditampilkan melalui browser, sebuah aplikasi

perangkat lunak sederhana yang dijalankan pada komputer client. Dengan

browser, pengguna dapat meminta halaman web dari komputer yang lain yang

berada dalam satu jaringan dan menampilkannya pada layar. Untuk menampilkan

dokumen, pengguna dapat menggunakan browser yang dimasukkan nama host

dari komputernya, kemudian dimasukkan nama dokumennya, sehingga dapat

ditampilkan dokumen tersebut. Browser mengirimkan dokumen yang diminta ke

komputer host. Permintaan tersebut dilakukan oleh program aplikasi yang disebut

web server, sebuah aplikasi yang biasanya dijalankan sebagai service atau

daemon, yang memonitor aktivitas network pada jalur / port khusus ( biasanya

pada port 80 ). Browser mengirimkan format permintaan khusus untuk sebuah

dokumen ( web page ) pada web server melalui network port ini. Web server

menerima request, menemukan dokumen pada sistem local, dan mengirimkan

dokumen tersebut pada browser.

Istilah web berasal dari sistem dengan sekumpulan node yang saling

terhubung. Pengguna dapat dengan mudah membuka dokumen yang ditampilkan

dengan menekan link pada halaman web tersebut.


10

Aplikasi web berdasarkan kebutuhannya dibedakan menajdi tiga kategori,

yaitu ( Restyandito, 2002 ) :

a. Internet Web Site

Digunakan jika pengembangan aplikasi situs akan dibuat untuk

umum, dimana setiap orang boleh untuk mengakses situs ini dan

akan mengetahui apa yang terdapat dan bagaimana aplikasi

tersebut bekerja.

b. Intranet Site

Dipakai hanya untuk kepentingan dalam suatu organisasi, dimana

sistem yang dikembangkan hanya boleh diakses dari lingkungan

organisasi tersebut.

c. Extranet

Suatu aplikasi yang dibuat untuk menghubungkan antara

kepentingan di dalam organisasi dengan kepentingan untuk umum.

Ciri khas lain pada penggunaan aplikasi web, pemakai menggunakan perangkat

lunak yang dinamakan web browser, misalnya Netscape Comunicator, Internet

Explorer, dan Mozilla. Komputer yang bertindak sebagai server umumnya

menyediakan database server, selain web server yang ditujukan untuk melayani

permintaan pemakai yang hendak mengakses aplikasi web. Database server

adalah server yang melayani akses terhadap database. Oracle dan MySQL

merupakan contoh dari sekian database server. Contoh web server yaitu Apache

dan IIS ( Internet Information Server ).


11

2.3 Tes Masuk Perguruan Tinggi Negeri

Tes masuk Perguruan Tinggi Negeri ( PTN ) adalah ujian bersama yang

diselenggarakan oleh beberapa PTN di Indonesia dengan pola ujian tulis. Peserta

tes masuk PTN adalah siswa Sekolah Menengah Atas ( SMA ) kelas 3, di dalam

pelaksanaan tes siswa dapat memilih tiga program studi sesuai kelompok tes yang

diikuti. Tabel 2.1 menunjukkan kelompok tes yang dapat dipilih siswa beserta

program studi yang sesuai.

Kelompok
TES PROGRAM STUDI
IPA IPA
IPS IPS
IPC IPA, IPS
Tabel 2.1 Kelompok tes dan kelompok program studi

Program studi di PTN dibagi menjadi dua kelompok yaitu IPA dan IPS

sehingga siswa harus menyesuaikan antara kelompok tes dan kelompok program

studi yang harus dipilih.

2.4 Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem Sebuah use case merepresentasikan sebuah interaksi antara aktor

dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke

sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang aktor adalah

sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk

melakukan pekerjaan – pekerjaan tertentu.


12

2.4.1.Actor

Representasi pemakai sistem ( manusia atau sistem yang lain ). Seseorang

atau sesuatu yang harus berinteraksi dengan sistem. Peranan yang dimainkan user

saat melakukan interaksi dengan sistem. Misal : Proses peminjaman di bank

melibatkan customer dan loan officer.

user
Gambar 2.2 Actor

2.4.2.Use case

Representasi fungsionalitas atau layanan yang diberikan sistem kepada

pemakai. Deskripsi sederetan aksi yang dilakukan sistem untuk mendapatkan hasil

tertentu. Sederetan aksi menyatakan interaksi antara sistem dengan sesuatu di luar

sistem ( aktor ).

login
Gambar 2.3 Use Case

2.4.3.Hubungan ( Relationship )

Hubungan ( relationship ) digambarkan dengan suatu garis yang

digunakan untuk menghubungkan antara dua simbol dalam use case diagram. Arti

suatu hubungan dapat berbeda-beda tergantung bagaimana suatu garis

digambarkan dan tipe simbol yang digunakan untuk menghubungkan garis

tersebut.
13

2.5 Data Flow Diagram ( DFD )

Data Flow Diagram merupakan sebuah model proses yang digunakan

untuk mengambarkan aliran dari data yang melalui sebuah sistem dan proses yang

dibentuk oleh sistem ( Whitten, J.L, 2004 ).

DFD terdiri dari 4 buah simbol yaitu :

1. Proses ( Process )

Proses adalah kerja yang dilakukan oleh sistem dalam merespon arus data

yang datang atau suatu kondisi. Gambar 2.3 merupakan simbol proses

menurut Gane dan Sarson :

Nama Proses

Gambar 2.4 Simbol Proses menurut Gane dan Sarson

2. Arus data ( Data Flow )

Arus data adalah data sebagai masukan ke proses atau keluaran dari

sebuah proses.

Gambar 2.4 merupakan simbol dari arus data :

Nama Arus Data

Gambar 2.5 Simbol dari arus data

Arus data adalah data yang bergerak. Arus data juga digunakan untuk

mewakili creation, reading, deleting, atau updating dari data dalam file

atau database ( disebut datastore atau penyimpanan data ).


14

3. Kesatuan Luar ( External Agent ).

Kesatuan luar adalah orang, unit organisasi, sistem atau organisasi luar

yang berinteraksi dengan sistem. Disebut juga dengan external entity.

Gambar 2.5 merupakan simbol kesatuan luar menurut Gane dan Sarson :

Nama
kesatuan
luar

Gambar 2.6 Simbol kesatuan luar menurut Gane dan Sarson

4. Penyimpanan data ( Data Store )

Penyimpanan data digunakan untuk menyimpan data hasil proses maupun

menyediakan data untuk diproses. Sinonim dengan file dan database.

Gambar 2.6 merupakan simbol penyimpanan data menurut Gane dan

Sarson

Penyimpanan data

Gambar 2.7 Simbol penyimpanan data menurut Gane dan Sarson

2.6 Pemodelan Data

Pemodelan data adalah suatu teknik atau cara untuk mengatur dan

mendefinisikan persyaratan bisnis untuk sebuah database. Pemodelan data sering

juga disebut sebagai pemodelan database, karena model data kadang-kadang

diimplementasikan sebagai sebuah database.

Entity Relationship Diagram atau ER-Diagram merupakan sebuah data model

yang memanfaatkan beberapa notasi untuk menggambarkan data dalam entity dan

relasi yang dijelaskan oleh data.


15

2.6.1.Entitas ( Entity )

Entitas adalah suatu kelompok orang, tempat, obyek kejadian atau konsep

yang dibutuhkan untuk menyimpan data. Nama entitas berupa kata benda tunggal

( singular noun ).

Siswa

Gambar 2.8 Simbol Entitas

2.6.2. Atribut ( attribute )

Atribut adalah sebuah property yang deskriptif atau krakteristik dari

sebuah entitas. Sinonimnya adalah elemen, sifat dan bidang.

nim

Gambar 2.9 Simbol Atribut

Key merupakan sebuah atribut atau kelompok atribut yang diasumsikan

memiliki nilai yang unik untuk setiap entitas. Sering juga disebut identifier.

1. Candidate key merupakan satu dari nilai key yang akan beerfungsi

sebagai primary key dari sebuah entitas. Sinonimnya adalah candidate

key.

2. Primary key merupakan sebuah candidate key yang paling umum

digunakan untuk mengidentifikasi secara unik dari entitas tunggal.


16

3. Alternate key merupakan sebuah candidate key yang tidak dapat dipilih

untuk menjadi primary key. Sinonimnya adalah secondary key.

Foreign key merupakan sebuah primary key dari sebuah entitas yang digunakan

oleh entitas yang lain untuk mengidentifikasikan sebuah relasi.

2.6.3. Hubungan ( relationship )

Hubungan ( relationship ) adalah sebuah asosiasi bisnis normal antara satu

entitas atau lebih.

Jenis-jenis relationship:

1. one to one

2. one to many

3. many to many

2.7 Dasar – dasar HTML

HTML ( Hyper Text Markup Language ) merupakan bahasa standar yang

digunakan oleh protokol HTTP ( Hyper Text Transfer Protokol ).

Ciri – ciri HTML :

1. Tersusun oleh tag – tag, misalnya <html> …… </html>.

2. Pada umumnya tag selalu mempunyai tag pembuka sepwerti di atas

<html> dan kemudian selalu ada tag penutupnya </html>, namun ada

beberapa tag yanbg tidak mempunyai tag penutup misalnya <br>,<hr>,

dan sebagainya.

3. Tidak case sensitive ( huruf kecil dan besar dianggap sama ).


17

4. Nama file berupa *.html atau *.htm.

Semua tag – tag tersebut harus diletakkan dalam tag <html>…</html>

Tag – tag dasar

<body>…</body> Untuk tampilan halaman web. Mempunyai atribut


bgcolor untuk warna background, text untuk warna text
<br> Untuk pindah baris. Tanpa tag penutup
<h1>…<h1> Untuk membuat heading dan mempunyai 6 jenis
heading. <h1>…<h1> yang paling besar fontnya,
<h6>…</h6> yang paling kecil
<hr> Membuat garis horizontal. Tanpa tag penutup
<center>…</center> Menengahkan kata
<b>…</b> Membuat huruf tebal
<big>…</big> Memperbesar teks dari ukuran normal
<i>…</i> Membuat huruf miring
<small>…</small> Memperkecil teks dari ukuran normal
<sub>…</sub> Membuat subsript
<sup>…</sup> Membuat superscript
<u>…</u> Membuat garis bawah
<font>…</font> Memnentukan jenis font. Mempunyai atribut face, size,
dan color
<p> Untuk membuat paragraph. Tanpa tag penutup
<pre>…</pre> Teks akan ditampilkan apa adanya seperti yang kita
ketik pada editor
<ul>…</ul> Membuat list tanpa nomor urut. Mempunyai atribut
berupa type
<ol>…</ol> Membuat list bernomor. Mempunyai atribut type
<li> Membuat item – item apda list dan harus berada di
dalam tag <ul>…</ul> atau <ol>…</ol>. Tanpa tag
penutup
18

<img src = “nama_file”> Untuk menampilkan gambar. Jenis file yang didukung
adalah *.gif, *.jpg, *.jpeg. *.png, dan *.tif. Tanpa tag
penutup. Tag ini juga mempunyai atribut align yang
berfungsi untuk mengatur posisi text terhadap gambar,
atribut border untuk memberi bingkai gambar, height
untuk tinggi gambar, dan width untuk lebar gambar
<table>…</table> Untuk membuat tabel. Mempunyai atribut :
Border : untuk mengatur bingai tabel, besarnya antara
0..10
Bgcolor : untuk memberi warna background
Width : untuk mengatur lebar tabel
<caption>…</caption> Untuk membuat judul tabel
<th>…</th> Untuk membuat judul kolom
<tr>…</tr> Untuk membuat baris dalam tabel. Mempunyai atribut
sama dengan <td>…</td>
<td>…</td> Untuk membuat satu sel data. Mempunyai atribut –
atribut :
Rowspan : untuk menggabungkan baris
Colspan : untuk menggabungkan kolom
Tabel 2.2 Tag – tag HTML

2.8 Java Server Pages ( JSP )

2.8.1. Pengantar JSP

Java Server Pages ( JSP ) merupakan sebuah bahasa pemrograman

scripting server side untuk membangun suatu web yang interaktif. JSP disusun

berdasarkan bahasa Java dan dikembangkan oleh Sun Microsistem.

Keuntungan menggunakan JSP adalah sebagai berikut :

1. JSP dibuat berdasarkan bahasa Java.


19

2. JSP mendukung multiplatform, yakni kode yang dibuat untuk tidak

terpengaruh dengan sistem operasi, jadi bisa berjalan pada Windows,

Linux, maupun sistem operasi lain.

3. JSP sangat cocok untuk skala enterprise dengan pemrograman multitier

karena menyediakan ke akses JavaBean.

4. JSP memberi dukungan terhadap berbagai jenis database seperti MySQL,

Oracle, Acces, Fox Pro, dan lain-lain.

Karena kode JSP merupakan bahasa yang penggunaannya berjalan pada

internet, maka JSP merupakan salah satu bahasa yang embeded pada halaman

HTML, jadi bukanlah bahasa pemrograman standalone.

Hal – hal yang harus diperhatikan dalam pemrograman JSP :

1. Harus ada web server yang mendukung JSP, dalam hal ini akan digunakan

Apache Jakarta-Tomcat.

2. Penamaan file harus berakhiran *.jsp.

3. Pemrograman bersifat case sensitive ( huruf kecil dan besar dibedakan ).

2.8.2. Arsitektur JSP

Pemakai yang ingin mengakses halaman web mula –mula mengirimkan

permintaan halaman web melalui protokol HTTP ( HyperText Transfer Protocol )

dalam bentuk JSP ( berekstensi .jsp ). Permintaan ini akan disampaikan ke Web

server. Kemudian web server mengambil dokumen JSP dan mengirimkan ke JSP

Servlet Engine. Bagian inilah yang melakukan pemrosesan kode – kode JSP (

termasuk di dalamnya melakukan pengkompilasian ) dan membentuk kode


20

HTML. Berikutnya, kode HTML ini disampaikan oleh Web server ke klien yang

memintanya. Kode HTML ini selanjutnya diproses oleh browser sehingga

pemakai bisa memperoleh informasi dari halaman Web yang dikehendakinya.

Pengkompilasian kode JSP hanya dilakukan sekali saja, yaitu pada pemanggilan

dokumen yang pertama kali. Oleh karena itu, pemakai yang memanggil dokumen

yang baru saja dibuat atau diperbaharui akan merasakan bahwa tanggapan

terhadap permintaan halaman Web cukup lama. Untuk menghindari keadaan

seperti ini, pengembang dapat memanggil terlebih dulu dokumen tersebut setelah

dilakukan perubahan.

2.8.3. Kode Sumber JSP

Kode JSP pada dasarnya adalah kode HTML yang dilengkapi dengan tag –

tag JSP. Pada tag – tag inilah pemrogram menyisipkan kode dalam bahasa Java.

Contoh :

selamat.jsp
<HTML>
<HEAD>
<TITLE>Latihan JSP Pertama</TITLE>
</HEAD>
<BODY>
<%
//Syntak JSP
%>
</BODY>
</HTML>
Detail pemrosesan oleh JSP Servlet engine adalah sebagai berikut :

1. Melakukan pemilahan ( parsing ) kode JSP

2. Membangkitkan kode sumber Servlet

3. Mengkompilasi kode sumber Servlet menjadi sebuah kelas


21

4. Membuat instan servlet

5. Memberikan keluaran servlet ke web server

Servlet adalah teknologi Java yang memungkinkan pembuatan halaman web yang

bersifat dinamis dan diproses pada sisi server.

2.8.4. Ekspresi JSP

Hasil suatu ekspresi JSP dapat dijadikan sebagai keluaran pada halaman

web dengan menggunakan bentuk tag yang bersifat khusus, yakni seperti berikut :

<%= ekspresi Java %>

Tag <%= %> biasa dinamakan tag ekspresi. Dalam hal ini semua ekpresi

dikonversikan ke string ( deretan karakter ) dan disisipkan ke halaman web.

2.8.5. Direktif JSP

Pada JSP, pengimportan suatu paket dilakukan dengan menggunakan tag

direktif, bentuk umumnya adalah :

<%@.......%>

misalnya :

<%@ page import=”java.util.*” %>

yang berarti mengimpor semua kelas yang terdapat pada paket java.util.

JSP dengan sendirinya akan mengimpor paket – paket berikut :

java.lang javax.servlet.jsp

javax.servlet javax.servlet.http
22

Tag direktif ini ditujukan untuk memberitahukan kepada mesin JSP dan bukan

ditujukan untuk membentuk keluaran. JSP memiliki tiga buah direktif yaitu :

page ( digunakan untuk mendefinisikan atribut – atribut yang terdapat

pada halaman JSP )

include ( digunakan untuk menyisipkan suatu berkas atau mengimpor

suatu kelas )

taglib ( digunakan untuk mendefinisikan tag – tag buatan pemrogram )

2.8.6. Tag Deklaratif

JSP menyediakan tag yang secara khusus ditujukan untuk melakukan

pendeklarasian variabel yang berlevel halaman. Variabel seperti ini akan dikenal

sepanjang halaman. Tag yang dimaksud biasa dinamakan tag deklaratif. Tag ini

berbentuk sebagai berikut :

<%!...%>

Tag deklaratif sebenarnya tidak hanya untuk mendeklarasikan variabel, tetapi juga

dapat dipakai untuk mendeklarasikan metode.

2.8.7. Statement

Berfungsi sebagai rangka dari abdan program. Aliran program diatur

dengan statement – statement struktur kontrol. JSP mengenal dua jebis statement

kontrol, yaitu statement kondisional dan loop.


23

2.8.7.1. Statement Kondisional

Statement ini mengatur aliran program berdasarkan pada kondisi tertentu

yang ditetapkan. Untuk masalah dengan satu atau dua percabangan dapat

digunakan statement if dan else, untuk multiple alternatif dapat digunakan else if

dan switch.

2.8.7.1.1. Statement if

Digunakan jika atau lebih operasi akan dilaksanakan jika syaratnya

terpenuhi. Bentuk pernyataan :


<%
if(persyaratan){
operasi program;
}
%>

Operasi dilaksanakan jika persyaratan terpenuhi atau bernilai true, jika tidak

operasi program diabaikan.

2.8.7.1.2. Statement if … else

Pada statement if, jika persyaratan tidak terpenuhi atau bernilai false

operasi program diabaikan. Namun, adakalanya suatu permasalahan memiliki dua

alternatif, dimana jika pernyataan dipenuhi dilakukan operasi I, jika tidak

dilakukan operasi II. Untuk masalah seperti ini dapat ditambahkan statement else

pada statement if. Bentuk pernyataan :

<%
if(persyaratan){
operasi I
}
else{
operasi II
}
%>
24

2.8.7.2. Loop

Adalah sebuah proses eksekusi operasi program secara berulang –

ulang sampai ditemui kondisi untuk mengakhiri eksekusi tersebut. JSP

mempunyai dua macam loop, yaitu while loop dan for loop.

2.8.7.2.1. While Loop

Adalah statement loop yang paling sederhana, bentuknya adalah :

while(persyaratan){
operasi program
};

Operasi program akan dieksekusi terus – menerus selama persyaratan bernilai

true.

2.8.7.2.2. Do … while

Loop menggunakan do … while pada prinsipnya sama dengan while, yang

berbeda adalah pada eksekusi program. Jika menggunakan while persyaratan

diperiksa terlebih dahulu. Kemudian, jika persyaratan bernilai true, eksekusi

dilakukan. Sebaliknya, pada do … while, operasi program dieksekusi terlebih

dahulu baru kemudian persyaratan diperiksa. Jika true loop diteruskan, jika false

loop dihentikan. Dengan demikian, operasi program minimal dieksekusi sekali.

2.8.7.2.3. For Loop

Bentuk loop menggunakan statement for sebagai berikut :


for(syarat1, syarat2, syarat3){
operasi program;
}
25

Syarat pertama diperiksa sekali saja saat awal mulanya loop. Syarat kedua

diperiksa setiap awal iterasi / perulangan. Jika syarat kedua dipenuhi operasi

program dieksekusi, jika tidak maka loop dihentikan. Syarat ketiga dieksekusi

setiap akhir iterasi.

2.8.8. Penanganan Eksepsi

Kesalahan seringkali terjadi sewaktu kode dieksekusi. Agar kesalahan

karena eksepsi dapat dikendalikan maka eksepsi perlu “ ditangkap “. Untuk

keperluan menangkap eksepsi, bisa menggunakan pernyataan try. Ada dua bentuk

pernyataan yang dapat dibentuk, bentuk pertama adalah :


try {
//blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch(parameter) {
//blok yang akan dijalankan kalau terjadi eksepsi
}

Dalam hal ini parameter berupa nama kelas yang berhubungan dengan

penanganan eksepsi dan diikuti nama parameter. Perlu diketahui bahwa kelas

tertinggi eksepsi adalah Throwable. Kelas ini terdapat pada paket java.lang. Kelas

ini merupakan subkelas dari kelas object ( kelas tertinggi pada Java ). Bentuk

kedua adalah :

try {
//blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch(parameter) {
//blok yang akan dijalankan kalau terjadi eksepsi
}
finally {
//blok yang akan dijalankan terakhir kali
}
26

Pada bentuk di atas, bagian finally akan dijalankan, tidak tergantung apakah

bagian bilik try mengalami eksepsi ataupun tidak.

2.8.9. Cookie

Cookie digunakan untuk menangani berbagai hal, misalnya untuk

menyimpan nama pemakai, sehingga ketika pemakai mengunjungi situs web itu

kembali, pemakai bisa segera disapa. Penggunaan lain, cookie digunakan untuk

mengatur tampilan halaman web yang bisa dilakukan sendiri oleh pemakai. Selain

itu cookie juga dapat digunakan untuk menciptakan suatu sesi yang

memungkinkan seseorang dapat masuk ke halaman – halaman lain tanpa perlu

melakukan login kembali.

2.8.10. Sesi

Sebuah sesi dapat digunakan untuk membentuk interaksi antara sebuah

klien dengan web server dalam selang waktu tertentu. Cara yang lebih baik untuk

membentuk hubungan dalam waktu yang lama yaitu melalui fasilitas sesi ( session

) yang secara khusus disediakan oleh JSP. Berbeda dengan cookie ( yang

menyimpan data pada klien ), sesi diimplementasikan dengan menyimpan data

pada server. Dengan demikian tidak perlu ada komunikasi bolak – balik antara

web server dan klien ketika web server membutuhkan data tersebut. Setiap kali

suatu sesi dibentuk maka akan terdapat referensi yang menunjuk ke sesi

bersangkutan. Referensi ini dikenal dengan sebutan pengenal sesi.

Sebuah sesi dapat diciptakan melalui pernyataan sebagai berikut :


27

session = request.getSession(true);

session adalah variabel terdefinisi yang digunakan untuk menangani session.

2.9 MySQL

2.9.1. Pengantar SQL

Bahasa standar yang digunakan dalam database adalah SQL ( Structured

Query Language ). Beberapa software database yang menggunakan SQL antara

lain : MySQL, Oracle, PostgreSQL, Microsoft Acces dan masih banyak lagi.

Berdasarkan ANSI ( American National Standards Institute ) SQL merupakan

bahasa standar yang digunakan untuk relational database management sistem.

Pada dasarnya perintah – perintah SQL terbagi menjadi tiga kelompok :

1. DDL ( Data Definition Language )

Perintah yang digunakan untuk mendefinisikan data. Pernyataan-

pernyataan di sini berkaitan dengan pembuatan tabel, penghapusan tabel,

dan lain-lain. Misalnya create table, alter table, drop table, dan sebagainya.

Hasil kompilasi dari statement DDL adalah satu set tabel yang disimpan

pada file khusus yang disebut Data Dictionary. Data Dictionary adalah file

yang berisi Meta Data yaitu ‘ data mengenai data ‘.

2. DML ( Data Manipulation Language )

Perintah yang digunakan untuk memanipulasi / memodifikasi data.

Pernyataan – pernyataan di sini berkaitan dengan penambahan data,

penghapusan data, menampilkan data, penyisipan data dan lain-lainnya.

Misalnya select, insert, update, dan sebagainya.


28

3. DCL ( Data Contol Language )

Perintah yang digunakan untuk membantu mengkontrol keamanan

setiap database atau sebagian dari isi database dengan membuat hak – hak

akses tertentu bagi user. Misalnya grant digunakan untuk memberikan hak

– hak tertentu kepada seorang user dan revoke digunakan untuk mencabut

hak – hak tertentu dari seorang user terhadap database tertentu.

Sotfware database yang akan digunakan adalah MySQL

2.9.2. Tipe Data MySQL

a. CHAR

Tipe data CHAR digunakan untuk menyimpan data string dengan

jumlah karakter tertebtu. Panjang maksimum karakter dalam tipe data

dinyatakan dengan integer. Jumlah karakter pada tipe ini data CHAR

berkisar antara 1 - 255. Misal : judul CHAR(90).

b. VARCHAR

Tipe data VARCHAR lebih fleksibel daripada tipe data CHAR.

Tipe data ini mempunyai panjang berkisar antara 1 – 255. Berbeda dengan

CHAR, tipe ini akan mengikuti panjang karakter yang disimpan. Misal :

judul VARCHAR(90).

c. INT

Tipe data INT digunakan untuk menyimpan data integer dengan

nilai berkisar antara -2147483648 sampai 2147483647. Misal : nilai INT.


29

d. DATE

Tipe data DATE digunakan untuk menyimpan informasi seputar

penanggalan. Format default tipe data DATE adalah YYYY-MM-DD.

Misal : tanggal DATE.

e. DATETIME

Tipe data DATETIME digunakan untuk menyimpan informasi

penanggalan yang lebih detail daripada tipe data DATE. Format default

tipe data DATETIME adalah YYYY-MM-DD HH:MM:SS. Misal :

tanggal DATETIME.

f. TEXT dan BLOB

Tipe data TEXT dan BLOB digunakan untuk menyimpan data

string dengan jumlah karakter antara 255 sampai 65535. Perbedaaan antara

tipe data TEXT dan BLOB terletak pada sifat case sensitive yang hanya

dimiliki oleh tipe data BLOB. Misal : berita TEXT atau berita BLOB.

2.9.3. Query MySQL

1. CREATE DATABASE

Query CREATE DATABASE digunakan untuk membuat suatu database.

Database ini akan digunakan untuk menampung tabel – tabel yang akan

dibuat. Sintaks yang digunakan :

CREATE DATABASE nama_database;


30

2. USE

Query USE digunakan untuk masuk ke dalam database yang telah dibuat.

Setelah masuk ke database maka kita dapat membuat suatu tabel. Sintaks

yang digunakan :

USE nama_database;

3. CREATE TABLE

Query CREATE TABLE digunakan untuk membuat tabel. Sintaks yang

digunakan :

CREATE TABLE nama_tabel( deskripsi_field1,

deskripsi_field2,... );

4. INSERT INTO

Query INSERT INTO digunakan untuk memasukkan data ke dalam tabel.

Sintaks yang digunakan “

INSERT INTO nama_tabel(field1, field2,…);

5. SELECT

Query SELECT digunakan untuk menampilkan semua atau sebagian

record yang ada pada tabel. Sintaks yang digunakan :

SELECT field1,field2,…

FROM nama_tabel

WHERE field1=..;

Keterangan WHERE digunakan untuk menambahkan perintah spesifik.

6. UPDATE

Query UPDATE digunakan untuk memperbaharui atau mengupdate record

atau untuk mengedit data yang telah disimpan dalam tabel. Sintaks yang

digunakan :
31

UPDATE nama_tabel SET field1=new_field1;

7. DELETE

Query DELETE digunakan untuk menghapus record dari dalam tabel.

Sintaks yang digunakan :

DELETE FROM nama_tabel WHERE field1=….;

2.10 Koneksi JSP – MySQL

Untuk membuat koneksi antara bahasa pemrograman dan database,

khusunya MySQL. Hal pertama yang harus dilakukan adalah menginstall driver

Java, untuk koneksi ke database Java menyediakan API ( Application

Programming Interface ), yaitu JDBC ( Java Data Base Conectivity ). Dasar

terpenting dalam membangun koneksi antara Java ( JSP ) dan database adalah

sejumlah interface yang ada dalam paket Java.sql, karena itu kita harus melakukan

import paket “Java.sql.*”, supaya Java bisa mengakses database.

Terdapat empat interface yang mutlak harus dipakai ketika membangun koneksi

Java – database, yaitu :

1. Connection

Berfungsi untuk mendefinisikan koneksi ke database. Kelas yang

digunakan adalah DriverManager dan metodenya getConnection.

2. Driver

Berfungsi untuk mendefinisikan driver yang digunakan untuk melakukan

koneksi ke suatu database. Untuk MySQL adalah : “

com.MySQL.jdbc.Driver “.
32

3. Statement

Berfungsi untuk mendefinisikan statement SQL.

4. ResultSet

Berfungsi untuk menangkap hasil pengaksesan ke database.

Scipt berikut merupakan pembentukan koneksi ke database


<html>
<head>
<title>Tes Koneksi Database</title>
</head>
<body>
<%@ page import="java.sql.Connection,java.sql.DriverManager" %>
<%
boolean ada_kesalahan = false;
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch (Exception ex){
out.println("Kesalahan: "+ex);
ada_kesalahan = true;
}

if(!ada_kesalahan){
Connection koneksi = null;
try {
koneksi = DriverManager.getConnection(

"jdbc:mysql://localhost/latihan","root","");
out.println("Semua beres");
}
catch(Exception ex){
out.println("Kesalahan: "+ex);}
}
%>
</body>
</html>

2.11 Tomcat

Merupakan sebuah sebutan untuk web container, yang merupakan

implementasi resmi spesifikasi JSP dan Servlet dari Sun Microsistem.


BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

3.1.1 Gambaran Sistem Lama

Try Out tes masuk Perguruan Tinggi Negeri ( PTN ) diadakan oleh

bimbingan belajar atau sekolah untuk membantu siswa sekolah Menengah Atas

dalam menghadapi tes mask PTN yang sesungguhnya. Jika siswa SMA mengikuti

try out yang diselenggarakan oleh bimbingan belajar maka hasil try out-nya dapat

langsung diketahui tetapi membutuhkan waktu relatif lama karena proses

pengecekan jawaban yang menggunakan Lembar Jawab Komputer ( LJK ) tidak

dapat dilakukan secara cepat disebabkan oleh banyak sedikitnya peserta try out.

Setelah mengikuti tes masuk PTN, siswa SMA dapat mengetahui hasil tes

tersebut dengan menghitung sendiri total nilai yang didapat. Kunci jawaban yang

dicetak di surat kabar dapat digunakan untuk proses pengecekan jawaban. Setelah

selesai mengetahui total nilai yang didapat, siswa SMA tidak akan mengetahui

apakah nilai tersebut mempunyai memenuhi standar minimal untuk diterima di

program studi yang telah dipilih.

33
34

3.1.2 Gambaran Sistem Baru

Sistem yang akan dibuat berbasis web sehingga memudahkan user untuk

mengaksesnya, user tersebut adalah siswa SMA khususnya kelas 3. Sistem ini

mempunyai fasilitas try out dan pengecekan jawaban tes masuk PTN. Fasilitas try

out di dalam sistem informasi ini dibuat sama dengan sistem tes masuk PTN yang

ada, meliputi pilihan program studi yang akan dimasukkan user. Fasilitas

pengecekan jawaban tes masuk PTN dapat diakses oleh user setelah mengikuti tes

masuk PTN sehingga user dapat mengetahui hasil tes yang diikuti dalam waktu

yang relatif cepat. User harus terdaftar sebagai member untuk dapat mengakses

sistem ini.

3.1.3 Orang yang terlibat dalam sistem

Ada tiga orang yang akan terlibat dalam “ Sistem Informasi Try Out

Online Tes Masuk Perguruan Tinggi Negeri “ :

a. Administrator

Orang yang berhak menambah dan menghapus operator.

b. Operator

Orang yang bertugas memasukkan, meng-edit dan menghapus data – data

yang berhubungan dengan sistem informasi ini, seperti : data universitas, program

studi, soal try out dan kunci jawaban tes masuk PTN serta menghapus member.

c. Siswa

Siswa SMA khususnya kelas 3 adalah orang yang menggunakan sistem ini

dan harus terdaftar sebagai member terlebih dahulu.


35

3.1.4 Requirement Analysis

Tahap requirement analysis meliputi pembuatan use case diagram

Gambar 3.1 Use Case Diagram


36

3.1.5 Process Modelling

Proses modeling dapat dimulai dari pembuatan input dan output dari sistem
ENTITAS INPUT OUTPUT
ADMINISTRATOR Data login, data Data operator, data
administrator, data operator administrator
baru
OPERATOR Data login, data universitas Data universitas, data prodi,
baru, data prodi baru, data data soal, data kunci
soal baru, data kunci baru
SISWA Data login, data jawaban Data hasil tes masuk PTN,
tes masuk PTN, data try data hasil try out
out
Tabel 3.1 Tabel Process Modelling

3.1.5.1 Context Diagram

Context diagram berguna untuk menggambarkan secara jelas bagaimana sistem


tersebut bekerja, mulai dari inputan awal sampai outputnya. Context diagram dan
overviewnya

Gambar 3.2 Context Diagram


37

3.1.5.2 Diagram Berjenjang

Gambar 3.3 Diagram Berjenjang


38

3.1.5.3 Overview Diagram

DFD Level 0

Gambar 3.4 DFD Level 0


39

DFD Level 1 proses 1

Gambar 3.5 DFD Level 1 Proses 1

DFD Level 1 proses 2

Gambar 3.6 DFD Level 1 proses 2


40

DFD Level 1 proses 3

Gambar 3.7 DFD Level 1 proses 3

DFD Level 1 proses 4

Gambar 3.8 DFD Level 1 proses 4


41

DFD Level 1 proses 5

Gambar 3.9 DFD Level 1 proses 5

DFD Level 1 proses 6

Gambar 3.10 DFD Level 1 proses 6


42

DFD Level 1 proses 7

! " ! " ! " ! "


# $ # $

%
& '

% '

% (
%
& (

Gambar 3.11 DFD Level 1 proses 7


43

3.1.6 Data Modelling ( E – R Diagram )

Gambar 3.12 E – R Diagram


44

3.2 Desain Sistem

3.2.1 Desain Database

Di dalam pembuatan sistem informasi ini akan menggunakan sebuah

database yang bernama prediksi, database tersebut terdapat beberapa tabel yang

digunakan yaitu tabel universitas, tabel prodi, tabel master_soal, tabel siswa, tabel

siswa_tes, tabel tes, tabel soal, tabel kunci, tabel jawaban, tabel hasil_user, dan

tabel login.

Tabel universitas

Name Type Size Description Key


kd_univ varchar 10 Kode universitas PK
nama_univ varchar 30 Nama universitas
alamat varchar 50 Alamat universitas
telepon int 10 Telepon universitas
Tabel 3.2 Tabel universitas

Tabel prodi

Name Type Size Description Key


kd_prodi int 10 Kode prodi PK
nama_prodi varchar 25 Nama prodi
passing_grade int 5 Nilai minimal prodi
kelompok varchar 5 Kelompok prodi
tahun int 5 Tahun prodi ada di universitas
kd_univ varchar 10 Kode universitas FK
Tabel 3.3 Tabel prodi
45

Tabel tes

Name Type Size Description Key


kd_tes varchar 5 Kode tes PK
nama_tes varchar 10 Nama tes
Tabel 3.4 Tabel tes

Tabel siswa

Name Type Size Description Key


user_id int 5 Id bagi user
username varchar 20 Username PK
password varchar 20 Password
nama varchar 50 Nama lengkap user
asal_sekolah varchar 15 Asal sekolah user
jurusan varchar 10 Jurusan user ( IPA, IPS, Bahasa )
Tabel 3.5 Tabel siswa

Tabel siswa_tes

Name Type Size Description Key


username varchar 20 Username PK, FK
kd_tes varchar 5 Kode tes yang diikuti user PK, FK
kelompok varchar 5 Kelompok tes ( IPA, IPS, IPC )
pil1 varchar 10 Kode prodi pilihan pertama
pil2 varchar 10 Kode prodi pilihan kedua
pil3 varchar 10 Kode prodi pilihan ketiga
Tabel 3.6 Tabel siswa_tes
46

Tabel master_soal

Name Type Size Description Key


kd_soal varchar 10 Kode soal PK
nama_soal varchar 50 Nama soal
kd_tes varchar 5 Kode tes FK
Tabel 3.7 Tabel master_soal

Tabel soal

Name Type Size Description Key


kd_soal varchar 5 Kode soal PK, FK
no_soal int 5 Nomor soal PK
isi text Isi soal
option_a varchar 200 Pilihan a
option_b varchar 200 Pilihan b
option_c varchar 200 Pilihan c
option_d varchar 200 Pilihan d
option_e varchar 200 Pilihan e
kunci varchar 5 Kunci jawaban
kd_tes varchar 10 Kode tes soal tersebut PK, FK
Tabel 3.8 Tabel soal

Tabel kunci

Name Type Size Description Key


kd_soal int 5 Kode soal PK, FK
no_soal int 5 No soal PK
jawaban varchar 5 Jawaban soal
kd_tes varchar 10 Kode tes soal tersebut FK
Tabel 3.9 Tabel kunci
47

Tabel jawaban

Name Type Size Description Key


kd_tes varchar 5 Kode tes PK, FK
kd_soal varchar 5 Kode soal PK, FK
no_soal int 5 No soal PK
jawaban varchar 5 Jawaban user
username varchar 20 Username PK, FK
Tabel 3.10 Tabel jawaban

Tabel hasil_user

Name Type Size Description Key


username varchar 20 Username PK, FK
kd_tes varchar 20 Kode tes PK, FK
kd_soal varchar 20 Kode Soal PK, FK
skor int 5 Total nilai yang didapat
jwb_bnr int 5 Jumlah jawaban benar
jwb_slh int 5 Jumlah jawaban salah
jwb_kosong int 5 Jumlah jawaban kosong
Tabel 3.11 Tabel hasil_user

Tabel login

Name Type Size Description Key


username varchar 20 Username administrator dan operator PK
password varchar 20 Password administrator dan operator
nama varchar 50 Nama administrator dan operator
status enum (‘admin’, Status administrator dan operator
‘operator’)
Tabel 3.12 Tabel login
48

3.2.2 Relasi Antar Tabel

Gambar 3.13 Relasi Antar Tabel


49

3.2.3 Desain User Interface

3.2.3.1 Login Administrator dan Operator

)) *

Gambar 3.14 Login Administrator dan Operator

3.2.3.2 Pendaftaran Administrator dan Operator

)) *

- $

. (
+

Gambar 3.15 Form Pendaftaran Administrator dan Operator


50

3.2.3.3 Universitas

)) *

) (

Gambar 3.16 Form Input Universitas

3.2.3.4 Program Studi

)) *

&

Gambar 3.17 Form Input Program Studi


51

3.2.3.5 Tes

)) *

. (

Gambar 3.18 Form Input Tes

3.2.3.6 Soal

)) *

( +

Gambar 3.19 Form Input Soal


52

3.2.3.7 Kunci Jawaban

)) *

0$
+

Gambar 3.20 Form Input Kunci

3.2.3.8 Edit Profile Operator

Gambar 3.21 Form Input Edit Profile Operator


53

3.2.3.9 Login Siswa

)) *

- $

Gambar 3.22 Login User

3.2.3.10 Pendaftaran Siswa

)) *

- $

- $ 1

. &

0( ( +

Gambar 3.23 Form Daftar Siswa


54

3.2.3.11 Home Siswa

)) *

*2 +, -* / ./

-*+3/ -*+ /

Gambar 3.24 Home User

3.2.3.12 Try Out

)) *

. 4
+
+ # $
+
+
+ +

Gambar 3.25 Try Out


55

3.2.3.13 Cek Jawaban Tes Masuk PTN

)) *

0$
# $
+

Gambar 3.26 Cek Jawaban Tes Masuk PTN


56

3.2.4 Desain Sistem Navigasi

3.2.4.1 Administrator dan Operator

Gambar 3.27 Desain Sistem Navigasi Administrator dan Operator

3.2.4.2 Siswa

Gambar 3.28 Desain Sistem Navigasi Siswa


BAB IV

IMPLEMENTASI SISTEM

4.1 Karakteristik Sistem

Sistem yang dibangun adalah Sistem Informasi Try Out Online Tes Masuk

Perguruan Tinggi Negeri ( PTN ) berbasis web sehingga sistem dapat diakses

dimana saja dan kapan saja. Pada sistem ini terdapat administrator yang bertugas

melakukan input data administrator dan data operator, operator adalah orang yang

bertugas melakukan update data yang berhubungan secara langsung dengan

sistem, misalnya : data universitas, data program studi, dan data soal. Sistem ini

digunakan untuk membantu siswa Sekolah Menengah Atas ( SMA ) kelas 3

dalam melakukan persiapan tes masuk PTN dengan mengerjakan try out yang ada

serta melihat hasil tes masuk PTN yang diikuti.

Implementasi sistem ini menggunakan studi kasus sistem try out yang

masih menggunakan Lembar Jawab Komputer ( LJK ), kemudian dikembangkan

ke dalam sebuah sistem yang berbasis web. Bahasa pemrograman yang digunakan

adalah Java Server Pages ( JSP ) beserta Apache Tomcat 5.0.16 sebagai web

server dan MySQL 5 sebagai database dengan menggunakan beberapa tools yang

mendukung dalam pengembangan web seperti Macromedia Dreamweaver MX,

SQL yog, Net Beans, dan Adobe Photoshop 7.

57
58

4.2 Pembuatan Database dan Tabel

4.2.1. Pembuatan database

Sistem Informasi Try Out Online Tes Masuk PTN membutuhkan sebuah

database yang akan berisi beberapa tabel, tabel – tabel tersebut akan menyimpan

semua data yang berhubungan dengan sistem. Database yang digunakan bernama

database prediksi, perintah SQL yang digunakan :

create database prediksi;

4.2.2. Pembuatan tabel

Sistem Informasi Try Out Online Tes Masuk PTN membutuhkan beberapa

tabel untuk penyimpanan data, data tersebut adalah data yang dimasukkan oleh

administrator, operator, dan user.

a. Tabel Universitas

Tabel universitas digunakan untuk menyimpan data – data yang

berhubungan dengan universitas. Data – data tersebut adalah kode universitas,

nama universitas, alamat, dan nomor telepon.

CREATE TABLE `universitas` (


`kd_univ` varchar(10) NOT NULL,
`nama_univ` varchar(50) NOT NULL,
`alamat` varchar(50) NOT NULL,
`telepon` varchar(15) default NULL,
PRIMARY KEY (`kd_univ`)
)

b. Tabel prodi

Tabel prodi digunakan untuk menyimpan data program studi dari

universitas yang telah dimasukkan.


59

CREATE TABLE `prodi` (


`kd_prodi` int(10) unsigned NOT NULL default '0',
`nama_prodi` varchar(25) NOT NULL,
`passing_grade` int(5) unsigned NOT NULL,
`kelompok` varchar(5) NOT NULL,
`tahun` int(5) unsigned NOT NULL,
`kd_univ` varchar(10) NOT NULL,
PRIMARY KEY (`kd_prodi`),
KEY `kd_univ_fk` (`kd_univ`)
)

c. Tabel Tes

Tabel tes digunakan untuk menyimpan semua data jenis tes yang ada, tes

tersebut dapat berupa tes yang bersifat latihan yang akan dikerjakan oleh user ( try

out ) dan tes masuk PTN yang akan diprediksi oleh user.
CREATE TABLE `tes` (
`kd_tes` varchar(10) NOT NULL,
`nama_tes` varchar(60) NOT NULL,
`status` enum('open','closed') NOT NULL,
PRIMARY KEY (`kd_tes`)
)

d. Tabel master_soal

Tabel master_soal digunakan untuk menyimpan jenis – jenis soal yang

berhubungan dengan data tes. Misalkan : tes UM –UGM akan mempunyai

beberapa jenis soal seperti kemampuan dasar, kemampuan IPA, dan kemampuan

IPS. Field waktu akan digunakan untuk tes try out sehingga field waktu dapat

diberikan nilai atau tidak, apabila tidak diberi nilai maka akan di-set NULL.

CREATE TABLE `master_soal` (


`kd_soal` varchar(10) NOT NULL,
`nama_soal` varchar(50) default NULL,
`kd_tes` varchar(10) NOT NULL,
`waktu` varchar(10) default NULL,
PRIMARY KEY (`kd_soal`),
KEY `kd_tes` (`kd_tes`)
e. Tabel)soal
60

Tabel soal digunakan untuk menyimpan data – data soal yang akan

dikerjakan oleh user. Data tes try out yang akan berisi soal – soal ini beserta

kunci kunci jawabannya.


CREATE TABLE `soal` (
`kd_soal` varchar(5) NOT NULL,
`no_soal` int(5) NOT NULL,
`isi` text,
`option_a` varchar(200) default NULL,
`option_b` varchar(200) default NULL,
`option_c` varchar(200) default NULL,
`option_d` varchar(200) default NULL,
`option_e` varchar(200) default NULL,
`kunci` varchar(5) default NULL,
`kd_tes` varchar(10) NOT NULL,
PRIMARY KEY (`kd_soal`,`no_soal`,`kd_tes`),
KEY `kd_soal` (`kd_soal`,`kd_tes`)
)

f. Tabel kunci

Tabel kunci merupakan tabel yang digunakan untuk menyimpan data

kunci jawaban dari tes masuk PTN dan bukan merupakan data tes try out.

CREATE TABLE `kunci` (


`kd_soal` varchar(10) NOT NULL,
`no_soal` int(11) NOT NULL,
`jawaban` varchar(5) NOT NULL,
`kd_tes` varchar(10) NOT NULL,
PRIMARY KEY (`kd_soal`,`no_soal`),
KEY `kd_tes` (`kd_tes`)
)

g. Tabel jawaban

Tabel jawaban berisi semua jawaban tes dari user, tes try out dan tes

masuk PTN.
CREATE TABLE `jawaban` (
`kd_tes` varchar(10) NOT NULL,
`kd_soal` varchar(5) NOT NULL,
`no_soal` int(5) NOT NULL,
`jawaban` varchar(5) default NULL,
`username` varchar(20) NOT NULL,
PRIMARY KEY
(`kd_tes`,`kd_soal`,`no_soal`,`username`),
KEY `username_fk` (`username`)
)
61

h. Tabel siswa

Data user yang telah terdaftar sebagai member akan disimpan ke dalam

tabel siswa.
CREATE TABLE `siswa` (
`user_id` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`nama` varchar(50) NOT NULL,
`asal_sekolah` varchar(15) NOT NULL,
`jurusan` varchar(5) NOT NULL,
PRIMARY KEY (`user_id`,`username`)
)

i. Tabel siswa_tes

Data user yang telah mengerjakan try out atau mengikuti prediksi akan

disimpan ke dalam siswa tes.

CREATE TABLE `siswa_tes` (


`username` varchar(20) NOT NULL,
`kd_tes` varchar(20) NOT NULL,
`kelompok` varchar(5) NOT NULL,
`pil1` varchar(10) default NULL,
`pil2` varchar(10) default NULL,
`pil3` varchar(10) default NULL,
PRIMARY KEY (`username`,`kd_tes`)
)

j. Tabel hasil_user

User yang telah mengerjakan try out atau prediksi, akan memperoleh

hasilnya. Hasil tersebut akan disimpan ke dalam tabel hasil_user.

CREATE TABLE `hasil_user` (


`username` varchar(20) NOT NULL,
`kd_tes` varchar(20) NOT NULL,
`kd_soal` varchar(20) NOT NULL,
`skor` int(5) NOT NULL,
`jwb_bnr` int(5) default NULL,
`jwb_slh` int(5) default NULL,
`jwb_kosong` int(5) default NULL,
PRIMARY KEY (`username`,`kd_tes`,`kd_soal`)
)
62

k. Tabel login

Tabel login digunakan untuk menyimpan data administrator dan operator

yang akan digunakan untuk login ke dalam sistem.

CREATE TABLE `login` (


`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`nama` varchar(50) default NULL,
`status` enum('admin','operator') default NULL,
PRIMARY KEY (`username`)
)

4.3 Koneksi Database

Langkah pertama yang harus dilakukan untuk membangun website yang

bersifat dinamis dan tidak statis adalah semua data yang ditampilkan diambil dari

database sehingga apabila data berubah, data yang ditampilkan ke dalam sistem

ikut berubah tanpa harus merubah kode HTML. Java Server Pages ( JSP ) dapat

mengakses database dengan cara memuat driver MySQL dengan listing program

sebagai berikut :
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch (Exception ex){
out.println("Kesalahan: "+ex);
ada_kesalahan = true;
}

try {
Connection koneksi = DriverManager.getConnection(
"jdbc:mysql://localhost/prediksi","root","");
out.println("");
}
catch(Exception ex){
out.println("Kesalahan: "+ex);
}
63

Listing program tersebut digunakan untuk membentuk hubungan ke database

MySQL, bernama prediksi yang terdapat pada localhost menggunakan nama

root dan password ” ” ( kosong ).

4.4 User Interface Sistem

User Interface dari sistem ini digunakan oleh administrator, operator, dan

user siswa untuk mengakses Sistem Informasi Try Out Online Tes Masuk

Perguruan Tinggi Negeri.

4.4.1. Administrator

4.4.1.1. Login Administrator

Gambar 4.1 Login Administrator

Administrator harus memasukkan username, password, dan login

as sebagai administrator agar dapat mengakses sistem, apabila administrator gagal

melakukan login maka halaman ini akan ditampilkan kembali dan akan muncul
64

peringatan. Login administrator akan valid jika username, password dan status

sebagai administrator cocok dengan data yang ada.

<%@ include file="otentikasi.jsp" %>


String sesi_user = gantiKosong(
request.getParameter("pemakai"));
String sesi_pass = gantiKosong(
request.getParameter("sandi"));
String sesi_status = gantiKosong(
request.getParameter("status"));
if (! otentikasi(sesi_user, sesi_pass,sesi_status))
{
String msg = "Username atau Password Anda tidak
cocok.......";
response.sendRedirect("index.jsp?msg=" + msg +
"&pemakai=" + sesi_user); }

Listing tersebut digunakan untuk menyimpan data login administrator yang

dicocokkan dengan data yang ada menggunakan fungsi otentikasi, apabila data

yang dimasukkan tidak valid maka halaman index akan ditampilkan kembali.
hasilQuery = stm.executeQuery(
"SELECT password FROM login " +
"WHERE username = '" + pemakai + "' AND status = '"+status+"'");

Fungsi otentikasi digunakan untuk melihat apakah data yang dimasukkan untuk

proses login administrator benar dan valid. Perintah SQL tersebut yang digunakan

di dalam fungsi otentikasi.

session.invalidate();
session = request.getSession(true);
session.setAttribute("sesi_user", sesi_user);
session.setAttribute("sesi_pass", sesi_pass);
session.setAttribute("sesi_status", sesi_status);
response.sendRedirect("menu_admin.jsp");

Setelah proses login sukses, maka data username, password, dan status akan

disimpan ke dalam sesi. Langkah pertama dalam pembentukan sesi adalah


65

menghapus sesi sekarang yang ada, menciptakan sesi baru, dan membentuk tiga

buah sesi dengan nama sesi_user, sesi_pass, dan sesi_status.

4.4.1.2. Home Administrator

Gambar 4.2 Home Administrator

Apabila proses login yang dilakukan administrator tidak mengalami

kesalahan maka administrator akan masuk ke halaman ini. Pada halaman ini

administrator dapat melakukan input data administrator dan operator. Data – data

yang harus dimasukkan adalah nama, username, password, dan status. Status

mempunyai dua nilai yaitu administrator dan operator. Pada saat proses input data,

username akan dijadikan sebagai primary key di dalam database sehingga

menyebabkan pemberian username tidak boleh sama.


66

String username = request.getParameter("username");


String nama = request.getParameter("nama");
String pass = request.getParameter("password");
String stat = request.getParameter("status");

Listing tersebut digunakan untuk mengambil data yang dimasukkan oleh

administrator dalam melakukan proses pendaftaran.

ResultSet hasil = stm.executeQuery("SELECT username FROM login


WHERE username = '"+username+"'");
if(hasil.next()) {
msg = "Username sudah ada. Silahkan cari yang lain !";
response.sendRedirect("menu_super.jsp?msg="+msg); }

Listing tersebut digunakan untuk melihat apakah di dalam database terdapat

username yang dimasukkan oleh administrator. Jika username sudah ada maka

data gagal dimasukkan dan akan kembali ke halaman administrator.

String query =
"INSERT INTO login(username,password,nama,status)
VALUES ('"+username+"','"+pass+"','"+nama+"','"+stat+"')";
hasil_penyisipan = stm.executeUpdate(query);

Listing tersebut digunakan untuk memasukkan data yang dimasukkan oleh

administrator. Perintah tersebut akan dijalankan apabila semua data yang diisikan

tidak mempunyai kesalahan.

Administrator dapat menghapus data administrator yang lama dan

data operator yang ada. Proses penghapusan data tampak pada listing program

sebagai berikut :

String nama = request.getParameter("username");


String sql = "DELETE FROM login WHERE username = '"+nama+"'";
stm.executeUpdate(sql);
67

4.4.2.Operator

4.4.2.1. Login Operator

Gambar 4.3 Login Operator

Operator harus memasukkan username, password, dan login as

sebagai operator agar dapat mengakses sistem, apabila operator gagal melakukan

login maka halaman ini akan ditampilkan kembali dan akan muncul peringatan.

Data – data yang dimasukkan oleh operator untuk melakukan proses login akan

dicocokkan dengan database yang ada. Login operator akan valid jika username,

password dan status sebagai operator cocok dengan data yang ada. Proses login

operator mempunyai prinsip yang sama dengan login administrator. Perbedaannya

adalah apabila login administrator sukses maka akan masuk ke halaman

administrator, perintahnya adalah

response.sendRedirect("menu_super.jsp");

sedangkan bagi operator apabila login yang dilakukan sukses, perintahnya adalah

response.sendRedirect("menu_admin.jsp");
68

4.4.2.2. Home Operator

Gambar 4.4 Home Operator

Operator akan menemui halaman home operator jika login yang

dilakukan valid. Pada halaman ini operator akan menemui beberapa penjelasan

tentang menu – menu yang ada, menu – menu ini digunakan untuk proses update

data yang meliputi input data, pengeditan data, dan penghapusan data. Menu –

menu tersebut adalah :

Universitas, menu ini digunakan oleh operator untuk melakukan update

data universitas negeri.

Program Studi, proses update data program studi di tiap universitas

dilakukan di dalam menu ini.

Tes Masuk, operator memasukkan semua nama tes masuk yang ada baik

itu try out yang diadakan atau tes masuk Perguruan Tinggi Negeri ( PTN )

yang sebenarnya. Perbedaannya adalah pada try out terdapat sekumpulan


69

soal yang dapat dikerjakan sedangkan pada tes masuk PTN hanya terdapat

kunci jawaban.

Soal, menu ini digunakan oleh operator untuk memasukkan semua soal –

soal yang akan ditampilkan ke dalam web beserta kunci jawabannya.

Kunci Jawaban, menu kunci jawaban hanya digunakan untuk memasukkan

data kunci jawaban dari tes masuk PTN dan bukan merupakan kunci

jawaban dari try out.

User, operator dapat menghapus semua user yang terdaftar yaitu siswa

sekolah menengah dari menu ini.

Edit Profile, menu edit profile digunakan untuk meng-edit data operator

yang sedang login.

Logout, menu untuk logout

4.4.2.3. Universitas

Gambar 4.5 Input Universitas


70

Halaman input universitas digunakan untuk memasukkan semua data

universitas negeri yang terlibat secara langsung dengan tes masuk yang

diselenggarakan. Data yang diperlukan adalah kode universitas, nama universitas,

alamat, dan nomor telepon. Data – data tersebut akan memberikan gambaran yang

jelas kepada siswa. Proses input, peng-editan, dan penghapusan data hanya bisa

dilakukan oleh operator. Kode universitas merupakan primary key di dalam

database, sehingga dalam pemberian nama tidak diperbolehkan sama, apabila

kode ditulis dengan sama maka sistem akan menolaknya. Proses pemasukan data

yang valid akan ditampilkan ke dalam list universitas tetapi apabila proses

tersebut gagal maka akan muncul pernyataan yang menunjukkan data gagal

dimasukkan.
if(!ada_kesalahan){
String kode = request.getParameter("kode");
String nama = request.getParameter("nama");
String alamat = request.getParameter("alamat");
String telepon = request.getParameter("telepon");
if(kode.equals("") || nama.equals("") || alamat.equals("") ||
telepon.equals("")){
String msg = "Data yang diisikan tidak lengkap";
response.sendRedirect("menu_universitas.jsp?offset="+offse
t+"&msg=" +msg);}
else{
try{
Statement stm = koneksi.createStatement();
String query = "INSERT INTO universitas
(kd_univ,nama_univ,alamat,telepon) VALUES
('"+kode+"','"+nama+"','"+alamat+"','"+telepon+"')";
hasil_penyisipan = stm.executeUpdate(query);}
catch(Exception ex) {
ada_kesalahan = true;}}

Listing program tersebut menunjukkan proses input data universitas. Data – data

yang dimasukkan melalui form akan dicek terlebih dahulu kemudian akan

dimasukkan ke dalam database apabila data tersebut valid tetapi jika data tidak

valid maka data akan gagal dimasukkan.


71

List universitas tersebut menunjukkan semua data universitas yang telah berhasil

dimasukkan. Perintah SQL di bawah ini digunakan untuk menampilkan semua

data universitas, variabel offset dan limit hanya digunakan untuk mengatur

tampilan di dalam sistem


String sql = "SELECT * FROM universitas ORDER BY kd_univ LIMIT
"+offset+","+limit+"";

Proses peng-editan data dapat dilakukan dengan memilih salah satu

universitas yang akan di-edit dengan cara meng-klik link edit.

Gambar 4.6 Edit Universitas

Setelah operator memilih universitas yang di-edit maka akan muncul tampilan

sesuai gambar 4.6, operator tinggal mengganti data yang diganti dengan data yang

baru, perintah SQL yang digunakan di dalam melakukan proses edit data

universitas adalah sebagai berikut :


String sql = "UPDATE universitas SET kd_univ ='"+kd_univ+"',
nama_univ ='"+nama_univ+"',alamat = '"+alamat+"',telepon =
'"+telepon+"' WHERE kd_univ='"+kd_univ+"'";
72

Proses penghapusan data dapat dilakukan oleh operator dengan cara

meng-klik link delete pada data universitas yang akan dihapus. Perintah SQL yang

digunakan untuk menghapus data universitas adalah sebagai berikut :

String sql = "DELETE FROM universitas WHERE kd_univ = '"+kode+"'";


String sql2 = "DELETE FROM prodi WHERE kd_univ = '"+kode+"'";

Pada saat menghapus universitas akan dijalankan dua perintah SQL yaitu

menghapus universitas dan menghapus program studi yang ada di universitas

tersebut.

4.4.2.4. Program Studi

Gambar 4.7 List Universitas

Pada saat operator akan menambah daftar program studi di tiap – tiap

universitas yang ada. Pertama kali operator akan menemui halaman yang

menampilkan semua universitas yang ada, hal ini memberikan kemudahan

bagi operator dalam update data program studi di tiap universitas yang ada.
73

Proses update data program studi dapat dilakukan dengan cara meng-klik link

view. Link tersebut akan menampilkan daftar program studi pada universitas

tersebut beserta form untuk melakukan input data.

Gambar 4.8 Input Program Studi

Proses input program studi membutuhkan beberapa data, yaitu kode

prodi, nama prodi, passing grade, kelompok, dan tahun. Apabila data yang

dimasukkan tidak valid, maka akan muncul pernyataan yang menunjukkan

bahwa data gagal dimasukkan. Passing grade merupakan suatu nilai minimal

yang harus didapat oleh siswa untuk dapat lulus tes sesuai dengan program

studi yang bersangkutan. Passing grade setiap program studi mempunyai nilai

yang berbeda. Kelompok mempunyai dua nilai yaitu IPA dan IPS. Program

studi di tiap universitas negeri akan dimasukkan ke dalam kelompok yang

sesuai. List program studi menunjukkan data – data yang berhasil dimasukkan.
74

String kode_prodi = request.getParameter("kode_prodi");


String nama = request.getParameter("nama");
String passing = request.getParameter("passing");
String kelompok = request.getParameter("kelompok");
String tahun = request.getParameter("tahun");
String kd_univ = request.getParameter("kd_univ");
String query =
"INSERT INTO prodi
(kd_prodi,nama_prodi,passing_grade,kelompok,tahun,kd_univ
) VALUES
('"+kode_prodi+"','"+nama+"','"+passing+"','"+kelompok+"'
,'"+tahun+"','"+kd_univ+"')";
hasil_penyisipan = stm.executeUpdate(query);

Data – data yang dimasukkan melalui form input data universitas akan di-

passingkan ke beberapa variabel baru yang akan digunakan untuk

memasukkan ke dalam tabel prodi. Data yang dimasukkan tidak boleh kosong,

apabila data yang dikirimkan tidak valid maka proses input data tersebut

gagal.

Proses peng-editan data dilakukan dengan cara meng-klik link edit

pada program studi yang akan diubah.

Gambar 4.9 Edit Program Studi


75

Proses peng-editan data dapat dilakukan dengan cara mengganti data yang ada

seperti pada gambar 4.9 dengan data yang baru. Data yang berhasil di-edit

dapat dilihat pada list program studi yang ada, perintah SQL berikut yang

digunakan untuk proses edit data program studi.

String sql = "UPDATE prodi SET kd_prodi ='"+kd_prodi+"',


nama_prodi ='"+nama+"',passing_grade = '"+passing+"',kelompok =
'"+kelompok+"',tahun = '"+tahun+"',kd_univ = '"+kd_univ+"'
WHERE kd_prodi='"+kd_prodi+"'";
Proses penghapusan data program studi dapat dilakukan dengan cara

meng-klik link delete pada program studi yang akan dihapus, perintah SQL

yang digunakan untuk menghapus program studi adalah sebagai berikut :


String sql = "DELETE FROM prodi WHERE kd_prodi = '"+kode2+"'
AND kd_univ = '"+kode+"'";

4.4.2.5. Tes Masuk

Gambar 4.10 Input Tes Masuk

Proses input tes masuk dapat dilakukan pada halaman seperti pada

gambar 4.10, data yang harus dimasukkan oleh operator adalah kode tes, nama
76

tes, dan status. Data tes yang dimasukkan adalah semua data tes yang ada baik itu

data tes try out atau tes masuk PTN. Status mempunyai dua nilai yaitu open dan

closed, status open menunjukkan bahwa tes tersebut telah dibuka sehingga akan

ditampilkan ke dalam sistem dan user dapat mengaksesnya tetapi apabila status

closed berarti tes tersebut belum bisa ditampilkan ke dalam sistem dan user belum

bisa mengaksesnya. Status mempuyai nilai default yaitu closed. Hal ini akan

memberikan manfaat yaitu apabila operator belum selesai menambah data soal try

out atau menambah data kunci pada tes masuk PTN maka user tidak bisa

mengakses tes tersebut karena tidak akan ditampilkan ke dalam sistem. Sebelum

memasukkan data tes masuk, sistem akan memeriksa data tersebut. Listing

program berikut digunakan untuk memasukkan data tes masuk.


String kode = request.getParameter("kode");
String nama = request.getParameter("nama");
String stat = request.getParameter("status");
String query = "INSERT INTO tes (kd_tes,nama_tes,status) VALUES
('"+kode+"','"+nama+"','"+stat+"')";
hasil_penyisipan = stm.executeUpdate(query);

Proses peng-editan data dilakukan dengan cara meng-klik link edit

pada tes yang akan di-edit. Perintah SQL yang digunakan untuk meng-update tes

adalah sebagai berikut :

String sql = "UPDATE tes SET kd_tes='"+kd_tes+"',


nama_tes='"+nama_tes+"',status='"+stat+"' WHERE
kd_tes='"+kd_tes+"'";
77

Gambar 4.11 Edit Tes

Proses peng-editan data dapat dilakukan dengan cara mengganti data yang ada

seperti pada gambar 4.11 dengan data yang baru. Data yang berhasil di-edit dapat

dilihat pada list tes yang ada.

Proses penghapusan data dapat dilakukan oleh operator dengan cara

meng-klik link delete pada tes yang akan dihapus.


String sql = "DELETE FROM tes WHERE kd_tes = '"+kode+"'";
String sql2 = "DELETE FROM soal WHERE kd_tes = '"+kode+"'";
String sql3 = "DELETE FROM master_soal WHERE kd_tes = '"+kode+"'";
String sql4 = "DELETE FROM kunci WHERE kd_tes = '"+kode+"'";

Pada saat melakukan proses penghapusan data tes masuk maka akan ada beberapa

data yang akan terhapus juga. Data – data tersebut adalah jenis soal beserta soal

dan kunci jawabannya. Jika tes tersebut adalah try out maka akan menghapus jenis

soal dan isi soalnya sedangkan jika tes tersebut adalah tes masuk PTN maka akan

menghapus jenis soal dan kunci jawabannya.


78

4.4.2.6. Soal

Gambar 4.12 List Try Out

Pada saat operator mengakses menu soal maka halaman pertama

yang dijumpai adalah halaman yang berisikan list try out. Data try out tersebut

merupakan try out yang akan ditampilkan ke dalam sistem. Pemberian kode tes

untuk try out diawali dengan huruf “ T “ dengan tujuan untuk membedakan

dengan tes masuk PTN. Proses update soal pada tiap jenis try out dapat dilakukan

dengan cara meng-klik link view. Perintah SQL berikut digunakan untuk

menampilkan semua tes try out yang ada di halaman operator.

String sql = "SELECT * FROM tes WHERE kd_tes like 'T%'";


79

Gambar 4.13 List Jenis Soal Try Out

Pada tiap try out akan diberikan tiga jenis soal yang berbeda yaitu

kemampuan dasar, kemampuan IPA, dan kemampuan IPS. Di setiap jenis soal

mempunyai waktu pengerjaan yang berbeda – beda.

Perintah SQL berikut digunakan untuk menampilkan semua jenis soal try out.

String sql = "SELECT m.* FROM master_soal m, tes t where m.kd_soal


LIKE 'T%' AND m.kd_tes LIKE '"+kd_tes+"' AND m.kd_tes = t.kd_tes
ORDER BY kd_soal";

Pada halaman ini operator dapat menambah jenis soal beserta waktu

pengerjaannya.

String kode = request.getParameter("kode_soal").toUpperCase();


String jenis = request.getParameter("jenis_soal");
String waktu = request.getParameter("waktu");
String query =
"INSERT INTO master_soal (kd_tes,kd_soal,nama_soal,waktu)
VALUES ('"+kd_tes+"','"+kode+"','"+jenis+"','"+waktu+"')";
hasil_penyisipan = stm.executeUpdate(query);
80

Gambar 4.14 Edit Jenis Soal

Proses edit jenis soal dapat dilakukan dengan meng-klik link edit

sehingga akan muncul halaman seperti pada gambar 4.14, untuk melakukan peng-

editan data dapat dilakukan dengan cara mengganti data – data yang sudah ada

dengan data yang baru.

String sql = "UPDATE master_soal SET kd_tes='"+kd_tes+"',


nama_soal='"+nama+"',waktu='"+waktu+"',kd_soal='"+kd_soal+"'
WHERE kd_tes='"+kd_tes+"' AND kd_soal='"+kd_soal+"'";

Proses penghapusan jenis soal dilakukan dengan cara meng-klik link

delete seperti pada gambar 4.13, tetapi apabila melakukan penghapusan jenis soal

perlu diperhatikan karena saat jenis soal tersebut dihapus maka semua soal yang

berada dalam jenis tersebut secara otomatis akan terhapus.

String sql = "DELETE FROM master_soal WHERE kd_soal =


'"+kd_soal+"'";
String sql2 = "DELETE FROM soal WHERE kd_soal = '"+kd_soal+"'";

Proses input data soal di dalam tiap jenis soal dilakukan di halaman

seperti pada gambar 4.13 dengan meng-klik link tambah soal.


81

Gambar 4.15 Bank Soal

Operator dapat melakukan input data soal di halaman seperti pada gambar 4.15,

data yang diperlukan untuk membuat sebuah soal try out adalah no soal, isi soal,

lima buah option ( A – E ), dan kunci jawabannya. Soal – soal ini akan

ditampilkan ke dalam sistem dan bisa diakses oleh user. Proses input data akan

sukses jika data yang dimasukkan benar – benar valid, hasil dari input data dapat

dilihat pada list yang terdapat di halaman form untuk input data. Perintah SQL

yang digunakan untuk proses input data adalah sebagai berikut :

String query = "INSERT INTO soal


(kd_soal,no_soal,isi,option_a,option_b,option_c,option_d,option_
e,kunci,kd_tes) VALUES
('"+kd_soal+"','"+nomor+"','"+soal+"','"+opt_a+"','"+opt_b+"','"
+opt_c+"','"+opt_d+"','"+opt_e+"','"+kunci+"','"+kd_tes+"')";

hasil_penyisipan = stm.executeUpdate(query);
82

Proses edit soal dilakukan dengan cara meng-klik link edit pada soal

yang akan di-edit seperti pada gambar 4.15.

Gambar 4.16 Edit Bank Soal

Operator akan menjumpai halaman seperti pada gambar 4.16, form edit soal

tersebut digunakan untuk mengubah data yang sudah ada. Data yang lama dapat

diganti dengan yang baru. Pada saat melakukan proses edit data, perintah SQL

yang dikerjakan adalah sebagai berikut :

String sql = "UPDATE soal SET kd_soal = '"+kd_soal+"',no_soal =


'"+nomor+"',isi = '"+soal+"',option_a = '"+opt_a+"',option_b =
'"+opt_b+"',option_c = '"+opt_c+"',option_d =
'"+opt_d+"',option_e = '"+opt_e+"',kunci = '"+kunci+"' WHERE
kd_tes='"+kd_tes+"' AND kd_soal = '"+kd_soal+"' AND no_soal =
'"+nomor+"'";

Proses penghapusan dapat dilakukan pada saat operator mengakses

halaman bank soal seperti pada gambar 4.15, data yang dipilih dapat dihapus

dengan cara meng-klik link delete. Perintah SQL yang digunakan :

String sql = "DELETE FROM soal WHERE no_soal = '"+nomor+"' AND


kd_soal = '"+kd_soal+"' AND kd_tes = '"+kd_tes+"'";
83

4.4.2.7. Kunci Jawaban

Gambar 4.17 List Tes

Pada saat operator mengakses menu kunci jawaban, operator akan

menjumpai halaman seperti pada gambar 4.17, halaman ini berisikan semua data

tes yang ada. Tes tersebut adalah semua jenis tes masuk PTN beserta kunci

jawabannya dan bukan kunci jawaban dari try out yang dikerjakan oleh user.

Proses update data kunci jawaban dapat dilakukan dengan cara meng-klik link

view pada tes masuk PTN yang ada.

String sql = "SELECT kd_tes,nama_tes FROM tes WHERE kd_tes NOT LIKE
'T%'";

Perintah SQL tersebut digunakan untuk menampilkan semua jenis tes masuk PTN

yang ada.
84

Gambar 4.18 List Jenis Soal Tes Masuk PTN

Setelah operator memilih tes mana yang akan di-update data kunci

jawabannya maka akan dijumpai halaman yang berisikan beberapa jenis soal yang

berbeda, setiap tes masuk mempunyai beberapa jenis soal yang berbeda walaupun

mempunyai nama yang sama. Perbedaan ini ditunjukkan dengan kode soal yang

ada. Operator dapat menambah beberapa jenis soal sesuai dengan jenis soal yang

ada pada saat tes masuk.

String query =
"INSERT INTO master_soal (kd_tes,kd_soal,nama_soal)
VALUES ('"+kd_tes+"','"+kode+"','"+jenis+"')";

Link delete digunakan untuk menghapus jenis soal yang ada, pada saat

menghapus jenis soal maka sistem secara otomatis akan menghapus semua kunci

jawaban yang ada di dalamnya.

String sql = "DELETE FROM master_soal WHERE kd_soal =


'"+kd_soal+"'";
String sql2 = "DELETE FROM kunci WHERE kd_soal = '"+kd_soal+"'";
85

Kunci jawaban tes masuk PTN di-inputkan dengan cara meng-klik link tambah

kunci di halaman seperti pada gambar 4.18.

Gambar 4.19 Kunci Jawaban Tes Masuk PTN

Proses input data kunci jawaban membutuhkan dua buah data yaitu

nomor soal tersebut dan kunci jawaban. Apabila proses input data gagal maka

sistem akan menampilkan pernyataan yang menunjukkan data gagal disimpan, hal

ini dapat disebabkan pada saat operator menambah data kunci jawaban dengan

nomor soal yang sama.

String nomor = request.getParameter("no_soal");


String kunci = request.getParameter("kunci").toLowerCase();
String query =
"INSERT INTO kunci (kd_soal,no_soal,jawaban,kd_tes) VALUES
('"+kd_soal+"','"+nomor+"','"+kunci+"','"+kd_tes+"')";

Jika operator memasukkan kunci jawaban yang salah, maka kunci jawaban yang

telah dimasukkan dapat dihapus dengan cara meng-klik link delete yang ada.

Kunci jawaban tersebut akan terhapus dari database, sehingga operator dapat

memasukkan kunci jawaban yang benar.


86

String sql = "DELETE FROM kunci WHERE no_soal = '"+nomor+"'";

Perintah SQL tersebut digunakan untuk menghapus data kunci.

4.4.2.8. User

Gambar 4.20 List User

Halaman user digunakan oleh operator untuk menghapus semua user

yang terdaftar. Data – data yang akan dihapus meliputi data user, semua jenis try

out yang diikuti serta semua kunci jawaban yang telah dikirimkan oleh user.

String sql = "SELECT * FROM siswa ORDER BY jurusan LIMIT


"+offset+","+limit+"";

Perintah SQL tersebut digunakan untuk menampilkan semua user yang terdaftar.

Operator atau administrator tidak berhak meng-edit data user, hak yang dipunyai

oleh operator adalah menghapus data user.

String sql = "DELETE FROM siswa WHERE username = '"+nama+"'";


String sql2 = "DELETE FROM siswa_tes WHERE username = '"+nama+"'";
String sql3 = "DELETE FROM hasil_user WHERE username = '"+nama+"'";
String sql4 = "DELETE FROM jawaban WHERE username = '"+nama+"'";
87

Pada saat operator menghapus data user, data dari beberapa tabel yang

berhubungan dengan user tersebut akan dihapus secara otomatis oleh sistem,

diantaranya data pribadi user, data partisipasi user mengikuti try out atau cek

jawaban tes masuk PTN meliputi jawaban dan hasilnya. Proses delete user ini

dapat dilakukan sekali dalam kurun waktu satu tahun karena sistem informasi ini

dikhususkan bagi siswa SMA kelas 3 sehingga akan diasumsikan setelah satu

tahun berlalu, user tersebut tidak akan aktif lagi dalam mengakses sistem ini.

4.4.2.9. Edit Profile

Gambar 4.21 Edit Profile Operator

Halaman edit profile digunakan oleh operator untuk mengubah data

pribadinya, data yang dapat dirubah adalah username dan password. Data nama

tidak dapat dirubah karena proses input data operator ini dilakukan oleh

administrator sehingga data pertama kali yang dimasukkan harus valid.


88

String sql2 = "UPDATE login SET username='"+username2+"',


password='"+pass2+"',nama='"+nama+"' WHERE
username='"+pemakai+"'";

4.4.3. User Siswa

4.4.3.1. Index User

Gambar 4.22 Index User

Halaman index user merupakan halaman pertama kali yang akan

dijumpai oleh user saat user akan mengakses sistem. User harus

melakukan login terlebih dahulu sebelum masuk ke halaman berikutnya

tetapi apabila user belum terdaftar sebagai member maka dapat melakukan

proses pendaftaran terlebih dahulu. Proses login dilakukan dengan

memasukkan username dan password yang dimiliki oleh user.

hasilQuery = stm.executeQuery(
"SELECT password FROM siswa " +
"WHERE username = '" + pemakai + "'");
89

Listing program tersebut digunakan untuk mengecek proses login yang

dilakukan, password dan username yang dimasukkan oleh user dicocokkan

dengan data username yang ada dalam database.

session.invalidate();
session = request.getSession(true);
session.setAttribute("sesi_user", sesi_user);
session.setAttribute("sesi_pass", sesi_pass);

Setelah proses login sukses maka sesi yang ada sekarang akan dihapus kemudian

menciptakan sesi baru, dan kemudian membentuk dua buah data sesi.

4.4.3.2. Pendaftaran

4.23 Form Pendaftaran User

User yang ingin mengakses sistem ini harus melakukan proses

pendaftaran terlebih dahulu. Proses pendaftaran memerlukan data username,

password, nama, asal sekolah, dan jurusan. Semua data tersebut harus diisi dan

apabila user tidak melengkapi data yang ada maka sistem akan menolak untuk
90

memprosesnya. Username tiap - tiap user tidak diperbolehkan sama maka jika ada

user yang mendaftar dengan username yang sama, sistem akan menolaknya.

String username = request.getParameter("username");


String password = request.getParameter("password");
String password2 = request.getParameter("password2");
String nama = request.getParameter("nama");
String sekolah = request.getParameter("sekolah");
String jurusan = request.getParameter("jurusan");

Listing tersebut digunakan untuk menyimpan semua data yang di-inputkan oleh

user melalui form pendaftaran, kemudian disimpan ke dalam variabel baru.

ResultSet hasil = stm.executeQuery("SELECT username FROM siswa


WHERE username = '"+username+"'");
if(hasil.next()) {
String msg = "Username sudah ada. Silahkan cari yang lain !";
response.sendRedirect("menu_daftar.jsp?msg="+msg);
}

Pernyataan di atas digunakan untuk mengecek username yang diisikan oleh user

dalam melakukan proses pendaftaran. Apabila username sudah dipakai oleh

member lain maka akan muncul pemberitahuan dan kembali ke form pendaftaran.

String query = "INSERT INTO siswa


(username,password,nama,asal_sekolah,jurusan) VALUES
('"+username+"','"+password+"','"+nama+"','"+sekolah+"',
'"+jurusan+"')";
hasil_penyisipan = stm.executeUpdate(query);

Apabila proses validasi yang dilakukan sistem tidak menemui kesalahan dalam

pengisian data maka perintah di atas akan dieksekusi untuk memasukkan data user

yang melakukan pendaftaran ke dalam database. Setelah proses pendaftaran

berhasil, maka akan ditampilkan halaman index seperti pada gambar 4.22 disertai

dengan pernyataan yang menyatakan pendaftaran berhasil dengan sukses. User

dapat melakukan proses login dengan username dan password yang telah ada.
91

4.4.3.3. Home User

Gambar 4.24 Home User

Halaman home user dapat diakses setelah proses login yang

dilakukan tidak menemui kesalahan. Halaman home user berisi menu – menu

yang dapat diakses user, yaitu :

Try Out, menu Try Out digunakan user untuk mengerjakan soal – soal

latihan yang telah disediakan.

Cek Tes, menu cek tes digunakan user untuk melihat hasil tes masuk PTN.

Dataku, menu Dataku berisi semua data pribadi user meliputi username

dan password serta semua data tentang try out yang pernah dilakukan dan

prediksi tes masuk PTN.

Program Studi, user dapat melihat semua program studi di tiap – tiap PTN

di dalam menu Program Studi.


92

4.4.3.4. Try Out

Gambar 4.25 List Try Out

Pada saat user memilih menu Try Out maka halaman seperti pada

gambar 4.25 akan ditampilkan. Daftar try out tersebut adalah semua try out yang

dapat dikerjakan oleh user, untuk mengikuti salah satu try out user dapat meng-

klik link ikut.

Gambar 4.26 Kelompok Try Out


93

Setelah memilih try out mana yang akan dikerjakan maka user akan

diminta memilih salah satu kelompok try out yang akan diikuti. Kelompok

tersebut ada tiga macam yaitu IPA, IPS, dan IPC. Kelompok tersebut akan

mempengaruhi jenis soal yang akan dikerjakan beserta program studi yang

dipilihnya. Contoh : user memilih kelompok IPA

Gambar 4.27 Form Input Pilihan Prodi Try Out

User akan diminta memasukkan program studi yang akan dipilih, user dapat

mengisi maksimal tiga program studi dan minimal satu program studi. Kelompok

try out yang diikuti user adalah IPA maka semua program studi yang dapat

diambil adalah program studi di kelompok IPA.


94

Gambar 4.28 Data Try Out User

Halaman seperti pada gambar 4.28 akan dijumpai user setelah user selesai mengisi

pilihan program studi.

String query = "INSERT INTO siswa_tes


(username,kd_tes,kelompok,pil1,pil2,pil3) VALUES
('"+pemakai+"','"+kd_tes+"','"+kelompok+"','"+pil1+"','"+pil2+"
','"+pil3+"')";
hasil_penyisipan = stm.executeUpdate(query);

Data pilihan program studi yang dimasukkan user akan disimpan ke dalam tabel

siswa_tes, perintah SQL di atas digunakan untuk memproses input data.

Halaman ini digunakan untuk pengecekan apakah data yang dimasukkan sesuai

dengan keinginan user, jika user ingin mengganti pilihan program studinya dapat

kembali ke halaman selanjutnya dengan cara meng-klik link back.


95

Gambar 4.29 Jenis Soal Try Out

Setelah user yakin program studi yang dimasukkan valid maka dapat mengerjakan

soal try out tersebut, karena user memilih kelompok IPA maka user harus

mengerjakan dua soal yaitu kemampuan dasar dan kemampuan IPA.

Gambar 4.30 Form Try Out


96

Misalkan user memilih mengerjakan soal kemampuan dasar, halaman seperti

gambar 4.26 akan diakses oleh user. User dapat menjawab setiap pertanyaan

dengan meng-klik tombol OK.

String sql2 = "SELECT * FROM soal WHERE kd_soal = '"+kd_soal+"'


AND kd_tes = '"+kd_tes+"' ORDER BY no_soal LIMIT
"+offset+","+limit+" ";
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch (Exception ex){
out.println("Kesalahan: "+ex);
//ada_kesalahan = true;
}
koneksi = DriverManager.getConnection(
"jdbc:mysql://localhost/prediksi","root","");
stm = koneksi.createStatement();
ResultSet rs2 = stm.executeQuery(sql2);
int halaman=0;
halaman = jumlah/limit;
if(jumlah%limit != 0){
halaman++;}
for(int i = 1;i<=halaman;i++) {
int newoffset = 0;
newoffset = limit*(i-1);
if(offset != newoffset)
{ %>
<a
href="menu_form_latihan.jsp?offset=<%=newoffset%>&kd_soal=<%=kd_
soal%>&kd_tes=<%=kd_tes%>"><%=i%></a>
<%} else {
out.print(i);
}
}
while (rs2.next()) {
String no = rs2.getString("no_soal");
String soal = rs2.getString("isi");
String opt_a = rs2.getString("option_a");
String opt_b = rs2.getString("option_b");
String opt_c = rs2.getString("option_c");
String opt_d = rs2.getString("option_d");
String opt_e = rs2.getString("option_e");
%>

Listing program tersebut digunakan untuk mengatur tampilan soal – soal try out,

soal try out yang akan ditampilkan sesuai yang dipilih user berdasarkan kode tes

dan kode soal. Tiap halaman soal akan memuat lima soal.
97

Semua jawaban user dapat dilihat pada list jawaban yang ada. Perintah SQL yang

digunakan untuk menampilkan semua jawaban user adalah

String sql = "SELECT * FROM jawaban WHERE kd_soal =


'"+kd_soal+"' AND kd_tes = '"+kd_tes+"' AND username =
'"+pemakai+"' ORDER BY no_soal";

User dapat menjawab semua pertanyaan atau hanya menjawab sebagian

pertanyaan saja. Perintah SQL yang digunakan untuk memasukkan jawaban try

out user adalah sebagai berikut :

String query = "INSERT INTO jawaban


(kd_tes,kd_soal,no_soal,jawaban,username) VALUES
('"+kd_tes+"','"+kd_soal+"','"+nomor+"','"+jawaban+"',
'"+pemakai+"')";
hasil_penyisipan = stm.executeUpdate(query);

Jika user ingin mengganti jawaban soal yang telah dikerjakan dapat meng-klik

link delete pada list jawaban, jawaban lama user akan terhapus dari sistem dan

user dapat memasukkan jawaban yang baru.


String sql = "DELETE FROM jawaban WHERE no_soal = '"+nomor+"'
AND kd_soal = '"+kd_soal+"' AND kd_tes = '"+kd_tes+"' AND
username = '"+pemakai+"'";

Setelah user menjawab semua pertanyaan dan menyelesaikan jenis soal tersebut,

user harus mengirim jawaban – jawaban tersebut agar dapat mengetahui hasilnya

dengan cara meng-klik tombol send pada list jawaban.


98

Gambar 4.31 Nilai User

Halaman seperti pada gambar 4.31 akan ditampilkan setelah user selesai

mengerjakan soal. Halaman tersebut berisi keterangan nilai dan semua jawaban

yang dijawab oleh user. Nilai try out didapat dari perhitungan bobot nilai benar

dan salah, sebagai berikut :

Nilai benar = jumlah jawaban benar x 4

Nilai salah = jumlah jawaban salah x ( -1 )

Total nilai = nilai benar + nilai salah

Apabila user tidak menjawab soal maka nilai tersebut diberi nilai 0 ( nol )

sehingga tidak perlu dimasukkan ke proses perhitungan karena tidak akan

mempengaruhi total nilai.

Perintah SQL yang digunakan untuk menghitung jawaban yang benar, yaitu :

String sql = "SELECT count(j.no_soal)*4 benar FROM jawaban


j,soal s WHERE j.username = '"+pemakai+"' and s.no_soal =
j.no_soal and j.jawaban = s.kunci and s.kd_soal = '"+kd_soal+"'
and j.kd_soal = '"+kd_soal+"'";
99

Perintah SQL yang digunakan untuk menghitung jawaban yang salah, yaitu :

String sql2 = "SELECT count(j.no_soal)*-1 salah FROM jawaban


j,soal s WHERE j.username = '"+pemakai+"' and s.no_soal =
j.no_soal and j.jawaban <> s.kunci and j.jawaban not like ''
and s.kd_soal = '"+kd_soal+"' and j.kd_soal = '"+kd_soal+"'";

Perintah SQL yang digunakan untuk menghitung total nilai, yaitu :

int total = nilai_benar+nilai_salah

Perintah SQL untuk memasukkan data nilai ke dalam tabel, yaitu :

String sql4 = "INSERT INTO hasil_user


(username,kd_tes,kd_soal,skor,jwb_bnr,jwb_slh,jwb_kosong)
VALUES (
'"+pemakai+"','"+kd_tes+"','"+kd_soal+"','"+total+"','"+jwbn_be
nar+"','"+jwbn_salah+"','"+jwbn_kosong+"')";

User hanya bisa mengerjakan jenis soal di dalam sebuah try out hanya satu kali.

User dapat mengetahui hasil akhir dari try out yang dikerjakan apabila telah

selesai mengerjakan jenis soal yang satunya.

Gambar 4.32 Hasil User


100

Pada contoh ini adalah kemampuan IPA, setelah user selesai mengerjakan kedua

jenis soal tersebut dapat dilihat dengan meng-klik link cek hasil atau dari menu

dataku. Gambar 4.32 menunjukkan hasil akhir try out yang telah dilakukan user.

Nilai yang terdapat di dalam hasil try out terdiri dari dua macam yaitu nilai IPA

dan nilai IPS sesuai dengan kelompok tes yang diikuti. Tabel 4.1 menunjukkan

hubungan antara kelompok tes dan nilai user.

Kelompok Tes Nilai User


IPA Nilai IPA ( kemampuan dasar + kemampuan IPA )
IPS Nilai IPS ( kemampuan dasar + kemampuan IPS )
IPC Nilai IPA ( kemampuan dasar + kemampuan IPA )
Nilai IPS ( kemampuan dasar + kemampuan IPS )
Tabel 4.1 Hubungan Kelompok Tes dan Nilai User

Perintah SQL yang digunakan untuk menghitung total nilai IPA jika user

mengikuti kelompok tes IPA adalah

String sql = "SELECT sum(h.skor) as total FROM hasil_user


h,master_soal m WHERE m.kd_tes = '"+kd_tes+"' AND
h.kd_soal=m.kd_soal AND (m.nama_soal='kemampuan ipa' or
m.nama_soal='kemampuan dasar') AND h.username='"+pemakai+"'";

Perintah SQL yang digunakan untuk menghitung total nilai IPS jika user

mengikuti kelompok tes IPS adalah

String sql2 = "SELECT sum(h.skor) as total FROM hasil_user


h,master_soal m WHERE m.kd_tes = '"+kd_tes+"' AND
h.kd_soal=m.kd_soal AND (m.nama_soal='kemampuan ips' or
m.nama_soal='kemampuan dasar') AND h.username='"+pemakai+"'";

Jika user mengikuti kelompok tes IPC maka user akan mempunyai dua nilai yaitu

nilai IPA dan nilai IPS. Nilai IPA akan digunakan sebagai nilai untuk

membandingkan dengan passing grade program studi kelompok IPA yang dipilih
101

user sedangkan nilai IPS digunakan sebagai nilai untuk membandingkan dengan

passing grade program studi kelompok IPS. Hasil try out berupa program studi

yang berhasil ditempuh user.

4.4.3.5. Cek Tes

Gambar 4.33 List Tes Masuk PTN

Halaman cek tes digunakan user untuk mengecek jawaban tes masuk

PTN, seperti : Ujian Masuk UGM ( UM UGM ) dan Seleksi Penerimaan

Mahasiswa Baru ( SPMB ).


102

Gambar 4.34 Kelompok Tes Masuk PTN

User harus memilih kelompok tes yang diikutinya, misalkan user memilih IPA.

Gambar 4.35 Form Input Pilihan Prodi Cek Tes

User harus memasukkan program studi yang dipilihnya di dalam mengikuti tes

masuk PTN, agar sistem dapat memberikan hasil tes dengan tepat.
103

Gambar 4.36 Data Tes User

Program studi yang telah dimasukkan tersebut akan ditampilkan seperti pada

gambar 4.36, user dapat melihat apakah data yang diinputkan benar. Apabila user

ingin merubah data tersebut dapat meng-klik link back.

Gambar 4.37 List Jenis Soal Tes

User dapat memilih jenis soal yang sesuai dengan tes yang diikutinya, user hanya

bisa memasukkan jawaban satu kali pada tiap jenis soal. Misalkan user sudah
104

memasukkan jawaban pada jenis soal kemampuan dasar dengan kode 121, user

tidak dapat memasukkan jawaban pada jenis soal yang sama ( kemampuan dasar )

dengan kode yang berbeda ( 124 ).

Gambar 4.38 Form Input Jawaban Tes

User dapat meng-inputkan jawaban sesuai dengan nomor soal dan jawaban tes

yang diikuti. Hasil dari inputan user dapat dilihat di dalam list jawaban, setelah

user selesai meng-inputkan jawaban kemudian user harus mengirim jawaban

tersebut agar dapat diketahui hasilnya dengan cara meng-klik tombol send. Nilai

yang didapat user akan ditampilkan seperti pada gambar 4.31. Setelah user selesai

meng-inputkan semua jawaban pada jenis soal tes masuk yang diikuti user dapat

mengecek hasilnya pada menu dataku atau dengan meng-klik link cek hasil yang

terdapat pada halaman seperti pada gambar 4.31. Hasil tes user akan ditampilkan

seperti pada gambar 4.32. Proses menghitung nilai tes masuk PTN sama dengan

proses menghitung nilai try out.


105

4.4.3.6. Dataku

Gambar 4.39 My Profile

Halaman my profile berisi semua data user tersebut, seperti : username, nama, asal

sekolah, dan jurusan. Data nama, asal sekolah dan jurusan tidak dapat di-edit

karena data – data tersebut tidak mungkin berubah sehingga user tidak perlu

fasilitas untuk mengedit. Data yang dapat di-edit adalah username dan password.

Form untuk melakukan proses edit data username tampak pada gambar 4.40

sedangkan gambar 4.41 menunjukkan form untuk melakukan proses edit data

password. User juga dapat melihat semua hasil try out atau hasil tes masuk PTN

yang pernah dilakukan.


106

Pada saat melakukan proses edit data username, sistem akan melakukan update

data di beberapa tabel. Perintah SQL yang digunakan untuk melakukan edit

username adalah

String sql = "UPDATE siswa SET username='"+new_username+"' WHERE


user_id = '"+user_id+"'";
String sql2 = "UPDATE siswa_tes SET username='"+new_username+"'
WHERE username = '"+old_username+"'";
String sql3 = "UPDATE hasil_user SET username='"+new_username+"'
WHERE username = '"+old_username+"'";
String sql4 = "UPDATE jawaban SET username='"+new_username+"'
WHERE username = '"+old_username+"'";

Gambar 4.40 Form Ubah Username

Pada saat user mengubah password, user harus memasukkan password dua kali

dengan tujuan untuk mencegah apabila user melakukan kesalahan seperti pada

gambar 4.41. Perintah SQL yang digunakan untuk meng-edit password adalah

String sql = "UPDATE siswa SET password = '"+pass+"' WHERE


user_id = '"+user_id+"'";
107

Gambar 4.41 Form Ubah Password

4.4.3.7. Program Studi

Gambar 4.42 List Universitas


108

User dapat melihat semua program studi di semua PTN dengan cara memilih PTN

yang ada seperti pada gambar 4.42 dan melihat semua program studi beserta

kelompoknya seperti pada gambar 4.43.

Perintah SQL yang digunakan untuk menampilkan semua nama PTN yang ada

adalah
String sql = "SELECT nama_univ,kd_univ FROM universitas";

Perintah SQL yang digunakan untuk menampilkan semua program studi di

masing – masing PTN, yaitu :

String sql = "SELECT p.* FROM universitas u, prodi p WHERE


p.kd_univ = '"+kd_univ+"' AND u.kd_univ = p.kd_univ ORDER BY
p.kd_prodi,kelompok LIMIT "+offset+","+limit+"";

Gambar 4.43 List Program Studi


BAB V

ANALISIS HASIL

5.1 Hasil Pengujian Sistem

Pengujian Sistem Informasi Try Out Online Ter Masuk Perguruan Tinggi

Negeri ini dilakukan untuk mengetahui kemampuan dalam melakukan

penyimpanan data dan memenuhi permintaan user. Sistem dapat menerima input

data dari user, administrator, dan operator secara menampilkan output secara

benar. Sistem juga dapat berjalan di komputer client – server.

Sistem dapat menampilkan hasil tes masuk Perguruan Tinggi Negeri (

PTN ) dan try out secara detail kepada user sehingga user tidak mengalami

kesulitan di dalam mengetahui hasilnya.

Sistem Informasi Sistem Informasi Try Out Online Tes Masuk Perguruan

Tinggi Negeri berhasil diimplementasikan ke dalam sebuah sistem yang berbasis

web, termasuk try out online dan hasil tes masuk PTN yang diikuti user.

5.2 Kelebihan Sistem

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

mempunyai beberapa kelebihan yaitu :

1. Sistem yang dikembangkan adalah berbasis web sehingga dapat

diakses dimana saja dan kapan saja.

109
110

2. Sistem try out online yang dikembangkan mempunyai bentuk yang

sama dengan sistem seleksi mahasiswa baru sehingga memudahkan

user.

3. Sistem mempunyai beberapa soal try out dan siswa hanya bisa

mengerjakan try out yang sama untuk satu kali.

4. Siswa tidak perlu mengetahui kelompok program studi yang akan

dipilih untuk mengikuti try out.

5. Hasil yang ditampilkan tidak hanya satu program studi yang dipilih

berdasarkan prioritas tetapi semua program studi yang dimasukkan

user jika nilai total yang didapat memenuhi passing grade program

studi pilihan user.

6. User Interface yang sederhana sehingga mempermudah user.

7. Penggunaan database MySQL yang merupakan freeware sehingga

menghemat biaya serta dapat menampung data yang berukuran cukup

besar.

5.3 Kelemahan Sistem

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

mempunyai beberapa kelemahan yaitu :

1. Sistem belum mempunyai fasilitas upload image ( gambar ) atau file.

2. Hasil tes masuk PTN yang ditampilkan hanya berdasarkan passing grade

dan total nilai user sehingga belum memberikan hasil secara tepat.
111

5.4 Prospek Pengembangan Sistem

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

merupakan pengembangan dari sistem try out yang menggunakan Lembar Jawab

Komputer ( LJK ) sehingga di masa depan sistem ini dapat terus untuk

dikembangkan sebagai pengganti model try out sekarang, bahkan sistem ini dapat

digunakan sebagai pengganti ujian tertulis seleksi mahasiswa baru yang

digunakan pada masa sekarang. Prospek tersebut dapat tercapai jika didukung

sumber daya yang ada baik hardware, software, dan brainware ( pengguna ).
BAB VI

PENUTUP

6.1 Kesimpulan

a. Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

berbasis web secara umum dapat berfungsi dengan baik sehingga tidak

menutup kemungkinan dapat digunakan dalam kondisi sesungguhnya.

b. Sistem informasi ini mempunyai beberapa kemampuan yaitu try out secara

online dengan bentuk yang sama seperti pada try out yang menggunakan

Lembar Jawaban Komputer, memberikan hasil prediksi try out secara

cepat, dan memberikan hasil tes masuk PTN yang diikuti user.

c. Sistem informasi ini masih mempunyai kelemahan yaitu belum dapat

menampilkan soal dalam bentuk gambar ( image ).

6.2 Saran

Sistem Informasi Try Out Online Tes Masuk Perguruan Tinggi Negeri

perlu ditambahkan suatu fasilitas untuk menampilkan soal dalam bentuk gambar (

image ) sehingga berpotensial untuk dikembangkan ke dalam sebuah sistem

seleksi penerimaan mahasiswa baru secara online.

112
DAFTAR PUSTAKA

Betha Sidik, Ir, Pohan, Husni Iskandar, Ir., M.Eng., Pemrograman WEB

dengan HTML, INFORMATIKA Bandung, Bandung, 2007.

Jeffrey L Whitten, Lonnie D Bentley, Victor M. Barlow, System Analysis &

Design Methods, 6th Edition, 2004.

Jogiyanto HM., MBA., Akt., Ph.D., Pengenalan Komputer, ANDI OFFSET,

Yogyakarta, 1995.

Kadir, Abdul, Dasar Pemrograman Web Dinamis Menggunakan JSP,

Penerbit ANDI Yogyakarta, Yogyakarta, 2004.

Kristanto, Andri, Rekayasa Perangkat Lunak, Penerbit GAVA MEDIA,

Yogyakarta, 2004.

Leonardo, Ian, Pemrograman Database dengan Java, Penerbit PT ELEX

MEDIA KOMPUTINDO, Jakarta, 2003.

Sano, Alb. V. Dian, 24 Jam Menguasai HTML, JSP dan MySQL, Penerbit

ANDI Yogyakarta, Yogyakarta, 2005.

113
LAMPIRAN

114
115

Index.jsp <td width="62"


<form name="form_login" id="form_login" rowspan="4"><img
method="post" action="vallogin.jsp"> src="../images/security.png" width="64"
<table width="39%" cellpadding="1" height="64" /></td>
cellspacing="2" border="1" align="center" <td
bgcolor="#F1F3F5"> width="62"><span
<tr> class="style7">username</span></td>
<td colspan="3" <td
align="center" bgcolor="#0033FF"><span width="165" valign="top">
class="style1">ADMINISTRATOR <span
AREA</span> </td> class="style3">
</tr> <%
<tr> String pemakai = gantiKosong(
<td colspan="3" request.getParameter("pemakai"));
align="center" class="style8 style3 %>
style9"><marquee>
<%! <input
public String infoWaktu(GregorianCalendar type="text" name="pemakai" value=""
cal) { maxlength="30" size="30"
String hari[] = {"Dummy", "Minggu", class="inputflat_ne"/>
"Senin",
"Selasa", "Rabu", "Kamis", <!--<input type="text" name="login"
"Jumat", "Sabtu"}; id="login" maxlength="15" size="10" />-->
String bulan[] = { </span></td>
"Januari", "Pebruari", "Maret", </tr>
"April", "Mei", "Juni", "Juli", <tr>
"Agustus", "September", "Oktober", <td><span
"November", "Desember"}; class="style7">password</span></td>

return( <td><input name="sandi"


type="password" class="inputflat_ne "
id="password" size="30"
hari[cal.get(Calendar.DAY_OF_WEEK)] + maxlength="30"></td>
", " + </tr>
cal.get(Calendar.DATE) + " " + <tr>
bulan[cal.get(Calendar.MONTH)] + " " <td><span
+ class="style7">login as </span></td>
cal.get(Calendar.YEAR)); <td><span
} class="style3">
%> <select
name="status" id="status">
<% <option
GregorianCalendar sekarang = value="operator">OPERATOR</option>
new GregorianCalendar(); <option
out.println(infoWaktu(sekarang) + "<BR>"); value="admin">ADMINISTRATOR</option
%> >
</marquee> </td> </select>
</tr> </span></td>
<tr> </tr>
<td colspan="3" <tr>
align="center"><span class="style8 <td><span
style3"><strong>LOGIN</strong></span></t class="style3"></span></td>
d> <td>
</tr>
<tr>
116

<span // Bentuk koneksi


class="style3"> Connection koneksi = null;
<input name="submit " type="submit" try {
class="btnflat" koneksi =
onMouseOver="this.style.cursor='hand'" DriverManager.getConnection(
value=" Login "> NAMA_DB,
<input NAMA_USER, PASSWORD);
type="reset" value=" Reset" }
class="btnflat"/> catch (Exception ex) {
ada_kesalahan = true;
</span></td> }
</tr>
<tr> if (!ada_kesalahan) {
<td ResultSet hasilQuery = null;
colspan="3"><span class="style2"> try {
<% Statement stm =
String msg = request.getParameter("msg"); koneksi.createStatement();
if (msg != null) hasilQuery = stm.executeQuery(
out.println(msg + "<BR>\n"); "SELECT password FROM login "
%> +
</span></td> "WHERE username = '" + pemakai
</tr> + "' AND status = '"+status+"'");
</table> }
</form> catch (Exception ex) {
ada_kesalahan = true;
otentikasi.jsp }
<%@ page import="java.sql.Connection,
java.sql.DriverManager, if (!ada_kesalahan) {
java.sql.Statement, String data_password = "";
java.sql.ResultSet" %>
<%@ include file="definisi.jsp" %> try {
if (hasilQuery.next())
<%! data_password =
public boolean otentikasi(String pemakai,
String password,String status) hasilQuery.getString("password");
{ }
if (pemakai == null || password == null) catch (Exception ex) {
return(false); ada_kesalahan = true;
}
if (pemakai.equals("") ||
password.equals("")) if (!ada_kesalahan)
return(false); if
((password.equals(data_password)) &&
boolean ada_kesalahan = false; (status.equals("admin"))){
boolean password_cocok = false; password_cocok = true; }

try { else if
((password.equals(data_password)) &&
Class.forName("com.mysql.jdbc.Driver"); (status.equals("operator"))){
} password_cocok = true; }
catch (Exception ex) { }
ada_kesalahan = true; }
} }
return(password_cocok);
if (!ada_kesalahan) { }
117

%> ResultSet hasil = stm.executeQuery("SELECT


username FROM login WHERE username =
Add_admin.jsp '"+username+"'");
<%@ page import = "java.sql.*" %> if(hasil.next()) {
<%@ include file = "segarkan.jsp" %> msg = "Username sudah
<%@ include file = "validasi.jsp" %> ada. Silahkan cari yang lain !";

<% response.sendRedirect("menu_super.j
//String kd_univ = sp?msg="+msg);
request.getParameter("kode"); }
String msg = "";
boolean ada_kesalahan = false; else {
try{ if(username.equals("") ||
Class.forName("com.mysql.jdbc.Dri password.equals("") || nama.equals("") )
ver"); {
} msg = "Data tidak lengkap .... ";
catch (Exception ex){
out.println("Kesalahan: }
"+ex); else if(!pass.equals(pass2)) {
ada_kesalahan = true; msg = "Password tidak
} cocok. Silahkan ulangi....";
if(!ada_kesalahan){
Connection koneksi = null; }
try { else{
koneksi = try{
DriverManager.getConnection( String query =
"INSERT INTO
login(username,password,nama,status)
"jdbc:mysql://localhost/prediksi","ro VALUES
ot",""); ('"+username+"','"+pass+"','"+nama+"','"+stat
out.println(""); +"')";
}
catch(Exception ex){ hasil_penyisipan =
out.println("Kesalahan: stm.executeUpdate(query);
"+ex);
} }
int hasil_penyisipan = 0;
if(!ada_kesalahan){ catch(Exception ex) {
String username = ada_kesalahan = true;
request.getParameter("username"); }
if(username==""){ }
} if(hasil_penyisipan > 0){
msg = "Pendaftaran
String nama = berhasil....";
request.getParameter("nama");
String pass = response.sendRedirect("menu_super.j
request.getParameter("password"); sp?msg="+msg);
String pass2 = }
request.getParameter("password2");
String stat = else {
request.getParameter("status"); ada_kesalahan = true; }
Statement stm = }
koneksi.createStatement(); }
}
if(ada_kesalahan){
118

msg = "Gagal menyimpan.....Cek ada_kesalahan = true;


kembali data yang akan dimasukkan"; }

response.sendRedirect("menu_super.j if(!ada_kesalahan){
sp?msg="+msg); Connection koneksi = null;
} try {
%> koneksi =
DriverManager.getConnection(
Del_admin.jsp
<%
String nama = "jdbc:mysql://localhost/prediksi","ro
request.getParameter("username"); ot","");
String sql = "DELETE FROM login out.println("");
WHERE username = '"+nama+"'"; }
catch(Exception ex){
try{ out.println("Kesalahan:
Class.forName("com.mysql.jdbc.Dri "+ex);
ver"); }
} int hasil_penyisipan = 0;
catch (Exception ex){ if(!ada_kesalahan){
out.println("Kesalahan: String kode =
"+ex); request.getParameter("kode");
//ada_kesalahan = true; if(kode==""){
} }
Connection koneksi =
DriverManager.getConnection( String nama =
request.getParameter("nama");
String alamat =
"jdbc:mysql://localhost/prediksi","ro request.getParameter("alamat");
ot",""); String telepon =
Statement stm = request.getParameter("telepon");
koneksi.createStatement();
stm.executeUpdate(sql); if(kode.equals("") || nama.equals("") ||
stm.close(); alamat.equals("") || telepon.equals(""))
koneksi.close(); {
%> String msg = "Data yang diisikan tidak
lengkap";
Add_univ.jsp ada_kesalahan = true;
<%@ page import = "java.sql.*" %> }
<%@ include file = "segarkan.jsp" %> else{
<%@ include file = "validasi.jsp" %> try{
Statement stm =
<% koneksi.createStatement();
String jum = String query = "INSERT INTO
request.getParameter("offset"); universitas
int offset = (kd_univ,nama_univ,alamat,telepon)
Integer.valueOf(jum).intValue(); VALUES
boolean ada_kesalahan = false; ('"+kode+"','"+nama+"','"+alamat+"','"+telepo
try{ n+"')";
Class.forName("com.mysql.jdbc.Dri
ver"); hasil_penyisipan =
} stm.executeUpdate(query);
catch (Exception ex){ }
out.println("Kesalahan:
"+ex); catch(Exception ex) {
119

ada_kesalahan = true;
}
} "jdbc:mysql://localhost/prediksi","ro
if(hasil_penyisipan > 0) { ot","");
out.println("");
String msg = "Data telah }
dimasukkan"; catch(Exception ex){
out.println("Kesalahan:
response.sendRedirect("menu_univer "+ex);
sitas.jsp?msg=" +msg+"&offset="+offset); }
} int hasil_penyisipan = 0;
else { if(!ada_kesalahan){
ada_kesalahan = true; } String kode_prodi =
} request.getParameter("kode_prodi");
} if(kode_prodi==""){
if(ada_kesalahan){ }
String msg = "Data gagal dimasukkan....";
response.sendRedirect("menu_univer String nama =
sitas.jsp?msg=" +msg+"&offset="+offset); request.getParameter("nama");
} String passing =
%> request.getParameter("passing");
String kelompok =
Add_prodi.jsp request.getParameter("kelompok");
<%@ page import = "java.sql.*" %> String tahun =
<%@ include file = "segarkan.jsp" %> request.getParameter("tahun");
<%@ include file = "validasi.jsp" %>

if( kelompok.equals("0"))
{
String msg = "Anda lupa memasukkan
<% kelompok";
String jum = }
request.getParameter("offset"); else{
int offset = try{
Integer.valueOf(jum).intValue(); Connection koneksi =
String kd_univ = DriverManager.getConnection(
request.getParameter("kd_univ");

boolean ada_kesalahan = false; "jdbc:mysql://localhost/prediksi","ro


try{ ot","");
Class.forName("com.mysql.jdbc.Dri
ver");
} Statement stm =
catch (Exception ex){ koneksi.createStatement();
out.println("Kesalahan: String query =
"+ex); "INSERT INTO prodi
ada_kesalahan = true; (kd_prodi,nama_prodi,passing_grade,kelompo
} k,tahun,kd_univ) VALUES
('"+kode_prodi+"','"+nama+"','"+passing+"','"
if(!ada_kesalahan){ +kelompok+"','"+tahun+"','"+kd_univ+"')";
//Connection koneksi = null;
try { hasil_penyisipan =
Connection stm.executeUpdate(query);
koneksi = DriverManager.getConnection( }
120

catch(Exception ex) { int hasil_penyisipan = 0;


ada_kesalahan = true; if(!ada_kesalahan){
} String kode =
} request.getParameter("kode");
if(hasil_penyisipan > 0) { if(kode==""){
}
response.sendRedirect("menu_view_prodi.jsp
?offset="+offset+"&kd_univ="+kd_univ);} String nama =
else { request.getParameter("nama");
ada_kesalahan = true; } String stat =
} request.getParameter("status");
}
if(ada_kesalahan){ if(kode.equals("") || nama.equals("") )
String msg = "Data gagal {
disimpan...."; String msg = "Data yang diisikan tidak
response.sendRedirect("menu_view_prodi.jsp lengkap";
?msg="+msg+"&offset="+offset+"&kd_univ= }
"+kd_univ);} else{
%> try{
Statement stm =
Add_tes.jsp koneksi.createStatement();
<%@ page import = "java.sql.*" %> String query = "INSERT INTO
<%@ include file = "segarkan.jsp" %> tes (kd_tes,nama_tes,status) VALUES
<%@ include file = "validasi.jsp" %> ('"+kode+"','"+nama+"','"+stat+"')";

hasil_penyisipan =
stm.executeUpdate(query);
}
<%
boolean ada_kesalahan = false; catch(Exception ex) {
try{ ada_kesalahan = true;
Class.forName("com.mysql.jdbc.Dri }
ver"); }
} if(hasil_penyisipan > 0) {
catch (Exception ex){ String msg = "Data telah
out.println("Kesalahan: dimasukkan";
"+ex);
ada_kesalahan = true; response.sendRedirect("menu_view_tes.jsp?m
} sg=" +msg); }
else {
if(!ada_kesalahan){ ada_kesalahan = true; }
Connection koneksi = null; }
try { }
koneksi = if(ada_kesalahan){
DriverManager.getConnection( String msg = "Data gagal
dimasukkan";

"jdbc:mysql://localhost/prediksi","ro response.sendRedirect("menu_view_t
ot",""); es.jsp?msg=" +msg);
out.println(""); }
} %>
catch(Exception ex){
out.println("Kesalahan: Add_jsnis_soal.jsp
"+ex); <%@ page import = "java.sql.*" %>
} <%@ include file = "segarkan.jsp" %>
121

<%@ include file = "validasi.jsp" %>

Statement stm =
koneksi.createStatement();
<% String query =
String kd_tes = "INSERT INTO master_soal
request.getParameter("kd_tes"); (kd_tes,kd_soal,nama_soal) VALUES
boolean ada_kesalahan = false; ('"+kd_tes+"','"+kode+"','"+jenis+"')";
try{
Class.forName("com.mysql.jdbc.Dri hasil_penyisipan =
ver"); stm.executeUpdate(query);
} }
catch (Exception ex){
out.println("Kesalahan: catch(Exception ex) {
"+ex); ada_kesalahan = true;
ada_kesalahan = true; }
} }
if(hasil_penyisipan > 0) {
if(!ada_kesalahan){ String msg = "Data berhasil
//Connection koneksi = null; disimpan....";
try {
Connection response.sendRedirect("menu_jenis.jsp?kd_te
koneksi = DriverManager.getConnection( s="+kd_tes+"&msg="+msg); }
else {
"jdbc:mysql://localhost/prediksi","ro ada_kesalahan = true; }
ot",""); }
out.println(""); }
} if(ada_kesalahan)
catch(Exception ex){ out.print("Gagal menyimpan");
out.println("Kesalahan: %>
"+ex);
} Save_univ.jsp
int hasil_penyisipan = 0; <%@ page import="java.sql.*" %>
if(!ada_kesalahan){ <%@ include file = "segarkan.jsp" %>
String kode = <%@ include file = "validasi.jsp" %>
request.getParameter("kode_soal");
if(kode==""){ <%
} String kd_univ =
request.getParameter("kode");
String jenis = String nama_univ =
request.getParameter("jenis_soal"); request.getParameter("nama");
if(kode.equals("") || jenis.equals("")) String alamat =
{ request.getParameter("alamat");
String msg = "Data tidak lengkap..."; String telepon =
request.getParameter("telepon");
response.sendRedirect("menu_jenis.j String jum =
sp?kd_tes="+kd_tes+"&msg=" +msg ); request.getParameter("offset");
} int offset =
else{ Integer.valueOf(jum).intValue();
try{
Connection koneksi = String sql = "UPDATE universitas
DriverManager.getConnection( SET kd_univ ='"+kd_univ+"', nama_univ
='"+nama_univ+"',alamat =
"jdbc:mysql://localhost/prediksi","ro '"+alamat+"',telepon = '"+telepon+"' WHERE
ot",""); kd_univ='"+kd_univ+"'";
122

'"+kd_univ+"' WHERE
try{ kd_prodi='"+kd_prodi+"'";
Class.forName("com.mysql.jdbc.Dri
ver"); try{
} Class.forName("com.mysql.jdbc.Dri
catch (Exception ex){ ver");
out.println("Kesalahan: }
"+ex); catch (Exception ex){
//ada_kesalahan = true; out.println("Kesalahan:
} "+ex);
Connection koneksi = //ada_kesalahan = true;
DriverManager.getConnection( }
Connection koneksi =
"jdbc:mysql://localhost/prediksi","ro DriverManager.getConnection(
ot","");
Statement stm = "jdbc:mysql://localhost/prediksi","ro
koneksi.createStatement(); ot","");
stm.executeUpdate(sql); Statement stm =
koneksi.createStatement();
response.sendRedirect("menu_univer stm.executeUpdate(sql);
sitas.jsp?offset="+offset);
stm.close(); response.sendRedirect("menu_view_
koneksi.close(); prodi.jsp?kd_univ="+kd_univ+"&offset="+of
fset);
%> stm.close();
koneksi.close();
Save_prodi.jsp %>
<%@ page import="java.sql.*" %>
<%@ include file = "segarkan.jsp" %> Save_tes.jsp
<%@ include file = "validasi.jsp" %> <%@ page import="java.sql.*" %>
<%@ include file = "segarkan.jsp" %>
<% <%@ include file = "validasi.jsp" %>
String kd_prodi =
request.getParameter("kode_prodi"); <%
String nama = String kd_tes =
request.getParameter("nama"); request.getParameter("kode_tes");
String passing = String nama_tes =
request.getParameter("passing"); request.getParameter("nama_tes");
String kelompok = String stat =
request.getParameter("kelompok2"); request.getParameter("status");
String tahun =
request.getParameter("tahun"); String sql = "UPDATE tes SET
String kd_univ = kd_tes='"+kd_tes+"',
request.getParameter("kd_univ"); nama_tes='"+nama_tes+"',status='"+stat+"'
String jum = WHERE kd_tes='"+kd_tes+"'";
request.getParameter("offset");
int offset = try{
Integer.valueOf(jum).intValue(); Class.forName("com.mysql.jdbc.Dri
ver");
String sql = "UPDATE prodi SET }
kd_prodi ='"+kd_prodi+"', nama_prodi catch (Exception ex){
='"+nama+"',passing_grade = out.println("Kesalahan:
'"+passing+"',kelompok = "+ex);
'"+kelompok+"',tahun = '"+tahun+"',kd_univ = //ada_kesalahan = true;
}
123

Connection koneksi = String nama =


DriverManager.getConnection( request.getParameter("nama");
String sekolah =
request.getParameter("sekolah");
"jdbc:mysql://localhost/prediksi","ro String jurusan =
ot",""); request.getParameter("jurusan");
Statement stm =
koneksi.createStatement(); Statement stm =
stm.executeUpdate(sql); koneksi.createStatement();
stm.close(); ResultSet hasil =
koneksi.close(); stm.executeQuery("SELECT username
%> FROM siswa WHERE username =
<jsp:forward page="menu_view_tes.jsp" /> '"+username+"'");

Add_siswa.jsp if(hasil.next()) {
<%@ page import = "java.sql.*" %> msg =
"Username sudah ada. Silahkan cari yang lain
<% !";
String msg = "";
boolean ada_kesalahan = false; response.sendRedirect("menu_daftar.
try{ jsp?msg="+msg);
Class.forName("com.mysql.jdbc.Dri }
ver");
}
catch (Exception ex){ else {
out.println("Kesalahan:
"+ex); if( username.equals("") || pass.equals("") ||
ada_kesalahan = true; nama.equals("") || sekolah.equals("") ||
} jurusan.equals("0"))
{
if(!ada_kesalahan){ msg = "Data yang diisikan tidak
Connection koneksi = null; lengkap";
try {
koneksi = response.sendRedirect("menu_daftar.
DriverManager.getConnection( jsp?msg=" +msg);
}
else if(!pass.equals(pass2)){
"jdbc:mysql://localhost/prediksi","ro msg = "Password
ot",""); tidak cocok...Silahkan ulangi lagi!!";
out.println("");
} response.sendRedirect("menu_daftar.
catch(Exception ex){ jsp?msg="+msg);
out.println("Kesalahan: }
"+ex); else{
} try{
int hasil_penyisipan = 0; // Statement stm =
if(!ada_kesalahan){ koneksi.createStatement();
String username = String query = "INSERT INTO
request.getParameter("username"); siswa
if(username==""){ (username,password,nama,asal_sekolah,jurusa
} n) VALUES
String pass = ('"+username+"','"+pass+"','"+nama+"','"+seko
request.getParameter("password"); lah+"','"+jurusan+"')";
String pass2 =
request.getParameter("password2");
124

hasil_penyisipan = //String kd_univ =


stm.executeUpdate(query); request.getParameter("kd_univ");
try{
} Class.forName("com.mysql.jdbc.Dri
ver");
catch(Exception ex) { }
ada_kesalahan = true; catch (Exception ex){
} out.println("Kesalahan:
} "+ex);
//ada_kesalahan = true;
if(hasil_penyisipan > 0) { }
Connection koneksi =
msg = "Pendaftaran berhasil. DriverManager.getConnection(
Silahkan login.....";

response.sendRedirect("index.jsp?ms "jdbc:mysql://localhost/prediksi","ro
g="+msg); ot","");
} Statement stm =
koneksi.createStatement();
else{ ResultSet rs =
ada_kesalahan = true; stm.executeQuery(sql);
rs.next();
} String benar =
} rs.getString("benar");
} int nilai_benar =
} Integer.valueOf(benar).intValue();
else{ int jwbn_benar =
msg = "Gagal menyimpan"; nilai_benar/4;

response.sendRedirect("menu_daftar.jsp?msg String sql2 = "SELECT count(j.no_soal)*-1


="+msg); salah FROM jawaban j,soal s WHERE
} j.username = '"+pemakai+"' and s.no_soal =
%> j.no_soal and j.jawaban <> s.kunci and
j.jawaban not like '' and s.kd_soal =
Hitung_lat.jsp '"+kd_soal+"' and j.kd_soal = '"+kd_soal+"'";
<%@ page contentType="text/html; try{
charset=iso-8859-1" language="java" Class.forName("com.mysql.jdbc.Dri
import="java.sql.*" errorPage="" %> ver");
<%@ page import = "java.util.*" %> }
<%@ include file="segarkan.jsp" %> catch (Exception ex){
<%@ include file="validasi.jsp" %> out.println("Kesalahan:
"+ex);
<% //ada_kesalahan = true;
String kd_soal = }
request.getParameter("kd_soal"); //koneksi =
String kd_tes = DriverManager.getConnection(
request.getParameter("kd_tes");

String sql = "SELECT count(j.no_soal)*4 //"jdbc:mysql://localhost/prediksi","r


benar FROM jawaban j,soal s WHERE oot","");
j.username = '"+pemakai+"' and s.no_soal = Statement stm2 =
j.no_soal and j.jawaban = s.kunci and koneksi.createStatement();
s.kd_soal = '"+kd_soal+"' and j.kd_soal = ResultSet rs2 =
'"+kd_soal+"'"; stm2.executeQuery(sql2);
rs2.next();
125

String salah =
rs2.getString("salah");
int nilai_salah = //"jdbc:mysql://localhost/prediksi","r
Integer.valueOf(salah).intValue(); oot","");
int jwbn_salah = Statement kon2 =
nilai_salah*(-1); koneksi.createStatement();
ResultSet res2 =
String sql3 = "SELECT count(j.no_soal)*0 kon2.executeQuery(cek2);
kosong FROM jawaban j,soal s WHERE res2.next();
j.username = '"+pemakai+"' and s.no_soal = String nama_tes =
j.no_soal and j.jawaban='' and s.kd_soal = res2.getString("nama_tes");
'"+kd_soal+"' and j.kd_soal = '"+kd_soal+"'";
try{ String sql4 = "INSERT INTO hasil_user
Class.forName("com.mysql.jdbc.Dri (username,kd_tes,kd_soal,skor,jwb_bnr,jwb_s
ver"); lh,jwb_kosong) VALUES (
} '"+pemakai+"','"+kd_tes+"','"+kd_soal+"','"+to
catch (Exception ex){ tal+"','"+jwbn_benar+"','"+jwbn_salah+"','"+j
out.println("Kesalahan: wbn_kosong+"')";
"+ex); try{
//ada_kesalahan = true; Class.forName("com.mysql.jdbc.Dri
} ver");
//koneksi = }
DriverManager.getConnection( catch (Exception ex){
out.print("ok");
//ada_kesalahan = true;
//"jdbc:mysql://localhost/prediksi","r }
oot",""); //koneksi =
Statement stm3= DriverManager.getConnection(
koneksi.createStatement();
ResultSet rs3 =
stm3.executeQuery(sql3); //"jdbc:mysql://localhost/prediksi","r
rs3.next(); oot","");
String kosong = Statement stm4 = koneksi.createStatement();
rs3.getString("kosong"); int hasil = 0;
int nilai_kosong = hasil = stm4.executeUpdate(sql4);
Integer.valueOf(kosong).intValue(); response.sendRedirect("menu_view_l
int jwbn_kosong = at.jsp?kd_tes="+kd_tes+"&kd_soal="+kd_soa
nilai_kosong; l);
int total = %>
nilai_benar+nilai_salah+nilai_kosong;

String cek2 = "SELECT * FROM tes


WHERE kd_tes = '"+kd_tes+"'";
try{
Class.forName("com.mysql.jdbc.Dri
ver");
}
catch (Exception ex){
out.println("Kesalahan:
"+ex);
//ada_kesalahan = true;
}
//koneksi =
DriverManager.getConnection(

Anda mungkin juga menyukai