Saturday, November 25, 2017

TUGAS 4: MATAKULIAH PBO


Dari Tugas 3, salah satu tugas yang diberikan pada Anda adalah:


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.

Pada kasus tersebut, Anda menuliskan kode ke dalam satu fungsi/metode main() saja:


 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package tugasPBO;

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

public class contoh41 {
 public static void main(String[] args) {
  // Memanggil metode inisialisasiArray
  double[] arr1 = inisialisasiArray();
  
  // Memanggil metode untuk menampilkan array
  tampilkanArray(arr1);  
     
  // Metode untuk menghitung rerata array
  double rerata = 0.0;
  rerata = hitungRerata(arr1);
            System.out.println("Rerata: "+rerata);
      
  // Metode untuk menghitung variansi array
  double variansi = 0.0;
  variansi = hitungVariansi(arr1, rerata);
             System.out.println("Variansi: "+variansi);

    }
 
 //Metode untuk membaca nilai-nilai dari user
 public static double[] inisialisasiArray() {
 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++;
    }
    return arr;
 }
 
    //Metode untuk menampilkan array
    public static void tampilkanArray(double arr[]) {
     System.out.println("Elemen-elemen array yang dimasukkan: ");
     System.out.println(Arrays.toString(arr));
    }
  
    //Metode untuk menghitung rerata
 //Menghitung dan menampilkan rerata array
    public static double hitungRerata(double arr[]) {
     double jum=0.0, rerata=0.0;
     int j = 0;
     while(j<arr.length){
      jum += arr[j];
      j++;
     }
     System.out.println("Total penjumlahan elemen array:"+jum);
     rerata = jum / arr.length;

     return rerata;
    }
  
    // Metode untuk menghitung dan menampilkan variansi array
    public static double hitungVariansi(double arr[], double rerata) {
    int k = 0; double variansi = 0.0; double temp = 0.0;
    while(k<arr.length){
        temp += (arr[k]-rerata)*(arr[k]-rerata);
        k++;
    }
    variansi = temp / arr.length;
    return variansi;
    }
}

Tentu, ini merupakan kode yang cukup amatir, karena semua kode ditempatkan ke dalam satu metode (kasus ini, main) saja. Anda dapat menyekat kode ke dalam sejumlah metode, sehingga ketika Anda memerlukan metode tertentu, Anda hanya perlu memanggilnya saja.



Berikut adalah versi kode yang di dalamnya kode disekat-sekat ke dalam sejumlah metode:



 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package tugasPBO;

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

public class contoh41 {
 public static void main(String[] args) {
  // Memanggil metode inisialisasiArray
  double[] arr1 = inisialisasiArray();
  
  // Memanggil metode untuk menampilkan array
  tampilkanArray(arr1);  
     
  // Metode untuk menghitung rerata array
  double rerata = 0.0;
  rerata = hitungRerata(arr1);
            System.out.println("Rerata: "+rerata);
      
  // Metode untuk menghitung variansi array
  double variansi = 0.0;
  variansi = hitungVariansi(arr1, rerata);
             System.out.println("Variansi: "+variansi);

    }
 
 //Metode untuk membaca nilai-nilai dari user
 public static double[] inisialisasiArray() {
 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++;
    }
    return arr;
 }
 
    //Metode untuk menampilkan array
    public static void tampilkanArray(double arr[]) {
     System.out.println("Elemen-elemen array yang dimasukkan: ");
     System.out.println(Arrays.toString(arr));
    }
  
    //Metode untuk menghitung rerata
 //Menghitung dan menampilkan rerata array
    public static double hitungRerata(double arr[]) {
     double jum=0.0, rerata=0.0;
     int j = 0;
     while(j<arr.length){
      jum += arr[j];
      j++;
     }
     System.out.println("Total penjumlahan elemen array:"+jum);
     rerata = jum / arr.length;

     return rerata;
    }
  
    // Metode untuk menghitung dan menampilkan variansi array
    public static double hitungVariansi(double arr[], double rerata) {
    int k = 0; double variansi = 0.0; double temp = 0.0;
    while(k<arr.length){
        temp += (arr[k]-rerata)*(arr[k]-rerata);
        k++;
    }
    variansi = temp / arr.length;
    return variansi;
    }
}

PERHATIKAN:
Metode dalam Java memiliki tipe nilai balik, nama metode, dan sejumlah argumen masukan. Anda bisa mempelajari kode tersebut dengan memodifikasinya sesuai dengan kebutuhan Anda.




Metode-metode pada kode di atas dapat dimodifikasi agar dapat diterapkan pada array dinamis. Perhatikan kode berikut:



 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package tugasPBO;

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

public class contoh42 {
 public static void main(String[] args) {
     // Menginisialisasi array
  ArrayList<Double> arrayKu1 = new ArrayList<Double>();
  arrayKu1 = inisialisasiArray();
  
     //Menampilkan isi array dinamis
     System.out.println("Elemen-elemen array yang dimasukkan: " +arrayKu1);
     
     //Menghitung rerata array
     double rerata = 0.0;
     rerata = hitungRerata(arrayKu1);
     System.out.println("Rerata array: " +rerata);
          
     //Menghitung variansi
     double variansi = 0.0;
     variansi = hitungVariansi(arrayKu1,rerata); 
        System.out.println("Variansi: "+variansi);

    }
 
 public static ArrayList<Double> inisialisasiArray() {
  // Metode untuk menginisialisasi array
  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++;
  }
  
  return arrayKu;
 }
 
 public static double hitungRerata(ArrayList<Double> 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/arrayKu.size();
  return rerata;
 }
 
 public static double hitungVariansi(ArrayList<Double> arrayKu, double 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()){
   temp2 = itr2.next();
   var += (temp2-rerata)*(temp2-rerata);
  }
  variansi = var / arrayKu.size();
  return variansi;
 }
}

KELUARAN PROGRAM:
Masukkan banyak elemen array:
5
Masukkan elemen-elemen array:
2.2
3.3
2.2
3.4
5.4
Elemen-elemen array yang dimasukkan: [2.2, 3.3, 2.2, 3.4, 5.4]
Rerata array: 3.3
Variansi: 1.368



Perhatikan bahwa metode inisialisasiArray() menghasilkan nilai balik bertipe ArrayList dan metode ini tidak memiliki argumen masukan apapun. Metode hitungRerata() menghasilkan nilai balik bertipe double dan memiliki satu argumen masukan bertipe ArrayList. Metode hitungVariansi menghasilkan nilai balik bertipe double dan memiliki dua argumen masukan: satu bertipe ArrayList dan satu lagi bertipe double.






TUGAS 4

  1. 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. Tuliskan metode untuk membaca nilai-nilai dari user dan metode untuk mencari elemen-elemen array ganjil dan genap.
  2. 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. Tuliskan metode untuk membangkitkan elemen-elemen array 2D secara acak dan metode untuk menghitung variansi temperatur tahunan.

DIKUMPULKAN SABTU TANGGAL 2 DESEMBER 2017




No comments: