Transcript PBO

String
Object Oriented Programming with JAVA
2011/2012
Penjelasan String
String merupakan tipe data untuk menyimpan
nilai berupa teks.
 String merupakan class (tipe data reference).
 Dalam JDK, class String disimpan dalam
package java.lang sehingga tidak
membutuhkan import statement.
 Seperti class lainnya, String memiliki
constructors dan methods.
 Tidak seperti class lainnya, String memiliki dua
operator, + dan += (digunakan untuk
menggabung String).

Membuat String

Untuk membuat string “Java”, caranya :
◦ String java = “Java”;
◦ String java = new String(“Java”);
◦ char [] j = {'J','a','v','a'};
String java = new String(j);
◦ String s = new String(java);
◦ String tulisan = “Belajar” + “Java”;
◦ int nilai = 80;
String data = “Nilai = ” + nilai;
String v Char

String dapat menyimpan lebih dari satu
karakter (teks).
◦ Char hanya dapat menyimpan satu karakter.

String merupakan tipe data reference.
◦ Char merupakan tipe data primitif.
Literal Strings





adalah object dari class String.
didefinisikan menggunakan double quotes di
awal dan akhir string.
tidak perlu diconstruct dan dapat di-assign ke
variabel.
dapat digunakan sebagai parameter suatu
method atau constructor.
memiliki method yang bisa dipanggil.
Contoh Literal String






//assign literal string ke variabel string
String nama = “Alimun”;
//memanggil method dari literal string
char firstInitial = “Alimun”.length();
//memanggil method dari variabel String
char firstInitial = nama.length();
Menampilkan String
Untuk menampilkan isi dari variabel String
dapat menggunakan perintah print() atau
println().
 Perbedaannya, print() menampilkan String
tanpa ganti baris, sedangkan println()
menampilkan String dengan tambahan ganti
baris diakhir String.

Immutability
Sekali dibuat, string tidak bisa diubah: tidak ada
method yang bisa digunakan untuk mengubah
nilai string.
 Object seperti ini, disebut immutable.
 Immutable objects memiliki sifat yang aman,
sebab beberapa reference akan mengacu ke
object yang sama dengan nilai yang tetap, tanpa
ada kekhawatiran nilai akan berubah

Kerugian dari Immutability

Kurang efisien -- perlu membuat string baru dan
menghapus string lama, meskipun perubahannya minimal
String kata = “java";
char ch = Character.toUpperCase(kata.charAt (0));
kata = ch + kata.substring (1);
kata
“java"
“Java"
Strings Kosong

String kosong tidak memiliki karakter. Panjangnya
0.
String kata1 = "";
String kata2 = new String();

String kosong
Berbeda dengan string yang tidak diinisialisasi
private String errorMsg;
errorMsg
adalah
null
No Argument Constructors

No-argument constructor membuat
string kosong. Jarang digunakan.
String kosong = new String();

Pendekatan yang umum adalah melakukan
assignment suatu variabel dengan literal
string yang kosong.
String kosong = “”;//tidak ada apa2 di antara quotes
Copy Constructors


Copy constructor membuat duplikat dari String yang
telah ada. Juga jarang digunakan
Tidak sama dengan assignment
Copy Constructor: Tiap variabel menunjuk ke object string yang berbeda
String kata = new String(“Java”);
String kata2 = new String(kata);
kata
kata2
“Java"
“Java"
Assignment: kedua variabel menunjuk ke object yang sama
String kata = “Java”;
String kata2 = kata;
kata
kata2
“Java"
Constructors lainnya

Sebagian besar constructor yang lain
menggunakan array bertipe karakter
untuk membuat string
char[] karakter = {‘J’, ‘a’, ‘v’, ‘a’};
String kata = new String(karakter);//”Java”
Method String
Ada banyak method yang dimiliki class String,
diantaranya yang sering banyak di-implementasi
adalah :
1. length()
2. substring()
3. charAt()
4. indefOf
5. toUpperCase()
6. toLowerCase()
Dll.

Methods — Changing Case
String kata2 = kata1.toUpperCase();
String kata3 = kata1.toLowerCase();
◦ returns string baru dari kata1 dimana string yang
baru sudah diubah jadi huruf kecil semua atau huruf
besar semua.
String kata1 = “HeLLo“;
String kata2 = kata1.toUpperCase();//”HELLO”
String kata3 = kata1.toLowerCase();//”hello”
//kata1 tetap “HeLLo“


