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