array

advertisement
Array dkk
 Tipe data turunan.
 Contoh deklarasi : int x[20];
 SATU variabel untuk menyimpan BANYAK data
dengan TIPE data yang SAMA. Mempunyai INDEKS.
 Struktur data :
 Alokasi memori bersifat statis/ tetap.
 Konsep : string, array multidimensi
4
3
2
1
7
 Program menghitung rata-rata nilai.
 Algoritma :
Deklarasikan variabel array untuk menyimpan data-data
nilai.
 Input data nilai dengan perintah looping. Akses elemen
dengan operator kurung siku ([]).
 Hitung penjumlahan data-data nilai.
 Hitung rata-rata = jumlah total/ jumlah data.
 Tipe data turunan.
 Contoh deklarasi :
struct {
int jari_jari;
float luas;
float keliling;
} lingkaran;
 SATU variabel bisa menyimpan BANYAK data yang
BERBEDA TIPE datanya. Mempunyai ELEMEN.
 Struktur data :
10
314.0
62.8
 Konsep : struct of struct (nested struct).
 Program tentang lingkaran.
 Algoritma :
 Inventarisasi atribut-atribut yang dimiliki oleh sebuah
objek lingkaran.
 Akses masing-masing elemen dengan memakai operator
tanda titik (.).
 Struktur data berupa array yang setiap elemennya
bertipe struct.
 Contoh deklarasi :
struct {
int NPM;
char nama[30];
float IPK;
} mhs[100];
 Struktur data :
100
101
102
103
Abdullah
Budi
Candra
Daud
3.80
3.45
3.22
3.17
 Untuk akses elemen dimulai dari indeks array
kemudian diikuti nama elemennya  mhs[3].NPM =
1234;
 Program data mahasiswa.
 Program tabel fungsi kuadrat.
ARRAY

Array as function parameter

String

Two dimensional array
STRUCT

Array of structure

Unions

Struct as function parameter
Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan
sedikit modifikasi
Review BP
 An array is a special kind of object that is used to
store a collection of data.
 The data stored in an array must all be of the same
type, whether primitive or reference data types.
 For example, we may want to store:
 An array of double values
 An array of int values
13
 Write a Java program that asks the user for 10 exam
scores and displays the average.
 What if you are also required to display all the scores
which are higher than the average?
 What if you are to record 100 scores?
14
import java.util.;
public class ExamScoresForLoop
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner (System.in);
double score;
double total = 0.0;
for(int i = 1; i <= 10; i++)
{
System.out.println("Enter score " + i +":");
score = keyboard.nextDouble();
total = total + score;
}
System.out.println("The average score is " + total/10);
// how to display scores which are greater than average???
}
}
 We need to keep track of each score that is entered by the user in an
efficient manner.
15
 Instead of only storing one score:
score
98.9
0x0010
We need to store a collection of scores, or
what is called an array.
score
0x0h40
0x0h40
0x0010
0x0h41
0x0h42
in this case, score is considered
to be a reference to the array at
the memory address stored.
0x0h43
0x0h44
98.9
50.5
75.0
59.5
65.4
16
 Once an array has been declared, we can store and
access data in it.
 We must specify the index representing the position
of the data.
 The index always begins from 0.
score
98.9
0
50.5
75.0
1
59.5
3
65.4
4
2
Index representing
position of the data
score[0]
score[3]
17
 An array is declared by:
 specifying the type of data it will hold
 specifying the name of the array with an identifier
 including square brackets [ ]
 Syntax:
<data type>[] <identifier>;
 Examples
int[] num;
// an array of ints
double[] score;
// an array of doubles
Student[] st;// an array of Student
objects
18
 In Java, the array is an object and must be
instantiated with its size.
 Syntax:
<identifier> = new <data type>[<size>];
 Therefore, an array may be declared and
instantiated in one statement:
int[] num = new int[10];
//creates an array to store 10 integers
 It may also be instantiated in two steps:
int[] num;
num = new int[10];
19
 An array can also be created by using an initializer list
that fills in the values of the elements in the array in one
line.
 When an initializer list is used, the new operator and size
of the array are not specified.
 Examples:
int[] num = {3, 6, 5, 7, 2, 8, 10, 20}
char[] letterGrades = {'A', 'B', 'C', 'D',
'F'}
20
 An array that has been instantiated has a fixed
