2 Array220

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33

Struktur Data

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];

myList[0] references the first element in the array.


myList[9] references the last element in the array.
Declaring and Creating
in One Step
• datatype[] arrayname = new
datatype[arraySize];
double[] myList = new double[10];

• datatype arrayname[] = new


datatype[arraySize];
double myList[] = new double[10];
The Length of Arrays
• Once an array is created, its size is fixed. It
cannot be changed. You can find its size using

arrayVariable.length

For example,
myList.length returns 10
Initializing Arrays
• Using a loop:
for (int i = 0; i < myList.length; i++)
myList[i] = i;

• Declaring, creating, initializing in one step:


double[] myList = {1.9, 2.9, 3.4, 3.5};

This shorthand syntax must be in one


statement.
Declaring, creating, initializing Using
the Shorthand Notation
double[] myList = {1.9, 2.9, 3.4, 3.5};

This shorthand notation is equivalent to


the following statements:
double[] myList = new double[4];
myList[0] = 1.9;
myList[1] = 2.9;
myList[2] = 3.4;
myList[3] = 3.5;
BAHASA JAVA
Creation of Arrays
– After declaring arrays, we need to
allocate memory for storage array items.
– In Java, this is carried out by using
“new” operator, as follows:
• Arrayname = new type[size];
– Examples:
• students = new int[7];

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);

for ( int i=0; i < students.length; i++)


students[i] = 2*i;
System.out.println("Values Stored in Array:");
for ( int i=0; i < students.length; i++)
System.out.println(students[i]);
}
}
:w

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

// StudentArray.java: store integers in arrays and access


public class StudentArray{
public static void main(String[] args) {
int[] students = {55, 69, 70, 30, 80};

System.out.println("Array Length = " + students.length);


System.out.println("Values Stored in Array:");
for ( int i=0; i < students.length; i++)
System.out.println(students[i]);
}
}

18
Two Dimensional Arrays
• Two dimensional
Item1 Item2 Item3
Sold

arrays allows us to Person

store data that are Salesgirl #1 10 15 30

recorded in table. For


example: Salesgirl #2 14 30 33

• 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

 Objective: Use two-dimensional arrays to


create two matrices, and then add and multiply
the two matrices.
 a 11 a 12 a13 a14 a15   b11 b12 b13 b14 b15   a 11  b11 a 12  b12 a13  b13 a 14  b14 a 15  b15 
     
 a 21 a 22 a 23 a 24 a 25
  b 21 b 22 b 23 b 24 b 25
  a 21  b 21 a 22  b 22 a 23  b 23 a 24  b 24 a 25  b 25

 a 31 a 32 a 33 a 34 a 35    b31 b32 b33 b34 b35    a 31  b31 a 32  b32 a 33  b33 a 34  b 34 a 35  b35 
     
 a 41 a 42 a 43 a 44 a 45   b41 b42 b43 b44 b 45   a 41  b 41 a 42  b 42 a 43  b 43 a 44  b 44 a 45  b45 
 a 51 a 52 a 53 a 54 a 55   b51 b52 b53 b54 b55   a 51  b51 a 52  b52 a 53  b53 a 54  b54 a 55  b55 
     

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 = ai1b1j+ai2b2j+ai3b3j+ai4b4j+ai5b5j
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

Students’ Answers to the Questions:


 Objective: write a
0 1 2 3 4 5 6 7 8 9 program that grades
Student 0 A B A C C D E E A D multiple-choice test.
Student 1 D B A B C A E E A D
Student 2 E D D A C B E E A D
Student 3 C B A E D C E E A D Key to the Questions:
Student 4 A B D C C D E E A D
Student 5 B B E C C D E E A D 0 1 2 3 4 5 6 7 8 9
Student 6 B B A C C D E E A D
Student 7 Key D B D C C D A E A D
E B E C C D E E A D

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

Sebuah perusahaan permen mempunyai 2 buah gudang, di


Jakarta dan di Bandung, masing-masing menyimpan maksimum
25 jenis permen. Tiap jenis permen mempunyai nomor kode
produksi yang unik. Buatlah algoritma untuk membaca nomor
kode produksi permen yang ada di gudang Jakarta lalu
menyimpannya dalam sebuah array. Ulangi proses ini untuk
gudang di Bandung dan simpan dalam array yang lain. Bacalah
kedua array itu untuk menemukan dan menampilkan potongan
(intersection) dari kedua array, maksudnya semua nomor kode
produksi yang sama di kedua array.
Latihan soal no 4
• Diketahui ada 3 array linier masing-masing terdiri
dari 12 komponen. Array pertama berisi banyaknya
hari dalam tiap bulan dalam 1 tahun, array yang ke
dua berisi banyaknya hari libur dalam tiap bulan
dalam 1 tahun. Array yang ketiga berisi banyaknya
hari kerja dalam tiap bulan dalam 1 tahun (selisih
dari array pertama dan array ke dua). Buatlah
algoritma dan program JAVA untuk membuat ke 3
array tersebut dan menampilkan hasilnya dalam
bentuk tabel.
REHAT SEJENAK

You might also like