toUpperCase()



Digunakan untuk konversi atau mengubah
semua karakter String menjadi huruf besar.
Syntax :
Contoh :
public class TestString{
String nama = "cinta UMM";
System.out.println(nama.toUpperCase());
}

Output : CINTA UMM
toLowerCase()



Digunakan untuk konversi atau mengubah
semua karakter String menjadi huruf kecil.
Syntax :
Contoh :
public class TestString{
String nama = “cinta UMM";
System.out.println(nama.toLowerCase());
}

Output : cinta umm
Replacements

Contoh: untuk “mengubah” kata1 menjadi huruf besar,
maka lakukan hal berikut ini:
kata1 = kata1.toUpperCase();
 Kesalahan umum:
kata1.toUpperCase();
kata1 tidak
berubah
Mengubah jadi lower/upper case

Method : toUpperCase atau toLowerCase
Methods — length, charAt

int length();

Mendapatkan panjang string
 Mendapatkan karakter di posisi i
char
charAt(i);
Posisi karakter dimulai pada posisi 0, seperti array.

Returns:
”Problem".length();
7
”Window".charAt (2);
’n'
Akses karakter di posisi tertentu

Method : charAt
Latihan
public class TestString{
String teks = “Aku cinta bahasa pemrograman java";
System.out.println(teks.charAt(10));
System.out.println(teks. charAt(1));
System.out.println(teks. charAt(0));
System.out.println(teks. charAt(teks.length());
System.out.println(teks. charAt(teks.length()-1);
}

Output ????
Latihan
public class TestString{
String teks1 = “Aku cinta java";
String teks2 = “Aku cinta Indonesia";
String teks3 = “Aku cinta UMM";
String teks4 = “Aku cinta programming“;
System.out.println(teks1.length());
System.out.println(teks2.length());
System.out.println(teks3.length());
System.out.println(teks4.length());
}

Output ????
Mencari indeks pertama karakter

Method : indexOf
Methods — Equality

boolean b = kata1.equals(kata2);
◦ returns true jika kata1 sama dengan kata2

boolean b = kata1.equalsIgnoreCase(kata2);
◦ returns true jika string kata1 cocok dengan kata2,
case-blind
b = “Raiders”.equals(“Raiders”);//true
b = “Raiders”.equals(“raiders”);//false
b = “Raiders”.equalsIgnoreCase(“raiders”);//true
if(team.equalsIgnoreCase(“raiders”))
System.out.println(“Go You “ + team);
Membandingkan 2 string

Method : equals atau equalsIgnoreCase
Methods — Comparisons

int diff = kata1.compareTo(kata2);
◦ returns the “difference” kata1 - kata2

int diff = kata1.compareToIgnoreCase(kata2);
◦ returns the “difference” kata1 - kata2,
case-blind
Biasanya programer tidak peduli dengan perbedaan numeric antara
kata1 - kata2, yang diperhatikan biasanya nilai negative, positive
atau nol. Sering digunakan untuk condisional
if(kata1.compareTo(kata2) > 0){
//kata1 setelah kata2…
}
Contoh Comparison
//negative differences
diff = “apple”.compareTo(“berry”);//a before b
diff = “Zebra”.compareTo(“apple”);//Z before a
diff = “dig”.compareTo(“dug”);//i before u
diff = “dig”.compareTo(“digs”);//dig is shorter
//zero differences
diff = “apple”.compareTo(“apple”);//equal
diff = “dig”.compareToIgnoreCase(“DIG”);//equal
//positive differences
diff = “berry”.compareTo(“apple”);//b after a
diff = “apple”.compareTo(“Apple”);//a after A
diff = “BIT”.compareTo(“BIG”);//T after G
diff = “huge”.compareTo(“hug”);//huge is longer
Methods — substring
Mengembalikan string baru dengan meng-kopi serangkaian karakter
dari string yang ada.
television
String subs = kata.substring (i, k);
◦ mengembalikan substring dari posisi
i k
i ke k-1
television
 String subs = kata.substring (i);
◦ mengembalikan substring dari posisi
i
i hingga akhir
Returns:
“lev"
”television".substring (2,5);
“mutable"
“immutable".substring (2);
"" (empty string)
“bob".substring (9);

Latihan
public class TestString{
String teks = “Aku cinta bahasa pemrograman java";
System.out.println(teks.substring(1,5));
System.out.println(teks.substring(5,1));
System.out.println(teks.substring(0,10));
System.out.println(teks.substring(10,teks.length()));
}

Output ????
indexOf()



Digunakan untuk mengetahui nilai index atau
posisi karakter tertentu pada String.
Syntax : variabel_string.indexOf(‘karakter’);
Contoh :
public class TestString{
String nama = "cinta umm";
System.out.println(nama.indexOf(‘a’));
}

Output : 4
(Jika terdapat karakter yang sama dalam String maka yang diambil adalah index
dari karakter yang paling kiri)
Methods — Find (indexOf)
0 2

6
9 11
String nama =“Presiden Soekarno";
Returns:

nama.indexOf (‘P');
0
nama.indexOf (‘e');
2
nama.indexOf (“Soekarno");
nama.indexOf (‘e', 3);
6
nama.indexOf (“Bob");
-1

nama.lastIndexOf (‘e');




11
9
(mulai posisi ketiga)
(ngga ketemu)
Latihan
public class TestString{
String teks = “Aku cinta bahasa pemrograman java";
System.out.println(teks.indexOf(‘m’));
System.out.println(teks.indexOf(‘a’));
System.out.println(teks.indexOf(‘g’));
System.out.println(teks.indexOf(‘ ’));
}

Output ????
Methods — Concatenation

String kata1 = “re”, kata2 = “think”; kata3 = “ing”;
int num = 2;

String result = kata1 + kata2;

◦ //menggabung kata1 dan kata2 “rethink“

String result = kata1.concat (kata2);
◦ //menggabung kata1 dan kata2 “rethink“

result += kata3;
◦ //menggabung kata1 ke result “rethinking”

result += num; //mengubah num menjadi string
//menggabung hasilnya ke result “rethinking2”
Concatenation String
Penggabungan dua String dapat dilakukan
dengan menggunakan operator + (tambah).
 Contoh :

public class TestString{
String teks1= “Aku cinta ";
String teks2= “Bahasa Java";
System.out.println(teks1 + teks2);
}

Output : Aku cinta Bahasa Java
Methods — trim

String kata2 = kata1.trim ();
◦ mengembalikan string baru dari kata1 dengan
menghilangkan white space di awal dan di akhir,
namun tidak yang di tengah
String kata1 = “ Hi Bob “;
String kata2 = kata1.trim();
//kata2 is “Hi Bob” – tidak ada white space di awal atau akhir
//kata1 tetap “ Hi Bob “ – dengan withe spaces
Methods — replace

String kata2 = kata1.replace(oldCh, newCh);
◦ returns a string baru dari kata1 dimana oldCh
telah diganti dengan newCh
String kata1 = “rare“;
String kata2 = “rare“.replace(‘r’, ‘d’);
//kata2 adalah “dade”, tapi kata1 tetap “rare“
Numbers ke Strings

Cara mengubah angka ke string
◦ 1. String s = "" + num;
Integer dan Double
s = “” + 123;//”123”
adalah “wrapper”
classes dari java.lang
◦ 2. String s = Integer.toString (i); yg merepresentasikan
◦
String s = Double.toString (d); angka sebagai object.
s = Integer.toString(123);//”123”
Class ini juga memiliki
s = Double.toString(3.14); //”3.14”
metode statistik
◦ 3. String s = String.valueOf (num);
s = String.valueOf(123);//”123”
KELAS STRINGBUFFER
Kelas StringBuffer serupa dengan String,
namun nilai dari variabel StringBuffer
dapat dimodifikasi.
 Method khas dari StringBuffer : append
dan insert.

Contoh
public class DemoString{
public static void main(String [] args){
StringBuffer sb1 = new
StringBuffer(“Manchester ”);
StringBuffer sb2 = new StringBuffer(“United”);
sb1.append(sb2);
System.out.println(sb1);
sb1.delete(0,3);
System.out.println(sb1);
sb1.insert(0, “Man”);
System.out.println(sb1);
}
}