Anda di halaman 1dari 6

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:

COMP6598 – Introduction to Programming


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

COMP6598 – Introduction to Programming


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
*/

COMP6598 – Introduction to Programming


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);

COMP6598 – Introduction to Programming


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)) ;

COMP6598 – Introduction to Programming


}
}
}

OUTPUT :

COMP6598 – Introduction to Programming

Anda mungkin juga menyukai