2 Array220
2 Array220
2 Array220
TK13024
Pertemuan 2a
Struktur Data ARRAY
Objektif
• Memahami cara mendeklarasi dan operasi
struktur data Array dalam bahasa Java
• Memahami cara menggunakan struktur data
Array 1 dimensi dan 2 dimensi
• Dapat membuat algoritma dan program Java
untuk aplikasi array sorting dan searching
Array
• Definisi: sekelompok lokasi memori yang
berurutan yang mempunyai nama dan
tipe data yang sama.
• Untuk menunjuk lokasi atau elemen
tertentu dalam array digunakan nama
array dan nomor posisi atau indeks atau
subscript dari elemen tersebut dalam
array.
Arrays - Introduction
0 69
1 61
index
2 70
3 89 Values/element
4 23
5 10
6 9
4
Review
BAHASA C++
Declaring Array Variables
• datatype[] arrayname;
Example:
double[] myList;
• datatype arrayname[];
Example:
double myList[];
Creating Arrays
arrayName = new datatype[arraySize];
Example:
myList = new double[10];
arrayVariable.length
For example,
myList.length returns 10
Initializing Arrays
• Using a loop:
for (int i = 0; i < myList.length; i++)
myList[i] = i;
13
Initialisation of Arrays
• Once arrays are created, they need to be initialised
with some values before access their content. A
general form of initialisation is:
– Arrayname [index/subscript] = value;
• Example:
• students[0] = 50; students[1] = 40;
• Like C, Java creates arrays starting with subscript 0
and ends with value one less than the size specified.
• Unlike C, Java protects arrays from overruns and
under runs. Trying to access an array beyond its
boundaries will generate an error message
(IndexOutOfBoundException).
14
Arrays: Length
• Arrays are fixed length
• Length is specified at create time
• In Java, all arrays store the allocated size in a variable
named “length”.
• We can access the length of arrays as
arrayName.length:
e.g. int x = students.length; // x = 7
• Accessed using the index
e.g. int x = students [1]; // x = 40
15
Arrays – Example
// StudentArray.java: store integers in arrays and access
public class StudentArray{
public static void main(String[] args) {
int[] students;
students = new int[7];
System.out.println("Array Length = " + students.length);
16
Arrays – Initializing at Declaration
• Arrays can also be initialised like standard
variables at the time of their declaration.
– Type arrayname[] = {list of values};
• Example:
int[] students = {55, 69, 70, 30, 80};
• Creates and initializes the array of integers of
length 5.
• In this case it is not necessary to use the new
operator.
17
Arrays – Example
18
Two Dimensional Arrays
• Two dimensional
Item1 Item2 Item3
Sold
• Table contains 12
items, we can think of Salesgirl #3 200 32 1
this as a matrix
consisting of 4 rows Salesgirl #4 10 200 4
and 3 columns.
19
2D arrays manipulations
• Declaration:
– int myArray [][];
• Creation:
– myArray = new int[4][3]; // OR
– int myArray [][] = new int[4][3];
• Initialisation:
– Single Value;
• myArray[0][0] = 10;
– Multiple values:
• int tableA[2][3] = {{10, 15, 30}, {14, 30, 33}};
• int tableA[][] = {{10, 15, 30}, {14, 30, 33}};
20
Adding and Multiplying Two Matrices
TestMatrixOperation
Adding and Multiplying Two Matrices (2)
a 11 a 12 a 13 a 14 a 15 b11 b12 b13 b14 b15 c11 c12 c13 c14 c15
a 21 a 22 a 23 a 24 a 25 b 21 b 22 b 23 b 24 b 25 c 21 c 22 c 23 c 24 c 25
a 31 a 32 a 33 a 34 a 35 b31 b32 b33 b34 b35 c 31 c 32 c 33 c 34 c 35
a 41 a 42 a 43 a 44 a 45 b 41 b 42 b 43 b 44 b 45 c 41 c 42 c 43 c 44 c 45
a 51 a 52 a 53 a 54 a 55 b51 b52 b53 b54 b55 c 51 c 52 c 53 c 54 c 55
cij = ai1b1j+ai2b2j+ai3b3j+ai4b4j+ai5b5j
Algoritma menjumlahkan dan
mengalikan array matriks
• (Lihat Bab 5 mk Intro to Alg semester 1)
VOID TAMBAH(MAT_1[] [],MAT_2[] [], MAT3& [] [], B, K)
Fungsi untuk melakukan operasi penambahan antara 2 buah
matriks, MAT_1 dan MAT_2 yang masing-masing berukuran B X K.
Hasil operasi disimpan dalam matriks MAT_3. Matriks MAT_1, MAT2
dan MAT_3 bertipe real. Variabel I, J, B dan K bertipe integer.
{
1. [melakukan operasi penambahan]
For ( I = 0 ; I < B ; I++ )
{ For ( J = 0 ; J < K ; J++ )
{ MAT_3[I] [J] = MAT_1[I] [J] + MAT_2[I] [J]
}
}
}
Algoritma menjumlahkan dan
mengalikan array matriks
VOID KALI(MAT_1[] [],MAT_2[] [],MAT_3&[] [],B1,K1,B2,K2)
Syarat agar 2 buah matriks dapat dikalikan adalah K1 = B2.
{
1. [menguji apakah perkalian matriks dapat dilakukan]
If ( K1 B2 )
{ Write (‘Perkalian matriks tidak dapat dilakukan’) }
Else
[melakukan operasi perkalian]
{ For ( I = 0 ; I < B1 ; I++ )
{ For ( J = 0 ; J < K2 ; J++ )
{ SUM = 0
For ( K = 0 ; K < K1 ; K++ )
{ SUM = SUM + MAT_1[I] [K] * MAT_2[K] [J] }
MAT_3[I][J] = SUM }
} }
}
Grading Multiple-Choice Test
Grade Exam
Contoh Aplikasi Array 1 dimensi
1. Sorting: mengurutkan data dalam array
menjadi urut naik dengan metode sorting:
Selection sort, Exchange sort (Bubble sort),
Insertion sort.
2. Searching: menentukan apakah suatu key
berada dalam sekelompok data dengan cara
linear search dan binary search.
(lihat bab 5 mk Intro to Alg di semester 1)
Summary
• Introducing Arrays
• Declaring Array Variables, Creating
Arrays, and Initializing Arrays
• Passing Arrays to Methods
• Copying Arrays
• Multidimensional Arrays
• Search and Sorting Methods
Latihan Soal
Buatlah algoritma dan program Java
untuk semua soal berikut ini.
Untuk menguji program, bangkitkanlah
bilangan acak sesuai keperluan
pengujian
Latihan soal no 1
1. Cara lain untuk menentukan nilai huruf (A, B, C, D atau E) untuk suatu nilai numerik
adalah dengan menggunakan kurva nilai (grading of the curve) yang dihitung dari deviasi
standar sekelompok nilai. Untuk menentukan nilai huruf dengan cara ini digunakan tabel
2.1 di bawah ini.
Tabel 2.1 Menentukan nilai huruf dengan deviasi standar
x = nilai numerik nilai huruf
x < m 32 E
m 32 x < m 12 D
m 12 x < m 12 C
m 12 x < m 32 B
x m 32 A
dengan m adalah nilai rata-rata dan adalah deviasi standar.
Latihan soal no 2
Dalam sebuah percobaan, selalu ada faktor kesalahan pengukuran.
Sebuah teknik yang disebut smoothing dapat digunakan untuk
mengurangi efek dari kesalahan pengukuran tersebut. Diasumsikan
data hasil pengukuran berupa N bilangan real dan disimpan dalam
array B. Sebelum data hasil pengukuran tersebut dianalisis,
dilakukan operasi smoothing untuk setiap data (kecuali untuk data
yang pertama dan data yang terakhir atau V[0] = B[0] dan V[n] =
B[n]) yaitu sebagai berikut:
V[i] = (B[i-1] + B[i] + B[i+1])/3
Dengan V adalah array hasil operasi smoothing.
Buatlah algoritma untuk membaca data hasil pengukuran, lalu
lakukanlah operasi smoothing. Tampilkan data awal dan hasil
operasi smoothingnya.
Latihan soal no 3