Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Python profiler results by Umbu ( 6 years ago )
package tugasbuatdibagi2;
import java.util.Scanner;
public class tugas_strukdat_jigrade {
/// DIBUAT OLEH : ALBERT SALOMO :)
public static void main(String[] args) {
int i,j;
/// jadi bedanya java ama C ato python , dia tuh harus kita bikin dulu scannernya biar bisa kita input - input di program
Scanner n = new Scanner(System.in); ///n nya itu buat scanner yang mo kita bikin jadi kalo mo scan apapun harus bikin n.
/// VARIABEL ///
/// Kenapa pake [] ? , kalo bingung soalnya tiap mahasiswa punya nilai rata-rata sendiri , grade sendiri, nilai sendiri , dan nama sendiri
/// gw bikin [9999] itu buat maksimal penampungan mahasiswa , tapi ga mungkin kan ada orang gblk yang input lebih dari 9999 mahasiswa wkwk
String nama[] = new String[9999]; // nama tentu memakai string
int nilai [][] = new int[9999][9999]; // nilai pakai integer
String grade[] = new String[9999]; // grade pake string karena berupa huruf
int pembagi[] = new int [9999]; // pembagi juga pasti pakai integer karena berupa angka
float total[] = new float[9999]; // total gw bikin float, pake int jg bisa sih kalo mau total gw buat sebagai penampungan kosong buat rata rata
float rata_rata[] = new float[9999]; // inisialisasi variabel rata-rata menggunakan float karena rata-rata bisa saja koma
/// Pembates loop
int jumlah_mhs=0; // jumlah mahasisa , sebagai pembates loop mahasiswa
int jumlah_matkul=0; // jumlah matakuliah, sebagai pembates loop matakuliah
/// INI MENU YA TAULAH YA
while(true)
{
System.out.println("Menu");
System.out.println("1. Input");
System.out.println("2. Delete");
System.out.println("3. Search (Binary Search");
System.out.println("4. Tampilkan");;
System.out.println("Pilihan Anda : ");
//// PILIHAN DI MENU
int choice = n.nextInt();
switch (choice){
/// PILIHAN PERTAMA (INPUT)
case 1 :
System.out.println("1.Input");
System.out.println("Berapa Mahasiswa yang ingin diinput? : ");
/// LOOP PEMBATES JUMLAH YANG INGIN DI INPUT
jumlah_mhs = n.nextInt();
/// kalo mo input integer pake nextInt() , inget ya n. itu harus pake sebagai scanner baca lagi penjelasan scanner diatas kalo bingung di atas
System.out.println("Berapa mata kuliah yang diambil? : ");
jumlah_matkul = n.nextInt();
/// INPUTAN NAMA
for (i=0;i< jumlah_mhs;i++){ /// loop inputan mahasiswa pakai for pembates nya jumlah mahasiswa, kita buat ginian ya buat input nama mahasiswa
System.out.println("Nama mahasiswa ke-"+ (i+1) +" : "); /// gw bikin i+1 biar kebacanya mahasiswa ke-1 bukan ke -0
nama[i] = n.next(); /// string itu pake .next()
}
/// INPUTAN NILAI
for (i=0;i< jumlah_mhs; i++){
System.out.println("Masukkan nilai untuk " + nama[i]); /// nama[i] ngebaca nama yang barusan elu input diatas
for (j=0; j< jumlah_matkul;j++){
System.out.println("Nilai ke-"+ (j+1)+" : "); /// masukin nilai
nilai[i][j] = n.nextInt(); /// kalo array pun dia scannernya ttp ngebaca variabel yang di deklarasi ini kan pake int ya... pake nextInt()
if(nilai[i][j] == -1) ///kita buat syarat kalo andai nilai yang di input -1 dia itu ngeputusin loop nilai sampe akhir
{
for(int k = j; k< jumlah_matkul; k++) /// k disini itu nunjukin posisi ke berapa -1 di input,
///batesnya tto jumlah matkul jadi kalo misal nih lu input -1 di posisi ke 3 dan total matkul nya itu ada 5 jadi k nya tuh sebagai 3 akan loop sampe matakuliah ke 5
{
nilai[i][k] = -1;
pembagi[i] = 1; /// gw bikin pembaginya 1 biar ga error juga pas outputnya
}
break;
//nah... gw bikin break tuh ya biar dia g nambahin pembagi nya pas gw input -1 makanya di line sebelumnya gw bikin pembagi nya 1 kalo kagak dia ngebacanya pembaginya jadi null atau kosong sehingga error di outputannya
}
while(nilai[i][j]<1 || nilai[i][j]>100) /// ya ini ketentuan biasa lah kalo nilai tuh harus diantara 1 sampe 100, kalo nilai lu mines auto ga naik kelas njerr..
{
System.out.println("Masukan angka antara 1 - 100 !");
nilai[i][j] = n.nextInt();
}
pembagi[i]+=1; /// pembagi+=1 tuh artinya pembagi nya nambah terus seiring jalannya loop tiap lu input nilai
total[i] += nilai[i][j]; /// total ya artinya kan nampung nilai jadi +=nilai[i][j] artinya ya dia masukin jumlah dari total nilai mahasiswa[i] yang lu input
}
rata_rata[i] = total[i] / pembagi[i]; /// rumus rata - rata pasti lu tau lah, yang kea tadi gw bilang di atas gw bikin rata-rata[i] ya biar tiap mahasiswa punya rata rata sendiri
}
//// GRADE //// grade dibikin bebas aja sih batesnya asal make sense aja grade diukur dari rata - rata
for(i = 0;i <jumlah_mhs; i++)
{
if(rata_rata[i] < 30 && rata_rata[i]>=0)
{
grade[i] = "D";
}
else if(rata_rata[i] <50 && rata_rata[i]>=31)
{
grade[i] = "C";
}
else if(rata_rata[i] <80 && rata_rata[i]>=51)
{
grade[i] = "B";
}
else if(rata_rata[i] <100 && rata_rata[i]>=81)
{
grade[i] = "A";
}
}
/// ini output nya , kalo masi jelek outputnya ya atur sendiri lah ya wkwk
System.out.print("\t\t\tNama\t\t");
for(j=0; j<jumlah_matkul ; j++)
{
System.out.print("Nilai ke - " + (j+1) + "\t");
}
System.out.println("Rata - rata\tGrade");
System.out.println("\n");
for(i = 0; i <jumlah_mhs; i++)
{
System.out.print("Mahasiswa ke - "+ (i+1) + ":\t"+ nama[i]+ "\t\t ");
for(j=0; j<jumlah_matkul; j++)
{
if (nilai[i][j] == -1) /// gw bikin syarat gini biar kalo nilainya berisi -1 ya ke print none jadinya
{
System.out.print("None\t\t ");
}
else
{
System.out.print(+ nilai[i][j] + "\t\t ");
}
}
System.out.print(rata_rata[i]);
System.out.println("\t\t " + grade[i]);
System.out.println("\n");
}
break;
/// PILIHAN KEDUA DI MENU
case 2:
System.out.println("Data telah dihapus!");
jumlah_mhs= 0;jumlah_matkul=0;
for(i=0;i<jumlah_mhs;i++) /// Kita buat for kea biasa buat baca seluruh mahasiswa nya
{
nama[i] = "";
rata_rata[i] = 0;
grade[i] = "";
for(j=0;i<jumlah_matkul;j++)
{
nilai[i][j] = 0; /// dibikin kosong lah datanya intinya
}
}
break;
case 3:
System.out.println("Mahasiswa ke berapa yang ingin dicari?");
int search_idx = n.nextInt();
if(search_idx > 0 && search_idx <=jumlah_mhs) ///kasih pembates jumlah mahasiswa nya
{
System.out.print("Nama\t\t");
for(j=0; j<jumlah_matkul ; j++)
{
System.out.print("Nilai ke - " + (j+1) + "\t");
}
System.out.println("Rata - rata\tGrade");
System.out.print(nama[search_idx-1]+"\t\t");
for(j=0; j<jumlah_matkul; j++)
{
if (nilai[search_idx-1][j] == -1) /// gw bikin syarat gini biar kalo nilainya berisi -1 ya ke print none jadinya
{
System.out.print("None\t ");
}
else
{
System.out.print(+ nilai[search_idx-1][j] + "\t\t");
}
}
System.out.print(rata_rata[search_idx-1]);
System.out.println("\t\t"+grade[search_idx-1]);
System.out.println("\n");
}
else
{
System.out.println("Data tidak ditemukan!");
}
break;
case 4:
if(jumlah_mhs == 0 && jumlah_matkul == 0)
{
System.out.println("Data tidak ada!");
}
else
{
System.out.print("\t\t\tNama\t\t");
for(j=0; j<jumlah_matkul ; j++)
{
System.out.print("Nilai ke - " + (j+1) + "\t");
}
System.out.println("Rata - rata\tGrade");
System.out.println("\n");
for(i = 0; i <jumlah_mhs; i++)
{
System.out.print("Mahasiswa ke - "+ (i+1) + ":\t"+ nama[i]+ "\t\t ");
for(j=0; j<jumlah_matkul; j++)
{
if (nilai[i][j] == -1) /// gw bikin syarat gini biar kalo nilainya berisi -1 ya ke print none jadinya
{
System.out.print("None\t ");
}
else
{
System.out.print(+ nilai[i][j] + "\t\t ");
}
}
System.out.print(rata_rata[i]);
System.out.println("\t\t " + grade[i]);
System.out.println("\n");
}
}
break;
default:
System.out.println("Invalid input!");
break;
}
}
}
/// tolong dicari bug nya ya bisa aja masih ada bug
}
Revise this Paste
Parent: 104911