# Soal Bab 7 Array
## 7.1 Array

1. (Code Runner) Tuliskan statement yang membuat sebuah array dengan 100 elemen bertipe `int` yang direferensikan oleh variabel `nomorPegawai`.


2. Misalkan terdapat deklarasi array berikut:
```java
int[] nilai = new int[10];
```
Tuliskan statement yang menugaskan nilai 89 ke elemen indeks 5 dari array yang direferensikan oleh `nilai`!
3. Misalkan terdapat deklarasi array berikut:
```java
int[] num = new int[6];
```
Notasi subscript mana yang dapat digunakan untuk mengakses elemen terakhir dari array `num`?
a. `num[0]`
b. `num[5]`
c. `num[6]`
d. `num[-1]`
4. Apa yang harus dilakukan untuk mengalokasikan ruang memori untuk sebuah array?
a. deklarasi nama array
b. menggunakan keyword `new`
c. menggunakan keyword `mem`
d. menggunakan keyword `size`
5. (short answer) Jika terdapat statement inisialisasi array sperti berikut:
```
int[] num = {101, 202, 303, 404, 505, 606};
```
Berapa nilai dari `num[2]`?
## 7.2 Memroses Array






1. (Code Runner) Perhatikan kode berikut:
```java
int[] himpAngka1 = { 1, 3, 6, 9 };
int[] himpAngka2 = { 2, 4, 6, 8 };
int hasil;
```
Tuliskan statement yang mengalikan elemen indeks 0 dari array `himpAngka1` dengan elemen indeks 3 dari array `himpAngka2` dan tugaskan hasilnya ke variabel `hasil`!
Jawab:
```
hasil = himpAngka1[0] * himpAngka2[3];
```
2. (Code Runner: Menyalin array) Perhatikan kode berikut:
```java
int[] a = {1, 2, 3, 4, 5, 6, 7};
int[] b = new int[]
```
Tuliskan kode yang menyalin array `a` ke array `b`!
`b = a` salah. Ini menugaskan alamat array `a` ke variabel `b`. `a` dan `b` akan mereferensikan array yang sama. Cek dengan mengubah suatu nilai elemen array `a` dan bandingkan elemen-elemennya dengan `b`. Jika sama maka salah (karena menggunakan `b = a`). Jika `b` berisi elemen-elemen `a` sebelumnya maka benar.
3. (Short Answer : array length) Misalkan kita mendeklarasikan sebuah array sebagai berikut:
```java
int[] skorUjian = { 87, 78, 93 };
```
Berapa nilai dari `nilaiUjian.length`?
4. (Code Runner GapFill)Tuliskan loop `for` enhanced yang mencetak semua elemen dalam array `nilaiUjian` dalam satu baris (pisahkan nilai antar elemen yang dicetak dengan spasi)!
for ({isian 1} : {isian 2})
{
{isian 3}
}
5. Tuliskan loop yang mengalikan semua elemen dari array `double` yang direferensikan variabel `factor` dan mengakumulasikan hasilnya ke variabel `product`.
## 7.3 Menggunakan Array dengan Method


1. (CR) Perhatikan header method berikut:
```java
public static void myMethod(double[] array)
```
Misalkan kita mempunyai array yang dideklarasikan dengan statement berikut:
```java
double[] angka = new double[100];
```
Tuliskan sebuah statement yang memberikan argument array `angka` ke method `myMethod`!
jawab:
```
myMethod(angka);
```
2. (Code Runner) Tuliskan method bernama `isiArray` yang mengisi semua elemen dari sebuah array `int` dengan nilai yang diberikan sebagai argument. Sebagai contoh, pemanggilan `isiArray(skor, 10)` mengisi semau elemen dari array `skor` dnegan nilai 10.

3. Tuliskan sebuah method `balikArray` yang menerima sebuah array `int` dan mengembalikan array yang elemen-elemennya adalah elemen-elemen dari array yang diberikan dengan urutan terbalik.
Misalkan:
```
int[] himpAngka1 = { 1, 2, 3, 4, 5 };
int[] himpAngka2 = balikArray(himpAngka1);
```
Setelah statement-statement di atas dieksekusi array `himpAngka2` akan berisi elemen-elemen dengan urutan berikut {5, 4, 3, 2, 1}.
jawab:
```java
public static int[] balikArray(int[] array)
{
}
```
## 7.4 Algorima-algoritma Array yang Umum

1. Tuliskan sebuah method `banyakNol` yang menerima sebuah argument array `int` dan mengembalikan banyaknya elemen array yang bernilai 0.
Misalkan, sebuah array diinisialisasi seperti berikut:
```
int[] angka = { 32, 0, 54, 0, 55, 34, 56, 98, 0};
```
maka pemanggilan method:
```
banyakNol(angka)
```
akan mengembalikan banyaknya nilai 0 pada array `angka` yaitu 3.
Jawab:
```java
public static int banyakNol(int[] array)
{
int count = 0;
for (int elemen : array)
{
if (elemen == 0)
{
count++;
}
}
return count;
}
```

Lengkapi loop di bawah sehingga loop tersebut menghitung nilai maksimum dan minimum dari ...

1. Tuliskan method bernama `getAverage` yang menerima sebuah array dan mengembalikan rata-rata dari nilai-nilai semua elemen dalam array tersebut.
Misalkan statement yang memanggil method `getAverage` berikut:
```java
int[] nilaiUjian = { 67, 84, 76, 94, 78, 65 }
double ratarata = getAverage(nilaiUjian);
```
Setelah statement-statement di atas dieksekusi, variabel `ratarata` akan menyimpan rata-rata dari semua elemen dari array `nilaiUjian` yaitu ....
2. (Array terisi sebagian) Tuliskan sebuah method bernama `inputArray` yang meminta pengguna memasukkan angka-angka sampai dengan pengguna memasukkan angka negatif, menyimpan angka-angka yang dimasukkan ke dalam sebuah array, lalu mengembalikan array tersebut.
Misalkan, pemanggilan method `inputArray` dengan statement berikut:
```
```
Jawab:
```java
public static int[] inputArray(
{
int input;
int count = 1;
Scanner keyboard = new Scanner(System.in);
System.out.print("Masukkan angka integer ke-" + count + ": ");
}
```
-->

## 7.5 Array String


## 7.6 Array Multi Dimensi



## 7.7 Command Line Argument
1. Tuliskan sebuah program bernama HasilKali yang menerima berapapun command line argument dan menampilkan hasil perkalian dari semua command line argument tersebut.
Misalkan, jika program dijalankan dengan perintah berikut:
## Lab ACtivity

1. Tuliskan method yang meminta input pengguna berupa angka-angka floting-point positif dan menyimpannya dalam sebuah array.

2. Tuliskan sebuah method bernama `reverseArray` yang menerima sebuah array dan mengembalikan array yang elemen-elemennya mempunyai susunan urutan kebalikan dari array yang diberikan. Misalkan, jika method `reverseArry` dipanggil dengan argument array berisi
`
1 4 9 16 9 7 4 9 11
`
maka array yang dikembalikan dari method `reverseArray` akan berisi:
`
11 9 4 7 9 16 9 4 1
`
Jawab:
```java
public int[] balikArray(int[] arr)
{
}
```


