• Tidak ada hasil yang ditemukan

POLKAM.Jazman,2012.Algoritma dan Pemrograman 2

N/A
N/A
Protected

Academic year: 2018

Membagikan "POLKAM.Jazman,2012.Algoritma dan Pemrograman 2"

Copied!
52
0
0

Teks penuh

(1)

Algoritma dan Pemrograman

2

Modul Praktikum

Nama Mahasiswa________________________________:

NIM

: _________________________________

Perhatian: Modul harus dikembalikan di akhir semester dan akan

diinventariskan ke Perpustakaan Politeknik Kampar.

Program Studi Teknik Informatika

Politeknik Kampar

(2)

Modul praktikum ini telah diperiksa dan dan disetujui digunakan di Program Studi Teknik

Informatika Politeknik Kampar untuk mata kuliah Algoritma dan Pemrograman 2 (Praktik)

T.A 2011/2012

Batubelah, Maret 2012 Dibuat oleh: Diperiksa oleh:

Dosen Ka. Prodi. Teknik Informatika

(3)

1

Prerequisite: Array 1 Dimensi di Java...1

Perintah...1

Kode Sumber Array1D.java...1

Array 2 Dimensi di Java...2

Perintah...2

Kode Sumber Array2D.java...2

Tugas 1 Google Docs...3

Praktikum 2 :...Selasa, 13 Maret 2012 – Kamis, 15 Maret 2012 4 Array 3Dimensi di Java...4

Perintah...4

Kode Sumber Array3D.java...4

Input/Output di Java...4

Perintah...4

Kode Sumber SiapaNama.java...5

Perintah...5

Kode Sumber Keyboard.java...6

KeyboardTest.java...7

Praktikum 3 :...Selasa, 27 Maret 2012 – Kamis, 29 Maret 2012 9 Matriks...9

Perintah...9

Matriks01.java...9

Perintah...10

Matriks.java...10

Matriks2x2.java...11

Praktikum 4 :...Selasa, 24 April 2012 – Kamis, 26 April 2012 16 Matriks (Cont.)...16

Perintah...16

Matriks3x3.java...16

Matriks4x4.java...19 Praktikum 5 :...Selasa, 15 Mei 2012 – Kamis, 17 Mei 2012

(4)

Praktikum 6 :...Selasa, 22 Mei 2012 – Kamis, 24 Mei 2012 30

Koleksi (Collections)...30

Praktikum 7 :...Selasa, 05 Juni 2012 – Kamis, 07 Juni 2012 33 Pengurutan (Sorting) dan Pencarian (Searching)...33

Perintah...33

UsingArrays.java...33

Praktikum 8 :...Selasa, 12 Juni 2012 – Kamis, 14 Juni 2012 37 ArrayList...37

Perintah...37

Praktikum 9 :...Selasa, 26 Juni 2012 – Kamis, 28 Juni 2012 40 Vector...40

Perintah...40

Praktikum 10 :Selasa, 03 Juli 2012 – Kamis, 05 Juli 2012...43

Individual Project: Aplikasi CLI Sederhana dengan Java...43

Ketentuan...43

Contoh Topik: Faktorial...43

Feedback Individual Project...44

Ketepatan Waktu (20%)...44

Kesesuaian dengan Perintah (40%)...44

Tugas (40%)...44

Rekapitulasi Nilai Praktikum...44

(5)

Praktikum 1 :

Prerequisite: Array 1 Dimensi di Java

Perintah

Carilah 3 buku di Perpustakaan Politeknik Kampar yang memuat materi Array dan/atau Pencarian/Searching dan/atau Pengurutan/Sorting di Java. Tuliskan ama pengarang, tahun, judul, penerbit di kotak berikut:

Ketikkan dan coba eksekusi program Array1D.java di bawah ini! Tuliskan hasilnya di kotak berikut:

Kode Sumber Array1D.java 1 public class Array1D

2 {

3 public static void main(String args[]){

4 int [] a = new int[10];

5 int [] b = { 10,11,12,41,23,9,-10};

6 int i;

7

8 for (i=0; i < a.length ; i++)

9 {

10 a[i] = (int)(Math.random()*100);

11 }

12

13 for (i=0; i < a.length ; i++)

14 {

15 System.out.println(i+": "+a[i]);

16 }

17

18 for (i=0;i<b.length ;i++)

19 {

(6)

21 {

Array 2 Dimensi di Java

Perintah

Ketik, eksekusi dan pahami kode sumber Array2D.java di bawah ini! Tuliskan outputnya di kotak berikut:

Kode Sumber Array2D.java 1 public class Array2D

(7)

25 }

26 System.out.println();

27 }

28 }

29 }

Tugas 1 Google Docs

