Pemrograman Berotientasi Object
Dalam bahasa lain seperti C/C++ dan Pascal (Delphi), string merupakan array karakter.
Dalam Java, string adalah object dan bukan array karakter. ▪
Dapat dibuat array karakter, tetapi ia bukan string.
String terdiri dari sederetan karakter yang dibatasi oleh tanda petik ganda (doublequote).
char inputKey; char ampersand = '&';
// tipe primitif char.
String perancangJava = "James Gosling"; String strAmpersand = "&"; // tipe object String.
Perhatikan tanda kutip tunggal dan kutip ganda yang membedakan karakter dan string.
Perintah
Keterangan
concat(str)
: mengabungkan 2 buah string string.
isEmpty()
: memeriksa apakah string kosong atau tidak.
trim()
: membuang spasi di sebelah kiri dan kanan string.
length()
: menghitung banyak karakter dalam string.
equals(str)
: membandingkan 2 buah string.
substring(
, )
: mengambil substring dari string.
charAt()
: mengambil karakter yang ada pada index.
lastIndexOf(kar)
: mencari index terakhir dari string yang mengandung karakter kar.
equalsIgnoreCase(str)
: membandingkan string dengan str, tidak membedakan huruf besar dan kecil
copyValueOf(arr_char)
: membentuk string dari array karakter
replace(, )
: mengganti menjadi
Untuk menampilkan string dalam program Java non-GUI (teks), kita dapat memakai perintah System.out.println() ataupun System.out.print().
class TampilString { public static void main(String [] args) { System.out.print("Perancang C: "); System.out.print("Brian Kernighan dan Dennis Ritchie."); System.out.println(); // berganti baris System.out.println("Perancang Java: "); System.out.println(" James Gosling."); } } Perhatikan perbedaan antara print() dan println(). Output program (ditampilkan string sebagai berikut): Perancang C++: Brian Kernighan dan Dennis Ritchie. Perancang Java: James Gosling.
Object String akan mengenali operator penggabungan string (concat) berupa tanda (+).
Contoh: String s1 = "Java Micro - "; String s2 = s1 + "Java Enterprise"; System.out.println(s2);
Akan menampilkan string: Java Micro - Java Enterprise
Dengan operator new, dapat juga membuat object String dari array karakter. Contoh: char chArray[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', '9'}; String s1 = new String(chArray); // s1 = "JBuilder 9"
Selain untuk menjumlahkan tipe variable String dengan String, operator + juga dapat dipakai untuk menjumlahkan tipe variable String dengan tipe lainnya:
String dengan boolean, String dengan integer (byte, short, int, long, char), String dengan floating-point (float, double), String dengan object.
class Concat { public static void main(String []args) { boolean bool = true; long intg = 4567890; double flot = 45678.9123e-11; Concat objt1 = null; Concat objt2 = new Concat( ); System.out.println("Concatenation:" + "\nString + boolean: " + false + " - " + bool + "\nString + integer: " + 123 + " ~ " + intg + "\nString + float : " + 3.14 + " ~ " + flot + "\nString + object : " + objt1 + " ~ " + objt2); }}
Sebuah object String dapat dibuat dengan memakai operator new. Contoh: String s1 = "JBuilder 9."; String s2 = new String("JBuilder 9."); Kedua variable s1 dan s2 akan sama-sama merupakan object String yang berisikan teks: JBuilder 9.
Dengan operator new, dapat juga membuat object String dari array karakter. Contoh: char chArray[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', '9'}; String s1 = new String(chArray); // s1 = "JBuilder 9."
Dapat juga memilih sub-array dari array karakter untuk dikonversi menjadi object String.
Bentuk umumnya adalah sebagai berikut: String [nama var] = new String( char[ ] chArray, int offset, int count ) Di mana : chArray merupakan array karakter, offset merupakan index awal dari sub-array, count merupakan jumlah karakter yang akan diambil.
Contoh: char chAr[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', ' ', '9'}; String s1 = new String(chAr, 1, 5); //s1 = "Build
Index array maupun String dimulai dari angka 0 (zero-based index). Dengan offset = 1, maka karakter awalnya adalah 'B' (index 1). Dengan count = 5, akan diambil sebanyak 5 karakter mulai dari 'B'. Sub-array yang diambil adalah: 'Build'.
Dalam Java, variable dengan tipe String merupakan sebuah object dari class String. Ketika dideklarasikan sebuah string, maka secara otomatis, compiler Java akan
membuatkan sebuah object String.
Dalam JDK, class String disimpan dalam package java.lang. Jadi full-name bagi class ini adalah: java.lang.String.
Sebagai sebuah class, String mempunyai beberapa member berupa method.
Berikut beberapa method penting : Panjang String: length( ) Mengambil Sub-string: substring( ) Mengambil Karakter: charAt( ) Mengambil Index: indexOf( ) Casing: toUpperCase( ), toLowerCase( )
Method length() dipakai untuk mengambil panjang dari variable String. Contoh: String s1 = "JBuilder 9."; int lenStr = s1.length(); // lenStr = 11 System.out.println(lenStr); // 11
Method substring() dipakai untuk mengambil sub-string dari sebuah object String. Ada dua bentuk dari method ini : Bentuk pertama (overload method): String substring(int beginIndex, int endIndex); String substring(int beginIndex); Bentuk tersebut mengambil sub-string dimulai dari posisi beginIndex sampai posisi endIndex-1.
Bentuk kedua. // posisi: "01234567890" String s1 = "JBuilder 9."; String cutStr = s1.substring(5); // cutStr = "der 9." String subStr = s1.substring(1, 6); // subStr = "Build” Bentuk tersebut mengambil sub-string dimulai dari posisi beginIndex sampai akhir string
//Use substring() class SubStr { public static void main (String args[]) { String orgstr = "Java Makes the Web move"; //construct a substring String substr = orgstr.substring(5, 18); System.out.println("orgstr : " + orgstr); System.out.println("substr : " + substr); }}
Output : orgstr : Java Makes the Web move substr : Makes the Web
Method charAt() dipakai untuk mengambil karakter dari object String pada posisi index tertentu. Contoh: // posisi: "01234567890" String s1 = "JBuilder 9."; char c1 = s1.charAt(1); // c1 = 'B' char c2 = s1.charAt(9); // c2 = '9' char c3 = s1.charAt(6); // c3 = 'e'
Method indexOf() dipakai untuk mengambil nilai index berupa posisi karakter tertentu di dalam object String. Posisi karakter yang dicari adalah posisi dari karakter pertama yang ditemui. Contoh: // posisi: "0123456789012345678" String s1 = "JBuilder untuk Java"; int pos1 = s1.indexOf('u'); // pos1 = 2 int pos2 = s1.indexOf('t'); // pos2 = 11 int pos3 = s1.indexOf('J'); // pos3 = 0 Nilai index yang dikembalikan adalah index dari karakter pertama yang ditemui. Misalnya ada 3 buah karakter 'u' dalam s1, tetapi yang dikembalikan adalah posisi dari karakter 'u' yang pertama (yaitu 2).
Method toUpperCase() atau toLowerCase() dipakai untuk konversi semua karakter didalam object String menjadi huruf besar atau huruf kecil.
String toUpperCase(); String toLowerCase(); Contoh: String s1 = "JBuilder untuk Java\u2122"; String sUp = s1.toUpperCase(); // = JBUILDER UNTUK JAVATM String sDown = s1.toLowerCase(); // = jbuilder untuk javaTM
class StrOps { public static void main (String args[]) { String str1 = "When it comes to web programming, Java is #1."; String str2 = new String (str1); String str3 = "Java string are powerful."; int result, idx; char ch; System.out.println("Length of str1 : " + str1.length()); //display str1, one char at time for (int i=0; i<str1.length(); i++) System.out.print(str1.charAt(i)); System.out.println();
if (str1.equals(str2)) System.out.println("str1 == str2"); else System.out.println("str1 != str2"); if (str1.equals(str3)) System.out.println("str1 == str3"); else System.out.println("str1 != str3"); result = str1.compareTo(str3); if (result == 0) System.out.println("str1 and str3 are equal"); else if (result < 0) System.out.println("str1 is less than str3"); else System.out.println("str1 is greater than str3");
//assign a new string to str2 str2 = "One Two Three One"; idx = str2.indexOf("One"); System.out. println("index of first occurrence of One : " +idx);; idx = str2.lastIndexOf("One"); System.out. println("index of first occurrence of One : " +idx);; }}
Output : Length of str1 : 45 When it comes to web programming,Java is #1. str1 == str2 str1 != str3 str1 is greater than str3 index of first occurrence of One : 0 index of first occurrence of One : 14
//Demonstrate String Array class StringArrays { public static void main (String args[]) { String str []= { "This", "is", "a", "test"}; System.out.println("Original Array : "); for (int i=0;i < str.length;i++) System.out.print(str[i] + " "); System.out.println("\n"); //change a string str[1] = "was"; str[3] = "test, tool"; System.out.println ("Modified Array : "); for (int i=0;i < str.length;i++) System.out.print(str[i] + " "); System.out.println("\n"); }}
Output : Original Array : This is a test Modified Array : This was a test, tool
//Some string operation class StrOperation { public static void main (String args[]) { String str1 = "Now is the time for all good men "+ "to come to the aid of their country."; System.out.println("Length of str1 : " + str1.length()); System.out. println("indexof (t) : " + str1.indexOf('t')); System.out. println("lastindexof (t) : " + str1.lastIndexOf ('t')); System.out. println("indexof (the) : " + str1.indexOf("the")); System.out. println("lastindexof (the) : " + str1.lastIndexOf ("the"));
//menggabungkan string str1 = "Belajar"; String str2 = " Bahasa"; String str3 = " Java"; String str4 = str1 + str2 + str3; System.out.println("Hasil str4 = "+ str4); System.out.println("Belajar".concat(" Bahasa").concat(" Java"));
//replace karakter System.out.println("Hello".replace('l', 'w')); //toLower & toUpper System.out.println("HeLLo".toLowerCase()); System.out.println("HeLLo".toUpperCase()); //Trim => menghilangkan bagian kosong didepan dan belakang System.out.println(" Hello World ".trim()); }}
Output: length of str1 : 69 indexof (t) ; 7 lastindexof (t) : 65 indexof (the) : 7 lastindexof (the) : 55 Hasil str4 = Balajar Bahasa Java Belajar Bahasa Java Hewwo hello HELLO Hello World
//Some string operation class StrBuffer { public static void main (String args[]) { StringBuffer str = new StringBuffer ("Hello World"); System.out.println("buffer before = " + str); System.out.println("charAt(1) before = " + str.charAt(1)); str.setCharAt(1, 'i'); str.setLength(2); System.out.println("buffer after = " + str); System.out.println("charAt(1) after = " + str.charAt(1));
//Append StringBuffer str1 = new StringBuffer (40); int a = 2; String S = str1.append("Hello ").append(a).append("-IA..!!!").toString();; System.out.println(S); //Insert StringBuffer str2 = new StringBuffer ("Hello World"); str2.insert(6, "there "); System.out.println(str2); }} Output : buffer before = Hello World charAt(1) before = e buffer after = Hi charAt(1) after = i Hello 2-IA..!!! Hello there World