#4
Tujuan Pertemuan
•
Mahasiswa paham dan mampu
menggunakan reference type.
•
Mahasiswa memahami konsep dan teknik
penggunaan String
•
Mahasiswa memahami konsep dan teknik
penggunaan Array
•
Mahasiswa memahami konsep dan teknik
Dasar Object & Reference
•
Object adalah suatu instance of
(instansi/umpama/perumpamaan) dari
suatu tipe (tapi tipe nonprimitive berupa
suatu class).
•
Object disimpan dalam suatu memory
•
Reference variable menyimpan reference
Reference Variable
•
Reference variable (atau sering disingkat
reference) dalam Java adalah variable
yang dengan suatu cara tertentu
menyimpan alamat memory tempat suatu
object disimpan.
1000 (0,0)
1024 (5,12)
3200 point2 =
1024
3600 point1 =
1000
5124 point3 =
Reference Variable
•
Reference akan selalu menyimpan alamat
memory tempat penyimpanan suatu
object.
Contoh: point1 menyimpan 1000, yang
merupakan alamat memori dari (0, 0).
100
0
point1
102
4
point2
100
0
point3
(0, 0)
(5, 12)
(at 1000)
(at 1024)
1000 (0,0)
1024 (5,12)
3200 point2 =
1024
3600 point1 =
1000
5124 point3 =
Variable
•
Operator yang dapat dipakai oleh variabel dengan
tipe reference (kecuali type String) adalah
▫
operator assignment ( = ) dan
▫
operator equality comparison (== atau != ).
•
Contoh:
point3 = point2;
Dengan demikian maka:
Point3 sekarang berisi 1024,
yaitu;
Alamat dari object (5,12)
SIF1213 - 6
1000 (0,0) 1024 (5,12)
3200 point2 = 1024 3600 point1 = 1000 5124 point3 =
1000
1000 (0,0) 1024 (5,12) 3200 point2 =
1024 3600 point1 =
1000 5124 point3 =
1024
Operations Deals with the
Object
•
Terdapat beberapa kategori operasi
terkait object yang dijadikan referensi
oleh variable tipe reference.
Hanya terdapat 3 aksi yang dapat diberikan
pada object:
1. type conversion.
2. Akses internal field (variable internal) atau
call a method melalui dot operator (.).
The dot operator (.)
•
Dot operator digunakan untuk memilih
method yang diterapkan pada suatu
object.
•
Contoh:
String kalimat="Selamat pagi semua, apakabar hari ini";
char huruf3 = kalimat
.
charAt(3);
Dot
Strings
•
String dalam java akan ditangani secara reference type.
•
String behaves like an object
•
String immutable,
Artinya begitu object string dibuat, isinya tidak bisa berubah.
Contoh:
String empty = “kosong";
String message = "Hello";
String repeat = message;
Berdasarkan kode diatas:
Terdapat 2 string, yaitu;
1.object string
kosong
yang direferensikan
oleh
empty
, dan
2.object string
Hello
yang direferensikan oleh
message
dan
repeat
100
0
Kosong
102
4
Hello
320
0
Empty =
1000
360
0
message =
1024
512
Strings Concatenation
"this" + " that" // Hasilnya "this that"
"abc" + 5 // Hasilnya "abc5"
Strings Comparing
•
Untuk membandingkan kesamaan
(
equality
)
dua object String, digunakan
equals
method.
String lhs = "this";
String rhs = "that";
Boolean sama = lhs.
equals
(rhs) // Hasilnya false
Strings Methods
String greeting = "hello";
int len = greeting
.length
();
// len is 5
char ch = greeting
.charAt
(1);
// ch is 'e'
String Converting/Casting
•
.toString()
•
Konversi primitive type ke String
sourceType.toString(number_val, format);
System.out.println( "55 in base 2: " +
Integer.toString( 55, 2 )
);
•
Konversi String ke number
destType.parseDestType(string);
int x = Integer.parseInt( "75" );
Arrays
•
Array merupakan mekanisme dasar dalam
penyimpanan sekumpulan entitas nilai
yang
memiliki type sejenis
.
•
Tiap entitas dalam array dapat diakses
melalui operator index array, yaitu:
[index]
Arrays Declaration
int [] array1;
array1 = new int [100];
int [] array1 = new int [100];
atau
int [] array1 = { 3, 4, 10, 6 };
atau
Jumlah entitas yg
dapat ditampung
Array
Arrays Assignment
char [] array1 = new char[4];
for(int i=0;i<=3;i++) {
array1[i]=
(char) ('A' + i);
System.
out.println("isi" + i + ": " + array1[i]);
}
char [] array1 = new char[4];
for(int i=0;i<=3;i++) {
array1[i]=
(char) ('A' + i);
System.
out.println("isi" + i + ": " + array1[i]);
}
array[i]= value;
Index tempat
penyimpanan nilai
Arrays
Dynamic Array Expansion
•
Dalam membuat array kita harus menetapkan ukuran
array sehingga kompiler dapat mengalokasikan besaran
memory yang akan dialokasikan bagi array
int [] array1 = new int [10];
•
Teknik
dynamic array expansion
memungkinkan
untuk menentukan ukuran array lebih fleksibel dan
memungkinkan pengaturan besarnya ukuran array saat
run time.
int [] arr = new int[10];
int [] original = arr;
arr = new int [12];
for( int i = 0; i < 10; i++ )
arr[i] = original[i];
original = null;
Ukuran array
Ukuran awal
arr
Dynamic Array Expansion
int [] arr = new int[10];
… ;
int [] original = arr;
arr = new int [12];
for( int i = 0; i < 10; i++ )
arr[i] = original[i];
original = null;
int [] arr = new int[10];
… ;
int [] original = arr;
arr = new int [12];
for( int i = 0; i < 10; i++ )
arr[i] = original[i];
original = null;
(a)Mula2, arr
merepresentasikan 10
integer;
(b)Original
merepresentasikan 10
integer yang sama
dengan arr;
(c) arr merepresentasikan 12
integer, yang sepuluh isi
pertamanya di-copy dari
original; dan
Arrays
Enhanced
for
Loop
& method
length
•
Code di atas akan mencetak isi suatu array
dengan nama arrVariable, setiap satu loop isi
arrVariable akan diisi ke value kemudian value
dicetak.
•
Berdasarkan kode di atas, variable panjang akan
berisi nilai panjang dari array nama, yaitu: 4
for(String value : arrVariable)
System.out.println(value);
for(String value : arrVariable)
System.out.println(value);
String [] nama = {"Budi", "Beni", "Betty", “Randy"};
int panjang = nama.
length;
Enhanced
for
Loop
& method
length
public class allAboutArray {
public static void main(String[] args) {
String [] nama = {"Budi", "Beni", "Betty", “Randy"};
for( String cetak : nama )
System.
out.println(cetak);
System.
out.println("---");
for(int i=0;i<nama.length;i++)
System.
out.println(nama[i]);
Exception Handling
•
Exceptions
digunakan untuk menangani
kejadian eksepsi atau suatu kejadian yang
tidak diharapkan (spt: error)
•
try
block digunakan untuk menguji kode
yang mungkin akan menghasilkan suatu
exception.
•
catch
block digunakan untuk melakukan
proses jika suatu exception terjadi.
•
The
finally
clause selalu dijalankan sebelum
Exception Handling
import java.util.Scanner;
public class exceptionTryCatch {
public static void main( String [] args ){
Scanner in =
new Scanner( System.
in );
int x;
System.
out.println( "Enter an integer: " );
try {
String oneLine = in.nextLine( );
x = Integer.
parseInt( oneLine );
System.
out.println( "Half of x is " + ( x / 2 ) );
}
catch( NumberFormatException e ) {
System.
out.println("anda harus memasukkan angka
bulat");
System.
out.println( e );
}
}
}
import java.util.Scanner;
public class exceptionTryCatch {
public static void main( String [] args ){
Scanner in =
new Scanner( System.
in );
int x;
System.
out.println( "Enter an integer: " );
try {
String oneLine = in.nextLine( );
x = Integer.
parseInt( oneLine );
System.
out.println( "Half of x is " + ( x / 2 ) );
}
catch( NumberFormatException e ) {
System.
out.println("anda harus memasukkan angka
bulat");
System.
out.println( e );
}
}
The Scanner Type
•
Metode termudah untuk membaca
input adalah dengan menggunakan
Scanner
•
Untuk menggunakan scanner perlu
melakukan import sbb:
•
Membuat object type scanner
import java.util.Scanner;
import java.util.Scanner;
The Scanner Type
•
The simplest method for reading formatted input is to use a
Scanner
•
Method:
–
nextLine
: untuk membaca satu baris input
–
next
: untuk membaca input string
–
nextInt
: untuk membaca integer
–
nextDouble
: untuk membaca double
–
hasNextLine
: untuk verifikasi apakah ada input baris berikutnya
(outputnya: boolean)
–
hasNext
: untuk verifikasi apakah ada input string berikutnya
(outputnya: boolean)
–
hasNextInt
: untuk verifikasi apakah ada input integer berikutnya
(outputnya: boolean)
The Scanner Type
FileReader
•
Metode termudah untuk membaca
input dari file teks adalah dengan
FileReader
dan
Scanner
•
Untuk menggunakan scanner perlu
melakukan import sbb:
•
Membuat object type scanner
dengan FileReader
import java.util.Scanner;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.FileReader;
import java.io.FileNotFoundException;
Contoh Penggunaan FileReader
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class bacaFile {
public static void main(String[] args) {
String file = “bio.txt”;
try {
Scanner fs = new Scanner(new FileReader(file));
String isi = fs.nextLine();
System.out.println(isi);
}
}
catch (FileNotFoundException fe) {
System.out.println("Invalid filename. Try another:");
}
}
}
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class bacaFile {
public static void main(String[] args) {
String file = “bio.txt”;
try {
Scanner fs = new Scanner(new FileReader(file));
String isi = fs.nextLine();
System.out.println(isi);
}
}
catch (FileNotFoundException fe) {
System.out.println("Invalid filename. Try another:");
}
Latihan (Tugas)
•
Buat program untuk membaca file teks.
Kemudian tampilkan seluruh isi file teks
tersebut pada Konsol.
•
Kirim ke:
augury.elrayeb@upj.ac.id
See You Next Session