Modifikasi kode sumber Array2D.java di atas sehingga outputnya tidak ada koma di elemen terakhir, seperti contoh di bawah ini. Ganti nama sesuai nama Anda. Namakan classnya dengan pola

Array2DNamaAnda.java. Upload solusi Anda ke http://docs.poltek-kampar.ac.id/, buat sebuah collection dengan format penamaan

ALG2_NamaAnda, kemudian share collection tersebut untuk bisa dilihat oleh [email protected].

Praktikum Algoritma dan Pemrograman 2 Array 2 Dimensi

Oleh: Muhammad Jazman(Ganti dengan nama Anda)

[0]=145, 331, 962, 208, 414, 859, 399, 830 [1]=781, 424, 408, 725, 810, 392, 763, 890 [2]=939, 114, 598, 344, 149, 538, 789, 400 [3]=107, 573, 943, 70, 904, 447, 294, 828 [4]=92, 66, 447, 882, 704, 706, 520, 177 [5]=349, 435, 660, 581, 275, 324, 335, 103 [6]=482, 855, 46, 522, 614, 935, 329, 521 [7]=349, 565, 7, 262, 444, 545, 638, 362 [8]=442, 534, 47, 391, 250, 423, 627, 352 [9]=477, 269, 816, 57, 460, 938, 799, 986

Tuliskan bagian mana dari kode sumber Array2D.java yang harus diubah dan apa perubahannya pada kotak berikut:

Diterima

Tanggal : ...

(8)
(9)

Praktikum 2 :

Array 3Dimensi di Java

Perintah

Ketikkan kode sumber Array3D.java di bawah, tuliskan hasilnya pada kotak berikut:

Kode Sumber Array3D.java 1 public class Array3D{

2 static final int x=3;

3 static final int y=5;

4 static final int z=2;

5 public static void main(String[]args){

6 int[][][]a=new int[x][y][z];

7 for (int i=0;i<x;i++){

8 for (int j=0;j<y;j++){

9 for (int k=0;k<z;k++){

10 a[i][j][k]=(int)(Math.random()*1000);

11 }

12 }

13 }

14 for (int i=0;i<x;i++){

15 System.out.print("\nBaris "+i+":");

16 for (int j=0;j<y;j++){

17 System.out.print("\nKolom "+j+":");

18 for (int k=0;k<z;k++){

19 System.out.print("\t"+a[i][j][k]);

20 }

21 }

22 System.out.print("\n---- Akhir Baris "+i+"\n");

23 }

24 }

25 }

(10)

Perintah

Ketikkan SiapaNama.java, jalankan, tuliskan hasilnya di kotak berikut:

Kode Sumber SiapaNama.java 1 class SiapaNama