size.
 int[] num = new int[10] has array elements from
num[0] to num[9] only.
 The Java interpreter will indicate an out-of-bounds
error at run-time if the array index is not valid.
 Each array object has an attribute length that
stores the size of the array, or the number of
elements.
 Therefore an array will have valid indices from 0 to
(length-1) only.
21
 We can use a for loop to traverse the array
 For example, we may display each element of the
array:
for (int i = 0; i < maks; i++)
{
System.out.println(data[i]);
}
 We may even use a for loop to allow the user to
enter the elements of the array via interactive
input.
22
 We may need to check if an element is in the array:
 We can use the following logic to check whether a name
that the user enters is in the array of names declared and
filled earlier:
 ask user for the required name
 Start from i = 0
 assume that it is not found
 While the required name is not found and i < length of
array
 if the value at position i corresponds to the required name
 then the name is found
 otherwise,
 check the next element (i = i + 1)
23
 We often need to perform calculations using some
or all of the elements of the array:
 total of all elements
 the average
 the element with the largest or smallest value
 Assume that an array of double values has been
declared and filled:
double[] score = new double[10];
24
 In order to find the total, we must initialize and keep track
of the running total.
 The total is then used to calculate the average.
double total = 0.0;
for (int i = 0; i < score.length; i++)
{
total = total + score[i];
}
System.out.println("The total is " + total);
double avg = total / score.length;
System.out.println("The average is " + avg);
25
 Arrays can be used as parameters in methods: the
entire array is passed to the method.
 For example, write a method findEmp that
receives two parameters:
 the first parameter is an array of Strings representing
names of employees
 the second parameter is a String representing the name
of the employee required
 The method should return the position of the
employee whose name is found based on the
second parameter.
26
 The method can be defined as follows:
public static int findEmp(String[] name, String wanted)
{
for(int i = 0; i < name.length; i++)
if (wanted.equalsIgnoreCase(name[i]))
return i;
// found at pos i
return -1;
// not found
}
27
 Arrays can also be returned by methods, as long
as the array type is specified as the return type.
 The following method takes as input an array of
Strings and returns another array with the
lengths of each of the Strings in the array.
public static int[] findLengths(String[] strArray)
{
int[] strLength = new int[strArray.length];
for (int i = 0; i < strArray.length; i++)
strLength[i] = strArray[i].length();
return strLength;
}
28
 All elements in an array are automatically
initialised with default values.
 An array of numeric data has default elements
with value 0
double[] score = new double[10];
all elements in score will have value 0.0
 Arrays of boolean will be initialized to false.
 Arrays of reference data types will be initialized to
null.
29
Review BP
 Class adalah template untuk pembuatan obyek
 Class memiliki anggota :
 Atribut
 Method
 A Java console application must consist of one class
that has the following structure:
/* This is a sample program only.
Written by:
multi-line comments
Date:
*/
name of the class
public class SampleProgram
{
public static void main(String [] args)
{
in-line
statements
int num1 = 5;
// num stores 5
comments
System.out.print("num1 has value ");
to be
System.out.println(num1);
executed
}
}
 A Java console application must consist of one class
that has the following structure:
/* This is a sample program only.
Written by:
Date:
*/
class header
public class SampleProgram
{
public static void main(String [] args)
{
int num1 = 5;
// num stores 5
System.out.print("num1 has value ");
System.out.println(num1);
}
}
main
method
class BankAccount
{
private double balance; // account balance
public BankAccount(double openingBalance) {
// constructor
balance = openingBalance;
}
public void deposit(double amount) {
// makes deposit
balance = balance + amount;
}
public void withdraw(double amount) {
// makes withdrawal
balance = balance – amount;
}
public void display(){
// displays balance
System.out.println("balance=" + balance);
}
} // end class BankAccount
class BankApp
{
public static void main(String[] args)
{
// create acct
BankAccount ba1 = new BankAccount(100.00);
System.out.print("Before transactions, ");
// output : Before transactions, balance=100
ba1.display(); // display balance
ba1.deposit(74.35); // make deposit
ba1.withdraw(20.00); // make withdrawal
System.out.print("After transactions, ");
// output : After transactions, balance=154.35
ba1.display(); // display balance
} // end main()
} // end class BankApp
Download