Membuat KUESIONER console di JAVA

Membuat kuesioner console di java

Nah sekarang kita belajar membuat sebuah program dengan java, tapi yah masih berbasis console, kemarin kita udah bisa bikin menu nih, nah sekarang kita coba bikin programnya. Apa sih program yang akan kita buat? Nah kebetulan, minggu-minggu kemarin aku ada tugas dari dosen PBO nih, disuruh bikin program kuesioner tentang kepuasan mhasiswa UPI dalam proses belajar dan kenyamanan fasilitas yang diberikan UPI.

Nah sekarang seperti biasa kita bikin skenarionya dulu, apa aja sih yang kita perlukan?uang pasti so’al atu pertanyaannya dong. Nah di kasus ini dosen gw ngasih 11 pertanyaan. Ok gini ajah deh kita bikin skenario dulu yah :

  1. Program ini sudah tentu akan dijalankan di console, nah pertama bikin dulu so’alnya/pertanyaannya. Kita tulis pada sebuah notepad dan beri nama soal.txt.
  2. Kemudian sekarang buat file untuk merecap hasil jawaban peserta yang mengisi kuesioner, misalkan saja pada file jawaban.txt.
  3. Lalu gimana ya alurnya? gimana kalo kita bikin menu-menu kayak gitu, di tulisan kemarin saya kan bikin menu pake console nih, jadi sekarang kita ibaratkan program itu ada menunya.
  4. Apa aja sih menu-menu itu? misalkan ada menu isi kuesioner, lihat pertanyaan, lihat data jawaban, dan exit.
  5. Untuk mempermudah kita buat menjadi class-class isi dari menu tersebut, sehingga pas di class main kita tinggal memanggil class-class lainnya saja. Misalkan kita buat menjadi 5 class, yaitu class MenuConsoleGenerator, class kuis,class lihatsoal, class dataJawaban dan tentunya class Main. Jika anda akan menambahkan class waktu juga boleh supaya nanti programnya ada waktu gitu deh hehehehe.
  6. Sekarang gimana alur kerjanya? misalkan kita buat kondisi ketika program dijalankan maka yang tampil do console adalah menu-menu yang tersedia di program, lalu user di suruh memasukkan pilihan menu dan jika pilihannya salah atau tidak sesuai dengan pilihan yang tersedia maka program akan terus melooping sampai si user memilih menu exit, maka program akan berakhir.
  7. Apabila user memilih menu isi kuisoner maka program akan memanggil class kuis, apabila user memilih menu lihat pertanyaan maka program akan memanggil class dataJawaban dan untuk keamanan maka di clas ini kita bubuhkan password, sehingga untuk mengaksesnya user harus punya password. Apabila user memilih menu lihat pertanyaan, maka program akan memanggil class lihatsoal dan jika memilih menu exit program akan keluar/ berakhir.

OK mungkin skenarionya seperti di atas, sekarang apa saja yang kita butuhkan selain nanti akan mengetik code-code program?

ya betul, kita harus punya file soal.txt yang berisi pertanyaan-pertanyaan dan file jawaban.txt yang nantinya digunakan untuk menyimpan data hasil kuesioner. Kalau begitu mari kita mulai membuat program KUESIONER.

1. MEMBUAT FILE SOAL.TXT

Pertama kita membuat folder dulu yang nantinya berisi file-file program, misalkan nama foldernya KUESIONER, nah nati semua file yang berhubungan dengan program harus beradadi dalam folder tersebut seperti file-file java dan txt. OK kita buat sebuah file baru bernama soal.txtdan masukkan pertanyaan-pertanyaan berikut ini :

