Tugas Personal ke-2 (Minggu 7 / Sesi 11)
Nama : Ida Sulistiana NIM : 2201837522
Sistem Informasi Binus Online
1. Berikut Statement yang benar a. int i = new int(20); Salah
Seharusnya: int i = 20;
b. double d[] = new double[20]; Benar Bisa juga: double[] d = new double[20];
c. char[] r = new char(1..20); Salah Seharusnya: char[] r = new char[20];
d. int i[] = (3,4,5,2); Salah
Seharusnya: int[] i = {3,4,5,2};
e. float f [] = {2.1, 3.4, 5.6}; Salah
Seharusnya: float[] f = {2.1f, 3.4f, 5.6f};
f. char[] c = new char(); Salah
Seharusnya: char[] c = new char[20];
2. Apa yang terjadi apabila program mencoba untuk mengakses sebuah element array dengan index yang salah / invalid ?
Menurut saya jika program mengakses elemen array dengan index yang salah maka akan terjadi error seperti:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 Maka secara otomatis akan dilempar sebuah object yang disebut dengan
exception.Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan.Proses pelemparan exception disebut dgn throwing exception.Proses
penerimaan exception disebut dengan catch exception.
Contoh penggunaan handling exception:
3. Berikut 3 cara untuk menduplikasi array dan berikan contohnya Terdapat 3 cara untuk menduplikasi array :
Dengan Loop untuk menduplikasi element satu per satu
//Array Copy Using Loop
int[] sourceArray = {2,3,1,5,10};
int[] targetArray = new int[sourceArray.length];
for (int i = 10; i < sourceArray.length; i++) { targetArray[i] = sourceArray[i];
}
Pada Arraycopy yang terdapat dalam class System, syntax yang digunakan : arraycopy(sourceArray, src_pos, targetArray, tar_post, length);
/
/Array Copy Using arrayCopySystem.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
Dapat menggunakan method clone
//Array copy Using Clone Method
int [] numbers = {2,3,4,5};
int [] numbersClone = (int[]) numbers.clone();
Studi kasus terdapat 2 Class yaitu IPS dan mataKuliah
import java.util.Scanner;
public class IPS{
static public void main(String[] args){
Scanner scan = new Scanner(System.in);
IPS ips = new IPS();
int stop = 0;
while(stop == 0){
ips.hitungIPS();
} }
private final Scanner input = new Scanner(System.in);
private final ArrayList<mataKuliah> matakuliah = new ArrayList();
public void hitungIPS(){
System.out.println("Pendataan dan Perhitungan IPS (Indeks Prestasi Semester) :");
System.out.println("1. Pendataan Mata Kuliah");
System.out.println("2. Perhitungan IPS");
System.out.println("3. Update Grade");
System.out.println("4. Keluar");
System.out.print("Masukkan pilihan anda : ");
int menu = input.nextInt();
if(menu == 1){
pendataan();
}else if(menu == 2){
perhitunganIPS();
}else if(menu == 3){
updateGrade();
}else if(menu == 4){
System.exit(0);
}else{
System.out.println("Menu tidak tersedia.");
} }
public void pendataan(){
System.out.print("Masukan Jumlah Matakuliah : ");
int n = input.nextInt();
for (int i = 0; i < n; i++) {
System.out.print("Masukan Kode Matakuliah : ");
String kode = input.next();
System.out.print("Masukan Nama Matakuliah : ");
String nama = input.next();
System.out.print("Masukan Grade Matakuliah : ");
String grade = validateGrade();
System.out.print("Masukan Jumlah SKS : ");
int sks = input.nextInt();
matakuliah.add(new mataKuliah(kode, nama, grade, sks));
System.out.println();
}
}
public String validateGrade(){
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("[abcdeABCDE]")) {
System.out.print("Masukan Grade Matakuliah (A,B,C,D,E) : ");
sc.next();
}
String grade = sc.next();
return grade.toUpperCase();
}
public void perhitunganIPS(){
if(matakuliah.size() <= 0) {
System.out.println("Lakukan pendataan mata kuliah terlebih dahulu.");
return;
}
int totalSKS = 0;
int totalGradeSKS = 0;
System.out.println("Matakuliah yang Anda ambil adalah :");
for(mataKuliah obj : matakuliah) {
System.out.println(obj.getKode()+"\t"+obj.getNama()+"\t"+obj.getGrade()+"\t"+obj.getSks());
String grade = obj.getGrade().toUpperCase();
switch (grade) { case "A":
totalGradeSKS += (obj.getSks() * 4);
break;
case "B":
totalGradeSKS += (obj.getSks() * 3);
break;
case "C":
totalGradeSKS += (obj.getSks() * 2);
break;
case "D":
totalGradeSKS += (obj.getSks() * 1);
break;
case "E":
totalGradeSKS += (obj.getSks() * 0);
break;
}
totalSKS += obj.getSks();
}
double nilaiIPS = (double)totalGradeSKS/(double)totalSKS;
System.out.println("Nilai IPS anda adalah : "+ String.format("%.2f", nilaiIPS));
System.out.println();
}
public void updateGrade(){
System.out.print("Masukan Kode Matakuliah : ");
String kode = input.next();
mataKuliah matkul = null;
for(mataKuliah obj : matakuliah) {
if(obj.getKode().equalsIgnoreCase(kode)){
matkul = obj;
break;
} }
if(matkul != null){
System.out.print("Masukan Grade Baru : ");
String _grade = validateGrade();
matkul.setGrade(_grade);
matakuliah.stream().forEach((obj) -> {
System.out.println(obj.getKode()+"\t"+obj.getNama()+"\t"+obj.getGrade()+"\t"+obj.getSks());
});
}else{
System.out.println("Kode matakuliah tidak tersedia.");
} } }
public class mataKuliah{
private String kode;
private String nama;
private String grade;
private int sks;
public void setKode(String newKode){kode = newKode;}
public void setNama(String newNama ){nama = newNama;}
public void setGrade(String newGrade){grade = newGrade;}
public void setSks(int newSks){sks = newSks;}
public String getKode(){return kode;}
public String getNama(){return nama;}
public String getGrade(){return grade;}
public int getSks(){return sks;}
public mataKuliah(){
kode = "";
nama = "";
grade = "";
sks = 0;
}
public mataKuliah(String newKode, String newNama, String newGrade, int newSks){
kode = newKode;
nama = newNama;
grade = newGrade;
sks = newSks;
} }
Gambar 1. Menu
Gambar 2. Pendataan Mata Kuliah
Gambar 3. Perhitungan IPS
Gambar 4. Update Grade
Gambar 5. Penjagaan input Grade