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.
Untuk menghitung nilai rata-rata :
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 |
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 :
![]() |
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:
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 |
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"); } } |
Output:
![]() |
Ouput nilai rata-rata dan jumlsh siswa yang memiliki nilai diatas rata-rata |
Leave a Reply