Tuesday, November 21, 2017

TUGAS 3 MATAKULIAH PBO



Berikut adalah bahan ajar tentang array dan string dalam Java. Anda bisa mengunduhnya di sini:

Unduh di sini untuk materi ajar array dan string dalam Java


Berikut adalah tugas ketiga matakuliah PBO:

  1. Tuliskan sebuah program Java yang menciptakan sebuah array satu-dimensi yang memuat 10 elemen. Kesepuluh elemen tersebut bertipe double, yang nilai-nilainya dimasukkan oleh user. Selanjutnya program akan menghitung dan menampilkan nilai variansi dan rerata dari kesepuluh nilai elemen array tersebut, dengan memanfaatkan loop while.
  2. Tuliskanlah sebuah program Java yang menciptakan sebuah array satu-dimensi yang memuat 10 elemen. Kesepuluh elemen tersebut bertipe int, yang nilai-nilainya dimasukkan oleh user. Program kemudian menggunakan loop do-while untuk mencari dan menampilkan elemen-elemen array yang ganjil maupun yang genap.
  3. Tuliskanlah sebuah program Java yang menciptakan sebuah array dua-dimensi, dengan 10 baris dan 365 kolom. Semua elemennya bertipe float.  Isi array tersebut menyatakan temperatur tahunan pada sepuluh lokasi berbeda. Temperatur yang direkam diukur
    dalam derajat Celcius.  Hitunglah variansi temperatur tahunan pada sepuluh lokasi tersebut.

Tugas ini dikumpulkan hari Sabtu, 25 Novemper 2017, paling lambat pukul 24.00 WIB.

========================================================================
Sebagai pembanding, tugas nomor 2 tersebut dapat menggunakan array dinamis dari kelas ArrayList, agar hasil integer-integer genap dan integer-integer ganjil yang didapatkan dapat disimpan ke dalam array dinamis tersebut. Kelebihan dari array dinamis adalah bahwa Anda tidak perlu menetapkan ukuran array. Kelas ArrayList secara otomatis menyediakan berapapun ukuran array yang Anda perlukan.

Berikut adalah contoh kode untuk menyelesaikan nomor 2:
========================================================================

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package tugasPBO;

import java.util.*;

public class tugas32 {
 public static void main(String[] args) {
  // Menciptakan dua array dengan ukuran dinamis
  ArrayList<Integer> ganjil = new ArrayList<Integer>();
  ArrayList<Integer> genap = new ArrayList<Integer>(); 
  
  Scanner s=new Scanner(System.in);

     System.out.println("Masukkan banyak elemen array: ");
     int n=s.nextInt();

     int arr[]=new int[n];

     //Membaca array
     System.out.println("Masukkan elemen-elemen array: ");
     int i=0;
     while(i<n){
         arr[i]=s.nextInt();
         i++;
     }
       
     //Menampilkan array
     System.out.println("Elemen-elemen array yang dimasukkan: ");
     System.out.println(Arrays.toString(arr));
     
     //Mencari integer ganjil dan genap
     int k=0; int temp = 0;
     do{
      if(arr[k]%2==0) {
       temp = arr[k];
       genap.add(temp);
      }
       
      else {
       temp = arr[k];
       ganjil.add(temp);
      }
      k++;
     } while(k<n);
  
     // Menampilkan isi array ganjil dan genap
     System.out.println("Elemen-elemen ganjil: "+ganjil);
     System.out.println("Elemen-elemen genap: "+genap);
 }
}


========================================================================
Hasil keluaran program:

Masukkan banyak elemen array:
10
Masukkan elemen-elemen array:
0
1
2
3
4
5
6
7
8
9
Elemen-elemen array yang dimasukkan:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Elemen-elemen ganjil: [1, 3, 5, 7, 9]
Elemen-elemen genap: [0, 2, 4, 6, 8]


Dapat diperhatikan bahwa berapapun banyaknya elemen ganjil dan elemen genap, kedua array dinamis (pada kode di atas, array dinamis ganjil dan genap) dapat menyesuaikan ukurannya sesuai dengan kebutuhan yang diperlukan.

========================================================================


UNTUK NOMOR 1: Anda bisa pula memanfaatkan array dinamis dan iterator untuk melakukannya secara efisien:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package tugasPBO;

