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

b. double d[] = new double[20]; True c. char[] r = new char(1..20); False d. int i[] = (3,4,5,2); False

e. float f [] = {2.1, 3.4, 5.6}; False f. char[] c = new char(); False

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 a. Menggunakan loop untuk menduplikasi element satu per satu.

Contoh:

b. Menggunakan arraycopy yang terdapat dalam class System

(2)

c. Menggunakan Method clone

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

(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

(4)

Jawaban kasus:

1. package tp2khalifafirdausy;

2.

3. import java.util.Scanner;

4. import java.util.Arrays;

5. import java.util.ArrayList;

6.

7.

8. public class tp2khalifa{

9. static Scanner in= new Scanner(System.in);

10.static ArrayList<String[]> lstMataKuliah = new ArrayList<String[]>();

11.

12. public static void main(String[] args) { 13. int iMenu=0;

14. while (iMenu!=4){

15.

16. System.out.print ( "Pendataan dan Perhitungan Indeks Prestasi Semest er:\n"

17. + "1. Pendataan Matkul\n"

18. + "2. Perhitungan IPS\n"

19. + "3. Update Grade\n"

20. + "4. Keluar\n"

21. + "Pilih nomor: ");

22.

23. iMenu=in.nextInt();

24. switch (iMenu){

25. case 1:

26. pendataanMataKuliah();

27. break;

28. case 2:

29. perhitunganIPS();

30. break;

31. case 3:

32. updateGrade();

33. break;

34. case 4:

35. break;

36. } 37. } 38. } 39.

40. static boolean isValidGrade(String grade){

41. if ("A".equals(grade.toUpperCase()) || "B".equals(grade.toUpperCase(

))

42. || "C".equals(grade.toUpperCase()) || "D".equals(grade.toUpp erCase())

43. || "E".equals(grade.toUpperCase()) ) 44. return true;

45. else System.out.println ("Input grade matkul yang sesuai(A,B,C,D,E)");

46. return false;

47. } 48.

49. static void pendataanMataKuliah(){

50. System.out.print ("\nInput Jumlah Matkul: ");

51. int iJumlahMk=in.nextInt();

52. lstMataKuliah.clear();

53.

54. for (int i=0;i<iJumlahMk;i++){

55. String arrMk[]= new String[4];

56.

57. System.out.print ("Input Kode Matkul: ");

58. arrMk[0]=in.next();

59.

60. System.out.print ("Input Nama Matkul: ");

61. arrMk[1]=in.next();

62. do {

63. System.out.print ("Input Grade Matkul: ");

64. arrMk[2]=in.next().toUpperCase();

(5)

65. } 66.

67. while (!isValidGrade(arrMk[2]));

68. System.out.print ("Input Jumlah SKS: ");

69. arrMk[3]=in.next();

70.

71. lstMataKuliah.add(arrMk);

72. System.out.println();

73. } 74. } 75.

76. static int getGradeFromAlphabet(String alphabet){

77. switch(alphabet){

78. case "A":

79. return 4;

80. case "B":

81. return 3;

82. case "C":

83. return 2;

84. case "D":

85. return 1;

86. case "E" : 87. return 0;

88. } return 0;

89. } 90.

91. static void perhitunganIPS(){

92. System.out.println ("\nMatkul yang di ambil adalah: ");

93. int iSks=0;

94. int iGradeSks=0;

95. for (int i=0; i< lstMataKuliah.size() ;i++){

96.

97. String str=String.format("%s %s \t\t%s \t%s", lstMataKuliah.get(i) [0],

98. lstMataKuliah.get(i)[1], 99. lstMataKuliah.get(i)[2],

100. lstMataKuliah.get(i)[3]);

101.

102. System.out.println(str) ;

103. int iNumGrade= getGradeFromAlphabet(lstMataKuliah.get(i)[2]);

104. int iNumSks= Integer.parseInt(lstMataKuliah.get(i)[3]);

105. iGradeSks=iGradeSks + (iNumGrade*iNumSks);

106. iSks=iSks+iNumSks;

107. } 108.

109. // hitung nilai IPS

110. double dIPS=iGradeSks/iSks;

111. System.out.println(String.format("Nilai IPS anda adalah %s \n"

,dIPS ));

112. } 113.

114. static void updateGrade(){

115. System.out.print("\nInput Kode Mata Kuliah: ");

116. String sKodeMk=in.next();

117. System.out.print("Input Grade Baru: ");

118. String sGrade=in.next();

119.

120. updateGrade(sKodeMk,sGrade);

121. } 122.

123. static void updateGrade(String matakuliah,String newGrade){

124. for (int i=0;i< lstMataKuliah.size(); i++) { 125. if (lstMataKuliah.get(i)

[0].toLowerCase().equals(matakuliah.toLowerCase()) )

126. lstMataKuliah.get(i)[2]=newGrade.toUpperCase();

127. } 128.

129. for (int i=0; i< lstMataKuliah.size() ;i++){

130. String str=Arrays.toString(lstMataKuliah.get(i)).replace("

["," ");

131. str=str.replace("]","");

(6)

132. str=str.replaceFirst(",","");

133. str=str.replace(",","\t");

134.

135. System.out.println(String.format(str)) ; 136. }

137. }

138. }

Referensi

Dokumen terkait