• Tidak ada hasil yang ditemukan

Pemrograman Lanjut Class String PTIIK

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Lanjut Class String PTIIK"

Copied!
34
0
0

Teks penuh

(1)

Pemrograman Lanjut

(2)

Objectives

 Mampu memahami dan mengimplementasikan

tentang

 Class String

 Class String Buffer

(3)

Class String

 Di dalam java, String adalah object

 Object String dapat dibuat dengan salah satu dari 2 cara, yaitu :

 Penulisan sesuatu di dalam tanda antara petik ganda (literal String).

String s = ”Halo”;

 Pembuatan object String dengan keyword new. String s = new String(“Halo”);

 Kelas java.lang.String bermodifier final, sehingga tidak dapat diturunkan

(4)

String dan Memory

 Dalam java, dikenal 2 buah jenis memory, yaitu:

 Stack (tempat local variable dan tumpukan method)

 Heap (tempat instance variable dan object)

 Di dalam heap terdapat bagian memory yang disebut dengan String constant pool

(5)

String dan Memory

 object String dengan penulisan sesuatu di antara tanda petik ganda (literal String) berada di dalam

String constant pool

Contoh : String s = ”Halo”;

 object String dengan keyword new berada di dalam heap (tetapi diluar String constant pool) Contoh : String s = new String(”Halo”);

(6)

String dengan keyword new

 Khusus untuk pembuatan object String dengan keyword new (String s = new String(“Halo”) ), sebenarnya terdiri dari 3 buah proses, yaitu

 Pembuatan object String “Halo” di dalam String constant pool. Hal ini karena “Halo” adalah literal String yang otomatis membuat object di String constant pool.

 Pembuatan object String “Halo” di dalam heap (non pool).

 Penghapusan object String “Halo” di dalam String

constant pool (bila tidak ada yang mereferensi String) ini.

(7)

 Pada saat java menjumpai literal String (dalam kode program), maka java akan mencari String yang sama dengan literal String tersebut di

dalam String constant pool. Bila ternyata di

dalam pool ditemukan object String yang sama, maka reference akan menunjuk pada object

String di dalam pool tersebut. Bila ternyata java tidak menemukan di dalam String constant pool, maka java akan membuat object String di dalam String constant pool terlebih dahulu

(8)

Contoh

(9)

Object String adalah Immutable

 Object String adalah immutable (tidak dapat diubah)

 Sekali sebuah object String berisi suatu nilai, maka nilai tersebut tidak dapat diubah (tidak peduli apakah object String tersebut berada pada heap ataupun String constant pool).

 Dalam praktek pemrograman, kita merasa bahwa object String dapat berubah, hal ini

karena yang berubah adalah nilai reference

(10)

 Statement s1 = s1 + ”def”; seakan-akan menyatseakan-akan bahwa object String dapat diubah, akan tetapi sebenarnya statement tersebut hanya membuat object String baru “abcdef” dan

kemudian mengubah nilai reference s1 untuk menunjuk object String baru

tersebut.

 Sebenarnya, statement s1 = s1 +

”def”; di atas melibatkan 3 buah object String, yaitu : “abc” (object String awal yang ditunjuk oleh s1), “def” (object String baru), dan “abcdef” (object String baru).

(11)

Method-Method Penting Class String

 public int length()

 public boolean equals(String s)

 public boolean equalsIgnoreCase(String s)

 public char charAt(int index)

 public String concat(String s)

 public String replace(char oldChar, char newChar)

 public String substring(int begin)

 public String substring(int begin, int end)

 public String toLowerCase()

 public String toUpperCase()

 public String trim()

(12)

public int length()

 Method ini mengembalikan panjang dari suatu object String

int i = "abcde".length();

(13)

public boolean equals(String s)

 Membandingkan suatu object String dengan object String s.

 Mengembalikan nilai true bila object String s

adalah bukan null dan s memiliki urutan karakter yang sama dengan object String tempat method equals dipanggil.

boolean b = "abcd".equals("abcd");

(14)

public boolean equalsIgnoreCase(String s)

 Sama seperti method public boolean

equals(String s), hanya saja pada method ini tidak memperhatikan huruf besar atau kecil

boolean b = "abcd". equalsIgnoreCase(" AbcD ");

(15)

public char charAt(int index)

 Method ini mengembalikan karakter yang terletak pada index ke n dari object String.

 Index pada String dimulai dari 0

char c = "0123456".charAt(4);

System.out.println("c = " + c); // Mencetak c = 4

 Bila nilai argumen index lebih besar sama dengan jumlah karakter dari object String tersebut, maka akan

dilemparkan Exception yang berupa

(16)

public String concat(String s)

 Method ini mengembalikan suatu object String baru yang isinya merupakan gabungan dari

object String s dan object String method concat dipanggil.

 Nilai dari object String baru adalah nilai object String s diletakkan dibelakang nilai object String method concat dipanggil

String s = "halo ".concat("apa ").concat("kabar ?"); System.out.println("s = " + s);

(17)

public String concat(String s)

 Operator + dan += bila dioperasikan pada String akan melakukan hal yang sama dengan method concat ini

String s = "halo " + "apa " + "kabar ";

System.out.println("s = " + s); //mencetak s = halo apa kabar ?

(18)

public String 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

String s = "ABABABABA".replace("B", "D"); System.out.println("s = " + s);

(19)