import java.lang.Math;
import java.util.*;

public class tugas311 {
 public static void main(String[] args) {

  Scanner s=new Scanner(System.in);

     System.out.println("Masukkan banyak elemen array: ");
     int n=s.nextInt();
  
  // Menciptakan array dengan ukuran dinamis
  ArrayList<Double> arrayKu = new ArrayList<Double>();

     //Membaca array
     System.out.println("Masukkan elemen-elemen array: ");
     int i=0; double temp = 0.0;

     while(i<n){
         temp =s.nextDouble();
         arrayKu.add(temp);
         i++;
     }
       
     //Menampilkan isi array dinamis
     System.out.println("Elemen-elemen array yang dimasukkan: " +arrayKu);
     
     //Menghitung rerata array dinamis dengan memanfaatkan iterator
     double jum = 0.0; double rerata = 0.0;
        Iterator<Double> itr = arrayKu.iterator();
        while(itr.hasNext()){
            jum += itr.next();
        }
     rerata = jum/n;
     System.out.println("Rerata array: " +rerata);
     
     
     // Menghitung dan menampilkan variansi array dengan memanfaatkan iterator
        double variansi = 0.0; double var = 0.0; double temp2 = 0.0;
        Iterator<Double> itr2 = arrayKu.iterator();
        while(itr2.hasNext()){
         temp = itr2.next();
         var += (temp-rerata)*(temp-rerata);
     }
        variansi = var / n;
        System.out.println("Variansi: "+variansi);

    }
}

HASIL KELUARAN PROGRAM:

Masukkan banyak elemen array:
10
Masukkan elemen-elemen array:
7.7
8.8
9.9
8.7
8.8
8.6
9.8
9.0
7.9
8.9
Elemen-elemen array yang dimasukkan: [7.7, 8.8, 9.9, 8.7, 8.8, 8.6, 9.8, 9.0, 7.9, 8.9]
Rerata array: 8.81
Variansi: 0.4329000000000002


========================================================================
Jika Anda hanya ingin menggunakan array tradisional, maka Anda bisa memerhatikan kode ini:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package tugasPBO;

import java.lang.Math;
import java.util.*;

public class tugas31 {
 public static void main(String[] args) {

  Scanner s=new Scanner(System.in);

     System.out.println("Masukkan banyak elemen array: ");
     int n=s.nextInt();

     double arr[]=new double[n];

     //Membaca array
     System.out.println("Masukkan elemen-elemen array: ");
     int i=0;
     while(i<n){
         arr[i]=s.nextDouble();
         i++;
     }
  
  
     //Menampilkan array
     System.out.println("Elemen-elemen array yang dimasukkan: ");
     System.out.println(Arrays.toString(arr));
     
     
     //Menghitung dan menampilkan rerata array
     double jum=0.0, rerata=0.0;
     int j = 0;
     while(j<n){
         jum += arr[j];
         j++;
     }
     System.out.println("Total penjumlahan elemen array:"+jum);
        rerata = jum / n;
        System.out.println("Rerata: "+rerata);

     
        // Menghitung dan menampilkan variansi array
        int k = 0; double variansi = 0.0; double temp = 0.0;
        while(k<n){
         temp += (arr[k]-rerata)*(arr[k]-rerata);
         k++;
     }
        variansi = temp / n;
        System.out.println("Variansi: "+variansi);
    }
}
HASIL KELUARAN PROGRAM:

Masukkan banyak elemen array:
5
Masukkan elemen-elemen array:
3.3
4.4
5.5
3.3
4.4
Elemen-elemen array yang dimasukkan:
[3.3, 4.4, 5.5, 3.3, 4.4]
Total penjumlahan elemen array:20.9
Rerata: 4.18
Variansi: 0.6776000000000002

========================================================================


PERHATIAN:
Kepada seluruh mahasiswa PBO, perhatikan bahwa Anda bisa menggunakan array konvensional maupun array dinamis dari kelas ArrayList. Kelebihan array dinamis dari kelas ArrayList adalah bahwa Java menyediakan sejumlah metode praktis dan iterator yang bisa Anda manfaatkan.







No comments: