Post on 15-Jan-2016
description
Object Oriented Programming with JavaTeknik Informatika-UMM - 2013
STRING
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 hanya dapat menyimpan satu
karakter. String merupakan tipe data reference.
Char merupakan tipe data primitif. Untuk melakukan inisialisasi
menggunakan tanda “ (double-quote). Inisialisasi char menggunakan tanda ‘
(single-quote).
Deklarasi String
Sebenarnya, ketika dideklarasikan variabel bertipe String maka akan dibuat sebuah object. Walaupun secara implisit tidak dituliskan new.
Ada beberapa cara deklarasi String, diantaranya sbb :
1. String nama_variabel;2. String nama_variabel = nilai;3. String nama_variabel = new String(char);4. Dll.
Deklarasi String (Bentuk 1)
Mendeklarasikan variabel String seperti pendeklarasian variabel biasa.
Syntax :
Contoh :String nama; // jika ditampilkan akan mengeluarkan hasil berupa null.
(Secara otomatis akan dibuatkan object String dengan variabel reference bernama nama).
String nama_variabel;
Deklarasi String (Bentuk 2)
Mendeklarasikan variabel String seperti instansiasi object.
Syntax :
Contoh :String nama = new String(); // jika ditampilkan tidak akan mengeluarkan hasil apapun karena hanya menjalankan constructor kosong.
String nama_var = new String();
Deklarasi String (Bentuk 3)
Mendeklarasikan variabel String sekaligus inisialisasi atau pengisian nilai.
Syntax :
Contoh :String nama = ”Cinta Indonesia”;
String nama = new String(”Cinta Indonesia”);
(sama-sama akan memanggil constructor yang dimiliki oleh class String untuk menginisialisasi nilai)
String nama_var = nilai;atau
String nama_var = new String(nilai);
Deklarasi String (Bentuk 4)
Mendeklarasikan variabel String dan mengisinya dengan array karakter.
Syntax :
Contoh :char a[]={‘a’,’b’,’c’,’d’,’e’};
String nama = new String(a); // jika ditampilkan akan keluar hasil berupa string abcde.
String nama_var = new String(char[]);
Deklarasi String (Bentuk 5)
Mendeklarasikan variabel String dan mengisinya dengan sub-array dari array karakter yang dideklarasikan.
Syntax :
Penjelasan :char[] = variabel bertipe array of character.
offset = index awal dari sub-array.
count = jumlah karakter yang akan diambil.
String nama_var = new String(char[],int offset, int count);
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.
Berbeda dengan string yang tidak diinisialisasi
String kata1 = ""; String kata2 = new String();
private String errorMsg; errorMsg adalah null
String kosong
No Argument Constructors
No-argument constructor membuat string kosong. Jarang digunakan.
Pendekatan yang umum adalah melakukan assignment suatu variabel dengan literal string yang kosong.
String kosong = “”;//tidak ada apa2 di antara quotes
String kosong = new String();
Copy Constructors
Copy constructor membuat duplikat dari String yang telah ada. Juga jarang digunakan
Tidak sama dengan assignment
String kata = new String(“Java”);String kata2 = new String(kata);
kata
kata2
“Java"“Java"
Copy Constructor: Tiap variabel menunjuk ke object string yang berbeda
String kata = “Java”;String kata2 = kata;
kata“Java"
kata2
Assignment: kedua variabel menunjuk ke object yang sama
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. indefOf5. 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:
Kesalahan umum:
kata1 = kata1.toUpperCase();
kata1.toUpperCase(); kata1 tidak
berubah
Mengubah jadi lower/upper case Method : toUpperCase atau toLowerCase
Methods — length, charAt
int length();
char charAt(i);
Mendapatkan panjang string
Mendapatkan karakter di posisi i
7
’n'
”Problem".length();
”Window".charAt (2);
Returns:
Posisi karakter dimulai pada posisi 0, seperti array.
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-blindb = “Raiders”.equals(“Raiders”);//trueb = “Raiders”.equals(“raiders”);//falseb = “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 differencesdiff = “apple”.compareTo(“berry”);//a before bdiff = “Zebra”.compareTo(“apple”);//Z before adiff = “dig”.compareTo(“dug”);//i before udiff = “dig”.compareTo(“digs”);//dig is shorter
//zero differencesdiff = “apple”.compareTo(“apple”);//equaldiff = “dig”.compareToIgnoreCase(“DIG”);//equal
//positive differencesdiff = “berry”.compareTo(“apple”);//b after adiff = “apple”.compareTo(“Apple”);//a after Adiff = “BIT”.compareTo(“BIG”);//T after Gdiff = “huge”.compareTo(“hug”);//huge is longer
Methods — substring
“lev"“mutable""" (empty string)
”television".substring (2,5); “immutable".substring (2);“bob".substring (9);
Returns:
television
i k
television
i
String subs = kata.substring (i, k); mengembalikan substring
dari posisi i ke k-1 String subs = kata.substring (i);
mengembalikan substring dari posisi i hingga akhir
Mengembalikan string baru dengan meng-kopi serangkaian karakter dari string yang ada.
indexOf()
Digunakan untuk mengetahui nilai index atau posisi karakter tertentu pada String.
Syntax : variabel_string.indexOf(‘karakter’); Contoh :
Output : 4(Jika terdapat karakter yang sama dalam String maka yang diambil adalah index dari karakter yang paling kiri)
public class TestString{ String nama = "cinta umm"; System.out.println(nama.indexOf(‘a’));}
Methods — Find (indexOf)
String nama =“Presiden Soekarno";
nama.indexOf (‘P'); 0 nama.indexOf (‘e'); 2 nama.indexOf (“Soekarno"); 9 nama.indexOf (‘e', 3); 6 nama.indexOf (“Bob"); -1 nama.lastIndexOf (‘e'); 11
Returns:
(ngga ketemu)
(mulai posisi ketiga)
0 2 6 9 11
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 :
Output : Aku cinta Bahasa Java
public class TestString{ String teks1= “Aku cinta "; String teks2= “Bahasa Java"; System.out.println(teks1 + teks2);}
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 newChString 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;
2. String s = Integer.toString (i); String s = Double.toString (d);
3. String s = String.valueOf (num);
Integer dan Double adalah “wrapper” classes dari java.lang yg merepresentasikan angka sebagai object. Class ini juga memiliki metode statistik
s = String.valueOf(123);//”123”
s = “” + 123;//”123”
s = Integer.toString(123);//”123”s = Double.toString(3.14); //”3.14”
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)
Silahkan buka API Java pada alamat ini : http://download.oracle.com/javase/6/docs/api/
Masuklah pada java.lang, kemudian cari class String.
Perintah :1. Hitung berapa banyak constructor yang dimiliki
oleh class String.2. Ada berapa method yang dimiliki oleh class
String.3. Sebutkan 3 method beserta kegunaannya
(selain yang sudah disebutkan pada slide).
Reference
Berbagai sumber