2 {

3 public static void main (String[] args)

4 {

5 System.out.print("Masukkan nama Anda: ");

6

7 java.io.BufferedReader input =

8 new java.io.BufferedReader (

9 new java.io.InputStreamReader (System.in));

10

11 String nama = new String();

12 try{

13 nama = input.readLine();

14 }catch(java.io.IOException e){

15 }

16 System.out.print("\nHallo, " + nama);

17

18 System.out.print(" Masukkan umur Anda: ");

19 int umur = 0;

20 try{

21 umur = Integer.parseInt(input.readLine());

22 }catch(java.io.IOException e){

23 }catch(NumberFormatException e){

24 yang salah:"System.out.println(); "\n\nError:\n\tMaaf, Anda memasukkan umur 25 System.out.println("\t"+e);

26 System.out.println("\n\tumur Anda di set 0 tahun!");

27 umur = 0; //failed on conversion from String to Integer 28 }

29 tahun."System); .out.println("Hallo "+ nama + ", Umur Anda: " + umur + " 30 }

31 }

Perintah

(11)

Tuliskan apa yang Anda ketahui tentang try-catch !

Tuliskan apa yang Anda ketahui tentang java.io.IOException!

Tuliskan apa yang Anda ketahui tentang NumberFormatException!

Ketikkan kode sumber Keyboard.java, dan KeyboardTest.java di bawah ini! Tuliskan keluaran/error saat Anda menjalankan Keyboard.class :

Menurut Anda, apa penyebab pesan tersebut?

Tuliskan keluaran saat Anda menjalankan KeyboardTest.class :

Kode Sumber Keyboard.java 1 import java.io.BufferedReader;

2 import java.io.InputStreamReader;

3 import java.io.IOException;

4

5 public class Keyboard{

6

7 private BufferedReader reader;

8

9 //Constructor

10 public Keyboard() {

11 reader = new BufferedReader (new InputStreamReader(System.in));

(12)

13 public String getKeyboardInput(){

20 return Integer.parseInt(readKeyboard());

21 }

22 public double getDouble(){

23 return Double.parseDouble(readKeyboard());

24 }

31 private String readKeyboard(){

32 String line = "";

1 public class KeyboardTest

(13)

4 1

5 {

1

6 k.tampil("Anda sudah boleh nonton film Upin dan Ipin!");

1

7 }else{

1

8 k.tampil("Go Go Power Rangers!");

1

9 }

2 0 }

2 1 }

Apa kegunaan fungsi Integer.parseInt()

Apa kegunaan fungsi Double.parseDouble()

Diterima

Tanggal : ... Pukul : ...

(14)

Praktikum 3 :

Matriks

Matriks dapat direpresentasikan menggunakan array dua dimensi: dimana dimensi pertama adalah baris matriks tersebut; sedangkan dimensi

keduanya adalah kolomnya.

Perintah

 Ketik ulang Matriks01.java, compile, lalu jalankan.

 Jawab semua pertanyaan di kotak yang mengikutinya! Jika tidak muat, boleh ditulis di tempat lain.

 Perhatikan implementasi perkalian matriks di java. Java memulai penomoran index di array dengan angka 0, sama seperti bahasa C.

Tuliskan keluaran saat Anda menjalankan Matriks01.java dibawah ini!:

Matriks01.java

1 public class Matriks01{

2 public static void main(String[]args){

3 int a[][] = {{2,3},{4,5}};

4 int[][] b = new int[2][2];

5 b[0][0] = 10;

6 b[0][1] = 8;

7 b[1][0] = 4;

8 b[1][1] = 6;

9

10 System.out.println("Matriks A:");

11 for(int i=0;i<2;i++){

12 for(int j=0;j<2;j++){

13 System.out.print(a[i][j]+"\t");

14 }

15 System.out.println();

16 }

17

18 System.out.println("\n Matriks B:");

19 for(int i=0;i<2;i++){

(15)

21 System.out.print(b[i][j]+"\t");

 Ketik ulang Matriks.java dan Matriks2x2.java (dan juga untuk praktikum berikutnya, Matriks3x3.java dan Matriks4x4.java) pada direktori yang sama. Compile dan jalankan.

 Perhatikan implementasi OOP (Object Oriented Programming) di sini:

o inheritance,

o overloading,

o overriding

 Perhatikan penggunaan konstruktor.

 Perhatikan penggunaan fungsi yang static (dan variable static)

(16)

Matriks.java

1 public class Matriks{

2 protected int[][] a;

2 * extend kelas Matriks untuk lebih menyederhanakan 3 */

4 public class Matriks2x2 extends Matriks{

(17)

1

5 /** Static function to "kali" two 2D array of integer 1

6 /** return a new Matriks2x2, a multiplication of two Matriks2x2 2

7 */ 2

8 public static Matriks2x2 kali(Matriks2x2 a,Matriks2x2 b){

2

(18)

3

9 */ 4

0 public Matriks2x2 kali(Matriks2x2 b){

4

(19)

6

7 public static Matriks2x2 newRandomMatriks2x2(int x){

6

9 System.out.println(a.getMatriks());//toString 8

0 a.print();

8

1 System.out.println("\nConvert our \"matriks\" into a Random matrix one");

8

2 a.random(1000);

8

3 a.print();

8

4 System.out.println("\nBaris:"+a.getBaris());

8

5 System.out.println("Kolom:"+a.getKolom());

8

6 a=a.kali((new Matriks2x2()).newRandomMatriks2x2(10));

8

7 a.print();

8

8 (new Matriks2x2()).newRandomMatriks2x2(10).print();

8 9 }

9 0 }

(20)

Tuliskan keluaran saat Anda menjalankan Matriks2x2

Apakah kegunaan keyword extend ?

Apakah kegunaan keyword super?

Apakah kegunaan keyword final ?

Apakah kegunaan keyword protected ?

Apakah perbedaan antara fungsi int[][]kali dengan Matriks2x2 kali

pada Matriks2x2.java di atas?

Jelaskan perbedaan antara overriding dengan overloading

Jelaskan perbedaan antara fungsi public static Matriks2x2 kali(Matriks2x2 a,Matriks2x2 b) dengan public Matriks2x2 kali(Matriks2x2 b) !

(21)

Pada fungsi main, jelaskan secara singkat arti perintah a.random(1000)

Pada fungsi main, jelaskan secara singkat arti perintah a.print()

Pada fungsi main, jelaskan secara singkat arti perintah a.getBaris() dan a.getKolom(). Kenapa a itu dapat menggunakan fungsi tersebut, walaupun Matriks2x2.java tidak memiliki fungsi getBaris dan getKolom()

Pada fungsi main, jelaskan secara singkat arti perintah a=a.kali((new

Matriks2x2() ).newRandomMatriks2x2(10));

Pada fungsi main, jelaskan secara singkat arti perintah (new Matriks2x2() ).newRandomMatriks2x2(10).print();

Diterima

Tanggal : ... Pukul : ...

(22)

Praktikum 4 :

Matriks (Cont.)

Praktikum 4 ini merupakan lanjutan dari praktikum sebelumnya.

Perintah

 Ketik ulang Matriks3x3.java, letakkan di direktori yang sama dengan Matriks.java.

 Jawablah semua pertanyaan dengan seksama dan hati-hati.

 Boleh bertanya dengan teman, tapi tulis hasil kerja Anda sendiri.

 Jangan lupa untuk mengumpulkan modul ini ke instruktur.

 Perhatikan perbedaan antara Matriks3x3.java dengan Matriks2x2.java

 Perhatikan penggunaan fungsi toString yang merupakan overriding dari Object.toString()

 Perhatikan baik-baik penggunaan perulangan 3 lapis pada pengalian matriks

Tulis keluaran saat Anda menjalankan Matriks3x3.java di bawah ini!:

Matriks3x3.java

1 public class Matriks3x3 extends Matriks{

2 public Matriks3x3(int[][]a){

3 super(a,3,3);

4 }

5 public Matriks3x3(){

6 super(new int[3][3],3,3);

7 }

8

9 /** Static function to "kali" two 2D array of integer 10 */

11 public static int[][] kali(int[][]a,int [][]b){

12 int c[][] = new int[3][3];

13 //pada tiap baris c: baris a tetap, kolom b tetap 14 //first row

15 c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0];

16 c[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1];

17 c[0][2]=a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2];

18 //second row

(23)

20 c[1][1]=a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][1]*b[2][1];

21 c[1][2]=a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2];

22

23 //dapat kah Anda menemukan pola bahwa c[baris] == a[baris]? 24 //dan c[kolom] == b[kolom]

25 //dan kemudian lompat satu satu pada selainnya? 26

35 /** return a new Matriks3x3, a multiplication of two Matriks3x3 36 */

37 public static Matriks3x3 kali(Matriks3x3 a,Matriks3x3 b){

38 int c[][] = new int[3][3];

49 /** return a new Matriks3x3, a multiplication of our 50 * Matriks3x3 with another Matriks3x3

51 */

52 public Matriks3x3 kali(Matriks3x3 b){

53 return kali(new Matriks3x3(this.a),b);

54 }

55 public Matriks3x3 kali_v2(Matriks3x3 b){

(24)

68 String temp = new String();

78 //convert our Matriks3x3 into a random matriks 79 public void random(int x){

87 public static Matriks3x3 newRandomMatriks3x3(int x){

88 //kenapa kita tidak bisa menggunakan baris dan kolom di sini? 89 int[][]a = new int[3][3];

101 System.out.println(a);//toString

102 System.out.println("\nConvert our \"matriks\" into Random matrix");

103 a.random(1000);

104 System.out.println(a);

105

106 a=a.kali((new Matriks3x3()).newRandomMatriks3x3(10));

107 a.print();

108

109 System.out.println("newRandomMatriks3x3(10): ");

110 //(new Matriks3x3()).newRandomMatriks3x3(10).print();

111 System.out.println((new Matriks3x3()).newRandomMatriks3x3(10));

112 }

113 }

(25)

Jelaskan arti perintah System.out.println(a); yang terdapat pada fungsi

main

Bisakah kita melakukan System.out.println(a.random(1000));? Kenapa?

Kenapa kita tidak bisa menggunakan variable baris dan kolom pada fungsi

public static Matriks3x3 newRandomMatriks3x3(int x)

Matriks4x4.java

1 public class Matriks4x4 extends Matriks{

2 /** Konstruktor 3 */

4 public Matriks4x4(int[][]a){

5 super(a,4,4);

6 }

7 public Matriks4x4(){

8 super(new int[4][4],4,4);

9 }

10

11 /** Static function to "kali" two 2D array of integer 12 */

13 public static int[][] kali(int[][]a,int [][]b){

14 int c[][] = new int[4][4];

15 for(int i=0;i<4;i++){

16 for(int j=0;j<4;j++){

17 for(int k=0;k<4;k++){

18 c[i][j]+=a[i][k]*b[k][j];

19 }

20 }

21 }

22 return c;

23 }

24

(26)

27

39 /** return a new Matriks4x4, a multiplication of our 40 * Matriks4x4 with another Matriks4x4

41 */

42 public Matriks4x4 kali(Matriks4x4 b){

43 return kali(new Matriks4x4(this.a),b);

44 }

45 public Matriks4x4 kali_v2(Matriks4x4 b){

46 return new Matriks4x4(kali(this.a,b.a));

69 //convert our Matriks4x4 into a random matriks 70 public void random(int x){

71 for(int i=0;i<baris;i++){

72 for(int j=0;j<kolom;j++){

73 a[i][j] = (int) (Math.random()* x);

(27)

75 }

76 }

77

78 public static Matriks4x4 newRandomMatriks4x4(int x){

79 //kenapa kita tidak boleh menggunakan variable baris dan kolom di fungsi ini?

80 int[][]a = new int[4][4];

81 for(int i=0;i<4;i++){

82 for(int j=0;j<4;j++){

83 a[i][j] = (int) (Math.random()* x);

84 }

85 }

86 return new Matriks4x4(a);

87 }

88

89 public static void main(String[]args){

90 Matriks4x4 a = new Matriks4x4(new int[4][4]);

91 System.out.println("\nMatriks random:");

92 a.random(1000);

93 a.print();

94

95 System.out.println("\na=a.kali((new Matriks4x4()).newRandomMatriks4x4(10));");

96 a=a.kali((new Matriks4x4()).newRandomMatriks4x4(10));

97 a.print();

98

99 System.out.println("\n(new

Matriks4x4()).newRandomMatriks4x4(10).print();");

100 (new Matriks4x4()).newRandomMatriks4x4(10).print();

101 System.out.println("\nnewRandomMatriks4x4(10)\n"

+newRandomMatriks4x4(10));

102 }

103 }

(28)

Diterima

Tanggal : ... Pukul : ...

(29)

Praktikum 5 :

Matrik (Cont.)

Perintah

 Pelajari dengan seksama kode sumber Matrik.java, pastikan Anda mengerti setiap baris kodenya.

 Jawablah pertanyaan dan kumpulkan langsung ke instruktur.

 Bantu teman Anda jika Anda telah mengerti, dan jangan malu untuk bertanya jika Anda tidak mengerti. Malu bertanya jalan-jalan,

banyak bertanya malu-maluin.

(30)

Matrik.java

1 public class Matrik{

2 protected int[][] a;

16 empty constructor 17 */

35 kalikan matrik kita dengan matrik lain, menghasilkan matrik 36 baru

37

38 matrik A[baris_a][kolom_a] hanya bisa dikalikan dengan matrik 39 yang B[baris_b][kolom_b] jika kolom_a == baris_b]

40 */ 41

42 public Matrik kali(Matrik a){

43 //pastikan baris a sama dengan kolom kita 44 if(a.getBaris()== kolom){

45 //System.out.println("baris matrik yang dikali sama dengan kolom kita");

(31)

47 for(int i=0;i<baris;i++){

56 System.out.println("Error: baris matrik yang dikali tidak sama dengan kolom kita");

57 return new Matrik();

58 }

59 }

60 public Matrik tambah(Matrik a){

61 Matrik b = new Matrik(baris,kolom);

(32)

94

95 }

96 }

97

98 /**

99 Convert our matrik into a random matrik, value ranged 100 from 0 to an integer x (input)

111 //kita dapat mengganti fungsi random() diatas cukup dengan 112 //satu baris ini:

127 Convert our matrik into an identity matrix 128 */

138 Transpose an input maktrik, yaitu mengubah baris menjadi kolom 139 */

140 public static Matrik transpose(Matrik a){

(33)

142 for(int i=0;i<b.baris;i++){

160 public static void main(String[]arguments){

161 Matrik m2x2 = new Matrik(2,2);

173 System.out.println("\nrandom()");

174 c.random();

175 System.out.println(c);//c.print(); 176

177 c.random1();System.out.println("c.random1()\n"+c);

178 179

180 System.out.println("\nrandom(100)");

181 c.random(100);

182 c.print();

183

184 System.out.println("\nrandom matrik2x3:\n"+ random(2,3));

185

186 //perhatikan bahwa matrik kita tidak bisa menjadi identitas, 187 //karena baris tidak sama dengan kolom;

188 System.out.println("\nidentitas()");

(34)

190 191

192 System.out.println("Transpose:");

193 transpose(c).print();

194 c.swap(0,1);

195 System.out.println("Swap (0,1)");

196 c.print();

197 }

198 199 }

Jelaskan secara singkat arti perintah

if(a.getBaris()== kolom){

yang terdapat pada fungsi public Matrik kali(Matrik a)

Jelaskan secara singkat arti perintah

int c[][]=new int[baris][a.getKolom()];

Jelaskan secara singkat arti perintah

c[i][j]+=this.a[i][k]*a.a[k][j];

yang terdapat pada fungsi public Matrik kali(Matrik a)

Jelaskan secara singkat arti perintah

return new Matrik(c,baris,a.getKolom());

yang terdapat pada fungsi public Matrik kali(Matrik a)

(35)

Jelaskan secara singkat perbedaan antara fungsi public void print()

dengan fungsi public String toString()

Apa yang terjadi bila Math.round dihilangkan pada fungsi public void

random()

Apa maksud perintah random(1) yang terdapat pada public void random1()

Kenapa pada public static Matrik random(int baris, int kolom) kita masih

bisa menggunakan variable baris dan kolom?

Apa itu matrik identitas?

Diterima

Tanggal : ... Pukul : ...

(36)

Praktikum 6 :

Koleksi (Collections)

Koleksi merupakan sebuah struktur data yang dapat menyimpan referensi ke objek yang lain. Biasanya, koleksi menyimpan referensi ke objek yang sejenis. Beberapa antarmuka kerangkakerja koleksi adalah:

Collection (koleksi), merupakan antarmuka induk;

Set (himpunan), merupakan koleksi yang tidak memiliki nilai duplikat, semuanya unik (tidak ada yang sama);

List (daftar), merupakan koleksi yang terurut dan dapat memiliki nilai duplikat;

Map (peta), merupakan koleksi yang dapat memetakan sebuah kunci kepada nilai koleksi, tidak dapat memiliki nilai duplikat; dan

Queue (antrian), biasanya sebuah koleksi FIFO (first-in-first-out), yang memodelkan peng-antri-an.

Untuk lebih jelasnya, silahkan lihat Java Documentation pada paket java.util.

Bagan 1 Dokumentasi paket java.util

(37)

Apakah yang dimaksud dengan Java Collections Framework?

Apakah Class Arrays merupakan anggota Java Collections Framework?

Bukalah Java API Documentation: Collections Framework Overview. Jelaskan keuntungan-keuntungan utama Collections Framework!

Sebutkan komponen-komponen Collections Framework di Java:

Sebutkan 14 macam collection interface di Java

(38)

Jelaskan secara singkat apa itu koleksi yang modifiable:

Jelaskan secara singkat perbedaan koleksi yang immutable dan koleksi yang mutable:

Jelaskan secara singkat apa itu fixed-size list dan apa itu variable-size list

Jelaskan secara singkat apa itu random access list dan apa itu sequential access list

Lengkapilah tabel berikut:

Implementations

Hash Table ResizableArray BalancedTree LinkedList Hash Table +Linked List

Interfaces

Set List Deque

Map

Diterima

Tanggal : ... Pukul : ...

(39)

Praktikum 7 :

Pengurutan (Sorting) dan Pencarian (Searching)

Class Arrays menyediakan metode-metode untuk pengurutan (sort), pencarian pada array yang telah terurut (binarySearch),

membandingkan (equals) dan mengisi (fill) array.

Perintah

 Ketik ulang UsingArrays.java di bawah ini dan pelajari dengan seksama. Yakinkan diri Anda bahwa Anda mengerti SETIAP BARIS kode sumber tersebut.

Tulis hasil keluaran UsingArrays.java:

UsingArrays.java

1 // taken from Java How To Program 6th Ed 2 // Fig. 19.2: UsingArrays.java

3 // Using Java arrays. 4 import java.util.Arrays;

5

6 public class UsingArrays

7 {

8 private int intArray[] = { 1, 2, 3, 4, 5, 6 };

9 private double doubleArray[] = { 8.4, 9.3, 0.2, 7.9, 3.4 };

10 private int filledIntArray[], intArrayCopy[];

11

12 // constructor initializes arrays 13 public UsingArrays()

14 {

15 filledIntArray = new int [ 10 ]; // create int array with 10 elements 16 intArrayCopy = new int [ intArray.length ];

17

18 Arrays.fill( filledIntArray, 7 ); // fill with 7s 19 Arrays.sort( doubleArray ); // sort doubleArray ascending 20

(40)

23 0, intArray.length );

62 System.out.printf( "intArray %s filledIntArray\n",

63 ( b ? "==" : "!=" ) );

(41)

71 usingArrays.printEquality();

72

73 int location = usingArrays.searchForInt( 5 );

74 if ( location >= 0 )

75 System.out.printf(

76 "Found 5 at element %d in intArray\n", location );

77 else

78 System.out.println( "5 not found in intArray" );

79

80 location = usingArrays.searchForInt( 8763 );

81 if ( location >= 0 )

82 System.out.printf(

83 "Found 8763 at element %d in intArray\n", location );

84 else

85 System.out.println( "8763 not found in intArray" );

86 } // end main

87 } // end class UsingArrays

Tuliskan isi elemen filledIntArray setelah baris 15!

Berapa nilai intArray.length pada baris 16?

Berapa nilai intArrayCopy.length setelah baris 16?

Tuliskan isi filledIntArray setelah baris 18!

Tuliskan isi doubleArray sebelum baris 19!

Tuliskan isi doubleArray setelah baris 19!

Tuliskan keluaran baris 31!

(42)

Apa maksud perintah Arrays.binarySearch( intArray, value) seperti pada baris 51?

Apa maksud perintah Arrays.equals pada baris 57?

Apa maksud perintah ( b ? "==" : "!=" ) pada baris 59?

Apa maksud %s pada baris 58?

Kenapa location pada baris 76 bernilai 4? Kenapa bukan 3?

Jika baris 8 diganti dengan

private int intArray[] = { 1, 2, 3, 4, 6, 8763 };

Apa saja perubahan yang terjadi pada output program? Kenapa?

Diterima

Tanggal : ... Pukul : ...

(43)

Praktikum 8 :

ArrayList

Perintah

Gunakan kode sumber dibawah ini untuk menjawab pertanyaan yang ada pada eLearning! Di akhir praktikum, tetap kumpulkan hardcopy lembaran ini ke tutor Anda!

1 import java.util.*;

2

3 public class ArrayListTest

4 {

5 public static void main(String[] args)

6 {

7 // fill the staff array list with three Employee objects 8 ArrayList<Employee> staff = new ArrayList<Employee>();

9

24 class Employee

(44)

38

39 public double getSalary()

40 {

41 return salary;

42 }

43

44 public Date getHireDay()

45 {

46 return hireDay;

47 }

48

49 public void raiseSalary(double byPercent)

50 {

51 double raise = salary * byPercent / 100;

52 salary += raise;

53 }

54

55 public String toString()

56 {

57 return "\nName: "+name+"\nSalary: "+salary+"\nHire Day: "+hireDay+"\n";

58 }

59

60 private String name;

61 private double salary;

62 private Date hireDay;

63 }

Tuliskan keluaran kode diatas jika dijalankan

(45)

Pada baris #10, apa maksudnya?

staff.add(new Employee("Carl Cracker", 75000, 1987, 12, 15));

Apa maksud perintah pada baris #15?

for (Employee e : staff)

Apa yang terjadi jika diakhir baris #15 ditambahkan tanda titik koma “;”. Jelaskan kenapa!

for (Employee e : staff);

Dimanakah letak paket kelas GregorianCalendar? (lihat baris #30)

Pada baris #44, dimanakah letak paket kelas Date?

Bagian manakah yang perlu diubah jika ingin menghasilkan seperti berikut

Nama: Carl Cracker Gaji: 78750.0

Tanggal Penerimaan: Tue Dec 15 00:00:00 ICT 1987

Nama: Harry Hacker Gaji: 52500.0

Tanggal Penerimaan: Sun Oct 01 00:00:00 ICT 1989

Nama: Tony Tester Gaji: 42000.0

Tanggal Penerimaan: Thu Mar 15 00:00:00 ICT 1990

Diterima

Tanggal : ... Pukul : ...

(46)
(47)

Praktikum 9 :

Vector

Perintah

Gunakan kode sumber dibawah ini untuk menjawab pertanyaan yang ada pada eLearning! Di akhir praktikum, tetap kumpulkan hardcopy lembaran ini ke tutor Anda!

1 import java.util.Vector;

2 3 /**

4 * Test Vector 5 */

6 public class VectorTest{

7 public static void main(String[]args){

8 Vector v = new Vector(5,2);

9

10 System.out.println("v.size()\t"+v.size());

11 System.out.println("v.capacity()\t"+v.capacity());

12

22 System.out.println("v.size()\t"+v.size());

23 System.out.println("v.capacity()\t"+v.capacity());

24

31 class Mahasiswa{

(48)

39 this.nama = nama;

40 this.umur = 0;

41 }

42 public Mahasiswa(int i){

43 this.umur = i;

44 }

45 public Mahasiswa(String nama, int umur){

46 this.nama = nama;

47 this.umur = umur;

48 }

49 public String toString(){

50 return this.nama+", "+this.umur+" tahun";

51 }

52 }

53

54 class Buku{

55 public String judul;

56 public int tahun;

57 public Buku(){};

58 public Buku(String j){

59 this.judul = j;

60 }

61 public Buku(String j, int t){

62 this.judul = j;

63 this.tahun = t;

64 }

65 }

Tuliskan keluaran kode sumber di atas:

Apa perbedaan Vector dengan Array?

Apa perbedaan Vector dengan ArrayList?

(49)

Apa keluaran baris #14

Apa keluaran baris #15

Kenapa keluaran baris #15 seperti itu?

Fungsi apakah yang harus dibuat dan dimana, sehingga tampilan baris#15 adalah

kira-kira seperti berikut: Judul Buku: Ayat-Ayat Cinta Tahun Terbit: 2009

Tuliskan snippet (potongan kode sumber) fungsi tersebut di bawah ini:

Apa maksud kode berikut:

v.get(v.size()-1)

Diterima

Tanggal : ... Pukul : ...

(50)

Praktikum 10 :

Individual Project: Aplikasi CLI Sederhana dengan Java

Setelah hampir setahun Anda mempelajari Algoritma dan Pemrograman, Anda dituntut untuk bisa menghasilkan sesuatu yang berguna bagi

masyarakat. Untuk dapat lulus kuliah ini, Anda diharuskan untuk

membuat sebuah aplikasi konsol (CLI/Command Line Interface) sederhana menggunakan java.

Ketentuan

 Anda harus membuat laporan Akhir secara Individu bagaimana menjalankan aplikasi sederhana buatan Anda tersebut.

 Anda bebas menentukan sendiri topik Anda. Silahkan kerjakan sesuatu yang mudah menurut Anda. Anda hanya punya waktu 2 kali praktikum untuk membuatnya, yaitu pada hari

dan .

 DEMO dilakukan dengan konsol (cmd) bukan dengan Eclipse; lihat gambar!

 Jika mencantumkan screenshot CMD, gunakan latar belakang berwarna putih dan tulisan berwarna hitam.

 Anda harus membuatkan dokumentasi (javadoc) untuk aplikasi Anda. Arsipkan (zip) dokumentasi tersebut berikut kodesumber, dan unggah (upload) ke http://docs.poltek-kampar.ac.id dan jangan lupa untuk mensharenya ke [email protected] . Jangan

dikirimkan ke email saya! Anda cukup membuat sebuah collection di GoogleDocs, share collection tersebut ke saya, dan unggah tugas Anda!

 Adapun yang harus Anda unggah:

o Laporan dalam format *.doc atau *.docx atau google doc

o javadoc dalam bentuk *.zip

o sourcecode dalam bentuk *.java

 Penamaan collection harus berformat ALG2<SPASI>Nama Anda

Contoh Topik: Faktorial

(51)

Perhatikan bahwa faktorial tersebut merupakan sebuah BATCH file berikut:

Feedback Individual Project

//Bagian ini diisi oleh dosen

Nama Proyek :... Gambaran Umum...:

...

Ketepatan Waktu (20%)

Dikumpulkan online paling lambat malam dinihari pukul 00:00

Nilai :... Penalti (50% per 24 jam)...:

Kesesuaian dengan Perintah (40%)

Diunggah ke GoogleDocs...: Menggunakan collection...: Penamaan collection sesuai...: Disertai Javadoc :...

Tugas (40%)

Kompleksitas :... Kreativitas :... Kerapihan :... Dokumentasi :...

Tanggal : ... Pukul : ...

Nama & tanda-tangan

Dosen : ...

Rekapitulasi Nilai Praktikum

//Bagian ini diisi oleh instruktur.

Praktikum Nilai

(52)

Praktikum 2 Praktikum 3 Praktikum 4 Praktikum 5 Praktikum 6 Praktikum 7 Praktikum 8 Praktikum 9 PROYEK

Tanggal : ... Pukul : ...

Instruktur :...

Nilai Akhir Matakuliah Praktikum Algoritma dan

Pemrograman 2

//Bagian ini diisi oleh dosen.

Nama Mahasiswa :... NIM Mahasiswa : ... Nilai Angka : ... Nilai Huruf : ... Tanggal Pengisian :... Pukul : ...

Referensi

Dokumen terkait

5. Mungkinkah kita memberikan pernyataan return pada fungsi yang tidak memiliki nilai balik? Jelaskan. Lembar Jawaban Tes Formatif.. Lembar Kerja Siswa.. Setelah mengikuti

Contoh 2 (mufi, yunus, rara, ines) PSEUDOCODE : KAMUS/DEKLARASI VARIABEL KONSTRUKTOr *Jurusan = char ALGORITMA/DESKRIPSI KONSTRUKTOR jurusan=jurusan print(jurusan)

Disamping itu, berbagai fungsi khusus pada mesin Milling, seperti fungsi koordinasi untuk perubahan bidang interpolasi, fungsi copying yang berperan penting dalam pembuatan

– Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan diwariskan ke kelas turunan dengan

Fungsi yang digunakan untuk membaca data string pada file yaitu fgets( ) untuk menyimpan string str ke dalam file. Dan fputs( ) untuk membaca string dari file

Merupakan fungsi yang digunakan untuk membaca sebuah karakter yang dimasukkan dari keyboard dan karakter tersebut tidak akan ditampilkan pada layar.. Untuk bisa

Metode pencarian beruntun adalah proses membandingkan setiap elemen larik satu persatu secara beruntun, mulai dari elemen pertama sampai dengan elemen yang dicari ditemukan atau

Mahasiswa seharusnya sudah membaca di rumah topik pada Pertemuan ke 2, karena tersedia secara daring pada Materi Utama:  Sejarah Komputer lokal  untuk memperluas wawasan  Gambar