Anda termotivasi selama melaksanakan kuliah di UPI Anda memilki kesempatan untuk menilai pengajar Anda memiliki kesempatan untuk mengemukakan keluhan atau saran secara terbuka Anda diberi kesempatan untuk berdiskusi selama di kelas Sikap pengajar terhadap anda Variasi contoh soal atau kasus selama Proses Belajar Mengajar Penylesaian tugas-tugas yang diberikan selama Proses Belajar Mengajar Tenaga admistratif dan dosen cukup membantu anda dalam Proses Belajar Mengajar Anda cukup puas dengan pengetahuan yang diperoleh selama belajar di UPI Dengan bekal pengetahuan yagn diperoleh anda merasa siap untuk belajar dan bersaing dengan lulusan Perguruna Tinggi lainnya Anda memperolah informasi tentang bursa tenaga kerja dan bagian kemahasiswaan BAAK

Ingat ! setiap baris harus di akhiri denga ENTER kecuali baris terakhir. Setelah itu kita buat file jawaban.txt dan biarkn file tersebut kosong.

2. MEMBUAT CLASS MENUCONSOLEGENERATOR

OK sekarang kita buat sebuah file bernama MenuConsoleGenerator.java anda dapat membuatnya do noepad, notepad++, atau biar mudah di JCreator aja lalu masukkan code di bawah ini :

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class MenuConsoleGenerator {
public static String menuConsoleGenerator(String[] menuTemp){
String sMenu ="";
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("Menu ");
for (int i = 0; i < menuTemp.length; i++) {
String s = menuTemp[i];
System.out.println(s);
}

System.out.print("Pilihan anda : ");
try {
sMenu = in.readLine();
} catch (IOException e) {
System.out.println("Error : " + e);
}
return sMenu;
}
}

3. MEMBUAT CLASS LIHATSOAL

OK setelah membuat class MenuConsoleGenerator sekarang kita membuat class lihatsoal, seperti biasa buat sebuah file baru dengan nama lihatsoal.java kemudian masukkan code di bawah ini :

