Program Java Dasar: Menghitung Jumlah Tanggapan Ujian Siswa

Halo gan, bagaimana kalo kita berguru menciptakan kegiatan Java sederhana, yang di dalamnya meliputi array satu dimensi, array dua dimensi, while loop, for loop, void method dan return method. Pasti seru ya. Full of logic here, I promise you. Padahal bahasannya hingga ketika ini belum hingga sama sekali ke class dan objek..

Tapi ndak apa-apa, toh dengan pondasi yang berpengaruh maka bangunan akan kokoh.

Translate: Untuk pemrograman sangat penting memahami dasar-dasarnya.


Ok, programnya yaitu untuk memilih jumlah berapa balasan yang benar dari hasil ujian siswa.

Misalkan:

Ada beberapa siswa yang mengikuti ujian dengan soal pilihan berganda, pilihannya yaitu A, B, C, D, E. Kemudian anda diminta untuk menciptakan kegiatan untuk menghitung berapa jumlah soal yang benar yang di jawab oleh masing-masing siswa.

Program ini harus :
  • Bisa mendapatkan input dari user mengenai jumlah siswa yang mengikuti ujian dan input dari jumlah soal ujian yang dikerjakan.
  • Bisa menghitung jumlah balasan yang benar untuk tiap siswa yang mengikuti ujian
Mudahkan?

Terus bagaimana langkah-langkahnya?

 bagaimana kalo kita berguru menciptakan kegiatan Java sederhana Program Java Dasar: Menghitung Jumlah Jawaban Ujian Siswa


Oke deh, pribadi praktek.

Perhatikan aba-aba di bawah ini:

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
import java.util.Scanner;  public class NilaiSiswaJava {    public static void main (String args []){        }    public static char [][] buatArray2D(){       Scanner input = new Scanner(System.in);   System.out.print("Berapa jumlah siswa yang "     + "mengikuti ujian ? ");     int jumlahSiswa = input.nextInt();      System.out.print("Berapa soal yang diberikan ? ");     int jumlahSoal = input.nextInt();        char [][] jawabanSiswa  = new char [jumlahSiswa][jumlahSoal];         System.out.println("Masukkan balasan siswa: ");      for (int i = 0; i < jawabanSiswa.length; i ++){    for (int j = 0; j < jawabanSiswa[i].length; j++){     jawabanSiswa[i][j] = input.next().charAt(0);    }   }      return jawabanSiswa;  }  } 

Oke, kita lihat aba-aba di atas dulu.

Pada line 10, method buatArray2D(), method ini akan mengembalikan array dua dimensi yang berisi balasan dari para siswa. Karena array dua dimensi itu terdiri dari baris dan kolom, maka kita akan meminta user untuk memasukkan berapa jumlah siswa yang  mengikuti ujian sebagai baris dan jumlah nomor soal sanggup dibentuk sebagai kolom.

Dengan memakai class Scanner, maka anda sanggup menyimpan input yang diberikan oleh user kedalam array dua dimensi tersebut berupa jumlah siswa yang ikut ujian dan jumlah nomor soal yang diberikan.

Setelah mendapatkan input, anda sanggup menciptakan array dua dimensi, menyerupai pada aba-aba di atas, line 20:

char jawabanSiswa [] [] =  new char [jumlahSiswa] [jumlahSoal];

jumlahSiswa merupakan variabel yang sudah diinisialisasi oleh user untuk memilih banyaknya baris array, dan jumlahSoal untuk memilih banyaknya kolom.
Setelah anda mengetahui jumlah elemen untuk array balasan siswa, maka anda sanggup memasukkan balasan para siswa tersebut kedalam array jawabanSiswa, dengan cara apa? Anda sanggup gunakan for loop, untuk lebih jelasnya coba lihat line 25 hingga 29 di atas.

