Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

25
Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi

Transcript of Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Page 1: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Review BP

Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit

modifikasi

Page 2: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

ARRAYReview BP

Page 3: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

3

Arrays

• 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

Page 4: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

4

The Need for Arrays

• 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?

Page 5: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

5

The Problem:

• We need to keep track of each score that is entered by the user in an efficient manner.

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???}

}

Page 6: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

6

Using Arrays

• Instead of only storing one score:score

0x0010

We need to store a collection of scores, or what is called an array.

score0x0010

0x0h40

0x0h41

0x0h42

0x0h43

0x0h44

98.9

98.9

50.5

75.0

59.5

65.4

0x0h40

in this case, score is considered to be a reference to the array at the memory address stored.

Page 7: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

7

Accessing Array Elements• 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

50.5

75.0

59.5

65.4

0

1

2

3

4

Index representing position of the data

score[0]

score[3]

Page 8: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

8

Declaring Arrays• 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>;

• Examplesint[] num; // an array of intsdouble[] score; // an array of doubles Student[] st; // an array of Student objects

Page 9: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

9

Creating Arrays• 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];

Page 10: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

10

Initializer Lists• 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'}

Page 11: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

11

Bounds Checking• 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.

Page 12: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

12

Traversing Arrays

• 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.

Page 13: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

13

Searching an Array• 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)

Page 14: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

14

Calculations

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

Page 15: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

15

Finding the Total and Average

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

Page 16: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

16

Arrays and Methods

• 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.

Page 17: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

17

Arrays as Parameters

• 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}

Page 18: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

18

Arrays as Returned Objects• 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;

}

Page 19: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

19

Initial Values of Array Elements

• 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.

Page 20: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

CLASSReview BP

Page 21: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

• Class adalah template untuk pembuatan obyek

• Class memiliki anggota :– Atribut– Method

Page 22: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Anatomy of a Java Class

• A Java console application must consist of one class that has the following structure:

/* This is a sample program only. Written by: Date: */public class SampleProgram{

public static void main(String [] args){

int num1 = 5; // num stores 5System.out.print("num1 has value ");

System.out.println(num1);}

}

multi-line comments

in-linecomments

name of the class

statementsto be executed

Page 23: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Anatomy of a Java Class

• A Java console application must consist of one class that has the following structure:

/* This is a sample program only. Written by: Date: */public class SampleProgram{

public static void main(String [] args){

int num1 = 5; // num stores 5System.out.print("num1 has value ");

System.out.println(num1);}

}

class header

mainmethod

Page 24: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Contoh class tabunganclass 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

Page 25: Review BP Dari slide pak cahyo pertemuan 7 dan pertemuan 2 dengan sedikit modifikasi.

Contoh penggunaan class tabungan

class BankApp{ public static void main(String[] args) {

// create acctBankAccount ba1 = new BankAccount(100.00); System.out.print("Before transactions, ");// output : Before transactions, balance=100ba1.display(); // display balanceba1.deposit(74.35); // make depositba1.withdraw(20.00); // make withdrawalSystem.out.print("After transactions, ");// output : After transactions, balance=154.35ba1.display(); // display balance

} // end main()} // end class BankApp