dasar-dasar pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 tujuan...
TRANSCRIPT
![Page 1: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/1.jpg)
Dasar-Dasar Pemrograman
Fakultas Ilmu Komputer, Universitas IndonesiaVersion 3.0 - Internal Use Only
Arrays and ArrayLists
subtitle
![Page 2: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/2.jpg)
2
Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists
Mempelajari mengenai wrapper classes, auto boxing, dangeneralized for loop
Mengetahui beberapa algoritma array
Mempelajari bagaimana cara menggunakan two-dimensional arrays
Memahami perbedaan penggunaan arrays dan array lists pada program
Mengimplementasikan arrays yang terisi secara parsial
![Page 3: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/3.jpg)
3
Arrays
Digunakan ketika kita ingin menyimpan beberapa data yang memiliki tipe yang sama.
Deklarasi array (array adalah object)
double[] array1;
Cara membuat sebuah object array yang berisi 10 elemenbertipe double :
array1 = new double[10];
int[] array2 = {1, 3, 5, 7};
Nilai yang disimpan pada array bergantung pada tipe dari array tersebut.
![Page 4: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/4.jpg)
4
Deklarasi Arrays
Big Java by Cay HorstmannCopyright © 2009 by John Wiley & Sons. All rights
reserved.
![Page 5: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/5.jpg)
5
Akses Arrays
Elemen pada array diakses melalui indeks
Indeks menunjukkan posisi elemen pada array
Gunakan simbol “[]” untuk mengakses sebuah elemenpada array : values[2] = 29.95;
Indeks dimulaidari nol
Indeks terakhirdi ukuran array - 1
![Page 6: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/6.jpg)
6
Sintaks Arrays
![Page 7: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/7.jpg)
7
Arrays
Menggunakan nilai yang disimpan pada array :
System.out.println(“Nilai elemen ketiga adalah " + values[2]);
Panjang dari array (banyaknya data yang disimpan)
values.length bukan sebuah method!
Mengakses elemen yang tidak ada akan menghasilkan error
double[] values = new double[10];
values[10] = 29.95; // ERROR
Keterbatasan : Panjang array tetap
![Page 8: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/8.jpg)
8
Self Check
What elements does the data array contain after the following statements?
double[] values = new double[10];
for (int i = 0; i < values.length; i++)
values[i] = i * i;
Answer: 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, but not 100
![Page 9: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/9.jpg)
9
Arrays of Objects
Kita dapat membuat array yang memiliki tipe objects
BankAccount[] accounts = new BankAccount[10];
accounts[3] = new BankAccount(…);
![Page 10: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/10.jpg)
10
Don’t: Parallel Arrays!
Jangan memisahkan data yang merupakan suatu kesatuan di array yang berbeda.
Gunakan arrays of objects!
Why?
Apabila kita ingin menambahkan accountName, hanya class BankAccount saja yang perlu diubah
![Page 11: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/11.jpg)
11
ArrayLists
Data yang dapat disimpan pada array terbatas
ArrayLists
Menyimpan sekumpulan objects
Dapat membesar dan mengecil sesuai kebutuhan
Menyediakan beberapa methods, contohnya untukmenyimpan dan menghapus data
Deklarasi sebuah ArrayList:
ArrayList<T> names = new ArrayList<T>();
akan menyimpan objects yang memiliki tipe T.
Method size() digunakan untuk mengembalikan jumlahelemen
![Page 12: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/12.jpg)
12
Menambahkan elemen
Untuk menambahkan sebuah object di akhir arraylist, gunakan method add :
names.add("Emily");
names.add("Bob");
names.add("Cindy");
![Page 13: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/13.jpg)
13
Mengakses elemen
Gunakan method get()
String name = names.get(2);
// gets the third element of the arraylist
Most common bound error :
int i = names.size();
name = names.get(i); // Error
// legal index values are 0 ... i-1
![Page 14: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/14.jpg)
14
Mengatur dan Menghapus Elemen
Gunakan set() method untuk mengubah elemen:
names.set(2, "Carolyn");
Gunakan remove() method untuk menghapus elemen padaindeks tertentu:
names.remove(1);
![Page 15: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/15.jpg)
15
Menambah dan Menghapus Elemen
names.add("Emily"); names.add("Bob"); names.add("Cindy");names.set(2, "Carolyn");
names.add(1, "Ann");
names.remove(1);
![Page 16: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/16.jpg)
16
ArrayList<String> names =new ArrayList<String>();
Constructs an empty arraylist that can hold strings.
names.add("Ann");names.add("Cindy");
Adds elements to the end.
System.out.println(names); Prints [Ann, Cindy].
names.add(1, "Bob"); Inserts an element at index 1. names is now [Ann, Bob, Cindy].
names.remove(0); Removes the element at index 0. names is now [Bob, Cindy].
names.set(0, "Bill"); Replaces an element with a different value. names is now [Bill, Cindy].
Big Java by Cay HorstmannCopyright © 2009 by John Wiley & Sons. All rights
reserved.
Penggunaan ArrayLists
![Page 17: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/17.jpg)
17
String name = names.get(i); Gets an element.
String last =names.get(names.size() - 1);
Gets the last element.
ArrayList<Integer> squares =new ArrayList<Integer>();
for (int i = 0; i < 10; i++){
squares.add(i * i);}
Constructs an arraylist holding the first ten squares.
Big Java by Cay HorstmannCopyright © 2009 by John Wiley & Sons. All rights
reserved.
Penggunaan ArrayLists
![Page 18: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/18.jpg)
18
Wrapper Class
Bagaimana apabila kita ingin menyimpan tipe primitive padaArrayList?
Java menyediakan wrapper class untuk menyimpan data dengan tipe primitive dalam bentuk objects.
Double d = new Double(29.95);
Wrapper class dapat digunakan ketika data yang ingindisimpan harus bertipe objects
ArrayList<Double> data = new ArrayList<Double>();
data.add(29.95);
double x = data.get(0);
![Page 19: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/19.jpg)
19
Wrappers
![Page 20: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/20.jpg)
20
Auto-boxing / Auto-unboxing
Auto-boxing merupakan konversi otomatis antara tipeprimitive dengan wrapper class yang berkesesuaian :
Double d = 29.95;
// auto-boxing; same as
// Double d = new Double(29.95);
double x = d;
// auto-unboxing; same as
// double x = d.doubleValue();
![Page 21: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/21.jpg)
21
Auto-boxing juga bekerja pada arithmetic expressions :
Double d = new Double(12.8);
d = d + 1;
Sama dengan :
auto-unbox d into a double
add 1
• auto-box the result into a new Double store a reference to the newly created wrapper object in d
Auto-boxing pada Expression
![Page 22: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/22.jpg)
22
Auto-boxing dan ArrayLists
Untuk menyimpan tipe data numerik dalam ArrayList, gunakan tipe wrapper sebagai parameter type:
ArrayList<Double> values = new ArrayList<Double>();
values.add(29.95);
double x = values.get(0);
Menyimpan wrapped numbers tidak efisien
Dapat digunakan apabila data yang disimpan tidak besar
Gunakan arrays untuk menyimpan data angka yang besar
![Page 23: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/23.jpg)
23
Self Check
Suppose values is an ArrayList<Double> of size > 0. How do you increment the element with index 0?
values.set(0, values.get(0) + 1);
![Page 24: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/24.jpg)
24
The Enhanced for Loop
Untuk melakukan iterasi pada suatu koleksi data
double[] values = ...;
double sum = 0;
for (double element : values)
{
sum = sum + element;
}
sama dengan
for (int i = 0; i < values.length; i++)
{
sum = sum + values[i];
}
![Page 25: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/25.jpg)
25
Dapat digunakan pula pada ArrayList
ArrayList<BankAccount> accounts = ...;
double sum = 0;
for (BankAccount account : accounts)
{
sum = sum + account.getBalance();
}
ekivalen dengan :
for (int i = 0; i < accounts.size(); i++)
{
BankAccount account = accounts.get(i);
sum = sum + account.getBalance();
}
![Page 26: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/26.jpg)
26
The Enhanced for Loop
“for each loop” tidak memperbolehkan kita untuk mengubahkonten dari sebuah array.
for (double element : values)
{
element = 0;
// ERROR—this assignment does not
// modify array element
}
Gunakan for loop tradisional!
![Page 27: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/27.jpg)
27
Self Check
Write a “for each” loop that prints all elements in the array values.
Answer:
for (double element : values){
System.out.println(element);
}
![Page 28: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/28.jpg)
28
Self Check
Apa yang dilakukan oleh “for each loop” berikut?
int counter = 0;
for (BankAccount a : accounts)
{
if (a.getBalance() == 0) { counter++; }
}
Answer: It counts how many accounts have a zero balance
![Page 29: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/29.jpg)
29
Partially Filled Arrays
Array length: jumlah maksimum elemen pada array
Umumnya, array hanya terisi setengah penuh
Kita perlu mencatat ukuran array yang sebenarnya
Gunakan penamaan yang sesuai:
final int VALUES_LENGTH = 100; double[] values = new double[VALUES_LENGTH]; int valuesSize = 0;
Update valuesSize ketika menambahkan sebuah elemen:
values[valuesSize] = x; valuesSize++;
![Page 30: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/30.jpg)
30
Partially Filled Arrays (Example)
![Page 31: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/31.jpg)
31
Self Check
Buatlah sebuah iterasi untuk mencetak elemen pada sebuaharray values dalam urutan yang terbalik, mulai dari elementerakhir. Jumlah elemen disimpan di variabel valuesSize
Answer:
for (int i = valuesSize - 1; i >= 0; i--)
System.out.println(values[i]);
![Page 32: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/32.jpg)
32
Self Check
How do you remove the last element of the partially filled array values?
Answer:
• valuesSize--;
![Page 33: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/33.jpg)
33
ARRAY ALGORITHMS
![Page 34: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/34.jpg)
34
Mencari Nilai Maksimum/Minimum
Tentukan sebuah elemen sebagai elemen awal
Kandidat?
Bandingkan dengan elemen lainnya
Perbarui nilai apabila menemukan nilai yang lebih besar/kecil
values[0]
values[1]
values[2]
values[3]
…
values[length-1]
max = values[0]1
2 compare
![Page 35: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/35.jpg)
35
Filling
Isi array dengan nilai nol:
for (int i = 0; i < values.length; i++)
{
values[i] = 0;
}
Isi arraylist dengan angka kuadrat
for (int i = 0; i < values.size(); i++)
{
values.set(i, i * i);
}
![Page 36: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/36.jpg)
36
Sum and Average
Untuk menghitung jumlah dari seluruh elemen, simpandalam sebuah variabel yang terus menerus diperbarui:
double total = 0;
for (double element : values)
{
total = total + element;
}
Untuk menghitung rata-rata, bagi dengan jumlah elemen
double average = total / values.size();
// for an array list
Pastikan bahwa jumlah elemen tidak nol!
![Page 37: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/37.jpg)
37
Counting Matches
public int count(double atLeast)
{
int matches = 0;
for (BankAccount account : accounts)
{
if (account.getBalance() >= atLeast) matches++; //Found a match
}
return matches;
}
![Page 38: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/38.jpg)
38
Mencari Sebuah Nilai
Cek semua elemen hingga menemukan elemen yang diinginkan
Contoh:
public BankAccount find(int accountNumber)
{
for (BankAccount account : accounts)
{
if (account.getAccountNumber() == accountNumber)
// Found a match
return account;
}
return null; // No match in the entire array list
}
![Page 39: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/39.jpg)
39
Menghapus elemen
ArrayList gunakan method remove
Array yang tidak terurut
1. Ganti elemen yang dihapus dengan elemen terakhir padaarray
2. Decrement variabel yang menyimpan ukuran array
values[pos] = values[valuesSize - 1];
valuesSize--;
![Page 40: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/40.jpg)
40
Removing an Element
Array terurut
1. Pindahkan semua elemen setelah elemen yang dihapus keindeks yang lebih awal
2. Decrement variabel yang menyimpan ukuran array
for (int i = pos; i < valuesSize - 1; i++)
{
values[i] = values[i + 1];
}
valuesSize--;
![Page 41: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/41.jpg)
41
Removing an Element
![Page 42: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/42.jpg)
42
Inserting an Element
ArrayList gunakan method add
Array tidak terurut:
Masukkan elemen di indeks terakhir array
Increment variabel yang menyimpan ukuran array
if (valuesSize < values.length)
{
values[valuesSize] = newElement;
valuesSize++;
}
![Page 43: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/43.jpg)
43
Inserting an Element
Array terurut
Mulai dari akhir array, pindahkan elemen satu per satu keindeks yang lebih tinggi, hingga sampai di posisi dimanaelemen baru akan diletakkan
Masukkan elemen di posisi tersebut
Increment variabel yang menyimpan ukuran array
if (valuesSize < values.length)
{
for (int i = valuesSize; i > pos; i--)
{
values[i] = values[i - 1];
}
values[pos] = newElement;
valuesSize++;
}
![Page 44: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/44.jpg)
44
Inserting an Element
![Page 45: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/45.jpg)
45
Menyalin Array
Menyalin (copy) sebuah array akan mengakibatkan adanyareference lain ke array tersebut
double[] values = new double[6];
. . . // Fill array
double[] prices = values;
![Page 46: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/46.jpg)
46
Menyalin Array
Untuk membuat salinan dari sebuah array, gunakan method Arrays.copyOf:
double[] prices = Arrays.copyOf(values, values.length);
![Page 47: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/47.jpg)
47
Memperbesar Array
Untuk memperbesar sebuah array, gunakan method Arrays.copyOf:values = Arrays.copyOf(values, 2 * values.length);
![Page 48: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/48.jpg)
48
Array Dua Dimensi
Ketika membuat sebuah array dua dimensi, spesifikasikanjumlah baris dan kolom yang diinginkan
final int ROWS = 3;
final int COLUMNS = 3;
String[][] board = new String[ROWS][COLUMNS];
Akses elemen dengan pasangan indeks
board[1][1] = "x";
board[2][1] = "o";
![Page 49: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/49.jpg)
49
Traversing Two-Dimensional Arrays
Gunakan dua nested loops ketika ingin mengunjungi array dua dimensi:
for (int i = 0; i < ROWS; i++)
for (int j = 0; j < COLUMNS; j++)
board[i][j] = " ";
![Page 50: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/50.jpg)
50
Traversing Two-Dimensional Arrays
Kita juga dapat menggunakan dimensi array dari variabelarray:
• board.length is the number of rows
• board[0].length is the number of columns
Sehingga, loop dapat juga dituliskan menjadi:
for (int i = 0; i < board.length; i++)
for (int j = 0; j < board[0].length; j++)
board[i][j] = " ";
![Page 51: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/51.jpg)
51
Key Learning Points Arrays digunakan untuk menyimpan sekumpulan data yang
memiliki kesamaan tipe
ArrayLists digunakan untuk menyimpan sekumpulan objects
Ukuran dari ArrayLists bersifat fleksibel, ukuran arrays adalah tetap
Class ArrayList menyediakan beberapa method untukmelakukan operasi pada ArrayList
Gunakan wrapper class ntuk menyimpan tipe data primitive dalam ArrayLists
![Page 52: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/52.jpg)
52
Tugas Membaca
Chapter 6. Arrays and Array Lists
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
![Page 53: Dasar-Dasar Pemrograman - ir.cs.ui.ac.idir.cs.ui.ac.id/alfan/ddp2/ddp2-06-array-v2.pdf · 2 Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai](https://reader030.vdocuments.us/reader030/viewer/2022020416/5cd5a2d288c993eb0d8c718e/html5/thumbnails/53.jpg)
53
What’s next?
Chapter 7. Designing Classes