Download OOP Java

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
OOP Java
04 Array & String
Pokok Bahasan



Reference
Array
String
Reference





Seperti kita ketahui ada 8 tipe primitif di java :
boolean, char, byte, short, int, long, float dan double.
Semua tipe selain tipe primitif adalah Objek,
diantaranya : array dan string.
Variabel yg menunjuk pada objek disebut reference
variables
Passing parameter pada method untuk semua tipe
data di java selalu by value, kecuali pada tipe data
object digunakan by reference
Method dapat menerima parameter berupa objek,
juga dapat mengembalikan (return) sebuah objek
Array (1)


Mengapa kita membutuhkan array ?
c: tanpa array
import java.util.Random;
public class Ratarata {
public static void main(String[] args) {
Random rnd = new Random();
int bil1, bil2, bil3, bil4, bil5;
float rata;
bil1 = Math.abs(rnd.nextInt()) % 100 + 1;
bil2 = Math.abs(rnd.nextInt()) % 100 + 1;
bil3 = Math.abs(rnd.nextInt()) % 100 + 1;
bil4 = Math.abs(rnd.nextInt()) % 100 + 1;
bil5 = Math.abs(rnd.nextInt()) % 100 + 1;
System.out.println(bil1+" "+bil2+" "+bil3+" "+bil4+" "+bil5);
rata = (float) (bil1 + bil2 + bil3 + bil4 + bil5)/5;
System.out.println("Rata-rata : " + rata);
}
}
Array (2)

c: dengan array
import java.util.Random;
public class Ratarata2 {
public static void main(String[] args) {
Random rnd = new Random();
int[] bil = new int[5];
float rata;
int c;
rata = 0;
for (c=0; c<5; c++) {
bil[c] = Math.abs(rnd.nextInt()) % 100 + 1;
System.out.print(bil[c] + " ");
rata = rata + bil[c];
}
rata = rata / 5;
System.out.println("\nRata-rata bilangan : " + rata);
}
}
Array (3)





Bagaimana jika terdapat 100 data ?
Dengan menggunakan array program menjadi
lebih ringkas dan mudah dimaintain.
Array : kumpulan data bertipe sama.
Kita dapat membuat array untuk semua tipe,
baik primitif, maupun kelas/objek.
Contoh deklarasi array :
int[] one, two, three;
int four[], five[][], six;
Mahasiswa[] mhs;
Array (4)

Dari contoh diatas :





one, two, three & four merupakan array 1
dimensi
five merupakan array 2 dimensi
six bukan merupakan array
Cara pertama lebih dianjurkan karena tidak
bercampur antara variabel array, bukan array &
array dengan dimensi berbeda
Deklarasi array belum menunjukkan
ukurannya.
Array (5)





Contoh instansiasi array :
one = new int[5];
four = new int[100];
Mengapa instansiasi array menggunakan operator
new?
Indeks array dimulai dari 0 s/d n-1
Inisialisasi (pemberian nilai) array :
one[0] = 30;
one[3] = 20;
Deklarasi, instansiasi dan inisialisasi dapat digabung
dengan cara :
int[] two = new int[3];
//deklarasi & instansiasi
int[] one = {30, 10, 15, 20, 70};
//+inisialisasi
Array (6)


Array untuk objek dapat dibuat dg cara yg
sama :
1 Mahasiswa[] mhs;
2 mhs = new Mahasiswa[30];
3 for (c=0; c<30; c++)
4
mhs[c] = new Mahasiswa();
Baris 1 & 2 hanya membuat array dari
reference variabel, sehingga objeknya sendiri
harus dibuat kemudian (baris 4).
Array (7)



Contoh array dengan dimensi lebih dari satu :
int[][] five = new int[3][2];
int[] duaD = new int[3][];
duaD[0] = new int[15];
duaD[1] = new int[12];
duaD[2] = new int[20];
Seperti contoh diatas, array dalam java tidak
harus berbentuk segi empat.
Contoh dengan inisialisasi langsung :
int[][] duaD = {{1,2}, {4,3}, {5,6}}; //3x2
Array (8)


Array memiliki atribut length yg menyimpan
panjang array :
int[] one = {7,5,2,4,9,3,4};
n = one.length;
Mulai J2SE 5.0 terdapat cara baru untuk
mempermudah iterasi terhadap array :
int[] one = {7,5,2,4,9,3,4};
for (int element : one)
System.out.println(element);
Array (9)



Ukuran array tidak dapat diubah, tetapi reference
variabelnya dapat dipakai untuk menunjuk ke array
baru :
int[] arrKu = new int[5];
arrKu = new int[10];
(dlm contoh diatas array pertama ‘hilang’)
Kelas System menyediakan method untuk mengcopy
isi array :
int[] source = {1, 2, 3};
int[] dest = {7, 6, 5, 4, 3, 2, 1};
System.arraycopy(source, 0, dest, 0, source.length);
Isi array source mulai indeks 0, akan dicopy ke dest
mulai indeks 0, sebesar ukuran array source,
hasilnya {1, 2, 3, 4, 3, 2, 1}
String (1)


String merupakan kelas khusus di Java, tetapi
instansiasi string tidak perlu menggunakan operator
new.
c: String s = “Hello World”;
String str;
str = “Ini string saya”;
String merupakan sebuah kelas, dan di dalamnya
terdapat beberapa method, misalnya:



s.length() --> panjang string
s.substring(0, 2) --> mengembalikan “He”
(karakter ke 0 sampai ke-2 [bukan sampai dengan])
String (2)


Selain memiliki method, string juga memiliki
operator “+”
String s = “Banyaknya “+ 2; /*konversi “2”*/
int z = 4;
String s = “Ada “ + z + “ buah “;
String s = 5; /*tidak boleh */
Catatan: Literal string merupakan instans dari
objek string:
“Hello”.length() menghasilkan 5
String (3)

Escape sequence String merupakan
serangkaian karakter diawali \ (backslash)
untuk mengetikkan karakter khusus :






\n : newline
\t : karakter tab
\\ : backslash
\” : double quote
\' : single quote (apostrophe)
\udddd: karakter dalam unicode dddd adalah digit
heksadesimal (0-9, A-F)
String (4)



Sifat Immutable String : string sebenarnya
immutable (tidak bisa diubah), dalam :
String a = “hello”;
a = a + “ world”;
Sebuah objek baru diciptakan, objek lama
dibuang (untuk dipungut oleh garbage
collector)
a menunjuk ke objek yang baru
String (5)



Operator perbandingan (==) nilai primitif
membandingkan nilai
Operator == terhadap reference
membandingkan reference (bukan isi objek)
Method .equals() digunakan untuk
membandingkan isi objek (termasuk juga
string)
String a = “Hello”;
String b = “World”;
if (a.equals(b)) { }
String (6)


String yang dapat diubah (mutable) juga tersedia di
java yaitu StringBuffer, contoh :
StringBuffer str = new StringBufer(“Hallo”);
StringBuffer str2 = null;
str2 = new StringBuffer(“Siapa namamu ?”);
StringBuffer str3 = null;
str3 = str2;
Beberapa method dari kelas StringBuffer :







append
insert
charAt
setCharAt
reverse
replace
delete
Berlatihlah membuat program
yang menggunakan array &
String !
Practice Leads to Mastery