Anda di halaman 1dari 5

Tugas Personal ke-2

(Minggu 8 / Sesi 13)

NAMA : ADE LUZERN ROSSLIANI


NIM : 2101703991
KELAS : TKBA

Tugas Personal 2
1. Manakah dari statement berikut ini yang benar
a. int i = new int(20); SALAH
b. double d[] = new double[20]; BENAR
c. char[] r = new char(1..20); SALAH
d. int i[] = (3,4,5,2); SALAH
e. float f [] = {2.1, 3.4, 5.6}; SALAH
f. char[] c = new char(); SALAH

2. Apa yang terjadi apabila program mencoba untuk mengakses sebuah element array dengan index yang
salah / invalid ?
Akan muncul error dengan pesan Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException .

3. Sebutkan 3 cara untuk menduplikasi array dan berikan contohnya


1) Menggunakan loop untuk menduplikasi element satu per satu.
Contoh:

2) Menggunakan arraycopy yang terdapat dalam class System, syntax yang digunakan :
arraycopy(sourceArray,src_pos,targetArray, tar_post, length);
Contoh:

3) Menggunakan method clone


Contoh:

COMP6223 – 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


Tampilan Awal

Menu 1 : Pendataan Matakuliah

Menu 2 : Perhitungan IPS

Menu 3 : Update Grade

COMP6223 – Introduction to Programming


HASIL KASUS

Source Code :
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();

COMP6223 – Introduction to Programming


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

COMP6223 – Introduction to Programming


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

Output :

COMP6223 – Introduction to Programming

Anda mungkin juga menyukai