Belajar Java Array Untuk Memecahkan Masalah

Berikut ini adalah suatu contoh program yang membutuhkan array.

Buatlah program untuk menghitung nilai rata-rata dari sebanyak  x siswa, dimana jumlah x ditentukan oleh user dalam int. Kemudian hitunglah berapa jumlah siswa yang memiliki nilai di atas nilai rata-rata dari keseluruhan siswa tersebut!.
Gunakan prompt untuk menginput banyaknya siswa dan prompt untuk menginput setiap nilai siswa.

Untuk menghitung nilai rata-rata :

import java.util.Scanner;

public class NilaiSiswa {

 public static void main(String args []){
  
  Scanner input = new Scanner(System.in);
  
  System.out.print("Berapa jumlah siswa? ");
  //prompt untuk input jumlah siswa
  
  int jumlahSiswa = input.nextInt();
  
  int totalNilai = 0;//inisialisasi total nilai
  
  //for loop
  for (int i = 1; i <= jumlahSiswa; i++){
   
   System.out.print("Nilai ujian siswa ke " + i + " adalah: ");
   //prompt untuk input nilai siswa 
   
   int nilai = input.nextInt();
   totalNilai += nilai;
  }
  
  double nilaiRataRata = (double) totalNilai / jumlahSiswa;
  System.out.println();
  System.out.println("Nilai rata-rata hasil ujian siswa adalah: " 
                     + nilaiRataRata);
 }
}

Output :
Pemecahan Masalah Pada Program Java Dengan Menggunakan Array
Output nilai rata-rata siswa
Untuk menghitung nilai rata-rata siswa sudah terpecahkan. Bagaimana untuk menghitung berapa jumlah siswa yang memiliki nilai di atas rata-rata?

Kita bisa mencobanya menggunakan loop, tapi itu tidak akan bekerja. Masalahnya adalah kita tidak bisa mengetahui nilai rata-rata sampai semua data sudah diproses.

Berarti kita harus membuat jalan kedua untuk melewati data untuk mengetahui berapa banyak siswa yang nilainya berada di atas rata-rata.

Tunggu dulu, bagaimana dengan menggunakan Scanner?

Jawabannya adalah tidak bisa, karena Scanner tidak memiliki pilihan reset, yang mengizinkan kita untuk 'melihat' data untuk kedua kalinya. Kita perlu meminta user untuk memasukkan data nilai siswa untuk kedua kalinya, yang tidak menarik dan efisien untuk program tersebut.

Untuk mengatasi hal ini, kita bisa menggunakan array.

Seperti di bawah ini:

import java.util.Scanner;

public class NilaiSiswa {

 public static void main(String args []){
  
  Scanner input = new Scanner(System.in);
  
  System.out.print("Berapa jumlah siswa? ");
  
  int jumlahSiswa = input.nextInt();
  
  int [] jmlSiswa = new int [jumlahSiswa];
  
  int totalNilai = 0;
  
  
  for (int i = 0; i < jumlahSiswa; i++){
   
   System.out.print("Nilai ujian siswa ke " + ( i + 1 ) + " adalah: "); 
   
   jmlSiswa[i] = input.nextInt();
   totalNilai += jmlSiswa[i];
  }
  
  double nilaiRataRata = (double) totalNilai / jumlahSiswa;
  
  int nilaiDiatasRataRata = 0;
  
  for (int i = 0; i < jmlSiswa.length; i++){
   if(jmlSiswa[i] > nilaiRataRata){
    nilaiDiatasRataRata++;
   }
  }
  System.out.println();
  System.out.println("Nilai rata-rata hasil ujian siswa adalah: " 
                     + nilaiRataRata);
  System.out.println("Siswa dengan nilai di atas rata rata " 
                     + nilaiDiatasRataRata + " orang");
 }
}

Ouput:
Contoh Pemecahan Masalah Dengan Array Pada Java
Ouput nilai rata-rata dan jumlsh siswa yang memiliki nilai diatas rata-rata

1 comment:

Bahasa Java. Powered by Blogger.