Lanjut pada aba-aba di bawah ini:

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
import java.util.Scanner;  public class NilaiSiswaJava {    static int jumlahSoalKu;    public static void main (String args []){        }    public static char [][] buatArray2D(){       Scanner input = new Scanner(System.in);   System.out.print("Berapa jumlah siswa yang "     + "mengikuti ujian ? ");     int jumlahSiswa = input.nextInt();                System.out.print("Berapa soal yang diberikan ? ");     int jumlahSoal = input.nextInt();                    jumlahSoalKu = jumlahSoal;        char [][] jawabanSiswa  = new char [jumlahSiswa][jumlahSoal];         System.out.println("Masukkan balasan siswa: ");         for (int i = 0; i < jawabanSiswa.length; i ++){    for (int j = 0; j < jawabanSiswa[i].length; j++){     jawabanSiswa[i][j] = input.next().charAt(0);    }   }      return jawabanSiswa;  }      public static char [] buatKunciJawaban(){      char [] kunciJawaban = new char [jumlahSoalKu];      int jumlahSoalAwal = 1;   int i = 0;      while((jumlahSoalAwal <= jumlahSoalKu) && (i < kunciJawaban.length)){    Scanner input = new Scanner (System.in);    System.out.print( "Masukkan kunci balasan nomor "         + (jumlahSoalAwal) + ": " );    char balasan = input.next().charAt(0);    jumlahSoalAwal+=1;    kunciJawaban[i] = jawaban;    i+=1;   }   return kunciJawaban;  } } 

Sekarang anda sanggup menciptakan method untuk menciptakan array biasa, untuk menampung kunci balasan yang diberikan oleh user. Seperti pada line 44 di atas, kita memakai method buatKunciJawaban().

Berapa banyak kunci balasan yang diperlukan? Tentu saja harus sama banyak dengan jumlah nomor soal yang diberikan. Misalnya soal ujiannya 5 nomor, kunci jawabannya tentunya ada 5 juga. Oleh alasannya itu anda harus sanggup mengambil nilai dari variabel jumlahSoal yang ada pada method buatArray2D(), untuk memilih jumlah elemen pada array kunciJawaban, perhatikan line 46.

Ingatlah mengenai ruang lingkup variabel. Makara anda untuk mengakalinya anda sanggup menciptakan variabel static, lihat pada line no. 5:

static int jumlahSoalKu;

Kemudian nilai dari variabel jumlahSoal akan ditetapkan pada variabel jumlahSoalKu, lihat line no. 26 :
jumlahSoalKu = jumlahSoal;

Baru deh anda sanggup memutuskan pada array kunciJawaban, lihat line 46 :
char [] kunciJawaban = new char [jumlahSoalKu];

Untuk memasukkan elemen yang berupa kunci balasan dari user ke dalam array, di sini saya memakai while loop.  Lihat line 51 - 59. Mungkin anda sanggup memakai cara lain yang lebih efisien .

Oke kita lanjut pada penampakan full berikutnya:

import java.util.Scanner;  public class NilaiSiswaJava {    static int jumlahSoalKu;  static char [] kunciJawabanKu;    public static void main(String args []){      char [][] jawabanUjian = buatArray2D();   char [] kunciJawabanUjian = buatKunciJawaban();   hitungJawabanSiswa(jawabanUjian);         System.out.println("Array 2D dari balasan ujian yaitu "         + java.util.Arrays.deepToString(jawabanUjian));      System.out.println("Array 1D dari kunci balasan yaitu "  +         java.util.Arrays.toString(kunciJawabanUjian));  }    public static char [][] buatArray2D(){       Scanner input = new Scanner(System.in);   System.out.print("Berapa jumlah siswa yang "     + "mengikuti ujian ? ");     int jumlahSiswa = input.nextInt();          if(jumlahSiswa<=0){      System.out.print("Tidak ada siswa yang ikut ujian!, Libur kali!");      System.exit(0);     }       System.out.print("Berapa soal yang diberikan ? ");     int jumlahSoal = input.nextInt();          if(jumlahSoal<=0){      System.out.print("Tidak ada soal yang diberikan, ujian tidak jadi!");      System.exit(0);     }             jumlahSoalKu = jumlahSoal;        char [][] jawabanSiswa  = new char [jumlahSiswa][jumlahSoal];         System.out.println("Masukkan balasan siswa: ");         for (int i = 0; i < jawabanSiswa.length; i ++){    for (int j = 0; j < jawabanSiswa[i].length; j++){     jawabanSiswa[i][j] = input.next().charAt(0);    }   }      return jawabanSiswa;  }      public static char [] buatKunciJawaban(){      char [] kunciJawaban = new char [jumlahSoalKu];   kunciJawabanKu = kunciJawaban;      int jumlahSoalAwal = 1;   int i = 0;      while((jumlahSoalAwal <= jumlahSoalKu) && (i < kunciJawaban.length)){    Scanner input = new Scanner (System.in);    System.out.print( "Masukkan kunci balasan nomor "         + (jumlahSoalAwal) + ": " );    char balasan = input.next().charAt(0);    jumlahSoalAwal+=1;    kunciJawaban[i] = jawaban;    i+=1;   }   return kunciJawaban;  }      public static void hitungJawabanSiswa (char [][]jawabanSiswa){   for (int i = 0; i < jawabanSiswa.length; i++){    int jumlahJawabanBenar = 0;    for (int j = 0; j < jawabanSiswa[i].length; j++){          if(jawabanSiswa[i][j] == kunciJawabanKu[j]){      jumlahJawabanBenar++;     }    }        System.out.println("Siswa nomor " + (i+1)      + " berhasil menjawab dengan benar " +       jumlahJawabanBenar +" soal");   }     } } 

