• Tidak ada hasil yang ditemukan

Pelajari tentang Tugas Personal ke-2

N/A
N/A
Joli Hp

Academic year: 2023

Membagikan "Pelajari tentang Tugas Personal ke-2"

Copied!
6
0
0

Teks penuh

(1)

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:

(2)

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

(3)

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"

(4)

+ "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":

(5)

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

} }

OUTPUT :

(6)

Referensi

Dokumen terkait