import java.io.*;
/**
*
* @author guitarist
*/
class lihatsoal {
public lihatsoal (){
FileInputStream finput=null;
int data;
//membuka file
try{
finput = new FileInputStream("soal.txt");
} catch (FileNotFoundException fnfe){
System.err.println("File tidak ditemukan !!");
return ;//keluar dari method
}
//membaca data dari dalam file dan menampilkan di layar
try {
int i=0;
System.out.println("+----------------------------------------------------+");
System.out.println("| SELAMAT DATANG DI MENU LIHAT PERTANYAAN |");
System.out.println("|====================================================|");
System.out.println("| BERIKUT INI DATA PERTANYAAN KUESIONER |");
System.out.println("| BILA ANDA TERTARIK SILAKAN ISI KUESIONER |");
System.out.println("| DI MENU ISI KUESIONER |");
System.out.println("+----------------------------------------------------+\n");
System.out.println("-------------------------------------------------------------------------------");
while((data=finput.read())!=-1){
//ketika data ditampilkan, data dikonversi ke tipe char
// no=i+1;
System.out.print((char)data);
}
System.out.println("\n-------------------------------------------------------------------------------\n");
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
}

}

4. MEMBUAT CLASS KUIS

Nah kawan kawan semua sekarang baru kita mulai ke program sebenarnya yaitu program KUESIONER, karena di class kuis berisi code untuk pengisian KUESIONER, tanpa class ini, program bukan program KUESIONER, yang lainnya hanya tambahan saja.

Sekarang kita buat file baru dengan nama kuis.java dan masukkan source code di bawah ini :

import java.io.*;
import java.util.*;

/**
*
* @author guitarist
*/

class kuis {
public String NIM;
public String dataSoal[] = new String[999];
public int jmlSoal;
public String arraySkor[];
public int skor[];
public String dataJawaban[]=new String[999];
public int jmlPengisi,jmlPengisi2;
public String arrayHasil[];
String wkt,tgl;


public kuis() {
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String tampungNIM="";
try{
int a=0;
do{
bacaHasil();
System.out.println("+----------------------------------------------------+");
System.out.println("| SELAMAT DATANG DI MENU ISI KUESIONER |");
System.out.println("|====================================================|");
System.out.println("| PETUNJUK PENGISIAN KUESIONER |");
System.out.println("}----------------------------------------------------}");
System.out.println("| Pilihan jawaban : A = Sangat baik C = Cukup |");
System.out.println("| B = Baik D = Kurang |");
System.out.println("| |");
System.out.println("| Point jawaban : A = 100 C = 50 |");
System.out.println("| B = 75 D = 25 |");
System.out.println("+----------------------------------------------------+");
jmlPengisi2=jmlPengisi+1;
System.out.println("ANDA PENGUNJUNG KE-"+jmlPengisi2+"\n");
System.out.print("Masukkan NIM :");
tampungNIM = in.readLine();
BufferedReader cek = new BufferedReader(new FileReader("jawaban.txt"));
String tamp;
String[][] nam = new String[999][999];
boolean ada = false;
int i = 1;
while ((tamp = cek.readLine()) != null) {
int j = 1;
StringTokenizer z = new StringTokenizer(tamp, "|");
while (z.hasMoreTokens()) {
nam[i][j] = z.nextToken();
j++;
}
//System.out.println(nam[i][4]);
if (nam[i][4].equalsIgnoreCase(tampungNIM)) {
System.out.println("MAAF ANDA SUDAH MENGISI KUESIONER !");
System.out.println("ANDA TIDAK BOLEH MENGISI KUESIONER 2 KALI !\n");
ada = true;
}
i++;
}
if(tampungNIM.equals("") || tampungNIM.length()>7 || tampungNIM.length()<6 || ada==true){
System.out.println("Silakan ulangi !");
}else{
break;
}
tampungNIM=in.readLine();
}while(a==0 );
setNIM(tampungNIM);
bacaSoal();
bacaHasil();
tampilSoal();
tulisJwb();
/*
try{
tampungNIM = in.readLine();

}catch( IOException e ){
System.out.println("ERROR BO!" +e);
}*/

}catch(IOException ioe){
System.out.println("ERROR class KUIS"+ioe);
}

}

public void setNIM(String tampungNIM){
NIM=tampungNIM;
}
public String getNIM(){
return NIM;
}

//method baca soal dari file
public void bacaSoal() throws IOException{
try{
BufferedReader bRead = new BufferedReader(new FileReader("soal.txt"));
String bacaBaris=null;
int idxs=0;
while((bacaBaris=bRead.readLine())!=null){
dataSoal[idxs]=bacaBaris;
idxs++;
}
bRead.close();
jmlSoal=idxs;
arraySkor=new String[jmlSoal];
}catch(FileNotFoundException fnfe) {
System.out.println("ERROR BOO !, file gak ada" +fnfe);
}
}//end method baca soal

//method baca hasil dari file
public void bacaHasil() throws IOException{
try{
BufferedReader bHasil = new BufferedReader(new FileReader("jawaban.txt"));
String bacaBaris=null;
int idxh=0;
while((bacaBaris=bHasil.readLine())!=null){
dataJawaban[idxh]=bacaBaris;
idxh++;
}
bHasil.close();
jmlPengisi=idxh;
arrayHasil=new String[jmlPengisi];
}catch(FileNotFoundException fnfe) {
System.out.println("ERROR BOO !, file gak ada" +fnfe);
}
}//end method baca hasil

//method tampil hasil
public void tampilHasil(){

}

//method tampil soal
public void tampilSoal(){
int i=0;
skor=new int[jmlSoal];
System.out.println("\nJumlah soal ada : "+jmlSoal+" butir soal.");
System.out.println("\nJumlah sementara mahasiswa yang mengisi ada "+jmlPengisi+" orang.");
while(i=25 && skorKamu=50 && skorKamu=75 && skorKamu<=100){
System.out.println("Anda merasa kampus UPI adalah yang terbaik dari kamupus-kampus lain");
}
System.out.println("-------------------------------------------------------------------------------");
System.out.println("TERIMA KASIH ATAS PARTISIPASI ANDA UNTUK MENGISI KUESIONER INI.");
System.out.println("-------------------------------------------------------------------------------");
jmlPengisi2=jmlPengisi+1;
System.out.println("Jumlah sementara pengisi Kuesioner saat ini ada "+jmlPengisi2+" orang mahasiswa.");
System.out.println("-------------------------------------------------------------------------------");
pw.close();
}catch(IOException ioe){
System.out.println("ERROR BO method tulisJwb ! "+ioe);
}
}//end method tulis jawaban


}//end class kuis

