Tugas Personal ke-2 (Minggu 7 / Sesi 11)
Tugas Personal 2
1. Manakah dari statement berikut ini yang benar a. int i = new int(20);
b. double d[] = new double[20];
c. char[] r = new char(1..20);
d. int i[] = (3,4,5,2);
e. float f [] = {2.1, 3.4, 5.6};
f. char[] c = new char();
Jawaban : a. SALAH b. BENAR c. SALAH d. SALAH e. SALAH f. BENAR
2. Apa yang terjadi apabila program mencoba untuk mengakses sebuah element array dengan index yang salah / invalid ?
Jawaban :
Akan muncul error dengan pesan Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException
3. Sebutkan 3 cara untuk menduplikasi array dan berikan contohnya
Menggunakan loop untuk menduplikasi element satu per satu.
Contoh:
Menggunakan arraycopy yang terdapat dalam class System, syntax yang digunakan : arraycopy(sourceArray,src_pos,targetArray, tar_post, length);
Contoh:
Menggunakan method clone
Contoh:
Kasus :
Buatlah sebuah program Pendataan dan Perhitungan IPS (Indeks Prestasi Semester) .
Gunakan Arraylist / vector. Program akan berhenti saat dipilih menu keluar . Program terdiri atas 4 menu yaitu :
1. Pendataan Matakuliah :
a. User akan memasukan jumlah matakuliah yang akan didata
b. Data yang didata adalah nama matakuliah, kode matakuliah, grade , jumlah sks
c. Grade yang dimasukkan harus divalidasi dan hanya bisa berupa A, B, C , D dan E
2. Perhitungan IPS
a. Perhitungan IPS sebagai berikut : IPS =∑(sks x grade) / ∑sks b. Perhitungan Grade sebagai berikut
A = 4 B = 3 C = 2 D = 1 E = 0
3. Update Grade
a. User akan memasukan kode matakuliah yang akan diupdate gradenya b. Grade yang dimasukkan harus divalidasi dan hanya bisa berupa A, B, C , D
dan E 4. Keluar
a. Program akan berhenti
Perhatikan contoh tampilan berikut ini
Tampilan Awal
Menu 1 : Pendataan Matakuliah
Menu 2 : Perhitungan IPS
Menu 3 : Update Grade
Jawaban :
package tugaspersonal2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* @author Ade Luzern */
public class TugasPersonal2 {
static Scanner in= new Scanner(System.in);
static ArrayList<String[]> lstMataKuliah = new ArrayList<String[]>();
/**
* @param args the command line arguments */
public static void main(String[] args) { int iMenu=0;
while (iMenu!=4){
System.out.print ( "Pendataan dan Perhitungan IPS (Indeks Prestasi Semester):\n"
+ "1. Pendataan Mata Kuliah\n"
+ "2. Perhitungan IPS\n"
+ "3. Update Grade\n"
+ "4. Keluar\n"
+ "MASUKKAN PILIHAN ANDA: ");
iMenu=in.nextInt();
switch (iMenu){
case 1:
pendataanMataKuliah();
break;
case 2:
perhitunganIPS();
break;
case 3:
updateGrade();
break;
case 4:
break;
} } }
static boolean isValidGrade(String grade){
if ("A".equals(grade.toUpperCase()) || "B".equals(grade.toUpperCase()) || "C".equals(grade.toUpperCase()) ||
"D".equals(grade.toUpperCase())
|| "E".equals(grade.toUpperCase()) ) return true;
else System.out.println ("Masukan Grade Mata Kuliah yang benar(A,B,C,D,E)!");
return false;
}
static void pendataanMataKuliah(){
System.out.print ("\nMasukan Jumlah Mata Kuliah: ");
int iJumlahMk=in.nextInt();
//String arrMk[]= new String[4];
lstMataKuliah.clear();
for (int i=0;i<iJumlahMk;i++){
String arrMk[]= new String[4];
System.out.print ("Masukan Kode Mata Kuliah: ");
arrMk[0]=in.next();
System.out.print ("Masukan Nama Mata Kuliah: ");
arrMk[1]=in.next();
//validasi grade do {
System.out.print ("Masukan Grade Mata Kuliah: ");
arrMk[2]=in.next().toUpperCase();
}
while (!isValidGrade(arrMk[2]));
System.out.print ("Masukan Jumlah SKS: ");
arrMk[3]=in.next();
lstMataKuliah.add(arrMk);
System.out.println();
} }
static int getGradeFromAlphabet(String alphabet){
switch(alphabet){
case "A":
return 4;
case "B":
return 3;
case "C":
return 2;
case "D":
return 1;
case "E" : return 0;
} return 0;
}
static void perhitunganIPS(){
System.out.println ("\nMata kuliah yang anda ambil adalah: ");
int iSks=0;
int iGradeSks=0;
for (int i=0; i< lstMataKuliah.size() ;i++){
//ambil mata kuliah dan tampilkan
String str=String.format("%s %s \t\t%s \t%s", lstMataKuliah.get(i)[0], lstMataKuliah.get(i)[1],
lstMataKuliah.get(i)[2], lstMataKuliah.get(i)[3]);
System.out.println(str) ;
int iNumGrade= getGradeFromAlphabet(lstMataKuliah.get(i)[2]);
int iNumSks= Integer.parseInt(lstMataKuliah.get(i)[3]);
iGradeSks=iGradeSks + (iNumGrade*iNumSks);
iSks=iSks+iNumSks;
}
// hitung nilai IPS
double dIPS=iGradeSks/iSks;
System.out.println(String.format("Nilai IPS anda adalah %s \n",dIPS ));
}
static void updateGrade(){
System.out.print("\nMasukan Kode Mata Kuliah: ");
String sKodeMk=in.next();
System.out.print("Masukan Grade Baru: ");
String sGrade=in.next();
updateGrade(sKodeMk,sGrade);
}
static void updateGrade(String matakuliah,String newGrade){
for (int i=0;i< lstMataKuliah.size(); i++) { if (lstMataKuliah.get(i)
[0].toLowerCase().equals(matakuliah.toLowerCase()) )
lstMataKuliah.get(i)[2]=newGrade.toUpperCase();
}
// tampilkan
for (int i=0; i< lstMataKuliah.size() ;i++){
String str=Arrays.toString(lstMataKuliah.get(i)).replace("["," ");
str=str.replace("]","");
str=str.replaceFirst(",","");
str=str.replace(",","\t");
System.out.println(String.format(str)) ; }
} }