Anda di halaman 1dari 12

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

2. Apa yang terjadi apabila program mencoba untuk mengakses sebuah element array
dengan index yang salah / invalid ?

3. Sebutkan 3 cara untuk menduplikasi array dan berikan contohnya

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

COMP6598 – Introduction to Programming


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

Answer :

1. b. double d[] = new double[20];


2. Akan muncul error dengan pesan Exception in thread
"main"  java.lang.ArrayIndexOutOfBoundsException

Maka secara otomatis akan dilempar sebuah object yang disebut


dengan exception.Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap

COMP6598 – Introduction to Programming


menangani kesalahan.Proses pelemparan exception disebut dgn
throwing exception.Proses  penerimaan exception disebut dengan catch exception

3. 3 cara untuk menduplikasi array


a. Menggunakan loop untuk menduplikasi element satu per satu.
Contoh :

package tugas.personal;
public class Loop {
public static void main(String[] args){

int[] newArray = {4,7,8,10};


int[] targetArray = new int [newArray.length];

for (int x = 0; x< newArray.length; x++){


targetArray[x] = newArray[x];

System.out.println(targetArray[x]);
}
}
}

b. Menggunakan arraycopy()
Contoh :

package tugas.personal;

import java.util.Arrays;
public class ArrayCopy {

public static void main(String[] args){

int[] hasil1 = {1,3,4,6,-1,-4};


int[] hasil3 = new int[6];

int[] hasil2 = new int[hasil1.length];

System.arraycopy(hasil1,0,hasil2,0,hasil1.length);
System.out.println("hasil2 = " +Arrays.toString(hasil2));

System.arraycopy(hasil1, 2, hasil3, 1, 2);


System.out.println("hasil3 = " +Arrays.toString(hasil3));

COMP6598 – Introduction to Programming


}

c. Menggunakan method clone


Contoh :

package tugas.personal;

public class Clone {

public static void main(String[] args){

int[] newArray = {1,2,15,10,5};

int[] cloneArray = (int[]) newArray.clone();

cloneArray[0] = 15;

System.out.println("newArray= " + newArray[0]);

System.out.println("cloneArray= " +cloneArray[0]);

COMP6598 – Introduction to Programming


4. Kasus Perhitungan IPS

Tampilan Awal

Menu 1 : Pendataan Matakuliah

COMP6598 – Introduction to Programming


Menu 2 : Perhitungan IPS

Menu 3 : Update Grade

Source Code
1. Class AppIPS

package tugas.personal;

import java.util.ArrayList;

import java.util.Scanner;

public class AppIPS {

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

AppIPS ips = new AppIPS();

int stop = 0;

while (stop == 0){

COMP6598 – Introduction to Programming


ips.gradeIPS();

private final Scanner scan = new Scanner(System.in);

private final ArrayList<Matakuliah> mtkuliah = new ArrayList();

public void gradeIPS() {

System.out.println("\nPENDATAAN DAN PERHITUNGAN IPS


(INDEKS PRESTASI SEMESTER) : \n"

+ "1. Pendataan MataKuliah. \n" + "2. Perhitungan IPS. \n" +


"3. Update Grade \n" + "4. Keluar \n" + "Masukan Pilihan Anda : ");

int gradeMenu = scan.nextInt();

if(gradeMenu == 1){

pendataan();

}else if(gradeMenu == 2){

hitungIPS();

}else if(gradeMenu == 3){

updateGrd();

}else if(gradeMenu == 4){

System.exit(0);

}else{

System.out.println("Masukan Nomor Menu yang Tersedia !");

private void pendataan() {

System.out.println("Masukan Jumlah Mata Kuliah : ");

int v = scan.nextInt();

for(int i = 0; i < v; i++){

COMP6598 – Introduction to Programming


System.out.println("\nMasukan Kode Matakuliah : ");

String kode = scan.next();

System.out.println("Masukan Nama Matakuliah : ");

String nama = scan.next();

System.out.println("Masukan Grade Matakuliah : ");

String grade = validationGrd();

System.out.println("Masukan Jumlah SKS : ");

int sks = scan.nextInt();

mtkuliah.add(new Matakuliah(kode, nama, grade, sks));

System.out.println("\n Pendataan Berhasil !");

private String validationGrd() {

Scanner input = new Scanner(System.in);

while (!input.hasNext("[abcdeABCDE]")){

System.out.println("Masukan Grade Mata Kuliah (A,B,C,D,E) : ");

input.next();

String grade = input.next();

return grade.toUpperCase();

private void hitungIPS() {

if(mtkuliah.size() <=0 ){

System.out.println("Lakukan Pendataan Mata Kuliah ! ");

return;

int totSKS = 0;

COMP6598 – Introduction to Programming


int totGrade = 0;

System.out.println("Mata Kuliah yang Anda Ambil Adalah : ");

for(Matakuliah obj : mtkuliah){

//Menampilkan hasil inputan

System.out.println(obj.getKode()+ "\t" +obj.getNama()+ "\t"


+obj.getGrade()+ "\t" +obj.getSKS());

String grade = obj.getGrade().toUpperCase();

switch(grade){

case "A" :

totGrade += (obj.getSKS() * 4 );

break;

case "B" :

totGrade += (obj.getSKS() * 3);

break;

case "C" :

totGrade += (obj.getSKS() * 2);

break;

case "D" :

totGrade += (obj.getSKS() * 1);

break;

case "E" :

totGrade += (obj.getSKS() * 0);

break;

totSKS += obj.getSKS();

double hasil = (double)totGrade/(double)totSKS;

System.out.println("Nilai IPS Anda Adalah : " + String.format("%.2f",

COMP6598 – Introduction to Programming


hasil));

System.out.println();

private void updateGrd() {

System.out.println("\nMasukan Kode Matakuliah : ");

String kode = scan.next();

Matakuliah matkul = null;

for (Matakuliah obj : mtkuliah){

if(obj.getKode().equalsIgnoreCase(kode))

matkul = obj;

break;

if(matkul != null){

System.out.print("Masukan Grade Baru : ");

String grade1 = validationGrd();

matkul.setGrade(grade1);

System.out.println("\nUpdate Berhasil!");

else{

System.out.println("Kode Matakuliah Tidak Tersedia !");

COMP6598 – Introduction to Programming


2. Class Matakuliah

package tugas.personal;

public class Matakuliah {

private String kode;

private String nama;

private String grade;

private int sks;

String getGrade;

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;

COMP6598 – Introduction to Programming


grade = newGrade;

sks = newSKS;

Sumber & Referensi :

Lecture Notes Week 8 - Array , Arraylist, Vector

COMP6598 – Introduction to Programming

Anda mungkin juga menyukai

  • Forum 4
    Forum 4
    Dokumen1 halaman
    Forum 4
    Cakra Wardana
    Belum ada peringkat
  • Forum 3
    Forum 3
    Dokumen1 halaman
    Forum 3
    Cakra Wardana
    Belum ada peringkat
  • Forum 2
    Forum 2
    Dokumen2 halaman
    Forum 2
    Cakra Wardana
    Belum ada peringkat
  • Forum 1
    Forum 1
    Dokumen2 halaman
    Forum 1
    Cakra Wardana
    Belum ada peringkat
  • Forum 5
    Forum 5
    Dokumen1 halaman
    Forum 5
    Cakra Wardana
    Belum ada peringkat
  • Analytical CRM
    Analytical CRM
    Dokumen2 halaman
    Analytical CRM
    Cakra Wardana
    Belum ada peringkat
  • Financial Statement Analysis
    Financial Statement Analysis
    Dokumen2 halaman
    Financial Statement Analysis
    Cakra Wardana
    Belum ada peringkat