5. MEMBUAT CLASS DATA JAWABAN

Sebenarnya tadinya itu saya mau memisahkan antar user interface dan administrator interface, tapi berhubung waktu dan ribet juga plus males sayanya jadi disatuin ajah deh. Class dataJawaban ini berisi semua data peserta KUESIONER beserta hasil jawabannya sehingga saya bubuhkan password untuk mengaksesnya, yah walaupun masih kurang aman juga, tapi bagi anda-anda yang udah pada jago, munggkin bisa memngembangkannya, hehehe…

Seperti biasa deh buat file baru dan berinama dataJawaban.java kemudian masukkan source code di bawah ini :

import java.io.*;
import java.util.*;
/**
*
* @author guitarist
*/
class dataJawaban {
public dataJawaban (){
FileInputStream finput=null;
int data;
//membuka file
try{
finput = new FileInputStream("jawaban.txt");
} catch (FileNotFoundException fnfe){
System.err.println("File tidak ditemukan !!");
return ;//keluar dari method
}
//membaca data dari dalam file dan menampilkan di layar
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String pwd="";
try {


do{
System.out.print("Masukkan Password :");
pwd = in.readLine();
//System.out.println("Password salah ! silakan ulangi !");
}while(!pwd.equals("123456"));
int i=0;
System.out.println("+----------------------------------------------------+");
System.out.println("| SELAMAT DATANG DI MENU LIHAT DATA JAWABAN |");
System.out.println("|====================================================|");
System.out.println("| BERIKUT INI DATA JAWABAN BEBERAPA MAHASISWA |");
System.out.println("| BILA ANDA TERTARIK SILAKAN ISI KUESIONER |");
System.out.println("| DI MENU ISI KUESIONER |");
System.out.println("+----------------------------------------------------+\n");
System.out.println("-------------------------------------------------------------------------------");
/*
while((data=finput.read())!=-1){
//ketika data ditampilkan, data dikonversi ke tipe char
// no=i+1;
System.out.print((char)data);
}*/
System.out.println("No | Waktu\t| Tanggal\t| NIM\t |1|2|3|4|5|6|7|8|9|10|11 | skor");
System.out.println("-------------------------------------------------------------------------------");
BufferedReader cek = new BufferedReader(new FileReader("jawaban.txt"));
String tamp;
String[][] nam = new String[999][999];
int x = 1;
while ((tamp = cek.readLine()) != null) {
int j = 1;
StringTokenizer z = new StringTokenizer(tamp, "|");
while (z.hasMoreTokens()) {
nam[x][j] = z.nextToken();
j++;
}
System.out.println(nam[x][1]+" |"+nam[x][2]+"\t|"+nam[x][3]+"\t|"+nam[x][4]+" |"+nam[x][5]+" "+
nam[x][6]+" "+nam[x][7]+" "+nam[x][8]+" "+nam[x][9]+" "+nam[x][10]+" "+
nam[x][11]+" "+nam[x][12]+" "+nam[x][13]+" "+nam[x][14]+" "+nam[x][15]+" | "+nam[x][16]);
x++;
}
System.out.println("-------------------------------------------------------------------------------\n");
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
}

}

6. MEMBUAT CLASS MAIN

Heheheh sampai sini program udah hampir selesai, horeeee….anak mamah pinter ! minum cucunya yach biar makin pinter, hehehehe…

OK sekarang kita buat class terakhir yaitu class main, seperti biasa buat file baru dan beri nama Main.java , dalam class ini kita nantinya akan memanggil class-class yang sudah kita buat sebelumnya, heheh…kalo penjelasannya cari ajah sendiri di tutorial yah, saya males ngejelasin, takutnya salah, maklum saya juga masih newbie, ni juga gara-gara tugas dari dosen, jadi mau gak mau ngerjain deh,padahal gak ngerti juga deh, hehehe…udah sekarang masukkin aja source code berikut :

public class Main {

private static String showMenu() {
String[] tempMenu = {
"\n",
"+----------------------------------------------------+",
"| SELAMAT DATANG |",
"| DI KUESIONER KEPUASAN MAHASISWA UPI DALAM |",
"| PROSES BELAJAR MENGAJAR DAN KENYAMANAN FASILITAS |",
"|====================================================|",
"| |",
"| MENU UTAMA KUESIONER |",
"|----------------------------------------------------|",
"| |",
"| 1. ISI KUESIONER |",
"| 2. LIHAT SEMUA PERTANYAAN |",
"| 3. LIHAT DATA JAWABAN |",
"| |",
"|----------------------------------------------------|",
"| 0. EXIT |",
"+----------------------------------------------------+",
"\n"
};
String sResult = "";
sResult = MenuConsole.menuConsole(tempMenu);
return sResult;
}

public static void main(String[] args) {
String comand = "";
do{
cmd=showMenu();
if (cmd.equals("1")) {
System.out.println("\n");
System.out.println("\n\nTekan ENTER untuk kembali ke MENU UTAMA ! ");
System.in.read();
} else if (cmd.equals("2")) {
System.out.println("\n");
System.out.println("\n\nTekan ENTER untuk kembali ke MENU UTAMA ! ");
System.in.read();
} else if (cmd.equals("3")) {
System.out.println("\n");
System.out.println("\n\nTekan ENTER untuk kembali ke MENU UTAMA ! ");
System.in.read();
}
} while(!cmd.equals("0"));
{
System.out.println("\n+----------------------------------------------------+");
System.out.println("| --- E X I T --- |");
System.out.println("|----------------------------------------------------|");
System.out.println("| TERIMA KASIH SUDAH MENGGUNAKAN PRODUK KAMI |");
System.out.println("| UNIVERSITAS PENDIDIKAN INDONESIA |");
System.out.println("| PROGRAM STUDI PENDIDIKAN ILMU KOMPUTER |");
System.out.println("|----------------------------------------------------|");
System.out.println("| KELOMPOK : 1. AJENG |");
System.out.println("| 2. GEMA MAHESA |");
System.out.println("| 3. ICEP MULYANA |");
System.out.println("| 4. NOVI |");
System.out.println("+----------------------------------------------------+");
}
} catch (Exception ex) {
System.err.println("ERROR BOOOO (nain) !!" + ex);
}
}
}

Hehehe… sekarang compile semua class yang sudah di buat, biar gampang di JCreator ajah yah… kalo udah semua di compile, sekarang coba jalankan class Main, kalo masih ada yang error, yah perbaiki ajah sendiri yah, pokonya source yang udah saya bikin di atas semuanya jalan ko, malah kelompok saya jadi juaranya deh dan dapat hadiah dari dosen, tapi bukan karena programnya bagus lho, justru karna acak-acakan, jadi inilah yang disebut dengan proses belajar, walaupun masih acak-acakan tapi bisa juara yah, padahal kelompok laen masih banyak yang lebih bagus, yang pake GUI, wah ada chartnya, grafis banget deh, keren pokonamah, ah ari saya mah maklum baru di ajar, jadi acak-acakan deh programnya juga, hehehe..

Nah selamt mencoba yah…

Hatur nuhun…

Assalamu’alaikum dulur sadaya ah…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s