public String substring(int begin)

 Method ini mengembalikan sebuah object String baru dimana nilainya adalah huruf ke n sampai dengan huruf terakhir dari object String tempat method substring dipanggil. Nilai n ditentukan oleh argumen begin, nilai n adalah zero-based (huruf pertama String adalah berindex 0)

String s = "0123456789".substring(3); System.out.println("s = " + s);

(20)

public String substring(int begin, int end)

 Method ini sama seperti method public String substring(int begin), hanya saja akhir substring adalah karakter ke end-1 (parameter end adalah zero-based)

String s = "0123456789".substring(3, 8);

(21)

public String toLowerCase()

 Method ini mengembalikan sebuah object String baru, dimana nilainya adalah semua huruf dari object String tempat method toLowerCase

dipanggil dirubah menjadi huruf kecil semua

String s = "AnToN".toLowerCase();

(22)

public String toUpperCase()

 Method ini mengembalikan sebuah object String baru, dimana nilainya adalah semua huruf dari object String tempat method toUpperCase

dipanggil dirubah menjadi huruf besar semua

String s = "AnToN". toUpperCase();

(23)

public String trim()

 Mengembalikan object String baru dimana

nilainya adalah object String tempat method trim dipanggil, tapi dengan semua blank-spaces

diawal dan diakhir String dihapus

String s = " \n\tABC \t\t\n".trim();

(24)

public String toString()

 Mengembalikan object yang sama dengan object String tempat method toString dipanggil

(25)

Catatan

 Kelas String memiliki method length(), sedangkan array memiliki variable length

 Method concat() , replace() , toLowerCase() , toUpperCase() , substring() , trim() dari kelas String selalu mengembalikan object String hasil manipulasi dan tidak mengubah object String tempat method diubah

(26)

Class StringBuffer dan StringBuilder

 Kelas java.lang.String sangat tidak efektif bila kita ingin melakukan banyak modifikasi terhadap suatu string karena sifat dari kelas

java.lang.String yang immutable

 Hal ini menyebabkan banyak modfikasi pada suatu kelas String akan dapat menyebabkan banyaknya object String yang terlibat

 Kelas java.lang.StringBuffer dan

java.lang.StringBuilder mengatasi permasalahan ini (mutable)

(27)

Class StringBuffer dan StringBuilder

 Perbedaan utama antara class StringBuffer dan

class StringBuilder adalah pada kecepatan, bahwa class StringBuilder lebih cepat dari class

StringBuffer

 Perbedaan lain antara StringBuffer / StringBuilder dengan String adalah object yang berubah saat suatu method dipanggil

(28)

Method-Method penting class StringBuilder

 public StringBuilder append(String s)

 public StringBuilder delete(int start, int end)

 public StringBuilder insert(int offset, String s)

 public StringBuilder reverse()

(29)

public StringBuilder append(String s)

 Memiliki padanan public synchronized StringBuffer append(String s)

 Method ini akan menambah object String s pada akhir nilai object StringBuilder

 Method ini dioverload sehingga dapat menerima argumen boolean, char, float, double, int, long, dan lain-lain

(30)

public StringBuilder delete(int start, int end)

 Memiliki padanan public synchronized StringBuffer delete(int start, int end)

 Method ini akan menghapus karakter ke start (zero based) sampai dengan ke end-1 (zero based)

(31)

public StringBuilder insert(int offset, String s)  Memiliki padanan public synchronized

StringBuffer insert(int offset, String s)

 Method ini akan menambah object String s pada karakter ke offset (zero base) dari nilai object

(32)

public StringBuilder reverse()

 Memiliki padanan public synchronized StringBuffer reverse()

 Method ini akan membalik urutan karakter nilai object StringBuilder, karakter terakhir menjadi karakter pertama (dan sebaliknya)

(33)

public String toString()

 Mengembalikan nilai string object StringBuilder atau StringBuffer sebagai object String

(34)

Referensi

Dokumen terkait

Secara keseluruhan EPIC rate, rata-rata adalah 4,077, artinya iklan menggunakan aplikasi mobile offline ini berada pada dimensi “efektif” (Gambar 4). Hal ini

Penelitian ini bertujuan untuk mengetahui aktivitas penyembuhan luka sediaan salep kombinasi ekstrak etanol daun sirih hijau ( Piper betle L.) dan minyak cengkeh ( Syzgium

Berdasarkan hasil penelitian disimpulkan bahwa jumlah koloni bakteri fase inflamasi luka bakar grade II pada mencit sebelum dilakukan perawatan dengan menggunakan

Tingkat ketidakjenuhan CPO yang tinggi memiliki beberapa keuntungan seperti (a) meningkatkan kualitas CPO, (b) berguna sebagai alternatif bahan baku untuk medis

Membaca novel Suti karya SDD akan menjadi satu bagian penting dalam melengkapi pengalaman membaca karya sastra SDD setelah karya SDD sebelumnya walaupun masih ditemukan

HASIL UJI STATISTIK KONSTANTA LAJU DISOLUSI TABLET LIKUISOLID IBUPROFEN

10 Tabel 3 menunjukkan bahwa laki-laki mempunyai rata-rata status kesehatan gigi (DMF-T/def-t) lebih tinggi (lebih buruk) daripada perempuan, artinya anak perempuan

Manfaat penelitian ini adalah untuk mengetahui ciri – ciri anak autis sehingga orang tua dapat mengetahui gejala anak autis sejak dini dan dapat merancang media edukasi