Transcript Document

STRING
Object Oriented Programming with Java
Teknik Informatika-UMM - 2013
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).
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.
String v Char

String dapat menyimpan lebih dari satu karakter
(teks).
 Char

String merupakan tipe data reference.
 Char

hanya dapat menyimpan satu karakter.
merupakan tipe data primitif.
Untuk melakukan inisialisasi menggunakan tanda “
(double-quote).
 Inisialisasi
char menggunakan tanda ‘ (single-quote).
Deklarasi String


1.
2.
3.
4.
Sebenarnya, ketika dideklarasikan variabel bertipe
String maka akan dibuat sebuah object. Walaupun
secara implisit tidak dituliskan new.
Ada beberapa cara deklarasi String, diantaranya
sbb :
String nama_variabel;
String nama_variabel = nilai;
String nama_variabel = new String(char);
Dll.
Deklarasi String (Bentuk 1)


Mendeklarasikan variabel String seperti
pendeklarasian variabel biasa.
Syntax :
String nama_variabel;

Contoh :
String nama;
// jika ditampilkan akan mengeluarkan hasil berupa
null.
(Secara otomatis akan dibuatkan object String dengan
variabel reference bernama nama).
Deklarasi String (Bentuk 2)


Mendeklarasikan variabel String seperti instansiasi
object.
Syntax :
String nama_var = new String();

Contoh :
String nama = new String();
// jika ditampilkan tidak akan mengeluarkan hasil
apapun karena hanya menjalankan constructor
kosong.
Deklarasi String (Bentuk 3)



Mendeklarasikan variabel String sekaligus
inisialisasi atau pengisian nilai.
Syntax :
String nama_var = nilai;
atau
String nama_var = new String(nilai);
Contoh :
String nama = ”Cinta Indonesia”;
String nama = new String(”Cinta Indonesia”);
(sama-sama akan memanggil constructor yang dimiliki oleh class String
untuk menginisialisasi nilai)
Deklarasi String (Bentuk 4)


Mendeklarasikan variabel String dan mengisinya
dengan array karakter.
Syntax :
String nama_var = new String(char[]);

Contoh :
char a[]={‘a’,’b’,’c’,’d’,’e’};
String nama = new String(a);
// jika ditampilkan akan keluar hasil berupa
string abcde.
Deklarasi String (Bentuk 5)


Mendeklarasikan variabel String dan mengisinya
dengan sub-array dari array karakter yang
dideklarasikan.
Syntax :
String nama_var = new String(char[],int offset, int count);

Penjelasan :
char[] = variabel bertipe array of character.
offset = index awal dari sub-array.
count = jumlah karakter yang akan diambil.
Contoh : Bentuk 5 (syntax 1)

Contoh :
char a[]={‘a’,’b’,’c’,’d’,’e’};
String nama = new String(a,1,3);
output :bcd
//karena index array dimulai dari 0 maka dengan
offset=1 karakter awal dari sub-array adalah ‘b’.
Kemudian dengan count=3 akan mengambil 3 karakter
kekanan sehingga jika String nama ditampilkan
hasilnya bcd.
Contoh Deklarasi String






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;
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
int firstInitial = “Alimun”.length();
//memanggil method dari variabel String
int firstInitial = nama.length();
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“

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
char
charAt(i);

Mendapatkan karakter di posisi i
Posisi karakter dimulai pada posisi 0, seperti array.
Returns:
”Problem".length();
7
”Window".charAt (2);
’n'
Akses karakter di posisi tertentu

Method : charAt
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
i k
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);

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
nama.indexOf
nama.indexOf
nama.indexOf
nama.indexOf

nama.lastIndexOf (‘e');




(‘P');
0
(‘e');
2
(“Soekarno");
(‘e', 3);
6
(“Bob");
-1
11
9
(mulai posisi ketiga)
(ngga ketemu)
Methods — Concatenation

String kata1 = “re”, kata2 = “think”; kata3 = “ing”;

int num = 2;

String result = kata1 + kata2;


String result = kata1.concat (kata2);


//menggabung kata1 dan kata2 “rethink“
result += kata3;


//menggabung kata1 dan kata2 “rethink“
//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;
s = “” + 123;//”123”


2. String s = Integer.toString (i);
String s = Double.toString (d);
s = Integer.toString(123);//”123”
s = Double.toString(3.14); //”3.14”

3. String s = String.valueOf (num);
s = String.valueOf(123);//”123”
Integer dan Double
adalah “wrapper”
classes dari java.lang
yg merepresentasikan
angka sebagai object.
Class ini juga memiliki
metode statistik
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);
}
}
Tugas (1)

Dengan memperhatikan output dari program class StringDemo,
jelaskan kegunaan dari method-method berikut ini :











charAt(index)
equals()
equalsIsIgnoreCase()
compareTo()
compareToIgnoreCase()
toCharArray()
getChar()
replace()
trim()
valueOf()
substring()
Tugas (2)



1.
2.
3.
Silahkan buka API Java pada alamat ini :
http://download.oracle.com/javase/6/docs/api/
Masuklah pada java.lang, kemudian cari class String.
Perintah :
Hitung berapa banyak constructor yang dimiliki oleh
class String.
Ada berapa method yang dimiliki oleh class String.
Sebutkan 3 method beserta kegunaannya (selain
yang sudah disebutkan pada slide).
Reference

Berbagai sumber