string - daniafebry it

advertisement
STRING
String
String
Buffer
By :
Aulia Oktavella P.
(2103141015)
String
Builder
String
Pengertian
String
Konstruktor
String
Penyimpanan &
Kekekalan String
Method String
Concat( )
Pengertian
String
String merupakan salah satu tipe data yang sangat sering digunakan
dalam membuat program.
Kali ini kita akan membahas bagaimana cara menggunakan fungsi – fungsi
dasar String di Java. String di Java memiliki banyak sekali fungsi-fungsi dasar yang
sangat berguna ketika kita ingin melakukan prosessing kata,
Dalam pemrograman Java string merupakan aspek penting, karena dapat
mempelajari mengenai class dan objek melalui penggunaan string. String sebenarnya
merupakan class yang terdapat dalam library Java. Java String merupakan salah
satu kelas dasar yang disediakan oleh Java untuk memanipulasi karakter.
String
Pengertian
String
Di dalam java, String adalah object.
Object String dapat dibuat dengan salah satu dari 2 cara, yaitu :
1. Penulisan sesuatu di dalam tanda antara petik ganda (literal String).
Ex :
String s = ”Halo”;
System.out.println(“Percobaan”);
2. Pembuatan object String dengan keyword new.
Ex :
String s = new String(“Halo”);
· Kelas java.lang.String bermodifier final, sehingga tidak dapat diturunkan [1].
String
Pengertian
String
STRING DAN MEMORY
Dalam java, dikenal 2 buah jenis memory, yaitu [1]:
1.
Stack (tempat local variable dan tumpukan method)
000q c
Di dalam heap terdapat bagian memory yang disebut dengan String constant
pool [2].
Bila kita membuat object String dengan penulisan sesuatu di antara tanda petik
ganda (literal String), maka object String tersebut akan berada di dalam String
constant pool [1].
Ex : String s = ”Halo”;
Sedangkan bila kita membuat String dengan keyword new, maka object String
tersebut akan berada di dalam heap (tetapi diluar String constant pool) [1].
Ex : String s = new String(”Halo”);
String
Konstruktor
String
Syntax
Description
Example
String();
Inisialisasi dan membuat String();
obyek String yang tidak
berisi karakter. Sama
dengan String(“”);
String(String Value);
Inisialisasi dan membuat String(“Hello world.”);
obyek String Isikan
string nya.
String(StringBuffer
buffer);
Isinya identik dengan
serangkaian karakter
yang
disimpan pada obyek
StringBuffer
String(new
StringBuffer());
String
Penyimpanan &
Kekekalan String
• Java mempunyai media penyimpanan literal
string yang yang disebut “pool”.
• Jika suatu literal string sudah ada di pool, Java “tidak akan membuat copy lagi”.
• obyek String bukanlah string itu sendiri, ia hanya merujuk ke lokasi memori yang berisi
karakter string
String a = “hello”;
String b = “hello”;
String c = “hello”;
• Untuk menghemat tempat dan mengurangi kompleksitas, walaupun tiga string yang
diinisialisasi, compiler Java hanya membuat satu ruang memori untuk
menyimpan teks hello. Ruang memori digunakan bersama-sama oleh
tiga obyek String, Sedangkan variabel a, b, dan c hanya pointer
String
yang menunjuk ke lokasi memori tersebut
Penyimpanan &
Kekekalan String
• Perubahan satu string jelas akan mempengaruhi dua string yang lain.
Karena itu dengan tidak diijinkannya manipulasi string secara langsung, Lingkungan
Java mencegah perubahan satu string
berdampak pada string yang lainnya.
String a = “hello”;
String b = “hi”;
String c = a;
c = b
• Dua lokasi memori untuk menempatkan string. String pertama berisi
hello String kedua berisi hi, Variabel String c menunjuk String pertama
kemudian menunjuk ke String yang lainnya
String
Penyimpanan &
Kekekalan String
public class Test {
public static void main(String args[]) {
String a = “java”;
String b = “java”;
String x = “ja”;
String y = “va”;
String c = x + y;
if (a == b){
System.out.println(“a and b are the
}else
System.out.println(“a and b are not
if (b == c){
System.out.println(“a and c are the
}else
System.out.println(“a and c are not
}
}
same object”);
the same object”);
same object”);
Output source code di atas :
a and b are the same object
the same object”); a and c are not the same object
Ketika source Java dieksekusi, isi variabel String a, b, dan c adalah sama : “java.”
Tetapi, a,b,dan c tidak akan menunjuk lokasi memori yang sama, Dan karena itu
perbandingan kedua akan gagal. Karena String a dan b didefinisikan saat compile
dan isinya sama, maka referensi lokasi memorinya sama.
String c dialokasikan saat run time dan akan Disimpan
String
Method String
equals( )
substring( )
equalsIgnoreCase( )
indexOf( )
compareTo( )
lastIndexOf( )
toUpperCase( )
startsWith( )
toLowerCase( )
trim( )
charAt( )
concat( )
replace( )
String
Method String
equals ( )
public class Equals {
public static void main(String[] args) {
String a = "hello";
String b = "HELLO";
Method equals () dari kelas String
lebih dipilih untuk memeriksa
kesamaan string.
Method equals () mengembalikan
nilai true jika parameter stringnya
identik dengan sumber string jika
tidak, memberikan nilai false.
Kesamaan string adalah casesensitive, sehingga jika ada
perbedaan akan
dihasilkan false.
Parameter null juga akan
Memberikan nilai false
if(a.equals(b)== true){
System.out.println(a+"dan"+b+"sama");
}else
System.out.println(a+"dan"+b+"tidak sama");
}
}
String
Method String
equalsIgnoreCase()
public class equalsIgnoreCase {
public static void main(String[] args) {
String a = "hello";
String b = "HELLO";
if(a.equalsIgnoreCase(b)== true){
System.out.println(a +"dan"+b+"sama");
}else
System.out.println(a +"dan"+b+"tidaksama");
Method equalsIgnoreCase () untuk
menentukan kesamaan string tanpa
memperhatikan penulisannya.
}
Method mengembalikan nilai true
jika kedua string sama, meskipun
penulisannya berbeda. Jika tidak,
methodmengembalikan nilai false.
Null argumen juga akan
dikembalikan sebagai
nilai false
}
String
Method String
compareTo()
public class compareTo {
public static void main (String args[]){
String a ="one";
String b ="two";
String c ="three";
if(a.compareTo(b)<0){
System.out.println("one appears before two");
}
Method compareTo() biasanya
digunakan untuk penyortiran.
Method ini digunakan untuk
membandingka dua string dalam
konteks alfabet.
Jika string yang target lebih akhir
}
dalam urutan abjad
dibanding referansinya, maka
method akn mengembalikan negatif,
dan sebaliknya. Tapi jika kedua
string sama, maka akan
mengembalikan 0.
if(b.compareTo(c)>0){
System.out.println("three appears before two");
}
}
String
Method String
toUpperCase()
Method toUpperCase ()
menghasilkan string yang
identik dengan yang string asal,
kecuali bahwa setiap karakter
huruf kecildiubah menjadi huruf
besar.
public class toUpperCase {
public static void main(String[] args){
String a ="d3";
String b ="Teknik";
String c ="INfoRmatiKa";
System.out.println(a.toUpperCase());
System.out.println(b.toUpperCase());
System.out.println(c.toUpperCase());
}
}
Jika string asal sudah
uppercase, maka string yang
dikembalikan sama dengan
string asal.
String
Method String
toLowerCase()
Method toLowerCase ()
menghasilkan string yang
identik dengan yang string asal,
kecuali bahwa setiap karakter
huruf besar diubah menjadi
huruf kecil.
String yang asli tidak berubah,
hanya string yang dikembalikan
berbeda.
Catatan:
Jika string asal sudah lowercase,
maka string yang dikembalikan
sama dengan string asal.
public class toLowerCase {
public static void main(String[] args){
String a ="D3";
String b ="TEKNik";
String c ="INFORmatiKA";
System.out.println(a.toLowerCase());
System.out.println(b.toLowerCase());
System.out.println(c.toLowerCase());
}
}
String
Method String
charAt()
Method charAt() ini akan
mengembalikan karakter pada
indeks yang ditunjuk oleh string.
public class charAt {
public static void main (String args[]){
String a ="TEKNIK INFORMATIKA";
System.out.println(a.charAt(0));
System.out.println(a.charAt(7));
}
}
String
Method String
substring()
Method substring()dibagi menjadi
dua:
substring(int start)
akan mengembalikan sebagaian
karakter dari string mulai dari
indeks ke start sampai akhir.
public class substring {
public static void main (String args[]){
String a ="TEKNIK INFORMATIKA";
System.out.println(a.substring(6));
System.out.println(a.substring(1,10));
}
}
substring(int start, int end)
akan mengembalikan karakter
dari indeks
ke start sampai end saja.
String
Method String
indexOf()
Method indexOf() digunakan untuk
mencari string, mengembalikan posisi
pertama yang ditemukan dari string
target.
indexOf(char ch),
indexOf(char ch, int index),
indexof(String s),
indexOf(String s, int index)
public class indexOf {
public static void main(String args[]){
String kata ="TEKNIK INFORMATIKA";
System.out.println(kata.indexOf("K"));
System.out.println(kata.indexOf("A",14));
System.out.println(kata.indexOf("NIK"));
System.out.println(kata.indexOf("NIK"));
}
}
Jika karakter atau string target tidak
ditemukan akan mengembalikan nilai
-1. Pencarian adalah case sensitive.
Method indexOf() juga dioverloaded
untuk menerima parameter kedua yang
menyatakan di mana posisi awal
pencarian.
String
Method String
lastIndexOf()
public class lastIndexOf {
public static void main (String args[]){
String kata ="TEKNIK INFORMATIKA";
Method indexOf() ini hampir sama
dengan indexOf() hanya saja
pencarian akan dimulai dengan posisi
yang terakhir.
Tetapi tidak seperti indexOf(),
pencarian lastIndexOf() dimulai di
posisi terakhir dari string.
Sedangkan pada indexOf() dipanggil
dengan parameter kedua untuk
mulai mencari pada lokasi yang lain
melanjutkan dari kanan ke kiri.
System.out.println(kata.lastIndexOf("A"));
System.out.println(kata.lastIndexOf("A",5));
System.out.println(kata.lastIndexOf("NIK"));
System.out.println(kata.lastIndexOf("FORM",3));
}
}
String
Method String
startsWith()
Method startsWith() digunakan untuk menguji apakah
string diawali dengan spesifik karakter tertentu.
Alternatif pemanggilan method memulai pengujian
dengan spesifik alamat dan public class Test {
public mirip dengan substring().
public class startsWith {
public static void main(String[] args){
String s = "knowledge";
if(s.startsWith("know")){
System.out.println(s+" begins with know");
}
if(s.startsWith("led",7)){
System.out.println("starting at position 4 it begins led");
}else
System.out.println("led not starting at position 4");
}
}
String
Method String
trim()
Method trim() digunakan untuk membuang spasi,
tab, dan form feeds dari awal sampai akhir yang
tidak diperlukan.
public class trim {
public static void main(String[] args){
String s1 = "
NRP 2103141015
String s2 = s1.trim();
";
System.out.println(s2);
}
}
String
Method String( )
concat()
Method concat() untuk menggabungkan
string.
public class concat {
public static void main(String[] arg){
String a = "Teknik ";
String b = "Informatika";
System.out.println("Dengan concat = "+a.concat(b));
System.out.println("Dengan a+b = "+a+b);
}
}
String
Method String
replace()
Method replace
(char oldChar, char newChar)
Mengembalikan sebuah object String baru dimana
semua huruf yang sesuai dengan argumen
oldChar pada object String tempat
method replace dipanggil diganti dengan huruf pada
argumen newChar [2].
public class replace {
public static void main(String[] args){
String s = "Balonku ada lima, rupa-rupa warnanya".replace("a", "i");
System.out.println("s = " + s);
}
}
String
String
Buffer
Pengertian
StringBuffer
Method
StringBuffer
Konstruktor
StringBuffer
Pengertian
StringBuffer
StringBuffer merupakan class yang digunakan untuk mengubah isi dari suatu string.
Alasan digunakan StringBuffer karena string memiliki sifat kekal (immutable string).
Dalam StringBuffer juga terdapat beberapa method sepertihalnya String. Berikut akan
saya jelaskan beberapa method dalam StringBuffer.
Masalah utama dengan class String adalah sifat kekekalannya. Lebih mudah dan
efisien jika sebuah string dapat langsung diubah. Java menyediakan alternatif class
yaitu StringBuffer, untuk mengatasi masalah ini. StringBuffer adalah string yang dapat
dimodifikasi. StringBuffers digunakan secara internal untuk mengimplementasikan
method-method yang ada dalam class String.
StringBuffer dapat membawa sejumlah karakter pada penciptaannya.
Hal ini dikenal sebagai kapasitas. StringBuffer memiliki default
kapasitas 16 karakter, tapi biasanya pemrogram mendefinisikan kapasitas
pada penciptaan. Misalnya, untuk menciptakan
StringBuffer kosong dengan kapasitas 100 karakter sbb :
StringBuffer b = new StringBuffer(100);
String
Buffer
Konstruktor
StringBuffer
Sintak
Deskripsi
Contoh
StringBuffer()
Menginisialisasi dan membuat
objek StringBuffer kosong
dengan kapasitas default 16
karakter. Sama seperti jika kita
membuat dengan sintak
StringBuffer(16)
StringBuffer();
StringBuffer
(int capacity)
Menginisialisasi dan membuat
Objek StringBuffer dengan
kapasitas yang ditentukan
StringBuffer(100);
StringBuffer(
String value)
Menginisialisasi dan membuat
objek StringBuffer.
Parameter berupa String
dengan kapasitas 16
ditambah dengan panjang
String
StringBuffer(“Hello world.”);
String
Buffer
Method
StringBuffer
capacity()
append()
String
Buffer
Method
StringBuffer
public class Capacity {
public static void main(String[] args) {
String kata = "Java";
capacity()
Method ini digunakan untuk mengetahui
kapasitas dari suatu variabel
StringBuffer
Contoh :
Cara diatas akan membuat StringBuffer}
}
dengan
kapasitas 21 (16 ditambah dengan
panjang
string argument) yang berisi string
”hello”.
StringBuffer a = new StringBuffer();
StringBuffer b = new StringBuffer(50);
StringBuffer c = new StringBuffer(kata);
System.out.println("a = "+a.capacity());
System.out.println("b = "+b.capacity());
System.out.println("c = "+c.capacity());
String
Buffer
Method
StringBuffer
public class reverse {
public static void main (String[] args){
StringBuffer a = new
StringBuffer("Hello");
System.out.println(a);
a.reverse();
System.out.println(a);
reverse()
Method ini digunakan untuk
membalik isi dari variabel
StringBuffer.
}
}
String
Buffer
Method
StringBuffer
public class setCharAt {
public static void main(String[] args){
StringBuffer a = new
StringBuffer("Java");
a.setCharAt(0,'J');
a.setCharAt(3,'A');
setCharAt(int index, char
ch)
Method ini digunakan untuk
mengubah karakter pada
indeks tertentu menjadi
karakter lain.
System.out.println(a);
}
}
String
Buffer
Method
StringBuffer
public class append {
public static void main(String[] args){
StringBuffer a = new
StringBuffer("Test");
System.out.println(a);
a.append("ing");
System.out.println(a);
append() Method ini
digunakan untuk
menambahkan String pada
akhir objek StringBuffer.
a.append("123");
System.out.println(a);
}
}
String
Buffer
Method
StringBuffer
public class insert {
public static void main(String[] args){
StringBuffer a = new
StringBuffer("Toher");
System.out.println(a);
insert(int index, Object
obj)
method insert() dari class
StringBuffer untuk
menyisipkan string ke objek
StringBuffer pada posisi
tertentu.
a.insert(2,"get");
System.out.println(a);
}
}
String
Buffer
Method
StringBuffer
delete(int start, int end)
method delete() untuk
menghapus karakterkarakter pada StringBuffer.
Method ini mempunyai dua
argumen yaitu posisi awal
dan akhir.
Posisi akhir adalah karakter
sebelum karakter pada
posisi akhir yang akan
dihapus.
public class delete {
public static void main(String[] args){
StringBuffer a = new StringBuffer("We’ll
delete characters from this sentence");
System.out.println(a);
a.delete(0,13);
System.out.println(a);
a.delete(10,33);
System.out.println(a);
}
}
String
Buffer
Method
StringBuffer
length()
method length()
mengembalikan panjang
dari objek StringBuffer.
Jika objek StringBuffer
kosong maka
mengembalikan nilai 0.
public class length {
public static void main(String[] args){
StringBuffer a = new
StringBuffer("012345");
System.out.println(a.capacity());
System.out.println(a.length());
}
}
String
Buffer
String
Builder
Pengertian
StringBuilder
Perbedaan
StringBuffer dan
StringBuilder
Perbedaan String
dan StringBuilder
Pengertian
StringBuilder
Class StringBuilder ditambahkan di Java 5
• Fungsi-fungsi yang ada di StringBuffer sama
seperti fungsi yang ada di StringBuilder.
• Java Sun merekomendasikan menggunakan
StringBuilder dibandingkan dengan StringBuffer
karena StringBuilder dapat berjalan lebih cepat.
• Tapi StringBuilder ini tidak aman untuk multiple
thread karena tidak mendukung sinkronisasi
Kelas java.lang.String sangat tidak efektif bila kita ingin
melakukan banyak modifikasi terhadap suatu string, hal ini karena
sifat dari kelas java.lang.String yang immutable (banyak modfikasi
pada suatu kelas String akan dapat menyebabkan banyaknya
objectString yang
terlibat). Kelas java.lang.StringBuffer dan java.lang.StringBuildermen
gatasi permasalahan ini (mutable) [1].
String
Builder
Perbedaan String
dan StringBuilder
Perbedaan utama antara kelas java.lang.StringBuffer dan
kelasjava.lang.StringBuilder [1]:
Sun merekomendasikan kita menggunakan StringBuilder bila kita
tidak berhubungan dengan threading [1]
Perbedaan
java.lang.StringBuffer
java.lang.StringBuilder
Thread safe
Ya
Tidak
Kecepatan
Lebih lambat dari
kelasjava.lang.StringBuilder
Lebih cepat dari
kelasjava.lang.StringBuffer.
String
Builder
Perbedaan
StringBuffer dan
StringBuilder
Perbedaan lain antara StringBuffer / StringBuilder dengan java.lang.String adalahobject yang
berubah saat suatu method dipanggil [2]. Perhatikan contoh berikut [2] :
Kelas java.lang.String
Kelas java.lang.StringBuilder
String s;
s = new String(”ABC”);
s.concat(“DEF”);
System.out.println(s);
StringBuilder sb;
sb = new StringBuilder(“ABC”);
sb.append(“DEF”);
System.out.println(sb);
Akan mencetak :
ABC
Akan mencetak :
ABCDEF
Pada kelas java.lang.String, method-method akan mengembalikan
object String baru (hasil modifikasi) tanpa merubah
object String tempat method dipanggil (karena immutable)[2].
Pada kelas java.lang.StringBuffer dan java.lang.StringBuilder,
method-method akan memodifikasi object tempat method
dipanggil, dan kemudian mengembalikan object tersebut sebagai
return value dari method [2].
String
Builder
THANK’S
FOR
ATTENTION
Download