Perhatikan pada line 82, disini dipakai method void, dengan parameter yaitu array dua dimensi dengan tipe char. Anda sanggup lihat method hitungJawabanSiswa (char [] [] jawabanSiswa), jadi method ini akan melewatkan atau passing nilai dari array dua dimensi.

Method ini akan membandingkan array dua dimensi dari balasan hasil ujian para siswa dengan kunci jawaban.

Lihat aba-aba pada line 6:

static char kunciJawabanKu[];

Lihat aba-aba pada line 64:

kunciJawabanKu = kunciJawaban;

Kemudian lihat aba-aba pada line 87

if(jawabanSiswa[i][j] == kunciJawabanKu[j])

Saya rasa agan semua sudah mengerti maksudnya. Ya, kita membandingkan array dua dimensi dan satu dimensi.

Kemudian lihat aba-aba pada line 10-12:
char [][] jawabanUjian = buatArray2D();
char [] kunciJawabanUjian = buatKunciJawaban();

Disini array yang dibentuk dengan method buatArray2D() dan method buatKunciJawaban() ditetapkan pada variabel tumpuan yaitu jawabanUjian dan kunciJawabanUjian.

Lanjut lihat line 13:
hitungJawabanSiswa(jawabanUjian);

Method ini akan menghitung jumlah balasan siswa yang benar.

Sementara itu line 15-19 akan menampilkan array dua dimensi dari balasan para siswa dan array satu dimensi dari kunci jawabannya.

Kalau line 30-33 dan 38-41, yaitu untuk menghentikan program, sebagai perhiasan saja sebenarnya, yang terpenting sih pemahaman mengenai array, method, loop, dan variabel dulu.

Contoh output:
Berapa jumlah siswa yang mengikuti ujian ? 3
Berapa soal yang diberikan ? 5
Masukkan balasan siswa:
a
c
b
a
d
e
d
b
c
a
b
a
e
c
b
Masukkan kunci balasan nomor 1: a
Masukkan kunci balasan nomor 2: c
Masukkan kunci balasan nomor 3: e
Masukkan kunci balasan nomor 4: d
Masukkan kunci balasan nomor 5: b
Siswa nomor 1 berhasil menjawab dengan benar 2 soal
Siswa nomor 2 berhasil menjawab dengan benar 0 soal
Siswa nomor 3 berhasil menjawab dengan benar 2 soal
Array 2D dari balasan ujian yaitu [[a, c, b, a, d], [e, d, b, c, a], [b, a, e, c, b]]
Array 1D dari kunci balasan yaitu [a, c, e, d, b]

Oke, supaya kegiatan sederhana ini sanggup membantu pemahaman mengenai pemrograman Java, terutama bagi pemula. Mohon di share jikalau dirasa bermanfaat.

Belum ada Komentar untuk "Program Java Dasar: Menghitung Jumlah Tanggapan Ujian Siswa"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel